Mesa (master): gallium: remove multiple aliases for TGSI opcodes

Keith Whitwell keithw at kemper.freedesktop.org
Wed Jul 22 11:42:44 UTC 2009


Module: Mesa
Branch: master
Commit: ede9f3b52ecb27ada81fee06a943bb595c60eaee
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ede9f3b52ecb27ada81fee06a943bb595c60eaee

Author: Keith Whitwell <keithw at vmware.com>
Date:   Fri Jun 12 11:59:01 2009 +0100

gallium: remove multiple aliases for TGSI opcodes

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   |   14 +-
 src/gallium/auxiliary/tgsi/tgsi_exec.c     |   24 +--
 src/gallium/auxiliary/tgsi/tgsi_info.c     |  249 +++++++++++++++-------------
 src/gallium/auxiliary/tgsi/tgsi_info.h     |    3 +-
 src/gallium/auxiliary/tgsi/tgsi_sse2.c     |   24 +--
 src/gallium/auxiliary/tgsi/tgsi_text.c     |   10 -
 src/gallium/include/pipe/p_shader_tokens.h |   80 +++++-----
 7 files changed, 194 insertions(+), 210 deletions(-)

diff --git a/src/gallium/auxiliary/draw/draw_vs_aos.c b/src/gallium/auxiliary/draw/draw_vs_aos.c
index 68402be..62e04a6 100644
--- a/src/gallium/auxiliary/draw/draw_vs_aos.c
+++ b/src/gallium/auxiliary/draw/draw_vs_aos.c
@@ -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:
diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.c b/src/gallium/auxiliary/tgsi/tgsi_exec.c
index 8c68a10..b193fd7 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_exec.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_exec.c
@@ -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);
 
diff --git a/src/gallium/auxiliary/tgsi/tgsi_info.c b/src/gallium/auxiliary/tgsi/tgsi_info.c
index 37f2b66..29b8115 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_info.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_info.c
@@ -26,136 +26,147 @@
  **************************************************************************/
 
 #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;
 }
diff --git a/src/gallium/auxiliary/tgsi/tgsi_info.h b/src/gallium/auxiliary/tgsi/tgsi_info.h
index 077e25a..1657759 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_info.h
+++ b/src/gallium/auxiliary/tgsi/tgsi_info.h
@@ -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 *
diff --git a/src/gallium/auxiliary/tgsi/tgsi_sse2.c b/src/gallium/auxiliary/tgsi/tgsi_sse2.c
index c347017..a2d4627 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_sse2.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_sse2.c
@@ -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 );
diff --git a/src/gallium/auxiliary/tgsi/tgsi_text.c b/src/gallium/auxiliary/tgsi/tgsi_text.c
index 3024da6..bfcbc40 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_text.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_text.c
@@ -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;
 }
 
diff --git a/src/gallium/include/pipe/p_shader_tokens.h b/src/gallium/include/pipe/p_shader_tokens.h
index b87aae6..3dfc914 100644
--- a/src/gallium/include/pipe/p_shader_tokens.h
+++ b/src/gallium/include/pipe/p_shader_tokens.h
@@ -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_FRC                 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 */
 
 /*




More information about the mesa-commit mailing list