From 03fd9aa2c7184aa67dbbbd9f1d546f395e0c67be Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Sun, 26 Jun 2005 07:20:30 +0200 Subject: [PATCH] regrename.c (copy_value): Don't replace fixed or global regs with older regs. * regrename.c (copy_value): Don't replace fixed or global regs with older regs. From-SVN: r101330 --- gcc/ChangeLog | 3 +++ gcc/regrename.c | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index db5ef095b03..aaccb6efe1e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ 2005-06-26 Jakub Jelinek + * regrename.c (copy_value): Don't replace fixed or global + regs with older regs. + * defaults.h (FRAME_GROWS_DOWNWARD): Define to 0 if not defined. * function.c (get_func_frame_size): Use if (FRAME_GROWS_DOWNWARD) instead of preprocessor conditionals. diff --git a/gcc/regrename.c b/gcc/regrename.c index 0cfe552230f..91e9d71a9a1 100644 --- a/gcc/regrename.c +++ b/gcc/regrename.c @@ -1225,6 +1225,10 @@ copy_value (rtx dest, rtx src, struct value_data *vd) if (frame_pointer_needed && dr == HARD_FRAME_POINTER_REGNUM) return; + /* Likewise for fixed or global registers. */ + if (fixed_regs[dr] || global_regs[dr]) + return; + /* If SRC and DEST overlap, don't record anything. */ dn = hard_regno_nregs[dr][GET_MODE (dest)]; sn = hard_regno_nregs[sr][GET_MODE (dest)]; -- 2.30.2