gallium: remove multiple aliases for TGSI opcodes
authorKeith Whitwell <keithw@vmware.com>
Fri, 12 Jun 2009 10:59:01 +0000 (11:59 +0100)
committerKeith Whitwell <keithw@vmware.com>
Wed, 22 Jul 2009 11:42:09 +0000 (12:42 +0100)
This is a source of ongoing confusion.  TGSI has multiple names for
opcodes where the same semantics originate in multiple shader APIs.

For instance, TGSI includes both Mesa/GLSL and DX/SM30 names for
opcodes with the same semantics, but aliases those names to the same
underlying opcode number.

This makes it very difficult to visually inspect two sets of opcodes
(eg in state tracker & driver) and check if they implement the same
functionality.

This patch arbitarily rips out the versions of the opcodes not currently
favoured by the mesa state tracker and leaves us with a single name
for each distinct operation.

src/gallium/auxiliary/draw/draw_vs_aos.c
src/gallium/auxiliary/tgsi/tgsi_exec.c
src/gallium/auxiliary/tgsi/tgsi_info.c
src/gallium/auxiliary/tgsi/tgsi_info.h
src/gallium/auxiliary/tgsi/tgsi_sse2.c
src/gallium/auxiliary/tgsi/tgsi_text.c
src/gallium/include/pipe/p_shader_tokens.h

