OSDN Git Service

AMDGPU: Partially fix disassembly of MIMG instructions
authorMatt Arsenault <Matthew.Arsenault@amd.com>
Wed, 13 Dec 2017 21:07:51 +0000 (21:07 +0000)
committerMatt Arsenault <Matthew.Arsenault@amd.com>
Wed, 13 Dec 2017 21:07:51 +0000 (21:07 +0000)
commit74ccbceac1642911fb7c214c0983cc6d08798b41
tree4d39041bb0c5498a0efea725bd44c4586f265c5e
parent7cc3dcfb80185fe041a164499f2872e4060a1143
AMDGPU: Partially fix disassembly of MIMG instructions

Stores failed to decode at all since they didn't have a
DecoderNamespace set. Loads worked, but did not change
the register width displayed to match the numbmer of
enabled channels.

The number of printed registers for vaddr is still wrong,
but I don't think that's encoded in the instruction so
there's not much we can do about that.

Image atomics are still broken. MIMG is the same
encoding for SI/VI, but the image atomic classes
are split up into encoding specific versions unlike
every other MIMG instruction. They have isAsmParserOnly
set on them for some reason. dmask is also special for
these, so we probably should not have it as an explicit
operand as it is now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320614 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/AMDGPU/AMDGPUInstrInfo.cpp
lib/Target/AMDGPU/AMDGPUInstrInfo.h
lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h
lib/Target/AMDGPU/MIMGInstructions.td
lib/Target/AMDGPU/SIISelLowering.cpp
lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
test/MC/Disassembler/AMDGPU/mimg_vi.txt [new file with mode: 0644]