diff options
author | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2008-07-28 19:26:25 +0000 |
---|---|---|
committer | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2008-07-28 19:26:25 +0000 |
commit | f33bc43c9a2a903e1cccefb616ed07d5a2ae4204 (patch) | |
tree | e48aaf8ffa242de6b9eb9645d0138357aae867a3 | |
parent | 53388fcde6d2766ecff2e4d0f6b38ebab11bb197 (diff) | |
download | external_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.cpp | 18 |
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; } |