summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.cpp
diff options
context:
space:
mode:
authorDmitry Preobrazhensky <dmitry.preobrazhensky@amd.com>2017-11-27 17:14:35 +0000
committerDmitry Preobrazhensky <dmitry.preobrazhensky@amd.com>2017-11-27 17:14:35 +0000
commit16608e67d3199859bc0d077abe2519f19d183bba (patch)
tree4cd88c220f97e05649f39500fb0c187eacb699a6 /llvm/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.cpp
parent48cb3c1557b1a326be60234c3200fc14ed9d2665 (diff)
downloadbcm5719-llvm-16608e67d3199859bc0d077abe2519f19d183bba.tar.gz
bcm5719-llvm-16608e67d3199859bc0d077abe2519f19d183bba.zip
[AMDGPU][MC][DISASSEMBLER][GFX9] Corrected decoding of GLOBAL/SCRATCH opcodes
See bug 35433: https://bugs.llvm.org/show_bug.cgi?id=35433 Differential Revision: https://reviews.llvm.org/D40493 Reviewers: artem.tamazov, SamWot, arsenm llvm-svn: 319050
Diffstat (limited to 'llvm/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.cpp')
-rw-r--r--llvm/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.cpp b/llvm/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.cpp
index 537769bf27e..2768e5c9984 100644
--- a/llvm/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.cpp
+++ b/llvm/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.cpp
@@ -72,9 +72,9 @@ void AMDGPUInstPrinter::printU16ImmDecOperand(const MCInst *MI, unsigned OpNo,
O << formatDec(MI->getOperand(OpNo).getImm() & 0xffff);
}
-void AMDGPUInstPrinter::printS16ImmDecOperand(const MCInst *MI, unsigned OpNo,
+void AMDGPUInstPrinter::printS13ImmDecOperand(const MCInst *MI, unsigned OpNo,
raw_ostream &O) {
- O << formatDec(static_cast<int16_t>(MI->getOperand(OpNo).getImm()));
+ O << formatDec(SignExtend32<13>(MI->getOperand(OpNo).getImm()));
}
void AMDGPUInstPrinter::printU32ImmOperand(const MCInst *MI, unsigned OpNo,
@@ -129,7 +129,7 @@ void AMDGPUInstPrinter::printOffsetS13(const MCInst *MI, unsigned OpNo,
uint16_t Imm = MI->getOperand(OpNo).getImm();
if (Imm != 0) {
O << ((OpNo == 0)? "offset:" : " offset:");
- printS16ImmDecOperand(MI, OpNo, O);
+ printS13ImmDecOperand(MI, OpNo, O);
}
}
OpenPOWER on IntegriCloud