Commit Graph

321 Commits

Author SHA1 Message Date
Michael Hope
75ffafdc62 For Michael Hope.
2012-03-11  Michael Hope  <michael.hope@linaro.org>

       * longlong.h [ARM] (add_ssaaaa, sub_ddmmss, umul_ppmm): Enable
       for Thumb-2

From-SVN: r185202
2012-03-11 23:58:54 +00:00
Walter Lee
ef6c2c5316 Rename some internal atomic macros to have a less generic prefix.
From-SVN: r185074
2012-03-07 20:05:52 +00:00
Georg-Johann Lay
4e30d980cb re PR target/52507 ([avr]: movmem loop for __memx address space uses wrong loop label)
PR target/52507
	* config/avr/lib1funcs.S (__movmemx_hi): Fix loop label in RAM-part.

From-SVN: r185033
2012-03-07 10:39:42 +00:00
Georg-Johann Lay
611082257d re PR target/52505 ([avr]: __memx address space reading unintentionally from RAM)
libgcc/
	PR target/52505
	* config/avr/lib1funcs.S (__xload_1): Don't read unintentionally
	from RAM.

gcc/
	PR target/52505
	* config/avr/avr.c (avr_out_xload): Don't read unintentionally
	from RAM.
	* config/avr/avr.md (xload_8): Adjust insn length.

From-SVN: r185031
2012-03-07 10:36:30 +00:00
Georg-Johann Lay
b30e10aba7 re PR target/52461 ([avr] XMEGA+EBI: RAMPZ clobbered while reading from flash)
libgcc/
	PR target/52461
	PR target/52508
	* config/avr/lib1funcs.S (__do_copy_data): Clear RAMPZ after usage
	if RAMPZ affects reading from RAM.
	(__tablejump_elpm__): Ditto.
	(.xload): Ditto.
	(__movmemx_hi): Ditto.
	(__do_global_ctors): Right condition for RAMPZ usage is "have ELPM".
	(__do_global_dtors): Ditto.
	(__xload_1, __xload_2, __xload_3, __xload_4): Ditto.
	(__movmemx_hi): Ditto.
gcc/	
	PR target/52461
	* gcc/config/avr/avr.c (avr_out_lpm): Clear RAMPZ after usage
	if RAMPZ affects reading from RAM.

From-SVN: r185030
2012-03-07 10:33:19 +00:00
Richard Henderson
8993fde432 arm: Enable umull and ctz in longlong.h
* longlong.h [ARM] (umul_ppmm): Use umull for arm3m and later.
        [ARM] (count_trailing_zeros): Use the builtin.

From-SVN: r184957
2012-03-05 12:12:14 -08:00
Kai Tietz
b7633ee392 soft-fp: Imported from glibc upstream.
* soft-fp: Imported from glibc upstream.

From-SVN: r184760
2012-03-01 21:50:26 +01:00
Kai Tietz
fbd3340c7d sfp-machine.h (_FP_STRUCT_LAYOUT): Define it for mingw-targets as attribute gcc_struct.
* config/i386/sfp-machine.h (_FP_STRUCT_LAYOUT): Define it
        for mingw-targets as attribute gcc_struct.

From-SVN: r184641
2012-02-28 21:53:35 +01:00
Ian Lance Taylor
e9e053ebfd generic-morestack.c (__splitstack_releasecontext): Correct call to __morestack_release_segments.
* generic-morestack.c (__splitstack_releasecontext): Correct call
	to __morestack_release_segments.

From-SVN: r184634
2012-02-28 17:43:43 +00:00
Samuel Thibault
d80c632e19 re PR target/52390 (only linux uses nptl)
PR target/52390
	* generic-morestack.c (__generic_morestack_set_initial_sp): Test
	for __linux__ when removing signals from __morestack_fullmask.

From-SVN: r184606
2012-02-27 18:50:45 +00:00
Georg-Johann Lay
0253a8b165 re PR target/52261 ([avr] Add support for AVR Xmega cores)
PR target/52261
	* config/avr/lib1funcs.S (__AVR__XMEGA__): Fix tippo to __AVR_XMEGA__.

From-SVN: r184522
2012-02-23 19:26:00 +00:00
Ulrich Weigand
e10e461eef acinclude.m4: Use HAVE_INITFINI_ARRAY_SUPPORT instead of HAVE_INITFINI_ARRAY to work around...
gcc/
	* acinclude.m4: Use HAVE_INITFINI_ARRAY_SUPPORT instead of
	HAVE_INITFINI_ARRAY to work around namespace pollution in
	certain versions of newlib system headers.
	* config.in: Regenerate.
	* configure: Regenerate.
	* config/initfini-array.h: Use HAVE_INITFINI_ARRAY_SUPPORT
	instead of HAVE_INITFINI_ARRAY.

	libgcc/
	* config/ia64/crtbegin.S: Use HAVE_INITFINI_ARRAY_SUPPORT
	instead of HAVE_INITFINI_ARRAY.
	* config/ia64/crtend.S: Likewise.

