@@ -208,6 +208,10 @@ class Target {
208208 using AsmTargetStreamerCtorTy =
209209 MCTargetStreamer *(*)(MCStreamer &S, formatted_raw_ostream &OS,
210210 MCInstPrinter *InstPrint);
211+ using AsmStreamerCtorTy =
212+ MCStreamer *(*)(MCContext &Ctx, std::unique_ptr<formatted_raw_ostream> OS,
213+ MCInstPrinter *IP, std::unique_ptr<MCCodeEmitter> CE,
214+ std::unique_ptr<MCAsmBackend> TAB);
211215 using ObjectTargetStreamerCtorTy = MCTargetStreamer *(*)(
212216 MCStreamer &S, const MCSubtargetInfo &STI);
213217 using MCRelocationInfoCtorTy = MCRelocationInfo *(*)(const Triple &TT,
@@ -316,6 +320,10 @@ class Target {
316320 // / registered (default = nullptr).
317321 AsmTargetStreamerCtorTy AsmTargetStreamerCtorFn = nullptr ;
318322
323+ // / Construction function for this target's AsmStreamer, if
324+ // / registered (default = nullptr).
325+ AsmStreamerCtorTy AsmStreamerCtorFn = nullptr ;
326+
319327 // / Construction function for this target's obj TargetStreamer, if
320328 // / registered (default = nullptr).
321329 ObjectTargetStreamerCtorTy ObjectTargetStreamerCtorFn = nullptr ;
@@ -927,6 +935,10 @@ struct TargetRegistry {
927935 T.NullTargetStreamerCtorFn = Fn;
928936 }
929937
938+ static void RegisterAsmStreamer (Target &T, Target::AsmStreamerCtorTy Fn) {
939+ T.AsmStreamerCtorFn = Fn;
940+ }
941+
930942 static void RegisterAsmTargetStreamer (Target &T,
931943 Target::AsmTargetStreamerCtorTy Fn) {
932944 T.AsmTargetStreamerCtorFn = Fn;
0 commit comments