summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MCStreamer.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2012-11-23 16:59:41 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2012-11-23 16:59:41 +0000
commit9bb247813aae7cda7b883f1bd0bff2697877dbb1 (patch)
tree3b031af5668926a732fd029920ae420f644ef68e /llvm/lib/MC/MCStreamer.cpp
parent99e3bfbd17eee1a29b8bfee70b76ff2779632735 (diff)
downloadbcm5719-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.cpp9
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();
OpenPOWER on IntegriCloud