diff options
author | Richard Sandiford <richard@codesourcery.com> | 2007-09-07 07:37:38 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2007-09-07 07:37:38 +0000 |
commit | a318179e4ee3ba7c85fa9d9a7e29c44de86fa8ae (patch) | |
tree | 78825ebde82f0901c736de2aa59b465e6c062d60 /gcc/config/mips/mips.opt | |
parent | f7de3bd3fa17db45c94a8ac57631c0ad3d673ced (diff) | |
download | gcc-a318179e4ee3ba7c85fa9d9a7e29c44de86fa8ae.zip gcc-a318179e4ee3ba7c85fa9d9a7e29c44de86fa8ae.tar.gz gcc-a318179e4ee3ba7c85fa9d9a7e29c44de86fa8ae.tar.bz2 |
mt-sde (CFLAGS_FOR_TARGET): Add -mno-gpopt.
config/
* mt-sde (CFLAGS_FOR_TARGET): Add -mno-gpopt.
(CXXFLAGS_FOR_TARGET): Likewise.
gcc/
* doc/invoke.texi: Document the MIPS -mlocal-sdata, -mextern-sdata
and -mgpopt options. Adjust the -G documentation to match.
* config/mips/mips.opt (mextern-data, mgpopt, mlocal-data): New.
* config/mips/mips.c (mips_rtx_constant_in_small_data_p): New
function, split out from mips_classify_symbol. Return false for
!TARGET_LOCAL_SDATA.
(mips_classify_symbol): Call mips_rtx_constant_in_small_data_p.
Only use GP-relative accesses for non-pool symbols if TARGET_GPOPT.
(override_options): Check whether the -mgpopt setting is consistent
with the other flags.
(symbolic_expression_p): Delete.
(mips_select_rtx_section): Use mips_rtx_constant_in_small_data_p
and default_elf_select_rtx_section.
(mips_in_small_data_p): Honor section attributes for MIPS16 too.
Return false for local data unless TARGET_LOCAL_SDATA. Likewise
external data and TARGET_EXTERN_SDATA.
gcc/testsuite/
* gcc.dg/attr-alias-3.c: Use real asm for MIPS.
* gcc.target/mips/mips.exp (setup_mips_tests): Set mips_forced_gp
and mips_forced_no_er.
(dg-mips-options): Add -mno-abicalls when a small-data option is
specified. Skip tests with small-data options if mips_forced_gp.
Skip tests with -mexplicit-relocs if mips_forced_no_er.
* gcc.target/mips/sdata-1.c: New test.
* gcc.target/mips/sdata-2.c: Likewise.
* gcc.target/mips/sdata-3.c: Likewise.
* gcc.target/mips/sdata-4.c: Likewise.
From-SVN: r128230
Diffstat (limited to 'gcc/config/mips/mips.opt')
-rw-r--r-- | gcc/config/mips/mips.opt | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/config/mips/mips.opt b/gcc/config/mips/mips.opt index 7f60beb..80fd108 100644 --- a/gcc/config/mips/mips.opt +++ b/gcc/config/mips/mips.opt @@ -96,6 +96,10 @@ mexplicit-relocs Target Report Mask(EXPLICIT_RELOCS) Use NewABI-style %reloc() assembly operators +mextern-sdata +Target Report Var(TARGET_EXTERN_SDATA) Init(1) +Use -G for data that is not defined by the current object + mfix-r4000 Target Report Mask(FIX_R4000) Work around certain R4000 errata @@ -148,6 +152,10 @@ mgp64 Target Report RejectNegative Mask(64BIT) Use 64-bit general registers +mgpopt +Target Report Var(TARGET_GPOPT) Init(1) +Use GP-relative addressing to access small data + mhard-float Target Report RejectNegative InverseMask(SOFT_FLOAT_ABI, HARD_FLOAT_ABI) Allow the use of hardware floating-point ABI and instructions @@ -164,6 +172,10 @@ mips3d Target Report RejectNegative Mask(MIPS3D) Use MIPS-3D instructions +mlocal-sdata +Target Report Var(TARGET_LOCAL_SDATA) Init(1) +Use -G for object-local data + mlong-calls Target Report Var(TARGET_LONG_CALLS) Use indirect calls |