diff options
author | Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> | 1998-10-27 22:38:40 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-10-27 15:38:40 -0700 |
commit | 03acd8f806b61482262b880650f8ca52821d27f4 (patch) | |
tree | 8ffd68d532362a6487d8836c0bd4a8dafa5d9bb2 /gcc/reload.c | |
parent | e6e174e5609155eca637b5b14a3dd5cc407a415a (diff) | |
download | gcc-03acd8f806b61482262b880650f8ca52821d27f4.zip gcc-03acd8f806b61482262b880650f8ca52821d27f4.tar.gz gcc-03acd8f806b61482262b880650f8ca52821d27f4.tar.bz2 |
THe final localized spilling patches. See the ChangeLog for details.
From-SVN: r23374
Diffstat (limited to 'gcc/reload.c')
-rw-r--r-- | gcc/reload.c | 61 |
1 files changed, 20 insertions, 41 deletions
diff --git a/gcc/reload.c b/gcc/reload.c index b6a2ff9..7d15b4b 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -4623,7 +4623,7 @@ find_reloads_address (mode, memrefloc, ad, loc, opnum, type, ind_levels, insn) return 0; /* If we do not have one of the cases above, we must do the reload. */ - push_reload (ad, NULL_RTX, loc, NULL_PTR, reload_address_base_reg_class, + push_reload (ad, NULL_RTX, loc, NULL_PTR, BASE_REG_CLASS, GET_MODE (ad), VOIDmode, 0, 0, opnum, type); return 1; } @@ -4712,7 +4712,7 @@ find_reloads_address (mode, memrefloc, ad, loc, opnum, type, ind_levels, insn) /* Must use TEM here, not AD, since it is the one that will have any subexpressions reloaded, if needed. */ push_reload (tem, NULL_RTX, loc, NULL_PTR, - reload_address_base_reg_class, GET_MODE (tem), + BASE_REG_CLASS, GET_MODE (tem), VOIDmode, 0, 0, opnum, type); return 1; @@ -4745,15 +4745,15 @@ find_reloads_address (mode, memrefloc, ad, loc, opnum, type, ind_levels, insn) /* Reload the displacement into an index reg. We assume the frame pointer or arg pointer is a base reg. */ find_reloads_address_part (XEXP (ad, 1), &XEXP (ad, 1), - reload_address_index_reg_class, - GET_MODE (ad), opnum, type, ind_levels); + INDEX_REG_CLASS, GET_MODE (ad), opnum, + type, ind_levels); } else { /* If the sum of two regs is not necessarily valid, reload the sum into a base reg. That will at least work. */ - find_reloads_address_part (ad, loc, reload_address_base_reg_class, + find_reloads_address_part (ad, loc, BASE_REG_CLASS, Pmode, opnum, type, ind_levels); } return 1; @@ -4804,8 +4804,7 @@ find_reloads_address (mode, memrefloc, ad, loc, opnum, type, ind_levels, insn) plus_constant (XEXP (XEXP (ad, 0), 0), INTVAL (XEXP (ad, 1))), XEXP (XEXP (ad, 0), 1)); - find_reloads_address_part (XEXP (ad, 0), &XEXP (ad, 0), - reload_address_base_reg_class, + find_reloads_address_part (XEXP (ad, 0), &XEXP (ad, 0), BASE_REG_CLASS, GET_MODE (ad), opnum, type, ind_levels); find_reloads_address_1 (mode, XEXP (ad, 1), 1, &XEXP (ad, 1), opnum, type, 0, insn); @@ -4829,8 +4828,7 @@ find_reloads_address (mode, memrefloc, ad, loc, opnum, type, ind_levels, insn) XEXP (XEXP (ad, 0), 0), plus_constant (XEXP (XEXP (ad, 0), 1), INTVAL (XEXP (ad, 1)))); - find_reloads_address_part (XEXP (ad, 1), &XEXP (ad, 1), - reload_address_base_reg_class, + find_reloads_address_part (XEXP (ad, 1), &XEXP (ad, 1), BASE_REG_CLASS, GET_MODE (ad), opnum, type, ind_levels); find_reloads_address_1 (mode, XEXP (ad, 0), 1, &XEXP (ad, 0), opnum, type, 0, insn); @@ -4874,8 +4872,7 @@ find_reloads_address (mode, memrefloc, ad, loc, opnum, type, ind_levels, insn) loc = &XEXP (*memrefloc, 0); } - find_reloads_address_part (ad, loc, reload_address_base_reg_class, - Pmode, opnum, type, + find_reloads_address_part (ad, loc, BASE_REG_CLASS, Pmode, opnum, type, ind_levels); return 1; } @@ -5287,9 +5284,7 @@ find_reloads_address_1 (mode, x, context, loc, opnum, type, ind_levels, insn) x = XEXP (x, 0); reloadnum = push_reload (x, x, loc, loc, - (context - ? reload_address_index_reg_class - : reload_address_base_reg_class), + (context ? INDEX_REG_CLASS : BASE_REG_CLASS), GET_MODE (x), GET_MODE (x), 0, 0, opnum, RELOAD_OTHER); } @@ -5297,9 +5292,7 @@ find_reloads_address_1 (mode, x, context, loc, opnum, type, ind_levels, insn) { reloadnum = push_reload (x, NULL_RTX, loc, NULL_PTR, - (context - ? reload_address_index_reg_class - : reload_address_base_reg_class), + (context ? INDEX_REG_CLASS : BASE_REG_CLASS), GET_MODE (x), GET_MODE (x), 0, 0, opnum, type); reload_inc[reloadnum] @@ -5345,9 +5338,7 @@ find_reloads_address_1 (mode, x, context, loc, opnum, type, ind_levels, insn) opnum, type, ind_levels, insn); reloadnum = push_reload (x, NULL_RTX, loc, NULL_PTR, - (context - ? reload_address_index_reg_class - : reload_address_base_reg_class), + (context ? INDEX_REG_CLASS : BASE_REG_CLASS), GET_MODE (x), VOIDmode, 0, 0, opnum, type); reload_inc[reloadnum] = find_inc_amount (PATTERN (this_insn), XEXP (x, 0)); @@ -5376,8 +5367,7 @@ find_reloads_address_1 (mode, x, context, loc, opnum, type, ind_levels, insn) find_reloads_address (GET_MODE (x), loc, XEXP (x, 0), &XEXP (x, 0), opnum, ADDR_TYPE (type), ind_levels, insn); push_reload (*loc, NULL_RTX, loc, NULL_PTR, - (context ? reload_address_index_reg_class - : reload_address_base_reg_class), + (context ? INDEX_REG_CLASS : BASE_REG_CLASS), GET_MODE (x), VOIDmode, 0, 0, opnum, type); return 1; @@ -5387,10 +5377,8 @@ find_reloads_address_1 (mode, x, context, loc, opnum, type, ind_levels, insn) if (reg_equiv_constant[regno] != 0) { - find_reloads_address_part (reg_equiv_constant[regno], loc, - (context - ? reload_address_index_reg_class - : reload_address_base_reg_class), + find_reloads_address_part (reg_equiv_constant[regno], loc, + (context ? INDEX_REG_CLASS : BASE_REG_CLASS), GET_MODE (x), opnum, type, ind_levels); return 1; } @@ -5400,9 +5388,7 @@ find_reloads_address_1 (mode, x, context, loc, opnum, type, ind_levels, insn) if (reg_equiv_mem[regno] != 0) { push_reload (reg_equiv_mem[regno], NULL_RTX, loc, NULL_PTR, - (context - ? reload_address_index_reg_class - : reload_address_base_reg_class), + (context ? INDEX_REG_CLASS : BASE_REG_CLASS), GET_MODE (x), VOIDmode, 0, 0, opnum, type); return 1; } @@ -5430,9 +5416,7 @@ find_reloads_address_1 (mode, x, context, loc, opnum, type, ind_levels, insn) : REGNO_MODE_OK_FOR_BASE_P (regno, mode)))) { push_reload (x, NULL_RTX, loc, NULL_PTR, - (context - ? reload_address_index_reg_class - : reload_address_base_reg_class), + (context ? INDEX_REG_CLASS : BASE_REG_CLASS), GET_MODE (x), VOIDmode, 0, 0, opnum, type); return 1; } @@ -5444,9 +5428,7 @@ find_reloads_address_1 (mode, x, context, loc, opnum, type, ind_levels, insn) if (regno_clobbered_p (regno, this_insn)) { push_reload (x, NULL_RTX, loc, NULL_PTR, - (context - ? reload_address_index_reg_class - : reload_address_base_reg_class), + (context ? INDEX_REG_CLASS : BASE_REG_CLASS), GET_MODE (x), VOIDmode, 0, 0, opnum, type); return 1; } @@ -5467,9 +5449,7 @@ find_reloads_address_1 (mode, x, context, loc, opnum, type, ind_levels, insn) : REGNO_MODE_OK_FOR_BASE_P (regno, mode))) { push_reload (x, NULL_RTX, loc, NULL_PTR, - (context - ? reload_address_index_reg_class - : reload_address_base_reg_class), + (context ? INDEX_REG_CLASS : BASE_REG_CLASS), GET_MODE (x), VOIDmode, 0, 0, opnum, type); return 1; } @@ -5478,9 +5458,8 @@ find_reloads_address_1 (mode, x, context, loc, opnum, type, ind_levels, insn) is larger than the class size, then reload the whole SUBREG. */ else { - enum reg_class class = (context - ? reload_address_index_reg_class - : reload_address_base_reg_class); + enum reg_class class = (context ? INDEX_REG_CLASS + : BASE_REG_CLASS); if (CLASS_MAX_NREGS (class, GET_MODE (SUBREG_REG (x))) > reg_class_size[class]) { |