diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-05-26 00:36:57 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-05-26 00:36:57 +0000 |
commit | 7549f876723d6711248419b0794ede4c4dea3077 (patch) | |
tree | aa1fad623d754c84cad0e509aee151a075896ca8 /llvm/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp | |
parent | 24d285d31ba07be9edff7788aa5003192dbbfb3a (diff) | |
download | bcm5719-llvm-7549f876723d6711248419b0794ede4c4dea3077.tar.gz bcm5719-llvm-7549f876723d6711248419b0794ede4c4dea3077.zip |
Return a MCSection from MCFragment::getParent().
Another step in merging MCSectionData and MCSection.
llvm-svn: 238162
Diffstat (limited to 'llvm/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp')
-rw-r--r-- | llvm/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp index 1bdf031b81b..6fec196909f 100644 --- a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp +++ b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp @@ -213,8 +213,8 @@ bool PPCMachObjectWriter::RecordScatteredRelocation( "' 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_SD->getFragment()->getParent()->getSectionData()); FixedValue += SecAddr; uint32_t Value2 = 0; @@ -227,7 +227,8 @@ bool PPCMachObjectWriter::RecordScatteredRelocation( // FIXME: is Type correct? see include/llvm/Support/MachO.h Value2 = Writer->getSymbolAddress(B->getSymbol(), Layout); - FixedValue -= Writer->getSectionAddress(B_SD->getFragment()->getParent()); + FixedValue -= Writer->getSectionAddress( + &B_SD->getFragment()->getParent()->getSectionData()); } // FIXME: does FixedValue get used?? @@ -282,7 +283,8 @@ bool PPCMachObjectWriter::RecordScatteredRelocation( MachO::any_relocation_info MRE; makeScatteredRelocationInfo(MRE, other_half, MachO::GENERIC_RELOC_PAIR, Log2Size, IsPCRel, Value2); - Writer->addRelocation(nullptr, Fragment->getParent(), MRE); + Writer->addRelocation(nullptr, &Fragment->getParent()->getSectionData(), + MRE); } else { // If the offset is more than 24-bits, it won't fit in a scattered // relocation offset field, so we fall back to using a non-scattered @@ -296,7 +298,7 @@ bool PPCMachObjectWriter::RecordScatteredRelocation( } MachO::any_relocation_info MRE; makeScatteredRelocationInfo(MRE, FixupOffset, Type, Log2Size, IsPCRel, Value); - Writer->addRelocation(nullptr, Fragment->getParent(), MRE); + Writer->addRelocation(nullptr, &Fragment->getParent()->getSectionData(), MRE); return true; } @@ -369,13 +371,15 @@ void PPCMachObjectWriter::RecordPPCRelocation( FixedValue += Writer->getSectionAddress(&SymSD); } if (IsPCRel) - FixedValue -= Writer->getSectionAddress(Fragment->getParent()); + FixedValue -= + Writer->getSectionAddress(&Fragment->getParent()->getSectionData()); } // struct relocation_info (8 bytes) MachO::any_relocation_info MRE; makeRelocationInfo(MRE, FixupOffset, Index, IsPCRel, Log2Size, false, Type); - Writer->addRelocation(RelSymbol, Fragment->getParent(), MRE); + Writer->addRelocation(RelSymbol, &Fragment->getParent()->getSectionData(), + MRE); } MCObjectWriter *llvm::createPPCMachObjectWriter(raw_pwrite_stream &OS, |