From 786d17a0cf49e6bf95c53eff6148cf843d0f1c1d Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sun, 4 Apr 2010 23:31:58 +0000 Subject: [PATCH] simplify code and reduce indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100369 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/AsmPrinter/DwarfPrinter.cpp | 63 ++++++++++++------------- 1 file changed, 30 insertions(+), 33 deletions(-) diff --git a/lib/CodeGen/AsmPrinter/DwarfPrinter.cpp b/lib/CodeGen/AsmPrinter/DwarfPrinter.cpp index 57fd469fe49..870dab78d07 100644 --- a/lib/CodeGen/AsmPrinter/DwarfPrinter.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfPrinter.cpp @@ -70,43 +70,40 @@ void DwarfPrinter::EmitFrameMoves(MCSymbol *BaseLabel, // If advancing cfa. if (Dst.isReg() && Dst.getReg() == MachineLocation::VirtualFP) { - if (!Src.isReg()) { - if (Src.getReg() == MachineLocation::VirtualFP) { - Asm->EmitCFAByte(dwarf::DW_CFA_def_cfa_offset); - } else { - Asm->EmitCFAByte(dwarf::DW_CFA_def_cfa); - Asm->EmitULEB128(RI->getDwarfRegNum(Src.getReg(), isEH), "Register"); - } + assert(!Src.isReg() && "Machine move not supported yet."); - int Offset = -Src.getOffset(); - Asm->EmitULEB128(Offset, "Offset"); + if (Src.getReg() == MachineLocation::VirtualFP) { + Asm->EmitCFAByte(dwarf::DW_CFA_def_cfa_offset); } else { - llvm_unreachable("Machine move not supported yet."); - } - } else if (Src.isReg() && - Src.getReg() == MachineLocation::VirtualFP) { - if (Dst.isReg()) { - Asm->EmitCFAByte(dwarf::DW_CFA_def_cfa_register); - Asm->EmitULEB128(RI->getDwarfRegNum(Dst.getReg(), isEH), "Register"); - } else { - llvm_unreachable("Machine move not supported yet."); + Asm->EmitCFAByte(dwarf::DW_CFA_def_cfa); + Asm->EmitULEB128(RI->getDwarfRegNum(Src.getReg(), isEH), "Register"); } + + Asm->EmitULEB128(-Src.getOffset(), "Offset"); + continue; + } + + if (Src.isReg() && Src.getReg() == MachineLocation::VirtualFP) { + assert(Dst.isReg() && "Machine move not supported yet."); + Asm->EmitCFAByte(dwarf::DW_CFA_def_cfa_register); + Asm->EmitULEB128(RI->getDwarfRegNum(Dst.getReg(), isEH), "Register"); + continue; + } + + unsigned Reg = RI->getDwarfRegNum(Src.getReg(), isEH); + int Offset = Dst.getOffset() / stackGrowth; + + if (Offset < 0) { + Asm->EmitCFAByte(dwarf::DW_CFA_offset_extended_sf); + Asm->EmitULEB128(Reg, "Reg"); + Asm->EmitSLEB128(Offset, "Offset"); + } else if (Reg < 64) { + Asm->EmitCFAByte(dwarf::DW_CFA_offset + Reg); + Asm->EmitULEB128(Offset, "Offset"); } else { - unsigned Reg = RI->getDwarfRegNum(Src.getReg(), isEH); - int Offset = Dst.getOffset() / stackGrowth; - - if (Offset < 0) { - Asm->EmitCFAByte(dwarf::DW_CFA_offset_extended_sf); - Asm->EmitULEB128(Reg, "Reg"); - Asm->EmitSLEB128(Offset, "Offset"); - } else if (Reg < 64) { - Asm->EmitCFAByte(dwarf::DW_CFA_offset + Reg); - Asm->EmitULEB128(Offset, "Offset"); - } else { - Asm->EmitCFAByte(dwarf::DW_CFA_offset_extended); - Asm->EmitULEB128(Reg, "Reg"); - Asm->EmitULEB128(Offset, "Offset"); - } + Asm->EmitCFAByte(dwarf::DW_CFA_offset_extended); + Asm->EmitULEB128(Reg, "Reg"); + Asm->EmitULEB128(Offset, "Offset"); } } }