mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-25 03:44:04 +08:00
options.texi (NegativeAlias): Document.
* doc/options.texi (NegativeAlias): Document. (Alias): Mention NegativeAlias. * opt-functions.awk: Handle NegativeAlias. * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments. * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS. * opts.h (CL_NEGATIVE_ALIAS): Define. * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove. (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and OPT_mspe_. * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with Alias entries. * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use mno-spe and mno-isel instead of mspe=no and -misel=no. From-SVN: r171745
This commit is contained in:
parent
0fa4e35153
commit
666a21a299
@ -1,3 +1,20 @@
|
||||
2011-03-30 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* doc/options.texi (NegativeAlias): Document.
|
||||
(Alias): Mention NegativeAlias.
|
||||
* opt-functions.awk: Handle NegativeAlias.
|
||||
* optc-gen.awk: Disallow NegativeAlias with multiple Alias
|
||||
arguments.
|
||||
* opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
|
||||
* opts.h (CL_NEGATIVE_ALIAS): Define.
|
||||
* config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
|
||||
(rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
|
||||
OPT_mspe_.
|
||||
* config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
|
||||
Alias entries.
|
||||
* config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
|
||||
mno-spe and mno-isel instead of mspe=no and -misel=no.
|
||||
|
||||
2011-03-29 Mark Wielaard <mjw@redhat.com>
|
||||
|
||||
* common.opt (fdebug-types-section): New flag.
|
||||
|
@ -1082,7 +1082,6 @@ static bool rs6000_handle_option (struct gcc_options *, struct gcc_options *,
|
||||
const struct cl_decoded_option *,
|
||||
location_t);
|
||||
static int rs6000_loop_align_max_skip (rtx);
|
||||
static void rs6000_parse_yes_no_option (const char *, const char *, int *);
|
||||
static int first_altivec_reg_to_save (void);
|
||||
static unsigned int compute_vrsave_mask (void);
|
||||
static void compute_save_world_info (rs6000_stack_t *info_ptr);
|
||||
@ -3820,24 +3819,6 @@ rs6000_preferred_simd_mode (enum machine_mode mode)
|
||||
return word_mode;
|
||||
}
|
||||
|
||||
/* Handle generic options of the form -mfoo=yes/no.
|
||||
NAME is the option name.
|
||||
VALUE is the option value.
|
||||
FLAG is the pointer to the flag where to store a 1 or 0, depending on
|
||||
whether the option value is 'yes' or 'no' respectively. */
|
||||
static void
|
||||
rs6000_parse_yes_no_option (const char *name, const char *value, int *flag)
|
||||
{
|
||||
if (value == 0)
|
||||
return;
|
||||
else if (!strcmp (value, "yes"))
|
||||
*flag = 1;
|
||||
else if (!strcmp (value, "no"))
|
||||
*flag = 0;
|
||||
else
|
||||
error ("unknown -m%s= option specified: '%s'", name, value);
|
||||
}
|
||||
|
||||
/* Implement TARGET_OPTION_INIT_STRUCT. */
|
||||
|
||||
static void
|
||||
@ -4337,31 +4318,11 @@ rs6000_handle_option (struct gcc_options *opts, struct gcc_options *opts_set,
|
||||
TARGET_ALTIVEC_VRSAVE = value;
|
||||
break;
|
||||
|
||||
case OPT_mvrsave_:
|
||||
rs6000_explicit_options.vrsave = true;
|
||||
rs6000_parse_yes_no_option ("vrsave", arg, &(TARGET_ALTIVEC_VRSAVE));
|
||||
break;
|
||||
|
||||
case OPT_misel_:
|
||||
target_flags_explicit |= MASK_ISEL;
|
||||
isel = 0;
|
||||
rs6000_parse_yes_no_option ("isel", arg, &isel);
|
||||
if (isel)
|
||||
target_flags |= MASK_ISEL;
|
||||
else
|
||||
target_flags &= ~MASK_ISEL;
|
||||
break;
|
||||
|
||||
case OPT_mspe:
|
||||
rs6000_explicit_options.spe = true;
|
||||
rs6000_spe = value;
|
||||
break;
|
||||
|
||||
case OPT_mspe_:
|
||||
rs6000_explicit_options.spe = true;
|
||||
rs6000_parse_yes_no_option ("spe", arg, &(rs6000_spe));
|
||||
break;
|
||||
|
||||
case OPT_mdebug_:
|
||||
p = ASTRDUP (arg);
|
||||
rs6000_debug = 0;
|
||||
|
@ -1,6 +1,6 @@
|
||||
; Options for the rs6000 port of the compiler
|
||||
;
|
||||
; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Free Software
|
||||
; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
|
||||
; Foundation, Inc.
|
||||
; Contributed by Aldy Hernandez <aldy@quesejoda.com>.
|
||||
;
|
||||
@ -353,9 +353,13 @@ mvrsave
|
||||
Target Report Var(TARGET_ALTIVEC_VRSAVE) Save
|
||||
Generate VRSAVE instructions when generating AltiVec code
|
||||
|
||||
mvrsave=
|
||||
Target RejectNegative Joined
|
||||
-mvrsave=yes/no Deprecated option. Use -mvrsave/-mno-vrsave instead
|
||||
mvrsave=no
|
||||
Target RejectNegative Alias(mvrsave) NegativeAlias
|
||||
Deprecated option. Use -mno-vrsave instead
|
||||
|
||||
mvrsave=yes
|
||||
Target RejectNegative Alias(mvrsave)
|
||||
Deprecated option. Use -mvrsave instead
|
||||
|
||||
mblock-move-inline-limit=
|
||||
Target Report Var(rs6000_block_move_inline_limit) Init(0) RejectNegative Joined UInteger Save
|
||||
@ -365,9 +369,13 @@ misel
|
||||
Target Report Mask(ISEL) Save
|
||||
Generate isel instructions
|
||||
|
||||
misel=
|
||||
Target RejectNegative Joined
|
||||
-misel=yes/no Deprecated option. Use -misel/-mno-isel instead
|
||||
misel=no
|
||||
Target RejectNegative Alias(misel) NegativeAlias
|
||||
Deprecated option. Use -mno-isel instead
|
||||
|
||||
misel=yes
|
||||
Target RejectNegative Alias(misel)
|
||||
Deprecated option. Use -misel instead
|
||||
|
||||
mspe
|
||||
Target
|
||||
@ -377,9 +385,13 @@ mpaired
|
||||
Target Var(rs6000_paired_float) Save
|
||||
Generate PPC750CL paired-single instructions
|
||||
|
||||
mspe=
|
||||
Target RejectNegative Joined
|
||||
-mspe=yes/no Deprecated option. Use -mspe/-mno-spe instead
|
||||
mspe=no
|
||||
Target RejectNegative Alias(mspe) NegativeAlias
|
||||
Deprecated option. Use -mno-spe instead
|
||||
|
||||
mspe=yes
|
||||
Target RejectNegative Alias(mspe)
|
||||
Deprecated option. Use -mspe instead
|
||||
|
||||
mdebug=
|
||||
Target RejectNegative Joined
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Multilibs for e500
|
||||
#
|
||||
# Copyright (C) 2003 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2003, 2011 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is part of GCC.
|
||||
#
|
||||
@ -36,51 +36,51 @@ INSTALL_LIBGCC = install-multilib
|
||||
# -mcpu=7400 -maltivec -mabi=altivec
|
||||
# -mcpu=7400 -msoft-float
|
||||
# -msoft-float
|
||||
# -mspe=no -mabi=no-spe -misel=no
|
||||
# -mno-spe -mabi=no-spe -mno-isel
|
||||
# so we'll need to create exceptions later below.
|
||||
|
||||
MULTILIB_OPTIONS = mcpu=7400 \
|
||||
maltivec \
|
||||
mabi=altivec \
|
||||
msoft-float \
|
||||
mspe=no \
|
||||
mno-spe \
|
||||
mabi=no-spe \
|
||||
misel=no \
|
||||
mno-isel \
|
||||
mlittle
|
||||
|
||||
MULTILIB_DIRNAMES = mpc7400 altivec abi-altivec \
|
||||
nof no-spe no-abi-spe no-isel le
|
||||
|
||||
MULTILIB_EXCEPTIONS = maltivec mabi=altivec mspe=no mabi=no-spe misel=no \
|
||||
MULTILIB_EXCEPTIONS = maltivec mabi=altivec mno-spe mabi=no-spe mno-isel \
|
||||
maltivec/mabi=altivec \
|
||||
mcpu=7400/maltivec \
|
||||
mcpu=7400/mabi=altivec \
|
||||
*mcpu=7400/*mspe=no* \
|
||||
*mcpu=7400/*mno-spe* \
|
||||
*mcpu=7400/*mabi=no-spe* \
|
||||
*mcpu=7400/*misel=no* \
|
||||
*mcpu=7400/*mno-isel* \
|
||||
*maltivec/*msoft-float* \
|
||||
*maltivec/*mspe=no* \
|
||||
*maltivec/*mno-spe* \
|
||||
*maltivec/*mabi=no-spe* \
|
||||
*maltivec/*misel=no* \
|
||||
*maltivec/*mno-isel* \
|
||||
*mabi=altivec/*msoft-float* \
|
||||
*mabi=altivec/*mspe=no* \
|
||||
*mabi=altivec/*mno-spe* \
|
||||
*mabi=altivec/*mabi=no-spe* \
|
||||
*mabi=altivec/*misel=no* \
|
||||
*msoft-float/*mspe=no* \
|
||||
*mabi=altivec/*mno-isel* \
|
||||
*msoft-float/*mno-spe* \
|
||||
*msoft-float/*mabi=no-spe* \
|
||||
*msoft-float/*misel=no* \
|
||||
mspe=no/mabi=no-spe \
|
||||
mspe=no/misel=no \
|
||||
mabi=no-spe/misel=no \
|
||||
misel=no/mlittle \
|
||||
mabi=no-spe/misel=no/mlittle \
|
||||
mspe=no/mlittle \
|
||||
*msoft-float/*mno-isel* \
|
||||
mno-spe/mabi=no-spe \
|
||||
mno-spe/mno-isel \
|
||||
mabi=no-spe/mno-isel \
|
||||
mno-isel/mlittle \
|
||||
mabi=no-spe/mno-isel/mlittle \
|
||||
mno-spe/mlittle \
|
||||
mabi=spe/mlittle \
|
||||
mcpu=7400/mabi=altivec/mlittle \
|
||||
mcpu=7400/maltivec/mlittle \
|
||||
mabi=no-spe/mlittle \
|
||||
mspe=no/misel=no/mlittle \
|
||||
mspe=no/mabi=no-spe/mlittle \
|
||||
mno-spe/mno-isel/mlittle \
|
||||
mno-spe/mabi=no-spe/mlittle \
|
||||
mabi=altivec/mlittle \
|
||||
maltivec/mlittle \
|
||||
maltivec/mabi=altivec/mlittle
|
||||
|
@ -364,7 +364,8 @@ for later processing.
|
||||
@item Alias(@var{opt})
|
||||
@itemx Alias(@var{opt}, @var{arg})
|
||||
@itemx Alias(@var{opt}, @var{posarg}, @var{negarg})
|
||||
The option is an alias for @option{-@var{opt}}. In the first form,
|
||||
The option is an alias for @option{-@var{opt}} (or the negative form
|
||||
of that option, depending on @code{NegativeAlias}). In the first form,
|
||||
any argument passed to the alias is considered to be passed to
|
||||
@option{-@var{opt}}, and @option{-@var{opt}} is considered to be
|
||||
negated if the alias is used in negated form. In the second form, the
|
||||
@ -387,6 +388,13 @@ not need to handle it and no @samp{OPT_} enumeration value is defined
|
||||
for it; only the canonical form of the option will be seen in those
|
||||
places.
|
||||
|
||||
@item NegativeAlias
|
||||
For an option marked with @code{Alias(@var{opt})}, the option is
|
||||
considered to be an alias for the positive form of @option{-@var{opt}}
|
||||
if negated and for the negative form of @option{-@var{opt}} if not
|
||||
negated. @code{NegativeAlias} may not be used with the forms of
|
||||
@code{Alias} taking more than one argument.
|
||||
|
||||
@item Ignore
|
||||
This option is ignored apart from printing any warning specified using
|
||||
@code{Warn}. The option will not be seen by specs and no @samp{OPT_}
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Copyright (C) 2003, 2004, 2007, 2008, 2009, 2010
|
||||
# Copyright (C) 2003, 2004, 2007, 2008, 2009, 2010, 2011
|
||||
# Free Software Foundation, Inc.
|
||||
# Contributed by Kelley Cook, June 2004.
|
||||
# Original code from Neil Booth, May 2003.
|
||||
@ -90,6 +90,7 @@ function switch_flags (flags)
|
||||
test_flag("RejectDriver", flags, " | CL_REJECT_DRIVER") \
|
||||
test_flag("NoDriverArg", flags, " | CL_NO_DRIVER_ARG") \
|
||||
test_flag("SeparateAlias", flags, " | CL_SEPARATE_ALIAS") \
|
||||
test_flag("NegativeAlias", flags, " | CL_NEGATIVE_ALIAS") \
|
||||
test_flag("Save", flags, " | CL_SAVE") \
|
||||
test_flag("Joined", flags, " | CL_JOINED") \
|
||||
test_flag("JoinedOrMissing", flags, " | CL_JOINED | CL_MISSING_OK") \
|
||||
|
@ -362,6 +362,11 @@ for (i = 0; i < n_opts; i++) {
|
||||
print "#error Alias with single argument " \
|
||||
"allowing negative form"
|
||||
}
|
||||
if (alias_posarg != "" \
|
||||
&& flag_set_p("NegativeAlias", flags[i])) {
|
||||
print "#error Alias with multiple arguments " \
|
||||
"used with NegativeAlias"
|
||||
}
|
||||
|
||||
alias_opt = opt_enum(alias_opt)
|
||||
if (alias_posarg == "")
|
||||
|
@ -507,6 +507,7 @@ decode_cmdline_option (const char **argv, unsigned int lang_mask,
|
||||
{
|
||||
gcc_assert (option->alias_arg != NULL);
|
||||
gcc_assert (arg == NULL);
|
||||
gcc_assert (!(option->flags & CL_NEGATIVE_ALIAS));
|
||||
if (value)
|
||||
arg = option->alias_arg;
|
||||
else
|
||||
@ -517,9 +518,13 @@ decode_cmdline_option (const char **argv, unsigned int lang_mask,
|
||||
{
|
||||
gcc_assert (value == 1);
|
||||
gcc_assert (arg == NULL);
|
||||
gcc_assert (!(option->flags & CL_NEGATIVE_ALIAS));
|
||||
arg = option->alias_arg;
|
||||
}
|
||||
|
||||
if (option->flags & CL_NEGATIVE_ALIAS)
|
||||
value = !value;
|
||||
|
||||
opt_index = new_opt_index;
|
||||
option = new_option;
|
||||
|
||||
|
@ -115,6 +115,7 @@ extern const unsigned int cl_lang_count;
|
||||
#define CL_MISSING_OK (1U << 28) /* Missing argument OK (joined). */
|
||||
#define CL_UINTEGER (1U << 29) /* Argument is an integer >=0. */
|
||||
#define CL_UNDOCUMENTED (1U << 30) /* Do not output with --help. */
|
||||
#define CL_NEGATIVE_ALIAS (1U << 31) /* Alias to negative form of option. */
|
||||
|
||||
/* Flags for an enumerated option argument. */
|
||||
#define CL_ENUM_CANONICAL (1 << 0) /* Canonical for this value. */
|
||||
|
Loading…
Reference in New Issue
Block a user