diff options
Diffstat (limited to 'lib/MC/MCPureStreamer.cpp')
| -rw-r--r-- | lib/MC/MCPureStreamer.cpp | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/lib/MC/MCPureStreamer.cpp b/lib/MC/MCPureStreamer.cpp index 9ccab93..97e5a69 100644 --- a/lib/MC/MCPureStreamer.cpp +++ b/lib/MC/MCPureStreamer.cpp @@ -37,7 +37,7 @@ public: virtual void InitSections(); virtual void EmitLabel(MCSymbol *Symbol); - virtual void EmitAssignment(MCSymbol *Symbol, const MCExpr *Value); + virtual void EmitDebugLabel(MCSymbol *Symbol); virtual void EmitZerofill(const MCSection *Section, MCSymbol *Symbol = 0, uint64_t Size = 0, unsigned ByteAlignment = 0); virtual void EmitBytes(StringRef Data, unsigned AddrSpace); @@ -135,12 +135,9 @@ void MCPureStreamer::EmitLabel(MCSymbol *Symbol) { SD.setOffset(F->getContents().size()); } -void MCPureStreamer::EmitAssignment(MCSymbol *Symbol, const MCExpr *Value) { - // TODO: This is exactly the same as WinCOFFStreamer. Consider merging into - // MCObjectStreamer. - // FIXME: Lift context changes into super class. - getAssembler().getOrCreateSymbolData(*Symbol); - Symbol->setVariableValue(AddValueSymbols(Value)); + +void MCPureStreamer::EmitDebugLabel(MCSymbol *Symbol) { + EmitLabel(Symbol); } void MCPureStreamer::EmitZerofill(const MCSection *Section, MCSymbol *Symbol, @@ -191,7 +188,8 @@ bool MCPureStreamer::EmitValueToOffset(const MCExpr *Offset, } void MCPureStreamer::EmitInstToFragment(const MCInst &Inst) { - MCInstFragment *IF = new MCInstFragment(Inst, getCurrentSectionData()); + MCRelaxableFragment *IF = + new MCRelaxableFragment(Inst, getCurrentSectionData()); // Add the fixups and data. // @@ -203,7 +201,7 @@ void MCPureStreamer::EmitInstToFragment(const MCInst &Inst) { getAssembler().getEmitter().EncodeInstruction(Inst, VecOS, Fixups); VecOS.flush(); - IF->getCode() = Code; + IF->getContents() = Code; IF->getFixups() = Fixups; } @@ -219,7 +217,7 @@ void MCPureStreamer::EmitInstToData(const MCInst &Inst) { // Add the fixups and data. for (unsigned i = 0, e = Fixups.size(); i != e; ++i) { Fixups[i].setOffset(Fixups[i].getOffset() + DF->getContents().size()); - DF->addFixup(Fixups[i]); + DF->getFixups().push_back(Fixups[i]); } DF->getContents().append(Code.begin(), Code.end()); } |
