tgsi: Lookup alternate instruction mnemonics when parsing tgsi text.
authorMichal Krol <michal@vmware.com>
Wed, 1 Apr 2009 09:49:55 +0000 (11:49 +0200)
committerMichal Krol <michal@vmware.com>
Wed, 1 Apr 2009 09:49:55 +0000 (11:49 +0200)
src/gallium/auxiliary/tgsi/tgsi_text.c

index 58fe07c11d1ac003e371001f85cfd1477d1e9c64..fdaee9b060b711bbf5081b25523748298ff71bb3 100644 (file)
@@ -740,6 +740,26 @@ static const char *texture_names[TGSI_TEXTURE_COUNT] =
    "SHADOWRECT"
 };
 
+static boolean
+match_inst_mnemonic(const char **pcur,
+                    const struct tgsi_opcode_info *info)
+{
+   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;
+}
+
 static boolean
 parse_instruction(
    struct translate_ctx *ctx,
@@ -758,7 +778,7 @@ parse_instruction(
       const char *cur = ctx->cur;
 
       info = tgsi_get_opcode_info( i );
-      if (str_match_no_case( &cur, info->mnemonic )) {
+      if (match_inst_mnemonic(&cur, info)) {
          if (str_match_no_case( &cur, "_SATNV" ))
             saturate = TGSI_SAT_MINUS_PLUS_ONE;
          else if (str_match_no_case( &cur, "_SAT" ))