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, _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits