From: Bernd Schmidt Date: Thu, 1 Mar 2001 14:04:23 +0000 (+0000) Subject: Fix register renaming problem X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8cb714352c0a6d8ad639a4f72837434295d03bfa;p=gcc.git Fix register renaming problem From-SVN: r40152 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 879827b9f16..0ca9c9b1a43 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ 2001-03-01 Bernd Schmidt + * config/ia64/ia64.c (ia64_hard_regno_rename_ok): Disallow renaming + from reg 4 if current_function_calls_setjmp. + * reload1.c (eliminate_regs_in_insn): Restrict the special case code not to try to optimize adds with anything but a REG destination. diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c index 1a4baa02c6c..bfe0d551dad 100644 --- a/gcc/config/ia64/ia64.c +++ b/gcc/config/ia64/ia64.c @@ -2436,6 +2436,10 @@ ia64_hard_regno_rename_ok (from, to) if (PR_REGNO_P (from) && PR_REGNO_P (to)) return (from & 1) == (to & 1); + /* Reg 4 contains the saved gp; we can't reliably rename this. */ + if (from == GR_REG (4) && current_function_calls_setjmp) + return 0; + return 1; }