i965: Add mask_control_ex field and handle it in compaction.

Documentation is sparse, but it appears to have existed on G45 and ILK
as a second bit extension of the mask_control field. Setting the pair of
bits to 0b11 enables "NoCMask".

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
This commit is contained in:
Matt Turner 2015-10-19 15:08:28 -07:00
parent 3ec9d96d43
commit b29f92daec
2 changed files with 6 additions and 0 deletions

View File

@ -1018,6 +1018,8 @@ brw_try_compact_instruction(const struct brw_device_info *devinfo,
if (devinfo->gen >= 6) {
compact(acc_wr_control);
} else {
compact(mask_control_ex);
}
compact(cond_modifier);
@ -1229,6 +1231,8 @@ brw_uncompact_instruction(const struct brw_device_info *devinfo, brw_inst *dst,
if (devinfo->gen >= 6) {
uncompact(acc_wr_control);
} else {
uncompact(mask_control_ex);
}
uncompact(cond_modifier);

View File

@ -182,6 +182,7 @@ F(debug_control, 30, 30)
F(cmpt_control, 29, 29)
FC(branch_control, 28, 28, devinfo->gen >= 8)
FC(acc_wr_control, 28, 28, devinfo->gen >= 6)
FC(mask_control_ex, 28, 28, devinfo->is_g4x || devinfo->gen == 5)
F(cond_modifier, 27, 24)
FC(math_function, 27, 24, devinfo->gen >= 6)
F(exec_size, 23, 21)
@ -792,6 +793,7 @@ F(cmpt_control, 29, 29) /* Same location as brw_inst */
FC(flag_subreg_nr, 28, 28, devinfo->gen <= 6)
F(cond_modifier, 27, 24) /* Same location as brw_inst */
FC(acc_wr_control, 23, 23, devinfo->gen >= 6)
FC(mask_control_ex, 23, 23, devinfo->is_g4x || devinfo->gen == 5)
F(subreg_index, 22, 18)
F(datatype_index, 17, 13)
F(control_index, 12, 8)