24 void EmitWinEHHandlerData()
override;
25 void EmitWindowsUnwindTables()
override;
26 void FinishImpl()
override;
29 void X86WinCOFFStreamer::EmitWinEHHandlerData() {
34 EHStreamer.EmitUnwindInfo(*
this, getCurrentWinFrameInfo());
37 void X86WinCOFFStreamer::EmitWindowsUnwindTables() {
38 if (!getNumWinFrameInfos())
43 void X86WinCOFFStreamer::FinishImpl() {
45 EmitWindowsUnwindTables();
55 X86WinCOFFStreamer *S =
new X86WinCOFFStreamer(C, AB, CE, OS);
56 S->getAssembler().setRelaxAll(RelaxAll);
57 S->getAssembler().setIncrementalLinkerCompatible(IncrementalLinkerCompatible);
MCStreamer * createX86WinCOFFStreamer(MCContext &C, MCAsmBackend &AB, raw_pwrite_stream &OS, MCCodeEmitter *CE, bool RelaxAll, bool IncrementalLinkerCompatible)
Construct an X86 Windows COFF machine code streamer which will generate PE/COFF format object files...
virtual void EmitWinEHHandlerData()
Emits exception handling directives.
Context object for machine code objects.
Streaming machine code generation interface.
MCCodeEmitter - Generic instruction encoding interface.
cl::opt< bool > IncrementalLinkerCompatible("incremental-linker-compatible", cl::desc("When used with filetype=obj, ""emit an object file which can be used with an incremental linker"))
static GCRegistry::Add< ShadowStackGC > C("shadow-stack","Very portable GC for uncooperative code generators")
An abstract base class for streams implementations that also support a pwrite operation.
cl::opt< bool > RelaxAll("mc-relax-all", cl::desc("When used with filetype=obj, ""relax all fixups in the emitted object file"))
Generic interface to target specific assembler backends.
void FinishImpl() override
Streamer specific finalization.