diff options
author | Charles Davis <cdavis@mines.edu> | 2011-05-18 04:47:22 +0000 |
---|---|---|
committer | Charles Davis <cdavis@mines.edu> | 2011-05-18 04:47:22 +0000 |
commit | 9c77398d1c89f615735d304cd7eda3c3e9b1504f (patch) | |
tree | 00592e4eb1a4354c7063aa135ae71b62bed7ecae | |
parent | fc2fcb4165f10fb1708c528014379cb9e1738bab (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.h | 5 | ||||
-rw-r--r-- | lib/MC/MCStreamer.cpp | 10 |
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(); |