Go to file
Richard Sandiford dbc90b6565 re PR target/34981 (Lazily-bound function called twice)
gcc/
	PR target/34981
	* config/mips/mips-protos.h (mips_expand_call): Return an rtx.
	* config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
	to GOT_VERSION_REGNUM.
	(CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
	(EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
	* config/mips/mips.c (mips_emit_call_insn): New function.
	(mips_call_tls_get_addr): Call mips_expand_call directly.
	(mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
	emit_call_insn.
	(mips16_build_call_stub): Likewise.  Return the call insn or null.
	(mips_expand_call): Update the call to mips16_build_call_stub
	accordingly and a remove redundant condition.  Assert that MIPS16
	stubs do not use lazy binding.  Use mips_emit_call_insn and return
	the call insn.
	(mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
	TARGET_USE_GOT.
	(mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
	(mips_avoid_hazard): Remove hazard_set handling.
	* config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
	(UNSPEC_RESTORE_GP): ...this.
	(UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
	(FAKE_CALL_REGNO): Rename to...
	(GOT_VERSION_REGNUM): ...this.
	(type): Add "ghost" value.  Add an associated insn reservation.
	(hazard_set): Remove.
	(exception_receiver): Rename to...
	(restore_gp): ...this and update the unspec identifier accordingly.
	(exception_receiver, nonlocal_got_receiver): New expanders.
	(load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
	FAKE_CALL_REGNO.  Remove hazard_set attribute.
	(set_got_version, update_got_version): New patterns.

gcc/testsuite/
	PR target/34981
	* gcc.target/mips/lazy-binding-1.c: New test.
	* gcc.target/mips/mips.exp (setup_mips_tests): Set
	mips_forced_no_abicalls and mips_forced_no_shared.
	(dg-mips-options): Avoid using -mabicalls with an implicit -mabi=eabi.
	Avoid using small data with -mabicalls.  Don't make -G0 force
	-mn-abicalls.  Skip -mabicalls and -mshared tests if the multilib
	forces the opposite option.

From-SVN: r131860
2008-01-26 10:22:14 +00:00
INSTALL
boehm-gc * configure: Regenerate. 2008-01-24 11:31:24 -05:00
config configure.ac (--enable-linux-futex): Add new configure option. 2008-01-08 17:14:49 +01:00
contrib MAINTAINERS (c4x port): Remove. 2008-01-25 20:49:04 +00:00
fixincludes Clarify the second argument usage for "c-fix"-es. 2008-01-15 19:44:03 +00:00
gcc re PR target/34981 (Lazily-bound function called twice) 2008-01-26 10:22:14 +00:00
gnattools re PR ada/34284 (Missing dynamic library support for GNAT 4.3.0 on x86-*-Darwin8) 2007-12-05 14:34:48 +00:00
include floatformat.h (struct floatformat): Add split_half field. 2007-11-08 00:08:02 +00:00
intl
libada
libcpp re PR preprocessor/34692 (Internal error with pragma in macro) 2008-01-25 10:01:27 +01:00
libdecnumber decCommonSymbols.h: Commit. 2008-01-25 18:47:12 +00:00
libffi * configure: Regenerate. 2008-01-24 11:32:40 -05:00
libgcc MAINTAINERS (c4x port): Remove. 2008-01-25 20:49:04 +00:00
libgfortran Fix date. 2008-01-25 23:36:39 +00:00
libgomp re PR middle-end/33880 (ICE: in extract_omp_for_data, at omp-low.c:162) 2008-01-25 13:54:42 +01:00
libiberty cplus-dem.c (demangle_function_name): Changed to return value indicating if a name was correctly demangled. 2008-01-23 16:04:03 +11:00
libjava * resource/gnu/classpath/tools/native2ascii/messages.properties 2008-01-24 18:31:50 +00:00
libmudflap * configure: Regenerate. 2008-01-24 11:30:08 -05:00
libobjc * configure: Regenerate. 2008-01-24 11:28:13 -05:00
libssp * configure: Regenerate. 2008-01-24 11:33:29 -05:00
libstdc++-v3 * configure: Regenerate. 2008-01-24 11:25:09 -05:00
maintainer-scripts update_web_docs_libstdcxx_svn: "docs" dir moved to "doc". 2008-01-21 21:04:00 +00:00
zlib * configure: Regenerate. 2008-01-24 11:27:14 -05:00
ABOUT-NLS
COPYING
COPYING.LIB
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 MAINTAINERS (c4x port): Remove. 2008-01-25 20:49:04 +00:00
ChangeLog.tree-ssa
MAINTAINERS MAINTAINERS (c4x port): Remove. 2008-01-25 20:49:04 +00:00
Makefile.def Makefile.def (dependencies): Make configure-gdb depend on all-intl. 2007-10-23 15:53:18 +00:00
Makefile.in Makefile.tpl (CFLAGS_FOR_TARGET): Add -g. 2007-12-13 09:30:49 +00:00
Makefile.tpl Makefile.tpl (CFLAGS_FOR_TARGET): Add -g. 2007-12-13 09:30:49 +00:00
README
README.SCO
compile
config-ml.in config-ml.in: Remove 64bit configure tests. 2007-12-02 13:27:37 +00:00
config.guess * config.sub, config.guess: Update from upstream sources. 2008-01-23 13:37:40 +11:00
config.rpath
config.sub * config.sub, config.guess: Update from upstream sources. 2008-01-23 13:37:40 +11:00
configure configure.ac: Change required MPFR from 2.2.0 -> 2.2.1. 2007-12-17 21:28:51 +00:00
configure.ac configure.ac: Change required MPFR from 2.2.0 -> 2.2.1. 2007-12-17 21:28:51 +00:00
depcomp
install-sh
libtool-ldflags re PR bootstrap/31906 ("-Xcompiler" is inserted after "-Xlinker" when building libstdc++) 2007-09-20 10:20:05 +00:00
libtool.m4 * libtool.m4: Backport AIX 6 support from ToT Libtool. 2008-01-24 11:21:00 -05:00
ltgcc.m4 [multiple changes] 2007-05-31 06:40:42 +00:00
ltmain.sh
ltoptions.m4
ltsugar.m4
ltversion.m4
lt~obsolete.m4 lt~obsolete.m4: New. 2007-07-05 10:36:59 -07:00
missing
mkdep
mkinstalldirs
move-if-change
symlink-tree
ylwrap

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.