diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2011-04-12 18:53:30 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2011-04-12 18:53:30 +0000 |
commit | fd794affe5d68bf80e96297a2f8cdee49f3bbdda (patch) | |
tree | 4595ea66b847341076de9dc380d8dfd1f3a4008f /llvm/lib/MC/MCDwarf.cpp | |
parent | ab86a519f82057b7f1ecabef9d6fb12e5d52e244 (diff) | |
download | bcm5719-llvm-fd794affe5d68bf80e96297a2f8cdee49f3bbdda.tar.gz bcm5719-llvm-fd794affe5d68bf80e96297a2f8cdee49f3bbdda.zip |
Remove LastOffset from the asm parser.
llvm-svn: 129378
Diffstat (limited to 'llvm/lib/MC/MCDwarf.cpp')
-rw-r--r-- | llvm/lib/MC/MCDwarf.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/llvm/lib/MC/MCDwarf.cpp b/llvm/lib/MC/MCDwarf.cpp index 84f4a3f5317..8770c8fd2be 100644 --- a/llvm/lib/MC/MCDwarf.cpp +++ b/llvm/lib/MC/MCDwarf.cpp @@ -523,6 +523,7 @@ void FrameEmitterImpl::EmitCFIInstruction(MCStreamer &Streamer, 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 @@ void FrameEmitterImpl::EmitCFIInstruction(MCStreamer &Streamer, 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 @@ void FrameEmitterImpl::EmitCFIInstruction(MCStreamer &Streamer, unsigned Reg = Src.getReg(); - const bool IsRelative = Instr.getOperation() == MCCFIInstruction::RelMove; int Offset = Dst.getOffset(); if (IsRelative) Offset -= CFAOffset; |