summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Mips/MipsISelLowering.cpp
diff options
context:
space:
mode:
authorAkira Hatanaka <ahatanaka@mips.com>2012-11-21 20:16:34 +0000
committerAkira Hatanaka <ahatanaka@mips.com>2012-11-21 20:16:34 +0000
commitdbe41ad18c7acaad89478d83894521fec7ac8a8b (patch)
treec856395a9d10445569b05a9cb4b2893da04aa250 /llvm/lib/Target/Mips/MipsISelLowering.cpp
parentb90c36868ed34aeea97271c3979a00443b0ed85c (diff)
downloadbcm5719-llvm-dbe41ad18c7acaad89478d83894521fec7ac8a8b.tar.gz
bcm5719-llvm-dbe41ad18c7acaad89478d83894521fec7ac8a8b.zip
[mips] When a node which loads from a GOT is created, pass a MachinePointerInfo
referring to a GOT entry. llvm-svn: 168453
Diffstat (limited to 'llvm/lib/Target/Mips/MipsISelLowering.cpp')
-rw-r--r--llvm/lib/Target/Mips/MipsISelLowering.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/llvm/lib/Target/Mips/MipsISelLowering.cpp b/llvm/lib/Target/Mips/MipsISelLowering.cpp
index 6202ae9a30c..b1c34776ade 100644
--- a/llvm/lib/Target/Mips/MipsISelLowering.cpp
+++ b/llvm/lib/Target/Mips/MipsISelLowering.cpp
@@ -1775,7 +1775,8 @@ SDValue MipsTargetLowering::LowerGlobalAddress(SDValue Op,
SDValue GA = DAG.getTargetGlobalAddress(GV, dl, ValTy, 0, GotFlag);
GA = DAG.getNode(MipsISD::Wrapper, dl, ValTy, GetGlobalReg(DAG, ValTy), GA);
SDValue ResNode = DAG.getLoad(ValTy, dl, DAG.getEntryNode(), GA,
- MachinePointerInfo(), false, false, false, 0);
+ MachinePointerInfo::getGOT(), false, false,
+ false, 0);
// On functions and global targets not internal linked only
// a load from got/GP is necessary for PIC to work.
if (!HasGotOfst)
@@ -1812,7 +1813,8 @@ SDValue MipsTargetLowering::LowerBlockAddress(SDValue Op,
GetGlobalReg(DAG, ValTy), BAGOTOffset);
SDValue BALOOffset = DAG.getTargetBlockAddress(BA, ValTy, 0, OFSTFlag);
SDValue Load = DAG.getLoad(ValTy, dl, DAG.getEntryNode(), BAGOTOffset,
- MachinePointerInfo(), false, false, false, 0);
+ MachinePointerInfo::getGOT(), false, false, false,
+ 0);
SDValue Lo = DAG.getNode(MipsISD::Lo, dl, ValTy, BALOOffset);
return DAG.getNode(ISD::ADD, dl, ValTy, Load, Lo);
}
@@ -1919,7 +1921,7 @@ LowerJumpTable(SDValue Op, SelectionDAG &DAG) const
JTI = DAG.getNode(MipsISD::Wrapper, dl, PtrVT, GetGlobalReg(DAG, PtrVT),
JTI);
HiPart = DAG.getLoad(PtrVT, dl, DAG.getEntryNode(), JTI,
- MachinePointerInfo(), false, false, false, 0);
+ MachinePointerInfo::getGOT(), false, false, false, 0);
JTILo = DAG.getTargetJumpTable(JT->getIndex(), PtrVT, OfstFlag);
}
@@ -1962,7 +1964,7 @@ LowerConstantPool(SDValue Op, SelectionDAG &DAG) const
N->getOffset(), GOTFlag);
CP = DAG.getNode(MipsISD::Wrapper, dl, ValTy, GetGlobalReg(DAG, ValTy), CP);
SDValue Load = DAG.getLoad(ValTy, dl, DAG.getEntryNode(), CP,
- MachinePointerInfo::getConstantPool(), false,
+ MachinePointerInfo::getGOT(), false,
false, false, 0);
SDValue CPLo = DAG.getTargetConstantPool(C, ValTy, N->getAlignment(),
N->getOffset(), OFSTFlag);
OpenPOWER on IntegriCloud