ARM: r12 is callee-saved for interrupt handlers
[oota-llvm.git] / lib / Target / Sparc / SparcInstrInfo.cpp
index 5e5e37a778af074a43d67a648b0226d14725691d..6ecf81de836905243904d5b439943b8e48545d92 100644 (file)
@@ -30,7 +30,7 @@
 using namespace llvm;
 
 
-// pin vtable to this file
+// Pin the vtable to this file.
 void SparcInstrInfo::anchor() {}
 
 SparcInstrInfo::SparcInstrInfo(SparcSubtarget &ST)
@@ -431,8 +431,9 @@ unsigned SparcInstrInfo::getGlobalBaseReg(MachineFunction *MF) const
   MachineBasicBlock::iterator MBBI = FirstMBB.begin();
   MachineRegisterInfo &RegInfo = MF->getRegInfo();
 
-  GlobalBaseReg = RegInfo.createVirtualRegister(&SP::IntRegsRegClass);
-
+  const TargetRegisterClass *PtrRC =
+    Subtarget.is64Bit() ? &SP::I64RegsRegClass : &SP::IntRegsRegClass;
+  GlobalBaseReg = RegInfo.createVirtualRegister(PtrRC);
 
   DebugLoc dl;