From 8cb714352c0a6d8ad639a4f72837434295d03bfa Mon Sep 17 00:00:00 2001 From: Bernd Schmidt Date: Thu, 1 Mar 2001 14:04:23 +0000 Subject: [PATCH] Fix register renaming problem From-SVN: r40152 --- gcc/ChangeLog | 3 +++ gcc/config/ia64/ia64.c | 4 ++++ 2 files changed, 7 insertions(+) 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; } -- 2.30.2