* configure.ac (mips*-*-*linux*, mips*-*-gnu*): Use mt-mips-gnu.
* configure: Regenerate.
config/
* mt-mips16-compat: New file, taken from mt-mips-elfoabi.
* mt-mips-elfoabi: Include mt-mips16-compat.
* mt-mips-gnu: New file.
gcc/
* config.gcc (mips*-*-linux*, mips64*-*-linux*): Add
mips/t-libgcc-mips16 to tmake_file.
* config/mips/mips-protos.h (mips_call_type): New enum.
(mips_pic_base_register, mips_got_load): Declare.
(mips_restore_gp): Take an rtx argument.
(mips_use_pic_fn_addr_reg_p): Declare.
(mips_expand_call): Replace the sibcall_p argument with
a mips_call_type argument. Add a lazy_p parameter.
(mips_split_call): Declare.
* config/mips/mips.h (MIPS16_PIC_TEMP_REGNUM): New macro.
(MIPS16_PIC_TEMP): Likewise.
(reg_class): Delete M16_NA_REGS.
(REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
(SYMBOL_FLAG_BIND_NOW, SYMBOL_REF_BIND_NOW_P): New macros.
(mips_split_hi_p): Declare.
* config/mips/mips.c (mips_split_hi_p): New array.
(mips_regno_to_class): Change M16_NA_REGS entries to M16_REGS.
(mips_got_symbol_type_p): New function.
(mips_global_symbol_p): Check SYMBOL_REF_EXTERNAL_P.
(mips16_stub_function_p): New function.
(mips16_local_function_p): Likewise.
(mips_use_pic_fn_addr_reg_p): Likewise.
(mips_cannot_force_const_mem): Return false for HIGHs.
Extend CONST_INT and symbolic handling to MIPS16, using
mips_symbol_insns to check that the base symbol type is a
legitimate constant. Reject GOT-based constants if
TARGET_MIPS16_PCREL_LOADS.
(mips_const_insns): Check targetm.cannot_force_const_mem when
decomposing a symbolic base and a large offset.
(mips_emit_call_insn): Add ORIG_ADDR and ADDR parameters.
When calling a function that needs $25 from MIPS16 code,
move the target address into $25 separately and add a USE
to the call insn.
(mips16_gp_pseudo_reg): Insert the initializer immediately
before the first real insn.
(mips_pic_base_register, mips_got_load): New functions.
(mips_split_symbol): Generalize the name of the LO_SUM_OUT
parameter to LOW_OUT. Say that it can be any valid SET_SRC
when splitting a load-address operation. Split SYMBOL_GOT_DISP
constants and highs of SYMBOL_GOT_PAGE_OFST constants.
(mips_call_tls_get_addr): Update the call to mips_expand_call,
also passing NULL_RTX rather than const0_rtx as the aux argument.
(mips_rewrite_small_data_p): Check mips_lo_relocs and mips_split_p
instead of TARGET_EXPLICIT_RELOCS.
(mips_ok_for_lazy_binding_p): Check SYMBOL_REF_BIND_NOW_P.
(mips_load_call_address): Replace the sibcall_p argument with
a mips_call_type argument. Use mips_got_load.
(mips16_local_alias): New structure.
(mips16_local_aliases): New variable.
(mips16_local_aliases_hash): New function.
(mips16_local_aliases_eq): Likewise.
(mips16_local_alias): Likewise.
(mips16_stub_function): Likewise.
(mips16_build_function_stub): Create a local alias for the target
function. Handle TARGET_ABICALLS. For PIC abicalls, emit a
.cpload directive and an R_MIPS_NONE relocation for the target
function, then load the alias rather than the function itself.
Wrap the non-PIC abicalls version in ".option pic0/.option pic2".
(mips16_copy_fpr_return_value): Use mips16_stub_function and
mips_expand_call. Set SYMBOL_REF_BIND_NOW on the symbol.
(mips16_build_call_stub): Replace the FN parameter with an
FN_PTR parameter. Force the address into a register if it
isn't a call_insn_operand; don't rely on the caller to do this.
If a call to a locally-defined and locally-binding MIPS16
function must be made indirectly, redirect the call to the
function's local alias. Use mips16_stub_function_p,
mips16_stub_function, mips_expand_call and use_reg.
Set SYMBOL_FLAG_BIND_NOW on __mips_call_* symbols.
Use explicit %hi and %lo accesses where possible.
Use MIPS_CALL to generate the correct code form of a
jal instruction. Add clobbers of $18 instead of uses.
Update the call to mips_emit_call_insn.
(mips_expand_call): Replace the SIBCALL_P argument with a
mips_call_type argument and handle the new MIPS_CALL_EPILOGUE value.
Take a LAZY_P parameter. Call mips16_build_call_stub first,
allowing it to modify the call address. Update the calls to
mips_load_call_address and mips_emit_call_insn.
(mips_split_call): New function.
(mips_init_relocs): Clear mips_split_hi_p. Only use %gp_rel if
!TARGET_MIPS16. Split SYMBOL_GOT_DISP, and the high parts of
SYMBOL_GOT_PAGE_OFST, for MIPS16 code.
(mips_global_pointer): Check mips16_cfun_returns_in_fpr_p.
(mips_extra_live_on_entry): Include MIPS16_PIC_TEMP_REGNUM
if TARGET_MIPS16.
(mips_cprestore_slot): New function.
(mips_restore_gp): Take a TEMP parameter. Handle TARGET_MIPS16
and use mips_cprestore_slot.
(mips_output_function_prologue): Handle TARGET_MIPS16 for
LOADGP_OLDABI.
(mips_emit_loadgp): Move into MIPS16_PIC_TEMP for MIPS16,
then use a copygp_mips16 instruction to set up $28.
(mips_expand_prologue): Initialize the cprestore slot for MIPS16 too.
(mips16_lay_out_constants): Call split_all_insns_noflow.
(mips_reorg_process_insns): Explicitly set all_noreorder_p to
false if TARGET_MIPS16.
(mips_reorg): Don't call vr4130_align_insns if TARGET_MIPS16.
(mips_output_mi_thunk): Use mips_got_symbol_type_p. Use the
mips_dangerous_for_la25_p approach for MIPS16 PIC calls too.
(mips_set_mips16_mode): Always set MASK_EXPLICIT_RELOCS for
MIPS16 code. Allow MIPS16 o32 PIC.
(mips_override_options): Allow MIPS16 o32 PIC.
* config/mips/mips.md: Lower CONST_GP_P moves into register moves
after reload if TARGET_USE_GOT.
(UNSPEC_COPYGP): New constant.
(length): Use a default length of 8 for MIPS16 GOT loads.
(*got_disp<mode>): Check mips_split_p instead of TARGET_XGOT.
(*got_page<mode>): Check mips_split_hi_p.
(*got_disp<mode>, *got_page<mode>): Use mips_got_load.
(unspec_got<mode>, unspec_call<mode>): New expanders.
(load_got<mode>, load_call<mode>): Remove the length attributes.
Use a got attribute instead of a type attribute.
(copygp_mips16): New insn.
(restore_gp): Add a scratch clobber and pass it to mips_restore_gp.
(load_call<mode>): Use a "d" constraint instead of an "r" constraint.
(sibcall, sibcall_value, call, call_value): Update the calls
to mips_expand_call.
(call_internal, call_value_internal): Use mips_split_call.
(call_value_multiple_internal): Likewise.
(call_split): Move after call_internal (the insn it is split from).
(call_internal_direct, call_value_internal_direct): Turn into
define_insn_and_splits. Split if TARGET_SPLIT_CALLS.
(call_direct_split, call_value_direct_split): New patterns.
* config/mips/constraints.md (c): Handle TARGET_MIPS16 first
and use M16_REGS instead of M16_NA_REGS.
* config/mips/predicates.md (const_call_insn_operand): Replace
the TARGET_ABSOLUTE_ABICALLS-based check with a more general
mips_use_pic_fn_addr_reg_p check.
(move_operand): Reject HIGHs if mips_split_hi_p.
* config/mips/mips16.S: Assembly as empty if the ABI is not suitable.
(__mips16_floatunsisf): Inline __mips16_floatsisf.
(CALL_STUB_NO_RET, CALL_STUB_REG): Copy the target register to $25.
* config/mips/libgcc-mips16.ver: New file.
* config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Add
$(srcdir)/config/mips/libgcc-mips16.ver.
gcc/testsuite/
* lib/target-supports.exp (check_profiling_available): Return false
for -p and -pg on MIPS16 targets.
From-SVN: r138912
2008-07-25 Keith Seitz <keiths@redhat.com>
* acinclude.m4: Remove libide, libgui, and all the other Tcl
functions.
* tcl.m4: New file.
From-SVN: r138313
PR binutils/4334
* acx.m4 (ACX_CHECK_CYGWIN_CAT_WORKS): New macro to check that
cygwin builds are not running in textmode.
* configure.ac: Run ACX_XHEXK_CYGWIN_CAT_WORKS for cygwin hosted
builds.
* configure: Regenerate.
From-SVN: r133894
2008-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/32009
PR bootstrap/32161
* configure.ac (CFLAGS_FOR_TARGET, CXXFLAGS_FOR_TARGET): Compute here.
* configure: Regenerate.
* Makefile.def: Define stage_libcflags for all bootstrap stages.
* Makefile.tpl (STAGE1_LIBCFLAGS, STAGE2_LIBCFLAGS, STAGE3_LIBCFLAGS,
STAGE4_LIBCFLAGS): New.
(CFLAGS_FOR_TARGET, CXXFLAGS_FOR_TARGET): Subst from autoconf, without
$(SYSROOT_CFLAGS_FOR_TARGET) and $(DEBUG_PREFIX_CFLAGS_FOR_TARGET).
(BASE_TARGET_EXPORTS): Append them here to C{,XX}FLAGS.
(EXTRA_TARGET_FLAGS): Append them here to {LIB,}C{,XX}FLAGS.
(configure-stage[+id+]-[+prefix+][+module+]): Pass stage_libcflags
for target modules. Don't export LIBCFLAGS.
(all-stage[+id+]-[+prefix+][+module+]): Pass stage_libcflags; pass
$(BASE_FLAGS_TO_PASS) where [+args+] was passed, and [+args+] after
the overridden CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET.
(invocations of `all'): Replace $(TARGET_FLAGS_TO_PASS) with
$(EXTRA_TARGET_FLAGS), $(FLAGS_TO_PASS) with $(EXTRA_HOST_FLAGS).
* Makefile.in: Regenerate.
2008-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/32009
* mh-ppc-darwin (BOOT_CFLAGS): Reenable.
2008-02-20 Paolo Bonzini <bonzini@gnu.org>
* doc/install.texi: Correct references to CFLAGS, replacing them
with BOOT_CFLAGS. Document flags used during bootstrap for
target libraries.
From-SVN: r132479
config/:
2007-10-15 Maciej W. Rozycki <macro@linux-mips.org>
* tls.m4 (GCC_CHECK_TLS): Rename have_tls to gcc_cv_have_tls.
(GCC_CHECK_CC_TLS): Rename have_cc_tls to gcc_cv_have_cc_tls.
libgomp/:
2007-10-15 Maciej W. Rozycki <macro@linux-mips.org>
* configure: Regenerate following changes to ../config/tls.m4.
libjava/:
2007-10-15 Maciej W. Rozycki <macro@linux-mips.org>
* configure: Regenerate following changes to ../config/tls.m4.
libmudflap/:
2007-10-15 Maciej W. Rozycki <macro@linux-mips.org>
* configure: Regenerate following changes to ../config/tls.m4.
From-SVN: r129364
config/
* no-executables.m4 (GCC_TRY_COMPILE_OR_LINK): New function.
libstdc++-v3/
libstdc++/
* acinclude.m4 (GLIBCXX_ENABLE_C99): Temporarily add
-fno-exceptions to CXXFLAGS. Use GCC_TRY_COMPILE_OR_LINK.
Make the tests assign results to volatile variables. Use -lm
for link tests in GCC_TRY_COMPILE_OR_LINK. Fall back to
compile-only tests if -lm is not available.
* configure: Regenerate.
From-SVN: r128982
config/
Revert:
2007-10-02 Richard Sandiford <richard@codesourcery.com>
* no-executables.m4 (GCC_TRY_COMPILE_OR_LINK): New function.
libstdc++/
Revert:
2007-10-02 Richard Sandiford <richard@codesourcery.com>
* acinclude.m4 (GLIBCXX_ENABLE_C99): Temporarily add
-fno-exceptions to CXXFLAGS. Use GCC_TRY_COMPILE_OR_LINK.
Make the tests assign results to volatile variables.
* configure: Regenerate.
From-SVN: r128972
config/
* no-executables.m4 (GCC_TRY_COMPILE_OR_LINK): New function.
libstdc++/
* acinclude.m4 (GLIBCXX_ENABLE_C99): Temporarily add
-fno-exceptions to CXXFLAGS. Use GCC_TRY_COMPILE_OR_LINK.
Make the tests assign results to volatile variables.
* configure: Regenerate.
From-SVN: r128959
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
config/
2007-07-06 H.J. Lu <hongjiu.lu@intel.com>
* tls.m4 (GCC_CHECK_CC_TLS): New.
libgcc/
2007-07-06 H.J. Lu <hongjiu.lu@intel.com>
* config.host (tmake_file): Add t-tls for i[34567]86-*-linux*
and x86_64-*-linux*.
* config/t-tls: New file.
* Makefile.in (INTERNAL_CFLAGS): Add @set_have_cc_tls@.
* configure.ac: Include ../config/enable.m4 and
../config/tls.m4. Use GCC_CHECK_CC_TLS to check if assembler
supports TLS and substitute set_have_cc_tls.
* configure: Regenerated.
libbid/
2007-07-06 H.J. Lu <hongjiu.lu@intel.com>
Updated from Intel BID library:
* bid_conf.h (BID_THREAD): Defined only if both HAVE_CC_TLS
and USE_TLS are defined.
From-SVN: r126416
libgfortran:
2007-04-11 Kai Tietz <kai.tietz@onevision.com>
* configure: Regenerate.
libdecnumber:
2007-04-11 Kai Tietz <kai.tietz@onevision.com>
* configure: Regenerate.
config:
2007-04-11 Kai Tietz <kai.tietz@onevision.com>
* stdint.m4: Make template compatible with older cygwin
types.h, wrapping each type in a __XXX_t_defined #ifdef.
From-SVN: r123746
2007-03-26 H.J. Lu <hongjiu.lu@intel.com>
* acx.m4 (ACX_BUGURL): Set BUGURL first. Quote $BUGURL first
when setting REPORT_BUGS_TEXI.
From-SVN: r123218
ChangeLog:
* configure: Rebuilt.
config/ChangeLog:
* acx.m4 (NCN_STRICT_CHECK_TOOLS): Mark environment variable as
precious. Prefer it over a cached value. Use cached value
verbosely.
(NCN_STRICT_CHECK_TARGET_TOOLS): Likewise. Don't override
environment variable with build-time tools.
From-SVN: r122108