From 61558aaf4f924fd44fd2f275fcb7ab7199ede304 Mon Sep 17 00:00:00 2001 From: Charles Davis Date: Thu, 19 May 2011 21:24:54 +0000 Subject: [PATCH] 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 --- include/llvm/MC/MCWin64EH.h | 6 +++--- 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 cc3bc6e1a62..de1e24767a1 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 Instructions; diff --git a/lib/MC/MCStreamer.cpp b/lib/MC/MCStreamer.cpp index fcc338991f1..9c004e277be 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() { -- 2.34.1