summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/genemit.c10
2 files changed, 13 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 740bc212ea2..0cce257a0ac 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2004-02-02 Kazu Hirata <kazu@cs.umass.edu>
+
+ * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
+ gen_rtx.
+
2004-02-02 Eric Christopher <echristo@redhat.com>
Zack Weinberg <zack@codesourcery.com>
diff --git a/gcc/genemit.c b/gcc/genemit.c
index 56db6068386..16440c5c9b0 100644
--- a/gcc/genemit.c
+++ b/gcc/genemit.c
@@ -178,7 +178,10 @@ gen_exp (rtx x, enum rtx_code subroutine_type, char *used)
return;
case MATCH_OP_DUP:
- printf ("gen_rtx (GET_CODE (operand%d), ", XINT (x, 0));
+ printf ("gen_rtx_fmt_");
+ for (i = 0; i < XVECLEN (x, 1); i++)
+ printf ("e");
+ printf (" (GET_CODE (operand%d), ", XINT (x, 0));
if (GET_MODE (x) == VOIDmode)
printf ("GET_MODE (operand%d)", XINT (x, 0));
else
@@ -192,7 +195,10 @@ gen_exp (rtx x, enum rtx_code subroutine_type, char *used)
return;
case MATCH_OPERATOR:
- printf ("gen_rtx (GET_CODE (operand%d)", XINT (x, 0));
+ printf ("gen_rtx_fmt_");
+ for (i = 0; i < XVECLEN (x, 2); i++)
+ printf ("e");
+ printf (" (GET_CODE (operand%d)", XINT (x, 0));
printf (", %smode", GET_MODE_NAME (GET_MODE (x)));
for (i = 0; i < XVECLEN (x, 2); i++)
{