aboutsummaryrefslogtreecommitdiff
path: root/libgcc
AgeCommit message (Collapse)AuthorFilesLines
2012-01-23Interix resurrectionDouglas Rupp3-3/+9
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-18morestack.S: Simplify CFI opcodes throughout.Ian Lance Taylor1-1/+5
* config/i386/morestack.S: Simplify CFI opcodes throughout. (Forgot to commit ChangeLog entry with last change to morestack.S.) From-SVN: r183281
2012-01-15mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.Richard Sandiford4-1/+24
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-11* libgcov.c (__gcov_init): Ignore objects with no functions.Nathan Sidwell2-1/+5
From-SVN: r183103
2012-01-10re PR target/49868 (Implement named address space to place/access data in ↵Georg-Johann Lay3-22/+153
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-09sol2-unwind.h (sparc64_is_sighandler): Check that the purported ↵Eric Botcazou2-6/+10
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-09re PR ada/41929 (64-bit null_pointer_deref1 gnat.dg test consumes all ↵Eric Botcazou2-41/+96
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-06t-ia64 (LIB1ASMFUNCS): Move backward compatibility thunks...Tristan Gingold4-23/+35
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-04re PR bootstrap/51734 (Bootstrap fails in libada)Andreas Krebbel3-4/+6
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-03re PR bootstrap/51006 (bootstrap fails on NetBSD 5.1)Jonathan Wakely2-28/+7
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-02re PR target/51345 ([avr] Devices with 8-bit SP need their own multilib(s))Georg-Johann Lay2-11/+9
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-02Implement light-weight DImode support.Georg-Johann Lay3-3/+101
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
2011-12-30libgcov.c (gcov_crc32): Remove global var.Nathan Sidwell2-93/+145
* 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-22* config/i386/morestack.S: Simplify CFI opcodes throughout.Ian Lance Taylor1-42/+29
From-SVN: r182609
2011-12-21fde-vms.c (UNW_IVMS_MODE): Define.Tristan Gingold2-0/+6
2011-12-21 Tristan Gingold <gingold@adacore.com> * config/ia64/fde-vms.c (UNW_IVMS_MODE): Define. From-SVN: r182568
2011-12-20morestack.S (__morestack_non_split): If there is enough stack space already, ↵Ian Lance Taylor2-2/+108
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-20unwind-arm-common.inc: Include `tconfig.h', `tsystem.h' and `sys/sdt.h'.Sergio Durigan Junior2-4/+60
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-20linux-unwind.h: Update copyright years.Uros Bizjak2-9/+34
* 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-17config.host (mips*-sde-elf*, [...]): Add to tmake_file rather replacing it.Richard Sandiford2-2/+7
libgcc/ * config.host (mips*-sde-elf*, mipsisa64sr71k-*-elf*): Add to tmake_file rather replacing it. From-SVN: r182431
2011-12-15rs6000.c (rs6000_emit_prologue): Move update of VRSave mask to save_world() ↵Iain Sandoe2-59/+64
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-14Check __GLIBC__ when using __SIGRTMINH.J. Lu2-2/+7
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-14re PR target/50931 ([avr] Support a 24-bit scalar integer mode)Georg-Johann Lay3-1/+155
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-11* config/sparc/sol2-unwind.h: Use #ifdef directive consistently.Eric Botcazou2-1/+5
From-SVN: r182204
2011-12-09re PR target/49313 (Inefficient libgcc implementations for avr)Georg-Johann Lay3-0/+250
PR target/49313 * config/avr/t-avr (LIB1ASMFUNCS): Add _muldi3. * config/avr/lib1funcs.S (__muldi3): New function. From-SVN: r182160
2011-12-06crtstuff.c (__do_global_dtors_aux_fini_array_entry): Align to the size of ↵Andrew Pinski2-2/+8
func_ptr. 2011-12-06 Andrew Pinski <apinski@cavium.com> * crtstuff.c (__do_global_dtors_aux_fini_array_entry): Align to the size of func_ptr. (__frame_dummy_init_array_entry): Likewise. From-SVN: r182066
2011-12-06Forward-port from gcc-4_6-branch r181936 2011-12-02.Georg-Johann Lay2-0/+38
libgcc/ Forward-port from gcc-4_6-branch r181936 2011-12-02. PR target/51345 PR target/51002 * config/avr/lib1funcs.S (__prologue_saves__, __epilogue_restores__, __divdi3_moddi3): Enclose parts using __SP_H__ in !defined (__AVR_HAVE_8BIT_SP__). Add FIXME comments. gcc/ Forward-port from gcc-4_6-branch r181936 2011-12-02. PR target/51002 * config/avr/avr.md (movhi_sp_r): Set insn condition to !AVR_HAVE_8BIT_SP. * config/avr/avr.c (output_movhi): Use "clr%B0" instead of "in %B0,__SP_H__" if AVR_HAVE_8BIT_SP. (avr_file_start): Only print "__SP_H__ = 0x3e" if !AVR_HAVE_8BIT_SP. From-SVN: r182052
2011-12-04t-darwin64 (LIB2ADD): Add fp and gp save routines.Iain Sandoe2-1/+6
libgcc: * config/rs6000/t-darwin64 (LIB2ADD): Add fp and gp save routines. From-SVN: r181991
2011-12-01re PR other/51272 (ld: Unsatisfied symbol "_ITM_registerTMCloneTable" in ↵John David Anglin3-14/+51
file /test/gnu/gcc/objdir/) PR other/51272 * config/pa/stublib.c (_ITM_registerTMCloneTable): New stub. (_ITM_deregisterTMCloneTable): Likewise. (__register_frame_info): Fix unused warning. (__deregister_frame_info, __cxa_finalize, _Jv_RegisterClasses, pthread_default_stacksize_np): Likewise. * config/pa/t-stublib (LIBGCCSTUB_OBJS): Add new objects and rules. From-SVN: r181870
2011-11-29.DJ Delorie12-0/+1067
* configure.ac (rl78-*-*) New case. * configure: Regenerate. * MAINTAINERS: Add myself as RL78 maintainer. libgcc * config.host (rl78-*-elf): New case. * config/rl78: New directory for the Renesas RL78. gcc * config.gcc (rl78-*-elf): New case. * doc/extend.texi: Add RL78 documentation. * doc/invoke.texi: Likewise. * doc/md.texi: Likewise. * doc/contrib.texi: Add RL78. * doc/install.texi: Add rl78-*-elf. * config/rl78: New directory for the Renesas RL78. contrib * config-list.mk (LIST): Add rl78-elf. From-SVN: r181819
2011-11-29config.host (tic6x-*-uclinux): Append to extra_parts.Bernd Schmidt2-2/+9
* config.host (tic6x-*-uclinux): Append to extra_parts. Fix formatting. From-SVN: r181805
2011-11-28Cleanup rs6000/t-ppccomm configurations (PR other/51022)Rainer Orth5-35/+61
PR other/51022 * config/rs6000/t-savresfgpr: New file. * config/rs6000/t-ppccomm (LIB2ADD_ST): Remove all but $(srcdir)/config/rs6000/eabi.S. * config/rs6000/t-ppccomm-ldbl: Remove. * config.host (powerpc-*-freebsd*): Add rs6000/t-savresfgpr to tmake_file. (powerpc-*-eabispe*): Likewise. (powerpc-*-eabi*): Likewise. (powerpc-*-linux*, powerpc64-*-linux*): Likewise. (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Add rs6000/t-ppccomm to tmake_file, remove rs6000/t-ppccomm-ldbl. (powerpc-*-eabisimaltivec*): Remove rs6000/t-ppccomm-ldbl from tmake_file. (powerpc-*-eabisim*): Likewise. (powerpc-*-elf*): Likewise. (powerpc-*-eabialtivec*): Likewise. (powerpc-xilinx-eabi*): Likewise. (powerpc-*-rtems*): Likewise. (powerpcle-*-elf*): Likewise. (powerpcle-*-eabisim*): Likewise. (powerpcle-*-eabi*): Likewise. From-SVN: r181782
2011-11-28generic-morestack.c (__splitstack_find): Check for NULL old stack value.Ian Lance Taylor3-3/+83
* generic-morestack.c (__splitstack_find): Check for NULL old stack value. (__splitstack_resetcontext): New function. (__splitstack_releasecontext): New function. * libgcc-std.ver.in: Add new functions to GCC_4.7.0. From-SVN: r181771
2011-11-27darwin-crt-tm.c: Correct comments, use correct licence.Iain Sandoe2-11/+20
libgcc: * config/darwin-crt-tm.c: Correct comments, use correct licence. From-SVN: r181765
2011-11-27darwin-crt-tm.c: Remove dummy _ITM_ functions.Iain Sandoe2-11/+4
libgcc: * config/darwin-crt-tm.c: Remove dummy _ITM_ functions. From-SVN: r181764
2011-11-26m68k-linux: Implement atomic operations via syscall.Richard Henderson4-3/+221
libgcc/ * config/m68k/linux.h (TARGET_INIT_LIBFUNCS): New. * config/m68k/m68k.c (m68k_init_sync_libfuncs): New. gcc/ * config/m68k/linux-atomic.c: New file. * config/m68k/t-linux: New file. * config.host (m68k-uclinux, m68k-linux): Use it. From-SVN: r181746
2011-11-26crtstuff: adjust tm clones for no attribute hiddenRichard Henderson2-38/+65
* crtstuff.c (__TMC_LIST__): Mark used not unused. (__TMC_END__): Only declare if hidden is available; in the definition, if hidden is unavailable add a null record. (deregister_tm_clones, register_tm_clones): New. (__do_global_dtors_aux, frame_dummy): Use them. (__do_global_dtors, __do_global_ctors_1): Likewise. From-SVN: r181744
2011-11-22darwin.h (ENDFILE_SPEC): New.Iain Sandoe4-1/+98
gcc: * config/darwin.h (ENDFILE_SPEC): New. (DARWIN_CRT1_SPEC): Add crttms.o. (STARTFILE_SPEC): Likewise for dynamic libs and bundles. * config/i386.h (ENDFILE_SPEC): Amend to include crttme.o. libgcc: * config/darwin-crt-tm.c: New file. * config.host (darwin): Build crttms.o crttme.o to provide startup and shutdown for tm clones. * config/t-darwin (crttms.o): New build rule. (crttme.o): Likewise. From-SVN: r181616
2011-11-22Makefile.in ($(srcdir)/emutls.c): Explain why it's in LIB2ADDEH et al.Hans-Peter Nilsson2-0/+8
* Makefile.in ($(srcdir)/emutls.c): Explain why it's in LIB2ADDEH et al. From-SVN: r181608
2011-11-21Fix crtstuff merge error with transactional-memory branch.Richard Henderson2-5/+90
* crtstuff.c (USE_TM_CLONE_REGISTRY): Default to 1 on ELF. (__TMC_LIST__, __TMC_END__): New. (__do_global_dtors_aux): Call _ITM_deregisterTMCloneTable. (__do_global_dtors): Likewise. (frame_dummy): Call _ITM_registerTMCloneTable. (__do_global_ctors_1): Likewise. From-SVN: r181600
2011-11-21Fix LIB2ADD overrides in libgccRainer Orth4-8/+13
* config.host (iq2000*-*-elf*): Add iq2000/t-iq2000 to tmake_file. (powerpc-*-netbsd*): Add rs6000/t-netbsd to tmake_file. (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Add to tmake_file. (powerpc-*-lynxos*): Add rs6000/t-lynx to tmake_file. * config/i386/t-darwin64: Remove. * config/sh/t-netbsd (LIB2ADD): Remove. From-SVN: r181587
2011-11-21re PR target/49313 (Inefficient libgcc implementations for avr)Georg-Johann Lay3-0/+371
PR target/49313 * config/avr/t-avr (LIB2FUNCS_EXCLUDE): Add _moddi3, _umoddi3. (LIB1ASMFUNCS): Add _divdi3, _udivdi3, _udivmod64, _negdi2. * config/avr/lib1funcs.S (wmov): New assembler macro. (__umoddi3, __udivdi3, __udivdi3_umoddi3): New functions. (__moddi3, __divdi3, __divdi3_moddi3): New functions. (__udivmod64): New function. (__negdi2): New function. From-SVN: r181551
2011-11-21* config.host (*-*-freebsd[12], *-*-freebsd[12].*,Gerald Pfeifer2-9/+5
*-*-freebsd*aout*): Remove. From-SVN: r181550
2011-11-21static-object.mk (c_flags-$o): Save c_flags.Hans-Peter Nilsson2-1/+11
* static-object.mk (c_flags-$o): Save c_flags. ($(base)$(objext)): Use it. From-SVN: r181544
2011-11-18Makefile.in (c_flags): Set to -fno-exceptions to build libunwind.Steve Ellcey2-2/+7
2011-11-18 Steve Ellcey <sje@cup.hp.com> * Makefile.in (c_flags): Set to -fno-exceptions to build libunwind. From-SVN: r181495
2011-11-18re PR target/49868 (Implement named address space to place/access data in ↵Georg-Johann Lay3-0/+75
flash memory) gcc/ PR target/49868 * config/avr/avr.h (base_arch_s): Add field n_segments. (ADDR_SPACE_PGM1, ADDR_SPACE_PGM2, ADDR_SPACE_PGM3, ADDR_SPACE_PGM4, ADDR_SPACE_PGM5, ADDR_SPACE_PGMX): New address spaces. (AVR_HAVE_ELPM, AVR_HAVE_ELPMX): New defines. (INIT_EXPANDERS): New define. * config/avr/avr-protos.h (avr_mem_pgmx_p): New. (avr_init_expanders): New. (avr_emit_movmemhi, avr_out_movmem): New. (avr_xload_libgcc_p): New. * config/avr/avr-c.c (avr_register_target_pragmas): Register address spaces __pgm1, __pgm2, __pgm3, __pgm4 __pgm5, __pgmx. (avr_cpu_cpp_builtins): Add built-in defines __PGM1, __PGM2, __PGM3, __PGM4, __PGM5, __PGMX. * config/avr/avr-devices.c (avr_arch_types): Set field n_segments. * config/avr/avr.c (AVR_SECTION_PROGMEM): Change define to cover 3 bits instead of just 1. (xstring_empty, xstring_e, rampz_rtx): New static GTYed variables. (progmem_section): Change from section to array of sections. (progmem_section_prefix): New static variable. (avr_file_start): Print set for __RAMPZ__ (avr_option_override): Move initialization of RTXes from here... (avr_init_expanders): ...to this new function. (avr_pgm_segment): New static function. (avr_decl_pgm_p): Handle error_mark_node. (avr_mem_pgmx_p, avr_decl_pgmx_p): New static functions. (avr_out_xload, avr_find_unused_d_reg): New static functions. (expand_prologue, expand_epilogue): Use rampz_rtx. (print_operand): Hande CONST_STRING. (avr_xload_libgcc_p): New static function. (avr_out_lpm_no_lpmx, avr_out_lpm): Handle ELPM. (avr_progmem_p): Return 2 for 24-bit flash address space. (avr_out_sbxx_branch): Clean-up code from ASn macros. (out_movqi_r_mr, out_movqi_mr_r): Ditto. And recognize RAMPZ's address and print symbolically. (avr_asm_named_section, avr_section_type_flags, avr_encode_section_info, avr_asm_select_section, avr_addr_space_address_mode, avr_addr_space_pointer_mode, avr_addr_space_legitimate_address_p, avr_addr_space_convert, avr_addr_space_legitimize_address): Handle new address spaces. (avr_output_progmem_section_asm_op): New static function. (avr_asm_init_sections): Initialize progmem_section[]. (adjust_insn_length): Handle ADJUST_LEN_XLOAD, ADJUST_LEN_MOVMEM. (avr_const_address_lo16): New static function. (avr_assemble_integer): Use it to handle 3-byte integers. (avr_emit_movmemhi, avr_out_movmem): New functions. * config/avr/predicates.md (nox_general_operand): Handle new address spaces. * config/avr/avr.md (unspec): Add UNSPEC_MOVMEM. (adjust_len): Add xload, movmem. (SP_ADDR): New define_constants. (isa): Add "lpm", "lpmx", "elpm", "elpmx". (enabled): Handle them. (load<mode>_libgcc): New expander. (*load.<mode>.libgcc): Rename to load_<mode>_libgcc. (xload8_A, xload<mode>_A): New insn-and-splits. (xload_8, xload_<mode>_libgcc, xload_<mode>, loadmem_elpm): New insns. (mov<mode>): Handle new address spaces. (movmemhi): Rewrite using avr_emit_movmemhi. (MOVMEM_r_d): New mode attribute. (movmem_<mode>, movmem_qi_elpm): New insns. (setmemhi, *clrmemqi, *clrmemhi, strlenhi, *strlenhi): Unquote C-code. Use label instead of hard-coded instrunction lengths. libgcc/ PR target/49868 * config/avr/t-avr (LIB1ASMFUNCS): Add _xload_2 _xload_3 _xload_4. * config/avr/lib1funcs.S (__xload_2, __xload_3, __xload_4): New functions. From-SVN: r181482
2011-11-16lib1funcs.asm (udivsi3): Add support for divide functions.Matthew Gretton-Dann2-4/+76
2011-11-16 Matthew Gretton-Dann <matthew.gretton-dann@arm.com> * config/arm/lib1funcs.asm (udivsi3): Add support for divide functions. (aeabi_uidivmod): Likewise. (umodsi3): Likewise. (divsi3): Likewise. (aeabi_idivmod): Likewise. (modsi3): Likewise. From-SVN: r181419
2011-11-16qrnnd.S: Use specific pseudos for VMS.Tristan Gingold2-0/+16
2011-11-16 Tristan Gingold <gingold@adacore.com> * config/alpha/qrnnd.S: Use specific pseudos for VMS. From-SVN: r181403
2011-11-15re PR target/49868 (Implement named address space to place/access data in ↵Georg-Johann Lay3-0/+53
flash memory) gcc/ PR target/49868 * config/avr/avr.h (ADDR_SPACE_PGM): New address spaces. (REGISTER_TARGET_PRAGMAS): New define. * config/avr/avr-protos.h (avr_mem_pgm_p): New. (avr_load_libgcc_p): New. (asm_output_external_libcall): Remove. (avr_register_target_pragmas): New. (avr_log_t): Add field "progmem". Order alphabetically. * config/avr/avr-log.c (avr_log_set_avr_log): Set avr_log.progmem. * config/avr/avr-c.c (langhooks.h): New include. (avr_register_target_pragmas): New function. Register address space __pgm. (avr_cpu_cpp_builtins): Add built-in define __PGM. * config/avr/avr.c: Include "c-family/c-common.h". (TARGET_LEGITIMATE_ADDRESS_P): Remove define. (TARGET_LEGITIMIZE_ADDRESS): Remove define. (TARGET_ADDR_SPACE_SUBSET_P): Define to... (avr_addr_space_subset_p): ...this new static function. (TARGET_ADDR_SPACE_CONVERT): Define to... (avr_addr_space_convert): ...this new static function. (TARGET_ADDR_SPACE_ADDRESS_MODE): Define to... (avr_addr_space_address_mode): ...this new static function. (TARGET_ADDR_SPACE_POINTER_MODE): Define to... (avr_addr_space_pointer_mode): ...this new static function. (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define to... (avr_addr_space_legitimate_address_p): ...this new static function. (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Define to... (avr_addr_space_legitimize_address): ...this new static function. (avr_mode_code_base_reg_class): Handle address spaces. (avr_regno_mode_code_ok_for_base_p): Ditto. (lpm_addr_reg_rtx, lpm_reg_rtx, all_regs_rtx): New static variables. (avr_option_override): Initialize them. (output_reload_in_const): Use all_regs_rtx. Fix signedness of loop variables. (avr_pgm_segment): New static function. (avr_decl_pgm_p, avr_mem_pgm_p): New static functions. (avr_out_lpm, avr_out_lpm_no_lpmx): New static functions. (output_movqi, output_movhi, output_movsisf, avr_out_movpsi): Call avr_out_lpm to handle loads from progmem. (avr_load_libgcc_p): New static function. (avr_progmem_p): Test if decl is in flash. (avr_pgm_pointer_const_p): New static function. (avr_nonconst_pointer_addrspace): New static function. (avr_pgm_check_var_decl): New static function. (avr_insert_attributes): Use it. Change error message to report cause (progmem or address space) when code wants to write to flash. (avr_section_type_flags): Unset section flag SECTION_BSS for data in progmem. * config/avr/predicates.md (nop_general_operand): New predicate. (nox_general_operand): New predicate. * config/avr/avr.md (LPM_REGNO): New define_constant. (load<mode>_libgcc): New expander. (*load.<mode>.libgcc): New insn. (mov<mode>): Handle loads from non-generic AS. (movmemhi): Ditto. Propagate address space information to newly created MEM. (movqi_insn, *movhi, *movpsi, *movsi, *movsf): Change predicate #1 to nox_general_operand. (ashrqi3, ashrhi3, ashrsi3): Change predicate #1 to nop_general_operand. (ashlqi3, *ashlqi3, ashlhi3, ashlsi3): Ditto. (lshrqi3, *lshrqi3, lshrhi3, lshrsi3): Ditto. (split-lpmx): New split. (*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const, *lshrhi3_const, *lshrsi3_const): Indent, unquote C. libgcc/ PR target/49868 * config/avr/t-avr (LIB1ASMFUNCS): Add _load_3, _load_4. * config/avr/lib1funcs.S (__load_3, __load_4, __xload_2): New functions. From-SVN: r181378
2011-11-13config.host (hppa*64*-*-hpux11*): Remove pa/t-stublib64 from tmake_file list.John David Anglin4-16/+23
* config.host (hppa*64*-*-hpux11*): Remove pa/t-stublib64 from tmake_file list. * config/pa/t-stublib: Merge rules from config/pa/t-stublib64. * config/pa/t-stublib64: Delete. From-SVN: r181339
2011-11-12ppc-linux: Fix call to _Unwind_SetGRPtrRichard Henderson2-1/+6
* config/rs6000/linux-unwind.h (frob_update_context): Properly cast the pointer argument to _Unwind_SetGRPtr. From-SVN: r181325