Mesa (asm-shader-rework-3): ARB prog parser: Properly track address register bindings
Ian Romanick
idr at kemper.freedesktop.org
Tue Oct 13 22:19:54 UTC 2009
Module: Mesa
Branch: asm-shader-rework-3
Commit: 8c7b09c8e1443f6216770f988c5ff3b652d22dff
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8c7b09c8e1443f6216770f988c5ff3b652d22dff
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Fri Oct 2 22:34:00 2009 -0700
ARB prog parser: Properly track address register bindings
---
src/mesa/shader/program_parse.y | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/mesa/shader/program_parse.y b/src/mesa/shader/program_parse.y
index 704382c..79a5bc9 100644
--- a/src/mesa/shader/program_parse.y
+++ b/src/mesa/shader/program_parse.y
@@ -782,7 +782,7 @@ instResultAddr: addrReg optionalMask optionalCcMask
init_dst_reg(& $$);
$$.File = PROGRAM_ADDRESS;
- $$.Index = 0;
+ $$.Index = $1->binding;
$$.WriteMask = $2.mask;
$$.CondMask = $3.CondMask;
$$.CondSwizzle = $3.CondSwizzle;
@@ -799,6 +799,7 @@ addrUseVNS: addrReg
{
init_src_reg(& $$);
$$.Base.File = PROGRAM_ADDRESS;
+ $$.Base.Index = $1->binding;
$$.Symbol = $1;
}
;
@@ -977,6 +978,8 @@ srcReg: USED_IDENTIFIER /* temporaryReg | progParamSingle */
$$.Base.RelAddr = 1;
$$.Base.Index = $3.Base.Index;
+ $$.Base.AddrReg = $3.Base.AddrReg;
+ $$.Base.AddrComponent = $3.Base.AddrComponent;
$$.Symbol = $1;
} else {
$$.Base.Index = $1->param_binding_begin + $3.Base.Index;
@@ -1057,12 +1060,10 @@ progParamArrayAbs: INTEGER
progParamArrayRel: addrReg addrComponent addrRegRelOffset
{
- /* FINISHME: Add support for multiple address registers.
- */
init_src_reg(& $$);
$$.Base.RelAddr = 1;
$$.Base.Index = $3;
- $$.Base.AddrReg = 0;
+ $$.Base.AddrReg = $1->binding;
$$.Base.AddrComponent = $2;
}
;
@@ -2531,8 +2532,7 @@ declare_variable(struct asm_parser_state *state, char *name, enum asm_type t,
return NULL;
}
- /* FINISHME: Add support for multiple address registers.
- */
+ s->binding = state->prog->NumAddressRegs;
state->prog->NumAddressRegs++;
break;
More information about the mesa-commit
mailing list