mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-24 18:55:57 +08:00
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
This commit is contained in:
parent
4923a23068
commit
e9276c3012
@ -1,3 +1,16 @@
|
||||
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
|
||||
|
@ -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
|
||||
|
@ -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. */
|
||||
|
||||
|
@ -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
|
||||
|
@ -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++) {
|
||||
|
@ -1,3 +1,9 @@
|
||||
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.
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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. */
|
||||
|
||||
|
@ -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. */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user