diff options
| author | Amara Emerson <amara.emerson@arm.com> | 2014-05-27 13:30:21 +0000 |
|---|---|---|
| committer | Amara Emerson <amara.emerson@arm.com> | 2014-05-27 13:30:21 +0000 |
| commit | ceeb1c48302aa2400d0e13e44d74f5d0527e9237 (patch) | |
| tree | 0dfceb00cda3683c2eb33aef740f07dade43da77 /llvm/lib/Target | |
| parent | 10e06da0310702d1b0d7e82804ddceb8e1102c12 (diff) | |
| download | bcm5719-llvm-ceeb1c48302aa2400d0e13e44d74f5d0527e9237.tar.gz bcm5719-llvm-ceeb1c48302aa2400d0e13e44d74f5d0527e9237.zip | |
[ARM] Emit correct build attributes for the relocation models.
Patch by Asiri Rathnayake.
llvm-svn: 209656
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/ARM/ARMAsmPrinter.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMAsmPrinter.cpp b/llvm/lib/Target/ARM/ARMAsmPrinter.cpp index 2b97e015bf4..55e9fe5f5c5 100644 --- a/llvm/lib/Target/ARM/ARMAsmPrinter.cpp +++ b/llvm/lib/Target/ARM/ARMAsmPrinter.cpp @@ -671,6 +671,20 @@ void ARMAsmPrinter::emitAttributes() { ATS.emitFPU(ARM::VFPV2); } + if (TM.getRelocationModel() == Reloc::PIC_) { + // PIC specific attributes. + ATS.emitAttribute(ARMBuildAttrs::ABI_PCS_RW_data, + ARMBuildAttrs::AddressRWPCRel); + ATS.emitAttribute(ARMBuildAttrs::ABI_PCS_RO_data, + ARMBuildAttrs::AddressROPCRel); + ATS.emitAttribute(ARMBuildAttrs::ABI_PCS_GOT_use, + ARMBuildAttrs::AddressGOT); + } else { + // Allow direct addressing of imported data for all other relocation models. + ATS.emitAttribute(ARMBuildAttrs::ABI_PCS_GOT_use, + ARMBuildAttrs::AddressDirect); + } + // Signal various FP modes. if (!TM.Options.UnsafeFPMath) { ATS.emitAttribute(ARMBuildAttrs::ABI_FP_denormal, ARMBuildAttrs::Allowed); |

