genattr.c (write_upcase, [...]): Move to ...
authorJoern Rennecke <joern.rennecke@embecosm.com>
Mon, 25 Jul 2011 21:32:56 +0000 (21:32 +0000)
committerJoern Rennecke <amylaar@gcc.gnu.org>
Mon, 25 Jul 2011 21:32:56 +0000 (22:32 +0100)
        * genattr.c (write_upcase, gen_attr <enum definition writing>):
        Move to ...
        * genattr-common.c ... here.
        (main): Call gen_attr.
        * optc-gen.awk: Make generated program include insn-attr-common.h .
        * Makefile.in (oprions.o): Depend on insn-attr-common.h

From-SVN: r176769

gcc/ChangeLog
gcc/Makefile.in
gcc/genattr-common.c
gcc/genattr.c
gcc/optc-gen.awk

index 6e16c954935036e5f780b746bb26e8d4f25089fc..421fcee2efa0cff142664625514adf60f0cd484d 100644 (file)
@@ -1,3 +1,12 @@
+2011-07-25  Joern Rennecke  <joern.rennecke@embecosm.com>
+
+       * genattr.c (write_upcase, gen_attr <enum definition writing>):
+       Move to ...
+       * genattr-common.c ... here.
+       (main): Call gen_attr.
+       * optc-gen.awk: Make generated program include insn-attr-common.h .
+       * Makefile.in (oprions.o): Depend on insn-attr-common.h
+
 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
 
        * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
index e6d17171bcc977f464346e2513b8b828f9a3722c..7a5c176065fbea8d156868fa6c2fcc60c5f7057a 100644 (file)
@@ -2257,7 +2257,7 @@ s-options-h: optionlist $(srcdir)/opt-functions.awk $(srcdir)/opt-read.awk \
        $(STAMP) $@
 
 options.o: options.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
-       $(TM_H) $(OPTS_H) intl.h $(OPTIONS_C_EXTRA)
+       $(TM_H) $(OPTS_H) intl.h $(OPTIONS_C_EXTRA) insn-attr-common.h
 
 options-save.o: options-save.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TARGET_H) $(FLAGS_H) \
        $(TM_H) $(OPTS_H) intl.h $(OPTIONS_C_EXTRA)
index bc7e1bba993e3f17971eaf5fdf7b29341d2977f9..d219fd1e613e58396173605d439aeea901720456 100644 (file)
@@ -30,6 +30,36 @@ along with GCC; see the file COPYING3.  If not see
 #include "read-md.h"
 #include "gensupport.h"
 
+static void
+write_upcase (const char *str)
+{
+  for (; *str; str++)
+    putchar (TOUPPER(*str));
+}
+
+static void
+gen_attr (rtx attr)
+{
+  const char *p, *tag;
+
+  p = XSTR (attr, 1);
+  if (*p != '\0')
+    {
+      printf ("enum attr_%s {", XSTR (attr, 0));
+
+      while ((tag = scan_comma_elt (&p)) != 0)
+       {
+         write_upcase (XSTR (attr, 0));
+         putchar ('_');
+         while (tag != p)
+           putchar (TOUPPER (*tag++));
+         if (*p == ',')
+           fputs (", ", stdout);
+       }
+      fputs ("};\n", stdout);
+    }
+}
+
 int
 main (int argc, char **argv)
 {
@@ -57,6 +87,9 @@ main (int argc, char **argv)
       if (desc == NULL)
        break;
 
+      if (GET_CODE (desc) == DEFINE_ATTR)
+       gen_attr (desc);
+
       if (GET_CODE (desc) == DEFINE_DELAY)
         {
          if (!have_delay)
index 5df138ff8b0128bca9c787265f5507c8cf31cca6..34e710d429d3f50a24cad568fd08ad8ee6570217 100644 (file)
@@ -30,23 +30,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "gensupport.h"
 
 
-static void write_upcase (const char *);
 static void gen_attr (rtx);
 
-static void
-write_upcase (const char *str)
-{
-  for (; *str; str++)
-    putchar (TOUPPER(*str));
-}
-
 static VEC (rtx, heap) *const_attrs, *reservations;
 
 
 static void
 gen_attr (rtx attr)
 {
-  const char *p, *tag;
+  const char *p;
   int is_const = GET_CODE (XEXP (attr, 2)) == CONST;
 
   if (is_const)
@@ -65,23 +57,8 @@ gen_attr (rtx attr)
        printf ("extern int get_attr_%s (%s);\n", XSTR (attr, 0),
                (is_const ? "void" : "rtx"));
       else
-       {
-         printf ("enum attr_%s {", XSTR (attr, 0));
-
-         while ((tag = scan_comma_elt (&p)) != 0)
-           {
-             write_upcase (XSTR (attr, 0));
-             putchar ('_');
-             while (tag != p)
-               putchar (TOUPPER (*tag++));
-             if (*p == ',')
-               fputs (", ", stdout);
-           }
-         fputs ("};\n", stdout);
-
-         printf ("extern enum attr_%s get_attr_%s (%s);\n\n",
-                 XSTR (attr, 0), XSTR (attr, 0), (is_const ? "void" : "rtx"));
-       }
+       printf ("extern enum attr_%s get_attr_%s (%s);\n\n",
+               XSTR (attr, 0), XSTR (attr, 0), (is_const ? "void" : "rtx"));
     }
 
   /* If `length' attribute, write additional function definitions and define
index 519b1e9306c4c290c42b8abb9b33da328138c23f..71a03fbdcb6ed6aae2df6bd2c71ab6b789b6347a 100644 (file)
@@ -37,6 +37,7 @@ for (i = 1; i <= n_headers; i++)
        print "#include " quote headers[i] quote
 print "#include " quote "opts.h" quote
 print "#include " quote "intl.h" quote
+print "#include " quote "insn-attr-common.h" quote
 print ""
 
 if (n_extra_c_includes > 0) {