From-SVN: r184503
2012-02-23 10:16:39 +00:00
Kai Tietz
d747037445 re PR libstdc++/52300 (Gthreads functions linking error at dynamic linking with libstdc++ when using MinGW.)
PR libstdc++/52300
       * gthr.h (GTHREAD_USE_WEAK): Define as zero for mingw.

From-SVN: r184406
2012-02-20 22:22:07 +01:00
Kai Tietz
0c0c63986e config.host (i686-*-mingw*): Set md_unwind_header only for dw2-mode to w32-unwind.h header.
* config.host (i686-*-mingw*): Set md_unwind_header only for dw2-mode
        to w32-unwind.h header.

From-SVN: r184405
2012-02-20 22:19:55 +01:00
Richard Sandiford
78c2726669 mips.c (mips_need_mips16_rdhwr_p): New variable.
gcc/
	* config/mips/mips.c (mips_need_mips16_rdhwr_p): New variable.
	(mips_get_tp): Set it.  Record that __mips16_rdhwr binds locally.
	(mips_start_unique_function, mips_output_mips16_rdhwr)
	(mips_code_end): New functions.
	(TARGET_ASM_CODE_END): Define.

libgcc/
	* config.host (mips64*-*-linux*, mipsisa64*-*-linux*)
	(mips*-*-linux*): Remove t-slibgcc-libgcc.
	* config/mips/t-mips16 (LIB1ASMFUNCS): Remove __mips16_rdhwr.
	* config/mips/mips16.S (__mips16_rdhwr): Delete.

From-SVN: r184380
2012-02-19 16:47:19 +00:00
Richard Sandiford
5adeb24686 mips.c (mips16_build_call_stub): Add CFI information to stubs with non-sibling calls.
gcc/
	* config/mips/mips.c (mips16_build_call_stub): Add CFI information
	to stubs with non-sibling calls.

libgcc/
	* config/mips/mips16.S (CALL_STUB_RET): Add CFI information.

From-SVN: r184379
2012-02-19 16:44:54 +00:00
Iain Sandoe
672ed3139a re PR libitm/52220 (FAIL: libitm.c++/eh-1.C execution test due to Xcode 4 weakref linker bug)
PR libitm/52220
	* config/darwin-crt-tm.c: Correct typo.

From-SVN: r184305
2012-02-16 09:46:31 +00:00
Iain Sandoe
e948a1fbd4 re PR libitm/52220 (FAIL: libitm.c++/eh-1.C execution test due to Xcode 4 weakref linker bug)
libitm/
2012-02-15  Iain Sandoe  <iains@gcc.gnu.org>
	    Patrick Marlier  <patrick.marlier@gmail.com>

	PR libitm/52220
	* alloc_cpp.cc: No dummy definitions for darwin.
	* eh_cpp.cc: Likewise.

libgcc/
2012-02-15  Iain Sandoe  <iains@gcc.gnu.org>
	    Patrick Marlier  <patrick.marlier@gmail.com>

	PR libitm/52220
	* config/darwin-crt-tm.c: Generate dummy functions.


Co-Authored-By: Patrick Marlier <patrick.marlier@gmail.com>

From-SVN: r184293
2012-02-15 23:39:28 +00:00
Iain Sandoe
6017aed304 re PR libitm/52042 (libitm.c/clone-1.c (all darwin) and libitm.c/stackundo.c (darwin 11) execution tests fail with -fpie)
2012-02-15  Iain Sandoe  <iains@gcc.gnu.org>
	    Patrick Marlier  <patrick.marlier@gmail.com>

	PR libitm/52042
	* config/darwin-crt-tm.c (getTMCloneTable): New function.
	(__doTMRegistrations): Call it.
	(__doTMdeRegistrations): Likewise. 


Co-Authored-By: Patrick Marlier <patrick.marlier@gmail.com>

From-SVN: r184281
2012-02-15 19:17:42 +00:00
Georg-Johann Lay
2da8c1adcf re PR target/52261 ([avr] Add support for AVR Xmega cores)
libgcc/
	PR target/52261
	* config/avr/lib1funcs.S (__prologue_saves__): Handle AVR_XMEGA
	(__epilogue_restores__): Ditto.

