This made it harder to modify TGSI_OPCODE_ enums without breaking the driver. --- .../drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp | 278 ++++++++++----------- 1 file changed, 139 insertions(+), 139 deletions(-)
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp index 39a70aa..4ed0d5d 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp @@ -497,149 +497,149 @@ nv50_ir::CondCode Instruction::getSetCond() const } } -#define NV50_IR_OPCODE_CASE(a, b) case TGSI_OPCODE_##a: return nv50_ir::OP_##b +#define NV50_IR_OPCODE_CASE(a, b) case a: return nv50_ir::OP_##b static nv50_ir::operation translateOpcode(uint opcode) { switch (opcode) { - NV50_IR_OPCODE_CASE(ARL, SHL); - NV50_IR_OPCODE_CASE(MOV, MOV); - - NV50_IR_OPCODE_CASE(RCP, RCP); - NV50_IR_OPCODE_CASE(RSQ, RSQ); - - NV50_IR_OPCODE_CASE(MUL, MUL); - NV50_IR_OPCODE_CASE(ADD, ADD); - - NV50_IR_OPCODE_CASE(MIN, MIN); - NV50_IR_OPCODE_CASE(MAX, MAX); - NV50_IR_OPCODE_CASE(SLT, SET); - NV50_IR_OPCODE_CASE(SGE, SET); - NV50_IR_OPCODE_CASE(MAD, MAD); - NV50_IR_OPCODE_CASE(SUB, SUB); - - NV50_IR_OPCODE_CASE(FLR, FLOOR); - NV50_IR_OPCODE_CASE(ROUND, CVT); - NV50_IR_OPCODE_CASE(EX2, EX2); - NV50_IR_OPCODE_CASE(LG2, LG2); - NV50_IR_OPCODE_CASE(POW, POW); - - NV50_IR_OPCODE_CASE(ABS, ABS); - - NV50_IR_OPCODE_CASE(COS, COS); - NV50_IR_OPCODE_CASE(DDX, DFDX); - NV50_IR_OPCODE_CASE(DDX_FINE, DFDX); - NV50_IR_OPCODE_CASE(DDY, DFDY); - NV50_IR_OPCODE_CASE(DDY_FINE, DFDY); - NV50_IR_OPCODE_CASE(KILL, DISCARD); - - NV50_IR_OPCODE_CASE(SEQ, SET); - NV50_IR_OPCODE_CASE(SGT, SET); - NV50_IR_OPCODE_CASE(SIN, SIN); - NV50_IR_OPCODE_CASE(SLE, SET); - NV50_IR_OPCODE_CASE(SNE, SET); - NV50_IR_OPCODE_CASE(TEX, TEX); - NV50_IR_OPCODE_CASE(TXD, TXD); - NV50_IR_OPCODE_CASE(TXP, TEX); - - NV50_IR_OPCODE_CASE(CAL, CALL); - NV50_IR_OPCODE_CASE(RET, RET); - NV50_IR_OPCODE_CASE(CMP, SLCT); - - NV50_IR_OPCODE_CASE(TXB, TXB); - - NV50_IR_OPCODE_CASE(DIV, DIV); - - NV50_IR_OPCODE_CASE(TXL, TXL); - - NV50_IR_OPCODE_CASE(CEIL, CEIL); - NV50_IR_OPCODE_CASE(I2F, CVT); - NV50_IR_OPCODE_CASE(NOT, NOT); - NV50_IR_OPCODE_CASE(TRUNC, TRUNC); - NV50_IR_OPCODE_CASE(SHL, SHL); - - NV50_IR_OPCODE_CASE(AND, AND); - NV50_IR_OPCODE_CASE(OR, OR); - NV50_IR_OPCODE_CASE(MOD, MOD); - NV50_IR_OPCODE_CASE(XOR, XOR); - NV50_IR_OPCODE_CASE(SAD, SAD); - NV50_IR_OPCODE_CASE(TXF, TXF); - NV50_IR_OPCODE_CASE(TXQ, TXQ); - NV50_IR_OPCODE_CASE(TG4, TXG); - NV50_IR_OPCODE_CASE(LODQ, TXLQ); - - NV50_IR_OPCODE_CASE(EMIT, EMIT); - NV50_IR_OPCODE_CASE(ENDPRIM, RESTART); - - NV50_IR_OPCODE_CASE(KILL_IF, DISCARD); - - NV50_IR_OPCODE_CASE(F2I, CVT); - NV50_IR_OPCODE_CASE(FSEQ, SET); - NV50_IR_OPCODE_CASE(FSGE, SET); - NV50_IR_OPCODE_CASE(FSLT, SET); - NV50_IR_OPCODE_CASE(FSNE, SET); - NV50_IR_OPCODE_CASE(IDIV, DIV); - NV50_IR_OPCODE_CASE(IMAX, MAX); - NV50_IR_OPCODE_CASE(IMIN, MIN); - NV50_IR_OPCODE_CASE(IABS, ABS); - NV50_IR_OPCODE_CASE(INEG, NEG); - NV50_IR_OPCODE_CASE(ISGE, SET); - NV50_IR_OPCODE_CASE(ISHR, SHR); - NV50_IR_OPCODE_CASE(ISLT, SET); - NV50_IR_OPCODE_CASE(F2U, CVT); - NV50_IR_OPCODE_CASE(U2F, CVT); - NV50_IR_OPCODE_CASE(UADD, ADD); - NV50_IR_OPCODE_CASE(UDIV, DIV); - NV50_IR_OPCODE_CASE(UMAD, MAD); - NV50_IR_OPCODE_CASE(UMAX, MAX); - NV50_IR_OPCODE_CASE(UMIN, MIN); - NV50_IR_OPCODE_CASE(UMOD, MOD); - NV50_IR_OPCODE_CASE(UMUL, MUL); - NV50_IR_OPCODE_CASE(USEQ, SET); - NV50_IR_OPCODE_CASE(USGE, SET); - NV50_IR_OPCODE_CASE(USHR, SHR); - NV50_IR_OPCODE_CASE(USLT, SET); - NV50_IR_OPCODE_CASE(USNE, SET); - - NV50_IR_OPCODE_CASE(IMUL_HI, MUL); - NV50_IR_OPCODE_CASE(UMUL_HI, MUL); - - NV50_IR_OPCODE_CASE(SAMPLE, TEX); - NV50_IR_OPCODE_CASE(SAMPLE_B, TXB); - NV50_IR_OPCODE_CASE(SAMPLE_C, TEX); - NV50_IR_OPCODE_CASE(SAMPLE_C_LZ, TEX); - NV50_IR_OPCODE_CASE(SAMPLE_D, TXD); - NV50_IR_OPCODE_CASE(SAMPLE_L, TXL); - NV50_IR_OPCODE_CASE(SAMPLE_I, TXF); - NV50_IR_OPCODE_CASE(SAMPLE_I_MS, TXF); - NV50_IR_OPCODE_CASE(GATHER4, TXG); - NV50_IR_OPCODE_CASE(SVIEWINFO, TXQ); - - NV50_IR_OPCODE_CASE(ATOMUADD, ATOM); - NV50_IR_OPCODE_CASE(ATOMXCHG, ATOM); - NV50_IR_OPCODE_CASE(ATOMCAS, ATOM); - NV50_IR_OPCODE_CASE(ATOMAND, ATOM); - NV50_IR_OPCODE_CASE(ATOMOR, ATOM); - NV50_IR_OPCODE_CASE(ATOMXOR, ATOM); - NV50_IR_OPCODE_CASE(ATOMUMIN, ATOM); - NV50_IR_OPCODE_CASE(ATOMUMAX, ATOM); - NV50_IR_OPCODE_CASE(ATOMIMIN, ATOM); - NV50_IR_OPCODE_CASE(ATOMIMAX, ATOM); - - NV50_IR_OPCODE_CASE(TEX2, TEX); - NV50_IR_OPCODE_CASE(TXB2, TXB); - NV50_IR_OPCODE_CASE(TXL2, TXL); - - NV50_IR_OPCODE_CASE(IBFE, EXTBF); - NV50_IR_OPCODE_CASE(UBFE, EXTBF); - NV50_IR_OPCODE_CASE(BFI, INSBF); - NV50_IR_OPCODE_CASE(BREV, EXTBF); - NV50_IR_OPCODE_CASE(POPC, POPCNT); - NV50_IR_OPCODE_CASE(LSB, BFIND); - NV50_IR_OPCODE_CASE(IMSB, BFIND); - NV50_IR_OPCODE_CASE(UMSB, BFIND); - - NV50_IR_OPCODE_CASE(END, EXIT); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_ARL, SHL); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_MOV, MOV); + + NV50_IR_OPCODE_CASE(TGSI_OPCODE_RCP, RCP); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_RSQ, RSQ); + + NV50_IR_OPCODE_CASE(TGSI_OPCODE_MUL, MUL); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_ADD, ADD); + + NV50_IR_OPCODE_CASE(TGSI_OPCODE_MIN, MIN); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_MAX, MAX); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_SLT, SET); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_SGE, SET); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_MAD, MAD); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_SUB, SUB); + + NV50_IR_OPCODE_CASE(TGSI_OPCODE_FLR, FLOOR); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_ROUND, CVT); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_EX2, EX2); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_LG2, LG2); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_POW, POW); + + NV50_IR_OPCODE_CASE(TGSI_OPCODE_ABS, ABS); + + NV50_IR_OPCODE_CASE(TGSI_OPCODE_COS, COS); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_DDX, DFDX); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_DDX_FINE, DFDX); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_DDY, DFDY); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_DDY_FINE, DFDY); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_KILL, DISCARD); + + NV50_IR_OPCODE_CASE(TGSI_OPCODE_SEQ, SET); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_SGT, SET); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_SIN, SIN); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_SLE, SET); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_SNE, SET); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_TEX, TEX); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_TXD, TXD); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_TXP, TEX); + + NV50_IR_OPCODE_CASE(TGSI_OPCODE_CAL, CALL); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_RET, RET); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_CMP, SLCT); + + NV50_IR_OPCODE_CASE(TGSI_OPCODE_TXB, TXB); + + NV50_IR_OPCODE_CASE(TGSI_OPCODE_DIV, DIV); + + NV50_IR_OPCODE_CASE(TGSI_OPCODE_TXL, TXL); + + NV50_IR_OPCODE_CASE(TGSI_OPCODE_CEIL, CEIL); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_I2F, CVT); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_NOT, NOT); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_TRUNC, TRUNC); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_SHL, SHL); + + NV50_IR_OPCODE_CASE(TGSI_OPCODE_AND, AND); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_OR, OR); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_MOD, MOD); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_XOR, XOR); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_SAD, SAD); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_TXF, TXF); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_TXQ, TXQ); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_TG4, TXG); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_LODQ, TXLQ); + + NV50_IR_OPCODE_CASE(TGSI_OPCODE_EMIT, EMIT); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_ENDPRIM, RESTART); + + NV50_IR_OPCODE_CASE(TGSI_OPCODE_KILL_IF, DISCARD); + + NV50_IR_OPCODE_CASE(TGSI_OPCODE_F2I, CVT); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_FSEQ, SET); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_FSGE, SET); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_FSLT, SET); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_FSNE, SET); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_IDIV, DIV); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_IMAX, MAX); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_IMIN, MIN); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_IABS, ABS); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_INEG, NEG); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_ISGE, SET); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_ISHR, SHR); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_ISLT, SET); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_F2U, CVT); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_U2F, CVT); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_UADD, ADD); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_UDIV, DIV); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_UMAD, MAD); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_UMAX, MAX); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_UMIN, MIN); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_UMOD, MOD); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_UMUL, MUL); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_USEQ, SET); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_USGE, SET); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_USHR, SHR); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_USLT, SET); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_USNE, SET); + + NV50_IR_OPCODE_CASE(TGSI_OPCODE_IMUL_HI, MUL); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_UMUL_HI, MUL); + + NV50_IR_OPCODE_CASE(TGSI_OPCODE_SAMPLE, TEX); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_SAMPLE_B, TXB); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_SAMPLE_C, TEX); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_SAMPLE_C_LZ, TEX); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_SAMPLE_D, TXD); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_SAMPLE_L, TXL); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_SAMPLE_I, TXF); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_SAMPLE_I_MS, TXF); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_GATHER4, TXG); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_SVIEWINFO, TXQ); + + NV50_IR_OPCODE_CASE(TGSI_OPCODE_ATOMUADD, ATOM); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_ATOMXCHG, ATOM); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_ATOMCAS, ATOM); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_ATOMAND, ATOM); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_ATOMOR, ATOM); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_ATOMXOR, ATOM); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_ATOMUMIN, ATOM); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_ATOMUMAX, ATOM); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_ATOMIMIN, ATOM); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_ATOMIMAX, ATOM); + + NV50_IR_OPCODE_CASE(TGSI_OPCODE_TEX2, TEX); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_TXB2, TXB); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_TXL2, TXL); + + NV50_IR_OPCODE_CASE(TGSI_OPCODE_IBFE, EXTBF); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_UBFE, EXTBF); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_BFI, INSBF); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_BREV, EXTBF); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_POPC, POPCNT); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_LSB, BFIND); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_IMSB, BFIND); + NV50_IR_OPCODE_CASE(TGSI_OPCODE_UMSB, BFIND); + + NV50_IR_OPCODE_CASE(TGSI_OPCODE_END, EXIT); default: return nv50_ir::OP_NOP; -- 2.1.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev