iq2000-opts.h: New.
authorJoseph Myers <joseph@codesourcery.com>
Tue, 22 Mar 2011 22:34:42 +0000 (22:34 +0000)
committerJoseph Myers <jsm28@gcc.gnu.org>
Tue, 22 Mar 2011 22:34:42 +0000 (22:34 +0000)
* config/iq2000/iq2000-opts.h: New.
* config/iq2000/iq2000.c: Don't include opts.h.
(iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
* config/iq2000/iq2000.h (enum processor_type, iq2000_tune):
Remove.
* config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
HeaderInclude entry.
(iq2000_tune): New Variable entry.
(march=): Add comment.  Use Enum.
(iq2000_arch): New Enum and EnumValue entries.
(mcpu=): Use Enum and Var.
(iq2000_tune): New Enum and EnumValue entries.

From-SVN: r171318

gcc/ChangeLog
gcc/config/iq2000/iq2000-opts.h [new file with mode: 0644]
gcc/config/iq2000/iq2000.c
gcc/config/iq2000/iq2000.h
gcc/config/iq2000/iq2000.opt

index e9c325ca287835e53e71928adf3286c6ef209289..ad50dd2914c337dadc47272daac3233ea0d266b0 100644 (file)
@@ -1,3 +1,18 @@
+2011-03-22  Joseph Myers  <joseph@codesourcery.com>
+
+       * config/iq2000/iq2000-opts.h: New.
+       * config/iq2000/iq2000.c: Don't include opts.h.
+       (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
+       * config/iq2000/iq2000.h (enum processor_type, iq2000_tune):
+       Remove.
+       * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
+       HeaderInclude entry.
+       (iq2000_tune): New Variable entry.
+       (march=): Add comment.  Use Enum.
+       (iq2000_arch): New Enum and EnumValue entries.
+       (mcpu=): Use Enum and Var.
+       (iq2000_tune): New Enum and EnumValue entries.
+
 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
 
        * config/ia64/ia64-opts.h: New.
diff --git a/gcc/config/iq2000/iq2000-opts.h b/gcc/config/iq2000/iq2000-opts.h
new file mode 100644 (file)
index 0000000..8cc44b6
--- /dev/null
@@ -0,0 +1,33 @@
+/* Definitions for option handling for Vitesse IQ2000 processors.
+   Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
+   Free Software Foundation, Inc.
+
+   This file is part of GCC.
+
+   GCC is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published
+   by the Free Software Foundation; either version 3, or (at your
+   option) any later version.
+
+   GCC is distributed in the hope that it will be useful, but WITHOUT
+   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+   License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with GCC; see the file COPYING3.  If not see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef IQ2000_OPTS_H
+#define IQ2000_OPTS_H
+
+/* Which processor to schedule for.  */
+
+enum processor_type
+{
+  PROCESSOR_DEFAULT,
+  PROCESSOR_IQ2000,
+  PROCESSOR_IQ10
+};
+
+#endif
index ca949e23a13af1b932831d86fe78516a2eaabcd7..2d6908545db39b2f14f85e75e547097c61c2f4f5 100644 (file)
@@ -45,7 +45,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "target-def.h"
 #include "langhooks.h"
 #include "df.h"
-#include "opts.h"
 
 /* Enumeration for all of the relational tests, so that we can build
    arrays indexed by the test type, and not worry about the order
@@ -112,9 +111,6 @@ struct GTY(()) machine_function
 /* List of all IQ2000 punctuation characters used by iq2000_print_operand.  */
 static char iq2000_print_operand_punct[256];
 
-/* The target cpu for optimization and scheduling.  */
-enum processor_type iq2000_tune;
-
 /* Which instruction set architecture to use.  */
 int iq2000_isa;
 
@@ -146,10 +142,6 @@ static enum machine_mode gpr_mode;
 \f
 /* Initialize the GCC target structure.  */
 static struct machine_function* iq2000_init_machine_status (void);
-static bool iq2000_handle_option      (struct gcc_options *,
-                                      struct gcc_options *,
-                                      const struct cl_decoded_option *,
-                                      location_t);
 static void iq2000_option_override    (void);
 static section *iq2000_select_rtx_section (enum machine_mode, rtx,
                                           unsigned HOST_WIDE_INT);
@@ -197,8 +189,6 @@ static const struct default_options iq2000_option_optimization_table[] =
 #define TARGET_EXPAND_BUILTIN          iq2000_expand_builtin
 #undef  TARGET_ASM_SELECT_RTX_SECTION
 #define TARGET_ASM_SELECT_RTX_SECTION  iq2000_select_rtx_section
-#undef  TARGET_HANDLE_OPTION
-#define TARGET_HANDLE_OPTION           iq2000_handle_option
 #undef  TARGET_OPTION_OVERRIDE
 #define TARGET_OPTION_OVERRIDE         iq2000_option_override
 #undef  TARGET_OPTION_OPTIMIZATION_TABLE
@@ -1438,41 +1428,6 @@ iq2000_init_machine_status (void)
   return ggc_alloc_cleared_machine_function ();
 }
 
-/* Implement TARGET_HANDLE_OPTION.  */
-
-static bool
-iq2000_handle_option (struct gcc_options *opts, struct gcc_options *opts_set,
-                     const struct cl_decoded_option *decoded,
-                     location_t loc ATTRIBUTE_UNUSED)
-{
-  size_t code = decoded->opt_index;
-  const char *arg = decoded->arg;
-
-  gcc_assert (opts == &global_options);
-  gcc_assert (opts_set == &global_options_set);
-
-  switch (code)
-    {
-    case OPT_mcpu_:
-      if (strcmp (arg, "iq10") == 0)
-       iq2000_tune = PROCESSOR_IQ10;
-      else if (strcmp (arg, "iq2000") == 0)
-       iq2000_tune = PROCESSOR_IQ2000;
-      else
-       return false;
-      return true;
-
-    case OPT_march_:
-      /* This option has no effect at the moment.  */
-      return (strcmp (arg, "default") == 0
-             || strcmp (arg, "DEFAULT") == 0
-             || strcmp (arg, "iq2000") == 0);
-
-    default:
-      return true;
-    }
-}
-
 /* Detect any conflicts in the switches.  */
 
 static void
index 7f69d2a12b912c79ba7dc85dd6088806aa993c07..62cddea444e18ebf2553dbe118b10d4e78ee9f57 100644 (file)
@@ -1,6 +1,6 @@
 /* Definitions of target machine for GNU compiler.  
    Vitesse IQ2000 processors
-   Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+   Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
    Free Software Foundation, Inc.
 
    This file is part of GCC.
@@ -609,15 +609,6 @@ enum delay_type
   DELAY_FCMP                           /* Delay after doing c.<xx>.{d,s}.  */
 };
 
