Skip to content
Snippets Groups Projects
Commit 4544c16e authored by Saleem Abdulrasool's avatar Saleem Abdulrasool
Browse files

MC: virtualise EmitWindowsUnwindTables

This makes EmitWindowsUnwindTables a virtual function and lowers the
implementation of the function to the X86WinCOFFStreamer.  This method is a
target specific operation.  This enables making the behaviour target dependent
by isolating it entirely to the target specific streamer.

llvm-svn: 214664
parent b3be7371
No related branches found
No related tags found
No related merge requests found
......@@ -208,7 +208,7 @@ protected:
return CurrentWinFrameInfo;
}
void EmitWindowsUnwindTables();
virtual void EmitWindowsUnwindTables();
virtual void EmitRawTextImpl(StringRef String);
......
......@@ -601,10 +601,6 @@ void MCStreamer::EmitRawText(const Twine &T) {
}
void MCStreamer::EmitWindowsUnwindTables() {
if (!getNumWinFrameInfos())
return;
MCWin64EHUnwindEmitter::Emit(*this);
}
void MCStreamer::Finish() {
......
......@@ -20,6 +20,7 @@ public:
: MCWinCOFFStreamer(C, AB, *CE, OS) { }
void EmitWinEHHandlerData() override;
void EmitWindowsUnwindTables() override;
void FinishImpl() override;
};
......@@ -31,6 +32,12 @@ void X86WinCOFFStreamer::EmitWinEHHandlerData() {
MCWin64EHUnwindEmitter::EmitUnwindInfo(*this, getCurrentWinFrameInfo());
}
void X86WinCOFFStreamer::EmitWindowsUnwindTables() {
if (!getNumWinFrameInfos())
return;
MCWin64EHUnwindEmitter::Emit(*this);
}
void X86WinCOFFStreamer::FinishImpl() {
EmitFrames(nullptr);
EmitWindowsUnwindTables();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment