diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/genextract.c | 4 | ||||
-rw-r--r-- | gcc/genoutput.c | 2 |
3 files changed, 9 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 09c61902f1f..ea31da8016b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2002-03-06 Ulrich Weigand <uweigand@de.ibm.com> + + * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP. + genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP + and MATCH_OP_DUP. + Thu Mar 7 16:54:10 CET 2002 Jan Hubicka <jh@suse.cz> * reload1.c (reload_cse_delete_noop_set): Purge dead edges. diff --git a/gcc/genextract.c b/gcc/genextract.c index 72e3e56e449..d52fc36f2d0 100644 --- a/gcc/genextract.c +++ b/gcc/genextract.c @@ -210,12 +210,12 @@ walk_rtx (x, path) break; case MATCH_DUP: - case MATCH_PAR_DUP: duplocs[dup_count] = xstrdup (path); dupnums[dup_count] = XINT (x, 0); dup_count++; break; + case MATCH_PAR_DUP: case MATCH_OP_DUP: duplocs[dup_count] = xstrdup (path); dupnums[dup_count] = XINT (x, 0); @@ -227,7 +227,7 @@ walk_rtx (x, path) for (i = XVECLEN (x, 1) - 1; i >= 0; i--) { - newpath[depth] = '0' + i; + newpath[depth] = (code == MATCH_OP_DUP ? '0' : 'a') + i; walk_rtx (XVECEXP (x, 1, i), newpath); } free (newpath); diff --git a/gcc/genoutput.c b/gcc/genoutput.c index b11e08331ed..7ed98bbbe26 100644 --- a/gcc/genoutput.c +++ b/gcc/genoutput.c @@ -530,7 +530,7 @@ scan_operands (d, part, this_address_p, this_strict_low) case MATCH_OP_DUP: case MATCH_PAR_DUP: ++num_dups; - return; + break; case ADDRESS: scan_operands (d, XEXP (part, 0), 1, 0); |