aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/sh
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2019-09-09 17:59:10 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2019-09-09 17:59:10 +0000
commit50b3f54d551787e0a066451ef60ef3b055a893e6 (patch)
treeb8072c5a072c571f7f8507ee28b4c867d9f176e5 /gcc/config/sh
parent6576d245386e2ce52df274ef8f2ffed81cfaa1c3 (diff)
downloadgcc-50b3f54d551787e0a066451ef60ef3b055a893e6.zip
gcc-50b3f54d551787e0a066451ef60ef3b055a893e6.tar.gz
gcc-50b3f54d551787e0a066451ef60ef3b055a893e6.tar.bz2
Remove COMPL_HARD_REG_SET
"COMPL_HARD_REG_SET (x, y)" becomes "x = ~y". 2019-09-09 Richard Sandiford <richard.sandiford@arm.com> gcc/ * hard-reg-set.h (HARD_REG_SET::operator~): New function. (COMPL_HARD_REG_SET): Delete. * config/c6x/c6x.c (c6x_call_saved_register_used): Use ~ instead of COMPL_HARD_REG_SET. (try_rename_operands): Likewise. * config/sh/sh.c (push_regs): Likewise. * lra-assigns.c (find_hard_regno_for_1): Likewise. * lra-constraints.c (contains_reg_p): Likewise. * reload1.c (finish_spills, choose_reload_regs_init): Likewise. From-SVN: r275529
Diffstat (limited to 'gcc/config/sh')
-rw-r--r--gcc/config/sh/sh.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index d1af580..4b70ac9 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -6908,11 +6908,8 @@ push_regs (HARD_REG_SET *mask, bool interrupt_handler)
if (i == FIRST_FP_REG && interrupt_handler && TARGET_FMOVD
&& hard_reg_set_intersect_p (*mask, reg_class_contents[DF_REGS]))
{
- HARD_REG_SET unsaved;
-
push (FPSCR_REG);
- COMPL_HARD_REG_SET (unsaved, *mask);
- fpscr_set_from_mem (NORMAL_MODE (FP_MODE), unsaved);
+ fpscr_set_from_mem (NORMAL_MODE (FP_MODE), ~*mask);
skip_fpscr = true;
}
if (i != PR_REG