gcc/
	PR target/52261
	* config/avr/avr-devices.c (avr_arch_types): Add avrxmega2,
	avrxmega4, avrxmega5, avrxmega6, avrxmega7.
	Rewrite initializers for .macro.
	* config/avr/avr-mcus.def (AVR_MCU): Add known MCUs:
	avrxmega2: atxmega16a4, atxmega16d4, atxmega16x1, atxmega32a4
	atxmega32d4, atxmega32x1.
	avrxmega4: atxmega64a3, atxmega64d3.
	avrxmega5: atxmega64a1, atxmega64a1u.
	avrxmega6: atxmega128a3, atxmega128d3, atxmega192a3, atxmega192d3,
	atxmega256a3, atxmega256a3b, atxmega256a3bu, atxmega256d3.
	avrxmega7: atxmega128a1, atxmega128a1u.

	* config/avr/multilib.h: Regenerate.
	* config/avr/t-multilib: Regenerate.
	* config/avr/avr-tables.opt: Regenerate.

	* config/avr/avr.h (enum avr_arch): Add: ARCH_AVRXMEGA2,
	ARCH_AVRXMEGA4,	ARCH_AVRXMEGA5, ARCH_AVRXMEGA6, ARCH_AVRXMEGA7.
	(struct base_arch_s): Rename reserved to xmega_p.
	Rename reserved2 to have_rampd.
	(AVR_XMEGA): New define.
	(AVR_HAVE_RAMPD, AVR_HAVE_RAMPX, AVR_HAVE_RAMPY): New defines.
	(AVR_HAVE_RAMPZ): Change definition to fit xmega.

	* config/avr/predicates.md (io_address_operand): Take into
	account SFR offset.
	(low_io_address_operand): Ditto.
	(high_io_address_operand): Ditto.
	
	* config/avr/avr.md (isa): Add alternatives no_xmega, xmega.
	(enabled, movhi_sp_r): Use them.

	* config/avr/avr-c.c (avr_cpu_cpp_builtins): Use
	cpp_define_formatted to built-in define __AVR_ARCH__.
	(__AVR_XMEGA__): New built-in define.
	(__AVR_HAVE_RAMPD__): New built-in define.
	(__AVR_HAVE_RAMPX__): New built-in define.
	(__AVR_HAVE_RAMPY__): New built-in define.
	(__AVR_HAVE_RAMPZ__): Change condition when to built-in define it.

	* config/avr/avr.c (avr_addr_t): Add ccp, rampd, rampx, rampy.
	(avr_option_override): Initialize them.
	(sreg_rtx, rampd_rtx, rampx_rtx, rampy_rtx): New GTY rtx.
	(avr_init_expanders): Initialize them. No more block several calls.
	(emit_push_sfr): New static function.
	(avr_prologue_setup_frame): Use it to push SREG, RAMPD/X/Y/Z as needed.
	Handle AVR_XMEGA.
	(expand_epilogue): Handle AVR_XMEGA. Pop RAMPD/X/Y/Z as needed.
	(avr_print_operand): Print addreeses as symbols for
	RAMPX, RAMPY, RAMPD, CCP.
	(output_movhi): Handle AVR_XMEGA when writing to SP.
	(avr_out_movhi_mr_r_xmega): New static function.
	(out_movhi_mr_r): Forward to avr_out_movhi_mr_r_xmega for AVR_XMEGA.
	(avr_file_start): Print symbol defines for __RAMPX__,  __RAMPY__,
	__RAMPD__,  __CCP__ as needed.


Co-Authored-By: Anatoly Sokolov <aesok@post.ru>
Co-Authored-By: Eric Weddington <eric.weddington@atmel.com>

From-SVN: r184269
2012-02-15 13:15:56 +00:00
Eric Botcazou
0f952eb4cc re PR target/51921 (EH unwinding support is broken)
PR target/51921
	PR target/52205
	* config/sparc/sol2-unwind.h (sparc64_is_sighandler): Add support for
	Solaris 11 and slightly reformat.
	(sparc_is_sighandler): Likewise.

From-SVN: r184255
2012-02-15 08:13:09 +00:00
Walter Lee
dd552284fd Add ports for TILE-Gx and TILEPro.
.
	* MAINTAINERS (tilegx port): Add myself.
	(tilepro port): Add myself.

contrib
	* config-list.mk (LIST): Add tilegx-linux-gnu and
	tilepro-linux-gnu.
	* gcc_update (gcc/config/tilegx/mul-tables.c): New dependencies.
	(gcc/config/tilepro/mul-tables.c): New dependencies.

gcc
	* config.gcc: Handle tilegx and tilepro.
	* configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
	tilegx and tilepro.
	Add HAVE_AS_TLS check for tilegx and tilepro.
	* configure: Regenerate.
	* doc/contrib.texi: Add Mat Hostetter and self.
	* doc/extend.texi (TILE-Gx Built-in Functions): New node.
	Document instruction intrinsics and network accessing intrinsics.
	(TILEPro Built-in Functions): New node.	 Document instruction
	intrinsics and network accessing intrinsics.
	* doc/install.texi (Specific, tilegx-*-linux*): Document it.
	(Specific, tilepro-*-linux*): Likewise.
	* doc/invoke.texi (TILE-Gx Options): New section.
	(TILEPro Options): New section.
	* doc/md.texi (TILE-Gx): New section.
	(TILEPro): New section.
	* common/config/tilegx: New directory for tilegx.
	* common/config/tilepro: New directory for tilepro.
	* config/tilegx: New directory for tilegx.
	* config/tilepro: New directory for tilepro.

gcc/testsuite
	* g++.dg/other/PR23205.C: Disable test on tile.
	* g++.dg/other/pr23205-2.C: Disable test on tile.
	* gcc.dg/20020312-2.c: Add a condition for __tile__.
	* gcc.dg/20040813-1.c: Disable test on tile.
	* gcc.dg/lower-subreg-1.c: Disable test on tilegx.
	* gcc.misc-tests/linkage.exp: Handle tilegx.

