aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Target/PowerPC/PPCCodeEmitter.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/Target/PowerPC/PPCCodeEmitter.cpp b/lib/Target/PowerPC/PPCCodeEmitter.cpp
index 7bc871494a..6ecbb13924 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?");