mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-23 14:25:07 +00:00
- Added regsOverlap() to test if two registers overlap. Or in case they are
virtual registers, test if they the same. - Added a virtual method to return target specific reserved registers, e.g. SP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34375 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -284,6 +284,17 @@ public:
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// regsOverlap - Returns true if the two registers are equal or alias
|
||||||
|
/// each other. The registers may be virtual register.
|
||||||
|
bool regsOverlap(unsigned regA, unsigned regB) const {
|
||||||
|
if (regA == regB)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
if (isVirtualRegister(regA) || isVirtualRegister(regB))
|
||||||
|
return false;
|
||||||
|
return areAliases(regA, regB);
|
||||||
|
}
|
||||||
|
|
||||||
/// getCalleeSavedRegs - Return a null-terminated list of all of the
|
/// getCalleeSavedRegs - Return a null-terminated list of all of the
|
||||||
/// callee saved registers on this target. The register should be in the
|
/// callee saved registers on this target. The register should be in the
|
||||||
/// order of desired callee-save stack frame offset. The first register is
|
/// order of desired callee-save stack frame offset. The first register is
|
||||||
@@ -295,6 +306,12 @@ public:
|
|||||||
/// length of this list match the getCalleeSaveRegs() list.
|
/// length of this list match the getCalleeSaveRegs() list.
|
||||||
virtual const TargetRegisterClass* const *getCalleeSavedRegClasses() const =0;
|
virtual const TargetRegisterClass* const *getCalleeSavedRegClasses() const =0;
|
||||||
|
|
||||||
|
/// getReservedRegs - Returns a bitset indexed by physical register number
|
||||||
|
/// indicating if a register is a special register that has particular uses and
|
||||||
|
/// should be considered unavailable at all times, e.g. SP, RA. This is used by
|
||||||
|
/// register scavenger to determine what registers are free.
|
||||||
|
virtual BitVector getReservedRegs(const MachineFunction &MF) const = 0;
|
||||||
|
|
||||||
//===--------------------------------------------------------------------===//
|
//===--------------------------------------------------------------------===//
|
||||||
// Register Class Information
|
// Register Class Information
|
||||||
//
|
//
|
||||||
|
Reference in New Issue
Block a user