aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2003-07-24 02:30:31 +0000
committerAlan Modra <amodra@gcc.gnu.org>2003-07-24 12:00:31 +0930
commitacd0b319f1a5718d5a17378734ac957c7ab2f2ee (patch)
tree66f2b8e3cf07090f3fa2c67705c65bc5697186cd
parent9d2a10573bf4b9dc0ef966bb58452bba17207cc8 (diff)
downloadgcc-acd0b319f1a5718d5a17378734ac957c7ab2f2ee.zip
gcc-acd0b319f1a5718d5a17378734ac957c7ab2f2ee.tar.gz
gcc-acd0b319f1a5718d5a17378734ac957c7ab2f2ee.tar.bz2
rs6000.c (rs6000_emit_prologue): Save fp regs inline if current_function_calls_eh_return.
* config/rs6000/rs6000.c (rs6000_emit_prologue): Save fp regs inline if current_function_calls_eh_return. From-SVN: r69734
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/rs6000/rs6000.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 45edff2..d19ae2d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2003-07-24 Alan Modra <amodra@bigpond.net.au>
+
+ * config/rs6000/rs6000.c (rs6000_emit_prologue): Save fp regs inline
+ if current_function_calls_eh_return.
+
2003-07-23 Mark Mitchell <mark@codesourcery.com>
* doc/c-tree.texi (OFFSET_TYPE): Update description.
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 580d951..c5cd0b0 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;