Some refactoring suggested by Anton Korobeynikov.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129600 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
index baf11a7..4d3f172 100644
--- a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+++ b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
@@ -644,24 +644,7 @@
}
}
assert(Move);
-
- const MachineLocation &Dst = Move->getDestination();
- const MachineLocation &Src = Move->getSource();
- const TargetAsmInfo &AsmInfo = OutContext.getTargetAsmInfo();
- if (Dst.isReg() && Dst.getReg() == MachineLocation::VirtualFP) {
- if (Src.getReg() == MachineLocation::VirtualFP)
- OutStreamer.EmitCFIDefCfaOffset(-Src.getOffset());
- else {
- unsigned Reg = AsmInfo.getDwarfRegNum(Src.getReg(), true);
- OutStreamer.EmitCFIDefCfa(Reg, -Src.getOffset());
- }
- } else if (Src.isReg() && Src.getReg() == MachineLocation::VirtualFP) {
- unsigned Reg = AsmInfo.getDwarfRegNum(Dst.getReg(), true);
- OutStreamer.EmitCFIDefCfaRegister(Reg);
- } else {
- unsigned Reg = AsmInfo.getDwarfRegNum(Src.getReg(), true);
- OutStreamer.EmitCFIOffset(Reg, -Dst.getOffset());
- }
+ EmitCFIFrameMove(*Move);
}
/// EmitFunctionBody - This method emits the body and trailer for a