14 #ifndef ARMBASEREGISTERINFO_H
15 #define ARMBASEREGISTERINFO_H
20 #define GET_REGINFO_HEADER
21 #include "ARMGenRegisterInfo.inc"
25 class ARMBaseInstrInfo;
41 case R0:
case R1:
case R2:
case R3:
42 case R4:
case R5:
case R6:
case R7:
43 case LR:
case SP:
case PC:
45 case R8:
case R9:
case R10:
case R11:
56 case R8:
case R9:
case R10:
case R11:
67 case D15:
case D14:
case D13:
case D12:
68 case D11:
case D10:
case D9:
case D8:
140 unsigned BaseReg,
int FrameIdx,
141 int64_t Offset)
const;
143 unsigned BaseReg, int64_t Offset)
const;
160 unsigned DestReg,
unsigned SubIdx,
163 unsigned PredReg = 0,
176 int SPAdj,
unsigned FIOperandNum,
unsigned getFrameRegister(const MachineFunction &MF) const
COFF::RelocationTypeX86 Type
void resolveFrameIndex(MachineBasicBlock::iterator I, unsigned BaseReg, int64_t Offset) const
ARMBaseRegisterInfo(const ARMSubtarget &STI)
bool needsFrameBaseReg(MachineInstr *MI, int64_t Offset) const
virtual void eliminateFrameIndex(MachineBasicBlock::iterator II, int SPAdj, unsigned FIOperandNum, RegScavenger *RS=NULL) const
unsigned getBaseRegister() const
virtual bool trackLivenessAfterRegAlloc(const MachineFunction &MF) const
const TargetRegisterClass * getPointerRegClass(const MachineFunction &MF, unsigned Kind=0) const
virtual bool requiresRegisterScavenging(const MachineFunction &MF) const
Code Generation virtual methods...
BitVector getReservedRegs(const MachineFunction &MF) const
const TargetRegisterClass * getLargestLegalSuperClass(const TargetRegisterClass *RC) const
unsigned getRegPressureLimit(const TargetRegisterClass *RC, MachineFunction &MF) const
ID
LLVM Calling Convention Representation.
virtual bool avoidWriteAfterWrite(const TargetRegisterClass *RC) const
static bool isARMArea1Register(unsigned Reg, bool isIOS)
virtual bool requiresFrameIndexScavenging(const MachineFunction &MF) const
bundle_iterator< MachineInstr, instr_iterator > iterator
const uint32_t * getCallPreservedMask(CallingConv::ID) const
void UpdateRegAllocHint(unsigned Reg, unsigned NewReg, MachineFunction &MF) const
bool isLowRegister(unsigned Reg) const
int64_t getFrameIndexInstrOffset(const MachineInstr *MI, int Idx) const
bool canRealignStack(const MachineFunction &MF) const
bool needsStackRealignment(const MachineFunction &MF) const
const TargetRegisterClass * getCrossCopyRegClass(const TargetRegisterClass *RC) const
static bool isARMArea2Register(unsigned Reg, bool isIOS)
const uint32_t * getNoPreservedMask() const
const uint16_t * getCalleeSavedRegs(const MachineFunction *MF=0) const
Code Generation virtual methods...
bool hasBasePointer(const MachineFunction &MF) const
void getRegAllocationHints(unsigned VirtReg, ArrayRef< MCPhysReg > Order, SmallVectorImpl< MCPhysReg > &Hints, const MachineFunction &MF, const VirtRegMap *VRM) const
unsigned getOpcode(int Op) const
virtual void emitLoadConstPool(MachineBasicBlock &MBB, MachineBasicBlock::iterator &MBBI, DebugLoc dl, unsigned DestReg, unsigned SubIdx, int Val, ARMCC::CondCodes Pred=ARMCC::AL, unsigned PredReg=0, unsigned MIFlags=MachineInstr::NoFlags) const
static bool isARMArea3Register(unsigned Reg, bool isIOS)
bool cannotEliminateFrame(const MachineFunction &MF) const
const uint32_t * getThisReturnPreservedMask(CallingConv::ID) const
virtual bool requiresVirtualBaseRegisters(const MachineFunction &MF) const
bool isFrameOffsetLegal(const MachineInstr *MI, int64_t Offset) const
void materializeFrameBaseRegister(MachineBasicBlock *MBB, unsigned BaseReg, int FrameIdx, int64_t Offset) const
unsigned FramePtr
FramePtr - ARM physical register used as frame ptr.