diff options
Diffstat (limited to 'gcc/genpreds.c')
-rw-r--r-- | gcc/genpreds.c | 9 |
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: |