diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 45edff299db..d19ae2d964b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-07-24 Alan Modra + + * config/rs6000/rs6000.c (rs6000_emit_prologue): Save fp regs inline + if current_function_calls_eh_return. + 2003-07-23 Mark Mitchell * doc/c-tree.texi (OFFSET_TYPE): Update description. diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 580d951e05b..c5cd0b0a089 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -11254,11 +11254,13 @@ rs6000_emit_prologue () && info->first_gp_reg_save < 31); saving_FPRs_inline = (info->first_fp_reg_save == 64 || FP_SAVE_INLINE (info->first_fp_reg_save) + || current_function_calls_eh_return || cfun->machine->ra_need_lr); /* For V.4, update stack before we do any saving and set back pointer. */ if (info->push_p - && (DEFAULT_ABI == ABI_V4 || current_function_calls_eh_return)) + && (DEFAULT_ABI == ABI_V4 + || current_function_calls_eh_return)) { if (info->total_size < 32767) sp_offset = info->total_size;