Remove LastOffset from the asm parser.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129378 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/MC/MCDwarf.cpp b/lib/MC/MCDwarf.cpp
index 84f4a3f..8770c8f 100644
--- a/lib/MC/MCDwarf.cpp
+++ b/lib/MC/MCDwarf.cpp
@@ -523,6 +523,7 @@
   case MCCFIInstruction::RelMove: {
     const MachineLocation &Dst = Instr.getDestination();
     const MachineLocation &Src = Instr.getSource();
+    const bool IsRelative = Instr.getOperation() == MCCFIInstruction::RelMove;
 
     // If advancing cfa.
     if (Dst.isReg() && Dst.getReg() == MachineLocation::VirtualFP) {
@@ -535,7 +536,11 @@
         Streamer.EmitULEB128IntValue(Src.getReg());
       }
 
-      CFAOffset = -Src.getOffset();
+      if (IsRelative)
+        CFAOffset += Src.getOffset();
+      else
+        CFAOffset = -Src.getOffset();
+
       Streamer.EmitULEB128IntValue(CFAOffset, 1);
       return;
     }
@@ -549,7 +554,6 @@
 
     unsigned Reg = Src.getReg();
 
-    const bool IsRelative = Instr.getOperation() == MCCFIInstruction::RelMove;
     int Offset = Dst.getOffset();
     if (IsRelative)
       Offset -= CFAOffset;