From: Paul Brook Date: Sat, 17 Dec 2005 23:29:21 +0000 (+0000) Subject: m68k.md (m68k_output_function_prologue): Always call dwarf2out_def_cfa. X-Git-Tag: releases/gcc-4.2.0~5264 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d9e88af0e216994a14d7dbca7f7d227ac03b1365;p=thirdparty%2Fgcc.git m68k.md (m68k_output_function_prologue): Always call dwarf2out_def_cfa. 2005-12-17 Paul Brook * config/m68k/m68k.md (m68k_output_function_prologue): Always call dwarf2out_def_cfa. Only add space for frame pointer to cfa_offset when frame_pointer_needed. From-SVN: r108725 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e023f5288320..a2056a119a94 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-12-17 Paul Brook + + * config/m68k/m68k.md (m68k_output_function_prologue): Always call + dwarf2out_def_cfa. Only add space for frame pointer to cfa_offset + when frame_pointer_needed. + 2005-12-17 Gabriel Dos Reis * tree-inline.c (copy_body_r): Use explicit cast when converting diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c index 2462bb15dc25..2ef980fe9cc7 100644 --- a/gcc/config/m68k/m68k.c +++ b/gcc/config/m68k/m68k.c @@ -559,16 +559,6 @@ m68k_output_function_prologue (FILE *stream, "\tlink" ASM_DOTW " %s,%I0\n" "\tadd" ASM_DOT "l %I%wd,%Rsp\n", M68K_REGNAME (FRAME_POINTER_REGNUM), -fsize_with_regs); - - if (dwarf2out_do_frame ()) - { - char *l; - l = (char *) dwarf2out_cfi_label (); - cfa_offset += 4; - dwarf2out_reg_save (l, FRAME_POINTER_REGNUM, -cfa_offset); - dwarf2out_def_cfa (l, FRAME_POINTER_REGNUM, cfa_offset); - cfa_offset += current_frame.size; - } } else if (fsize_with_regs) /* !frame_pointer_needed */ { @@ -603,13 +593,25 @@ m68k_output_function_prologue (FILE *stream, else /* fsize_with_regs >= 0x8000 */ asm_fprintf (stream, "\tadd" ASM_DOT "l %I%wd,%Rsp\n", -fsize_with_regs); + } /* !frame_pointer_needed */ - if (dwarf2out_do_frame ()) + if (dwarf2out_do_frame ()) + { + if (frame_pointer_needed) { - cfa_offset += current_frame.size + 4; - dwarf2out_def_cfa ("", STACK_POINTER_REGNUM, cfa_offset); - } - } /* !frame_pointer_needed */ + cfa_offset += current_frame.size + 4; + char *l; + l = (char *) dwarf2out_cfi_label (); + cfa_offset += 4; + dwarf2out_reg_save (l, FRAME_POINTER_REGNUM, -cfa_offset); + dwarf2out_def_cfa (l, FRAME_POINTER_REGNUM, cfa_offset); + cfa_offset += current_frame.size; + } + else + { + cfa_offset += current_frame.size; + dwarf2out_def_cfa ("", STACK_POINTER_REGNUM, cfa_offset); + } + } if (current_frame.fpu_mask) {