diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/frv/frv.c | 2 | ||||
-rw-r--r-- | gcc/config/sh/sh.c | 2 |
3 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 403e8dd..33f34c3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,12 @@ 2019-09-10 Richard Sandiford <richard.sandiford@arm.com> + * config/frv/frv.c (frv_ifcvt_modify_tests): Use + regs_invalidated_by_call & ~fixed_reg_set instead of + call_used_or_fixed_regs & ~fixed_reg_set. + * config/sh/sh.c (output_stack_adjust): Likewise. + +2019-09-10 Richard Sandiford <richard.sandiford@arm.com> + * hard-reg-set.h (target_hard_regs::x_call_used_reg_set): Delete. (call_used_reg_set): Delete. (call_used_or_fixed_regs): New macro. diff --git a/gcc/config/frv/frv.c b/gcc/config/frv/frv.c index 90c062b..936c532 100644 --- a/gcc/config/frv/frv.c +++ b/gcc/config/frv/frv.c @@ -5201,7 +5201,7 @@ frv_ifcvt_modify_tests (ce_if_block *ce_info, rtx *p_true, rtx *p_false) not fixed. However, allow the ICC/ICR temporary registers to be allocated if we did not need to use them in reloading other registers. */ memset (&tmp_reg->regs, 0, sizeof (tmp_reg->regs)); - tmp_reg->regs = call_used_or_fixed_regs &~ fixed_reg_set; + tmp_reg->regs = regs_invalidated_by_call & ~fixed_reg_set; SET_HARD_REG_BIT (tmp_reg->regs, ICC_TEMP); SET_HARD_REG_BIT (tmp_reg->regs, ICR_TEMP); diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index fd23fb0..ab3a78f 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -6707,7 +6707,7 @@ output_stack_adjust (int size, rtx reg, int epilogue_p, temp = -1; if (temp < 0 && ! current_function_interrupt && epilogue_p >= 0) { - HARD_REG_SET temps = (call_used_or_fixed_regs + HARD_REG_SET temps = (regs_invalidated_by_call & ~fixed_reg_set & savable_regs); if (epilogue_p > 0) |