diff options
| author | Bradley Smith <bradley.smith@arm.com> | 2014-05-19 15:58:15 +0000 |
|---|---|---|
| committer | Bradley Smith <bradley.smith@arm.com> | 2014-05-19 15:58:15 +0000 |
| commit | c3b931d0050a44e4ef14a9cc3f5fd0684307cb60 (patch) | |
| tree | 90235e8d9e839fd480300ae09f2cff66fc8bf430 /llvm/lib/Target/ARM64/Disassembler | |
| parent | 5c29582d533a361ba4ed4232f8790563a50dafbe (diff) | |
| download | bcm5719-llvm-c3b931d0050a44e4ef14a9cc3f5fd0684307cb60.tar.gz bcm5719-llvm-c3b931d0050a44e4ef14a9cc3f5fd0684307cb60.zip | |
[ARM64] Split tbz/tbnz into W/X register variant
llvm-svn: 209134
Diffstat (limited to 'llvm/lib/Target/ARM64/Disassembler')
| -rw-r--r-- | llvm/lib/Target/ARM64/Disassembler/ARM64Disassembler.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM64/Disassembler/ARM64Disassembler.cpp b/llvm/lib/Target/ARM64/Disassembler/ARM64Disassembler.cpp index d14e3a86f8f..92eabcf2b4e 100644 --- a/llvm/lib/Target/ARM64/Disassembler/ARM64Disassembler.cpp +++ b/llvm/lib/Target/ARM64/Disassembler/ARM64Disassembler.cpp @@ -1512,7 +1512,10 @@ static DecodeStatus DecodeTestAndBranch(llvm::MCInst &Inst, uint32_t insn, if (dst & (1 << (14 - 1))) dst |= ~((1LL << 14) - 1); - DecodeGPR64RegisterClass(Inst, Rt, Addr, Decoder); + if (fieldFromInstruction(insn, 31, 1) == 0) + DecodeGPR32RegisterClass(Inst, Rt, Addr, Decoder); + else + DecodeGPR64RegisterClass(Inst, Rt, Addr, Decoder); Inst.addOperand(MCOperand::CreateImm(bit)); if (!Dis->tryAddingSymbolicOperand(Inst, dst << 2, Addr, true, 0, 4)) Inst.addOperand(MCOperand::CreateImm(dst)); |

