From 6f9e35784d327805a4210efd91a9028c6ad21ee4 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Tue, 23 Nov 2004 15:10:18 -0800 Subject: [PATCH] emit-rtl.c, rtl.h (subreg_hard_regno): Remove. * emit-rtl.c, rtl.h (subreg_hard_regno): Remove. * caller-save.c (mark_set_regs): Use subreg_regno instead. * final.c (alter_subreg): Likewise. * local-alloc.c (reg_is_born): Likewise. From-SVN: r91115 --- gcc/ChangeLog | 7 +++++++ gcc/caller-save.c | 3 +-- gcc/emit-rtl.c | 28 ---------------------------- gcc/final.c | 3 +-- gcc/local-alloc.c | 2 +- gcc/rtl.h | 1 - 6 files changed, 10 insertions(+), 34 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9752df3b6ee..d1e06e7d822 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2004-11-23 Richard Henderson + + * emit-rtl.c, rtl.h (subreg_hard_regno): Remove. + * caller-save.c (mark_set_regs): Use subreg_regno instead. + * final.c (alter_subreg): Likewise. + * local-alloc.c (reg_is_born): Likewise. + 2004-11-23 Richard Henderson * simplify-rtx.c (simplify_subreg): Use subreg_regno_offset directly diff --git a/gcc/caller-save.c b/gcc/caller-save.c index 4fcff8e1cab..26be6176fb6 100644 --- a/gcc/caller-save.c +++ b/gcc/caller-save.c @@ -500,8 +500,7 @@ mark_set_regs (rtx reg, rtx setter ATTRIBUTE_UNUSED, rtx inner = SUBREG_REG (reg); if (!REG_P (inner) || REGNO (inner) >= FIRST_PSEUDO_REGISTER) return; - - regno = subreg_hard_regno (reg, 1); + regno = subreg_regno (reg); } else if (REG_P (reg) && REGNO (reg) < FIRST_PSEUDO_REGISTER) diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 5f2d8b262a3..c24ba255865 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -1018,34 +1018,6 @@ maybe_set_first_label_num (rtx x) first_label_num = CODE_LABEL_NUMBER (x); } -/* Return the final regno of X, which is a SUBREG of a hard - register. */ -int -subreg_hard_regno (rtx x, int check_mode) -{ - enum machine_mode mode = GET_MODE (x); - unsigned int byte_offset, base_regno, final_regno; - rtx reg = SUBREG_REG (x); - - /* This is where we attempt to catch illegal subregs - created by the compiler. */ - gcc_assert (GET_CODE (x) == SUBREG && REG_P (reg)); - base_regno = REGNO (reg); - gcc_assert (base_regno < FIRST_PSEUDO_REGISTER); - gcc_assert (!check_mode || HARD_REGNO_MODE_OK (base_regno, GET_MODE (reg))); -#ifdef ENABLE_CHECKING - gcc_assert (subreg_offset_representable_p (REGNO (reg), GET_MODE (reg), - SUBREG_BYTE (x), mode)); -#endif - /* Catch non-congruent offsets too. */ - byte_offset = SUBREG_BYTE (x); - gcc_assert (!(byte_offset % GET_MODE_SIZE (mode))); - - final_regno = subreg_regno (x); - - return final_regno; -} - /* Return a value representing some low-order bits of X, where the number of low-order bits is given by MODE. Note that no conversion is done between floating-point and fixed-point values, rather, the bit diff --git a/gcc/final.c b/gcc/final.c index a45119a647e..03806be2fa8 100644 --- a/gcc/final.c +++ b/gcc/final.c @@ -2636,8 +2636,7 @@ alter_subreg (rtx *xp) else { /* Simplify_subreg can't handle some REG cases, but we have to. */ - unsigned int regno = subreg_hard_regno (x, 1); - + unsigned int regno = subreg_regno (x); gcc_assert (REG_P (y)); *xp = gen_rtx_REG_offset (y, GET_MODE (x), regno, SUBREG_BYTE (x)); } diff --git a/gcc/local-alloc.c b/gcc/local-alloc.c index a940ba435bc..5d33f566b4f 100644 --- a/gcc/local-alloc.c +++ b/gcc/local-alloc.c @@ -2011,7 +2011,7 @@ reg_is_born (rtx reg, int birth) { regno = REGNO (SUBREG_REG (reg)); if (regno < FIRST_PSEUDO_REGISTER) - regno = subreg_hard_regno (reg, 1); + regno = subreg_regno (reg); } else regno = REGNO (reg); diff --git a/gcc/rtl.h b/gcc/rtl.h index ff4a0650d58..978c92dd7e5 100644 --- a/gcc/rtl.h +++ b/gcc/rtl.h @@ -1375,7 +1375,6 @@ extern rtvec gen_rtvec_v (int, rtx *); extern rtx gen_reg_rtx (enum machine_mode); extern rtx gen_rtx_REG_offset (rtx, enum machine_mode, unsigned int, int); extern rtx gen_label_rtx (void); -extern int subreg_hard_regno (rtx, int); extern rtx gen_lowpart_common (enum machine_mode, rtx); /* In cse.c */ -- 2.30.2