diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2011-12-29 21:43:03 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2011-12-29 21:43:03 +0000 |
commit | 4ea99816eff6e2799ab20eec17630c4ac534db5f (patch) | |
tree | 402cef02dc9b6b368585089028048ef5d6b2afd8 /llvm/lib/MC/MCStreamer.cpp | |
parent | 6b751dc2c680cf79db16bc2a3a5bfc10d910ee22 (diff) | |
download | bcm5719-llvm-4ea99816eff6e2799ab20eec17630c4ac534db5f.tar.gz bcm5719-llvm-4ea99816eff6e2799ab20eec17630c4ac534db5f.zip |
Implement cfi_restore. Patch by Brian Anderson!
llvm-svn: 147356
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 4169188cbb4..8567941c45a 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::EmitCFIRestore(int64_t Register) { + EnsureValidFrame(); + MCDwarfFrameInfo *CurFrame = getCurrentFrameInfo(); + MCSymbol *Label = getContext().CreateTempSymbol(); + EmitLabel(Label); + MCCFIInstruction Instruction(MCCFIInstruction::Restore, Label, Register); + CurFrame->Instructions.push_back(Instruction); +} + void MCStreamer::EmitCFIEscape(StringRef Values) { EnsureValidFrame(); MCDwarfFrameInfo *CurFrame = getCurrentFrameInfo(); |