tgsi/scan: use wrap-around shift behavior explicitly for file_mask
authorRoland Scheidegger <sroland@vmware.com>
Fri, 2 Mar 2018 02:00:41 +0000 (03:00 +0100)
committerRoland Scheidegger <sroland@vmware.com>
Tue, 6 Mar 2018 04:18:17 +0000 (05:18 +0100)
commit06e724c7b4ade29868531edb20900859f566a077
tree3bc0c19b2094ba6e035a0ce85dc2c35cecc59de0
parent95ae6c0355379127706e516d177f7f6ee8296d48
tgsi/scan: use wrap-around shift behavior explicitly for file_mask

The comment said it will only represent the lowest 32 regs. This was
not entirely true in practice, since at least on x86 you'll get
masked shifts (unless the compiler could recognize it already and toss
it out). It turns out this actually works out alright (presumably
noone uses it for temp regs) when increasing max sampler views, so
make that behavior explicit.
Albeit it feels a bit hacky (but in any case, explicit behavior there
is better than undefined behavior).

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
src/gallium/auxiliary/tgsi/tgsi_scan.c
src/gallium/drivers/llvmpipe/lp_state_fs.c
src/gallium/drivers/swr/swr_shader.cpp