From c8fec7e21f5c24303eab8a8592f3b8faff347d86 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Fri, 23 Nov 2012 16:59:41 +0000 Subject: Implement .cfi_undefined. Based on a patch from PaX team, updated by Roman Divacky. I just added the testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168520 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/MC/MCDwarf.h | 4 ++-- include/llvm/MC/MCStreamer.h | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/llvm/MC/MCDwarf.h b/include/llvm/MC/MCDwarf.h index 8fc437f3e6..6fa41ae67c 100644 --- a/include/llvm/MC/MCDwarf.h +++ b/include/llvm/MC/MCDwarf.h @@ -267,7 +267,7 @@ namespace llvm { class MCCFIInstruction { public: enum OpType { SameValue, RememberState, RestoreState, Move, RelMove, Escape, - Restore}; + Restore, Undefined }; private: OpType Operation; MCSymbol *Label; @@ -282,7 +282,7 @@ namespace llvm { } MCCFIInstruction(OpType Op, MCSymbol *L, unsigned Register) : Operation(Op), Label(L), Destination(Register) { - assert(Op == SameValue || Op == Restore); + assert(Op == SameValue || Op == Restore || Op == Undefined); } MCCFIInstruction(MCSymbol *L, const MachineLocation &D, const MachineLocation &S) diff --git a/include/llvm/MC/MCStreamer.h b/include/llvm/MC/MCStreamer.h index 230d27ef2e..b5c8008cd6 100644 --- a/include/llvm/MC/MCStreamer.h +++ b/include/llvm/MC/MCStreamer.h @@ -515,6 +515,7 @@ namespace llvm { virtual void EmitCFIAdjustCfaOffset(int64_t Adjustment); virtual void EmitCFIEscape(StringRef Values); virtual void EmitCFISignalFrame(); + virtual void EmitCFIUndefined(int64_t Register); virtual void EmitWin64EHStartProc(const MCSymbol *Symbol); virtual void EmitWin64EHEndProc(); -- cgit v1.2.3