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