pan/va: Handle 64-bit sources in message instrs
These take up two slots, reading an aligned register pair, even though they are in a 32-bit instruction. Required to correctly model BLEND. Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15364>
This commit is contained in:
committed by
Marge Bot
parent
9878469833
commit
c7e8e8b319
@@ -258,7 +258,20 @@ def build_instr(el, overrides = {}):
|
||||
|
||||
# Get explicit sources/dests
|
||||
tsize = typesize(name)
|
||||
sources = [build_source(src, i, tsize) for i, src in enumerate(el.findall('src'))]
|
||||
sources = []
|
||||
i = 0
|
||||
|
||||
for src in el.findall('src'):
|
||||
built = build_source(src, i, tsize)
|
||||
sources += [built]
|
||||
|
||||
# 64-bit sources in a 32-bit (message) instruction count as two slots
|
||||
# Affects BLEND, ST_CVT
|
||||
if tsize != 64 and built.size == 64:
|
||||
i = i + 2
|
||||
else:
|
||||
i = i + 1
|
||||
|
||||
dests = [Dest(dest.text or '') for dest in el.findall('dest')]
|
||||
|
||||
# Get implicit ones
|
||||
|
||||
Reference in New Issue
Block a user