summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86TargetObjectFile.h
diff options
context:
space:
mode:
authorBruno Cardoso Lopes <bruno.cardoso@gmail.com>2015-03-06 13:49:05 +0000
committerBruno Cardoso Lopes <bruno.cardoso@gmail.com>2015-03-06 13:49:05 +0000
commit618c67a018ec523a2a3116421bd2a690cf696564 (patch)
tree85a02baa5266e003d540183cf6fff637472d515b /llvm/lib/Target/X86/X86TargetObjectFile.h
parent52b1391df61bd2ccfcbac2f354fec57cd4e17591 (diff)
downloadbcm5719-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.h9
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
OpenPOWER on IntegriCloud