freedreno/ir3: Fix disasm of register offsets in ldp/stp.
authorEric Anholt <eric@anholt.net>
Wed, 8 Jul 2020 20:38:18 +0000 (13:38 -0700)
committerMarge Bot <eric+marge@anholt.net>
Mon, 20 Jul 2020 19:42:45 +0000 (19:42 +0000)
commitaf92348b1cdc4158e049d5a8d9e71ba7e054a87f
tree8346dc5354ab7d6d8e2bdb16efa2d2b707ad6bf3
parentd6d8dc133e0b4ca7885ada8038a861525bba11e1
freedreno/ir3: Fix disasm of register offsets in ldp/stp.

I had a stp testcase that was getting its offset wrong, and by twiddling
bits and feeding it to qc disasm, I found that the comment was sort of
right: some the cat6a bits implicated in the old comment do get used, as
the high bits of the cat6c offset.  Reallocating those bits also fixes how
we were getting r960.y for r0.y.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5815>
src/freedreno/ir3/disasm-a3xx.c
src/freedreno/ir3/instr-a3xx.h
src/freedreno/ir3/ir3.c
src/freedreno/ir3/tests/disasm.c