r600g: fix LIT + fix multiple constant one ALU + fix ALU block splitting
authorJerome Glisse <jglisse@redhat.com>
Tue, 3 Aug 2010 18:14:58 +0000 (14:14 -0400)
committerJerome Glisse <jglisse@redhat.com>
Tue, 3 Aug 2010 18:31:49 +0000 (14:31 -0400)
commit7e42b7e5d2aebcda0e6bf081b6661411731e6df2
tree3f5d5fa8a22bc8a80511851d9232faa5411c7bd6
parent57438adf3217955f16491ef8deeffafe05c2f7f8
r600g: fix LIT + fix multiple constant one ALU + fix ALU block splitting

Make sure LIT fills all slot for instruction (can't do W instruction
without having the Z slot filled with at least a NOP).

ALU instruction can't access more than 4 constant, move constant to
temporary reg if we reach the limit.

Fix ALU block splitting, only split ALU after ALU with last instruction
bit sets.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
src/gallium/drivers/r600/Makefile
src/gallium/drivers/r600/r600_asm.c
src/gallium/drivers/r600/r600_asm.h
src/gallium/drivers/r600/r600_context.h
src/gallium/drivers/r600/r600_shader.c