mesa: fix instruction indexing bugs
authorBrian Paul <brianp@vmware.com>
Fri, 9 Apr 2010 16:03:31 +0000 (10:03 -0600)
committerBrian Paul <brianp@vmware.com>
Fri, 9 Apr 2010 16:03:36 +0000 (10:03 -0600)
We were looping over instructions but only looking at the 0th instruction's
opcode.

Fixes fd.o bug 27566.

src/mesa/shader/program.c

index f4f701b54615c79b412dfae5001e46fe57bb380d..f77a7737530264537da068279c68c556b28abd71 100644 (file)
@@ -625,7 +625,7 @@ replace_registers(struct prog_instruction *inst, GLuint numInst,
    GLuint i, j;
    for (i = 0; i < numInst; i++) {
       /* src regs */
-      for (j = 0; j < _mesa_num_inst_src_regs(inst->Opcode); j++) {
+      for (j = 0; j < _mesa_num_inst_src_regs(inst[i].Opcode); j++) {
          if (inst[i].SrcReg[j].File == oldFile &&
              inst[i].SrcReg[j].Index == oldIndex) {
             inst[i].SrcReg[j].File = newFile;
@@ -652,7 +652,7 @@ adjust_param_indexes(struct prog_instruction *inst, GLuint numInst,
 {
    GLuint i, j;
    for (i = 0; i < numInst; i++) {
-      for (j = 0; j < _mesa_num_inst_src_regs(inst->Opcode); j++) {
+      for (j = 0; j < _mesa_num_inst_src_regs(inst[i].Opcode); j++) {
          GLuint f = inst[i].SrcReg[j].File;
          if (f == PROGRAM_CONSTANT ||
              f == PROGRAM_UNIFORM ||