diff options
author | Richard Sandiford <rsandifo@nildram.co.uk> | 2007-09-23 19:18:27 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2007-09-23 19:18:27 +0000 |
commit | e9276c30128632a6578dcf011caddedda6acf48e (patch) | |
tree | 35186a5c4ab7dc036455934ac7d950724ff8fbef | |
parent | 4923a23068350b1db115d081b89800728f6241b2 (diff) | |
download | gcc-e9276c30128632a6578dcf011caddedda6acf48e.zip gcc-e9276c30128632a6578dcf011caddedda6acf48e.tar.gz gcc-e9276c30128632a6578dcf011caddedda6acf48e.tar.bz2 |
opth-gen.awk (target_flags_explicit): Declare.
gcc/
* opth-gen.awk (target_flags_explicit): Declare.
* toplev.h (target_flags_explicit): Delete declaration.
* toplev.c (target_flags): Likewise.
* config/mips/mips.h (mips_llsc_setting, mips_llsc): Delete.
(GENERATE_SYNC, GENERATE_LL_SC): Redefine using target_explicit_flags.
Never return true for TARGET_MIPS16.
* config/mips/mips.c (mips_llsc): Delete.
(mips_handle_option): Remove -mllsc handling.
(mips_strip_unspec_address): Tweak comment.
* config/mips/mips.opt (mllsc): Use a target mask.
gcc/testsuite/
* gcc.target/mips/gcc-have-sync-compare-and-swap-1.c: Don't expect
any of the macros to be defined for __mips16.
* gcc.target/mips/gcc-have-sync-compare-and-swap-2.c: Likewise.
From-SVN: r128699
-rw-r--r-- | gcc/ChangeLog | 13 | ||||
-rw-r--r-- | gcc/config/mips/mips.c | 12 | ||||
-rw-r--r-- | gcc/config/mips/mips.h | 21 | ||||
-rw-r--r-- | gcc/config/mips/mips.opt | 2 | ||||
-rw-r--r-- | gcc/opth-gen.awk | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-1.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-2.c | 4 | ||||
-rw-r--r-- | gcc/toplev.c | 6 | ||||
-rw-r--r-- | gcc/toplev.h | 2 |
10 files changed, 34 insertions, 35 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7dcbf72..639dc8e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,18 @@ 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk> + * opth-gen.awk (target_flags_explicit): Declare. + * toplev.h (target_flags_explicit): Delete declaration. + * toplev.c (target_flags): Likewise. + * config/mips/mips.h (mips_llsc_setting, mips_llsc): Delete. + (GENERATE_SYNC, GENERATE_LL_SC): Redefine using target_explicit_flags. + Never return true for TARGET_MIPS16. + * config/mips/mips.c (mips_llsc): Delete. + (mips_handle_option): Remove -mllsc handling. + (mips_strip_unspec_address): Tweak comment. + * config/mips/mips.opt (mllsc): Use a target mask. + +2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk> + * doc/tm.texi (POINTERS_EXTEND_UNSIGNED): Document extensions to word_mode as well as Pmode. diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index 5e939d1..e6b17a5 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -638,9 +638,6 @@ static GTY(()) int mips16_flipper; /* The -mtext-loads setting. */ enum mips_code_readable_setting mips_code_readable = CODE_READABLE_YES; -/* The -mllsc setting. */ -enum mips_llsc_setting mips_llsc = LLSC_DEFAULT; - /* The architecture selected by -mipsN. */ static const struct mips_cpu_info *mips_isa_info; @@ -5872,7 +5869,7 @@ mips_set_current_function (tree fndecl) /* Implement TARGET_HANDLE_OPTION. */ static bool -mips_handle_option (size_t code, const char *arg, int value) +mips_handle_option (size_t code, const char *arg, int value ATTRIBUTE_UNUSED) { switch (code) { @@ -5914,10 +5911,6 @@ mips_handle_option (size_t code, const char *arg, int value) return false; return true; - case OPT_mllsc: - mips_llsc = value ? LLSC_YES : LLSC_NO; - return true; - default: return true; } @@ -6545,8 +6538,7 @@ mips_strip_unspec_address (rtx op) '$' Print the name of the stack pointer register (sp or $29). '+' Print the name of the gp register (usually gp or $28). '~' Output a branch alignment to LABEL_ALIGN(NULL). - '|' Print .set push; .set mips2 if mips_llsc == LLSC_YES - && !ISA_HAS_LL_SC. + '|' Print .set push; .set mips2 if !ISA_HAS_LL_SC. '-' Print .set pop under the same conditions for '|'. */ void diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index 169779c..d401d55 100644 --- a/gcc/config/mips/mips.h +++ b/gcc/config/mips/mips.h @@ -121,14 +121,6 @@ enum mips_code_readable_setting { CODE_READABLE_YES }; - -/* Enumerates the setting of the -mllsc option. */ -enum mips_llsc_setting { - LLSC_DEFAULT, - LLSC_NO, - LLSC_YES -}; - #ifndef USED_FOR_TARGET extern char mips_print_operand_punct[256]; /* print_operand punctuation chars */ extern const char *current_function_file; /* filename current function is in */ @@ -153,7 +145,6 @@ extern const struct mips_cpu_info *mips_arch_info; extern const struct mips_cpu_info *mips_tune_info; extern const struct mips_rtx_cost_data *mips_cost; extern enum mips_code_readable_setting mips_code_readable; -extern enum mips_llsc_setting mips_llsc; #endif /* Macros to silence warnings about numbers being signed in traditional @@ -920,15 +911,19 @@ extern enum mips_llsc_setting mips_llsc; /* ISA includes sync. */ #define ISA_HAS_SYNC ((mips_isa >= 2 || TARGET_MIPS3900) && !TARGET_MIPS16) -#define GENERATE_SYNC (mips_llsc == LLSC_YES \ - || (mips_llsc == LLSC_DEFAULT && ISA_HAS_SYNC)) +#define GENERATE_SYNC \ + (target_flags_explicit & MASK_LLSC \ + ? TARGET_LLSC && !TARGET_MIPS16 \ + : ISA_HAS_SYNC) /* ISA includes ll and sc. Note that this implies ISA_HAS_SYNC because the expanders use both ISA_HAS_SYNC and ISA_HAS_LL_SC instructions. */ #define ISA_HAS_LL_SC (mips_isa >= 2 && !TARGET_MIPS16) -#define GENERATE_LL_SC (mips_llsc == LLSC_YES \ - || (mips_llsc == LLSC_DEFAULT && ISA_HAS_LL_SC)) +#define GENERATE_LL_SC \ + (target_flags_explicit & MASK_LLSC \ + ? TARGET_LLSC && !TARGET_MIPS16 \ + : ISA_HAS_LL_SC) /* Add -G xx support. */ diff --git a/gcc/config/mips/mips.opt b/gcc/config/mips/mips.opt index 05aedda..3a19d0a 100644 --- a/gcc/config/mips/mips.opt +++ b/gcc/config/mips/mips.opt @@ -181,7 +181,7 @@ Target Report RejectNegative Mask(MIPS3D) Use MIPS-3D instructions mllsc -Target Report +Target Report Mask(LLSC) Use ll, sc and sync instructions mlocal-sdata diff --git a/gcc/opth-gen.awk b/gcc/opth-gen.awk index 2026950..dbd0191 100644 --- a/gcc/opth-gen.awk +++ b/gcc/opth-gen.awk @@ -61,6 +61,7 @@ print "#ifndef OPTIONS_H" print "#define OPTIONS_H" print "" print "extern int target_flags;" +print "extern int target_flags_explicit;" print "" for (i = 0; i < n_opts; i++) { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4a0fb6d..ff03ded 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,11 @@ 2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk> + * gcc.target/mips/gcc-have-sync-compare-and-swap-1.c: Don't expect + any of the macros to be defined for __mips16. + * gcc.target/mips/gcc-have-sync-compare-and-swap-2.c: Likewise. + +2007-09-23 Richard Sandiford <rsandifo@nildram.co.uk> + * gcc.dg/vect/pr21591.c: Require vect_int. * gcc.dg/vect/vect-outer-2.c: Require vect_intfloat_cvt. * gcc.dg/vect/vect-outer-2a.c: Likewise. diff --git a/gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-1.c b/gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-1.c index b1c524b..72eff4d 100644 --- a/gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-1.c +++ b/gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-1.c @@ -9,7 +9,7 @@ #error nonono #endif -#ifndef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 +#if defined (__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) == defined (__mips16) #error nonono #endif diff --git a/gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-2.c b/gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-2.c index 25cd673..fed2b38 100644 --- a/gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-2.c +++ b/gcc/testsuite/gcc.target/mips/gcc-have-sync-compare-and-swap-2.c @@ -9,11 +9,11 @@ #error nonono #endif -#ifndef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 +#if defined (__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) == defined (__mips16) #error nonono #endif -#ifndef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 +#if defined (__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8) == defined (__mips16) #error nonono #endif diff --git a/gcc/toplev.c b/gcc/toplev.c index 0c4b638..8c6a68a 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -173,12 +173,6 @@ const char *dump_base_name; const char *aux_base_name; -/* Bit flags that specify the machine subtype we are compiling for. - Bits are tested using macros TARGET_... defined in the tm.h file - and set by `-m...' switches. Must be defined in rtlanal.c. */ - -extern int target_flags; - /* A mask of target_flags that includes bit X if X was set or cleared on the command line. */ diff --git a/gcc/toplev.h b/gcc/toplev.h index 749cf30..26a085d 100644 --- a/gcc/toplev.h +++ b/gcc/toplev.h @@ -113,8 +113,6 @@ extern const char *aux_info_file_name; extern const char *asm_file_name; extern bool exit_after_options; -extern int target_flags_explicit; - /* True if the user has tagged the function with the 'section' attribute. */ |