Implement cfi_restore. Patch by Brian Anderson!
[oota-llvm.git] / lib / MC / MCStreamer.cpp
index 4169188cbb400dd24c902b2c8511740255166672..8567941c45ac353d63e0720f9d3832b0ab844e28 100644 (file)
@@ -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();