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);