summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>2011-03-22 22:34:42 +0000
committerjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>2011-03-22 22:34:42 +0000
commit3263bbb3371f90ad5ec5050933b86d563e086c49 (patch)
tree721bc8237dce42ff74cdaa18ecd4ad4aa19e5222
parentc0bfee3dcc7ec7d396d28a6468db5b7cd5b10d5b (diff)
downloadgcc-3263bbb3371f90ad5ec5050933b86d563e086c49.tar.gz
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171318 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog15
-rw-r--r--gcc/config/iq2000/iq2000-opts.h33
-rw-r--r--gcc/config/iq2000/iq2000.c45
-rw-r--r--gcc/config/iq2000/iq2000.h14
-rw-r--r--gcc/config/iq2000/iq2000.opt36
5 files changed, 82 insertions, 61 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e9c325ca287..ad50dd2914c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,20 @@
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.
* config/ia64/ia64.c (ia64_tune): Remove.
(ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
diff --git a/gcc/config/iq2000/iq2000-opts.h b/gcc/config/iq2000/iq2000-opts.h
new file mode 100644
index 00000000000..8cc44b60741
--- /dev/null
+++ b/gcc/config/iq2000/iq2000-opts.h
@@ -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
diff --git a/gcc/config/iq2000/iq2000.c b/gcc/config/iq2000/iq2000.c
index ca949e23a13..2d6908545db 100644
--- a/gcc/config/iq2000/iq2000.c
+++ b/gcc/config/iq2000/iq2000.c
@@ -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;
/* 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
diff --git a/gcc/config/iq2000/iq2000.h b/gcc/config/iq2000/iq2000.h
index 7f69d2a12b9..62cddea444e 100644
--- a/gcc/config/iq2000/iq2000.h
+++ b/gcc/config/iq2000/iq2000.h
@@ -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. */
-/* The target cpu for optimization and scheduling. */
-extern enum processor_type iq2000_tune;
-
/* Which instruction set architecture to use. */
extern int iq2000_isa;
diff --git a/gcc/config/iq2000/iq2000.opt b/gcc/config/iq2000/iq2000.opt
index 7ca61424f35..bfd8dcc43ca 100644
--- a/gcc/config/iq2000/iq2000.opt
+++ b/gcc/config/iq2000/iq2000.opt
@@ -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.
;
@@ -18,14 +18,44 @@
; 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