summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
diff options
context:
space:
mode:
authorScott Linder <scott@scottlinder.com>2019-03-05 03:02:00 +0000
committerScott Linder <scott@scottlinder.com>2019-03-05 03:02:00 +0000
commitefec1396accbff7e6e652ffb0e77c56e6c0b7a42 (patch)
treeb438c004742aa96d7525885faca1a2005509ea5a /llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
parent3d7e9c843b0bc899fabd1678697294bc64d168e1 (diff)
downloadbcm5719-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.cpp2
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();
OpenPOWER on IntegriCloud