diff options
author | Bernd Schmidt <bernds@redhat.com> | 2001-03-01 14:04:23 +0000 |
---|---|---|
committer | Bernd Schmidt <bernds@gcc.gnu.org> | 2001-03-01 14:04:23 +0000 |
commit | 8cb714352c0a6d8ad639a4f72837434295d03bfa (patch) | |
tree | 00ac5d791087a030565f851b26b05371d1ed2827 /gcc | |
parent | fbfe8c9e5ab2168a5776947525909c485afe39f3 (diff) | |
download | gcc-8cb714352c0a6d8ad639a4f72837434295d03bfa.zip gcc-8cb714352c0a6d8ad639a4f72837434295d03bfa.tar.gz gcc-8cb714352c0a6d8ad639a4f72837434295d03bfa.tar.bz2 |
Fix register renaming problem
From-SVN: r40152
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/config/ia64/ia64.c | 4 |
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 879827b..0ca9c9b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ 2001-03-01 Bernd Schmidt <bernds@redhat.com> + * 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 1a4baa0..bfe0d55 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; } |