freedreno/isa: Fix isaspec map for a3xx-ld

When LDP uses a negative offset (which it valid), since
`struct ir3_register` uses `{i,u}nt32_t` for the immediate
values, using `extract_reg_uim()` wasn't sign extending
negative immediate values.

Addresses:
```
src/freedreno/isa/encode.h:84:
pack_field: Assertion '!(( val & ~BITFIELD64_MASK(1 + high - low)) &&
                         (~val & ~BITFIELD64_MASK(1 + high - low)))' failed.
```
seen in https://gitlab.freedesktop.org/mesa/mesa/-/issues/11153 .

Signed-off-by: Karmjit Mahil <karmjit.mahil@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29768>
This commit is contained in:
Karmjit Mahil
2024-06-18 16:32:06 +02:00
committed by Marge Bot
parent 37ddf572b1
commit 9164ea7032

View File

@@ -335,7 +335,7 @@ SOFTWARE.
<pattern low="40" high="48">xxxxxxxxx</pattern>
<pattern low="52" high="53">xx</pattern>
<encode>
<map name="OFF">extract_reg_uim(src->srcs[1])</map>
<map name="OFF">extract_reg_iim(src->srcs[1])</map>
<map name="SRC">src->srcs[0]</map>
<map name="SIZE">extract_reg_uim(src->srcs[2])</map>
</encode>