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]

genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output...


I have checked in this patch.

This fixes a bug that occurs if you try to use a match_par_dup in a call
insn pattern.  You end up with an INSN instead of a CALL_INSN.  This is
easily fixed by outputting code to call emit instead of emit_insn.

Sun Aug 15 12:41:21 1999  Jim Wilson  <wilson@cygnus.com>

	* genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output
	emit call instead of emit_insn call.

Index: genemit.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/genemit.c,v
retrieving revision 1.31
diff -p -r1.31 genemit.c
*** genemit.c	1999/08/09 13:59:44	1.31
--- genemit.c	1999/08/15 19:44:22
*************** gen_expand (expand)
*** 495,504 ****
        else if (GET_CODE (next) == CODE_LABEL)
  	printf ("  emit_label (");
        else if (GET_CODE (next) == MATCH_OPERAND
  	       || GET_CODE (next) == MATCH_OPERATOR
- 	       || GET_CODE (next) == MATCH_PARALLEL
  	       || GET_CODE (next) == MATCH_OP_DUP
! 	       || GET_CODE (next) == MATCH_DUP
  	       || GET_CODE (next) == PARALLEL)
  	printf ("  emit (");
        else
--- 495,505 ----
        else if (GET_CODE (next) == CODE_LABEL)
  	printf ("  emit_label (");
        else if (GET_CODE (next) == MATCH_OPERAND
+ 	       || GET_CODE (next) == MATCH_DUP
  	       || GET_CODE (next) == MATCH_OPERATOR
  	       || GET_CODE (next) == MATCH_OP_DUP
! 	       || GET_CODE (next) == MATCH_PARALLEL
! 	       || GET_CODE (next) == MATCH_PAR_DUP
  	       || GET_CODE (next) == PARALLEL)
  	printf ("  emit (");
        else


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