libcpp
	* configure.ac: Require 64-bit hwint for tilegx and tilepro.
	* configure: Regenerate.

libgcc
	* config.host: Handle tilegx and tilepro.
	* config/tilegx: New directory for tilegx.
	* config/tilepro: New directory for tilepro.

libgomp
	* configure.tgt: Handle tilegx and tilepro.
	* config/linux/tile: New directory for tilegx and tilepro.

Added:
     trunk/gcc/common/config/tilegx/tilegx-common.c
     trunk/gcc/common/config/tilepro/tilepro-common.c
     trunk/gcc/config/tilegx/constraints.md
     trunk/gcc/config/tilegx/linux.h
     trunk/gcc/config/tilegx/mul-tables.c
     trunk/gcc/config/tilegx/predicates.md
     trunk/gcc/config/tilegx/sync.md
     trunk/gcc/config/tilegx/t-tilegx
     trunk/gcc/config/tilegx/tilegx-builtins.h
     trunk/gcc/config/tilegx/tilegx-c.c
     trunk/gcc/config/tilegx/tilegx-generic.md
     trunk/gcc/config/tilegx/tilegx-modes.def
     trunk/gcc/config/tilegx/tilegx-multiply.h
     trunk/gcc/config/tilegx/tilegx-protos.h
     trunk/gcc/config/tilegx/tilegx.c
     trunk/gcc/config/tilegx/tilegx.h
     trunk/gcc/config/tilegx/tilegx.md
     trunk/gcc/config/tilegx/tilegx.opt
     trunk/gcc/config/tilepro/constraints.md
     trunk/gcc/config/tilepro/gen-mul-tables.cc
     trunk/gcc/config/tilepro/linux.h
     trunk/gcc/config/tilepro/mul-tables.c
     trunk/gcc/config/tilepro/predicates.md
     trunk/gcc/config/tilepro/t-tilepro
     trunk/gcc/config/tilepro/tilepro-builtins.h
     trunk/gcc/config/tilepro/tilepro-c.c
     trunk/gcc/config/tilepro/tilepro-generic.md
     trunk/gcc/config/tilepro/tilepro-modes.def
     trunk/gcc/config/tilepro/tilepro-multiply.h
     trunk/gcc/config/tilepro/tilepro-protos.h
     trunk/gcc/config/tilepro/tilepro.c
     trunk/gcc/config/tilepro/tilepro.h
     trunk/gcc/config/tilepro/tilepro.md
     trunk/gcc/config/tilepro/tilepro.opt
     trunk/libgcc/config/tilegx/sfp-machine.h
     trunk/libgcc/config/tilegx/sfp-machine32.h
     trunk/libgcc/config/tilegx/sfp-machine64.h
     trunk/libgcc/config/tilegx/t-crtstuff
     trunk/libgcc/config/tilegx/t-softfp
     trunk/libgcc/config/tilegx/t-tilegx
     trunk/libgcc/config/tilepro/atomic.c
     trunk/libgcc/config/tilepro/atomic.h
     trunk/libgcc/config/tilepro/linux-unwind.h
     trunk/libgcc/config/tilepro/sfp-machine.h
     trunk/libgcc/config/tilepro/softdivide.c
     trunk/libgcc/config/tilepro/softmpy.S
     trunk/libgcc/config/tilepro/t-crtstuff
     trunk/libgcc/config/tilepro/t-tilepro
     trunk/libgomp/config/linux/tile/futex.h
Modified:
     trunk/MAINTAINERS
     trunk/contrib/config-list.mk
     trunk/contrib/gcc_update
     trunk/gcc/config.gcc
     trunk/gcc/configure
     trunk/gcc/configure.ac
     trunk/gcc/doc/contrib.texi
     trunk/gcc/doc/extend.texi
     trunk/gcc/doc/install.texi
     trunk/gcc/doc/invoke.texi
     trunk/gcc/doc/md.texi
     trunk/gcc/testsuite/g++.dg/other/PR23205.C
     trunk/gcc/testsuite/g++.dg/other/pr23205-2.C
     trunk/gcc/testsuite/gcc.dg/20020312-2.c
     trunk/gcc/testsuite/gcc.dg/20040813-1.c
     trunk/gcc/testsuite/gcc.dg/lower-subreg-1.c
     trunk/gcc/testsuite/gcc.misc-tests/linkage.exp
     trunk/libcpp/configure
     trunk/libcpp/configure.ac
     trunk/libgcc/config.host
     trunk/libgomp/configure.tgt

From-SVN: r184203
2012-02-14 10:02:21 +00:00
Jonathan Wakely
b59cbd5034 re PR libstdc++/51296 (Several 30_threads tests FAIL on Tru64 UNIX)
libgcc/

	PR libstdc++/51296
	PR libstdc++/51906
	* gthr-posix.h: Allow static initializer macros to be disabled.
	(__gthrw_pthread_cond_init): Define weak reference unconditionally.

