ilo: cleanup ISA DW0 decoding
authorChia-I Wu <olvaffe@gmail.com>
Fri, 13 Feb 2015 18:18:55 +0000 (02:18 +0800)
committerChia-I Wu <olvaffe@gmail.com>
Fri, 13 Feb 2015 22:52:36 +0000 (06:52 +0800)
Add disasm_inst_decode_dw0_opcode_gen6() to decode the opcode.  Simplify
branch_ctrl/acc_wr_ctrl decoding.

src/gallium/drivers/ilo/shader/toy_compiler_disasm.c

index 14347366dc0cfa25ae68cc0e92d5cd82de1a4524..76b269938abc932f756b501e6fb17a5b8c4e1f0d 100644 (file)
@@ -184,7 +184,7 @@ static const struct {
 };
 
 static void
-disasm_inst_decode_dw0_gen6(struct disasm_inst *inst, uint32_t dw0)
+disasm_inst_decode_dw0_opcode_gen6(struct disasm_inst *inst, uint32_t dw0)
 {
    ILO_DEV_ASSERT(inst->dev, 6, 8);
 
@@ -218,6 +218,14 @@ disasm_inst_decode_dw0_gen6(struct disasm_inst *inst, uint32_t dw0)
    default:
       break;
    }
+}
+
+static void
+disasm_inst_decode_dw0_gen6(struct disasm_inst *inst, uint32_t dw0)
+{
+   ILO_DEV_ASSERT(inst->dev, 6, 8);
+
+   disasm_inst_decode_dw0_opcode_gen6(inst, dw0);
 
    inst->access_mode = GEN_EXTRACT(dw0, GEN6_INST_ACCESSMODE);
 
@@ -250,19 +258,17 @@ disasm_inst_decode_dw0_gen6(struct disasm_inst *inst, uint32_t dw0)
       break;
    }
 
-   if (ilo_dev_gen(inst->dev) >= ILO_GEN(8)) {
-      switch (inst->opcode) {
-      case GEN6_OPCODE_IF:
-      case GEN6_OPCODE_ELSE:
-      case GEN8_OPCODE_GOTO:
+   switch (inst->opcode) {
+   case GEN6_OPCODE_IF:
+   case GEN6_OPCODE_ELSE:
+   case GEN8_OPCODE_GOTO:
+      if (ilo_dev_gen(inst->dev) >= ILO_GEN(8)) {
          inst->branch_ctrl = (bool) (dw0 & GEN8_INST_BRANCHCTRL);
          break;
-      default:
-         inst->acc_wr_ctrl = (bool) (dw0 & GEN6_INST_ACCWRCTRL);
-         break;
       }
-   } else {
+   default:
       inst->acc_wr_ctrl = (bool) (dw0 & GEN6_INST_ACCWRCTRL);
+      break;
    }
 
    inst->cmpt_ctrl = (bool) (dw0 & GEN6_INST_CMPTCTRL);