summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-05-26 00:36:57 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-05-26 00:36:57 +0000
commit7549f876723d6711248419b0794ede4c4dea3077 (patch)
treeaa1fad623d754c84cad0e509aee151a075896ca8 /llvm/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp
parent24d285d31ba07be9edff7788aa5003192dbbfb3a (diff)
downloadbcm5719-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.cpp18
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,
OpenPOWER on IntegriCloud