libstdc++-v3/

	PR libstdc++/51296
	* include/std/mutex (__mutex_base::~__mutex_base): Declare noexcept.
	* src/c++11/condition_variable.cc (condition_variable): Use macro for
	initializer function.

	PR libstdc++/51906
	* config/os/bsd/darwin/os_defines.h: Disable static initializer for
	recursive mutexes.

From-SVN: r183955
2012-02-07 09:19:27 +00:00
Chung-Lin Tang
6caf807fba config.host (mips64*-*-linux*, [...]): Add t-slibgcc-libgcc to tmake_file.
libgcc/
2012-02-05  Chung-Lin Tang  <cltang@codesourcery.com>

	* config.host (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
	Add t-slibgcc-libgcc to tmake_file.
	* config/mips/libgcc-mips16.ver: Revert previous patch.
	* config/mips/mips16.S (__mips16_rdhwr): Hide.

From-SVN: r183912
2012-02-05 15:03:15 +00:00
Sumanth G
b25364a0b9 Adding GCC port for National Semicondutor's CR16 architecture
Co-Authored-By: Jayant R Sonar <jayant.sonar@kpitcummins.com>

From-SVN: r183832
2012-02-02 10:20:32 +00:00
Alan Modra
8ef03aa785 t-linux64: Delete.
* config/rs6000/t-linux64: Delete.  Move..
	* config/rs6000/t-ppc64-fp: ..softfp_wrap defines to here..
	* config/rs6000/t-linux: ..and libgcc flags to here.

From-SVN: r183491
2012-01-25 06:05:22 +10:30
Douglas Rupp
daecebc805 Interix resurrection
2012-01-22  Douglas B Rupp  <rupp@gnat.com>

	* <toplevel>/config/mh-interix: Remove as unneeded.
	* <toplevel>/config/picflag.m4 (i[[34567]]86-*-interix3*):
	Change triplet to i[[34567]]86-*-interix[[3-9]]*.

	* <toplevel>/configure.ac: Remove reference to mh-interix.
	* <toplevel>/configure: Regenerate.

	* <toplevel>/libada/configure: Regenerate.

	* <toplevel>libgcc/config.host (i[34567]86-*-interix3*):
	Change triplet to i[34567]86-*-interix[3-9]*.
	* <toplevel>/libgcc/configure: Regenerate.

	* <toplevel>/liberty/configure: Regenerate.

	* config.gcc: (i[34567]86-*-interix3*): Remove from obsolete
	configurations. Change triplet to i[34567]86-*-interix[3-9]*.
	(extra_options) interix.opt -> i386/interix.opt"
	(extra_objs):Add winnt-stubs.o
	* configure.ac: Add interix to target_os .comm on PE check.
	* configure: Regenerate.
	* config/interix3.h: Delete and move bits to..
	* config/interix.h: Delete and move bits to..
	* config/i386/i386-interix3.h: Delete and move bits to..
	* config/i386/i386-interix.h: ..here.
	(TARGET_CPU_DEFAULT): Remove redefinition.
	(TARGET_ASM_CONSTRUCTOR): Undefine.
	(SUBTARGET_SWITCHES): Define for ms-bitfields.
	(TARGET_OS_CPP_BUILTINS): Remove __OPENNT. Add __declspec.
	(PTRDIFF_TYPE): Define.
	(LONG_DOUBLE_TYPE_SIZE): Define.
	(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
	(SUBTARGET_OVERRIDE_OPTIONS): Remove.
	(TARGET_SECTION_TYPE_FLAGS): Define.
	(ASM_DECLARE_FUNCTION_NAME): Define.
	(ASM_OUTPUT_EXTERNAL): Define.
	(ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
	(ASM_OUTPUT_ALIGNED_BSS): Define.
	(PCC_BITFIELD_TYPE_MATTERS): Define.
	(USE_CONST_SECTION): Define.
	(SUBTARGET_ENCODE_SECTION_INFO): Remove.
	(TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
	(SUPPORTS_ONE_ONLY): Remove.
	(I386_PE_STRIP_ENCODING): Define.
	* config/interix.opt: Delete and move bits to..
	* config/i386/interix.opt: ..here. New.
	(mpe-aligned-commons): Add.
	* config/i386/t-interix: Add copyright header.
	(winnt-stubs.o): Add rule.

	* testsuite/gcc.dg/builtins-config.h: (HAVE_C99_RUNTIME):
	Do not define for Interix.

From-SVN: r183406
2012-01-23 06:25:28 +00:00
Ian Lance Taylor
9ffaf4bc3c morestack.S: Simplify CFI opcodes throughout.
* config/i386/morestack.S: Simplify CFI opcodes throughout.
(Forgot to commit ChangeLog entry with last change to morestack.S.)

From-SVN: r183281
2012-01-18 19:11:34 +00:00
Richard Sandiford
ddaf812593 mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
gcc/
2012-01-08  Chung-Lin Tang  <cltang@codesourcery.com>
	    Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
	(SYMBOL_32_HIGH): Likewise.
	(mips_output_tls_reloc_directive): Declare.
	* config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
	(mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
	* config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
	(mips_lo_relocs, mips_hi_relocs): Make extern.
	(mips16_stub_function): Move up file.
	(mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
	(mips_symbolic_constant_p): Likewise.  Remove SYMBOL_32_HIGH too.
	(mips_symbol_insns_1): Likewise.  Check mips_use_pcrel_pool_p.
	(mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead
	of SYMBOL_FORCE_TO_MEM.  Only check mips_tls_symbol_ref_1
	if it's false.
	(mips_get_tp): Add MIPS16 support.
	(mips_legitimize_tls_address): Remove MIPS16 sorry().
	Generalize DTPREL and TPREL handling.
	(mips_init_relocs): Initialize mips_use_pcrel_pool_p.
	Add MIPS16 TLS support.
	(mips_output_tls_reloc_directive): New function.
	(mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
	* config/mips/predicates.md (symbolic_operand_with_high)
	(tls_reloc_operand): New predicates.
	(force_to_mem_operand): Use mips_use_pcrel_pool_p.
	* config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
	(PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
	(*unshifted_high): New instruction.  Use it for MIPS16
	high splitter.
	(consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
	(*tls_get_tp_mips16_call_<mode>): Likewise.

gcc/testsuite/
	* gcc.target/mips/code-readable-2.c: Allow the jump table address
	to be loaded from the constant pool, rather than via %hi and %lo.

libgcc/
2012-01-08  Chung-Lin Tang  <cltang@codesourcery.com>
	    Richard Sandiford  <rdsandiford@googlemail.com>

	* config/mips/libgcc-mips16.ver (__mips16_rdhwr): Add.
	* config/mips/mips16.S (__mips16_rdhwr): New function.
	* config/mips/t-mips16 (LIB1ASMFUNCS): Add _m16rdhwr.

From-SVN: r183195
2012-01-15 18:22:55 +00:00
Nathan Sidwell
2cd8b32cb9 * libgcov.c (__gcov_init): Ignore objects with no functions.
From-SVN: r183103
2012-01-11 18:50:21 +00:00
Georg-Johann Lay
cba300dd7d re PR target/49868 (Implement named address space to place/access data in flash memory)
libgcc/
	PR target/49868
	Extend __pgmx semantics to linearize memory.
	* config/avr/t-avr (LIB1ASMFUNCS): Add _xload_1, _movmemx.
	* config/avr/lib1funcs.S (__xload_1): New function.
	(__movmemx_qi, __movmemx_hi): New functions.
	(__xload_2, __xload_3, __xload_4): Rewrite to fit new __pgmx
	semantics.

gcc/
	PR target/49868
	Extend __pgmx semantics to linearize memory.
	* config/avr/avr.md (mov<mode>): Use avr_xload_libgcc_p to
	determine if code comes inline or from libgcc.
	(MOVMEM_r_d:HI): Add "w" to constraint for better preference.
	(movmem_qi, movmem_qi): Set constraint #2 to "n".
	(movmem_qi_elpm, movmem_hi_elpm): Remove insns.
	(movmemx_qi, movmemx_hi): New insns.
	(xload_<mode>_libgcc): Rewrite to new insn condition.
	(xload_<mode>): Remove insns.
	* config/avr/avr.c (avr_out_xload): Rewrite: Only need to handle
	cases that don't satisfy avr_xload_libgcc_p().
	(avr_addr_space_convert): Allow converting in any direction.
	(avr_addr_space_subset_p): Return always true.
	(avr_xload_libgcc_p): Rewrite to fit new __pgmx semantics.
	(avr_emit_movmemhi): Ditto.
	(avr_out_lpm): No need to handle ADDR_SPACE_PGMX any more.
	(avr_out_movmem): Ditto.
	(AVR_SYMBOL_FLAG_PROGMEM): New macro.
	(AVR_SYMBOL_SET_ADDR_SPACE): New macro.
	(AVR_SYMBOL_GET_ADDR_SPACE): New macro.
	(avr_encode_section_info): Encode 'progmem' in symbol flags.
	(output_reload_in_const): Don't zero-extend any 24-bit symbols.

From-SVN: r183058
2012-01-10 09:42:10 +00:00
Eric Botcazou
3d137660a5 sol2-unwind.h (sparc64_is_sighandler): Check that the purported sigacthandler address isn't null before dereferencing it.
* config/sparc/sol2-unwind.h (sparc64_is_sighandler): Check that the
	purported sigacthandler address isn't null before dereferencing it.
	(sparc_is_sighandler): Likewise.

From-SVN: r183020
2012-01-09 18:20:55 +00:00
Eric Botcazou
bf4db96c93 re PR ada/41929 (64-bit null_pointer_deref1 gnat.dg test consumes all available memory)
PR ada/41929
	* config/sparc/sol2-unwind.h (sparc64_is_sighandler): Remove SAVPC and
	add CFA.  Revert back to old code for Solaris 8+ multi-threaded.
	(sparc_is_sighandler): Likewise.
	(MD_FALLBACK_FRAME_STATE_FOR): Adjust call to IS_SIGHANDLER.

From-SVN: r183005
2012-01-09 09:50:19 +00:00
Tristan Gingold
1ab3568bd5 t-ia64 (LIB1ASMFUNCS): Move backward compatibility thunks...
2012-01-06  Tristan Gingold  <gingold@adacore.com>

	* config/ia64/t-ia64 (LIB1ASMFUNCS): Move backward
	compatibility thunks...
	(CUSTOM_CRTSTUFF, crtbegin.o, crtend.o)
	(crtbeginS.o, crtendS.o): ... and these to ...
	* config/ia64/t-ia64-elf: ... this new file.
	* config.host (ia64*-*-elf*, ia64*-*-freebsd*, ia64*-*-linux*)
	(ia64*-*-hpux*): Add ia64/t-ia64-elf in tmake_file.

From-SVN: r182952
2012-01-06 13:43:03 +00:00
Andreas Krebbel
925b0ed821 re PR bootstrap/51734 (Bootstrap fails in libada)
config/
2012-01-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	PR bootstrap/51734
	* picflag.m4: Remove s390 case statement.

gcc/
2012-01-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* configure: Regenerate.

libada/
2012-01-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* configure: Regenerate.

libgcc/
2012-01-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* configure: Regenerate.
	* config/s390/t-crtstuff: Remove -fPIC.

libiberty/
2012-01-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* configure: Regenerate.

From-SVN: r182868
2012-01-04 11:41:06 +00:00
Jonathan Wakely
a99ad7372c re PR bootstrap/51006 (bootstrap fails on NetBSD 5.1)
2012-01-02  Jonathan Wakely  <jwakely.gcc@gmail.com>

	PR bootstrap/51006
	* enable-execute-stack-mprotect.c (getpagesize): Do not define
	for NetBSD.

From-SVN: r182860
2012-01-03 21:39:46 +00:00
Georg-Johann Lay
884f56d1e1 re PR target/51345 ([avr] Devices with 8-bit SP need their own multilib(s))
contrib/
	PR target/51345
	* gcc_update (files_and_dependencies): Add
	gcc/config/avr/t-multilib, gcc/config/avr/multilib.h.
	
libgcc/
	PR target/51345
	* config/avr/lib1funcs.S: Remove FIXME comments.
	(SPEED_DIV): Depend on __AVR_HAVE_8BIT_SP__.
gcc/	
	PR target/51345
	* config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
	(tmake_file target=avr): Add avr/t-multilib.

	* config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
	to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
	* config/avr/genmultilib.awk: New file.
	* config/avr/t-multilib: New auto-generated file.
	* config/avr/multilib.h: New auto-generated file.
	* config/avr/t-avr (AVR_MCUS): New variable.
	(genopt.sh): Use it.
	(s-mlib): Depend on t-multilib.
	(t-multilib, multilib.h): New dependencies.
	(s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
	(MULTILIB_OPTIONS): Remove.
	(MULTILIB_MATCHES): Remove.
	(MULTILIB_DIRNAMES): Remove.
	(MULTILIB_EXCEPTIONS): Remove:
	* config/avr/genopt.sh: Don't use hard coded file name;
	pass AVR_MCUS from t-avr instead.

From-SVN: r182797
2012-01-02 12:51:57 +00:00
Georg-Johann Lay
8c57e5473e Implement light-weight DImode support.
gcc/
	Implement light-weight DImode support.
	* config/avr/avr-dimode.md: New file.
	* config/avr/avr.md: Include it.
	(adjust_len): Add plus64, compare64.
	(HIDI): Remove code iterator.
	(code_stdname): New code attribute.
	(rotx, rotsmode): Remove DI.
	(rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
	as code iterator.
	* config/avr/avr-protos.h (avr_have_dimode): New.
	(avr_out_plus64, avr_out_compare64): New.
	* config/avr/avr.c (avr_out_compare): Handle DImode.
	(avr_have_dimode): New variable definition and initialization.
	(avr_out_compare64, avr_out_plus64): New functions.
	(avr_out_plus_1): Use simplify_unary_operation to negate xval.
	(adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
	(avr_compare_pattern): Skip DImode comparisons.

libgcc/
	Implement light-weight DImode support.
	* config/avr/t-avr (LIB1ASMFUNCS): Add _adddi3, _adddi3_s8,
	_subdi3, _cmpdi2, _cmpdi2_s8, _rotldi3.
	* config/avr/lib1funcs.S (__adddi3, __adddi3_s8, __subdi3,
	__cmpdi2, __cmpdi2_s8, __rotldi3): New functions.

From-SVN: r182794
2012-01-02 12:30:56 +00:00
Nathan Sidwell
04dbc287a6 libgcov.c (gcov_crc32): Remove global var.
* libgcov.c (gcov_crc32): Remove global var.
	(free_fn_data): New function.
	(buffer_fn_data): Pass in filename, more robust error recovery.
	(crc32_unsigned): New function.
	(gcov_exit): More robust detection of new program. More robust
	error recovery.
	(__gcov_init): Do not update program's crc here.

From-SVN: r182743
2011-12-30 18:08:56 +00:00
Ian Lance Taylor
c9312a37c6 * config/i386/morestack.S: Simplify CFI opcodes throughout.
From-SVN: r182609
2011-12-22 00:09:39 +00:00
Tristan Gingold
8e1d97d43b fde-vms.c (UNW_IVMS_MODE): Define.
2011-12-21  Tristan Gingold  <gingold@adacore.com>

	* config/ia64/fde-vms.c (UNW_IVMS_MODE): Define.

From-SVN: r182568
2011-12-21 08:52:47 +00:00
Ian Lance Taylor
a0c8d0c1e3 morestack.S (__morestack_non_split): If there is enough stack space already, don't split.
* config/i386/morestack.S (__morestack_non_split): If there is
	enough stack space already, don't split.  Ask for more stack space
	than we required.

From-SVN: r182555
2011-12-20 22:34:30 +00:00
Sergio Durigan Junior
6904889880 unwind-arm-common.inc: Include tconfig.h', tsystem.h' and `sys/sdt.h'.
2011-12-20  Sergio Durigan Junior  <sergiodj@redhat.com>

	* unwind-arm-common.inc: Include `tconfig.h', `tsystem.h' and
	`sys/sdt.h'.
	(_Unwind_DebugHook): New function.
	(uw_restore_core_regs): New define.
	(unwind_phase2): Use uw_restore_core_regs instead of
	restore_core_regs.
	(unwind_phase2_forced): Likewise.
	(__gnu_Unwind_Resume): Likewise.

From-SVN: r182552
2011-12-20 20:54:25 +00:00
Uros Bizjak
1bb4b6a35a linux-unwind.h: Update copyright years.
* config/alpha/linux-unwind.h: Update copyright years.
	(MD_FROB_UPDATE_CONTEXT): New define.
	(alpha_frob_update_context): New function.

From-SVN: r182522
2011-12-20 09:46:38 +01:00
Richard Sandiford
eb0287685d config.host (mips*-sde-elf*, [...]): Add to tmake_file rather replacing it.
libgcc/
	* config.host (mips*-sde-elf*, mipsisa64sr71k-*-elf*): Add to
	tmake_file rather replacing it.

From-SVN: r182431
2011-12-17 11:32:20 +00:00
Iain Sandoe
6a2045bfd3 rs6000.c (rs6000_emit_prologue): Move update of VRSave mask to save_world() when that is in use.
gcc:

	* config/rs6000/rs6000.c  (rs6000_emit_prologue): Move update of
	VRSave mask to save_world() when that is in use.

libgcc:

	* config/rs6000/darwin-world.S (toplevel): Make it clear that this
	function is not used for PPC64.  
	(save_world): Amend comments.  Update the VRsave mask to reflect the
	saved regs.
	(rest_world): Update comments, do not  clobber r10, do not use r8.
	(eh_rest_world_r10): Amend comments, do not use r8.
	(rest_world_eh_r7r8): Rename as local Lrest_world_eh_r7, since r8 is
	no longer used, move restore of CR and target address to the end of
	the routine.

From-SVN: r182376
2011-12-15 15:52:08 +00:00
H.J. Lu
a13780a666 Check __GLIBC__ when using __SIGRTMIN
2011-12-14  H.J. Lu  <hongjiu.lu@intel.com>

	* generic-morestack.c (__generic_morestack_set_initial_sp): Check
	__GLIBC__ instead of __linux__ when using __SIGRTMIN.

From-SVN: r182342
2011-12-14 10:49:16 -08:00
Georg-Johann Lay
d7288dfb9f re PR target/50931 ([avr] Support a 24-bit scalar integer mode)
libgcc/
	PR target/50931
	* config/avr/t-avr (LIB1ASMSRC): Add _mulpsi3, _mulsqipsi3.
	* config/avr/lib1funcs.S (__mulpsi3, __mulsqipsi3): New functions.
gcc/
	PR target/50931
	* config/avr/avr.md (mulpsi3): New expander.
	(*umulqihipsi3, *umulhiqipsi3): New insns.
	(*mulsqipsi3.libgcc, *mulpsi3.libgcc): New insns.
	(mulsqipsi3, *mulpsi3): New insn-and-splits.
	(ashlpsi3): Turn to expander.  Move insn code to...
	(*ashlpsi3): ...this new insn.
testsuite/
	PR target/50931
	* gcc.target/avr/torture/int24-mul.c: New testcase.

From-SVN: r182328
2011-12-14 10:00:56 +00:00
Eric Botcazou
8d2c862dfe * config/sparc/sol2-unwind.h: Use #ifdef directive consistently.
From-SVN: r182204
2011-12-11 11:23:15 +00:00
Georg-Johann Lay
3447cae6cc re PR target/49313 (Inefficient libgcc implementations for avr)
PR target/49313
	* config/avr/t-avr (LIB1ASMFUNCS): Add _muldi3.
	* config/avr/lib1funcs.S (__muldi3): New function.

From-SVN: r182160
2011-12-09 12:02:06 +00:00