diff options
author | Johnny Chen <johnny.chen@apple.com> | 2011-03-25 17:31:16 +0000 |
---|---|---|
committer | Johnny Chen <johnny.chen@apple.com> | 2011-03-25 17:31:16 +0000 |
commit | 6c3891067b6e2e2aa399a57ecae407677f22391d (patch) | |
tree | 74acc87537d620233798624a36394cb007cdd5a8 | |
parent | 15a3ea0628d2e961cecd70b4e284149524aa3019 (diff) | |
download | llvm-6c3891067b6e2e2aa399a57ecae407677f22391d.tar.gz llvm-6c3891067b6e2e2aa399a57ecae407677f22391d.tar.bz2 llvm-6c3891067b6e2e2aa399a57ecae407677f22391d.tar.xz |
Instruction formats of SWP/SWPB were changed from LdStExFrm to MiscFrm. Modify the disassembler to handle that.
rdar://problem/9184053
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128285 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp | 5 | ||||
-rw-r--r-- | test/MC/Disassembler/ARM/arm-tests.txt | 3 |
2 files changed, 8 insertions, 0 deletions
diff --git a/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp b/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp index ff19a385cf..3c48879eb3 100644 --- a/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp +++ b/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp @@ -2951,6 +2951,11 @@ static bool DisassembleMiscFrm(MCInst &MI, unsigned Opcode, uint32_t insn, case ARM::WFI: case ARM::SEV: return true; + case ARM::SWP: + case ARM::SWPB: + // SWP, SWPB: Rd Rm Rn + // Delegate to DisassembleLdStExFrm().... + return DisassembleLdStExFrm(MI, Opcode, insn, NumOps, NumOpsAdded, B); default: break; } diff --git a/test/MC/Disassembler/ARM/arm-tests.txt b/test/MC/Disassembler/ARM/arm-tests.txt index 16e6981382..f4836772d5 100644 --- a/test/MC/Disassembler/ARM/arm-tests.txt +++ b/test/MC/Disassembler/ARM/arm-tests.txt @@ -184,3 +184,6 @@ # CHECK: ldmdb sp, {r0, r4, r8, r11, r12, pc} 0x11 0x99 0x1d 0xe9 + +# CHECK: swpge r3, r2, [r6] +0x92 0x30 0x06 0xa1 |