mesa: Factor out index function that will have multiple use.
[mesa.git] / src / mesa / program / program_parse_extra.c
index 71f86d13acea82815ee824fecdb9224cdfbe25b1..c82c9c1b7510e356e071dd8fc444a8268c6e2ec5 100644 (file)
@@ -38,46 +38,9 @@ _mesa_parse_instruction_suffix(const struct asm_parser_state *state,
                               const char *suffix,
                               struct prog_instruction *inst)
 {
-   inst->CondUpdate = 0;
-   inst->CondDst = 0;
    inst->Saturate = GL_FALSE;
-   inst->Precision = FLOAT32;
 
-
-   /* The first possible suffix element is the precision specifier from
-    * NV_fragment_program_option.
-    */
-   if (state->option.NV_fragment) {
-      switch (suffix[0]) {
-      case 'H':
-        inst->Precision = FLOAT16;
-        suffix++;
-        break;
-      case 'R':
-        inst->Precision = FLOAT32;
-        suffix++;
-        break;
-      case 'X':
-        inst->Precision = FIXED12;
-        suffix++;
-        break;
-      default:
-        break;
-      }
-   }
-
-   /* The next possible suffix element is the condition code modifier selection
-    * from NV_fragment_program_option.
-    */
-   if (state->option.NV_fragment) {
-      if (suffix[0] == 'C') {
-        inst->CondUpdate = 1;
-        suffix++;
-      }
-   }
-
-
-   /* The final possible suffix element is the saturation selector from
+   /* The only possible suffix element is the saturation selector from
     * ARB_fragment_program.
     */
    if (state->mode == ARB_fragment) {
@@ -87,67 +50,12 @@ _mesa_parse_instruction_suffix(const struct asm_parser_state *state,
       }
    }
 
-
    /* It is an error for all of the suffix string not to be consumed.
     */
    return suffix[0] == '\0';
 }
 
 
-int
-_mesa_parse_cc(const char *s)
-{
-   int cond = 0;
-
-   switch (s[0]) {
-   case 'E':
-      if (s[1] == 'Q') {
-        cond = COND_EQ;
-      }
-      break;
-
-   case 'F':
-      if (s[1] == 'L') {
-        cond = COND_FL;
-      }
-      break;
-
-   case 'G':
-      if (s[1] == 'E') {
-        cond = COND_GE;
-      } else if (s[1] == 'T') {
-        cond = COND_GT;
-      }
-      break;
-
-   case 'L':
-      if (s[1] == 'E') {
-        cond = COND_LE;
-      } else if (s[1] == 'T') {
-        cond = COND_LT;
-      }
-      break;
-
-   case 'N':
-      if (s[1] == 'E') {
-        cond = COND_NE;
-      }
-      break;
-
-   case 'T':
-      if (s[1] == 'R') {
-        cond = COND_TR;
-      }
-      break;
-
-   default:
-      break;
-   }
-
-   return ((cond == 0) || (s[2] != '\0')) ? 0 : cond;
-}
-
-
 int
 _mesa_ARBvp_parse_option(struct asm_parser_state *state, const char *option)
 {
@@ -175,7 +83,6 @@ _mesa_ARBfp_parse_option(struct asm_parser_state *state, const char *option)
        */
       option += 4;
 
-
       if (strncmp(option, "fog_", 4) == 0) {
         option += 4;
 
@@ -226,10 +133,12 @@ _mesa_ARBfp_parse_option(struct asm_parser_state *state, const char *option)
           * program options will fail to load.
           */
 
-         if (strcmp(option, "nicest") == 0 && state->option.PrecisionHint != OPTION_FASTEST) {
+         if (strcmp(option, "nicest") == 0 &&
+             state->option.PrecisionHint != OPTION_FASTEST) {
             state->option.PrecisionHint = OPTION_NICEST;
             return 1;
-         } else if (strcmp(option, "fastest") == 0 && state->option.PrecisionHint != OPTION_NICEST) {
+         } else if (strcmp(option, "fastest") == 0 &&
+                    state->option.PrecisionHint != OPTION_NICEST) {
             state->option.PrecisionHint = OPTION_FASTEST;
             return 1;
          }
@@ -269,17 +178,6 @@ _mesa_ARBfp_parse_option(struct asm_parser_state *state, const char *option)
         state->option.DrawBuffers = 1;
         return 1;
       }
-   } else if (strncmp(option, "NV_fragment_program", 19) == 0) {
-      option += 19;
-
-      /* Other NV_fragment_program strings may be supported later.
-       */
-      if (option[0] == '\0') {
-        if (state->ctx->Extensions.NV_fragment_program_option) {
-           state->option.NV_fragment = 1;
-           return 1;
-        }
-      }
    }
 
    return 0;