aboutsummaryrefslogtreecommitdiffstats
path: root/lib/MC
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2010-03-19 10:43:18 +0000
committerDaniel Dunbar <daniel@zuster.org>2010-03-19 10:43:18 +0000
commitcf871e5abff63a53f9e97ff9e37fb7297d0cb847 (patch)
tree34f7d02167c2634afab57f31ca999ee8a44e75b9 /lib/MC
parent2df4ceba15c130005967ee9e5fb4aa5568de1b0c (diff)
downloadexternal_llvm-cf871e5abff63a53f9e97ff9e37fb7297d0cb847.zip
external_llvm-cf871e5abff63a53f9e97ff9e37fb7297d0cb847.tar.gz
external_llvm-cf871e5abff63a53f9e97ff9e37fb7297d0cb847.tar.bz2
MC: Sink code emitter into MCAssembler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98953 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/MC')
-rw-r--r--lib/MC/MCAssembler.cpp5
-rw-r--r--lib/MC/MCMachOStreamer.cpp8
2 files changed, 5 insertions, 8 deletions
diff --git a/lib/MC/MCAssembler.cpp b/lib/MC/MCAssembler.cpp
index 6e5f73f..4d8cc6a 100644
--- a/lib/MC/MCAssembler.cpp
+++ b/lib/MC/MCAssembler.cpp
@@ -103,8 +103,9 @@ MCSymbolData::MCSymbolData(const MCSymbol &_Symbol, MCFragment *_Fragment,
/* *** */
MCAssembler::MCAssembler(MCContext &_Context, TargetAsmBackend &_Backend,
- raw_ostream &_OS)
- : Context(_Context), Backend(_Backend), OS(_OS), SubsectionsViaSymbols(false)
+ MCCodeEmitter &_Emitter, raw_ostream &_OS)
+ : Context(_Context), Backend(_Backend), Emitter(_Emitter),
+ OS(_OS), SubsectionsViaSymbols(false)
{
}
diff --git a/lib/MC/MCMachOStreamer.cpp b/lib/MC/MCMachOStreamer.cpp
index 73b1074..9504392 100644
--- a/lib/MC/MCMachOStreamer.cpp
+++ b/lib/MC/MCMachOStreamer.cpp
@@ -45,7 +45,6 @@ class MCMachOStreamer : public MCStreamer {
private:
MCAssembler Assembler;
- MCCodeEmitter *Emitter;
MCSectionData *CurSectionData;
private:
@@ -61,7 +60,7 @@ private:
public:
MCMachOStreamer(MCContext &Context, TargetAsmBackend &TAB,
raw_ostream &_OS, MCCodeEmitter *_Emitter)
- : MCStreamer(Context), Assembler(Context, TAB, _OS), Emitter(_Emitter),
+ : MCStreamer(Context), Assembler(Context, TAB, *_Emitter, _OS),
CurSectionData(0) {}
~MCMachOStreamer() {}
@@ -370,15 +369,12 @@ void MCMachOStreamer::EmitInstruction(const MCInst &Inst) {
if (Inst.getOperand(i).isExpr())
AddValueSymbols(Inst.getOperand(i).getExpr());
- if (!Emitter)
- llvm_unreachable("no code emitter available!");
-
CurSectionData->setHasInstructions(true);
SmallVector<MCFixup, 4> Fixups;
SmallString<256> Code;
raw_svector_ostream VecOS(Code);
- Emitter->EncodeInstruction(Inst, VecOS, Fixups);
+ Assembler.getEmitter().EncodeInstruction(Inst, VecOS, Fixups);
VecOS.flush();
// Add the fixups and data.