| OLD | NEW |
| 1 //===-- Support/TargetRegistry.h - Target Registration ----------*- C++ -*-===// | 1 //===-- Support/TargetRegistry.h - Target Registration ----------*- C++ -*-===// |
| 2 // | 2 // |
| 3 // The LLVM Compiler Infrastructure | 3 // The LLVM Compiler Infrastructure |
| 4 // | 4 // |
| 5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
| 6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
| 7 // | 7 // |
| 8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
| 9 // | 9 // |
| 10 // This file exposes the TargetRegistry interface, which tools can use to access | 10 // This file exposes the TargetRegistry interface, which tools can use to access |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 140 raw_pwrite_stream &OS, | 140 raw_pwrite_stream &OS, |
| 141 MCCodeEmitter *Emitter, | 141 MCCodeEmitter *Emitter, |
| 142 bool RelaxAll); | 142 bool RelaxAll); |
| 143 typedef MCStreamer *(*MachOStreamerCtorTy)( | 143 typedef MCStreamer *(*MachOStreamerCtorTy)( |
| 144 MCContext &Ctx, MCAsmBackend &TAB, raw_pwrite_stream &OS, | 144 MCContext &Ctx, MCAsmBackend &TAB, raw_pwrite_stream &OS, |
| 145 MCCodeEmitter *Emitter, bool RelaxAll, bool DWARFMustBeAtTheEnd); | 145 MCCodeEmitter *Emitter, bool RelaxAll, bool DWARFMustBeAtTheEnd); |
| 146 typedef MCStreamer *(*COFFStreamerCtorTy)(MCContext &Ctx, MCAsmBackend &TAB, | 146 typedef MCStreamer *(*COFFStreamerCtorTy)(MCContext &Ctx, MCAsmBackend &TAB, |
| 147 raw_pwrite_stream &OS, | 147 raw_pwrite_stream &OS, |
| 148 MCCodeEmitter *Emitter, | 148 MCCodeEmitter *Emitter, |
| 149 bool RelaxAll); | 149 bool RelaxAll); |
| 150 typedef MCStreamer *(*NaClAsmStreamerCtorTy)(MCContext &Context, |
| 151 std::unique_ptr<formatted_raw_o
stream> OS, |
| 152 bool isVerboseAsm, bool useDwar
fDirectory, |
| 153 MCInstPrinter *IP, MCCodeEmitte
r *CE, |
| 154 MCAsmBackend *MAB, bool ShowIns
t); |
| 150 typedef MCTargetStreamer *(*NullTargetStreamerCtorTy)(MCStreamer &S); | 155 typedef MCTargetStreamer *(*NullTargetStreamerCtorTy)(MCStreamer &S); |
| 151 typedef MCTargetStreamer *(*AsmTargetStreamerCtorTy)( | 156 typedef MCTargetStreamer *(*AsmTargetStreamerCtorTy)( |
| 152 MCStreamer &S, formatted_raw_ostream &OS, MCInstPrinter *InstPrint, | 157 MCStreamer &S, formatted_raw_ostream &OS, MCInstPrinter *InstPrint, |
| 153 bool IsVerboseAsm); | 158 bool IsVerboseAsm); |
| 154 typedef MCTargetStreamer *(*ObjectTargetStreamerCtorTy)( | 159 typedef MCTargetStreamer *(*ObjectTargetStreamerCtorTy)( |
| 155 MCStreamer &S, const MCSubtargetInfo &STI); | 160 MCStreamer &S, const MCSubtargetInfo &STI); |
| 156 typedef MCRelocationInfo *(*MCRelocationInfoCtorTy)(StringRef TT, | 161 typedef MCRelocationInfo *(*MCRelocationInfoCtorTy)(StringRef TT, |
| 157 MCContext &Ctx); | 162 MCContext &Ctx); |
| 158 typedef MCSymbolizer *(*MCSymbolizerCtorTy)( | 163 typedef MCSymbolizer *(*MCSymbolizerCtorTy)( |
| 159 StringRef TT, LLVMOpInfoCallback GetOpInfo, | 164 StringRef TT, LLVMOpInfoCallback GetOpInfo, |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 227 | 232 |
| 228 /// MCCodeEmitterCtorFn - Construction function for this target's | 233 /// MCCodeEmitterCtorFn - Construction function for this target's |
| 229 /// CodeEmitter, if registered. | 234 /// CodeEmitter, if registered. |
| 230 MCCodeEmitterCtorTy MCCodeEmitterCtorFn; | 235 MCCodeEmitterCtorTy MCCodeEmitterCtorFn; |
| 231 | 236 |
| 232 // Construction functions for the various object formats, if registered. | 237 // Construction functions for the various object formats, if registered. |
| 233 COFFStreamerCtorTy COFFStreamerCtorFn; | 238 COFFStreamerCtorTy COFFStreamerCtorFn; |
| 234 MachOStreamerCtorTy MachOStreamerCtorFn; | 239 MachOStreamerCtorTy MachOStreamerCtorFn; |
| 235 ELFStreamerCtorTy ELFStreamerCtorFn; | 240 ELFStreamerCtorTy ELFStreamerCtorFn; |
| 236 | 241 |
| 242 // Construction functions for NaCl asm streamer, if registered. |
| 243 NaClAsmStreamerCtorTy NaClAsmStreamerCtorFn; |
| 244 |
| 237 /// Construction function for this target's null TargetStreamer, if | 245 /// Construction function for this target's null TargetStreamer, if |
| 238 /// registered (default = nullptr). | 246 /// registered (default = nullptr). |
| 239 NullTargetStreamerCtorTy NullTargetStreamerCtorFn; | 247 NullTargetStreamerCtorTy NullTargetStreamerCtorFn; |
| 240 | 248 |
| 241 /// Construction function for this target's asm TargetStreamer, if | 249 /// Construction function for this target's asm TargetStreamer, if |
| 242 /// registered (default = nullptr). | 250 /// registered (default = nullptr). |
| 243 AsmTargetStreamerCtorTy AsmTargetStreamerCtorFn; | 251 AsmTargetStreamerCtorTy AsmTargetStreamerCtorFn; |
| 244 | 252 |
| 245 /// Construction function for this target's obj TargetStreamer, if | 253 /// Construction function for this target's obj TargetStreamer, if |
| 246 /// registered (default = nullptr). | 254 /// registered (default = nullptr). |
| (...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 479 MCInstPrinter *InstPrint, MCCodeEmitter *CE, | 487 MCInstPrinter *InstPrint, MCCodeEmitter *CE, |
| 480 MCAsmBackend *TAB, bool ShowInst) const { | 488 MCAsmBackend *TAB, bool ShowInst) const { |
| 481 formatted_raw_ostream &OSRef = *OS; | 489 formatted_raw_ostream &OSRef = *OS; |
| 482 MCStreamer *S = llvm::createAsmStreamer(Ctx, std::move(OS), IsVerboseAsm, | 490 MCStreamer *S = llvm::createAsmStreamer(Ctx, std::move(OS), IsVerboseAsm, |
| 483 UseDwarfDirectory, InstPrint, CE, | 491 UseDwarfDirectory, InstPrint, CE, |
| 484 TAB, ShowInst); | 492 TAB, ShowInst); |
| 485 createAsmTargetStreamer(*S, OSRef, InstPrint, IsVerboseAsm); | 493 createAsmTargetStreamer(*S, OSRef, InstPrint, IsVerboseAsm); |
| 486 return S; | 494 return S; |
| 487 } | 495 } |
| 488 | 496 |
| 497 MCStreamer *createNaClAsmStreamer(MCContext &Ctx, |
| 498 std::unique_ptr<formatted_raw_ostream> OS, |
| 499 bool IsVerboseAsm, bool UseDwarfDirectory, |
| 500 MCInstPrinter *InstPrint, MCCodeEmitter *CE, |
| 501 MCAsmBackend *TAB, bool ShowInst) const { |
| 502 if (NaClAsmStreamerCtorFn) { |
| 503 formatted_raw_ostream &OSRef = *OS; |
| 504 MCStreamer *S = NaClAsmStreamerCtorFn(Ctx, std::move(OS), IsVerboseAsm, |
| 505 UseDwarfDirectory, InstPrint, CE, |
| 506 TAB, ShowInst); |
| 507 createAsmTargetStreamer(*S, OSRef, InstPrint, IsVerboseAsm); |
| 508 return S; |
| 509 } |
| 510 return nullptr; |
| 511 } |
| 512 |
| 489 MCTargetStreamer *createAsmTargetStreamer(MCStreamer &S, | 513 MCTargetStreamer *createAsmTargetStreamer(MCStreamer &S, |
| 490 formatted_raw_ostream &OS, | 514 formatted_raw_ostream &OS, |
| 491 MCInstPrinter *InstPrint, | 515 MCInstPrinter *InstPrint, |
| 492 bool IsVerboseAsm) const { | 516 bool IsVerboseAsm) const { |
| 493 if (AsmTargetStreamerCtorFn) | 517 if (AsmTargetStreamerCtorFn) |
| 494 return AsmTargetStreamerCtorFn(S, OS, InstPrint, IsVerboseAsm); | 518 return AsmTargetStreamerCtorFn(S, OS, InstPrint, IsVerboseAsm); |
| 495 return nullptr; | 519 return nullptr; |
| 496 } | 520 } |
| 497 | 521 |
| 498 MCStreamer *createNullStreamer(MCContext &Ctx) const { | 522 MCStreamer *createNullStreamer(MCContext &Ctx) const { |
| (...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 818 | 842 |
| 819 static void RegisterMachOStreamer(Target &T, | 843 static void RegisterMachOStreamer(Target &T, |
| 820 Target::MachOStreamerCtorTy Fn) { | 844 Target::MachOStreamerCtorTy Fn) { |
| 821 T.MachOStreamerCtorFn = Fn; | 845 T.MachOStreamerCtorFn = Fn; |
| 822 } | 846 } |
| 823 | 847 |
| 824 static void RegisterELFStreamer(Target &T, Target::ELFStreamerCtorTy Fn) { | 848 static void RegisterELFStreamer(Target &T, Target::ELFStreamerCtorTy Fn) { |
| 825 T.ELFStreamerCtorFn = Fn; | 849 T.ELFStreamerCtorFn = Fn; |
| 826 } | 850 } |
| 827 | 851 |
| 852 static void RegisterNaClAsmStreamer(Target &T, Target::NaClAsmStreamerCtorTy
Fn) { |
| 853 T.NaClAsmStreamerCtorFn = Fn; |
| 854 } |
| 855 |
| 828 static void | 856 static void |
| 829 RegisterNullTargetStreamer(Target &T, Target::NullTargetStreamerCtorTy Fn) { | 857 RegisterNullTargetStreamer(Target &T, Target::NullTargetStreamerCtorTy Fn) { |
| 830 T.NullTargetStreamerCtorFn = Fn; | 858 T.NullTargetStreamerCtorFn = Fn; |
| 831 } | 859 } |
| 832 | 860 |
| 833 static void RegisterAsmTargetStreamer(Target &T, | 861 static void RegisterAsmTargetStreamer(Target &T, |
| 834 Target::AsmTargetStreamerCtorTy Fn) { | 862 Target::AsmTargetStreamerCtorTy Fn) { |
| 835 T.AsmTargetStreamerCtorFn = Fn; | 863 T.AsmTargetStreamerCtorFn = Fn; |
| 836 } | 864 } |
| 837 | 865 |
| (...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1205 static MCCodeEmitter *Allocator(const MCInstrInfo & /*II*/, | 1233 static MCCodeEmitter *Allocator(const MCInstrInfo & /*II*/, |
| 1206 const MCRegisterInfo & /*MRI*/, | 1234 const MCRegisterInfo & /*MRI*/, |
| 1207 MCContext & /*Ctx*/) { | 1235 MCContext & /*Ctx*/) { |
| 1208 return new MCCodeEmitterImpl(); | 1236 return new MCCodeEmitterImpl(); |
| 1209 } | 1237 } |
| 1210 }; | 1238 }; |
| 1211 | 1239 |
| 1212 } | 1240 } |
| 1213 | 1241 |
| 1214 #endif | 1242 #endif |
| OLD | NEW |