diff options
author | Charles Davis <cdavis@mines.edu> | 2011-05-19 21:24:54 +0000 |
---|---|---|
committer | Charles Davis <cdavis@mines.edu> | 2011-05-19 21:24:54 +0000 |
commit | 61558aaf4f924fd44fd2f275fcb7ab7199ede304 (patch) | |
tree | 8c0f2d43885bb440406d878070c5ca396b56b9a2 | |
parent | 3a2d255ce612760748990b1b1ea131cc777bafea (diff) |
Implement the EndProlog Win64 EH method on the base MCStreamer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131679 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/MC/MCWin64EH.h | 6 | ||||
-rw-r--r-- | lib/MC/MCStreamer.cpp | 6 |
2 files changed, 7 insertions, 5 deletions
diff --git a/include/llvm/MC/MCWin64EH.h b/include/llvm/MC/MCWin64EH.h index cc3bc6e1a6..de1e24767a 100644 --- a/include/llvm/MC/MCWin64EH.h +++ b/include/llvm/MC/MCWin64EH.h @@ -59,15 +59,15 @@ namespace llvm { struct MCWin64EHUnwindInfo { MCWin64EHUnwindInfo() : Begin(0), End(0), ExceptionHandler(0), - Function(0), UnwindOnly(false), - PrologSize(0), LastFrameInst(-1), ChainedParent(0), + Function(0), PrologEnd(0), UnwindOnly(false), + LastFrameInst(-1), ChainedParent(0), Instructions() {} MCSymbol *Begin; MCSymbol *End; const MCSymbol *ExceptionHandler; const MCSymbol *Function; + MCSymbol *PrologEnd; bool UnwindOnly; - unsigned PrologSize; int LastFrameInst; MCWin64EHUnwindInfo *ChainedParent; std::vector<MCWin64EHInstruction> Instructions; diff --git a/lib/MC/MCStreamer.cpp b/lib/MC/MCStreamer.cpp index fcc338991f..9c004e277b 100644 --- a/lib/MC/MCStreamer.cpp +++ b/lib/MC/MCStreamer.cpp @@ -425,8 +425,10 @@ void MCStreamer::EmitWin64EHPushFrame(bool Code) { } void MCStreamer::EmitWin64EHEndProlog() { - errs() << "Not implemented yet\n"; - abort(); + EnsureValidW64UnwindInfo(); + MCWin64EHUnwindInfo *CurFrame = CurrentW64UnwindInfo; + CurFrame->PrologEnd = getContext().CreateTempSymbol(); + EmitLabel(CurFrame->PrologEnd); } void MCStreamer::EmitFnStart() { |