Start adding basic support for emitting the call frame instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122590 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/MC/MCDwarf.cpp b/lib/MC/MCDwarf.cpp
index cd51410..6e59a58 100644
--- a/lib/MC/MCDwarf.cpp
+++ b/lib/MC/MCDwarf.cpp
@@ -460,9 +460,11 @@
     if (BaseLabel && Label) {
       MCSymbol *ThisSym = Label;
       if (ThisSym != BaseLabel) {
+        // FIXME: We should relax this instead of using a DW_CFA_advance_loc4
+        // for every address change!
         streamer.EmitIntValue(dwarf::DW_CFA_advance_loc4, 1);
         const MCExpr *Length = MakeStartMinusEndExpr(streamer, *BaseLabel,
-                                                     *ThisSym, 4);
+                                                     *ThisSym, 0);
         streamer.EmitValue(Length, 4);
         BaseLabel = ThisSym;
       }
@@ -672,6 +674,8 @@
   streamer.EmitLabel(augmentationEnd);
   // Call Frame Instructions
 
+  EmitFrameMoves(streamer, frame.Moves, frame.Begin, true);
+
   // Padding
   streamer.EmitValueToAlignment(4);