diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/recog.c | 11 |
2 files changed, 12 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ec4bd1f..44b5be5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -8,6 +8,9 @@ Fri Feb 16 12:41:30 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + * recog.c (validate_replace_rtx): Replace in operands of + ZERO_EXTRACT in SET_DEST. + * cse.c (new_label_ref): New variable. (insert): Set it instead of recorded_label_ref. (cse_basic_block): Set recorded_label_ref if new_label_ref use, has diff --git a/gcc/recog.c b/gcc/recog.c index 4dab907..f778f60 100644 --- a/gcc/recog.c +++ b/gcc/recog.c @@ -732,8 +732,7 @@ validate_replace_rtx (from, to, insn) return apply_change_group (); } -/* Try replacing every occurrence of FROM in INSN with TO. After all - changes have been made, validate by seeing if INSN is still valid. */ +/* Try replacing every occurrence of FROM in INSN with TO. */ void validate_replace_rtx_group (from, to, insn) @@ -758,6 +757,14 @@ validate_replace_src (from, to, insn) if (GET_CODE (SET_DEST (PATTERN (insn))) == MEM) validate_replace_rtx_1 (&XEXP (SET_DEST (PATTERN (insn)), 0), from, to, insn); + else if (GET_CODE (SET_DEST (PATTERN (insn))) == ZERO_EXTRACT) + { + validate_replace_rtx_1 (&XEXP (SET_DEST (PATTERN (insn)), 1), + from, to, insn); + validate_replace_rtx_1 (&XEXP (SET_DEST (PATTERN (insn)), 2), + from, to, insn); + } + return apply_change_group (); } |