[llvm-commits] [llvm] r47019 - /llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp

Evan Cheng evan.cheng at apple.com
Tue Feb 12 11:20:46 PST 2008


Author: evancheng
Date: Tue Feb 12 13:20:46 2008
New Revision: 47019

URL: http://llvm.org/viewvc/llvm-project?rev=47019&view=rev
Log:
Only using x86-64 rip relative addressing in non-staic mode?

Modified:
    llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp

Modified: llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp?rev=47019&r1=47018&r2=47019&view=diff

==============================================================================
--- llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp Tue Feb 12 13:20:46 2008
@@ -679,21 +679,25 @@
         GlobalValue *GV = G->getGlobal();
         AM.GV = GV;
         AM.Disp += G->getOffset();
-        AM.isRIPRel = is64Bit;
+        AM.isRIPRel = TM.getRelocationModel() != Reloc::Static &&
+          Subtarget->isPICStyleRIPRel();
         return false;
       } else if (ConstantPoolSDNode *CP = dyn_cast<ConstantPoolSDNode>(N0)) {
         AM.CP = CP->getConstVal();
         AM.Align = CP->getAlignment();
         AM.Disp += CP->getOffset();
-        AM.isRIPRel = is64Bit;
+        AM.isRIPRel = TM.getRelocationModel() != Reloc::Static &&
+          Subtarget->isPICStyleRIPRel();
         return false;
       } else if (ExternalSymbolSDNode *S =dyn_cast<ExternalSymbolSDNode>(N0)) {
         AM.ES = S->getSymbol();
-        AM.isRIPRel = is64Bit;
+        AM.isRIPRel = TM.getRelocationModel() != Reloc::Static &&
+          Subtarget->isPICStyleRIPRel();
         return false;
       } else if (JumpTableSDNode *J = dyn_cast<JumpTableSDNode>(N0)) {
         AM.JT = J->getIndex();
-        AM.isRIPRel = is64Bit;
+        AM.isRIPRel = TM.getRelocationModel() != Reloc::Static &&
+          Subtarget->isPICStyleRIPRel();
         return false;
       }
     }





More information about the llvm-commits mailing list