3.5 snapshot (which around 60% of them did).. r203025, r203050, r203054, r203281, r203581, r203719, r203818, r204155, r204304, r205067, r205630, r205738, r207990, r208501. ok matthew@
25 lines
1.1 KiB
Plaintext
25 lines
1.1 KiB
Plaintext
$OpenBSD: patch-lib_Target_PowerPC_PPCISelDAGToDAG_cpp,v 1.1 2014/07/10 22:46:37 brad Exp $
|
|
|
|
r203054
|
|
The PPC global base register cannot be r0
|
|
|
|
The global base register cannot be r0 because it might end up as the first
|
|
argument to addi or addis. Fixes PR18316.
|
|
|
|
--- lib/Target/PowerPC/PPCISelDAGToDAG.cpp.orig Sun Mar 2 21:57:39 2014
|
|
+++ lib/Target/PowerPC/PPCISelDAGToDAG.cpp Sat Jun 14 04:06:17 2014
|
|
@@ -272,11 +272,11 @@ SDNode *PPCDAGToDAGISel::getGlobalBaseReg() {
|
|
DebugLoc dl;
|
|
|
|
if (PPCLowering.getPointerTy() == MVT::i32) {
|
|
- GlobalBaseReg = RegInfo->createVirtualRegister(&PPC::GPRCRegClass);
|
|
+ GlobalBaseReg = RegInfo->createVirtualRegister(&PPC::GPRC_NOR0RegClass);
|
|
BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MovePCtoLR));
|
|
BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MFLR), GlobalBaseReg);
|
|
} else {
|
|
- GlobalBaseReg = RegInfo->createVirtualRegister(&PPC::G8RCRegClass);
|
|
+ GlobalBaseReg = RegInfo->createVirtualRegister(&PPC::G8RC_NOX0RegClass);
|
|
BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MovePCtoLR8));
|
|
BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MFLR8), GlobalBaseReg);
|
|
}
|