diff options
author | Chris Lattner <sabre@nondot.org> | 2010-04-04 23:31:58 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-04-04 23:31:58 +0000 |
commit | 786d17a0cf49e6bf95c53eff6148cf843d0f1c1d (patch) | |
tree | 52e1d4c1c9b6591ef3837d0b08440dd864869130 /lib/CodeGen/AsmPrinter/DwarfPrinter.cpp | |
parent | 6189ed10c1a6a39ad516aca2bda2c05fff35a55b (diff) |
simplify code and reduce indentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100369 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/AsmPrinter/DwarfPrinter.cpp')
-rw-r--r-- | lib/CodeGen/AsmPrinter/DwarfPrinter.cpp | 63 |
1 files changed, 30 insertions, 33 deletions
diff --git a/lib/CodeGen/AsmPrinter/DwarfPrinter.cpp b/lib/CodeGen/AsmPrinter/DwarfPrinter.cpp index 57fd469fe4..870dab78d0 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."); + Asm->EmitCFAByte(dwarf::DW_CFA_def_cfa); + Asm->EmitULEB128(RI->getDwarfRegNum(Src.getReg(), isEH), "Register"); } - } 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."); - } - } 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->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 { + Asm->EmitCFAByte(dwarf::DW_CFA_offset_extended); + Asm->EmitULEB128(Reg, "Reg"); + Asm->EmitULEB128(Offset, "Offset"); } } } |