aboutsummaryrefslogtreecommitdiff
path: root/gcc/genpreds.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/genpreds.c')
-rw-r--r--gcc/genpreds.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/genpreds.c b/gcc/genpreds.c
index 874925de998..30fd3899bca 100644
--- a/gcc/genpreds.c
+++ b/gcc/genpreds.c
@@ -2,7 +2,7 @@
- prototype declarations for operand predicates (tm-preds.h)
- function definitions of operand predicates, if defined new-style
(insn-preds.c)
- Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GCC.
@@ -167,7 +167,7 @@ mark_mode_tests (rtx exp)
struct pred_data *p = lookup_predicate (XSTR (exp, 1));
if (!p)
error ("reference to undefined predicate '%s'", XSTR (exp, 1));
- else if (p->special)
+ else if (p->special || GET_MODE (exp) != VOIDmode)
NO_MODE_TEST (exp) = 1;
}
break;
@@ -366,7 +366,10 @@ write_predicate_expr (const char *name, rtx exp)
break;
case MATCH_OPERAND:
- printf ("%s (op, mode)", XSTR (exp, 1));
+ if (GET_MODE (exp) == VOIDmode)
+ printf ("%s (op, mode)", XSTR (exp, 1));
+ else
+ printf ("%s (op, %smode)", XSTR (exp, 1), mode_name[GET_MODE (exp)]);
break;
case MATCH_CODE: