mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-24 06:25:18 +00:00
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
This commit is contained in:
@@ -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) {
|
||||
|
Reference in New Issue
Block a user