Print all the moves at a given label instead of just the first one.
Remove previous DwarfCFI hack.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130187 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
index a841ed6..e4bd5a4 100644
--- a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+++ b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
@@ -607,16 +607,16 @@
const MachineFunction &MF = *MI.getParent()->getParent();
MachineModuleInfo &MMI = MF.getMMI();
std::vector<MachineMove> &Moves = MMI.getFrameMoves();
- const MachineMove *Move = NULL;
+ bool FoundOne = false;
+ (void)FoundOne;
for (std::vector<MachineMove>::iterator I = Moves.begin(),
E = Moves.end(); I != E; ++I) {
if (I->getLabel() == Label) {
- Move = &*I;
- break;
+ EmitCFIFrameMove(*I);
+ FoundOne = true;
}
}
- assert(Move);
- EmitCFIFrameMove(*Move);
+ assert(FoundOne);
}
/// EmitFunctionBody - This method emits the body and trailer for a
diff --git a/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp b/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp
index b67aeb6..6d1708a 100644
--- a/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp
+++ b/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp
@@ -300,7 +300,7 @@
} else {
assert(!Dst.isReg() && "Machine move not supported yet.");
OutStreamer.EmitCFIOffset(RI->getDwarfRegNum(Src.getReg(), true),
- -Dst.getOffset());
+ Dst.getOffset());
}
}