mn10300-opts.h: New.
authorJoseph Myers <joseph@codesourcery.com>
Tue, 22 Mar 2011 22:41:52 +0000 (22:41 +0000)
committerJoseph Myers <jsm28@gcc.gnu.org>
Tue, 22 Mar 2011 22:41:52 +0000 (22:41 +0000)
* config/mn10300/mn10300-opts.h: New.
* config/mn10300/mn10300.c (mn10300_processor,
mn10300_tune_string): Remove.
(mn10300_handle_option): Don't assert that global structures are
in use.  Access mn10300_processor via opts pointer.  Don't handle
OPT_mtune_ here.
* config/mn10300/mn10300.h (enum processor_type): Move to
mn10300-opts.h.
(mn10300_processor): Remove.
* config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
HeaderInclude entry.
(mn10300_processor): New Variable entry.
(mtune=): Use Var.

From-SVN: r171323

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

index 21dee109a1669949a62c2b098ad52a6a5b716df0..0e9d61dd2f68cdf1d6e5e33bdcd9312c72eb518c 100644 (file)
@@ -1,3 +1,19 @@
+2011-03-22  Joseph Myers  <joseph@codesourcery.com>
+
+       * config/mn10300/mn10300-opts.h: New.
+       * config/mn10300/mn10300.c (mn10300_processor,
+       mn10300_tune_string): Remove.
+       (mn10300_handle_option): Don't assert that global structures are
+       in use.  Access mn10300_processor via opts pointer.  Don't handle
+       OPT_mtune_ here.
+       * config/mn10300/mn10300.h (enum processor_type): Move to
+       mn10300-opts.h.
+       (mn10300_processor): Remove.
+       * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
+       HeaderInclude entry.
+       (mn10300_processor): New Variable entry.
+       (mtune=): Use Var.
+
 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
 
        * config/microblaze/microblaze.c: Don't include opts.h.
diff --git a/gcc/config/mn10300/mn10300-opts.h b/gcc/config/mn10300/mn10300-opts.h
new file mode 100644 (file)
index 0000000..888fd20
--- /dev/null
@@ -0,0 +1,32 @@
+/* Definitions for option handling for Matsushita MN10300 series.
+   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
+   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 MN10300_OPTS_H
+#define MN10300_OPTS_H
+
+enum processor_type
+{
+  PROCESSOR_MN10300,
+  PROCESSOR_AM33,
+  PROCESSOR_AM33_2,
+  PROCESSOR_AM34
+};
+
+#endif
index cae3ea1fb529ca44668e718394c73d885deb54c7..cad6a0dbbb4af1522d9c6593b524e38ca25195a3 100644 (file)
    symbol names from register names.  */
 int mn10300_protect_label;
 
-/* The selected processor.  */
-enum processor_type mn10300_processor = PROCESSOR_DEFAULT;
-
-/* Processor type to select for tuning.  */
-static const char * mn10300_tune_string = NULL;
-
 /* Selected processor type for tuning.  */
 enum processor_type mn10300_tune_cpu = PROCESSOR_DEFAULT;
 
@@ -91,35 +85,28 @@ static int cc_flags_for_code(enum rtx_code);
 /* Implement TARGET_HANDLE_OPTION.  */
 
 static bool
-mn10300_handle_option (struct gcc_options *opts, struct gcc_options *opts_set,
+mn10300_handle_option (struct gcc_options *opts,
+                      struct gcc_options *opts_set ATTRIBUTE_UNUSED,
                       const struct cl_decoded_option *decoded,
                       location_t loc ATTRIBUTE_UNUSED)
 {
   size_t code = decoded->opt_index;
-  const char *arg = decoded->arg;
   int value = decoded->value;
 
-  gcc_assert (opts == &global_options);
-  gcc_assert (opts_set == &global_options_set);
-
   switch (code)
     {
     case OPT_mam33:
-      mn10300_processor = value ? PROCESSOR_AM33 : PROCESSOR_MN10300;
+      opts->x_mn10300_processor = value ? PROCESSOR_AM33 : PROCESSOR_MN10300;
       return true;
 
     case OPT_mam33_2:
-      mn10300_processor = (value
-                          ? PROCESSOR_AM33_2
-                          : MIN (PROCESSOR_AM33, PROCESSOR_DEFAULT));
+      opts->x_mn10300_processor = (value
+                                  ? PROCESSOR_AM33_2
+                                  : MIN (PROCESSOR_AM33, PROCESSOR_DEFAULT));
       return true;
 
     case OPT_mam34:
-      mn10300_processor = (value ? PROCESSOR_AM34 : PROCESSOR_DEFAULT);
-      return true;
-
-    case OPT_mtune_:
-      mn10300_tune_string = arg;
+      opts->x_mn10300_processor = (value ? PROCESSOR_AM34 : PROCESSOR_DEFAULT);
       return true;
 
     default:
index 2e97ca4ff4c426942db2e1b5dcdebb763cf1369d..ac23f5858617df55a1f48a2bdacbd6bdac41efd2 100644 (file)
@@ -1,7 +1,7 @@
 /* Definitions of target machine for GNU compiler.
    Matsushita MN10300 series
    Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-   2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+   2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
    Contributed by Jeff Law (law@cygnus.com).
 
    This file is part of GCC.
     }                                          \
   while (0)
 
-enum processor_type
-{
-  PROCESSOR_MN10300,
-  PROCESSOR_AM33,
-  PROCESSOR_AM33_2,
-  PROCESSOR_AM34
-};
+#ifndef MN10300_OPTS_H
+#include "config/mn10300/mn10300-opts.h"
+#endif
 
-extern enum processor_type mn10300_processor;
 extern enum processor_type mn10300_tune_cpu;
 
 #define TARGET_AM33    (mn10300_processor >= PROCESSOR_AM33)
index 8909d8bd1f3d02b3c073b64c41c1526330179fa2..676e434e0ef19e6a4a5662ccff56fbda9ac7d3f5 100644 (file)
 ; along with GCC; see the file COPYING3.  If not see
 ; <http://www.gnu.org/licenses/>.
 
+HeaderInclude
+config/mn10300/mn10300-opts.h
+
+; The selected processor.
+Variable
+enum processor_type mn10300_processor = PROCESSOR_DEFAULT
+
 mam33
 Target
 Target the AM33 processor
@@ -31,7 +38,7 @@ Target Report
 Target the AM34 processor
 
 mtune=
-Target RejectNegative Joined
+Target RejectNegative Joined Var(mn10300_tune_string)
 Tune code for the given processor
 
 mmult-bug