mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 09:28:07 +02:00
freedreno/ir3: split up load/store/atomic by generation
Some bits are slightly different on a4xx. Use the encodings that work. Perhaps these can be combined at some point if we get a proper understanding of what they mean. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: Rob Clark <robdclark@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14789>
This commit is contained in:
parent
b91b036322
commit
3d41414d26
1 changed files with 116 additions and 15 deletions
|
|
@ -436,6 +436,13 @@ SOFTWARE.
|
|||
</bitset>
|
||||
|
||||
<bitset name="ldgb" extends="#instruction-cat6-a3xx-ibo-load">
|
||||
<gen max="499"/>
|
||||
<pattern low="54" high="58">11011</pattern> <!-- OPC -->
|
||||
<pattern pos="0" >1</pattern> <!-- .a -->
|
||||
</bitset>
|
||||
|
||||
<bitset name="ldgb" extends="#instruction-cat6-a3xx-ibo-load">
|
||||
<gen min="500"/>
|
||||
<pattern low="54" high="58">11011</pattern> <!-- OPC -->
|
||||
<pattern pos="0" >x</pattern> <!-- .a -->
|
||||
</bitset>
|
||||
|
|
@ -451,7 +458,6 @@ SOFTWARE.
|
|||
</display>
|
||||
<gen max="599"/>
|
||||
|
||||
<pattern pos="0" >1</pattern> <!-- .a -->
|
||||
<field low="1" high="8" name="SRC1" type="#reg-gpr"/>
|
||||
<pattern low="14" high="22">xxxxxxxxx</pattern>
|
||||
<field pos="23" name="SRC2_IM" type="bool"/>
|
||||
|
|
@ -472,11 +478,31 @@ SOFTWARE.
|
|||
</encode>
|
||||
</bitset>
|
||||
|
||||
<bitset name="stgb" extends="#instruction-cat6-a3xx-ibo-store">
|
||||
<bitset name="#instruction-cat6-a3xx-ibo-store-a4xx" extends="#instruction-cat6-a3xx-ibo-store">
|
||||
<pattern pos="0" >0</pattern> <!-- .a -->
|
||||
</bitset>
|
||||
|
||||
<bitset name="#instruction-cat6-a3xx-ibo-store-a5xx" extends="#instruction-cat6-a3xx-ibo-store">
|
||||
<pattern pos="0" >1</pattern> <!-- .a -->
|
||||
</bitset>
|
||||
|
||||
<bitset name="stgb" extends="#instruction-cat6-a3xx-ibo-store-a5xx">
|
||||
<gen min="500"/>
|
||||
<pattern low="54" high="58">11100</pattern> <!-- OPC -->
|
||||
</bitset>
|
||||
|
||||
<bitset name="stib" extends="#instruction-cat6-a3xx-ibo-store">
|
||||
<bitset name="stib" extends="#instruction-cat6-a3xx-ibo-store-a5xx">
|
||||
<gen min="500"/>
|
||||
<pattern low="54" high="58">11101</pattern> <!-- OPC -->
|
||||
</bitset>
|
||||
|
||||
<bitset name="stgb" extends="#instruction-cat6-a3xx-ibo-store-a4xx">
|
||||
<gen max="499"/>
|
||||
<pattern low="54" high="58">11100</pattern> <!-- OPC -->
|
||||
</bitset>
|
||||
|
||||
<bitset name="stib" extends="#instruction-cat6-a3xx-ibo-store-a4xx">
|
||||
<gen max="499"/>
|
||||
<pattern low="54" high="58">11101</pattern> <!-- OPC -->
|
||||
</bitset>
|
||||
|
||||
|
|
@ -497,7 +523,6 @@ SOFTWARE.
|
|||
<derived name="D" expr="#cat6-d" type="uint"/>
|
||||
<derived name="TYPE_SIZE" expr="#cat6-type-size" type="uint"/>
|
||||
|
||||
<pattern pos="0" >1</pattern>
|
||||
<field low="9" high="10" name="D_MINUS_ONE" type="uint"/>
|
||||
<field pos="11" name="TYPED" type="#cat6-typed"/>
|
||||
<field low="12" high="13" name="TYPE_SIZE_MINUS_ONE" type="uint"/>
|
||||
|
|
@ -523,6 +548,7 @@ SOFTWARE.
|
|||
</bitset>
|
||||
|
||||
<bitset name="#instruction-cat6-a3xx-atomic-local" extends="#instruction-cat6-a3xx-atomic">
|
||||
<pattern pos="0" >1</pattern>
|
||||
<pattern low="1" high="8" >00000000</pattern> <!-- SRC3 -->
|
||||
<pattern low="41" high="48" >00000000</pattern> <!-- SSBO/image binding point -->
|
||||
<pattern pos="52" >0</pattern> <!-- "G" -->
|
||||
|
|
@ -607,47 +633,121 @@ SOFTWARE.
|
|||
</encode>
|
||||
</bitset>
|
||||
|
||||
<bitset name="atomic.s.add" extends="#instruction-cat6-a3xx-atomic-global">
|
||||
<bitset name="#instruction-cat6-a3xx-atomic-global-a4xx" extends="#instruction-cat6-a3xx-atomic-global">
|
||||
<pattern pos="0" >0</pattern>
|
||||
</bitset>
|
||||
|
||||
<bitset name="atomic.s.add" extends="#instruction-cat6-a3xx-atomic-global-a4xx">
|
||||
<gen max="499"/>
|
||||
<pattern low="54" high="58">10000</pattern> <!-- OPC -->
|
||||
</bitset>
|
||||
|
||||
<bitset name="atomic.s.sub" extends="#instruction-cat6-a3xx-atomic-global">
|
||||
<bitset name="atomic.s.sub" extends="#instruction-cat6-a3xx-atomic-global-a4xx">
|
||||
<gen max="499"/>
|
||||
<pattern low="54" high="58">10001</pattern> <!-- OPC -->
|
||||
</bitset>
|
||||
|
||||
<bitset name="atomic.s.xchg" extends="#instruction-cat6-a3xx-atomic-global">
|
||||
<bitset name="atomic.s.xchg" extends="#instruction-cat6-a3xx-atomic-global-a4xx">
|
||||
<gen max="499"/>
|
||||
<pattern low="54" high="58">10010</pattern> <!-- OPC -->
|
||||
</bitset>
|
||||
|
||||
<bitset name="atomic.s.inc" extends="#instruction-cat6-a3xx-atomic-global">
|
||||
<bitset name="atomic.s.inc" extends="#instruction-cat6-a3xx-atomic-global-a4xx">
|
||||
<gen max="499"/>
|
||||
<pattern low="54" high="58">10011</pattern> <!-- OPC -->
|
||||
</bitset>
|
||||
|
||||
<bitset name="atomic.s.dec" extends="#instruction-cat6-a3xx-atomic-global">
|
||||
<bitset name="atomic.s.dec" extends="#instruction-cat6-a3xx-atomic-global-a4xx">
|
||||
<gen max="499"/>
|
||||
<pattern low="54" high="58">10100</pattern> <!-- OPC -->
|
||||
</bitset>
|
||||
|
||||
<bitset name="atomic.s.cmpxchg" extends="#instruction-cat6-a3xx-atomic-global">
|
||||
<bitset name="atomic.s.cmpxchg" extends="#instruction-cat6-a3xx-atomic-global-a4xx">
|
||||
<gen max="499"/>
|
||||
<pattern low="54" high="58">10101</pattern> <!-- OPC -->
|
||||
</bitset>
|
||||
|
||||
<bitset name="atomic.s.min" extends="#instruction-cat6-a3xx-atomic-global">
|
||||
<bitset name="atomic.s.min" extends="#instruction-cat6-a3xx-atomic-global-a4xx">
|
||||
<gen max="499"/>
|
||||
<pattern low="54" high="58">10110</pattern> <!-- OPC -->
|
||||
</bitset>
|
||||
|
||||
<bitset name="atomic.s.max" extends="#instruction-cat6-a3xx-atomic-global">
|
||||
<bitset name="atomic.s.max" extends="#instruction-cat6-a3xx-atomic-global-a4xx">
|
||||
<gen max="499"/>
|
||||
<pattern low="54" high="58">10111</pattern> <!-- OPC -->
|
||||
</bitset>
|
||||
|
||||
<bitset name="atomic.s.and" extends="#instruction-cat6-a3xx-atomic-global">
|
||||
<bitset name="atomic.s.and" extends="#instruction-cat6-a3xx-atomic-global-a4xx">
|
||||
<gen max="499"/>
|
||||
<pattern low="54" high="58">11000</pattern> <!-- OPC -->
|
||||
</bitset>
|
||||
|
||||
<bitset name="atomic.s.or" extends="#instruction-cat6-a3xx-atomic-global">
|
||||
<bitset name="atomic.s.or" extends="#instruction-cat6-a3xx-atomic-global-a4xx">
|
||||
<gen max="499"/>
|
||||
<pattern low="54" high="58">11001</pattern> <!-- OPC -->
|
||||
</bitset>
|
||||
|
||||
<bitset name="atomic.s.xor" extends="#instruction-cat6-a3xx-atomic-global">
|
||||
<bitset name="atomic.s.xor" extends="#instruction-cat6-a3xx-atomic-global-a4xx">
|
||||
<gen max="499"/>
|
||||
<pattern low="54" high="58">11010</pattern> <!-- OPC -->
|
||||
</bitset>
|
||||
|
||||
<bitset name="#instruction-cat6-a3xx-atomic-global-a5xx" extends="#instruction-cat6-a3xx-atomic-global">
|
||||
<pattern pos="0" >1</pattern>
|
||||
</bitset>
|
||||
|
||||
<bitset name="atomic.s.add" extends="#instruction-cat6-a3xx-atomic-global-a5xx">
|
||||
<gen min="500"/>
|
||||
<pattern low="54" high="58">10000</pattern> <!-- OPC -->
|
||||
</bitset>
|
||||
|
||||
<bitset name="atomic.s.sub" extends="#instruction-cat6-a3xx-atomic-global-a5xx">
|
||||
<gen min="500"/>
|
||||
<pattern low="54" high="58">10001</pattern> <!-- OPC -->
|
||||
</bitset>
|
||||
|
||||
<bitset name="atomic.s.xchg" extends="#instruction-cat6-a3xx-atomic-global-a5xx">
|
||||
<gen min="500"/>
|
||||
<pattern low="54" high="58">10010</pattern> <!-- OPC -->
|
||||
</bitset>
|
||||
|
||||
<bitset name="atomic.s.inc" extends="#instruction-cat6-a3xx-atomic-global-a5xx">
|
||||
<gen min="500"/>
|
||||
<pattern low="54" high="58">10011</pattern> <!-- OPC -->
|
||||
</bitset>
|
||||
|
||||
<bitset name="atomic.s.dec" extends="#instruction-cat6-a3xx-atomic-global-a5xx">
|
||||
<gen min="500"/>
|
||||
<pattern low="54" high="58">10100</pattern> <!-- OPC -->
|
||||
</bitset>
|
||||
|
||||
<bitset name="atomic.s.cmpxchg" extends="#instruction-cat6-a3xx-atomic-global-a5xx">
|
||||
<gen min="500"/>
|
||||
<pattern low="54" high="58">10101</pattern> <!-- OPC -->
|
||||
</bitset>
|
||||
|
||||
<bitset name="atomic.s.min" extends="#instruction-cat6-a3xx-atomic-global-a5xx">
|
||||
<gen min="500"/>
|
||||
<pattern low="54" high="58">10110</pattern> <!-- OPC -->
|
||||
</bitset>
|
||||
|
||||
<bitset name="atomic.s.max" extends="#instruction-cat6-a3xx-atomic-global-a5xx">
|
||||
<gen min="500"/>
|
||||
<pattern low="54" high="58">10111</pattern> <!-- OPC -->
|
||||
</bitset>
|
||||
|
||||
<bitset name="atomic.s.and" extends="#instruction-cat6-a3xx-atomic-global-a5xx">
|
||||
<gen min="500"/>
|
||||
<pattern low="54" high="58">11000</pattern> <!-- OPC -->
|
||||
</bitset>
|
||||
|
||||
<bitset name="atomic.s.or" extends="#instruction-cat6-a3xx-atomic-global-a5xx">
|
||||
<gen min="500"/>
|
||||
<pattern low="54" high="58">11001</pattern> <!-- OPC -->
|
||||
</bitset>
|
||||
|
||||
<bitset name="atomic.s.xor" extends="#instruction-cat6-a3xx-atomic-global-a5xx">
|
||||
<gen min="500"/>
|
||||
<pattern low="54" high="58">11010</pattern> <!-- OPC -->
|
||||
</bitset>
|
||||
|
||||
|
|
@ -662,6 +762,7 @@ SOFTWARE.
|
|||
{SY}{JP}{NAME}.{TYPED}.{D}d.{TYPE}.{TYPE_SIZE}.g {DST}, {SRC1}, {SRC2}
|
||||
</display>
|
||||
|
||||
<pattern pos="0" >1</pattern>
|
||||
<pattern low="1" high="8" >00000000</pattern> <!-- SRC3 -->
|
||||
<pattern low="41" high="48" >00000000</pattern> <!-- SSBO/image binding point -->
|
||||
<pattern pos="52" >1</pattern> <!-- "G" -->
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue