pan/va: Add SEG_ADD/SEG_SUB operation

[Alyssa: Fixes to the instruction.]

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15588>
This commit is contained in:
Icecream95
2022-03-26 10:35:48 +13:00
committed by Alyssa Rosenzweig
parent 822dfb76de
commit 35c3073fc2
2 changed files with 16 additions and 0 deletions
+15
View File
@@ -1823,6 +1823,21 @@
<saturate/>
</group>
<group name="SEG_ADD" title="Segment addition" dests="1" opcode2="6" unit="CVT">
<desc>
Similar to SHADDX, but especially used for loading offsets into
WLS. Usually this is only required for atomic operations, which cannot
directly use wls_pointer as an address.
.neg indicates SEG_SUB instead.
</desc>
<ins name="SEG_ADD.u64" opcode="0x1A3"/>
<mod name="neg" start="38" size="1"/>
<mod name="preserve_null" start="39" size="1"/>
<src>A</src>
<src widen="true">B</src>
</group>
<group name="SHADDX" title="Shift, extend, and 64-bit add" dests="1" opcode2="7" unit="CVT">
<desc>
Sign or zero extend B to 64-bits, left-shift by `shift`, and add the
@@ -78,6 +78,7 @@ SKIP = set([
"IDP.v4s8",
"IDP.v4u8",
"FATAN_ASSIST.f32",
"SEG_ADD.u64",
"TEX_DUAL",
"TODO.VAR_TEX",
])