diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2019-09-10 18:56:43 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2019-09-10 18:56:43 +0000 |
commit | ff18ad15259c8978f85344934b146ff7b9ee07e1 (patch) | |
tree | 134f2e83c437f39cc3d6effd207d830dbfa7fcbe /gcc | |
parent | a5647ae846f6765f12a359acba6a71fc12254fa8 (diff) | |
download | gcc-ff18ad15259c8978f85344934b146ff7b9ee07e1.zip gcc-ff18ad15259c8978f85344934b146ff7b9ee07e1.tar.gz gcc-ff18ad15259c8978f85344934b146ff7b9ee07e1.tar.bz2 |
Make more use of regs_invalidated_by_call
This cleans up a couple of places in which the previous patch had:
call_used_or_fixed_regs & ~fixed_reg_set
In that context, regs_invalidated_by_call is IMO more obvious.
2019-09-10 Richard Sandiford <richard.sandiford@arm.com>
gcc/
* 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.
From-SVN: r275601
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) |