summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM64/Disassembler
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2014-04-21 21:45:44 +0000
committerJim Grosbach <grosbach@apple.com>2014-04-21 21:45:44 +0000
commit9d205d42f3238ba1b4ec66cfde3ce8443acf6f4a (patch)
tree6161f5f391efac7e8d7128cc7860fad2918effba /llvm/lib/Target/ARM64/Disassembler
parent09757491d6af0233d4a7f7d3bf3bfff3c21e562c (diff)
downloadbcm5719-llvm-9d205d42f3238ba1b4ec66cfde3ce8443acf6f4a.tar.gz
bcm5719-llvm-9d205d42f3238ba1b4ec66cfde3ce8443acf6f4a.zip
ARM64: Extended addressing mode source reg is 64-bit.
The canonical form for the extended addressing mode (e.g., "[x1, w2, uxtw #3]" is for the MCInst to have the second register be the full 64-bit GPR64 register class. The instruction printer cleans up the output for display to show the 32-bit register instead, per the specification. This simplifies 205893 now that the aliasing is handled in the printer in 206495 so that the codegen path and the disassembler path give the same MCInst form. llvm-svn: 206797
Diffstat (limited to 'llvm/lib/Target/ARM64/Disassembler')
-rw-r--r--llvm/lib/Target/ARM64/Disassembler/ARM64Disassembler.cpp6
1 files changed, 1 insertions, 5 deletions
diff --git a/llvm/lib/Target/ARM64/Disassembler/ARM64Disassembler.cpp b/llvm/lib/Target/ARM64/Disassembler/ARM64Disassembler.cpp
index ba696b48854..8a334e2f1b7 100644
--- a/llvm/lib/Target/ARM64/Disassembler/ARM64Disassembler.cpp
+++ b/llvm/lib/Target/ARM64/Disassembler/ARM64Disassembler.cpp
@@ -1182,11 +1182,7 @@ static DecodeStatus DecodeRegOffsetLdStInstruction(llvm::MCInst &Inst,
}
DecodeGPR64spRegisterClass(Inst, Rn, Addr, Decoder);
-
- if ((extendHi & 0x3) == 0x3)
- DecodeGPR64RegisterClass(Inst, Rm, Addr, Decoder);
- else
- DecodeGPR32RegisterClass(Inst, Rm, Addr, Decoder);
+ DecodeGPR64RegisterClass(Inst, Rm, Addr, Decoder);
Inst.addOperand(MCOperand::CreateImm(extend));
return Success;
OpenPOWER on IntegriCloud