diff options
author | Strahinja Petrovic <strahinja.petrovic@rt-rk.com> | 2018-06-19 13:07:40 +0000 |
---|---|---|
committer | Strahinja Petrovic <strahinja.petrovic@rt-rk.com> | 2018-06-19 13:07:40 +0000 |
commit | bb2b00bb80e0646a78847c7d7a916b69f1010f65 (patch) | |
tree | b352908c2e2c0d45ed33b62011432f7a07c93551 /llvm/lib | |
parent | 3de9664494777f30c1c50f8a8c9cb9b914b476fa (diff) | |
download | bcm5719-llvm-bb2b00bb80e0646a78847c7d7a916b69f1010f65.tar.gz bcm5719-llvm-bb2b00bb80e0646a78847c7d7a916b69f1010f65.zip |
[PowerPC] Fix label address calculation for ppc32
This patch fixes calculating address of label on ppc32 (for -fPIC).
Differential Revision: https://reviews.llvm.org/D46582
llvm-svn: 335043
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/PowerPC/PPCISelLowering.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp index f845f412130..548876008d0 100644 --- a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp +++ b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp @@ -2581,10 +2581,11 @@ SDValue PPCTargetLowering::LowerBlockAddress(SDValue Op, // 64-bit SVR4 ABI code is always position-independent. // The actual BlockAddress is stored in the TOC. - if (Subtarget.isSVR4ABI() && Subtarget.isPPC64()) { - setUsesTOCBasePtr(DAG); + if (Subtarget.isSVR4ABI() && isPositionIndependent()) { + if (Subtarget.isPPC64()) + setUsesTOCBasePtr(DAG); SDValue GA = DAG.getTargetBlockAddress(BA, PtrVT, BASDN->getOffset()); - return getTOCEntry(DAG, SDLoc(BASDN), true, GA); + return getTOCEntry(DAG, SDLoc(BASDN), Subtarget.isPPC64(), GA); } unsigned MOHiFlag, MOLoFlag; |