aboutsummaryrefslogtreecommitdiff
path: root/gcc/rtl.def
diff options
context:
space:
mode:
authorZack Weinberg <zackw@panix.com>2006-01-23 15:16:19 +0000
committerZack Weinberg <zack@gcc.gnu.org>2006-01-23 15:16:19 +0000
commit6e7a4706fdf5641516cd85b20d5ac9070a348e15 (patch)
treeffc73708bd6be59b11ab8a71a9537d0d6289dced /gcc/rtl.def
parent6ff09968f1d0f5523b026701374f4a0386eb054c (diff)
downloadgcc-6e7a4706fdf5641516cd85b20d5ac9070a348e15.zip
gcc-6e7a4706fdf5641516cd85b20d5ac9070a348e15.tar.gz
gcc-6e7a4706fdf5641516cd85b20d5ac9070a348e15.tar.bz2
r110130@banpei: zack | 2006-01-22 14:52:43 -0800
r110130@banpei: zack | 2006-01-22 14:52:43 -0800 * rtl.def (match_code): Add second argument. * genpreds.c (write_extract_subexp): New function. (write_match_code): Add path argument. Use write_extract_subexp. (write_predicate_expr): Pass path to write_match_code. (mark_mode_tests): MATCH_CODE applied to a subexpression does not perform a mode test. * genrecog.c (compute_predicate_codes): MATCH_CODE applied to a subexpression does not constrain the top-level code set. * read-rtl.c (read_rtx_variadic): New function. (read_rtx_1): Use it; allow AND and IOR to be variadic. * doc/md.texi: Document new notation. * config/i386/predicates.md (cmpsi_operand_1): Fold into ... (cmpsi_operand): ... here, using new notation. From-SVN: r110126
Diffstat (limited to 'gcc/rtl.def')
-rw-r--r--gcc/rtl.def9
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/rtl.def b/gcc/rtl.def
index f9dd11e..8710f54 100644
--- a/gcc/rtl.def
+++ b/gcc/rtl.def
@@ -727,8 +727,13 @@ DEF_RTL_EXPR(MATCH_PAR_DUP, "match_par_dup", "iE", RTX_MATCH)
/* Appears only in define_predicate/define_special_predicate
expressions. Evaluates true only if the operand has an RTX code
- from the set given by the argument (a comma-separated list). */
-DEF_RTL_EXPR(MATCH_CODE, "match_code", "s", RTX_MATCH)
+ from the set given by the argument (a comma-separated list). If the
+ second argument is present and nonempty, it is a sequence of digits
+ and/or letters which indicates the subexpression to test, using the
+ same syntax as genextract/genrecog's location strings: 0-9 for
+ XEXP (op, n), a-z for XVECEXP (op, 0, n); each character applies to
+ the result of the one before it. */
+DEF_RTL_EXPR(MATCH_CODE, "match_code", "ss", RTX_MATCH)
/* Appears only in define_predicate/define_special_predicate
expressions. The argument is a C expression to be injected at this