Go to file
Richard Sandiford 08d0963a0e configure.ac (mips*-*-*linux*, [...]): Use mt-mips-gnu.
* 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-08-09 19:08:15 +00:00
INSTALL
boehm-gc - checkin threads.mk.in. 2008-07-18 10:37:22 +00:00
config configure.ac (mips*-*-*linux*, [...]): Use mt-mips-gnu. 2008-08-09 19:08:15 +00:00
contrib check_makefile_deps.sh: New file. 2008-07-14 18:40:35 +00:00
fixincludes Makefile.tpl ($(srcdir)/configure): Update dependencies. 2008-06-17 23:13:35 +00:00
gcc configure.ac (mips*-*-*linux*, [...]): Use mt-mips-gnu. 2008-08-09 19:08:15 +00:00
gnattools configure.ac: Do not generate libada-mk. 2008-08-01 08:18:13 +00:00
include safe-ctype.h: Add #include of ctype.h before redefining the ctype.h macros. 2008-07-07 17:08:21 +00:00
intl Makefile.tpl ($(srcdir)/configure): Update dependencies. 2008-06-17 23:13:35 +00:00
libada Makefile.in: generate s-oscons.ads again, previous change was unneeded. 2008-08-08 14:23:48 +02:00
libcpp re PR preprocessor/36649 (-H option doesn't work as expected) 2008-07-31 21:12:14 +02:00
libdecnumber Makefile.tpl ($(srcdir)/configure): Update dependencies. 2008-06-17 23:13:35 +00:00
libffi ffi.c (ffi_prep_closure_loc): Turn INSN into an unsigned int. 2008-07-16 13:57:35 +00:00
libgcc config.host: Match more processor names for Xtensa. 2008-08-06 16:03:03 +00:00
libgfortran re PR fortran/36132 (_gfortran_internal_pack on optional arguments) 2008-07-27 12:45:44 +02:00
libgomp re PR ada/15479 (Ada manual problems) 2008-07-30 05:28:53 +00:00
libiberty pex-win32.c (argv_to_argc): New function. 2008-08-07 13:30:14 -06:00
libjava StackTrace2.java: Rewrite to prevent spurious failure when some methods are inlined. 2008-08-07 14:19:15 +00:00
libmudflap Makefile.tpl ($(srcdir)/configure): Update dependencies. 2008-06-17 23:13:35 +00:00
libobjc Makefile.in: Ignore missing ../boehm-gc/threads.mk. 2008-07-18 16:30:04 +00:00
libssp Makefile.tpl ($(srcdir)/configure): Update dependencies. 2008-06-17 23:13:35 +00:00
libstdc++-v3 Revert fix for libstdc++/35637, thanks to other/36901. 2008-08-09 15:58:52 +00:00
maintainer-scripts crontab: Remove 4.1 snapshots job. 2008-07-04 15:58:14 +01:00
zlib Makefile.tpl ($(srcdir)/configure): Update dependencies. 2008-06-17 23:13:35 +00:00
ABOUT-NLS
COPYING COPYING, [...]: Sync from upstream sources. 2005-07-14 01:08:13 +00:00
COPYING.LIB Update COPYING.LIB from upstream. Correct last Changelog. 2005-07-14 01:41:54 +00:00
COPYING3 COPYING_v3: New file. 2007-07-17 08:37:53 +00:00
COPYING3.LIB COPYING_v3: New file. 2007-07-17 08:37:53 +00:00
ChangeLog configure.ac (mips*-*-*linux*, [...]): Use mt-mips-gnu. 2008-08-09 19:08:15 +00:00
ChangeLog.tree-ssa
MAINTAINERS fix typo 2008-07-28 19:50:50 +00:00
Makefile.def configure.ac: Add makefile fragments for hpux. 2008-07-30 12:17:17 +00:00
Makefile.in configure.ac: Add makefile fragments for hpux. 2008-07-30 12:17:17 +00:00
Makefile.tpl configure.ac: Add makefile fragments for hpux. 2008-07-30 12:17:17 +00:00
README
README.SCO * README.SCO: Update the URL. 2005-05-08 17:49:46 +00:00
compile compile: Make executable. 2008-02-01 00:06:00 +00:00
config-ml.in config-ml.in: don't handle --enable-shared and --enable-static. 2008-05-14 17:15:51 +00:00
config.guess * config.sub, config.guess: Update from upstream sources. 2008-04-14 19:31:06 +10:00
config.rpath * config.rpath: Add AIX 6 support. 2008-03-13 14:55:20 -04:00
config.sub * config.sub, config.guess: Update from upstream sources. 2008-04-14 19:31:06 +10:00
configure configure.ac (mips*-*-*linux*, [...]): Use mt-mips-gnu. 2008-08-09 19:08:15 +00:00
configure.ac configure.ac (mips*-*-*linux*, [...]): Use mt-mips-gnu. 2008-08-09 19:08:15 +00:00
depcomp top level: 2005-06-13 08:26:05 +00:00
install-sh COPYING, [...]: Sync from upstream sources. 2005-07-14 01:08:13 +00:00
libtool-ldflags re PR bootstrap/31906 ("-Xcompiler" is inserted after "-Xlinker" when building libstdc++) 2007-09-20 10:20:05 +00:00
libtool.m4 backport: Deal with Autoconf 2.62's semantic change in m4_append. 2008-03-16 06:47:18 +00:00
ltgcc.m4 [multiple changes] 2007-05-31 06:40:42 +00:00
ltmain.sh ltmain.sh: Fix Darwin verstring, remove ${wl}. 2007-05-25 21:26:27 +02:00
ltoptions.m4 ltmain.sh: Update from ToT Libtool. 2007-05-24 16:37:27 +00:00
ltsugar.m4 backport: Deal with Autoconf 2.62's semantic change in m4_append. 2008-03-16 06:47:18 +00:00
ltversion.m4 ltmain.sh: Update from ToT Libtool. 2007-05-24 16:37:27 +00:00
lt~obsolete.m4 lt~obsolete.m4: New. 2007-07-05 10:36:59 -07:00
missing COPYING, [...]: Sync from upstream sources. 2005-07-14 01:08:13 +00:00
mkdep
mkinstalldirs COPYING, [...]: Sync from upstream sources. 2005-07-14 01:08:13 +00:00
move-if-change Import from Autoconf sources: 2005-11-21 13:21:37 +11:00
symlink-tree COPYING, [...]: Sync from upstream sources. 2005-07-14 01:08:13 +00:00
ylwrap COPYING, [...]: Sync from upstream sources. 2005-07-14 01:08:13 +00:00

README

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the file COPYING
for copying permission.  The manuals, and some of the runtime
libraries, are under different terms; see the individual source files
for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs.html for how to report bugs usefully.