genemit.c patch

John Carr jfc@mit.edu
Sun Apr 19 12:38:00 GMT 1998


This patch allows a machine description to specifiy a mode in a split
mattern, as in this example:


(define_split
  [(set (match_operand:DI 0 "register_operand" "")
	(match_operator:DI 1 "logical_op"
			   [(match_operand:DI 2 "register_operand" "")
			    (match_operand:DI 3 "arith_double_operand" "")]))]
  "..."
  [(set (match_dup 4) (match_op_dup:SI 1 [(match_dup 6) (match_dup 8)]))
   (set (match_dup 5) (match_op_dup:SI 1 [(match_dup 7) (match_dup 9)]))]
  "...")

Without the ":SI" the mode of the operation remains DImode and the
resulting pattern is not recognized.


Sun Apr 19 15:26:53 1998  John Carr  <jfc@mit.edu>

	* genemit.c (gen_exp): Allow machine description to set mode of
	MATCH_OP_DUP.

*** genemit.c~	Fri Apr 17 15:55:17 1998
--- genemit.c	Sun Apr 19 14:39:47 1998
***************
*** 172,179 ****
        return;
  
      case MATCH_OP_DUP:
!       printf ("gen_rtx (GET_CODE (operand%d), GET_MODE (operand%d)",
! 	      XINT (x, 0), XINT (x, 0));
        for (i = 0; i < XVECLEN (x, 1); i++)
  	{
  	  printf (",\n\t\t");
--- 172,182 ----
        return;
  
      case MATCH_OP_DUP:
!       printf ("gen_rtx (GET_CODE (operand%d), ", XINT (x, 0));
!       if (GET_MODE (x) == VOIDmode)
! 	printf ("GET_MODE (operand%d)", XINT (x, 0));
!       else
! 	printf ("%smode", GET_MODE_NAME (GET_MODE (x)));
        for (i = 0; i < XVECLEN (x, 1); i++)
  	{
  	  printf (",\n\t\t");



More information about the Gcc mailing list