diff options
author | Scott Linder <scott@scottlinder.com> | 2019-03-05 03:02:00 +0000 |
---|---|---|
committer | Scott Linder <scott@scottlinder.com> | 2019-03-05 03:02:00 +0000 |
commit | efec1396accbff7e6e652ffb0e77c56e6c0b7a42 (patch) | |
tree | b438c004742aa96d7525885faca1a2005509ea5a /llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp | |
parent | 3d7e9c843b0bc899fabd1678697294bc64d168e1 (diff) | |
download | bcm5719-llvm-efec1396accbff7e6e652ffb0e77c56e6c0b7a42.tar.gz bcm5719-llvm-efec1396accbff7e6e652ffb0e77c56e6c0b7a42.zip |
[AMDGPU] Implement AMDGPUMCInstrAnalysis
Implement MCInstrAnalysis for AMDGPU, with default implementations save
for `evaluateBranch`.
Differential Revision: https://reviews.llvm.org/D58400
llvm-svn: 355373
Diffstat (limited to 'llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp')
-rw-r--r-- | llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp b/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp index 0acd30f5408..58c9c93af05 100644 --- a/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp +++ b/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp @@ -76,6 +76,8 @@ static DecodeStatus decodeSoppBrTarget(MCInst &Inst, unsigned Imm, uint64_t Addr, const void *Decoder) { auto DAsm = static_cast<const AMDGPUDisassembler*>(Decoder); + // Our branches take a simm16, but we need two extra bits to account for the + // factor of 4. APInt SignedOffset(18, Imm * 4, true); int64_t Offset = (SignedOffset.sext(64) + 4 + Addr).getSExtValue(); |