diff options
author | Johnny Chen <johnny.chen@apple.com> | 2011-04-08 20:03:46 +0000 |
---|---|---|
committer | Johnny Chen <johnny.chen@apple.com> | 2011-04-08 20:03:46 +0000 |
commit | ee10b13a4408781fd5f255527e3c51cd24dc96ef (patch) | |
tree | eeba8caf0bbbfd030d8752824c7d45012844b9a7 | |
parent | c636074afcf95ecd9bb4069a49087a019d5e96b4 (diff) | |
download | external_llvm-ee10b13a4408781fd5f255527e3c51cd24dc96ef.zip external_llvm-ee10b13a4408781fd5f255527e3c51cd24dc96ef.tar.gz external_llvm-ee10b13a4408781fd5f255527e3c51cd24dc96ef.tar.bz2 |
Check opcoe (dmb, dsb) instead of bitfields matching.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129148 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp | 13 |
1 files changed, 1 insertions, 12 deletions
diff --git a/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp b/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp index d4cd087..616b76a 100644 --- a/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp +++ b/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp @@ -3212,17 +3212,6 @@ static bool DisassembleNDupFrm(MCInst &MI, unsigned Opcode, uint32_t insn, return true; } -// A8.6.41 DMB -// A8.6.42 DSB -// A8.6.49 ISB -static inline bool MemBarrierInstr(uint32_t insn) { - unsigned op7_4 = slice(insn, 7, 4); - if (slice(insn, 31, 8) == 0xf57ff0 && (op7_4 >= 4 && op7_4 <= 6)) - return true; - - return false; -} - static inline bool PreLoadOpcode(unsigned Opcode) { switch(Opcode) { case ARM::PLDi12: case ARM::PLDrs: @@ -3286,7 +3275,7 @@ static bool DisassemblePreLoadFrm(MCInst &MI, unsigned Opcode, uint32_t insn, static bool DisassembleMiscFrm(MCInst &MI, unsigned Opcode, uint32_t insn, unsigned short NumOps, unsigned &NumOpsAdded, BO B) { - if (MemBarrierInstr(insn)) { + if (Opcode == ARM::DMB || Opcode == ARM::DSB) { // Inst{3-0} encodes the memory barrier option for the variants. unsigned opt = slice(insn, 3, 0); switch (opt) { |