From 6d7a1c4c78aa070a4017b28e6e46f0a335d461dc Mon Sep 17 00:00:00 2001 From: Ulrich Weigand Date: Thu, 7 Mar 2002 22:03:27 +0000 Subject: [PATCH] genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP. * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP. genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP and MATCH_OP_DUP. From-SVN: r50412 --- gcc/ChangeLog | 6 ++++++ gcc/genextract.c | 4 ++-- 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 + + * 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 * 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);