From e64dbd050d6d5b4ea502ee2fc727e12135833771 Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Mon, 4 Aug 2014 14:26:26 -0700 Subject: [PATCH] i965/eu: Merge brw_CONT and gen6_CONT. The only difference is setting PopCount on Gen4-5. Signed-off-by: Kenneth Graunke Reviewed-by: Matt Turner --- src/mesa/drivers/dri/i965/brw_eu.h | 1 - src/mesa/drivers/dri/i965/brw_eu_emit.c | 22 +++++-------------- .../drivers/dri/i965/brw_fs_generator.cpp | 6 +---- .../drivers/dri/i965/brw_vec4_generator.cpp | 6 +---- 4 files changed, 7 insertions(+), 28 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_eu.h b/src/mesa/drivers/dri/i965/brw_eu.h index 63cb20b1a55..7efc02816c9 100644 --- a/src/mesa/drivers/dri/i965/brw_eu.h +++ b/src/mesa/drivers/dri/i965/brw_eu.h @@ -334,7 +334,6 @@ brw_inst *brw_WHILE(struct brw_compile *p); brw_inst *brw_BREAK(struct brw_compile *p); brw_inst *brw_CONT(struct brw_compile *p); -brw_inst *gen6_CONT(struct brw_compile *p); brw_inst *gen6_HALT(struct brw_compile *p); /* Forward jumps: diff --git a/src/mesa/drivers/dri/i965/brw_eu_emit.c b/src/mesa/drivers/dri/i965/brw_eu_emit.c index 845bcd48474..3be4449b4e0 100644 --- a/src/mesa/drivers/dri/i965/brw_eu_emit.c +++ b/src/mesa/drivers/dri/i965/brw_eu_emit.c @@ -1532,7 +1532,7 @@ brw_BREAK(struct brw_compile *p) } brw_inst * -gen6_CONT(struct brw_compile *p) +brw_CONT(struct brw_compile *p) { const struct brw_context *brw = p->brw; brw_inst *insn; @@ -1542,25 +1542,13 @@ gen6_CONT(struct brw_compile *p) brw_set_src0(p, insn, brw_ip_reg()); brw_set_src1(p, insn, brw_imm_d(0x0)); - brw_inst_set_qtr_control(brw, insn, BRW_COMPRESSION_NONE); - brw_inst_set_exec_size(brw, insn, BRW_EXECUTE_8); - return insn; -} + if (brw->gen < 6) { + brw_inst_set_gen4_pop_count(brw, insn, + p->if_depth_in_loop[p->loop_stack_depth]); + } -brw_inst * -brw_CONT(struct brw_compile *p) -{ - const struct brw_context *brw = p->brw; - brw_inst *insn; - insn = next_insn(p, BRW_OPCODE_CONTINUE); - brw_set_dest(p, insn, brw_ip_reg()); - brw_set_src0(p, insn, brw_ip_reg()); - brw_set_src1(p, insn, brw_imm_d(0x0)); brw_inst_set_qtr_control(brw, insn, BRW_COMPRESSION_NONE); brw_inst_set_exec_size(brw, insn, BRW_EXECUTE_8); - /* insn->header.mask_control = BRW_MASK_DISABLE; */ - brw_inst_set_gen4_pop_count(brw, insn, - p->if_depth_in_loop[p->loop_stack_depth]); return insn; } diff --git a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp index 8a7fa92738d..ac2f1b44f2c 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp @@ -1582,11 +1582,7 @@ fs_generator::generate_code(exec_list *instructions) brw_set_default_predicate_control(p, BRW_PREDICATE_NONE); break; case BRW_OPCODE_CONTINUE: - /* FINISHME: We need to write the loop instruction support still. */ - if (brw->gen >= 6) - gen6_CONT(p); - else - brw_CONT(p); + brw_CONT(p); brw_set_default_predicate_control(p, BRW_PREDICATE_NONE); break; diff --git a/src/mesa/drivers/dri/i965/brw_vec4_generator.cpp b/src/mesa/drivers/dri/i965/brw_vec4_generator.cpp index c328f349bc9..2129007f988 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_generator.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_generator.cpp @@ -1085,11 +1085,7 @@ vec4_generator::generate_vec4_instruction(vec4_instruction *instruction, brw_set_default_predicate_control(p, BRW_PREDICATE_NONE); break; case BRW_OPCODE_CONTINUE: - /* FINISHME: We need to write the loop instruction support still. */ - if (brw->gen >= 6) - gen6_CONT(p); - else - brw_CONT(p); + brw_CONT(p); brw_set_default_predicate_control(p, BRW_PREDICATE_NONE); break; -- 2.30.2