aboutsummaryrefslogtreecommitdiff
path: root/gcc/rtl.def
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/rtl.def
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/rtl.def')
-rw-r--r--gcc/rtl.def6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/rtl.def b/gcc/rtl.def
index 8464d32..c4a3646 100644
--- a/gcc/rtl.def
+++ b/gcc/rtl.def
@@ -1198,6 +1198,12 @@ DEF_RTL_EXPR(DEFINE_INSN_RESERVATION, "define_insn_reservation", "sies", RTX_EXT
3rd operand: expression for the default value of the attribute. */
DEF_RTL_EXPR(DEFINE_ATTR, "define_attr", "sse", RTX_EXTRA)
+/* Definition of an insn attribute that uses an existing enumerated type.
+ 1st operand: name of the attribute
+ 2nd operand: the name of the enumerated type
+ 3rd operand: expression for the default value of the attribute. */
+DEF_RTL_EXPR(DEFINE_ENUM_ATTR, "define_enum_attr", "sse", RTX_EXTRA)
+
/* Marker for the name of an attribute. */
DEF_RTL_EXPR(ATTR, "attr", "s", RTX_EXTRA)