freedreno: deduplicate a3xx+ disasm
authorRob Clark <robdclark@chromium.org>
Sat, 25 Jul 2020 17:28:42 +0000 (10:28 -0700)
committerMarge Bot <eric+marge@anholt.net>
Tue, 28 Jul 2020 09:45:08 +0000 (09:45 +0000)
commitf7bd3456d79aaeccb5f5e8d1408e85ad198f4f38
treebcde6141f7869db34aa54e0c7dd35fa5832d4a49
parent6b379a4cb4b1e387794494e250c4a2cbddf71721
freedreno: deduplicate a3xx+ disasm

Merge the extra tracking that is useful for generating stats from asm
(as opposed to ir), and for guestimating things like inputs and outputs
(mostly useful for r/e) into ir3's version and drop cffdec's version.

There is a small change in disasm output for the decode tools, in that
it no longer prints the used consts, but rather just the max accessed
const.  This is the more useful piece of information, and avoids making
the shared regmask type big enough to deal with the const reg file.
Additional error checking for invalid regids causes crashdec to bail
out sooner when decoding memory that *might* hold valid instructions.
Also, crashdec no longer prints stats, because stats aren't very useful
when trying to decode random instruction memory (which might or might
not be valid instructions).

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6070>
25 files changed:
src/freedreno/.gitlab-ci/reference/crash.log
src/freedreno/.gitlab-ci/reference/fd-clouds.log
src/freedreno/.gitlab-ci/reference/glxgears-a420.log
src/freedreno/common/disasm.h [new file with mode: 0644]
src/freedreno/common/meson.build
src/freedreno/decode/cffdump.c
src/freedreno/decode/crashdec.c
src/freedreno/decode/disasm-a2xx.c
src/freedreno/decode/disasm-a3xx.c [deleted file]
src/freedreno/decode/disasm.h [deleted file]
src/freedreno/decode/instr-a3xx.h [deleted file]
src/freedreno/decode/meson.build
src/freedreno/decode/pgmdump.c
src/freedreno/decode/pgmdump2.c
src/freedreno/ir3/disasm-a3xx.c
src/freedreno/ir3/instr-a3xx.h
src/freedreno/ir3/ir3.h
src/freedreno/ir3/ir3_print.c
src/freedreno/ir3/ir3_shader.c
src/freedreno/ir3/regmask.h
src/freedreno/ir3/tests/disasm.c
src/freedreno/meson.build
src/gallium/drivers/freedreno/a2xx/disasm-a2xx.c
src/gallium/drivers/freedreno/disasm.h [deleted file]
src/gallium/drivers/freedreno/meson.build