mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-11 13:29:36 +00:00
Move ARM is{LoadFrom,StoreTo}StackSlot closer to their siblings so they won't be
forgotten in the future. Coalesce identical cases in switch. No functional changes intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113979 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
064312de86
commit
34327856d9
@ -573,84 +573,6 @@ unsigned ARMBaseInstrInfo::GetInstSizeInBytes(const MachineInstr *MI) const {
|
|||||||
return 0; // Not reached
|
return 0; // Not reached
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned
|
|
||||||
ARMBaseInstrInfo::isLoadFromStackSlot(const MachineInstr *MI,
|
|
||||||
int &FrameIndex) const {
|
|
||||||
switch (MI->getOpcode()) {
|
|
||||||
default: break;
|
|
||||||
case ARM::LDR:
|
|
||||||
case ARM::t2LDRs: // FIXME: don't use t2LDRs to access frame.
|
|
||||||
if (MI->getOperand(1).isFI() &&
|
|
||||||
MI->getOperand(2).isReg() &&
|
|
||||||
MI->getOperand(3).isImm() &&
|
|
||||||
MI->getOperand(2).getReg() == 0 &&
|
|
||||||
MI->getOperand(3).getImm() == 0) {
|
|
||||||
FrameIndex = MI->getOperand(1).getIndex();
|
|
||||||
return MI->getOperand(0).getReg();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case ARM::t2LDRi12:
|
|
||||||
case ARM::tRestore:
|
|
||||||
if (MI->getOperand(1).isFI() &&
|
|
||||||
MI->getOperand(2).isImm() &&
|
|
||||||
MI->getOperand(2).getImm() == 0) {
|
|
||||||
FrameIndex = MI->getOperand(1).getIndex();
|
|
||||||
return MI->getOperand(0).getReg();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case ARM::VLDRD:
|
|
||||||
case ARM::VLDRS:
|
|
||||||
if (MI->getOperand(1).isFI() &&
|
|
||||||
MI->getOperand(2).isImm() &&
|
|
||||||
MI->getOperand(2).getImm() == 0) {
|
|
||||||
FrameIndex = MI->getOperand(1).getIndex();
|
|
||||||
return MI->getOperand(0).getReg();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
unsigned
|
|
||||||
ARMBaseInstrInfo::isStoreToStackSlot(const MachineInstr *MI,
|
|
||||||
int &FrameIndex) const {
|
|
||||||
switch (MI->getOpcode()) {
|
|
||||||
default: break;
|
|
||||||
case ARM::STR:
|
|
||||||
case ARM::t2STRs: // FIXME: don't use t2STRs to access frame.
|
|
||||||
if (MI->getOperand(1).isFI() &&
|
|
||||||
MI->getOperand(2).isReg() &&
|
|
||||||
MI->getOperand(3).isImm() &&
|
|
||||||
MI->getOperand(2).getReg() == 0 &&
|
|
||||||
MI->getOperand(3).getImm() == 0) {
|
|
||||||
FrameIndex = MI->getOperand(1).getIndex();
|
|
||||||
return MI->getOperand(0).getReg();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case ARM::t2STRi12:
|
|
||||||
case ARM::tSpill:
|
|
||||||
if (MI->getOperand(1).isFI() &&
|
|
||||||
MI->getOperand(2).isImm() &&
|
|
||||||
MI->getOperand(2).getImm() == 0) {
|
|
||||||
FrameIndex = MI->getOperand(1).getIndex();
|
|
||||||
return MI->getOperand(0).getReg();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case ARM::VSTRD:
|
|
||||||
case ARM::VSTRS:
|
|
||||||
if (MI->getOperand(1).isFI() &&
|
|
||||||
MI->getOperand(2).isImm() &&
|
|
||||||
MI->getOperand(2).getImm() == 0) {
|
|
||||||
FrameIndex = MI->getOperand(1).getIndex();
|
|
||||||
return MI->getOperand(0).getReg();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ARMBaseInstrInfo::copyPhysReg(MachineBasicBlock &MBB,
|
void ARMBaseInstrInfo::copyPhysReg(MachineBasicBlock &MBB,
|
||||||
MachineBasicBlock::iterator I, DebugLoc DL,
|
MachineBasicBlock::iterator I, DebugLoc DL,
|
||||||
unsigned DestReg, unsigned SrcReg,
|
unsigned DestReg, unsigned SrcReg,
|
||||||
@ -802,6 +724,38 @@ storeRegToStackSlot(MachineBasicBlock &MBB, MachineBasicBlock::iterator I,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unsigned
|
||||||
|
ARMBaseInstrInfo::isStoreToStackSlot(const MachineInstr *MI,
|
||||||
|
int &FrameIndex) const {
|
||||||
|
switch (MI->getOpcode()) {
|
||||||
|
default: break;
|
||||||
|
case ARM::STR:
|
||||||
|
case ARM::t2STRs: // FIXME: don't use t2STRs to access frame.
|
||||||
|
if (MI->getOperand(1).isFI() &&
|
||||||
|
MI->getOperand(2).isReg() &&
|
||||||
|
MI->getOperand(3).isImm() &&
|
||||||
|
MI->getOperand(2).getReg() == 0 &&
|
||||||
|
MI->getOperand(3).getImm() == 0) {
|
||||||
|
FrameIndex = MI->getOperand(1).getIndex();
|
||||||
|
return MI->getOperand(0).getReg();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case ARM::t2STRi12:
|
||||||
|
case ARM::tSpill:
|
||||||
|
case ARM::VSTRD:
|
||||||
|
case ARM::VSTRS:
|
||||||
|
if (MI->getOperand(1).isFI() &&
|
||||||
|
MI->getOperand(2).isImm() &&
|
||||||
|
MI->getOperand(2).getImm() == 0) {
|
||||||
|
FrameIndex = MI->getOperand(1).getIndex();
|
||||||
|
return MI->getOperand(0).getReg();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
void ARMBaseInstrInfo::
|
void ARMBaseInstrInfo::
|
||||||
loadRegFromStackSlot(MachineBasicBlock &MBB, MachineBasicBlock::iterator I,
|
loadRegFromStackSlot(MachineBasicBlock &MBB, MachineBasicBlock::iterator I,
|
||||||
unsigned DestReg, int FI,
|
unsigned DestReg, int FI,
|
||||||
@ -892,6 +846,38 @@ loadRegFromStackSlot(MachineBasicBlock &MBB, MachineBasicBlock::iterator I,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unsigned
|
||||||
|
ARMBaseInstrInfo::isLoadFromStackSlot(const MachineInstr *MI,
|
||||||
|
int &FrameIndex) const {
|
||||||
|
switch (MI->getOpcode()) {
|
||||||
|
default: break;
|
||||||
|
case ARM::LDR:
|
||||||
|
case ARM::t2LDRs: // FIXME: don't use t2LDRs to access frame.
|
||||||
|
if (MI->getOperand(1).isFI() &&
|
||||||
|
MI->getOperand(2).isReg() &&
|
||||||
|
MI->getOperand(3).isImm() &&
|
||||||
|
MI->getOperand(2).getReg() == 0 &&
|
||||||
|
MI->getOperand(3).getImm() == 0) {
|
||||||
|
FrameIndex = MI->getOperand(1).getIndex();
|
||||||
|
return MI->getOperand(0).getReg();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case ARM::t2LDRi12:
|
||||||
|
case ARM::tRestore:
|
||||||
|
case ARM::VLDRD:
|
||||||
|
case ARM::VLDRS:
|
||||||
|
if (MI->getOperand(1).isFI() &&
|
||||||
|
MI->getOperand(2).isImm() &&
|
||||||
|
MI->getOperand(2).getImm() == 0) {
|
||||||
|
FrameIndex = MI->getOperand(1).getIndex();
|
||||||
|
return MI->getOperand(0).getReg();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
MachineInstr*
|
MachineInstr*
|
||||||
ARMBaseInstrInfo::emitFrameIndexDebugValue(MachineFunction &MF,
|
ARMBaseInstrInfo::emitFrameIndexDebugValue(MachineFunction &MF,
|
||||||
int FrameIx, uint64_t Offset,
|
int FrameIx, uint64_t Offset,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user