While thinking about how to know where the functions' boundaries are for
authorCharles Davis <cdavis@mines.edu>
Wed, 18 May 2011 04:47:22 +0000 (04:47 +0000)
committerCharles Davis <cdavis@mines.edu>
Wed, 18 May 2011 04:47:22 +0000 (04:47 +0000)
the purposes of the Win64 EH tables, I realized we had no way to tell where
the function ends. (MASM bounds functions with PROC and ENDP keywords.)
Add a directive to delimit the end of the function, and rename the 'frame'
directive to more accurately reflect its duality with the new directive.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131522 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/MC/MCStreamer.h
lib/MC/MCStreamer.cpp

index 03bd4e1d9eadc8654c0b4bff73aa8b58ba5acba2..1a01d6baa9e6adf055633825f4609fe5fda56072 100644 (file)
@@ -457,13 +457,14 @@ namespace llvm {
     virtual void EmitCFIRelOffset(int64_t Register, int64_t Offset);
     virtual void EmitCFIAdjustCfaOffset(int64_t Adjustment);
 
-    virtual void EmitWin64EHFrame(MCSymbol *Symbol, MCSymbol *EHandler = 0);
+    virtual void EmitWin64EHStartProc(MCSymbol *Symbol, MCSymbol *EHandler = 0);
+    virtual void EmitWin64EHEndProc();
     virtual void EmitWin64EHPushReg(int64_t Register);
     virtual void EmitWin64EHSetFrame(int64_t Register, int64_t Offset);
     virtual void EmitWin64EHAllocStack(int64_t Size);
     virtual void EmitWin64EHSaveReg(int64_t Register, int64_t Offset);
     virtual void EmitWin64EHPushFrame(bool Code);
-    virtual void EmitWin64EHEndProlog(void);
+    virtual void EmitWin64EHEndProlog();
 
     /// EmitInstruction - Emit the given @p Instruction into the current
     /// section.
index 62a2f768e298a5dfd616abf55185ceb4b68df9f3..5924d02802ad4d7421524d1dba587604ce132b7a 100644 (file)
@@ -310,7 +310,13 @@ void MCStreamer::EmitCFISameValue(int64_t Register) {
   CurFrame->Instructions.push_back(Instruction);
 }
 
-void MCStreamer::EmitWin64EHFrame(MCSymbol *Symbol, MCSymbol *EHandler)
+void MCStreamer::EmitWin64EHStartProc(MCSymbol *Symbol, MCSymbol *EHandler)
+{
+  errs() << "Not implemented yet\n";
+  abort();
+}
+
+void MCStreamer::EmitWin64EHEndProc()
 {
   errs() << "Not implemented yet\n";
   abort();
@@ -346,7 +352,7 @@ void MCStreamer::EmitWin64EHPushFrame(bool Code)
   abort();
 }
 
-void MCStreamer::EmitWin64EHEndProlog(void)
+void MCStreamer::EmitWin64EHEndProlog()
 {
   errs() << "Not implemented yet\n";
   abort();