This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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;
  

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]