diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2012-11-23 16:59:41 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2012-11-23 16:59:41 +0000 |
commit | c8fec7e21f5c24303eab8a8592f3b8faff347d86 (patch) | |
tree | 5c9f44272f1e6deecb8b325ab238d5acbbc8f0d4 /include | |
parent | 834518f1cea15796a377afb31844638e3c483e78 (diff) | |
download | llvm-c8fec7e21f5c24303eab8a8592f3b8faff347d86.tar.gz llvm-c8fec7e21f5c24303eab8a8592f3b8faff347d86.tar.bz2 llvm-c8fec7e21f5c24303eab8a8592f3b8faff347d86.tar.xz |
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
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/MC/MCDwarf.h | 4 | ||||
-rw-r--r-- | include/llvm/MC/MCStreamer.h | 1 |
2 files changed, 3 insertions, 2 deletions
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(); |