diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-03-19 01:50:16 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-03-19 01:50:16 +0000 |
commit | cd584a809de8824eea9bcd7f5df59f854413cc76 (patch) | |
tree | c250018fdaa232fe9f5a54f1d731c0f676fd6d3f /llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp | |
parent | 58e2492f9313953f2e8eb395bb9937b83eec1fbf (diff) | |
download | bcm5719-llvm-cd584a809de8824eea9bcd7f5df59f854413cc76.tar.gz bcm5719-llvm-cd584a809de8824eea9bcd7f5df59f854413cc76.zip |
Split the object streamer callback in one per file format.
There are two main advantages to doing this
* Targets that only need to handle one of the formats specially don't have
to worry about the others. For example, x86 now only registers a
constructor for the COFF streamer.
* Changes to the arguments passed to one format constructor will not impact
the other formats.
llvm-svn: 232699
Diffstat (limited to 'llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp')
-rw-r--r-- | llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp | 18 |
1 files changed, 1 insertions, 17 deletions
diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp index afcc95307c2..2e1644d59a7 100644 --- a/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp +++ b/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp @@ -344,22 +344,6 @@ static MCCodeGenInfo *createX86MCCodeGenInfo(StringRef TT, Reloc::Model RM, return X; } -static MCStreamer *createMCStreamer(const Triple &T, MCContext &Ctx, - MCAsmBackend &MAB, raw_ostream &OS, - MCCodeEmitter *Emitter, - const MCSubtargetInfo &STI, bool RelaxAll) { - switch (T.getObjectFormat()) { - default: llvm_unreachable("unsupported object format"); - case Triple::MachO: - return createMachOStreamer(Ctx, MAB, OS, Emitter, RelaxAll); - case Triple::COFF: - assert(T.isOSWindows() && "only Windows COFF is supported"); - return createX86WinCOFFStreamer(Ctx, MAB, Emitter, OS, RelaxAll); - case Triple::ELF: - return createELFStreamer(Ctx, MAB, OS, Emitter, RelaxAll); - } -} - static MCInstPrinter *createX86MCInstPrinter(const Target &T, unsigned SyntaxVariant, const MCAsmInfo &MAI, @@ -414,7 +398,7 @@ extern "C" void LLVMInitializeX86TargetMC() { TargetRegistry::RegisterMCCodeEmitter(*T, createX86MCCodeEmitter); // Register the object streamer. - TargetRegistry::RegisterMCObjectStreamer(*T, createMCStreamer); + TargetRegistry::RegisterCOFFStreamer(*T, createX86WinCOFFStreamer); // Register the MCInstPrinter. TargetRegistry::RegisterMCInstPrinter(*T, createX86MCInstPrinter); |