diff options
author | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2015-03-06 13:49:05 +0000 |
---|---|---|
committer | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2015-03-06 13:49:05 +0000 |
commit | 618c67a018ec523a2a3116421bd2a690cf696564 (patch) | |
tree | 85a02baa5266e003d540183cf6fff637472d515b /llvm/lib/Target/X86/X86TargetObjectFile.h | |
parent | 52b1391df61bd2ccfcbac2f354fec57cd4e17591 (diff) | |
download | bcm5719-llvm-618c67a018ec523a2a3116421bd2a690cf696564.tar.gz bcm5719-llvm-618c67a018ec523a2a3116421bd2a690cf696564.zip |
[AsmPrinter][TLOF] 32-bit MachO support for replacing GOT equivalents
Add MachO 32-bit (i.e. arm and x86) support for replacing global GOT equivalent
symbol accesses. Unlike 64-bit targets, there's no GOTPCREL relocation, and
access through a non_lazy_symbol_pointers section is used instead.
-- before
_extgotequiv:
.long _extfoo
_delta:
.long _extgotequiv-_delta
-- after
_delta:
.long L_extfoo$non_lazy_ptr-_delta
.section __IMPORT,__pointers,non_lazy_symbol_pointers
L_extfoo$non_lazy_ptr:
.indirect_symbol _extfoo
.long 0
llvm-svn: 231475
Diffstat (limited to 'llvm/lib/Target/X86/X86TargetObjectFile.h')
-rw-r--r-- | llvm/lib/Target/X86/X86TargetObjectFile.h | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/llvm/lib/Target/X86/X86TargetObjectFile.h b/llvm/lib/Target/X86/X86TargetObjectFile.h index 3c7caabdfdc..252b2774254 100644 --- a/llvm/lib/Target/X86/X86TargetObjectFile.h +++ b/llvm/lib/Target/X86/X86TargetObjectFile.h @@ -19,8 +19,6 @@ namespace llvm { /// x86-64. class X86_64MachoTargetObjectFile : public TargetLoweringObjectFileMachO { public: - X86_64MachoTargetObjectFile(); - const MCExpr * getTTypeGlobalReference(const GlobalValue *GV, unsigned Encoding, Mangler &Mang, const TargetMachine &TM, @@ -33,9 +31,10 @@ namespace llvm { const TargetMachine &TM, MachineModuleInfo *MMI) const override; - const MCExpr * - getIndirectSymViaGOTPCRel(const MCSymbol *Sym, int64_t Offset, - MCStreamer &Streamer) const override; + const MCExpr *getIndirectSymViaGOTPCRel(const MCSymbol *Sym, + const MCValue &MV, int64_t Offset, + MachineModuleInfo *MMI, + MCStreamer &Streamer) const override; }; /// \brief This implemenatation is used for X86 ELF targets that don't |