aboutsummaryrefslogtreecommitdiff
path: root/libgcc/config
AgeCommit message (Collapse)AuthorFilesLines
2015-10-02AVX-512.Kirill Yukhin1-1/+7
AVX-512. Add missing features to cpuinfo.c gcc/ * config/i386/i386.c (processor_features): Add F_AVX512VBMI, F_AVX512IFMA. (isa_names_table): Handle F_AVX512VBMI and F_AVX512IFMA. libgcc/ * config/i386/cpuinfo.c (processor_features): Add FEATURE_AVX512VBMI and FEATURE_AVX512VBMI. testsuite/ * gcc.target/i386/builtin_target.c: Handle "avx512ifma" and "avx512vbmi". From-SVN: r228399
2015-09-24ARM: fp16 Fix PR 67624 - Incorrect conversion of float Infinity to __fp16Richard Earnshaw1-2/+5
PR libgcc/67624 libgcc: * config/arm/fp16.c (__gnu_f2h_internal): Handle infinity correctly. gcc/testsuite: * gcc.target/arm/fp16-inf.c: New test. From-SVN: r228082
2015-09-24Support PIE on SolarisRainer Orth2-7/+7
gcc/testsuite: * lib/target-supports.exp (check_effective_target_pie): Check for PIE support on Solaris 11.x and 12. libgcc: * config.host (*-*-solaris2*): Add t-crtstuff-pic to tmake_file. Add crtbeginS.o, crtendS.o to extra_parts if libgcc_cv_solaris_crts. * config/sol2/gmon.c: (monstartup): Don't write trailing NUL of messages. (internal_mcount): Likewise. * config/sol2/t-sol2 (crtp.o, crtpg.o, gmon.o): Compile with crt_compile, add CRTSTUFF_T_CFLAGS_S. gcc: * configure.ac (gcc_cv_ld_pie): Check for gld >= 2.26 on Solaris. Check for ld -type pie on Solaris 11.x and 12. * configure: Regenerate. * config.in: Regenerate. * gcc.c (LD_PIE_SPEC): Allow redefinition. * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Define. (STARTFILE_SPEC): Use it. (ENDFILE_CRTEND_SPEC): Define. (ENDFILE_SPEC): Use it and ENDFILE_ARCH_SPEC. (SUBTARGET_EXTRA_SPECS): Add STARTFILE_CRTBEGIN_SPEC, ENDFILE_ARCH_SPEC, ENDFILE_CRTEND_SPEC. [HAVE_LD_PIE && HAVE_SOLARIS_CRTS] (LD_PIE_SPEC): Define. (!(HAVE_LD_PIE && HAVE_SOLARIS_CRTS)] (LINK_PIE_SPEC): Define. * config/i386/sol2.h (ENDFILE_SPEC): Remove. (ENDFILE_ARCH_SPEC): Define. * config/sparc/sol2.h (ENDFILE_ARCH_SPEC): Define. From-SVN: r228078
2015-09-24Use CRTs provided by SolarisRainer Orth4-2/+95
gcc: * configure.ac (gcc_cv_solaris_crts): New test. * configure. Regenerate. * config.in: Regenerate. * config/sol2.h (STARTFILE_SPEC): Simplify, provide HAVE_SOLARIS_CRTS variant. libgcc: * configure.ac (libgcc_cv_solaris_crts): New test. * configure: Regenerate. * config.in: Regenerate. * config/sol2/crtp.c, config/sol2/crtpg.c: New files. * config/gmon-sol2.c: Rename to ... * config/sol2/gmon.c: ... this. Include auto-target.h. (internal_mcount): Wrap setup handling in !HAVE_SOLARIS_CRTS. * config/t-sol2: Rename to ... * config/sol2/t-sol2: ... this. (gmon.o): Reflect renaming. (crtp.o, crtpg.o): New rules. * config.host (*-*-solaris2*): Reflect renaming. Use system CRTs if present. Remove default CRT case. From-SVN: r228077
2015-09-23linux-atomic.c (__kernel_cmpxchg2): Reorder error checks.John David Anglin1-16/+44
* config/pa/linux-atomic.c (__kernel_cmpxchg2): Reorder error checks. (__sync_fetch_and_##OP##_##WIDTH): Change result to match type of __kernel_cmpxchg2. (__sync_##OP##_and_fetch_##WIDTH): Likewise. (__sync_val_compare_and_swap_##WIDTH): Likewise. (__sync_bool_compare_and_swap_##WIDTH): Likewise. (__sync_lock_test_and_set_##WIDTH): Likewise. (__sync_lock_release_##WIDTH): Likewise. (__sync_fetch_and_##OP##_4): Change result to match type of __kernel_cmpxchg. (__sync_##OP##_and_fetch_4): Likewise. (__sync_val_compare_and_swap_4): Likewise. (__sync_bool_compare_and_swap_4): likewise. (__sync_lock_test_and_set_4): Likewise. (__sync_lock_release_4): Likewise. (FETCH_AND_OP_2): Add long long variants. (OP_AND_FETCH_2): Likewise. (COMPARE_AND_SWAP_2 ): Likewise. (SYNC_LOCK_TEST_AND_SET_2): Likewise. (SYNC_LOCK_RELEASE_2): Likewise. (__sync_bool_compare_and_swap_##WIDTH): Correct return. From-SVN: r228065
2015-09-22AVX-512. Introduce SKylake server CPU.Kirill Yukhin1-2/+20
gcc/ * config.gcc: Support "skylake-avx512". * config/i386/i386-c.c (ix86_target_macros_internal): Handle PROCESSOR_SKYLAKE_AVX512. * config/i386/i386.c (m_SKYLAKE_AVX512): Define. (processor_target_table): Add "skylake-avx512". (PTA_SKYLAKE_AVX512): Define. (ix86_option_override_internal): Add "skylake_avx512". (fold_builtin_cpu): Handle "skylake_avx512", add F_AVX512VL F_AVX512BW, F_AVX512DQ, F_AVX512ER, F_AVX512PF, F_AVX512CD. * config/i386/i386.h (TARGET_SKYLAKE_AVX512): Define. (processor_type): Add PROCESSOR_SKYLAKE_AVX512. * doc/invoke.texi (skylake-avx512): New. libgcc/ * libgcc/config/i386/cpuinfo.c (enum processor_features): Add FEATURE_AVX512VL, FEATURE_AVX512BW, FEATURE_AVX512DQ, FEATURE_AVX512CD, FEATURE_AVX512ER, FEATURE_AVX512PF. (get_available_features): Habdle new features. gcc/testsuite/ * gcc.target/i386/funcspec-5.c: Test avx512vl, avx512bw, avx512dq, avx512cd, avx512er, avx512pf and skylake-avx512. * gcc.target/i386/builtin_target.c: Test avx512vl, avx512bw, avx512dq, avx512cd, avx512er and avx512pf. From-SVN: r228009
2015-09-21[FT32] fixes for the default hardware startupJames Bowman1-27/+26
libgcc/ * config/ft32/crti-hw.S: Use __PMSIZE to allow configurable memory layout. Deal correctly with BSS region larger than 32K. Handle a watchdog reset like a power-on reset. Clean up unused code. From-SVN: r227986
2015-09-18Update copyright.David Edelsohn1-1/+1
From-SVN: r227912
2015-09-18config.host (powerpc-ibm-aix*): Add crtdbase.o to extra_parts.Andrew Dixie2-0/+34
libgcc/ * config.host (powerpc-ibm-aix*): Add crtdbase.o to extra_parts. * config/rs6000/crtdbase.S: New file. * config/rs6000/t-aix-cxa: Build crtdbase.o. gcc/ * defaults.h (EH_FRAME_SECTION_NAME): Depend on EH_FRAME_THROUGH_COLLECT2. * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add case for DW_EH_PE_datarel. * dwarf2out.c (switch_to_eh_frame_section): Use a read-only section even if EH_FRAME_SECTION_NAME is undefined. Restrict special collect2 labels to EH_FRAME_THROUGH_COLLECT2. * except.c (switch_to_exception_section): Use a read-only section even if EH_FRAME_SECTION_NAME is undefined. * system.h (EH_FRAME_IN_DATA_SECTION): Poison. * collect2.c (write_c_file_stat): Provide dbase on AIX. (scan_prog_file): Don't export __dso_handle nor __gcc_unwind_dbase. * config/rs6000/aix.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. (EH_TABLES_CAN_BE_READ_ONLY): Define. (ASM_OUTPUT_DWARF_PCREL): Define. (ASM_OUTPUT_DWARF_DATAREL): Define. (EH_FRAME_THROUGH_COLLECT2): Define. (EH_FRAME_IN_DATA_SECTION): Delete. * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_pcrel): New. (rs6000_aix_asm_output_dwarf_datarel): New. (rs6000_xcoff_asm_init_sections): Don't set exception_section. * config/spu/spu-elf.h (EH_FRAME_IN_DATA_SECTION): Delete. (EH_FRAME_THROUGH_COLLECT2): Define. * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Delete. (EH_FRAME_THROUGH_COLLECT2): Define. (EH_TABLES_CAN_BE_READ_ONLY): Define. * doc/tm.texi.in (EH_FRAME_IN_DATA_SECTION): Delete. (EH_FRAME_THROUGH_COLLECT2): New. (ASM_OUTPUT_DWARF_DATAREL): New. * doc/tm.texi: Regenerate. Co-Authored-By: David Edelsohn <dje.gcc@gmail.com> From-SVN: r227906
2015-09-15xtensa: fix xtensa_fallback_frame_state for call0 ABIMax Filippov1-2/+28
2015-09-15 Max Filippov <jcmvbkbc@gmail.com> gcc/ * config/xtensa/xtensa.h (DWARF_ALT_FRAME_RETURN_COLUMN): New definition. (DWARF_FRAME_REGISTERS): Reserve space for one extra register in call0 ABI. libgcc/ * config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Add support for call0 ABI. From-SVN: r227809
2015-09-13fptr.c (SIGN_EXTEND): Cast -1 to unsigned.John David Anglin1-1/+1
* config/pa/fptr.c (SIGN_EXTEND): Cast -1 to unsigned. From-SVN: r227717
2015-09-03RTEMS: Update RTEMS thread modelSebastian Huber1-56/+139
libgcc/ChangeLog * config/gthr-rtems.h (__GTHREADS_CXX0X): New. (__GTHREAD_HAS_COND): Likewise. (__gthread_t): Likewise. (__gthread_cond_t): Likewise. (__gthread_time_t): Likewise. (__GTHREAD_MUTEX_INIT): Likewise. (__GTHREAD_RECURSIVE_MUTEX_INIT): Likewise. (__GTHREAD_COND_INIT): Likewise. (__GTHREAD_COND_INIT_FUNCTION): Likewise. (__GTHREAD_TIME_INIT): Likewise. (__gthread_create): Likewise. (__gthread_join): Likewise. (__gthread_detach): Likewise. (__gthread_equal): Likewise. (__gthread_self): Likewise. (__gthread_yield): Likewise. (__gthread_cond_broadcast): Likewise. (__gthread_cond_signal): Likewise. (__gthread_cond_wait): Likewise. (__gthread_cond_timedwait): Likewise. (__gthread_cond_wait_recursive): Likewise. (__gthread_cond_destroy): Likewise. (rtems_gxx_once): Delete. (rtems_gxx_key_create): Likewise. (rtems_gxx_key_delete): Likewise. (rtems_gxx_getspecific): Likewise. (rtems_gxx_setspecific): Likewise. (rtems_gxx_mutex_init): Likewise. (rtems_gxx_mutex_destroy): Likewise. (rtems_gxx_mutex_lock): Likewise. (rtems_gxx_mutex_trylock): Likewise. (rtems_gxx_mutex_unlock): Likewise. (rtems_gxx_recursive_mutex_init): Likewise. (rtems_gxx_recursive_mutex_lock): Likewise. (rtems_gxx_recursive_mutex_trylock): Likewise. (rtems_gxx_recursive_mutex_unlock): Likewise. (__GTHREAD_ONCE_INIT): Use <pthread.h> initializer. (__GTHREAD_MUTEX_INIT_FUNCTION): Use <pthread.h> function. (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Likewise. (__gthread_once): Likewise. (__gthread_key_create): Likewise. (__gthread_key_delete): Likewise. (__gthread_getspecific): Likewise. (__gthread_setspecific): Likewise. (__gthread_key_t): Use <pthread.h> type. (__gthread_once_t): Likewise (__gthread_mutex_t): Use <sys/lock.h> type. (__gthread_recursive_mutex_t): Likewise (__gthread_mutex_lock): Use <sys/lock.h> function. (__gthread_mutex_trylock): Likewise. (__gthread_mutex_timedlock): Likewise. (__gthread_mutex_unlock): Likewise. (__gthread_mutex_destroy): Likewise. (__gthread_recursive_mutex_lock): Likewise. (__gthread_recursive_mutex_trylock): Likewise. (__gthread_recursive_mutex_timedlock): Likewise. (__gthread_recursive_mutex_unlock): Likewise. (__gthread_recursive_mutex_destroy): Likewise. From-SVN: r227428
2015-08-18xtensa: fix _Unwind_GetCFAMax Filippov1-1/+1
Returning context->cfa in _Unwind_GetCFA makes CFA point one stack frame higher than what was actually used by code at context->ra. This results in invalid CFA value in signal frames and premature unwinding completion in forced unwinding used by uClibc NPTL thread cancellation. Returning context->sp from _Unwind_GetCFA makes all CFA values valid and matching code that used them. 2015-08-18 Max Filippov <jcmvbkbc@gmail.com> libgcc/ * config/xtensa/unwind-dw2-xtensa.c (_Unwind_GetCFA): Return context->sp instead of context->cfa. From-SVN: r226964
2015-08-18xtensa: use unwind-dw2-fde-dip instead of unwind-dw2-fdeMax Filippov1-1/+1
This allows having exception cleanup code in binaries that don't register their unwind tables. 2015-08-18 Max Filippov <jcmvbkbc@gmail.com> libgcc/ * config/xtensa/t-windowed (LIB2ADDEH): Replace unwind-dw2-fde with unwind-dw2-fde-dip. From-SVN: r226963
2015-08-18xtensa: reimplement register spillingMax Filippov1-7/+23
Spilling windowed registers in userspace is much easier, more portable, less error-prone and equally effective as in kernel. Now that register spilling syscall is considered obsolete in the xtensa linux kernel replace it with CALL12 followed by series of ENTRY in libgcc. 2015-08-18 Max Filippov <jcmvbkbc@gmail.com> libgcc/ * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill): Use CALL12 followed by series of ENTRY to spill windowed registers. (__xtensa_nonlocal_goto): Call __xtensa_libgcc_window_spill instead of making linux spill syscall. From-SVN: r226962
2015-08-14driver-i386.c (host_detect_local_cpu): Add support for skylake.Yuri Rumyantsev1-0/+7
gcc/ * config/i386/driver-i386.c (host_detect_local_cpu): Add support for skylake. * config/i386/i386.c (PTA_SKYLAKE): New macros. (processor_alias_table): Add skylake description. (enum processor_model): Add skylake processor. (arch_names_table): Add skylake record. * doc/invoke.texi: Add skylake item. gcc/testsuite/ * gcc.target/i386/builtin_target.c: Add skylake check. libgcc/ * config/i386/cpuinfo.c (enum processor_subtypes): Add skylake. (get_intel_cpu): Likewise. From-SVN: r226884
2015-08-12Add Knights Landing support to __builtin_cpu_isH.J. Lu1-0/+5
This patch adds Knights Landing support to __builtin_cpu_is. gcc/testsuite/ * gcc.target/i386/builtin_target.c (check_intel_cpu_model): Check Knights Landing support. libgcc/ * config/i386/cpuinfo.c (processor_types): Add INTEL_KNL. (get_intel_cpu): Add Knights Landing support. From-SVN: r226817
2015-08-11re PR target/66954 (function multiversioning fails for target "aes")Uros Bizjak1-1/+4
libgcc/ChangeLog: PR target/66954 * config/i386/cpuinfo.c (enum processor_features): Add FEATURE_PCLMUL. (get_available_features): Handle FEATURE_PCLMUL. gcc/ChangeLog: PR target/66954 * config/i386/i386.c (get_builtin_code_for_version): Add P_PCLMUL to enum feature_priority and feature_list. (fold_builtin_cpu): Add F_PCLMUL to enum processor_features and isa_names_table. gcc/testsuite/ChangeLog: PR target/66954 * g++.dg/ext/mv25.C: New test. From-SVN: r226784
2015-08-10Treat model == 0x4f as BroadwellH.J. Lu1-0/+1
gcc/testsuite/ * gcc.target/i386/builtin_target.c (check_intel_cpu_model): Treat model == 0x4f as Broadwell. libgcc/ * config/i386/cpuinfo.c (get_intel_cpu): Treat model == 0x4f as Broadwell. From-SVN: r226766
2015-07-22re PR target/66954 (function multiversioning fails for target "aes")Uros Bizjak1-1/+4
libgcc/ChangeLog: PR target/66954 * config/i386/cpuinfo.c (enum processor_features): Add FEATURE_AES. (get_available_features): Handle FEATURE_AES. gcc/ChangeLog: PR target/66954 * config/i386/i386.c (get_builtin_code_for_version): Add P_AES to enum feature_priority and feature_list. (fold_builtin_cpu): Add F_AES to enum processor_features and isa_names_table. gcc/testsuite/ChangeLog: PR target/66954 * g++.dg/ext/mv24.C: New test. From-SVN: r226081
2015-07-22linux-atomic.c (<asm/unistd.h>): Remove #include.Chung-Lin Tang1-5/+0
2015-07-22 Chung-Lin Tang <cltang@codesourcery.com> libgcc/ * config/nios2/linux-atomic.c (<asm/unistd.h>): Remove #include. (EFAULT,EBUSY,ENOSYS): Delete unused #defines. From-SVN: r226063
2015-07-17libgcc: fix build with older makeJan Beulich1-1/+3
Make up to 3.80 (documented as minimal permitted version) doesn't support "else if...". 2015-07-17 Jan Beulich <jbeulich@suse.com> * config/t-softfp: Split up "else ifneq". From-SVN: r225920
2015-07-14tramp.c (MOVHI, ORI, JMP): Conditionalize for __nios2_arch__ level.Sandra Loosemore1-3/+17
2015-07-14 Sandra Loosemore <sandra@codesourcery.com> Cesar Philippidis <cesar@codesourcery.com> Chung-Lin Tang <cltang@codesourcery.com> libgcc/ * config/nios2/tramp.c (MOVHI, ORI, JMP): Conditionalize for __nios2_arch__ level. Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com> Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com> From-SVN: r225794
2015-07-13t-dragonfly: New.John Marino1-0/+2
2015-07-13 John Marino <gnugcc@marino.st> * config/i386/t-dragonfly: New. From-SVN: r225738
2015-07-01linux-atomic.c (__kernel_cmpxchg): Reorder arguments to better match ↵John David Anglin1-26/+26
light-weight syscall argument order. * config/pa/linux-atomic.c (__kernel_cmpxchg): Reorder arguments to better match light-weight syscall argument order. (__kernel_cmpxchg2): Likewise. Adjust callers. From-SVN: r225267
2015-06-30IA MCU psABI support: changes to librariesH.J. Lu2-0/+6
Patch in the bottom adds support of IA MCU psABI to libgcc (enables soft-fp) and libdecnumber (enables it for IA MCU). config/ * dfp.m4 (enable_decimal_float): Also set to yes for i?86*-*-elfiamcu target. gcc/ * configure: Regenerated. libdecnumber/ * configure: Regenerated. libgcc/ * config.host: Support i[34567]86-*-elfiamcu target. * config/t-softfp-sfdftf: New file. * config/i386/32/t-iamcu: Likewise. * configure: Regenerated. From-SVN: r225198
2015-06-23lib1funcs.S (aeabi_idiv0, [...]): Add CFI entries.James Lemke1-2/+9
2015-06-23 James Lemke <jwlemke@codesourcery.com> libgcc/config/arm/ * lib1funcs.S (aeabi_idiv0, aeabi_ldiv0): Add CFI entries. From-SVN: r224854
2015-05-27config.host (i[34567]86-*-freebsd*, [...]): Set md_unwind_headerJohn Marino1-0/+173
* config.host (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Set md_unwind_header * config/i386/freebsd-unwind.h: New. From-SVN: r223765
2015-05-22config.host (i[34567]-*-*, x86_64-*-*): Add t-crtfm instead of i386/t-crtfm ↵Uros Bizjak2-47/+46
to tmake_file. * config.host (i[34567]-*-*, x86_64-*-*): Add t-crtfm instead of i386/t-crtfm to tmake_file. * config/i386/crtfastmath.c (set_fast_math_sse): New function. (set_fast_math): Use set_fast_math_sse for SSE targets. * config/i386/t-crtfm: Remove. From-SVN: r223578
2015-05-21re PR libgcc/66225 (libgcc/config/rs6000/morecore.S will not build on ↵Alan Modra1-1/+0
systems with an older assembler) PR libgcc/66225 * config/rs6000/morestack.S: Remove ".abiversion 1". From-SVN: r223464
2015-05-20rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK): Define.Alan Modra2-0/+353
gcc/ * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK): Define. (rs6000_supports_split_stack): New function. * gcc/config/rs6000/rs6000.c (machine_function): Add split_stack_arg_pointer. (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define. (setup_incoming_varargs): Use crtl->args.internal_arg_pointer rather than virtual_incoming_args_rtx. (rs6000_va_start): Likewise. (split_stack_arg_pointer_used_p): New function. (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack. (morestack_ref): New var. (gen_add3_const, rs6000_expand_split_stack_prologue, rs6000_internal_arg_pointer, rs6000_live_on_entry, rs6000_split_stack_space_check): New functions. (rs6000_elf_file_end): Call file_end_indicate_split_stack. * gcc/config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define. (UNSPECV_SPLIT_STACK_RETURN): Define. (split_stack_prologue, load_split_stack_limit, load_split_stack_limit_di, load_split_stack_limit_si, split_stack_return, split_stack_space_check): New expands and insns. * gcc/config/rs6000/rs6000-protos.h (rs6000_expand_split_stack_prologue): Declare. (rs6000_split_stack_space_check): Declare. libgcc/ * config/rs6000/morestack.S: New. * config/rs6000/t-stack-rs6000: New. * config.host (powerpc*-*-linux*): Add t-stack and t-stack-rs6000 to tmake_file. * generic-morestack.c: Don't build for powerpc 32-bit. From-SVN: r223426
2015-05-16FT32 target added. Approved by Jeff Law [law@redhat.com]James Bowman8-0/+1502
From-SVN: r223261
2015-05-15Add support for CFI directives in fp emulation routines for ARM.Martin Galvan3-30/+264
2015-05-15 Martin Galvan <martin.galvan@tallertechnologies.com> * config/arm/lib1funcs.S (CFI_START_FUNCTION, CFI_END_FUNCTION): New macros. * config/arm/ieee754-df.S: Add CFI directives. * config/arm/ieee754-sf.S: Add CFI directives. From-SVN: r223220
2015-05-06unknown-elf.h (STARTFILE_SPEC): Add conditional linking of crtfastmath.o.Sandra Loosemore1-0/+40
2015-05-06 Sandra Loosemore <sandra@codesourcery.com> Chris Jones <chrisj@nvidia.com> Joshua Conner <jconner@nvidia.com> gcc/ * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional linking of crtfastmath.o. * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise. libgcc/ * config.host (arm*-*-linux*): Add support for crtfastmath.o. (arm*-*-uclinux*): Likewise. (arm*-*-eabi* | arm*-*-rtems*): Likewise. * config/arm/crtfastmath.c: New file. Co-Authored-By: Chris Jones <chrisj@nvidia.com> Co-Authored-By: Joshua Conner <jconner@nvidia.com> From-SVN: r222857
2015-04-28elf-lib.h: New file.Uros Bizjak3-2/+26
libgcc/ChangeLog: * config/frv/elf-lib.h: New file. (CRT_GET_RFIB_DATA): Move definition from gcc/config/frv/frv.h. * libgcc/config.host (frv-*elf, frv-*-*linux*): Add frv/elf-lib.h to tm_file. * config/frv/frvbengin.c: Do not include defaults.h * config/frv/frvend.c: Ditto. gcc/ChangeLog: * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to libgcc/config/frv/elf-lib.h. From-SVN: r222519
2015-04-27config.gcc: Add h8300-*-linux.Yoshinori Sato3-37/+129
gcc/ * config.gcc: Add h8300-*-linux. * config/h8300/linux.h: New. * config/h8300/t-linux: New. * config/h8300/h8300.c (h8300_option_override): Normal mode is not supported for h8300-*-linux. (h8300_file_start): Target priority change. (get_shift_alg): Likewise. (h8300_shift_need_scratch_p): Likewise. * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise. * config/h8300/h8300.md (define_peephole2): Remove duplicate condition. libgcc/ * config.host: Add h8300-*-linux * config/h8300/t-linux: New file. * config/h8300/lib1funs.s: Change symbol prefix. * config/h8300/sfp-machine.h: 64bit double support. From-SVN: r222479
2015-04-17Hide __cpu_indicator_init/__cpu_model from linkerH.J. Lu2-2/+7
We shouldn't call external function, __cpu_indicator_init, while an object is being relocated since its .got.plt section hasn't been updated. It works for non-PIE since no update on .got.plt section is required. This patch creates libgcc.so as a linker script, hides __cpu_indicator_init and __cpu_model in libgcc.so.1 from linker, forces linker to resolve __cpu_indicator_init and __cpu_model to their hidden definitions in libgcc.a while providing backward binary compatibility. gcc/testsuite/ PR target/65612 * g++.dg/ext/mv18.C: New test. * g++.dg/ext/mv19.C: Likewise. * g++.dg/ext/mv20.C: Likewise. * g++.dg/ext/mv21.C: Likewise. * g++.dg/ext/mv22.C: Likewise. * g++.dg/ext/mv23.C: Likewise. libgcc/ PR target/65612 * config.host (tmake_file): Add t-slibgcc-libgcc for Linux/x86. * config/i386/cpuinfo.c (__cpu_model): Initialize. (__cpu_indicator_init@GCC_4.8.0): New. (__cpu_model@GCC_4.8.0): Likewise. * config/i386/t-linux (HOST_LIBGCC2_CFLAGS): Add -DUSE_ELF_SYMVER. From-SVN: r222178
2015-04-16rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and MUL_UNINIT.Nick Clifton2-0/+903
* config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and MUL_UNINIT. (enum rl78_cpu_type): New. * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi. (umulhi3_shift_virt): Remove m constraint from operand 1. (umulqihi3_virt): Likewise. * config/rl78/rl78.c (rl78_option_override): Add code to process -mcpu and -mmul options. (rl78_alloc_physical_registers): Add code to handle divhi and divsi valloc attributes. (set_origin): Likewise. * config/rl78/rl78.h (RL78_MUL_G14): Define. (TARGET_G10, TARGET_G13, TARGET_G14): Define. (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and __RL78_Gxx__. (ASM_SPEC): Pass -mcpu on to assembler. * config/rl78/rl78.md (mulqi3): Add a clobber of AX. (mulqi3_rl78): Likewise. (mulhi3_g13): Likewise. (mulhi3): Generate the G13 or G14 versions of the insn directly. (mulsi3): Likewise. (mulhi3_g14): Add clobbers of AX and BC. (mulsi3_g14): Likewise. (mulsi3_g13): Likewise. (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns. (udivmodsi4_g14, udivmodsi4_g13): New patterns. * config/rl78/rl78.opt (mmul): Initialise value to RL78_MUL_UNINIT. (mcpu): New option. (m13, m14, mrl78): New option aliases. * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14. (MULTILIB_DIRNAMES): Add g13 and g14. * doc/invoke.texi: Document -mcpu and -mmul options. * config/rl78/divmodhi.S: Add G14 and G13 versions of the __divhi3 and __modhi3 functions. * config/rl78/divmodso.S: Add G14 and G13 versions of the __divsi3, __udivsi3, __modsi3 and __umodsi3 functions. From-SVN: r222142
2015-03-03Implement call0 ABI for xtensaMax Filippov4-3/+15
call0 is an ABI that doesn't use register windows. 2015-03-03 Max Filippov <jcmvbkbc@gmail.com> gcc/ * config/xtensa/constraints.md ("a" constraint): Include stack pointer in case of call0 ABI. ("q" constraint): Make empty in case of call0 ABI. ("D" constraint): Include stack pointer in case of call0 ABI. * config/xtensa/xtensa-protos.h (xtensa_set_return_address, xtensa_expand_epilogue, xtensa_regno_to_class): Add new function prototypes. * config/xtensa/xtensa.c (xtensa_callee_save_size): New variable. (xtensa_regno_to_class): Make it a local variable in the function xtensa_regno_to_class. (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove macro, function prototype and implementation. (reg_nonleaf_alloc_order): Make it a local variable in the function order_regs_for_local_alloc. (xtensa_conditional_register_usage): New function. (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro. (xtensa_valid_move): Allow direct moves to stack pointer register in call0 ABI. (xtensa_setup_frame_addresses): Only spill register windows in windowed ABI. (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and call0 ABI respectively. (xtensa_function_arg_1): Only mark a7 register for copying in windowed ABI. (xtensa_call_save_reg): New function. (compute_frame_size): Add space for callee saved register storage to the frame size in call0 ABI. (xtensa_expand_prologue): Generate code to set up stack frame and save callee-saved registers in call0 ABI. (xtensa_expand_epilogue): New function. (xtensa_set_return_address): New function. (xtensa_return_addr): Calculate return address in call0 ABI. (xtensa_builtin_saveregs): Only mark a7 register for copying and emit copying code in windowed ABI. (order_regs_for_local_alloc): Add preferred register allocation order for non-leaf function in call0 ABI. (xtensa_static_chain): Add atatic chain passing for call0 ABI. (xtensa_asm_trampoline_template): Add trampoline generation for call0 ABI. (xtensa_trampoline_init): Add trampoline initialization for call0 ABI. (xtensa_conditional_register_usage, xtensa_regno_to_class): New functions. * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro. (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI. (CALL_USED_REGISTERS): Modify to encode both windowed and call0 ABI call-used registers. (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI. (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in call0 ABI. (REG_CLASS_CONTENTS): Include all registers into the preferred reload registers set, adjust the set in the xtensa_conditional_register_usage. (xtensa_regno_to_class): Drop variable declaration. (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class function. (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI respectively. (FUNCTION_PROFILER): Add _mcount call for call0 ABI. (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI. (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI. (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool location in call0 ABI. (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing stack adjustment size when handling exception. (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI. * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New definitions. ("return" pattern): Generate ret.n/ret in call0 ABI. ("epilogue" pattern): Expand epilogue. ("nonlocal_goto" pattern): Use default in call0 ABI. ("eh_return" pattern): Move implementation to eh_set_a0_windowed, emit eh_set_a0_* depending on ABI. ("eh_set_a0_windowed" pattern): Former eh_return pattern. ("eh_set_a0_call0", "blockage"): New patterns. libgcc/ * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill, __xtensa_nonlocal_goto): Don't compile for call0 ABI. (__xtensa_sync_caches): Only use entry and retw in windowed ABI, use ret in call0 ABI. * config/xtensa/t-windowed: New file. * libgcc/config/xtensa/t-xtensa (LIB2ADDEH): Move to t-windowed. * libgcc/configure: Regenerated. * libgcc/configure.ac: Check if xtensa target is configured for windowed ABI and thus needs to use custom unwind code. From-SVN: r221158
2015-03-02re PR libgcc/64885 (libstdc++ all_attributes failure)Jonathan Wakely2-2/+2
PR libgcc/64885 * gthr-single.h: Use __unused__ attribute instead of unused. * config/gthr-vxworks.h: Likewise. * config/i386/gthr-win32.h: Likewise. From-SVN: r221120
2015-02-23[PR target/65181] nvptx libgcc: Prevent building "advanced" stuff (for ↵Thomas Schwinge1-0/+5
example, gcov support) When building GCC against a proper newlib sysroot, the libgcc build will include more than what's built in the -Dinhibit_libc configuration used when building newlib as part of the GCC build process. See the inhibit_libc logic in gcc/configure.ac. To avoid... ptxas _gcov_indirect_call_topn_profiler.o, line 101; error : Type or alignment of argument does not match formal parameter 'ptr' ptxas _gcov_indirect_call_topn_profiler.o, line 101; error : Call has wrong number of parameters ptxas _gcov_indirect_call_topn_profiler.o, line 101; error : Type or alignment of argument does not match formal parameter 'size' ptxas fatal : Ptx assembly aborted due to errors nvptx-as: ptxas returned 255 exit status make[2]: *** [_gcov_indirect_call_topn_profiler.o] Error 1 ..., "dumb down" the libgcc build: libgcc/ PR target/65181 * config/nvptx/t-nvptx (INHIBIT_LIBC_CFLAGS): Define to -Dinhibit_libc. From-SVN: r220915
2015-02-17bpabi.S (test_div_by_zero): Make label names consistent between thumb2 and ↵Sandra Loosemore2-18/+26
arm mode cases. 2015-02-17 Sandra Loosemore <sandra@codesourcery.com> libgcc/ * config/arm/bpabi.S (test_div_by_zero): Make label names consistent between thumb2 and arm mode cases. Separate the signed comparison on the high word of the numerator from the unsigned comparison on the low word. * config/arm/bpabi-v6m.S (test_div_by_zero): Similarly separate signed comparison. gcc/testsuite/ * gcc.target/arm/divzero.c: New test case. From-SVN: r220765
2015-02-17Avoid dependence on libc headers in nvptx realloc.Joseph Myers1-3/+2
* config/nvptx/realloc.c: Include <stddef.h> instead of <stdlib.h> and <string.h>. (__nvptx_realloc): Call __builtin_memcpy instead of memcpy. From-SVN: r220764
2015-02-04fpmath-sf.S (__rl78_int_pack_a_r8): Fix edge case rounding up the fraction.Nick Clifton1-4/+10
* config/rl78/fpmath-sf.S (__rl78_int_pack_a_r8): Fix edge case rounding up the fraction. * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs inside a MEM. From-SVN: r220410
2015-01-31linux-atomic.c (__kernel_cmpxchg2): Change declaration of oldval and newval ↵John David Anglin1-29/+13
to const void *. * config/pa/linux-atomic.c (__kernel_cmpxchg2): Change declaration of oldval and newval to const void *. Fix typo. (FETCH_AND_OP_2): Use __atomic_load_n to load value. (FETCH_AND_OP_WORD): Likewise. (OP_AND_FETCH_WORD): Likewise. (COMPARE_AND_SWAP_2): Likewise. (__sync_val_compare_and_swap_4): Likewise. (__sync_lock_test_and_set_4): Likewise. (SYNC_LOCK_RELEASE_2): Likewise. Remove support for long long atomic operations. From-SVN: r220307
2015-01-27cmpsi2.S: Use function start and end macros.Nick Clifton10-53/+2017
* config/rl78/cmpsi2.S: Use function start and end macros. (__gcc_bcmp): New function. * config/rl78/lshrsi3.S: Use function start and end macros. * config/rl78/mulsi3.S: Add support for G10. (__mulqi3): New function for G10. * config/rl78/signbit.S: Use function start and end macros. * config/rl78/t-rl78 (LIB2ADD): Add bit-count.S, fpbit-sf.S and fpmath-sf.S. (LIB2FUNCS_EXCLUDE): Define. (LIB2FUNCS_ST): Define. * config/rl78/trampoline.S: Use function start and end macros. * config/rl78/vregs.h (START_FUNC): New macro. (START_ANOTHER_FUNC): New macro. (END_FUNC): New macro. (END_ANOTHER_FUNC): New macro. * config/rl78/bit-count.S: New file. Contains assembler implementations of the bit counting functions: ___clzhi2, __clzsi2, ctzhi2, ctzsi2, ffshi2, ffssi2, __partityhi2, __paritysi2, __popcounthi2 and __popcountsi2. * config/rl78/fpbit-sf.S: New file. Contains assembler implementationas of the math functions: __negsf2, __cmpsf2, __eqsf2, __nesf2, __lesf2, __ltsf2, __gesf2, gtsf2, __unordsf2, __fixsfsi, __fixunssfsi, __floatsisf and __floatunssisf. * config/rl78/fpmath-sf.S: New file. Contains assembler implementations of the math functions: __subsf3, __addsf3, __mulsf3 and __divsf3 From-SVN: r220162
2015-01-27Move Solaris/x86 CRT_GET_RFIB_DATA definition to libgccRainer Orth1-1/+1
gcc: * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove. libgcc: * config.host (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Add i386/elf-lib.h to tm_file. * config/i386/elf-lib.h: Fix comment. * unwind-dw2-fde-dip.c (_Unwind_IteratePhdrCallback) [__x86_64__ && __sun__ && __svr4__]: Remove workaround. From-SVN: r220160
2015-01-25i386.c (get_builtin_code_for_version): Add support for BMI and BMI2 ↵Allan Sandfeld Jensen1-1/+7
multiversion functions. gcc/ChangeLog: * config/i386/i386.c (get_builtin_code_for_version): Add support for BMI and BMI2 multiversion functions. (fold_builtin_cpu): Add F_BMI and F_BMI2. libgcc/ChangeLog: * config/i386/cpuinfo.c (enum processor_features): Add FEATURE_BMI and FEATURE_BMI2. (get_available_features): Detect FEATURE_BMI and FEATURE_BMI2. testsuite/ChangeLog: * gcc.target/i386/funcspec-5.c: Test new multiversion targets. * g++.dg/ext/mv17.C: Test BMI/BMI2 multiversion dispatcher. Co-Authored-By: Uros Bizjak <ubizjak@gmail.com> From-SVN: r220095
2015-01-24Support new Intel processor model numbersH.J. Lu1-0/+12
gcc/ * config/i386/driver-i386.c (host_detect_local_cpu): Check new Silvermont, Haswell, Broadwell and Knights Landing model numbers. * config/i386/i386.c (processor_model): Add M_INTEL_COREI7_BROADWELL. (arch_names_table): Add "broadwell". gcc/testsuite/ * gcc.target/i386/builtin_target.c (check_intel_cpu_model): Add Silvermont, Ivy Bridge, Haswell and Broadwell tests. Update Sandy Bridge test. 2015-01-24 H.J. Lu <hongjiu.lu@intel.com> * config/i386/cpuinfo.c (processor_subtypes): Add INTEL_COREI7_BROADWELL. (get_intel_cpu): Support new Silvermont, Haswell and Broadwell model numbers. From-SVN: r220090
2015-01-23elf-lib.h: New file.Uros Bizjak1-0/+36
libgcc/ChangeLog: * config/i386/elf-lib.h: New file. (CRT_GET_RFIB_DATA): Move definition from gcc/config/i386/gnu-user.h. Wrap definition in #ifdef __i386__. * libgcc/config.host (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu) (i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*) (i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux*) (x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu): Add i386/elf-lib.h to tm_file. gcc/ChangeLog: * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to libgcc/config/i386/elf-lib.h. From-SVN: r220056