summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/tgsi/tgsi_exec.c
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2013-03-07 15:02:31 +0100
committerChristian König <christian.koenig@amd.com>2013-03-19 13:38:32 +0100
commit21190fbd56ec2f12dc5a1bf1d9fc32d507e8f0a3 (patch)
tree9e871eed177a4ac7143946efbe69b2f5ec48ffe3 /src/gallium/auxiliary/tgsi/tgsi_exec.c
parent16caeff2a5cc1237d30de9487b48b1cd775d9ae1 (diff)
downloadexternal_mesa3d-21190fbd56ec2f12dc5a1bf1d9fc32d507e8f0a3.zip
external_mesa3d-21190fbd56ec2f12dc5a1bf1d9fc32d507e8f0a3.tar.gz
external_mesa3d-21190fbd56ec2f12dc5a1bf1d9fc32d507e8f0a3.tar.bz2
tgsi: use separate structure for indirect address v2
To further improve the optimization of source and destination indirect addressing we need the ability to store a reference to the declaration of the addressed operands. Since most of the fields in tgsi_src_register doesn't apply for an indirect addressing operand replace it with a separate tgsi_ind_register structure and so make room for extra information. v2: rename Declaration to ArrayID, put the ArrayID into () instead of [] Signed-off-by: Christian König <christian.koenig@amd.com>
Diffstat (limited to 'src/gallium/auxiliary/tgsi/tgsi_exec.c')
-rw-r--r--src/gallium/auxiliary/tgsi/tgsi_exec.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.c b/src/gallium/auxiliary/tgsi/tgsi_exec.c
index 1af2395..8579d8a 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_exec.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_exec.c
@@ -1193,7 +1193,7 @@ fetch_source(const struct tgsi_exec_machine *mach,
index2.i[2] =
index2.i[3] = reg->Indirect.Index;
/* get current value of address register[swizzle] */
- swizzle = tgsi_util_get_src_register_swizzle( &reg->Indirect, TGSI_CHAN_X );
+ swizzle = reg->Indirect.Swizzle;
fetch_src_file_channel(mach,
chan_index,
reg->Indirect.File,
@@ -1253,7 +1253,7 @@ fetch_source(const struct tgsi_exec_machine *mach,
index2.i[2] =
index2.i[3] = reg->DimIndirect.Index;
- swizzle = tgsi_util_get_src_register_swizzle( &reg->DimIndirect, TGSI_CHAN_X );
+ swizzle = reg->DimIndirect.Swizzle;
fetch_src_file_channel(mach,
chan_index,
reg->DimIndirect.File,
@@ -1357,7 +1357,7 @@ store_dest(struct tgsi_exec_machine *mach,
index.i[3] = reg->Indirect.Index;
/* get current value of address register[swizzle] */
- swizzle = tgsi_util_get_src_register_swizzle( &reg->Indirect, TGSI_CHAN_X );
+ swizzle = reg->Indirect.Swizzle;
/* fetch values from the address/indirection register */
fetch_src_file_channel(mach,
@@ -1409,7 +1409,7 @@ store_dest(struct tgsi_exec_machine *mach,
index2.i[2] =
index2.i[3] = reg->DimIndirect.Index;
- swizzle = tgsi_util_get_src_register_swizzle( &reg->DimIndirect, TGSI_CHAN_X );
+ swizzle = reg->DimIndirect.Swizzle;
fetch_src_file_channel(mach,
chan_index,
reg->DimIndirect.File,