diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Target/X86/X86InstrInfo.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/Target/X86/X86InstrInfo.cpp b/lib/Target/X86/X86InstrInfo.cpp index 8420445bf9..330b4d6ac8 100644 --- a/lib/Target/X86/X86InstrInfo.cpp +++ b/lib/Target/X86/X86InstrInfo.cpp @@ -2137,7 +2137,13 @@ MachineInstr* X86InstrInfo::foldMemoryOperandImpl(MachineFunction &MF, unsigned PICBase = 0; if (TM.getRelocationModel() == Reloc::PIC_ && !TM.getSubtarget<X86Subtarget>().is64Bit()) - PICBase = TM.getInstrInfo()->getGlobalBaseReg(&MF); + // FIXME: PICBase = TM.getInstrInfo()->getGlobalBaseReg(&MF); + // This doesn't work for several reasons. + // 1. GlobalBaseReg may have been spilled. + // 2. It may not be live at MI. + // 3. If this is used during register allocation / spilling, the spiller + // must know not to spill GlobalBaseReg (which is a temporary nasty hack). + return false; // Create a v4i32 constant-pool entry. MachineConstantPool &MCP = *MF.getConstantPool(); |