mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-02 05:48:07 +02:00
i965/eu: Refactor brw_WHILE to share a bit more code on Gen6+.
We're going to add a Gen8+ case shortly, which would need to duplicate this code again. Instead, share it. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Chris Forbes <chrisf@ijw.co.nz> Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
aafdf9eef4
commit
d8ef0eab5a
1 changed files with 12 additions and 16 deletions
|
|
@ -1704,25 +1704,21 @@ brw_WHILE(struct brw_compile *p)
|
|||
brw_inst *insn, *do_insn;
|
||||
unsigned br = brw_jump_scale(brw);
|
||||
|
||||
if (brw->gen >= 7) {
|
||||
if (brw->gen >= 6) {
|
||||
insn = next_insn(p, BRW_OPCODE_WHILE);
|
||||
do_insn = get_inner_do_insn(p);
|
||||
|
||||
brw_set_dest(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
|
||||
brw_set_src0(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
|
||||
brw_set_src1(p, insn, brw_imm_ud(0));
|
||||
brw_inst_set_jip(brw, insn, br * (do_insn - insn));
|
||||
|
||||
brw_inst_set_exec_size(brw, insn, p->compressed ? BRW_EXECUTE_16
|
||||
: BRW_EXECUTE_8);
|
||||
} else if (brw->gen == 6) {
|
||||
insn = next_insn(p, BRW_OPCODE_WHILE);
|
||||
do_insn = get_inner_do_insn(p);
|
||||
|
||||
brw_set_dest(p, insn, brw_imm_w(0));
|
||||
brw_inst_set_gen6_jump_count(brw, insn, br * (do_insn - insn));
|
||||
brw_set_src0(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
|
||||
brw_set_src1(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
|
||||
if (brw->gen == 7) {
|
||||
brw_set_dest(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
|
||||
brw_set_src0(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
|
||||
brw_set_src1(p, insn, brw_imm_ud(0));
|
||||
brw_inst_set_jip(brw, insn, br * (do_insn - insn));
|
||||
} else {
|
||||
brw_set_dest(p, insn, brw_imm_w(0));
|
||||
brw_inst_set_gen6_jump_count(brw, insn, br * (do_insn - insn));
|
||||
brw_set_src0(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
|
||||
brw_set_src1(p, insn, retype(brw_null_reg(), BRW_REGISTER_TYPE_D));
|
||||
}
|
||||
|
||||
brw_inst_set_exec_size(brw, insn, p->compressed ? BRW_EXECUTE_16
|
||||
: BRW_EXECUTE_8);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue