diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2015-06-10 19:12:52 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2015-06-10 19:12:52 +0000 | 
| commit | 97bc6c731eabb6212f094302b94f3f0f9534ebdf (patch) | |
| tree | 471dda8f5419bb81beedeeef3b8975938d7e7340 /contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp | |
| parent | 3adc74c768226112b373d0bcacee73521b0aed2a (diff) | |
| parent | 85d8b2bbe386bcfe669575d05b61482d7be07e5d (diff) | |
Notes
Diffstat (limited to 'contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp')
| -rw-r--r-- | contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp | 37 | 
1 files changed, 15 insertions, 22 deletions
diff --git a/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp b/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp index 9755330bf8c3..95d7ea7c04a3 100644 --- a/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp +++ b/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp @@ -17,7 +17,6 @@  #include "llvm/MC/MCExpr.h"  #include "llvm/MC/MCFixup.h"  #include "llvm/MC/MCFixupKindInfo.h" -#include "llvm/MC/MCMachOSymbolFlags.h"  #include "llvm/MC/MCMachObjectWriter.h"  #include "llvm/MC/MCSection.h"  #include "llvm/MC/MCValue.h" @@ -49,12 +48,10 @@ class ARMMachObjectWriter : public MCMachObjectTargetWriter {                                  const MCSymbol &S, uint64_t FixedValue);  public: -  ARMMachObjectWriter(bool Is64Bit, uint32_t CPUType, -                      uint32_t CPUSubtype) -    : MCMachObjectTargetWriter(Is64Bit, CPUType, CPUSubtype, -                               /*UseAggressiveSymbolFolding=*/true) {} +  ARMMachObjectWriter(bool Is64Bit, uint32_t CPUType, uint32_t CPUSubtype) +      : MCMachObjectTargetWriter(Is64Bit, CPUType, CPUSubtype) {} -  void RecordRelocation(MachObjectWriter *Writer, MCAssembler &Asm, +  void recordRelocation(MachObjectWriter *Writer, MCAssembler &Asm,                          const MCAsmLayout &Layout, const MCFragment *Fragment,                          const MCFixup &Fixup, MCValue Target,                          uint64_t &FixedValue) override; @@ -152,23 +149,21 @@ RecordARMScatteredHalfRelocation(MachObjectWriter *Writer,    // See <reloc.h>.    const MCSymbol *A = &Target.getSymA()->getSymbol(); -  const MCSymbolData *A_SD = &Asm.getSymbolData(*A); -  if (!A_SD->getFragment()) +  if (!A->getFragment())      Asm.getContext().reportFatalError(Fixup.getLoc(),                         "symbol '" + A->getName() +                         "' can not be undefined in a subtraction expression");    uint32_t Value = Writer->getSymbolAddress(*A, Layout);    uint32_t Value2 = 0; -  uint64_t SecAddr = -      Writer->getSectionAddress(A_SD->getFragment()->getParent()); +  uint64_t SecAddr = Writer->getSectionAddress(A->getFragment()->getParent());    FixedValue += SecAddr;    if (const MCSymbolRefExpr *B = Target.getSymB()) { -    const MCSymbolData *B_SD = &Asm.getSymbolData(B->getSymbol()); +    const MCSymbol *SB = &B->getSymbol(); -    if (!B_SD->getFragment()) +    if (!SB->getFragment())        Asm.getContext().reportFatalError(Fixup.getLoc(),                           "symbol '" + B->getSymbol().getName() +                           "' can not be undefined in a subtraction expression"); @@ -176,7 +171,7 @@ RecordARMScatteredHalfRelocation(MachObjectWriter *Writer,      // Select the appropriate difference relocation type.      Type = MachO::ARM_RELOC_HALF_SECTDIFF;      Value2 = Writer->getSymbolAddress(B->getSymbol(), Layout); -    FixedValue -= Writer->getSectionAddress(B_SD->getFragment()->getParent()); +    FixedValue -= Writer->getSectionAddress(SB->getFragment()->getParent());    }    // Relocations are written out in reverse order, so the PAIR comes first. @@ -255,24 +250,22 @@ void ARMMachObjectWriter::RecordARMScatteredRelocation(MachObjectWriter *Writer,    // See <reloc.h>.    const MCSymbol *A = &Target.getSymA()->getSymbol(); -  const MCSymbolData *A_SD = &Asm.getSymbolData(*A); -  if (!A_SD->getFragment()) +  if (!A->getFragment())      Asm.getContext().reportFatalError(Fixup.getLoc(),                         "symbol '" + A->getName() +                         "' can not be undefined in a subtraction expression");    uint32_t Value = Writer->getSymbolAddress(*A, Layout); -  uint64_t SecAddr = -      Writer->getSectionAddress(A_SD->getFragment()->getParent()); +  uint64_t SecAddr = Writer->getSectionAddress(A->getFragment()->getParent());    FixedValue += SecAddr;    uint32_t Value2 = 0;    if (const MCSymbolRefExpr *B = Target.getSymB()) {      assert(Type == MachO::ARM_RELOC_VANILLA && "invalid reloc for 2 symbols"); -    const MCSymbolData *B_SD = &Asm.getSymbolData(B->getSymbol()); +    const MCSymbol *SB = &B->getSymbol(); -    if (!B_SD->getFragment()) +    if (!SB->getFragment())        Asm.getContext().reportFatalError(Fixup.getLoc(),                           "symbol '" + B->getSymbol().getName() +                           "' can not be undefined in a subtraction expression"); @@ -280,7 +273,7 @@ void ARMMachObjectWriter::RecordARMScatteredRelocation(MachObjectWriter *Writer,      // Select the appropriate difference relocation type.      Type = MachO::ARM_RELOC_SECTDIFF;      Value2 = Writer->getSymbolAddress(B->getSymbol(), Layout); -    FixedValue -= Writer->getSectionAddress(B_SD->getFragment()->getParent()); +    FixedValue -= Writer->getSectionAddress(SB->getFragment()->getParent());    }    // Relocations are written out in reverse order, so the PAIR comes first. @@ -344,7 +337,7 @@ bool ARMMachObjectWriter::requiresExternRelocation(MachObjectWriter *Writer,    return false;  } -void ARMMachObjectWriter::RecordRelocation(MachObjectWriter *Writer, +void ARMMachObjectWriter::recordRelocation(MachObjectWriter *Writer,                                             MCAssembler &Asm,                                             const MCAsmLayout &Layout,                                             const MCFragment *Fragment, @@ -405,7 +398,7 @@ void ARMMachObjectWriter::RecordRelocation(MachObjectWriter *Writer,      // Resolve constant variables.      if (A->isVariable()) {        int64_t Res; -      if (A->getVariableValue()->EvaluateAsAbsolute( +      if (A->getVariableValue()->evaluateAsAbsolute(                Res, Layout, Writer->getSectionAddressMap())) {          FixedValue = Res;          return;  | 
