aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Davis <cdavis@mines.edu>2011-05-18 04:47:22 +0000
committerCharles Davis <cdavis@mines.edu>2011-05-18 04:47:22 +0000
commit9c77398d1c89f615735d304cd7eda3c3e9b1504f (patch)
tree00592e4eb1a4354c7063aa135ae71b62bed7ecae
parentfc2fcb4165f10fb1708c528014379cb9e1738bab (diff)
While thinking about how to know where the functions' boundaries are for
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
-rw-r--r--include/llvm/MC/MCStreamer.h5
-rw-r--r--lib/MC/MCStreamer.cpp10
2 files changed, 11 insertions, 4 deletions
diff --git a/include/llvm/MC/MCStreamer.h b/include/llvm/MC/MCStreamer.h
index 03bd4e1d9e..1a01d6baa9 100644
--- a/include/llvm/MC/MCStreamer.h
+++ b/include/llvm/MC/MCStreamer.h
@@ -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.
diff --git a/lib/MC/MCStreamer.cpp b/lib/MC/MCStreamer.cpp
index 62a2f768e2..5924d02802 100644
--- a/lib/MC/MCStreamer.cpp
+++ b/lib/MC/MCStreamer.cpp
@@ -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();