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 | 9bb247813aae7cda7b883f1bd0bff2697877dbb1 (patch) | |
| tree | 3b031af5668926a732fd029920ae420f644ef68e /llvm/lib/MC/MCStreamer.cpp | |
| parent | 99e3bfbd17eee1a29b8bfee70b76ff2779632735 (diff) | |
| download | bcm5719-llvm-9bb247813aae7cda7b883f1bd0bff2697877dbb1.tar.gz bcm5719-llvm-9bb247813aae7cda7b883f1bd0bff2697877dbb1.zip | |
Implement .cfi_undefined. Based on a patch from PaX team, updated by
Roman Divacky. I just added the testcase.
llvm-svn: 168520
Diffstat (limited to 'llvm/lib/MC/MCStreamer.cpp')
| -rw-r--r-- | llvm/lib/MC/MCStreamer.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/lib/MC/MCStreamer.cpp b/llvm/lib/MC/MCStreamer.cpp index afece0ba551..02e1028ada9 100644 --- a/llvm/lib/MC/MCStreamer.cpp +++ b/llvm/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(); |

