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 /lib/MC/MCStreamer.cpp | |
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 'lib/MC/MCStreamer.cpp')
-rw-r--r-- | lib/MC/MCStreamer.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/MC/MCStreamer.cpp b/lib/MC/MCStreamer.cpp index afece0ba55..02e1028ada 100644 --- a/lib/MC/MCStreamer.cpp +++ b/lib/MC/MCStreamer.cpp @@ -367,6 +367,15 @@ void MCStreamer::EmitCFISignalFrame() { CurFrame->IsSignalFrame = true; } +void MCStreamer::EmitCFIUndefined(int64_t Register) { + EnsureValidFrame(); + MCDwarfFrameInfo *CurFrame = getCurrentFrameInfo(); + MCSymbol *Label = getContext().CreateTempSymbol(); + EmitLabel(Label); + MCCFIInstruction Instruction(MCCFIInstruction::Undefined, Label, Register); + CurFrame->Instructions.push_back(Instruction); +} + void MCStreamer::setCurrentW64UnwindInfo(MCWin64EHUnwindInfo *Frame) { W64UnwindInfos.push_back(Frame); CurrentW64UnwindInfo = W64UnwindInfos.back(); |