aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/MC/MCObjectStreamer.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-03-18 19:08:20 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-03-18 19:08:20 +0000
commit105270f68ca894e205b97b3c7ed709affa7df4fe (patch)
treeacf83ac0ce278e523d3a8c297d3f010ae30fa465 /llvm/lib/MC/MCObjectStreamer.cpp
parent36ccfa5779bb43b4ff4847769c6dbab68b62a614 (diff)
downloadllvm-105270f68ca894e205b97b3c7ed709affa7df4fe.zip
llvm-105270f68ca894e205b97b3c7ed709affa7df4fe.tar.gz
llvm-105270f68ca894e205b97b3c7ed709affa7df4fe.tar.bz2
Add a default implementation of createObjectStreamer.
This removes duplicated code from backends that don't need to do anything fancy. llvm-svn: 232658
Diffstat (limited to 'llvm/lib/MC/MCObjectStreamer.cpp')
-rw-r--r--llvm/lib/MC/MCObjectStreamer.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/lib/MC/MCObjectStreamer.cpp b/llvm/lib/MC/MCObjectStreamer.cpp
index 5bfe834..9a7ea1b 100644
--- a/llvm/lib/MC/MCObjectStreamer.cpp
+++ b/llvm/lib/MC/MCObjectStreamer.cpp
@@ -20,6 +20,7 @@
#include "llvm/MC/MCSection.h"
#include "llvm/MC/MCSymbol.h"
#include "llvm/Support/ErrorHandling.h"
+#include "llvm/Support/TargetRegistry.h"
using namespace llvm;
MCObjectStreamer::MCObjectStreamer(MCContext &Context, MCAsmBackend &TAB,
@@ -422,3 +423,16 @@ void MCObjectStreamer::FinishImpl() {
flushPendingLabels(nullptr);
getAssembler().Finish();
}
+
+MCStreamer *llvm::createObjectStreamer(const Triple &T, MCContext &Ctx,
+ MCAsmBackend &TAB, raw_ostream &OS,
+ MCCodeEmitter *Emitter,
+ const MCSubtargetInfo &STI,
+ bool RelaxAll) {
+ switch (T.getObjectFormat()) {
+ default:
+ return nullptr;
+ case Triple::ELF:
+ return createELFStreamer(Ctx, TAB, OS, Emitter, RelaxAll);
+ }
+}