diff options
author | Joseph Myers <joseph@codesourcery.com> | 2011-03-22 22:50:03 +0000 |
---|---|---|
committer | Joseph Myers <jsm28@gcc.gnu.org> | 2011-03-22 22:50:03 +0000 |
commit | 05b12036e2747d540392008c6b177a6414e2e29d (patch) | |
tree | cd13e4afdcb28911eeb8c2e4fb51fe7a0e92297b | |
parent | dd51e35ac7251a9cac90c686790906945ce327d0 (diff) | |
download | gcc-05b12036e2747d540392008c6b177a6414e2e29d.zip gcc-05b12036e2747d540392008c6b177a6414e2e29d.tar.gz gcc-05b12036e2747d540392008c6b177a6414e2e29d.tar.bz2 |
score.c (score_handle_option): Don't assert that global structures are in use.
* config/score/score.c (score_handle_option): Don't assert that
global structures are in use. Access target_flags via opts
pointer. Use value of -march= option to determine target_flags
settings.
* config/score/score.opt (march=): Use Enum.
(score_arch): New Enum and EnumValue entries.
From-SVN: r171329
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/config/score/score.c | 29 | ||||
-rw-r--r-- | gcc/config/score/score.opt | 14 |
3 files changed, 29 insertions, 23 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 522d016..9e28d5d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,14 @@ 2011-03-22 Joseph Myers <joseph@codesourcery.com> + * config/score/score.c (score_handle_option): Don't assert that + global structures are in use. Access target_flags via opts + pointer. Use value of -march= option to determine target_flags + settings. + * config/score/score.opt (march=): Use Enum. + (score_arch): New Enum and EnumValue entries. + +2011-03-22 Joseph Myers <joseph@codesourcery.com> + * config/mep/mep.c (option_mtiny_specified): Remove. (mep_option_override): Move register handling for -mivc2 from mep_handle_option. Use global_options_set.x_mep_tiny_cutoff diff --git a/gcc/config/score/score.c b/gcc/config/score/score.c index ddb04cb..1c745f0 100644 --- a/gcc/config/score/score.c +++ b/gcc/config/score/score.c @@ -283,38 +283,25 @@ score_asm_file_end (void) /* Implement TARGET_HANDLE_OPTION. */ static bool -score_handle_option (struct gcc_options *opts, struct gcc_options *opts_set, +score_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; - - gcc_assert (opts == &global_options); - gcc_assert (opts_set == &global_options_set); + int value = decoded->value; switch (code) { case OPT_mscore7d: - target_flags &= ~(MASK_ALL_CPU_BITS); - target_flags |= MASK_SCORE7 | MASK_SCORE7D; + opts->x_target_flags &= ~(MASK_ALL_CPU_BITS); + opts->x_target_flags |= MASK_SCORE7 | MASK_SCORE7D; return true; case OPT_march_: - if (strcmp (arg, "score7") == 0) - { - target_flags &= ~(MASK_ALL_CPU_BITS); - target_flags |= MASK_SCORE7; - return true; - } - else if (strcmp (arg, "score7d") == 0) - { - target_flags &= ~(MASK_ALL_CPU_BITS); - target_flags |= MASK_SCORE7 | MASK_SCORE7D; - return true; - } - else - return false; + opts->x_target_flags &= ~(MASK_ALL_CPU_BITS); + opts->x_target_flags |= value; + return true; default: return true; diff --git a/gcc/config/score/score.opt b/gcc/config/score/score.opt index dc8cd35..292607c 100644 --- a/gcc/config/score/score.opt +++ b/gcc/config/score/score.opt @@ -1,6 +1,6 @@ ; Options for the Sunnorth port of the compiler. -; Copyright (C) 2005, 2007, 2010 Free Software Foundation, Inc. +; Copyright (C) 2005, 2007, 2010, 2011 Free Software Foundation, Inc. ; ; This file is part of GCC. ; @@ -43,5 +43,15 @@ Target RejectNegative Report Mask(SCORE7D) Support SCORE 7D ISA march= -Target RejectNegative Joined +Target RejectNegative Joined Enum(score_arch) Specify the name of the target architecture + +Enum +Name(score_arch) Type(int) +Known SCORE architectures (for use with the -march= option): + +EnumValue +Enum(score_arch) String(score7) Value(MASK_SCORE7) + +EnumValue +Enum(score_arch) String(score7d) Value(MASK_SCORE7 | MASK_SCORE7D) |