index 68402bed5f33f027041502f9641f70a133c4792b..62e04a65f30af2721f7365abff2212b5501ce0ee 100644 (file)
@@ -1758,24 +1758,24 @@ emit_instruction( struct aos_compilation *cp,
    case TGSI_OPCODE_SUB:
       return emit_SUB(cp, inst);
  
-   case TGSI_OPCODE_LERP:
+   case TGSI_OPCODE_LRP:
 //      return emit_LERP(cp, inst);
       return FALSE;
 
-   case TGSI_OPCODE_FRAC:
+   case TGSI_OPCODE_FRC:
       return emit_FRC(cp, inst);
 
    case TGSI_OPCODE_CLAMP:
 //      return emit_CLAMP(cp, inst);
       return FALSE;
 
-   case TGSI_OPCODE_FLOOR:
+   case TGSI_OPCODE_FLR:
       return emit_FLR(cp, inst);
 
    case TGSI_OPCODE_ROUND:
       return emit_RND(cp, inst);
 
-   case TGSI_OPCODE_EXPBASE2:
+   case TGSI_OPCODE_EX2:
 #if FAST_MATH
       return emit_EXPBASE2(cp, inst);
 #elif 0
@@ -1787,13 +1787,13 @@ emit_instruction( struct aos_compilation *cp,
       return FALSE;
 #endif
 
-   case TGSI_OPCODE_LOGBASE2:
+   case TGSI_OPCODE_LG2:
       return emit_LG2(cp, inst);
 
-   case TGSI_OPCODE_POWER:
+   case TGSI_OPCODE_POW:
       return emit_POW(cp, inst);
 
-   case TGSI_OPCODE_CROSSPRODUCT:
+   case TGSI_OPCODE_XPD:
       return emit_XPD(cp, inst);
 
    case TGSI_OPCODE_ABS:
index 8c68a10a38ef923a41c3340edd9b751f1cb85b60..b193fd7a0a5deffa4a5ed303b97f343c96733ef8 100644 (file)
@@ -2020,8 +2020,7 @@ exec_instruction(
 
    switch (inst->Instruction.Opcode) {
    case TGSI_OPCODE_ARL:
-   case TGSI_OPCODE_FLOOR:
-   /* TGSI_OPCODE_FLR */
+   case TGSI_OPCODE_FLR:
       FOR_EACH_ENABLED_CHANNEL( *inst, chan_index ) {
          FETCH( &r[0], 0, chan_index );
          micro_flr( &r[0], &r[0] );
@@ -2290,8 +2289,7 @@ exec_instruction(
       }
       break;
 
-   case TGSI_OPCODE_LERP:
-   /* TGSI_OPCODE_LRP */
+   case TGSI_OPCODE_LRP:
       FOR_EACH_ENABLED_CHANNEL( *inst, chan_index ) {
          FETCH(&r[0], 0, chan_index);
          FETCH(&r[1], 1, chan_index);
@@ -2325,8 +2323,7 @@ exec_instruction(
       }
       break;
 
-   case TGSI_OPCODE_DOT2ADD:
-   /* TGSI_OPCODE_DP2A */
+   case TGSI_OPCODE_DP2A:
       FETCH( &r[0], 0, CHAN_X );
       FETCH( &r[1], 1, CHAN_X );
       micro_mul( &r[0], &r[0], &r[1] );
@@ -2354,8 +2351,7 @@ exec_instruction(
       assert (0);
       break;
 
-   case TGSI_OPCODE_FRAC:
-   /* TGSI_OPCODE_FRC */
+   case TGSI_OPCODE_FRC:
       FOR_EACH_ENABLED_CHANNEL( *inst, chan_index ) {
          FETCH( &r[0], 0, chan_index );
          micro_frc( &r[0], &r[0] );
@@ -2383,8 +2379,7 @@ exec_instruction(
       }
       break;
 
-   case TGSI_OPCODE_EXPBASE2:
-   /* TGSI_OPCODE_EX2 */
+   case TGSI_OPCODE_EX2:
       FETCH(&r[0], 0, CHAN_X);
 
 #if FAST_MATH
@@ -2398,8 +2393,7 @@ exec_instruction(
       }
       break;
 
-   case TGSI_OPCODE_LOGBASE2:
-   /* TGSI_OPCODE_LG2 */
+   case TGSI_OPCODE_LG2:
       FETCH( &r[0], 0, CHAN_X );
       micro_lg2( &r[0], &r[0] );
       FOR_EACH_ENABLED_CHANNEL( *inst, chan_index ) {
@@ -2407,8 +2401,7 @@ exec_instruction(
       }
       break;
 
-   case TGSI_OPCODE_POWER:
-   /* TGSI_OPCODE_POW */
+   case TGSI_OPCODE_POW:
       FETCH(&r[0], 0, CHAN_X);
       FETCH(&r[1], 1, CHAN_X);
 
@@ -2419,8 +2412,7 @@ exec_instruction(
       }
       break;
 
-   case TGSI_OPCODE_CROSSPRODUCT:
-   /* TGSI_OPCODE_XPD */
+   case TGSI_OPCODE_XPD:
       FETCH(&r[0], 0, CHAN_Y);
       FETCH(&r[1], 1, CHAN_Z);
 
index 37f2b66d1f6e5ad9f9527e12f33ae6292b955666..29b81155609afee024eb33171b6452e9f5e6d75c 100644 (file)
  **************************************************************************/
 
 #include "util/u_debug.h"
+#include "util/u_memory.h"
 #include "tgsi_info.h"
 
 static const struct tgsi_opcode_info opcode_info[TGSI_OPCODE_LAST] =
 {
-   { 1, 1, 0, 0, "ARL", NULL, NULL },
-   { 1, 1, 0, 0, "MOV", NULL, NULL },
-   { 1, 1, 0, 0, "LIT", NULL, NULL },
-   { 1, 1, 0, 0, "RCP", "RECIP", NULL },
-   { 1, 1, 0, 0, "RSQ", "RECIPSQRT", NULL },
-   { 1, 1, 0, 0, "EXP", "EXPP", NULL },
-   { 1, 1, 0, 0, "LOG", NULL, NULL },
-   { 1, 2, 0, 0, "MUL", NULL, NULL },
-   { 1, 2, 0, 0, "ADD", NULL, NULL },
-   { 1, 2, 0, 0, "DP3", "DOT3", NULL },
-   { 1, 2, 0, 0, "DP4", "DOT4", NULL },
-   { 1, 2, 0, 0, "DST", NULL, NULL },
-   { 1, 2, 0, 0, "MIN", NULL, NULL },
-   { 1, 2, 0, 0, "MAX", NULL, NULL },
-   { 1, 2, 0, 0, "SLT", "SETLT", NULL },
-   { 1, 2, 0, 0, "SGE", "SETGE", NULL },
-   { 1, 3, 0, 0, "MAD", "MADD", NULL },
-   { 1, 2, 0, 0, "SUB", NULL, NULL },
-   { 1, 3, 0, 0, "LRP", "LERP", NULL },
-   { 1, 3, 0, 0, "CND", NULL, NULL },
-   { 1, 3, 0, 0, "CND0", NULL, NULL },
-   { 1, 3, 0, 0, "DP2A", "DP2ADD", "DOT2ADD" },
-   { 1, 2, 0, 0, "INDEX", NULL, NULL },
-   { 1, 1, 0, 0, "NEGATE", NULL, NULL },
-   { 1, 1, 0, 0, "FRC", "FRAC", NULL },
-   { 1, 3, 0, 0, "CLAMP", NULL, NULL },
-   { 1, 1, 0, 0, "FLR", "FLOOR", NULL },
-   { 1, 1, 0, 0, "ROUND", NULL, NULL },
-   { 1, 1, 0, 0, "EX2", "EXPBASE2", NULL },
-   { 1, 1, 0, 0, "LG2", "LOGBASE2", "LOGP" },
-   { 1, 2, 0, 0, "POW", "POWER", NULL },
-   { 1, 2, 0, 0, "XPD", "CRS", "CROSSPRODUCT" },
-   { 1, 2, 0, 0, "M4X4", "MULTIPLYMATRIX", NULL },
-   { 1, 1, 0, 0, "ABS", NULL, NULL },
-   { 1, 1, 0, 0, "RCC", NULL, NULL },
-   { 1, 2, 0, 0, "DPH", NULL, NULL },
-   { 1, 1, 0, 0, "COS", NULL, NULL },
-   { 1, 1, 0, 0, "DDX", "DSX", NULL },
-   { 1, 1, 0, 0, "DDY", "DSY", NULL },
-   { 0, 0, 0, 0, "KILP", NULL, NULL },
-   { 1, 1, 0, 0, "PK2H", NULL, NULL },
-   { 1, 1, 0, 0, "PK2US", NULL, NULL },
-   { 1, 1, 0, 0, "PK4B", NULL, NULL },
-   { 1, 1, 0, 0, "PK4UB", NULL, NULL },
-   { 1, 2, 0, 0, "RFL", NULL, NULL },
-   { 1, 2, 0, 0, "SEQ", NULL, NULL },
-   { 1, 2, 0, 0, "SFL", NULL, NULL },
-   { 1, 2, 0, 0, "SGT", NULL, NULL },
-   { 1, 1, 0, 0, "SIN", NULL, NULL },
-   { 1, 2, 0, 0, "SLE", NULL, NULL },
-   { 1, 2, 0, 0, "SNE", NULL, NULL },
-   { 1, 2, 0, 0, "STR", NULL, NULL },
-   { 1, 2, 1, 0, "TEX", "TEXLD", NULL },
-   { 1, 4, 1, 0, "TXD", "TEXLDD", NULL },
-   { 1, 2, 1, 0, "TXP", NULL, NULL },
-   { 1, 1, 0, 0, "UP2H", NULL, NULL },
-   { 1, 1, 0, 0, "UP2US", NULL, NULL },
-   { 1, 1, 0, 0, "UP4B", NULL, NULL },
-   { 1, 1, 0, 0, "UP4UB", NULL, NULL },
-   { 1, 3, 0, 0, "X2D", NULL, NULL },
-   { 1, 1, 0, 0, "ARA", NULL, NULL },
-   { 1, 1, 0, 0, "ARR", "MOVA", NULL },
-   { 0, 1, 0, 0, "BRA", NULL, NULL },
-   { 0, 0, 0, 1, "CAL", "CALL", NULL },
-   { 0, 0, 0, 0, "RET", NULL, NULL },
-   { 1, 1, 0, 0, "SGN", "SSG", NULL },
-   { 1, 3, 0, 0, "CMP", NULL, NULL },
-   { 1, 1, 0, 0, "SCS", "SINCOS", NULL },
-   { 1, 2, 1, 0, "TXB", "TEXLDB", NULL },
-   { 1, 1, 0, 0, "NRM", NULL, NULL },
-   { 1, 2, 0, 0, "DIV", NULL, NULL },
-   { 1, 2, 0, 0, "DP2", NULL, NULL },
-   { 1, 2, 1, 0, "TXL", NULL, NULL },
-   { 0, 0, 0, 0, "BRK", "BREAK", NULL },
-   { 0, 1, 0, 1, "IF", NULL, NULL },
-   { 0, 0, 0, 0, "LOOP", NULL, NULL },
-   { 0, 1, 0, 0, "REP", NULL, NULL },
-   { 0, 0, 0, 1, "ELSE", NULL, NULL },
-   { 0, 0, 0, 0, "ENDIF", NULL, NULL },
-   { 0, 0, 0, 0, "ENDLOOP", NULL, NULL },
-   { 0, 0, 0, 0, "ENDREP", NULL, NULL },
-   { 0, 1, 0, 0, "PUSHA", NULL, NULL },
-   { 1, 0, 0, 0, "POPA", NULL, NULL },
-   { 1, 1, 0, 0, "CEIL", NULL, NULL },
-   { 1, 1, 0, 0, "I2F", NULL, NULL },
-   { 1, 1, 0, 0, "NOT", NULL, NULL },
-   { 1, 1, 0, 0, "INT", "TRUNC", NULL },
-   { 1, 2, 0, 0, "SHL", NULL, NULL },
-   { 1, 2, 0, 0, "SHR", NULL, NULL },
-   { 1, 2, 0, 0, "AND", NULL, NULL },
-   { 1, 2, 0, 0, "OR", NULL, NULL },
-   { 1, 2, 0, 0, "MOD", NULL, NULL },
-   { 1, 2, 0, 0, "XOR", NULL, NULL },
-   { 1, 3, 0, 0, "SAD", NULL, NULL },
-   { 1, 2, 1, 0, "TXF", NULL, NULL },
-   { 1, 2, 1, 0, "TXQ", NULL, NULL },
-   { 0, 0, 0, 0, "CONT", NULL, NULL },
-   { 0, 0, 0, 0, "EMIT", NULL, NULL },
-   { 0, 0, 0, 0, "ENDPRIM", NULL, NULL },
-   { 0, 0, 0, 1, "BGNLOOP2", NULL, NULL },
-   { 0, 0, 0, 0, "BGNSUB", NULL, NULL },
-   { 0, 0, 0, 1, "ENDLOOP2", NULL, NULL },
-   { 0, 0, 0, 0, "ENDSUB", NULL, NULL },
-   { 1, 1, 0, 0, "NOISE1", NULL, NULL },
-   { 1, 1, 0, 0, "NOISE2", NULL, NULL },
-   { 1, 1, 0, 0, "NOISE3", NULL, NULL },
-   { 1, 1, 0, 0, "NOISE4", NULL, NULL },
-   { 0, 0, 0, 0, "NOP", NULL, NULL },
-   { 1, 2, 0, 0, "M4X3", NULL, NULL },
-   { 1, 2, 0, 0, "M3X4", NULL, NULL },
-   { 1, 2, 0, 0, "M3X3", NULL, NULL },
-   { 1, 2, 0, 0, "M3X2", NULL, NULL },
-   { 1, 1, 0, 0, "NRM4", NULL, NULL },
-   { 0, 1, 0, 0, "CALLNZ", NULL, NULL },
-   { 0, 1, 0, 0, "IFC", NULL, NULL },
-   { 0, 1, 0, 0, "BREAKC", NULL, NULL },
-   { 0, 1, 0, 0, "KIL", "TEXKILL", NULL },
-   { 0, 0, 0, 0, "END", NULL, NULL },
-   { 1, 1, 0, 0, "SWZ", NULL, NULL }
+   { 1, 1, 0, 0, "ARL", TGSI_OPCODE_ARL },
+   { 1, 1, 0, 0, "MOV", TGSI_OPCODE_MOV },
+   { 1, 1, 0, 0, "LIT", TGSI_OPCODE_LIT },
+   { 1, 1, 0, 0, "RCP", TGSI_OPCODE_RCP },
+   { 1, 1, 0, 0, "RSQ", TGSI_OPCODE_RSQ },
+   { 1, 1, 0, 0, "EXP", TGSI_OPCODE_EXP },
+   { 1, 1, 0, 0, "LOG", TGSI_OPCODE_LOG },
+   { 1, 2, 0, 0, "MUL", TGSI_OPCODE_MUL },
+   { 1, 2, 0, 0, "ADD", TGSI_OPCODE_ADD },
+   { 1, 2, 0, 0, "DP3", TGSI_OPCODE_DP3 },
+   { 1, 2, 0, 0, "DP4", TGSI_OPCODE_DP4 },
+   { 1, 2, 0, 0, "DST", TGSI_OPCODE_DST },
+   { 1, 2, 0, 0, "MIN", TGSI_OPCODE_MIN },
+   { 1, 2, 0, 0, "MAX", TGSI_OPCODE_MAX },
+   { 1, 2, 0, 0, "SLT", TGSI_OPCODE_SLT },
+   { 1, 2, 0, 0, "SGE", TGSI_OPCODE_SGE },
+   { 1, 3, 0, 0, "MAD", TGSI_OPCODE_MAD },
+   { 1, 2, 0, 0, "SUB", TGSI_OPCODE_SUB },
+   { 1, 3, 0, 0, "LRP", TGSI_OPCODE_LRP },
+   { 1, 3, 0, 0, "CND", TGSI_OPCODE_CND },
+   { 1, 3, 0, 0, "CND0", TGSI_OPCODE_CND0 },
+   { 1, 3, 0, 0, "DP2A", TGSI_OPCODE_DP2A },
+   { 1, 2, 0, 0, "INDEX", TGSI_OPCODE_INDEX },
+   { 1, 1, 0, 0, "NEGATE", TGSI_OPCODE_NEGATE },
+   { 1, 1, 0, 0, "FRC", TGSI_OPCODE_FRC },
+   { 1, 3, 0, 0, "CLAMP", TGSI_OPCODE_CLAMP },
+   { 1, 1, 0, 0, "FLR", TGSI_OPCODE_FLR },
+   { 1, 1, 0, 0, "ROUND", TGSI_OPCODE_ROUND },
+   { 1, 1, 0, 0, "EX2", TGSI_OPCODE_EX2 },
+   { 1, 1, 0, 0, "LG2", TGSI_OPCODE_LG2 },
+   { 1, 2, 0, 0, "POW", TGSI_OPCODE_POW },
+   { 1, 2, 0, 0, "XPD", TGSI_OPCODE_XPD },
+   { 1, 2, 0, 0, "M4X4", TGSI_OPCODE_MULTIPLYMATRIX },
+   { 1, 1, 0, 0, "ABS", TGSI_OPCODE_ABS },
+   { 1, 1, 0, 0, "RCC", TGSI_OPCODE_RCC },
+   { 1, 2, 0, 0, "DPH", TGSI_OPCODE_DPH },
+   { 1, 1, 0, 0, "COS", TGSI_OPCODE_COS },
+   { 1, 1, 0, 0, "DDX", TGSI_OPCODE_DDX },
+   { 1, 1, 0, 0, "DDY", TGSI_OPCODE_DDY },
+   { 0, 0, 0, 0, "KILP", TGSI_OPCODE_KILP },
+   { 1, 1, 0, 0, "PK2H", TGSI_OPCODE_PK2H },
+   { 1, 1, 0, 0, "PK2US", TGSI_OPCODE_PK2US },
+   { 1, 1, 0, 0, "PK4B", TGSI_OPCODE_PK4B },
+   { 1, 1, 0, 0, "PK4UB", TGSI_OPCODE_PK4UB },
+   { 1, 2, 0, 0, "RFL", TGSI_OPCODE_RFL },
+   { 1, 2, 0, 0, "SEQ", TGSI_OPCODE_SEQ },
+   { 1, 2, 0, 0, "SFL", TGSI_OPCODE_SFL },
+   { 1, 2, 0, 0, "SGT", TGSI_OPCODE_SGT },
+   { 1, 1, 0, 0, "SIN", TGSI_OPCODE_SIN },
+   { 1, 2, 0, 0, "SLE", TGSI_OPCODE_SLE },
+   { 1, 2, 0, 0, "SNE", TGSI_OPCODE_SNE },
+   { 1, 2, 0, 0, "STR", TGSI_OPCODE_STR },
+   { 1, 2, 1, 0, "TEX", TGSI_OPCODE_TEX },
+   { 1, 4, 1, 0, "TXD", TGSI_OPCODE_TXD },
+   { 1, 2, 1, 0, "TXP", TGSI_OPCODE_TXP },
+   { 1, 1, 0, 0, "UP2H", TGSI_OPCODE_UP2H },
+   { 1, 1, 0, 0, "UP2US", TGSI_OPCODE_UP2US },
+   { 1, 1, 0, 0, "UP4B", TGSI_OPCODE_UP4B },
+   { 1, 1, 0, 0, "UP4UB", TGSI_OPCODE_UP4UB },
+   { 1, 3, 0, 0, "X2D", TGSI_OPCODE_X2D },
+   { 1, 1, 0, 0, "ARA", TGSI_OPCODE_ARA },
+   { 1, 1, 0, 0, "ARR", TGSI_OPCODE_ARR },
+   { 0, 1, 0, 0, "BRA", TGSI_OPCODE_BRA },
+   { 0, 0, 0, 1, "CAL", TGSI_OPCODE_CAL },
+   { 0, 0, 0, 0, "RET", TGSI_OPCODE_RET },
+   { 1, 1, 0, 0, "SSG", TGSI_OPCODE_SSG },
+   { 1, 3, 0, 0, "CMP", TGSI_OPCODE_CMP },
+   { 1, 1, 0, 0, "SCS", TGSI_OPCODE_SCS },
+   { 1, 2, 1, 0, "TXB", TGSI_OPCODE_TXB },
+   { 1, 1, 0, 0, "NRM", TGSI_OPCODE_NRM },
+   { 1, 2, 0, 0, "DIV", TGSI_OPCODE_DIV },
+   { 1, 2, 0, 0, "DP2", TGSI_OPCODE_DP2 },
+   { 1, 2, 1, 0, "TXL", TGSI_OPCODE_TXL },
+   { 0, 0, 0, 0, "BRK", TGSI_OPCODE_BRK },
+   { 0, 1, 0, 1, "IF", TGSI_OPCODE_IF },
+   { 0, 0, 0, 0, "LOOP", TGSI_OPCODE_LOOP },
+   { 0, 1, 0, 0, "REP", TGSI_OPCODE_REP },
+   { 0, 0, 0, 1, "ELSE", TGSI_OPCODE_ELSE },
+   { 0, 0, 0, 0, "ENDIF", TGSI_OPCODE_ENDIF },
+   { 0, 0, 0, 0, "ENDLOOP", TGSI_OPCODE_ENDLOOP },
+   { 0, 0, 0, 0, "ENDREP", TGSI_OPCODE_ENDREP },
+   { 0, 1, 0, 0, "PUSHA", TGSI_OPCODE_PUSHA },
+   { 1, 0, 0, 0, "POPA", TGSI_OPCODE_POPA },
+   { 1, 1, 0, 0, "CEIL", TGSI_OPCODE_CEIL },
+   { 1, 1, 0, 0, "I2F", TGSI_OPCODE_I2F },
+   { 1, 1, 0, 0, "NOT", TGSI_OPCODE_NOT },
+   { 1, 1, 0, 0, "TRUNC", TGSI_OPCODE_TRUNC },
+   { 1, 2, 0, 0, "SHL", TGSI_OPCODE_SHL },
+   { 1, 2, 0, 0, "SHR", TGSI_OPCODE_SHR },
+   { 1, 2, 0, 0, "AND", TGSI_OPCODE_AND },
+   { 1, 2, 0, 0, "OR", TGSI_OPCODE_OR },
+   { 1, 2, 0, 0, "MOD", TGSI_OPCODE_MOD },
+   { 1, 2, 0, 0, "XOR", TGSI_OPCODE_XOR },
+   { 1, 3, 0, 0, "SAD", TGSI_OPCODE_SAD },
+   { 1, 2, 1, 0, "TXF", TGSI_OPCODE_TXF },
+   { 1, 2, 1, 0, "TXQ", TGSI_OPCODE_TXQ },
+   { 0, 0, 0, 0, "CONT", TGSI_OPCODE_CONT },
+   { 0, 0, 0, 0, "EMIT", TGSI_OPCODE_EMIT },
+   { 0, 0, 0, 0, "ENDPRIM", TGSI_OPCODE_ENDPRIM },
+   { 0, 0, 0, 1, "BGNLOOP2", TGSI_OPCODE_BGNLOOP2 },
+   { 0, 0, 0, 0, "BGNSUB", TGSI_OPCODE_BGNSUB },
+   { 0, 0, 0, 1, "ENDLOOP2", TGSI_OPCODE_ENDLOOP2 },
+   { 0, 0, 0, 0, "ENDSUB", TGSI_OPCODE_ENDSUB },
+   { 1, 1, 0, 0, "NOISE1", TGSI_OPCODE_NOISE1 },
+   { 1, 1, 0, 0, "NOISE2", TGSI_OPCODE_NOISE2 },
+   { 1, 1, 0, 0, "NOISE3", TGSI_OPCODE_NOISE3 },
+   { 1, 1, 0, 0, "NOISE4", TGSI_OPCODE_NOISE4 },
+   { 0, 0, 0, 0, "NOP", TGSI_OPCODE_NOP },
+   { 1, 2, 0, 0, "M4X3", TGSI_OPCODE_M4X3 },
+   { 1, 2, 0, 0, "M3X4", TGSI_OPCODE_M3X4 },
+   { 1, 2, 0, 0, "M3X3", TGSI_OPCODE_M3X3 },
+   { 1, 2, 0, 0, "M3X2", TGSI_OPCODE_M3X2 },
+   { 1, 1, 0, 0, "NRM4", TGSI_OPCODE_NRM4 },
+   { 0, 1, 0, 0, "CALLNZ", TGSI_OPCODE_CALLNZ },
+   { 0, 1, 0, 0, "IFC", TGSI_OPCODE_IFC },
+   { 0, 1, 0, 0, "BREAKC", TGSI_OPCODE_BREAKC },
+   { 0, 1, 0, 0, "KIL", TGSI_OPCODE_KIL },
+   { 0, 0, 0, 0, "END", TGSI_OPCODE_END },
+   { 1, 1, 0, 0, "SWZ", TGSI_OPCODE_SWZ }
 };
 
 const struct tgsi_opcode_info *
 tgsi_get_opcode_info( uint opcode )
 {
+   static boolean firsttime = 1;
+
+   if (firsttime) {
+      unsigned i;
+      firsttime = 0;
+      for (i = 0; i < Elements(opcode_info); i++)
+         assert(opcode_info[i].opcode == i);
+   }
+   
    if (opcode < TGSI_OPCODE_LAST)
       return &opcode_info[opcode];
+
    assert( 0 );
    return NULL;
 }
index 077e25acd7f75dd0a1548ee1c8eddb4c48e27ec1..16577598bb0a13933a4a5bba90da85fa95d83445 100644 (file)
@@ -41,8 +41,7 @@ struct tgsi_opcode_info
    boolean is_tex;
    boolean is_branch;
    const char *mnemonic;
-   const char *alt_mnemonic1;
-   const char *alt_mnemonic2;
+   uint opcode;
 };
 
 const struct tgsi_opcode_info *
index c3470176f93bd45f0023f5e0cbd323b1d003e580..a2d4627da9c44ec45e31135fa946dba21cb9e425 100644 (file)
@@ -2064,8 +2064,7 @@ emit_instruction(
       }
       break;
 
-   case TGSI_OPCODE_LERP:
-   /* TGSI_OPCODE_LRP */
+   case TGSI_OPCODE_LRP:
       FOR_EACH_DST0_ENABLED_CHANNEL( *inst, chan_index ) {
          FETCH( func, *inst, 0, 0, chan_index );
          FETCH( func, *inst, 1, 1, chan_index );
@@ -2085,8 +2084,7 @@ emit_instruction(
       return 0;
       break;
 
-   case TGSI_OPCODE_DOT2ADD:
-   /* TGSI_OPCODE_DP2A */
+   case TGSI_OPCODE_DP2A:
       FETCH( func, *inst, 0, 0, CHAN_X );  /* xmm0 = src[0].x */
       FETCH( func, *inst, 1, 1, CHAN_X );  /* xmm1 = src[1].x */
       emit_mul( func, 0, 1 );              /* xmm0 = xmm0 * xmm1 */
@@ -2109,8 +2107,7 @@ emit_instruction(
       return 0;
       break;
 
-   case TGSI_OPCODE_FRAC:
-   /* TGSI_OPCODE_FRC */
+   case TGSI_OPCODE_FRC:
       FOR_EACH_DST0_ENABLED_CHANNEL( *inst, chan_index ) {
          FETCH( func, *inst, 0, 0, chan_index );
          emit_frc( func, 0, 0 );
@@ -2122,8 +2119,7 @@ emit_instruction(
       return 0;
       break;
 
-   case TGSI_OPCODE_FLOOR:
-   /* TGSI_OPCODE_FLR */
+   case TGSI_OPCODE_FLR:
       FOR_EACH_DST0_ENABLED_CHANNEL( *inst, chan_index ) {
          FETCH( func, *inst, 0, 0, chan_index );
          emit_flr( func, 0, 0 );
@@ -2139,8 +2135,7 @@ emit_instruction(
       }
       break;
 
-   case TGSI_OPCODE_EXPBASE2:
-   /* TGSI_OPCODE_EX2 */
+   case TGSI_OPCODE_EX2:
       FETCH( func, *inst, 0, 0, CHAN_X );
       emit_ex2( func, 0, 0 );
       FOR_EACH_DST0_ENABLED_CHANNEL( *inst, chan_index ) {
@@ -2148,8 +2143,7 @@ emit_instruction(
       }
       break;
 
-   case TGSI_OPCODE_LOGBASE2:
-   /* TGSI_OPCODE_LG2 */
+   case TGSI_OPCODE_LG2:
       FETCH( func, *inst, 0, 0, CHAN_X );
       emit_lg2( func, 0, 0 );
       FOR_EACH_DST0_ENABLED_CHANNEL( *inst, chan_index ) {
@@ -2157,8 +2151,7 @@ emit_instruction(
       }
       break;
 
-   case TGSI_OPCODE_POWER:
-   /* TGSI_OPCODE_POW */
+   case TGSI_OPCODE_POW:
       FETCH( func, *inst, 0, 0, CHAN_X );
       FETCH( func, *inst, 1, 1, CHAN_X );
       emit_pow( func, 0, 0, 0, 1 );
@@ -2167,8 +2160,7 @@ emit_instruction(
       }
       break;
 
-   case TGSI_OPCODE_CROSSPRODUCT:
-   /* TGSI_OPCODE_XPD */
+   case TGSI_OPCODE_XPD:
       if( IS_DST0_CHANNEL_ENABLED( *inst, CHAN_X ) ||
           IS_DST0_CHANNEL_ENABLED( *inst, CHAN_Y ) ) {
          FETCH( func, *inst, 1, 1, CHAN_Z );
index 3024da6a328b9331d8c2bf0264aee67d9e8c8709..bfcbc40982a7558f3406b24a6b5e27d3e3d7037c 100644 (file)
@@ -789,16 +789,6 @@ match_inst_mnemonic(const char **pcur,
    if (str_match_no_case(pcur, info->mnemonic)) {
       return TRUE;
    }
-   if (info->alt_mnemonic1) {
-      if (str_match_no_case(pcur, info->alt_mnemonic1)) {
-         return TRUE;
-      }
-      if (info->alt_mnemonic2) {
-         if (str_match_no_case(pcur, info->alt_mnemonic2)) {
-            return TRUE;
-         }
-      }
-   }
    return FALSE;
 }
 
index b87aae6197301be6f0a175d8d99b8102a7634d46..3dfc914269a080683e7181bbb592fc66d04893a1 100644 (file)
@@ -182,31 +182,31 @@ union tgsi_immediate_data
  * GL_ATI_fragment_shader
  */
 #define TGSI_OPCODE_SUB                 17
-#define TGSI_OPCODE_DOT3                TGSI_OPCODE_DP3
-#define TGSI_OPCODE_DOT4                TGSI_OPCODE_DP4
-#define TGSI_OPCODE_LERP                18
+/*#define TGSI_OPCODE_DOT3                TGSI_OPCODE_DP3*/
+/*#define TGSI_OPCODE_DOT4                TGSI_OPCODE_DP4*/
+#define TGSI_OPCODE_LRP                 18
 #define TGSI_OPCODE_CND                 19
 #define TGSI_OPCODE_CND0                20
-#define TGSI_OPCODE_DOT2ADD             21
+#define TGSI_OPCODE_DP2A                21
 
 /*
  * GL_EXT_vertex_shader
  */
 #define TGSI_OPCODE_INDEX               22   /* considered for removal */
 #define TGSI_OPCODE_NEGATE              23   /* considered for removal */
-#define TGSI_OPCODE_MADD                TGSI_OPCODE_MAD
-#define TGSI_OPCODE_FRAC                24
-#define TGSI_OPCODE_SETGE               TGSI_OPCODE_SGE
-#define TGSI_OPCODE_SETLT               TGSI_OPCODE_SLT
+/*#define TGSI_OPCODE_MADD                TGSI_OPCODE_MAD*/
+#define TGSI_OPCODE_FR                24
+/*#define TGSI_OPCODE_SETGE               TGSI_OPCODE_SGE*/
+/*#define TGSI_OPCODE_SETLT               TGSI_OPCODE_SLT*/
 #define TGSI_OPCODE_CLAMP               25
-#define TGSI_OPCODE_FLOOR               26
+#define TGSI_OPCODE_FLR                 26
 #define TGSI_OPCODE_ROUND               27
-#define TGSI_OPCODE_EXPBASE2            28
-#define TGSI_OPCODE_LOGBASE2            29
-#define TGSI_OPCODE_POWER               30
-#define TGSI_OPCODE_RECIP               TGSI_OPCODE_RCP
-#define TGSI_OPCODE_RECIPSQRT           TGSI_OPCODE_RSQ
-#define TGSI_OPCODE_CROSSPRODUCT        31
+#define TGSI_OPCODE_EX2                 28
+#define TGSI_OPCODE_LG2                 29
+#define TGSI_OPCODE_POW                 30
+/*#define TGSI_OPCODE_RECIP               TGSI_OPCODE_RCP*/
+/*#define TGSI_OPCODE_RECIPSQRT           TGSI_OPCODE_RSQ*/
+#define TGSI_OPCODE_XPD                 31
 #define TGSI_OPCODE_MULTIPLYMATRIX      32   /* considered for removal */
 
 /*
@@ -222,17 +222,17 @@ union tgsi_immediate_data
 #define TGSI_OPCODE_COS                 36
 #define TGSI_OPCODE_DDX                 37
 #define TGSI_OPCODE_DDY                 38
-#define TGSI_OPCODE_EX2                 TGSI_OPCODE_EXPBASE2
-#define TGSI_OPCODE_FLR                 TGSI_OPCODE_FLOOR
-#define TGSI_OPCODE_FRC                 TGSI_OPCODE_FRAC
+/*#define TGSI_OPCODE_EX2                 TGSI_OPCODE_EXPBASE2*/
+/*#define TGSI_OPCODE_FLR                 TGSI_OPCODE_FLOOR*/
+/*#define TGSI_OPCODE_FRC                 TGSI_OPCODE_FRAC*/
 #define TGSI_OPCODE_KILP                39  /* predicated kill */
-#define TGSI_OPCODE_LG2                 TGSI_OPCODE_LOGBASE2
-#define TGSI_OPCODE_LRP                 TGSI_OPCODE_LERP
+/*#define TGSI_OPCODE_LG2                 TGSI_OPCODE_LOGBASE2*/
+/*#define TGSI_OPCODE_LRP                 TGSI_OPCODE_LERP*/
 #define TGSI_OPCODE_PK2H                40
 #define TGSI_OPCODE_PK2US               41
 #define TGSI_OPCODE_PK4B                42
 #define TGSI_OPCODE_PK4UB               43
-#define TGSI_OPCODE_POW                 TGSI_OPCODE_POWER
+/*#define TGSI_OPCODE_POW                 TGSI_OPCODE_POWER*/
 #define TGSI_OPCODE_RFL                 44
 #define TGSI_OPCODE_SEQ                 45
 #define TGSI_OPCODE_SFL                 46
@@ -264,7 +264,7 @@ union tgsi_immediate_data
  * GL_ARB_vertex_program
  */
 #define TGSI_OPCODE_SWZ                 118
-#define TGSI_OPCODE_XPD                 TGSI_OPCODE_CROSSPRODUCT
+/*#define TGSI_OPCODE_XPD                 TGSI_OPCODE_CROSSPRODUCT*/
 
 /*
  * GL_ARB_fragment_program
@@ -285,7 +285,7 @@ union tgsi_immediate_data
 #define TGSI_OPCODE_NRM                 69
 #define TGSI_OPCODE_DIV                 70
 #define TGSI_OPCODE_DP2                 71
-#define TGSI_OPCODE_DP2A                TGSI_OPCODE_DOT2ADD
+/*#define TGSI_OPCODE_DP2A                TGSI_OPCODE_DOT2ADD*/
 #define TGSI_OPCODE_TXL                 72
 #define TGSI_OPCODE_BRK                 73
 #define TGSI_OPCODE_IF                  74
@@ -348,7 +348,7 @@ union tgsi_immediate_data
 #define TGSI_OPCODE_BGNSUB              100
 #define TGSI_OPCODE_ENDLOOP2            101
 #define TGSI_OPCODE_ENDSUB              102
-#define TGSI_OPCODE_INT                 TGSI_OPCODE_TRUNC
+/*#define TGSI_OPCODE_INT                 TGSI_OPCODE_TRUNC*/
 #define TGSI_OPCODE_NOISE1              103
 #define TGSI_OPCODE_NOISE2              104
 #define TGSI_OPCODE_NOISE3              105
@@ -358,7 +358,7 @@ union tgsi_immediate_data
 /*
  * ps_1_1
  */
-#define TGSI_OPCODE_TEXKILL             TGSI_OPCODE_KIL
+/*#define TGSI_OPCODE_TEXKILL             TGSI_OPCODE_KIL*/
 
 /*
  * ps_1_2
@@ -373,45 +373,45 @@ union tgsi_immediate_data
 /*
  * ps_1_4
  */
-#define TGSI_OPCODE_TEXLD               TGSI_OPCODE_TEX
+/*#define TGSI_OPCODE_TEXLD               TGSI_OPCODE_TEX*/
 
 /*
  * ps_2_0
  */
-#define TGSI_OPCODE_M4X4                TGSI_OPCODE_MULTIPLYMATRIX
+/*#define TGSI_OPCODE_M4X4                TGSI_OPCODE_MULTIPLYMATRIX*/
 #define TGSI_OPCODE_M4X3                108
 #define TGSI_OPCODE_M3X4                109
 #define TGSI_OPCODE_M3X3                110
 #define TGSI_OPCODE_M3X2                111
-#define TGSI_OPCODE_CRS                 TGSI_OPCODE_XPD
+/*#define TGSI_OPCODE_CRS                 TGSI_OPCODE_XPD*/
 #define TGSI_OPCODE_NRM4                112
-#define TGSI_OPCODE_SINCOS              TGSI_OPCODE_SCS
-#define TGSI_OPCODE_TEXLDB              TGSI_OPCODE_TXB
-#define TGSI_OPCODE_DP2ADD              TGSI_OPCODE_DP2A
+/*#define TGSI_OPCODE_SINCOS              TGSI_OPCODE_SCS*/
+/*#define TGSI_OPCODE_TEXLDB              TGSI_OPCODE_TXB*/
+/*#define TGSI_OPCODE_DP2ADD              TGSI_OPCODE_DP2A*/
 
 /*
  * ps_2_x
  */
-#define TGSI_OPCODE_CALL                TGSI_OPCODE_CAL
+/*#define TGSI_OPCODE_CALL                TGSI_OPCODE_CAL*/
 #define TGSI_OPCODE_CALLNZ              113
 #define TGSI_OPCODE_IFC                 114
-#define TGSI_OPCODE_BREAK               TGSI_OPCODE_BRK
+/*#define TGSI_OPCODE_BREAK               TGSI_OPCODE_BRK*/
 #define TGSI_OPCODE_BREAKC              115
-#define TGSI_OPCODE_DSX                 TGSI_OPCODE_DDX
-#define TGSI_OPCODE_DSY                 TGSI_OPCODE_DDY
-#define TGSI_OPCODE_TEXLDD              TGSI_OPCODE_TXD
+/*#define TGSI_OPCODE_DSX                 TGSI_OPCODE_DDX*/
+/*#define TGSI_OPCODE_DSY                 TGSI_OPCODE_DDY*/
+/*#define TGSI_OPCODE_TEXLDD              TGSI_OPCODE_TXD*/
 
 /*
  * vs_1_1
  */
-#define TGSI_OPCODE_EXPP                TGSI_OPCODE_EXP
-#define TGSI_OPCODE_LOGP                TGSI_OPCODE_LG2
+/*#define TGSI_OPCODE_EXPP                TGSI_OPCODE_EXP*/
+/*#define TGSI_OPCODE_LOGP                TGSI_OPCODE_LG2*/
 
 /*
  * vs_2_0
  */
-#define TGSI_OPCODE_SGN                 TGSI_OPCODE_SSG
-#define TGSI_OPCODE_MOVA                TGSI_OPCODE_ARR
+/*#define TGSI_OPCODE_SGN                 TGSI_OPCODE_SSG*/
+/*#define TGSI_OPCODE_MOVA                TGSI_OPCODE_ARR*/
 /* EXPP - use TGSI_OPCODE_EX2 */
 
 /*