iq2000-opts.h: New.

* 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
This commit is contained in:
Joseph Myers 2011-03-22 22:34:42 +00:00 committed by Joseph Myers
parent e6cc0c98cf
commit e24b8335fa
5 changed files with 82 additions and 61 deletions

View 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.

View File

@ -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

View 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;
/* 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

View 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. */
/* The target cpu for optimization and scheduling. */
extern enum processor_type iq2000_tune;
/* Which instruction set architecture to use. */
extern int iq2000_isa;

View 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.
;
@ -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