[llvm-commits] [llvm] r131679 - in /llvm/trunk: include/llvm/MC/MCWin64EH.h lib/MC/MCStreamer.cpp

Charles Davis cdavis at mines.edu
Thu May 19 14:24:55 PDT 2011


Author: cdavis
Date: Thu May 19 16:24:54 2011
New Revision: 131679

URL: http://llvm.org/viewvc/llvm-project?rev=131679&view=rev
Log:
Implement the EndProlog Win64 EH method on the base MCStreamer.

Modified:
    llvm/trunk/include/llvm/MC/MCWin64EH.h
    llvm/trunk/lib/MC/MCStreamer.cpp

Modified: llvm/trunk/include/llvm/MC/MCWin64EH.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCWin64EH.h?rev=131679&r1=131678&r2=131679&view=diff
==============================================================================
--- llvm/trunk/include/llvm/MC/MCWin64EH.h (original)
+++ llvm/trunk/include/llvm/MC/MCWin64EH.h Thu May 19 16:24:54 2011
@@ -59,15 +59,15 @@
 
   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;

Modified: llvm/trunk/lib/MC/MCStreamer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCStreamer.cpp?rev=131679&r1=131678&r2=131679&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCStreamer.cpp (original)
+++ llvm/trunk/lib/MC/MCStreamer.cpp Thu May 19 16:24:54 2011
@@ -425,8 +425,10 @@
 }
 
 void MCStreamer::EmitWin64EHEndProlog() {
-  errs() << "Not implemented yet\n";
-  abort();
+  EnsureValidW64UnwindInfo();
+  MCWin64EHUnwindInfo *CurFrame = CurrentW64UnwindInfo;
+  CurFrame->PrologEnd = getContext().CreateTempSymbol();
+  EmitLabel(CurFrame->PrologEnd);
 }
 
 void MCStreamer::EmitFnStart() {





More information about the llvm-commits mailing list