diff options
Diffstat (limited to 'llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp')
-rw-r--r-- | llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp b/llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp index 7a90d58..d71409d 100644 --- a/llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp +++ b/llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp @@ -185,7 +185,10 @@ DecodeStatus HexagonDisassembler::getInstruction(MCInst &MI, uint64_t &Size, return Result; if (Size > HEXAGON_MAX_PACKET_SIZE) return MCDisassembler::Fail; - HexagonMCChecker Checker(getContext(), *MCII, STI, MI, + + const auto ArchSTI = Hexagon_MC::getArchSubtarget(&STI); + const auto STI_ = (ArchSTI != nullptr) ? *ArchSTI : STI; + HexagonMCChecker Checker(getContext(), *MCII, STI_, MI, *getContext().getRegisterInfo(), false); if (!Checker.check()) return MCDisassembler::Fail; |