aboutsummaryrefslogtreecommitdiff
path: root/gcc/gensupport.c
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2015-08-05 15:46:02 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2015-08-05 15:46:02 +0000
commitd1427a17a7d98f096ee0b199ef8caf993c8f2e0e (patch)
treee2b87b455362f2a157c821a15173804ce016cdac /gcc/gensupport.c
parentba0ee63dfe37e08aef608039525304e919c18187 (diff)
downloadgcc-d1427a17a7d98f096ee0b199ef8caf993c8f2e0e.zip
gcc-d1427a17a7d98f096ee0b199ef8caf993c8f2e0e.tar.gz
gcc-d1427a17a7d98f096ee0b199ef8caf993c8f2e0e.tar.bz2
gensupport.h (get_c_test): Declare.
gcc/ * gensupport.h (get_c_test): Declare. * gensupport.c (get_c_test): New function. * genconditions.c (main): Use it. * genrecog.c (validate_pattern): Likewise. (match_pattern_1): Likewise. Remove c_test argument. (match_pattern): Update accordingly and remove c_test argument. (main): Update accordingly. From-SVN: r226634
Diffstat (limited to 'gcc/gensupport.c')
-rw-r--r--gcc/gensupport.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc/gensupport.c b/gcc/gensupport.c
index 714af03..6870058 100644
--- a/gcc/gensupport.c
+++ b/gcc/gensupport.c
@@ -2610,6 +2610,29 @@ get_num_insn_codes ()
return sequence_num;
}
+/* Return the C test that says whether definition rtx DEF can be used,
+ or "" if it can be used unconditionally. */
+
+const char *
+get_c_test (rtx x)
+{
+ switch (GET_CODE (x))
+ {
+ case DEFINE_INSN:
+ case DEFINE_EXPAND:
+ case DEFINE_SUBST:
+ return XSTR (x, 2);
+
+ case DEFINE_SPLIT:
+ case DEFINE_PEEPHOLE:
+ case DEFINE_PEEPHOLE2:
+ return XSTR (x, 1);
+
+ default:
+ return "";
+ }
+}
+
/* Helper functions for insn elision. */
/* Compute a hash function of a c_test structure, which is keyed