[llvm-commits] CVS: llvm/lib/Target/X86/X86.td X86RegisterInfo.cpp X86RegisterInfo.h
Evan Cheng
evan.cheng at apple.com
Wed May 17 17:13:11 PDT 2006
Changes in directory llvm/lib/Target/X86:
X86.td updated: 1.23 -> 1.24
X86RegisterInfo.cpp updated: 1.153 -> 1.154
X86RegisterInfo.h updated: 1.38 -> 1.39
---
Log message:
getCalleeSaveRegs and getCalleeSaveRegClasses are no long TableGen'd.
---
Diffs of the changes: (+28 -7)
X86.td | 3 ---
X86RegisterInfo.cpp | 16 ++++++++++++++++
X86RegisterInfo.h | 16 ++++++++++++----
3 files changed, 28 insertions(+), 7 deletions(-)
Index: llvm/lib/Target/X86/X86.td
diff -u llvm/lib/Target/X86/X86.td:1.23 llvm/lib/Target/X86/X86.td:1.24
--- llvm/lib/Target/X86/X86.td:1.23 Wed May 17 16:20:27 2006
+++ llvm/lib/Target/X86/X86.td Wed May 17 19:12:58 2006
@@ -130,9 +130,6 @@
def X86 : Target {
- // Specify the callee saved registers.
- let CalleeSavedRegisters = [ESI, EDI, EBX, EBP];
-
// Information about the instructions...
let InstructionSet = X86InstrInfo;
Index: llvm/lib/Target/X86/X86RegisterInfo.cpp
diff -u llvm/lib/Target/X86/X86RegisterInfo.cpp:1.153 llvm/lib/Target/X86/X86RegisterInfo.cpp:1.154
--- llvm/lib/Target/X86/X86RegisterInfo.cpp:1.153 Tue May 16 02:21:53 2006
+++ llvm/lib/Target/X86/X86RegisterInfo.cpp Wed May 17 19:12:58 2006
@@ -600,6 +600,22 @@
return NULL;
}
+const unsigned *X86RegisterInfo::getCalleeSaveRegs() const {
+ static const unsigned CalleeSaveRegs[] = {
+ X86::ESI, X86::EDI, X86::EBX, X86::EBP, 0
+ };
+ return CalleeSaveRegs;
+}
+
+const TargetRegisterClass* const*
+X86RegisterInfo::getCalleeSaveRegClasses() const {
+ static const TargetRegisterClass * const CalleeSaveRegClasses[] = {
+ &X86::GR32RegClass, &X86::GR32RegClass,
+ &X86::GR32RegClass, &X86::GR32RegClass, 0
+ };
+ return CalleeSaveRegClasses;
+}
+
//===----------------------------------------------------------------------===//
// Stack Frame Processing methods
//===----------------------------------------------------------------------===//
Index: llvm/lib/Target/X86/X86RegisterInfo.h
diff -u llvm/lib/Target/X86/X86RegisterInfo.h:1.38 llvm/lib/Target/X86/X86RegisterInfo.h:1.39
--- llvm/lib/Target/X86/X86RegisterInfo.h:1.38 Fri May 5 00:40:20 2006
+++ llvm/lib/Target/X86/X86RegisterInfo.h Wed May 17 19:12:58 2006
@@ -47,10 +47,18 @@
/// folding and return true, otherwise it should return false. If it folds
/// the instruction, it is likely that the MachineInstruction the iterator
/// references has been changed.
- virtual MachineInstr* foldMemoryOperand(MachineInstr* MI,
- unsigned OpNum,
- int FrameIndex) const;
-
+ MachineInstr* foldMemoryOperand(MachineInstr* MI,
+ unsigned OpNum,
+ int FrameIndex) const;
+
+ /// getCalleeSaveRegs - Return a null-terminated list of all of the
+ /// callee-save registers on this target.
+ const unsigned *getCalleeSaveRegs() const;
+
+ /// getCalleeSaveRegClasses - Return a null-terminated list of the preferred
+ /// register classes to spill each callee-saved register with. The order and
+ /// length of this list match the getCalleeSaveRegs() list.
+ const TargetRegisterClass* const* getCalleeSaveRegClasses() const;
void eliminateCallFramePseudoInstr(MachineFunction &MF,
MachineBasicBlock &MBB,
More information about the llvm-commits
mailing list