From 83ba58e5f0a5afbb23d7d2092d817accded4455a Mon Sep 17 00:00:00 2001 From: Venkatraman Govindaraju Date: Thu, 26 Sep 2013 14:49:40 +0000 Subject: Implements parsing and emitting of .cfi_window_save in MC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191431 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/MC/MCDwarf.h | 8 +++++++- include/llvm/MC/MCStreamer.h | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'include/llvm/MC') diff --git a/include/llvm/MC/MCDwarf.h b/include/llvm/MC/MCDwarf.h index 7a06cc0..65b920b 100644 --- a/include/llvm/MC/MCDwarf.h +++ b/include/llvm/MC/MCDwarf.h @@ -290,7 +290,8 @@ public: OpEscape, OpRestore, OpUndefined, - OpRegister + OpRegister, + OpWindowSave }; private: @@ -364,6 +365,11 @@ public: return MCCFIInstruction(OpRegister, L, Register1, Register2); } + /// \brief .cfi_window_save SPARC register window is saved. + static MCCFIInstruction createWindowSave(MCSymbol *L) { + return MCCFIInstruction(OpWindowSave, L, 0, 0, ""); + } + /// \brief .cfi_restore says that the rule for Register is now the same as it /// was at the beginning of the function, after all initial instructions added /// by .cfi_startproc were executed. diff --git a/include/llvm/MC/MCStreamer.h b/include/llvm/MC/MCStreamer.h index 8cb5c49..a5f8bc0 100644 --- a/include/llvm/MC/MCStreamer.h +++ b/include/llvm/MC/MCStreamer.h @@ -578,6 +578,7 @@ public: virtual void EmitCFISignalFrame(); virtual void EmitCFIUndefined(int64_t Register); virtual void EmitCFIRegister(int64_t Register1, int64_t Register2); + virtual void EmitCFIWindowSave(); virtual void EmitWin64EHStartProc(const MCSymbol *Symbol); virtual void EmitWin64EHEndProc(); -- cgit v1.1