aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBruno Cardoso Lopes <bruno.cardoso@gmail.com>2008-07-28 19:26:25 +0000
committerBruno Cardoso Lopes <bruno.cardoso@gmail.com>2008-07-28 19:26:25 +0000
commitf33bc43c9a2a903e1cccefb616ed07d5a2ae4204 (patch)
treee48aaf8ffa242de6b9eb9645d0138357aae867a3
parent53388fcde6d2766ecff2e4d0f6b38ebab11bb197 (diff)
downloadexternal_llvm-f33bc43c9a2a903e1cccefb616ed07d5a2ae4204.zip
external_llvm-f33bc43c9a2a903e1cccefb616ed07d5a2ae4204.tar.gz
external_llvm-f33bc43c9a2a903e1cccefb616ed07d5a2ae4204.tar.bz2
Disable gp_rel relocation for constant pools access for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54142 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/Mips/MipsISelLowering.cpp18
1 files changed, 11 insertions, 7 deletions
diff --git a/lib/Target/Mips/MipsISelLowering.cpp b/lib/Target/Mips/MipsISelLowering.cpp
index f1e0e59..0a48632 100644
--- a/lib/Target/Mips/MipsISelLowering.cpp
+++ b/lib/Target/Mips/MipsISelLowering.cpp
@@ -440,16 +440,20 @@ LowerConstantPool(SDValue Op, SelectionDAG &DAG)
SDValue CP = DAG.getTargetConstantPool(C, MVT::i32, N->getAlignment());
// gp_rel relocation
- if (!Subtarget->hasABICall() &&
- IsInSmallSection(getTargetData()->getABITypeSize(C->getType()))) {
- SDValue GPRelNode = DAG.getNode(MipsISD::GPRel, MVT::i32, CP);
- SDValue GOT = DAG.getNode(ISD::GLOBAL_OFFSET_TABLE, MVT::i32);
- ResNode = DAG.getNode(ISD::ADD, MVT::i32, GOT, GPRelNode);
- } else { // %hi/%lo relocation
+ // FIXME: we should reference the constant pool using small data sections,
+ // but the asm printer currently doens't support this feature without
+ // hacking it. This feature should come soon so we can uncomment the
+ // stuff below.
+ //if (!Subtarget->hasABICall() &&
+ // IsInSmallSection(getTargetData()->getABITypeSize(C->getType()))) {
+ // SDValue GPRelNode = DAG.getNode(MipsISD::GPRel, MVT::i32, CP);
+ // SDValue GOT = DAG.getNode(ISD::GLOBAL_OFFSET_TABLE, MVT::i32);
+ // ResNode = DAG.getNode(ISD::ADD, MVT::i32, GOT, GPRelNode);
+ //} else { // %hi/%lo relocation
SDValue HiPart = DAG.getNode(MipsISD::Hi, MVT::i32, CP);
SDValue Lo = DAG.getNode(MipsISD::Lo, MVT::i32, CP);
ResNode = DAG.getNode(ISD::ADD, MVT::i32, HiPart, Lo);
- }
+ //}
return ResNode;
}