MC: Lift SwitchSection() and Finish() into MCObjectStreamer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106141 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Daniel Dunbar
2010-06-16 20:04:25 +00:00
parent 8dc68ab931
commit 83b467178a
3 changed files with 51 additions and 42 deletions

View File

@ -14,11 +14,26 @@ using namespace llvm;
MCObjectStreamer::MCObjectStreamer(MCContext &Context, TargetAsmBackend &TAB,
raw_ostream &_OS, MCCodeEmitter *_Emitter)
: MCStreamer(Context),
Assembler(new MCAssembler(Context, TAB, *_Emitter, _OS))
: MCStreamer(Context), Assembler(new MCAssembler(Context, TAB,
*_Emitter, _OS)),
CurSectionData(0)
{
}
MCObjectStreamer::~MCObjectStreamer() {
delete Assembler;
}
void MCObjectStreamer::SwitchSection(const MCSection *Section) {
assert(Section && "Cannot switch to a null section!");
// If already in this section, then this is a noop.
if (Section == CurSection) return;
CurSection = Section;
CurSectionData = &getAssembler().getOrCreateSectionData(*Section);
}
void MCObjectStreamer::Finish() {
getAssembler().Finish();
}