This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Patch: Correctly compute MAX_DUP_OPERANDS
- From: bernds_cb1 at t-online dot de (Bernd Schmidt)
- To: gcc-patches at gcc dot gnu dot org
- Date: Fri, 12 Nov 2004 15:08:17 +0100
- Subject: Patch: Correctly compute MAX_DUP_OPERANDS
I'm currently working on a new port (Analog's Blackfin processor; see
blackfin.uclinux.org), and I'll be committing a few fixes for some
buglets that it triggers.
The first bug, fixed with the patch below, causes us to compute the
wrong value for MAX_DUP_OPERANDS if the highest-numbered match_dup in
the machine description file is inside a label_ref.
Bootstrapped on i686-linux, committed.
Bernd
* genconfig.c (walk_insn_part): Look at match_dups inside a label_ref.
Index: genconfig.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/genconfig.c,v
retrieving revision 1.54
diff -c -p -r1.54 genconfig.c
*** genconfig.c 3 Aug 2004 23:30:44 -0000 1.54
--- genconfig.c 12 Nov 2004 14:03:47 -0000
*************** walk_insn_part (rtx part, int recog_p, i
*** 98,104 ****
break;
case LABEL_REF:
! if (GET_CODE (XEXP (part, 0)) == MATCH_OPERAND)
break;
return;
--- 98,105 ----
break;
case LABEL_REF:
! if (GET_CODE (XEXP (part, 0)) == MATCH_OPERAND
! || GET_CODE (XEXP (part, 0)) == MATCH_DUP)
break;
return;