From f93233bbe9980cac7d633336a280759ba50dc9b1 Mon Sep 17 00:00:00 2001 From: Jeffrey A Law Date: Wed, 10 Feb 1999 09:13:41 +0000 Subject: [PATCH] reload1.c (reload_combine_note_store): Second argument is no longer unused/ignored. * reload1.c (reload_combine_note_store): Second argument is no longer unused/ignored. Handle multi-register hard regs. (move2add_note_store): Simplify. From-SVN: r25124 --- gcc/ChangeLog | 6 ++++++ gcc/reload1.c | 28 +++++++++++----------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 58ad49094b7..2c610829ebc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Wed Feb 10 10:09:41 1999 Jeffrey A Law (law@cygnus.com) + + * reload1.c (reload_combine_note_store): Second argument is no + longer unused/ignored. Handle multi-register hard regs. + (move2add_note_store): Simplify. + Wed Feb 10 10:05:23 1999 Mumit Khan * collect2.c (collect_execute): Remove cygwin-specific code. diff --git a/gcc/reload1.c b/gcc/reload1.c index f2cb20deeaf..bfa25021ba4 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -9714,11 +9714,10 @@ reload_combine () /* Check if DST is a register or a subreg of a register; if it is, update reg_state[regno].store_ruid and reg_state[regno].use_index - accordingly. Called via note_stores from reload_combine. - The second argument, SET, is ignored. */ + accordingly. Called via note_stores from reload_combine. */ static void reload_combine_note_store (dst, set) - rtx dst, set ATTRIBUTE_UNUSED; + rtx dst, set; { int regno = 0; int i; @@ -9742,8 +9741,11 @@ reload_combine_note_store (dst, set) || GET_CODE (SET_DEST (set)) == SIGN_EXTRACT || GET_CODE (SET_DEST (set)) == STRICT_LOW_PART) { - reg_state[regno].use_index = -1; - reg_state[regno].store_ruid = reload_combine_ruid; + for (i = size / UNITS_PER_WORD - 1 + regno; i >= regno; i--) + { + reg_state[i].use_index = -1; + reg_state[i].store_ruid = reload_combine_ruid; + } } else { @@ -10058,21 +10060,13 @@ move2add_note_store (dst, set) regno += REGNO (dst); - if (HARD_REGNO_NREGS (regno, mode) == 1 && GET_CODE (set) == SET) + if (HARD_REGNO_NREGS (regno, mode) == 1 && GET_CODE (set) == SET + && GET_CODE (SET_DEST (set)) != ZERO_EXTRACT + && GET_CODE (SET_DEST (set)) != SIGN_EXTRACT + && GET_CODE (SET_DEST (set)) != STRICT_LOW_PART) { rtx src = SET_SRC (set); - /* Indicate that this register has been recently written to, - but the exact contents are not available. */ - if (GET_CODE (SET_DEST (set)) == ZERO_EXTRACT - || GET_CODE (SET_DEST (set)) == SIGN_EXTRACT - || GET_CODE (SET_DEST (set)) == STRICT_LOW_PART) - { - reg_set_luid[regno] = move2add_luid; - reg_offset[regno] = dst; - return; - } - reg_mode[regno] = mode; switch (GET_CODE (src)) { -- 2.30.2