gallivm/tgsi: fix src modifier fetching with non-float types.
authorRoland Scheidegger <sroland@vmware.com>
Sat, 16 Feb 2013 01:26:14 +0000 (02:26 +0100)
committerRoland Scheidegger <sroland@vmware.com>
Sat, 16 Feb 2013 01:40:51 +0000 (02:40 +0100)
commitcb2e6782945d5ea6cc26f3f47d6ee04f48caf529
tree232a8598df99d646ba9239ab14c88f7a2e1285a8
parentc25ae5d27b114e23d5734f846002df1a05759658
gallivm/tgsi: fix src modifier fetching with non-float types.

Need to take the type into account. Also, if we want to allow
mov's with modifiers we need to pick a type (assume float).

v2: don't allow all modifiers on all type, in particular don't allow
absolute on non-float types and don't allow negate on unsigned.
Also treat UADD as signed (despite the name) since it is used
for handling both signed and unsigned integer arguments and otherwise
modifiers don't work.
Also add tgsi docs clarifying this.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
src/gallium/auxiliary/gallivm/lp_bld_tgsi.c
src/gallium/auxiliary/tgsi/tgsi_exec.c
src/gallium/auxiliary/tgsi/tgsi_info.c
src/gallium/docs/source/tgsi.rst