gallium: add a temporary array register file
authorZack Rusin <zackr@vmware.com>
Fri, 18 Jun 2010 17:41:20 +0000 (13:41 -0400)
committerZack Rusin <zackr@vmware.com>
Fri, 18 Jun 2010 17:46:44 +0000 (13:46 -0400)
commit101f792a2af9c9a19a050afba8b60caa689466a5
treed79405c3da0da947a90d70dc7670b03a9855b237
parent2b221e11da7a8bf759e3c359f22ba6f49d5f0997
gallium: add a temporary array register file

like normal temporaries, but allows to define a number of distinct
arrays, all of which make it explicit that they contain /indexable/
registers.
as a side-effect we're adding support for multi-dimensional destination
registers.
The whole thing looks like this:
DCL TEMPX[0][0..128]  # 0 array with 128 registers

ADD TEMPX[0][0], IN[0], IMM[0]
ADD TEMPX[0][1], IN[0], IMM[0]
ABS OUT[0], TEMPX[0][TEMP[0]]
src/gallium/auxiliary/tgsi/tgsi_build.c
src/gallium/auxiliary/tgsi/tgsi_build.h
src/gallium/auxiliary/tgsi/tgsi_dump.c
src/gallium/auxiliary/tgsi/tgsi_exec.c
src/gallium/auxiliary/tgsi/tgsi_exec.h
src/gallium/auxiliary/tgsi/tgsi_parse.c
src/gallium/auxiliary/tgsi/tgsi_parse.h
src/gallium/auxiliary/tgsi/tgsi_sanity.c
src/gallium/auxiliary/tgsi/tgsi_text.c
src/gallium/include/pipe/p_shader_tokens.h