aboutsummaryrefslogtreecommitdiff
path: root/gcc/read-md.c
diff options
context:
space:
mode:
authorRichard Sandiford <rdsandiford@googlemail.com>2010-06-10 20:24:17 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2010-06-10 20:24:17 +0000
commit8f4fe86cd10bfe5e02237768c40b258b0e668abf (patch)
tree7c7c84950cd4b41af7efd6b64db9e7e3cfb1f188 /gcc/read-md.c
parent24609606bd4dec8c2cf5f8eaa82c44f67f4f5f6e (diff)
downloadgcc-8f4fe86cd10bfe5e02237768c40b258b0e668abf.zip
gcc-8f4fe86cd10bfe5e02237768c40b258b0e668abf.tar.gz
gcc-8f4fe86cd10bfe5e02237768c40b258b0e668abf.tar.bz2
md.texi (define_enum_attr): Document.
gcc/ * doc/md.texi (define_enum_attr): Document. * rtl.def (DEFINE_ENUM_ATTR): New rtx. * read-md.h (lookup_enum_type): Declare. * read-md.c (lookup_enum_type): New function. * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR. * genattrtab.c (attr_desc): Add an enum_name field. (evaluate_eq_attr): Take the associated attribute as argument. Get the enum prefix from the enum_name field, if defined. Use ACONCAT rather than a fixed-length buffer. Update recursive calls. (simplify_test_exp): Pass attr to evaluate_eq_attr. (add_attr_value): New function, split out from... (gen_attr): ...here. Handle DEFINE_ENUM_ATTR. (write_test_expr): Pass attr to evaluate_eq_attr. (write_attr_get): Use the enum_name as the enum tag, if defined. (write_attr_valueq): Use the enum_name as a prefix, if defined. (find_attr): Initialize enum_name. (main): Handle DEFINE_ENUM_ATTR. * gensupport.c (process_rtx): Likewise. * config/mips/mips.h (mips_tune_attr): Delete. * config/mips/mips.md (cpu): Use define_attr_enum. From-SVN: r160581
Diffstat (limited to 'gcc/read-md.c')
-rw-r--r--gcc/read-md.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/read-md.c b/gcc/read-md.c
index 90707b3..9c62291 100644
--- a/gcc/read-md.c
+++ b/gcc/read-md.c
@@ -847,6 +847,14 @@ handle_enum (int lineno, bool md_p)
}
}
+/* Try to find the definition of the given enum. Return null on failure. */
+
+struct enum_type *
+lookup_enum_type (const char *name)
+{
+ return (struct enum_type *) htab_find (enum_types, &name);
+}
+
/* For every enum definition, call CALLBACK with two arguments:
a pointer to the constant definition and INFO. Stop when CALLBACK
returns zero. */