i965/fs: Add no_dd_{clear,check} fields to fs_inst.

And plumb them through. Also make the assert in the generator look like
the vec4 one.

Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
This commit is contained in:
Matt Turner 2014-06-28 23:31:04 -07:00
parent bcbb7c41b7
commit 6d2536395d
2 changed files with 10 additions and 6 deletions

View file

@ -239,6 +239,8 @@ public:
bool force_uncompressed:1;
bool force_sechalf:1;
bool force_writemask_all:1;
bool no_dd_clear:1;
bool no_dd_check:1;
};
/**

View file

@ -1755,14 +1755,16 @@ fs_generator::generate_code(exec_list *instructions)
break;
}
if (inst->conditional_mod) {
/* Set the conditional modifier on the last instruction we generated.
* Also, make sure we only emitted one instruction - anything else
* doesn't make sense.
*/
assert(p->next_insn_offset == last_insn_offset + 16);
if (inst->no_dd_clear || inst->no_dd_check || inst->conditional_mod) {
assert(p->next_insn_offset == last_insn_offset + 16 ||
!"conditional_mod, no_dd_check, or no_dd_clear set for IR "
"emitting more than 1 instruction");
brw_inst *last = &p->store[last_insn_offset / 16];
brw_inst_set_cond_modifier(brw, last, inst->conditional_mod);
brw_inst_set_no_dd_clear(brw, last, inst->no_dd_clear);
brw_inst_set_no_dd_check(brw, last, inst->no_dd_check);
}
}