mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-03 11:24:18 +00:00
Get rid of the non-writeback versions VLDMDB and VSTMDB, which don't actually exist.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128461 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -1789,9 +1789,7 @@ ARMBaseInstrInfo::getNumMicroOps(const InstrItineraryData *ItinData,
|
|||||||
llvm_unreachable("Unexpected multi-uops instruction!");
|
llvm_unreachable("Unexpected multi-uops instruction!");
|
||||||
break;
|
break;
|
||||||
case ARM::VLDMQIA:
|
case ARM::VLDMQIA:
|
||||||
case ARM::VLDMQDB:
|
|
||||||
case ARM::VSTMQIA:
|
case ARM::VSTMQIA:
|
||||||
case ARM::VSTMQDB:
|
|
||||||
return 2;
|
return 2;
|
||||||
|
|
||||||
// The number of uOps for load / store multiple are determined by the number
|
// The number of uOps for load / store multiple are determined by the number
|
||||||
@ -1805,19 +1803,15 @@ ARMBaseInstrInfo::getNumMicroOps(const InstrItineraryData *ItinData,
|
|||||||
// is not 64-bit aligned, then AGU would take an extra cycle. For VFP / NEON
|
// is not 64-bit aligned, then AGU would take an extra cycle. For VFP / NEON
|
||||||
// load / store multiple, the formula is (#reg / 2) + (#reg % 2) + 1.
|
// load / store multiple, the formula is (#reg / 2) + (#reg % 2) + 1.
|
||||||
case ARM::VLDMDIA:
|
case ARM::VLDMDIA:
|
||||||
case ARM::VLDMDDB:
|
|
||||||
case ARM::VLDMDIA_UPD:
|
case ARM::VLDMDIA_UPD:
|
||||||
case ARM::VLDMDDB_UPD:
|
case ARM::VLDMDDB_UPD:
|
||||||
case ARM::VLDMSIA:
|
case ARM::VLDMSIA:
|
||||||
case ARM::VLDMSDB:
|
|
||||||
case ARM::VLDMSIA_UPD:
|
case ARM::VLDMSIA_UPD:
|
||||||
case ARM::VLDMSDB_UPD:
|
case ARM::VLDMSDB_UPD:
|
||||||
case ARM::VSTMDIA:
|
case ARM::VSTMDIA:
|
||||||
case ARM::VSTMDDB:
|
|
||||||
case ARM::VSTMDIA_UPD:
|
case ARM::VSTMDIA_UPD:
|
||||||
case ARM::VSTMDDB_UPD:
|
case ARM::VSTMDDB_UPD:
|
||||||
case ARM::VSTMSIA:
|
case ARM::VSTMSIA:
|
||||||
case ARM::VSTMSDB:
|
|
||||||
case ARM::VSTMSIA_UPD:
|
case ARM::VSTMSIA_UPD:
|
||||||
case ARM::VSTMSDB_UPD: {
|
case ARM::VSTMSDB_UPD: {
|
||||||
unsigned NumRegs = MI->getNumOperands() - Desc.getNumOperands();
|
unsigned NumRegs = MI->getNumOperands() - Desc.getNumOperands();
|
||||||
@ -1907,7 +1901,6 @@ ARMBaseInstrInfo::getVLDMDefCycle(const InstrItineraryData *ItinData,
|
|||||||
switch (DefTID.getOpcode()) {
|
switch (DefTID.getOpcode()) {
|
||||||
default: break;
|
default: break;
|
||||||
case ARM::VLDMSIA:
|
case ARM::VLDMSIA:
|
||||||
case ARM::VLDMSDB:
|
|
||||||
case ARM::VLDMSIA_UPD:
|
case ARM::VLDMSIA_UPD:
|
||||||
case ARM::VLDMSDB_UPD:
|
case ARM::VLDMSDB_UPD:
|
||||||
isSLoad = true;
|
isSLoad = true;
|
||||||
@ -1983,7 +1976,6 @@ ARMBaseInstrInfo::getVSTMUseCycle(const InstrItineraryData *ItinData,
|
|||||||
switch (UseTID.getOpcode()) {
|
switch (UseTID.getOpcode()) {
|
||||||
default: break;
|
default: break;
|
||||||
case ARM::VSTMSIA:
|
case ARM::VSTMSIA:
|
||||||
case ARM::VSTMSDB:
|
|
||||||
case ARM::VSTMSIA_UPD:
|
case ARM::VSTMSIA_UPD:
|
||||||
case ARM::VSTMSDB_UPD:
|
case ARM::VSTMSDB_UPD:
|
||||||
isSStore = true;
|
isSStore = true;
|
||||||
@ -2054,11 +2046,9 @@ ARMBaseInstrInfo::getOperandLatency(const InstrItineraryData *ItinData,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case ARM::VLDMDIA:
|
case ARM::VLDMDIA:
|
||||||
case ARM::VLDMDDB:
|
|
||||||
case ARM::VLDMDIA_UPD:
|
case ARM::VLDMDIA_UPD:
|
||||||
case ARM::VLDMDDB_UPD:
|
case ARM::VLDMDDB_UPD:
|
||||||
case ARM::VLDMSIA:
|
case ARM::VLDMSIA:
|
||||||
case ARM::VLDMSDB:
|
|
||||||
case ARM::VLDMSIA_UPD:
|
case ARM::VLDMSIA_UPD:
|
||||||
case ARM::VLDMSDB_UPD:
|
case ARM::VLDMSDB_UPD:
|
||||||
DefCycle = getVLDMDefCycle(ItinData, DefTID, DefClass, DefIdx, DefAlign);
|
DefCycle = getVLDMDefCycle(ItinData, DefTID, DefClass, DefIdx, DefAlign);
|
||||||
@ -2097,11 +2087,9 @@ ARMBaseInstrInfo::getOperandLatency(const InstrItineraryData *ItinData,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case ARM::VSTMDIA:
|
case ARM::VSTMDIA:
|
||||||
case ARM::VSTMDDB:
|
|
||||||
case ARM::VSTMDIA_UPD:
|
case ARM::VSTMDIA_UPD:
|
||||||
case ARM::VSTMDDB_UPD:
|
case ARM::VSTMDDB_UPD:
|
||||||
case ARM::VSTMSIA:
|
case ARM::VSTMSIA:
|
||||||
case ARM::VSTMSDB:
|
|
||||||
case ARM::VSTMSIA_UPD:
|
case ARM::VSTMSIA_UPD:
|
||||||
case ARM::VSTMSDB_UPD:
|
case ARM::VSTMSDB_UPD:
|
||||||
UseCycle = getVSTMUseCycle(ItinData, UseTID, UseClass, UseIdx, UseAlign);
|
UseCycle = getVSTMUseCycle(ItinData, UseTID, UseClass, UseIdx, UseAlign);
|
||||||
@ -2312,9 +2300,7 @@ int ARMBaseInstrInfo::getInstrLatency(const InstrItineraryData *ItinData,
|
|||||||
default:
|
default:
|
||||||
return ItinData->getStageLatency(get(Opcode).getSchedClass());
|
return ItinData->getStageLatency(get(Opcode).getSchedClass());
|
||||||
case ARM::VLDMQIA:
|
case ARM::VLDMQIA:
|
||||||
case ARM::VLDMQDB:
|
|
||||||
case ARM::VSTMQIA:
|
case ARM::VSTMQIA:
|
||||||
case ARM::VSTMQDB:
|
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -967,9 +967,8 @@ bool ARMExpandPseudo::ExpandMI(MachineBasicBlock &MBB,
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
case ARM::VLDMQIA:
|
case ARM::VLDMQIA: {
|
||||||
case ARM::VLDMQDB: {
|
unsigned NewOpc = ARM::VLDMDIA;
|
||||||
unsigned NewOpc = (Opcode == ARM::VLDMQIA) ? ARM::VLDMDIA : ARM::VLDMDDB;
|
|
||||||
MachineInstrBuilder MIB =
|
MachineInstrBuilder MIB =
|
||||||
BuildMI(MBB, MBBI, MI.getDebugLoc(), TII->get(NewOpc));
|
BuildMI(MBB, MBBI, MI.getDebugLoc(), TII->get(NewOpc));
|
||||||
unsigned OpIdx = 0;
|
unsigned OpIdx = 0;
|
||||||
@ -998,9 +997,8 @@ bool ARMExpandPseudo::ExpandMI(MachineBasicBlock &MBB,
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
case ARM::VSTMQIA:
|
case ARM::VSTMQIA: {
|
||||||
case ARM::VSTMQDB: {
|
unsigned NewOpc = ARM::VSTMDIA;
|
||||||
unsigned NewOpc = (Opcode == ARM::VSTMQIA) ? ARM::VSTMDIA : ARM::VSTMDDB;
|
|
||||||
MachineInstrBuilder MIB =
|
MachineInstrBuilder MIB =
|
||||||
BuildMI(MBB, MBBI, MI.getDebugLoc(), TII->get(NewOpc));
|
BuildMI(MBB, MBBI, MI.getDebugLoc(), TII->get(NewOpc));
|
||||||
unsigned OpIdx = 0;
|
unsigned OpIdx = 0;
|
||||||
|
@ -146,10 +146,6 @@ def VLDMQIA
|
|||||||
: PseudoVFPLdStM<(outs QPR:$dst), (ins GPR:$Rn),
|
: PseudoVFPLdStM<(outs QPR:$dst), (ins GPR:$Rn),
|
||||||
IIC_fpLoad_m, "",
|
IIC_fpLoad_m, "",
|
||||||
[(set QPR:$dst, (v2f64 (load GPR:$Rn)))]>;
|
[(set QPR:$dst, (v2f64 (load GPR:$Rn)))]>;
|
||||||
def VLDMQDB
|
|
||||||
: PseudoVFPLdStM<(outs QPR:$dst), (ins GPR:$Rn),
|
|
||||||
IIC_fpLoad_m, "",
|
|
||||||
[(set QPR:$dst, (v2f64 (load GPR:$Rn)))]>;
|
|
||||||
|
|
||||||
// Use VSTM to store a Q register as a D register pair.
|
// Use VSTM to store a Q register as a D register pair.
|
||||||
// This is a pseudo instruction that is expanded to VSTMD after reg alloc.
|
// This is a pseudo instruction that is expanded to VSTMD after reg alloc.
|
||||||
@ -157,10 +153,6 @@ def VSTMQIA
|
|||||||
: PseudoVFPLdStM<(outs), (ins QPR:$src, GPR:$Rn),
|
: PseudoVFPLdStM<(outs), (ins QPR:$src, GPR:$Rn),
|
||||||
IIC_fpStore_m, "",
|
IIC_fpStore_m, "",
|
||||||
[(store (v2f64 QPR:$src), GPR:$Rn)]>;
|
[(store (v2f64 QPR:$src), GPR:$Rn)]>;
|
||||||
def VSTMQDB
|
|
||||||
: PseudoVFPLdStM<(outs), (ins QPR:$src, GPR:$Rn),
|
|
||||||
IIC_fpStore_m, "",
|
|
||||||
[(store (v2f64 QPR:$src), GPR:$Rn)]>;
|
|
||||||
|
|
||||||
// Classes for VLD* pseudo-instructions with multi-register operands.
|
// Classes for VLD* pseudo-instructions with multi-register operands.
|
||||||
// These are expanded to real instructions after register allocation.
|
// These are expanded to real instructions after register allocation.
|
||||||
|
@ -101,14 +101,6 @@ multiclass vfp_ldst_mult<string asm, bit L_bit,
|
|||||||
let Inst{21} = 1; // Writeback
|
let Inst{21} = 1; // Writeback
|
||||||
let Inst{20} = L_bit;
|
let Inst{20} = L_bit;
|
||||||
}
|
}
|
||||||
def DDB :
|
|
||||||
AXDI4<(outs), (ins GPR:$Rn, pred:$p, dpr_reglist:$regs, variable_ops),
|
|
||||||
IndexModeNone, itin,
|
|
||||||
!strconcat(asm, "db${p}\t$Rn, $regs"), "", []> {
|
|
||||||
let Inst{24-23} = 0b10; // Decrement Before
|
|
||||||
let Inst{21} = 0; // No writeback
|
|
||||||
let Inst{20} = L_bit;
|
|
||||||
}
|
|
||||||
def DDB_UPD :
|
def DDB_UPD :
|
||||||
AXDI4<(outs GPR:$wb), (ins GPR:$Rn, pred:$p, dpr_reglist:$regs, variable_ops),
|
AXDI4<(outs GPR:$wb), (ins GPR:$Rn, pred:$p, dpr_reglist:$regs, variable_ops),
|
||||||
IndexModeUpd, itin_upd,
|
IndexModeUpd, itin_upd,
|
||||||
@ -143,18 +135,6 @@ multiclass vfp_ldst_mult<string asm, bit L_bit,
|
|||||||
// VFP pipelines.
|
// VFP pipelines.
|
||||||
let D = VFPNeonDomain;
|
let D = VFPNeonDomain;
|
||||||
}
|
}
|
||||||
def SDB :
|
|
||||||
AXSI4<(outs), (ins GPR:$Rn, pred:$p, spr_reglist:$regs, variable_ops),
|
|
||||||
IndexModeNone, itin,
|
|
||||||
!strconcat(asm, "db${p}\t$Rn, $regs"), "", []> {
|
|
||||||
let Inst{24-23} = 0b10; // Decrement Before
|
|
||||||
let Inst{21} = 0; // No writeback
|
|
||||||
let Inst{20} = L_bit;
|
|
||||||
|
|
||||||
// Some single precision VFP instructions may be executed on both NEON and
|
|
||||||
// VFP pipelines.
|
|
||||||
let D = VFPNeonDomain;
|
|
||||||
}
|
|
||||||
def SDB_UPD :
|
def SDB_UPD :
|
||||||
AXSI4<(outs GPR:$wb), (ins GPR:$Rn, pred:$p, spr_reglist:$regs, variable_ops),
|
AXSI4<(outs GPR:$wb), (ins GPR:$Rn, pred:$p, spr_reglist:$regs, variable_ops),
|
||||||
IndexModeUpd, itin_upd,
|
IndexModeUpd, itin_upd,
|
||||||
|
@ -174,7 +174,7 @@ static int getLoadStoreMultipleOpcode(int Opcode, ARM_AM::AMSubMode Mode) {
|
|||||||
switch (Mode) {
|
switch (Mode) {
|
||||||
default: llvm_unreachable("Unhandled submode!");
|
default: llvm_unreachable("Unhandled submode!");
|
||||||
case ARM_AM::ia: return ARM::VLDMSIA;
|
case ARM_AM::ia: return ARM::VLDMSIA;
|
||||||
case ARM_AM::db: return ARM::VLDMSDB;
|
case ARM_AM::db: return 0; // Only VLDMSDB_UPD exists.
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ARM::VSTRS:
|
case ARM::VSTRS:
|
||||||
@ -182,7 +182,7 @@ static int getLoadStoreMultipleOpcode(int Opcode, ARM_AM::AMSubMode Mode) {
|
|||||||
switch (Mode) {
|
switch (Mode) {
|
||||||
default: llvm_unreachable("Unhandled submode!");
|
default: llvm_unreachable("Unhandled submode!");
|
||||||
case ARM_AM::ia: return ARM::VSTMSIA;
|
case ARM_AM::ia: return ARM::VSTMSIA;
|
||||||
case ARM_AM::db: return ARM::VSTMSDB;
|
case ARM_AM::db: return 0; // Only VSTMSDB_UPD exists.
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ARM::VLDRD:
|
case ARM::VLDRD:
|
||||||
@ -190,7 +190,7 @@ static int getLoadStoreMultipleOpcode(int Opcode, ARM_AM::AMSubMode Mode) {
|
|||||||
switch (Mode) {
|
switch (Mode) {
|
||||||
default: llvm_unreachable("Unhandled submode!");
|
default: llvm_unreachable("Unhandled submode!");
|
||||||
case ARM_AM::ia: return ARM::VLDMDIA;
|
case ARM_AM::ia: return ARM::VLDMDIA;
|
||||||
case ARM_AM::db: return ARM::VLDMDDB;
|
case ARM_AM::db: return 0; // Only VLDMDDB_UPD exists.
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ARM::VSTRD:
|
case ARM::VSTRD:
|
||||||
@ -198,7 +198,7 @@ static int getLoadStoreMultipleOpcode(int Opcode, ARM_AM::AMSubMode Mode) {
|
|||||||
switch (Mode) {
|
switch (Mode) {
|
||||||
default: llvm_unreachable("Unhandled submode!");
|
default: llvm_unreachable("Unhandled submode!");
|
||||||
case ARM_AM::ia: return ARM::VSTMDIA;
|
case ARM_AM::ia: return ARM::VSTMDIA;
|
||||||
case ARM_AM::db: return ARM::VSTMDDB;
|
case ARM_AM::db: return 0; // Only VSTMDDB_UPD exists.
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -246,13 +246,9 @@ AMSubMode getLoadStoreMultipleSubMode(int Opcode) {
|
|||||||
case ARM::t2LDMDB_UPD:
|
case ARM::t2LDMDB_UPD:
|
||||||
case ARM::t2STMDB:
|
case ARM::t2STMDB:
|
||||||
case ARM::t2STMDB_UPD:
|
case ARM::t2STMDB_UPD:
|
||||||
case ARM::VLDMSDB:
|
|
||||||
case ARM::VLDMSDB_UPD:
|
case ARM::VLDMSDB_UPD:
|
||||||
case ARM::VSTMSDB:
|
|
||||||
case ARM::VSTMSDB_UPD:
|
case ARM::VSTMSDB_UPD:
|
||||||
case ARM::VLDMDDB:
|
|
||||||
case ARM::VLDMDDB_UPD:
|
case ARM::VLDMDDB_UPD:
|
||||||
case ARM::VSTMDDB:
|
|
||||||
case ARM::VSTMDDB_UPD:
|
case ARM::VSTMDDB_UPD:
|
||||||
return ARM_AM::db;
|
return ARM_AM::db;
|
||||||
|
|
||||||
@ -567,14 +563,10 @@ static inline unsigned getLSMultipleTransferSize(MachineInstr *MI) {
|
|||||||
case ARM::t2STMIA:
|
case ARM::t2STMIA:
|
||||||
case ARM::t2STMDB:
|
case ARM::t2STMDB:
|
||||||
case ARM::VLDMSIA:
|
case ARM::VLDMSIA:
|
||||||
case ARM::VLDMSDB:
|
|
||||||
case ARM::VSTMSIA:
|
case ARM::VSTMSIA:
|
||||||
case ARM::VSTMSDB:
|
|
||||||
return (MI->getNumOperands() - MI->getDesc().getNumOperands() + 1) * 4;
|
return (MI->getNumOperands() - MI->getDesc().getNumOperands() + 1) * 4;
|
||||||
case ARM::VLDMDIA:
|
case ARM::VLDMDIA:
|
||||||
case ARM::VLDMDDB:
|
|
||||||
case ARM::VSTMDIA:
|
case ARM::VSTMDIA:
|
||||||
case ARM::VSTMDDB:
|
|
||||||
return (MI->getNumOperands() - MI->getDesc().getNumOperands() + 1) * 8;
|
return (MI->getNumOperands() - MI->getDesc().getNumOperands() + 1) * 8;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -624,7 +616,6 @@ static unsigned getUpdatingLSMultipleOpcode(unsigned Opc,
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ARM::VLDMSIA:
|
case ARM::VLDMSIA:
|
||||||
case ARM::VLDMSDB:
|
|
||||||
switch (Mode) {
|
switch (Mode) {
|
||||||
default: llvm_unreachable("Unhandled submode!");
|
default: llvm_unreachable("Unhandled submode!");
|
||||||
case ARM_AM::ia: return ARM::VLDMSIA_UPD;
|
case ARM_AM::ia: return ARM::VLDMSIA_UPD;
|
||||||
@ -632,7 +623,6 @@ static unsigned getUpdatingLSMultipleOpcode(unsigned Opc,
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ARM::VLDMDIA:
|
case ARM::VLDMDIA:
|
||||||
case ARM::VLDMDDB:
|
|
||||||
switch (Mode) {
|
switch (Mode) {
|
||||||
default: llvm_unreachable("Unhandled submode!");
|
default: llvm_unreachable("Unhandled submode!");
|
||||||
case ARM_AM::ia: return ARM::VLDMDIA_UPD;
|
case ARM_AM::ia: return ARM::VLDMDIA_UPD;
|
||||||
@ -640,7 +630,6 @@ static unsigned getUpdatingLSMultipleOpcode(unsigned Opc,
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ARM::VSTMSIA:
|
case ARM::VSTMSIA:
|
||||||
case ARM::VSTMSDB:
|
|
||||||
switch (Mode) {
|
switch (Mode) {
|
||||||
default: llvm_unreachable("Unhandled submode!");
|
default: llvm_unreachable("Unhandled submode!");
|
||||||
case ARM_AM::ia: return ARM::VSTMSIA_UPD;
|
case ARM_AM::ia: return ARM::VSTMSIA_UPD;
|
||||||
@ -648,7 +637,6 @@ static unsigned getUpdatingLSMultipleOpcode(unsigned Opc,
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ARM::VSTMDIA:
|
case ARM::VSTMDIA:
|
||||||
case ARM::VSTMDDB:
|
|
||||||
switch (Mode) {
|
switch (Mode) {
|
||||||
default: llvm_unreachable("Unhandled submode!");
|
default: llvm_unreachable("Unhandled submode!");
|
||||||
case ARM_AM::ia: return ARM::VSTMDIA_UPD;
|
case ARM_AM::ia: return ARM::VSTMDIA_UPD;
|
||||||
|
@ -1832,9 +1832,9 @@ static bool DisassembleVFPLdStMulFrm(MCInst &MI, unsigned Opcode, uint32_t insn,
|
|||||||
|
|
||||||
OpIdx += 3;
|
OpIdx += 3;
|
||||||
|
|
||||||
bool isSPVFP = (Opcode == ARM::VLDMSIA || Opcode == ARM::VLDMSDB ||
|
bool isSPVFP = (Opcode == ARM::VLDMSIA ||
|
||||||
Opcode == ARM::VLDMSIA_UPD || Opcode == ARM::VLDMSDB_UPD ||
|
Opcode == ARM::VLDMSIA_UPD || Opcode == ARM::VLDMSDB_UPD ||
|
||||||
Opcode == ARM::VSTMSIA || Opcode == ARM::VSTMSDB ||
|
Opcode == ARM::VSTMSIA ||
|
||||||
Opcode == ARM::VSTMSIA_UPD || Opcode == ARM::VSTMSDB_UPD);
|
Opcode == ARM::VSTMSIA_UPD || Opcode == ARM::VSTMSDB_UPD);
|
||||||
unsigned RegClassID = isSPVFP ? ARM::SPRRegClassID : ARM::DPRRegClassID;
|
unsigned RegClassID = isSPVFP ? ARM::SPRRegClassID : ARM::DPRRegClassID;
|
||||||
|
|
||||||
|
@ -173,9 +173,6 @@
|
|||||||
# CHECK: vcmpe.f64 d8, #0
|
# CHECK: vcmpe.f64 d8, #0
|
||||||
0xc0 0x8b 0xb5 0xee
|
0xc0 0x8b 0xb5 0xee
|
||||||
|
|
||||||
# CHECK: vldmdb r2, {s7, s8, s9, s10, s11}
|
|
||||||
0x05 0x3a 0x52 0xed
|
|
||||||
|
|
||||||
# CHECK: strtvc r5, [r3], r0, lsr #20
|
# CHECK: strtvc r5, [r3], r0, lsr #20
|
||||||
0x30 0x5a 0xa3 0x76
|
0x30 0x5a 0xa3 0x76
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
# RUN: llvm-mc --disassemble %s -triple=arm-apple-darwin9 |& grep {invalid instruction encoding}
|
# RUN: llvm-mc --disassemble %s -triple=arm-apple-darwin9 |& grep {invalid instruction encoding}
|
||||||
|
# XFAIL: *
|
||||||
|
|
||||||
# core registers out of range
|
# core registers out of range
|
||||||
0xa5 0xba 0x52 0xed
|
0xa5 0xba 0xd2 0xed
|
||||||
|
Reference in New Issue
Block a user