Add a default implementation of createObjectStreamer.
This removes duplicated code from backends that don't need to do anything
fancy.
llvm-svn: 232658
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 @@
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);
+ }
+}