diff --git a/lib/Target/PowerPC/PPCCodeEmitter.cpp b/lib/Target/PowerPC/PPCCodeEmitter.cpp index 7bc871494a6..6ecbb139246 100644 --- a/lib/Target/PowerPC/PPCCodeEmitter.cpp +++ b/lib/Target/PowerPC/PPCCodeEmitter.cpp @@ -220,7 +220,8 @@ int PPC32CodeEmitter::getMachineOpValue(MachineInstr &MI, MachineOperand &MO) { } // Special treatment for global symbols: constants and vars - if (MO.isConstantPoolIndex() || MO.isGlobalAddress()) { + if ((MO.isConstantPoolIndex() || MO.isGlobalAddress()) && + MI.getOpcode() != PPC::CALLpcrel) { unsigned Opcode = MI.getOpcode(); assert(MovePCtoLROffset && "MovePCtoLR not seen yet?");