[llvm-commits] [llvm] r103709 - in /llvm/trunk: include/llvm/MC/MCAsmLayout.h lib/MC/MCAssembler.cpp
Daniel Dunbar
daniel at zuster.org
Thu May 13 01:43:31 PDT 2010
Author: ddunbar
Date: Thu May 13 03:43:31 2010
New Revision: 103709
URL: http://llvm.org/viewvc/llvm-project?rev=103709&view=rev
Log:
MC: Add MCAsmLayout::FragmentReplaced() helper function.
Modified:
llvm/trunk/include/llvm/MC/MCAsmLayout.h
llvm/trunk/lib/MC/MCAssembler.cpp
Modified: llvm/trunk/include/llvm/MC/MCAsmLayout.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCAsmLayout.h?rev=103709&r1=103708&r2=103709&view=diff
==============================================================================
--- llvm/trunk/include/llvm/MC/MCAsmLayout.h (original)
+++ llvm/trunk/include/llvm/MC/MCAsmLayout.h Thu May 13 03:43:31 2010
@@ -47,6 +47,9 @@
/// the delta from the old size.
void UpdateForSlide(MCFragment *F, int SlideAmount);
+ /// \brief Update the layout because a fragment has been replaced.
+ void FragmentReplaced(MCFragment *Src, MCFragment *Dst);
+
/// @name Section Access (in layout order)
/// @{
Modified: llvm/trunk/lib/MC/MCAssembler.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCAssembler.cpp?rev=103709&r1=103708&r2=103709&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCAssembler.cpp (original)
+++ llvm/trunk/lib/MC/MCAssembler.cpp Thu May 13 03:43:31 2010
@@ -73,6 +73,11 @@
getAssembler().LayoutSection(*this, i);
}
+void MCAsmLayout::FragmentReplaced(MCFragment *Src, MCFragment *Dst) {
+ Dst->Offset = Src->Offset;
+ Dst->EffectiveSize = Src->EffectiveSize;
+}
+
uint64_t MCAsmLayout::getFragmentAddress(const MCFragment *F) const {
assert(F->getParent() && "Missing section()!");
return getSectionAddress(F->getParent()) + getFragmentOffset(F);
@@ -818,13 +823,10 @@
SD.getFragmentList().insert(it2, DF);
// Update the data fragments layout data.
- //
- // FIXME: Add MCAsmLayout utility for this.
DF->setParent(IF->getParent());
DF->setAtom(IF->getAtom());
DF->setOrdinal(IF->getOrdinal());
- Layout.setFragmentOffset(DF, Layout.getFragmentOffset(IF));
- Layout.setFragmentEffectiveSize(DF, Layout.getFragmentEffectiveSize(IF));
+ Layout.FragmentReplaced(IF, DF);
// Copy in the data and the fixups.
DF->getContents().append(IF->getCode().begin(), IF->getCode().end());
More information about the llvm-commits
mailing list