From 5341001b94f94844fc23db931fb7d9357beb18e5 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Sat, 13 Sep 2014 23:10:42 +0800 Subject: [PATCH] ilo: derive 3-src instructions from the opcode table One less switch statement to maintain. Signed-off-by: Chia-I Wu --- src/gallium/drivers/ilo/shader/toy_compiler_disasm.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/gallium/drivers/ilo/shader/toy_compiler_disasm.c b/src/gallium/drivers/ilo/shader/toy_compiler_disasm.c index fffa8bf..7c1c32e 100644 --- a/src/gallium/drivers/ilo/shader/toy_compiler_disasm.c +++ b/src/gallium/drivers/ilo/shader/toy_compiler_disasm.c @@ -498,19 +498,12 @@ disasm_inst_decode(struct disasm_inst *inst, disasm_inst_decode_dw0_gen6(inst, dw[0]); - switch (inst->opcode) { - case GEN7_OPCODE_CSEL: - case GEN7_OPCODE_BFE: - case GEN7_OPCODE_BFI2: - case GEN6_OPCODE_MAD: - case GEN6_OPCODE_LRP: + if (disasm_opcode_table[inst->opcode].src_count == 3) { disasm_inst_decode_3src_dw1_gen6(inst, dw[1]); disasm_inst_decode_3src_dw2_dw3_gen6(inst, dw[2], dw[3]); - break; - default: + } else { disasm_inst_decode_dw1_gen6(inst, dw[1]); disasm_inst_decode_dw2_dw3_gen6(inst, dw[2], dw[3]); - break; } } -- 2.7.4