[SparcV9] Use correct register class (I64RegClass) to hold the address of _GLOBAL_OF...
[oota-llvm.git] / lib / Target / Sparc / SparcInstrInfo.cpp
index c10b5b300512a8722079576373eb468a1a394276..6ecf81de836905243904d5b439943b8e48545d92 100644 (file)
@@ -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;