diff options
| author | Tom Stellard <thomas.stellard@amd.com> | 2016-06-20 17:33:43 +0000 |
|---|---|---|
| committer | Tom Stellard <thomas.stellard@amd.com> | 2016-06-20 17:33:43 +0000 |
| commit | 535089426555f15d891a1898dcfecc1c83e54084 (patch) | |
| tree | 4c0083fa33e9ee7c068086c0e5e88b88f77ad44b /llvm/lib/Target/AMDGPU | |
| parent | 993576645888171b02989f2838ed3e9b04534688 (diff) | |
| download | bcm5719-llvm-535089426555f15d891a1898dcfecc1c83e54084.tar.gz bcm5719-llvm-535089426555f15d891a1898dcfecc1c83e54084.zip | |
AMDGPU: Add support for R_AMDGPU_REL32 relocations
Reviewers: arsenm, kzhuravl, rafael
Subscribers: arsenm, llvm-commits, kzhuravl
Differential Revision: http://reviews.llvm.org/D21401
llvm-svn: 273168
Diffstat (limited to 'llvm/lib/Target/AMDGPU')
| -rw-r--r-- | llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFObjectWriter.cpp | 6 | ||||
| -rw-r--r-- | llvm/lib/Target/AMDGPU/SIISelLowering.cpp | 3 |
2 files changed, 8 insertions, 1 deletions
diff --git a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFObjectWriter.cpp b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFObjectWriter.cpp index a4b4d256123..56e712ee2ad 100644 --- a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFObjectWriter.cpp +++ b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFObjectWriter.cpp @@ -45,6 +45,12 @@ unsigned AMDGPUELFObjectWriter::getRelocType(MCContext &Ctx, if (Target.getSymA()->getSymbol().getName() == "SCRATCH_RSRC_DWORD1") return ELF::R_AMDGPU_ABS32_HI; + switch (Fixup.getKind()) { + default: break; + case FK_PCRel_4: + return ELF::R_AMDGPU_REL32; + } + llvm_unreachable("unhandled relocation type"); } diff --git a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp index b40becfaab3..f9acf40afc2 100644 --- a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp +++ b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp @@ -1420,7 +1420,8 @@ SDValue SITargetLowering::LowerGlobalAddress(AMDGPUMachineFunction *MFI, SelectionDAG &DAG) const { GlobalAddressSDNode *GSD = cast<GlobalAddressSDNode>(Op); - if (GSD->getAddressSpace() != AMDGPUAS::CONSTANT_ADDRESS) + if (GSD->getAddressSpace() != AMDGPUAS::CONSTANT_ADDRESS && + GSD->getAddressSpace() != AMDGPUAS::GLOBAL_ADDRESS) return AMDGPUTargetLowering::LowerGlobalAddress(MFI, Op, DAG); SDLoc DL(GSD); |

