mesa: update program->NumAddressRegs field in _slang_update_inputs_outputs()
authorBrian Paul <brian.paul@tungstengraphics.com>
Wed, 17 Sep 2008 19:13:02 +0000 (13:13 -0600)
committerBrian Paul <brian.paul@tungstengraphics.com>
Wed, 17 Sep 2008 19:13:02 +0000 (13:13 -0600)
src/mesa/shader/slang/slang_link.c

index a6390846b26da3aa63e42ff9fef544342846ce5a..a44d0014770f18b46be6b3cf9505703ff239b962 100644 (file)
@@ -363,6 +363,7 @@ static void
 _slang_update_inputs_outputs(struct gl_program *prog)
 {
    GLuint i, j;
+   GLuint maxAddrReg = 0;
 
    prog->InputsRead = 0x0;
    prog->OutputsWritten = 0x0;
@@ -374,11 +375,19 @@ _slang_update_inputs_outputs(struct gl_program *prog)
          if (inst->SrcReg[j].File == PROGRAM_INPUT) {
             prog->InputsRead |= 1 << inst->SrcReg[j].Index;
          }
+         else if (inst->SrcReg[j].File == PROGRAM_ADDRESS) {
+            maxAddrReg = MAX2(maxAddrReg, inst->SrcReg[j].Index + 1);
+         }
       }
       if (inst->DstReg.File == PROGRAM_OUTPUT) {
          prog->OutputsWritten |= 1 << inst->DstReg.Index;
       }
+      else if (inst->DstReg.File == PROGRAM_ADDRESS) {
+         maxAddrReg = MAX2(maxAddrReg, inst->DstReg.Index + 1);
+      }
    }
+
+   prog->NumAddressRegs = maxAddrReg;
 }