-/* Which processor to schedule for.  */
-
-enum processor_type
-{
-  PROCESSOR_DEFAULT,
-  PROCESSOR_IQ2000,
-  PROCESSOR_IQ10
-};
-
 /* Recast the cpu class to be the cpu attribute.  */
 #define iq2000_cpu_attr ((enum attr_cpu) iq2000_tune)
 
@@ -850,9 +841,6 @@ enum processor_type
 #define SDATA_SECTION_ASM_OP   "\t.sdata"      /* Small data.  */
 
 \f
-/* The target cpu for optimization and scheduling.  */
-extern enum processor_type iq2000_tune;
-
 /* Which instruction set architecture to use.  */
 extern int iq2000_isa;
 
index 7ca61424f35767154e6cb2c28e6da0ce2b07db72..bfd8dcc43ca666819f3d9d2102d018f6f3fbf82d 100644 (file)
@@ -1,6 +1,6 @@
 ; Options for the Vitesse IQ2000 port of the compiler.
 
-; Copyright (C) 2005, 2007 Free Software Foundation, Inc.
+; Copyright (C) 2005, 2007, 2011 Free Software Foundation, Inc.
 ;
 ; This file is part of GCC.
 ;
 ; along with GCC; see the file COPYING3.  If not see
 ; <http://www.gnu.org/licenses/>.
 
+HeaderInclude
+config/iq2000/iq2000-opts.h
+
+; The target cpu for optimization and scheduling.
+Variable
+enum processor_type iq2000_tune
+
+; This option has no effect at the moment.
 march=
-Target RejectNegative Joined
+Target RejectNegative Joined Enum(iq2000_arch)
 Specify CPU for code generation purposes
 
+Enum
+Name(iq2000_arch) Type(int)
+
+EnumValue
+Enum(iq2000_arch) String(default) Value(0)
+
+EnumValue
+Enum(iq2000_arch) String(DEFAULT) Value(0)
+
+EnumValue
+Enum(iq2000_arch) String(iq2000) Value(0)
+
 mcpu=
-Target RejectNegative Joined
+Target RejectNegative Joined Enum(iq2000_tune) Var(iq2000_tune)
 Specify CPU for scheduling purposes
 
+Enum
+Name(iq2000_tune) Type(enum processor_type)
+Known IQ2000 CPUs (for use with the -mcpu= option):
+
+EnumValue
+Enum(iq2000_tune) String(iq10) Value(PROCESSOR_IQ10)
+
+EnumValue
+Enum(iq2000_tune) String(iq2000) Value(PROCESSOR_IQ2000)
+
 membedded-data
 Target Mask(EMBEDDED_DATA)
 Use ROM instead of RAM