OSDN Git Service

BRK and CONT work the same
authorBrian <brian@nostromo.localnet.net>
Wed, 7 Feb 2007 05:34:09 +0000 (22:34 -0700)
committerBrian <brian@nostromo.localnet.net>
Wed, 7 Feb 2007 05:34:09 +0000 (22:34 -0700)
src/mesa/swrast/s_fragprog.c

index 63974b3..403a03a 100644 (file)
@@ -703,22 +703,10 @@ execute_program( GLcontext *ctx,
             }
             break;
          case OPCODE_BRK: /* break out of loop */
-            {
-#if 0
-               /* The location of the ENDLOOP instruction is saved in the
-                * BGNLOOP instruction.  Get that instruction and jump to
-                * its BranchTarget + 1.
-                */
-               const struct prog_instruction *loopBeginInst
-                  = program->Base.Instructions + inst->BranchTarget;
-               ASSERT(loopBeginInst->Opcode == OPCODE_BGNLOOP);
-               ASSERT(loopBeginInst->BranchTarget >= 0);
-               /* we'll add one at bottom of for-loop */
-               pc = loopBeginInst->BranchTarget;
-#else
-               pc = inst->BranchTarget - 1;
-#endif
-            }
+            /* fall-through */
+         case OPCODE_CONT: /* continue loop */
+            /* Subtract 1 here since we'll do pc++ at end of for-loop */
+            pc = inst->BranchTarget - 1;
             break;
          case OPCODE_CAL: /* Call subroutine */
             {
@@ -750,10 +738,6 @@ execute_program( GLcontext *ctx,
                store_vector4( inst, machine, result );
             }
             break;
-         case OPCODE_CONT: /* continue loop */
-            /* Subtract 1 here since we'll do pc++ at end of for-loop */
-            pc = inst->BranchTarget - 1;
-            break;
          case OPCODE_COS:
             {
                GLfloat a[4], result[4];