From ef4aa35164880ec610155b83fea0a2ccc94d3172 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Thu, 29 Dec 2011 20:24:47 +0000 Subject: Implement .cfi_escape. Patch by Brian Anderson! llvm-svn: 147352 --- llvm/lib/MC/MCStreamer.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'llvm/lib/MC/MCStreamer.cpp') diff --git a/llvm/lib/MC/MCStreamer.cpp b/llvm/lib/MC/MCStreamer.cpp index 74c3e39e3b9..23d8c1cd9a4 100644 --- a/llvm/lib/MC/MCStreamer.cpp +++ b/llvm/lib/MC/MCStreamer.cpp @@ -408,6 +408,15 @@ void MCStreamer::EmitCFISameValue(int64_t Register) { CurFrame->Instructions.push_back(Instruction); } +void MCStreamer::EmitCFIEscape(StringRef Values) { + EnsureValidFrame(); + MCDwarfFrameInfo *CurFrame = getCurrentFrameInfo(); + MCSymbol *Label = getContext().CreateTempSymbol(); + EmitLabel(Label); + MCCFIInstruction Instruction(MCCFIInstruction::Escape, Label, Values); + CurFrame->Instructions.push_back(Instruction); +} + void MCStreamer::setCurrentW64UnwindInfo(MCWin64EHUnwindInfo *Frame) { W64UnwindInfos.push_back(Frame); CurrentW64UnwindInfo = W64UnwindInfos.back(); -- cgit v1.2.3