summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/tgsi/tgsi_parse.c
diff options
context:
space:
mode:
authorZack Rusin <zackr@vmware.com>2010-06-18 09:39:16 -0400
committerZack Rusin <zackr@vmware.com>2010-06-18 13:46:44 -0400
commit2b221e11da7a8bf759e3c359f22ba6f49d5f0997 (patch)
tree30693516a8adaff9d347c5756ca2dadb57204bb7 /src/gallium/auxiliary/tgsi/tgsi_parse.c
parentd7f4250333f3649d170d71bfdc5f2faba4e8c5f8 (diff)
gallium: add a new register file - immediate array
allows one to specify a safe (bound checked) array filled with immediates. it works just like a const array and declares much like our current immediates.
Diffstat (limited to 'src/gallium/auxiliary/tgsi/tgsi_parse.c')
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_parse.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/tgsi/tgsi_parse.c b/src/gallium/auxiliary/tgsi/tgsi_parse.c
index 7e19e1fe36..ae8c868dcb 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_parse.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_parse.c
@@ -117,6 +117,17 @@ tgsi_parse_token(
next_token( ctx, &decl->Semantic );
}
+ if (decl->Declaration.File == TGSI_FILE_IMMEDIATE_ARRAY) {
+ unsigned i, j;
+ decl->ImmediateData.u = (union tgsi_immediate_data*)
+ &ctx->Tokens[ctx->Position];
+ for (i = 0; i <= decl->Range.Last; ++i) {
+ for (j = 0; j < 4; ++j) {
+ ctx->Position++;
+ }
+ }
+ }
+
break;
}