tgsi: handle some src/dst aliasing in tgsi_sse2.c
authorKeith Whitwell <keithw@vmware.com>
Sun, 13 Sep 2009 18:59:24 +0000 (11:59 -0700)
committerKeith Whitwell <keithw@vmware.com>
Sun, 13 Sep 2009 18:59:24 +0000 (11:59 -0700)
commit66a7eedaa2f66e5e941cea0303c5ec348e9cc641
treecc5f22903fea5f28f68f6f41eed17eaabe13c97a
parent86226d5ea186d3fc6013bc40a341e0c0a891de39
tgsi: handle some src/dst aliasing in tgsi_sse2.c

Src/Dst aliasing (aka SOA dependencies) requires some care to ensure
intermediate results do not overwrite yet-to-be read source registers.

This change ensures that MOV/SWZ handle this correctly, which is poor but
no worse than the current tgsi_exec.c path.  Remove the fallback as there
is nothing to be gained correctness-wise between the two implementations now.

Fixing this properly looks like a bit of work in this code, but might be
easily achieved by sending destination writes to temporary storage.
progs/fp/mov-alias.txt [new file with mode: 0644]
progs/fp/mul-alias.txt [new file with mode: 0644]
src/gallium/auxiliary/tgsi/tgsi_sse2.c