pan/va: Handle shift lanes in assembler

Noticed in a program using ARM_shader_framebuffer_fetch.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14833>
This commit is contained in:
Alyssa Rosenzweig 2022-01-29 12:53:05 -05:00 committed by Marge Bot
parent b3c7159308
commit a99eac8a49

View file

@ -293,6 +293,12 @@ def parse_asm(line):
swizzled = True
val = enums['lane_8_bit'].bare_values.index(mod)
encoded |= (val << src.lane)
elif mod in enums['lanes_8_bit'].bare_values:
die_if(not src.lanes, "Instruction doesn't take a lane")
die_if(swizzled, "Multiple swizzles specified")
swizzled = True
val = enums['lanes_8_bit'].bare_values.index(mod)
encoded |= (val << src.offset['widen'])
else:
die(f"Unknown modifier {mod}")