i965/fs: Collect all emits of texture ops for Gen4 into one place
authorChris Forbes <chrisf@ijw.co.nz>
Sun, 3 Aug 2014 08:48:20 +0000 (20:48 +1200)
committerChris Forbes <chrisf@ijw.co.nz>
Sat, 9 Aug 2014 01:11:33 +0000 (13:11 +1200)
Reduces duplication, and will do so even more when we change the sampler
plumbing.

Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
src/mesa/drivers/dri/i965/brw_fs_visitor.cpp

index 752e5a413ecc78e4587e1444b631c55000fe9a33..0e090870daeb4a7a39dbd502c14898612c618fbd 100644 (file)
@@ -1227,29 +1227,20 @@ fs_visitor::emit_texture_gen4(ir_texture *ir, fs_reg dst, fs_reg coordinate,
                     BRW_REGISTER_TYPE_F));
    }
 
-   fs_inst *inst = NULL;
+   enum opcode opcode;
+
    switch (ir->op) {
-   case ir_tex:
-      inst = emit(SHADER_OPCODE_TEX, dst, reg_undef);
-      break;
-   case ir_txb:
-      inst = emit(FS_OPCODE_TXB, dst, reg_undef);
-      break;
-   case ir_txl:
-      inst = emit(SHADER_OPCODE_TXL, dst, reg_undef);
-      break;
-   case ir_txd:
-      inst = emit(SHADER_OPCODE_TXD, dst, reg_undef);
-      break;
-   case ir_txs:
-      inst = emit(SHADER_OPCODE_TXS, dst, reg_undef);
-      break;
-   case ir_txf:
-      inst = emit(SHADER_OPCODE_TXF, dst, reg_undef);
-      break;
+   case ir_tex: opcode = SHADER_OPCODE_TEX; break;
+   case ir_txb: opcode = FS_OPCODE_TXB; break;
+   case ir_txl: opcode = SHADER_OPCODE_TXL; break;
+   case ir_txd: opcode = SHADER_OPCODE_TXD; break;
+   case ir_txs: opcode = SHADER_OPCODE_TXS; break;
+   case ir_txf: opcode = SHADER_OPCODE_TXF; break;
    default:
-      fail("unrecognized texture opcode");
+      unreachable("not reached");
    }
+
+   fs_inst *inst = emit(opcode, dst, reg_undef);
    inst->base_mrf = base_mrf;
    inst->mlen = mlen;
    inst->header_present = true;