diff options
author | Jeffrey A Law <law@cygnus.com> | 1999-02-10 09:13:41 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1999-02-10 02:13:41 -0700 |
commit | f93233bbe9980cac7d633336a280759ba50dc9b1 (patch) | |
tree | 1943a695b06e8f9a52b958e1ef6bff07bd7f5f21 | |
parent | 93ea10ba5b8bee5cc7aa10392d7cc80f3662fba5 (diff) | |
download | gcc-f93233bbe9980cac7d633336a280759ba50dc9b1.zip gcc-f93233bbe9980cac7d633336a280759ba50dc9b1.tar.gz gcc-f93233bbe9980cac7d633336a280759ba50dc9b1.tar.bz2 |
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
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/reload1.c | 28 |
2 files changed, 17 insertions, 17 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 58ad490..2c61082 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 <khan@xraylith.wisc.edu> * collect2.c (collect_execute): Remove cygwin-specific code. diff --git a/gcc/reload1.c b/gcc/reload1.c index f2cb20d..bfa2502 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)) { |