summaryrefslogtreecommitdiffstats
path: root/llvm/lib
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
commit1bd7171c95a4a2e39fa1f32e6ed316197ebb5e55 (patch)
tree2b0593c88194f725c57822811ddcb232c247766b /llvm/lib
parent79e0e5a631ef145e599587e1431c70b73087cecc (diff)
downloadbcm5719-llvm-1bd7171c95a4a2e39fa1f32e6ed316197ebb5e55.tar.gz
bcm5719-llvm-1bd7171c95a4a2e39fa1f32e6ed316197ebb5e55.zip
MC: Sink code emitter into MCAssembler.
llvm-svn: 98953
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/MC/MCAssembler.cpp5
-rw-r--r--llvm/lib/MC/MCMachOStreamer.cpp8
2 files changed, 5 insertions, 8 deletions
diff --git a/llvm/lib/MC/MCAssembler.cpp b/llvm/lib/MC/MCAssembler.cpp
index 6e5f73ff44c..4d8cc6a763c 100644
--- a/llvm/lib/MC/MCAssembler.cpp
+++ b/llvm/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/llvm/lib/MC/MCMachOStreamer.cpp b/llvm/lib/MC/MCMachOStreamer.cpp
index 73b1074531d..9504392bc1b 100644
--- a/llvm/lib/MC/MCMachOStreamer.cpp
+++ b/llvm/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.
OpenPOWER on IntegriCloud