diff options
Diffstat (limited to 'contrib/llvm/lib/Target/X86/X86TargetObjectFile.cpp')
| -rw-r--r-- | contrib/llvm/lib/Target/X86/X86TargetObjectFile.cpp | 34 | 
1 files changed, 24 insertions, 10 deletions
| diff --git a/contrib/llvm/lib/Target/X86/X86TargetObjectFile.cpp b/contrib/llvm/lib/Target/X86/X86TargetObjectFile.cpp index d664cff5f2c1..7f70829cb6c6 100644 --- a/contrib/llvm/lib/Target/X86/X86TargetObjectFile.cpp +++ b/contrib/llvm/lib/Target/X86/X86TargetObjectFile.cpp @@ -24,14 +24,13 @@ using namespace llvm;  using namespace dwarf;  const MCExpr *X86_64MachoTargetObjectFile::getTTypeGlobalReference( -    const GlobalValue *GV, unsigned Encoding, Mangler &Mang, -    const TargetMachine &TM, MachineModuleInfo *MMI, -    MCStreamer &Streamer) const { +    const GlobalValue *GV, unsigned Encoding, const TargetMachine &TM, +    MachineModuleInfo *MMI, MCStreamer &Streamer) const {    // On Darwin/X86-64, we can reference dwarf symbols with foo@GOTPCREL+4, which    // is an indirect pc-relative reference.    if ((Encoding & DW_EH_PE_indirect) && (Encoding & DW_EH_PE_pcrel)) { -    const MCSymbol *Sym = TM.getSymbol(GV, Mang); +    const MCSymbol *Sym = TM.getSymbol(GV);      const MCExpr *Res =        MCSymbolRefExpr::create(Sym, MCSymbolRefExpr::VK_GOTPCREL, getContext());      const MCExpr *Four = MCConstantExpr::create(4, getContext()); @@ -39,13 +38,13 @@ const MCExpr *X86_64MachoTargetObjectFile::getTTypeGlobalReference(    }    return TargetLoweringObjectFileMachO::getTTypeGlobalReference( -      GV, Encoding, Mang, TM, MMI, Streamer); +      GV, Encoding, TM, MMI, Streamer);  }  MCSymbol *X86_64MachoTargetObjectFile::getCFIPersonalitySymbol( -    const GlobalValue *GV, Mangler &Mang, const TargetMachine &TM, +    const GlobalValue *GV, const TargetMachine &TM,      MachineModuleInfo *MMI) const { -  return TM.getSymbol(GV, Mang); +  return TM.getSymbol(GV);  }  const MCExpr *X86_64MachoTargetObjectFile::getIndirectSymViaGOTPCRel( @@ -67,6 +66,20 @@ const MCExpr *X86ELFTargetObjectFile::getDebugThreadLocalSymbol(  }  void +X86FreeBSDTargetObjectFile::Initialize(MCContext &Ctx, +                                       const TargetMachine &TM) { +  TargetLoweringObjectFileELF::Initialize(Ctx, TM); +  InitializeELF(TM.Options.UseInitArray); +} + +void +X86FuchsiaTargetObjectFile::Initialize(MCContext &Ctx, +                                       const TargetMachine &TM) { +  TargetLoweringObjectFileELF::Initialize(Ctx, TM); +  InitializeELF(TM.Options.UseInitArray); +} + +void  X86LinuxNaClTargetObjectFile::Initialize(MCContext &Ctx,                                           const TargetMachine &TM) {    TargetLoweringObjectFileELF::Initialize(Ctx, TM); @@ -74,7 +87,7 @@ X86LinuxNaClTargetObjectFile::Initialize(MCContext &Ctx,  }  const MCExpr *X86WindowsTargetObjectFile::lowerRelativeReference( -    const GlobalValue *LHS, const GlobalValue *RHS, Mangler &Mang, +    const GlobalValue *LHS, const GlobalValue *RHS,      const TargetMachine &TM) const {    // Our symbols should exist in address space zero, cowardly no-op if    // otherwise. @@ -95,8 +108,9 @@ const MCExpr *X86WindowsTargetObjectFile::lowerRelativeReference(        cast<GlobalVariable>(RHS)->hasInitializer() || RHS->hasSection())      return nullptr; -  return MCSymbolRefExpr::create( -      TM.getSymbol(LHS, Mang), MCSymbolRefExpr::VK_COFF_IMGREL32, getContext()); +  return MCSymbolRefExpr::create(TM.getSymbol(LHS), +                                 MCSymbolRefExpr::VK_COFF_IMGREL32, +                                 getContext());  }  static std::string APIntToHexString(const APInt &AI) { | 
