diff options
Diffstat (limited to 'llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp')
-rw-r--r-- | llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp b/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp index a76c0de33e8..f96bb5e4c77 100644 --- a/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp +++ b/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp @@ -125,11 +125,15 @@ DecodeStatus AMDGPUDisassembler::getInstruction(MCInst &MI, uint64_t &Size, // ToDo: better to switch encoding length using some bit predicate // but it is unknown yet, so try all we can - // Try to decode DPP first to solve conflict with VOP1 and VOP2 encodings + // Try to decode DPP and SDWA first to solve conflict with VOP1 and VOP2 + // encodings if (Bytes.size() >= 8) { const uint64_t QW = eatBytes<uint64_t>(Bytes); Res = tryDecodeInst(DecoderTableDPP64, MI, QW, Address); if (Res) break; + + Res = tryDecodeInst(DecoderTableSDWA64, MI, QW, Address); + if (Res) break; } // Reinitialize Bytes as DPP64 could have eaten too much |