summaryrefslogtreecommitdiff
path: root/libgcc
Commit message (Collapse)AuthorAgeFilesLines
* config.host (*-*-netbsd*): Add t-eh-dw2-dip to tmake_file.Krister Walfridsson2016-12-194-3/+10
| | | | | | | | | | 2016-12-19 Krister Walfridsson <krister.walfridsson@gmail.com> * config.host (*-*-netbsd*): Add t-eh-dw2-dip to tmake_file. * crtstuff.c (BSD_DL_ITERATE_PHDR_AVAILABLE): Define for NetBSD. * unwind-dw2-fde-dip.c (USE_PT_GNU_EH_FRAME, ElfW): Likewise. From-SVN: r243790
* gmon: Remove empty directory.Matthias Klose2016-12-171-0/+4
| | | | | | | | 2016-12-17 Matthias Klose <doko@ubuntu.com> * config/arc/gmon: Remove empty directory. From-SVN: r243775
* [ARC] Rework code for profiling.Claudiu Zissulescu2016-12-1618-1525/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gcc/ 2016-12-16 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.h (LINK_SPEC): Tidy up. (ENDFILE_SPEC): Likewise. (LIB_SPEC): Likewise. (STARTFILE_SPEC): Include gcrt0 when profiling. (FUNCTION_PROFILER): Use __mcount. * config/arc/arc.opt (mucb-mcount): Remove. * doc/invoke.texi (ARC): Remove mucb-mcount doc. * arc/arc-protos.h (arc_profile_call): Remove. * config/arc/arc.c (write_profile_sections): Likewise. (arc_profile_call): Likewise. (unspec_prof_hash): Likewise. (unspec_prof_htab_eq): Likewise. (arc_legitimate_constant_p): Remove UNSPEC_PROF. (arc_reorg): Remove call to write_profile_sections. * config/arc/arc.md (call): Remove call to arc_profile_call. (call_value): Likewise. (sibcall): Likewise. (sibcall_value): Likewise. (define_constants): Remove UNSPEC_PROF. libgcc/ * config.host (arc*-*-linux-uclibc*): Remove libgmon, crtg, and crtgend. (arc*-*-elf*): Likewise. * config/arc/t-arc: Remove old gmon lib targets. * config/arc/crtg.S: Remove. * config/arc/crtgend.S: Likewise. * config/arc/gmon/atomic.h: Likewise. * config/arc/gmon/auxreg.h: Likewise. * config/arc/gmon/dcache_linesz.S: Likewise. * config/arc/gmon/gmon.c: Likewise. * config/arc/gmon/machine-gmon.h: Likewise. * config/arc/gmon/mcount.c: Likewise. * config/arc/gmon/prof-freq-stub.S: Likewise. * config/arc/gmon/prof-freq.c: Likewise. * config/arc/gmon/profil.S: Likewise. * config/arc/gmon/sys/gmon.h: Likewise. * config/arc/gmon/sys/gmon_out.h: Likewise. * config/arc/t-arc-newlib: Likewise. * config/arc/t-arc700-uClibc: Renamed to t-arc-uClibc. From-SVN: r243742
* lib1funcs.S (__ashrdi3): Fix typo from r243545.George Spelvin2016-12-122-1/+5
| | | | | | | libgcc/ * config/avr/lib1funcs.S (__ashrdi3): Fix typo from r243545. From-SVN: r243546
* lib1funcs.S (__ashldi3): Use __tmp_reg__ to restore R16 instead of push + pop.George Spelvin2016-12-122-11/+24
| | | | | | | | | | libgcc/ 2016-12-12 George Spelvin <linux@sciencehorizons.net> * config/avr/lib1funcs.S (__ashldi3): Use __tmp_reg__ to restore R16 instead of push + pop. (__ashrdi3, __lshrdi3): Same. And use __zero_reg__ for signs. From-SVN: r243545
* config.host (i[34567]86-*-netbsdelf*): Add i386/t-crtstuff to tmake_file.Krister Walfridsson2016-12-102-0/+6
| | | | | | | | | 2016-12-10 Krister Walfridsson <krister.walfridsson@gmail.com> * config.host (i[34567]86-*-netbsdelf*): Add i386/t-crtstuff to tmake_file. From-SVN: r243518
* [ARC] Fix PIE.Cupertino Miranda2016-12-053-2/+11
| | | | | | | | | | | | | | | | | | gcc/ 2016-12-05 Cupertino Miranda <cmiranda@synopsys.com> * config/arc/arc.h (STARTFILE_SPEC): Use default linux specs. (ENDFILE_SPEC): Likewise. libgcc/ 2016-12-05 Cupertino Miranda <cmiranda@synopsys.com> * config.host (arc*-*-linux-uclibc*): Use default extra objects. Include linux-android header. * config/arc/crti.S (_init): Declare symbol as function. (_fini): Likewise. From-SVN: r243245
* re PR libfortran/78379 (Processor-specific versions for matmul)Thomas Koenig2016-12-033-90/+126
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2016-12-03 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/78379 * config/i386/cpuinfo.c: Move denums for processor vendors, processor type, processor subtypes and declaration of struct __processor_model into * config/i386/cpuinfo.h: New header file. * Makefile.am: Add dependence of m4/matmul_internal_m4 to mamtul files.. * Makefile.in: Regenerated. * acinclude.m4: Check for AVX, AVX2 and AVX512F. * config.h.in: Add HAVE_AVX, HAVE_AVX2 and HAVE_AVX512F. * configure: Regenerated. * configure.ac: Use checks for AVX, AVX2 and AVX_512F. * m4/matmul_internal.m4: New file. working part of matmul.m4. * m4/matmul.m4: Implement architecture-specific switching for AVX, AVX2 and AVX512F by including matmul_internal.m4 multiple times. * generated/matmul_c10.c: Regenerated. * generated/matmul_c16.c: Regenerated. * generated/matmul_c4.c: Regenerated. * generated/matmul_c8.c: Regenerated. * generated/matmul_i1.c: Regenerated. * generated/matmul_i16.c: Regenerated. * generated/matmul_i2.c: Regenerated. * generated/matmul_i4.c: Regenerated. * generated/matmul_i8.c: Regenerated. * generated/matmul_r10.c: Regenerated. * generated/matmul_r16.c: Regenerated. * generated/matmul_r4.c: Regenerated. * generated/matmul_r8.c: Regenerated. From-SVN: r243219
* ARMv8-M Security Extension's cmse_nonsecure_call: use __gnu_cmse_nonsecure_callAndre Vieira2016-12-023-0/+139
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gcc/ChangeLog: 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com> Thomas Preud'homme <thomas.preudhomme@arm.com> * config/arm/arm.c (detect_cmse_nonsecure_call): New. (cmse_nonsecure_call_clear_caller_saved): New. (arm_reorg): Use cmse_nonsecure_call_clear_caller_saved. (arm_function_ok_for_sibcall): Disable sibcalls for cmse_nonsecure_call. * config/arm/arm-protos.h (detect_cmse_nonsecure_call): New. * config/arm/arm.md (call): Handle cmse_nonsecure_entry. (call_value): Likewise. (nonsecure_call_internal): New. (nonsecure_call_value_internal): New. * config/arm/thumb1.md (*nonsecure_call_reg_thumb1_v5): New. (*nonsecure_call_value_reg_thumb1_v5): New. * config/arm/thumb2.md (*nonsecure_call_reg_thumb2): New. (*nonsecure_call_value_reg_thumb2): New. * config/arm/unspecs.md (UNSPEC_NONSECURE_MEM): New. libgcc/ChangeLog: 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com> Thomas Preud'homme <thomas.preudhomme@arm.com> * config/arm/cmse_nonsecure_call.S: New. * config/arm/t-arm: Compile cmse_nonsecure_call.S gcc/testsuite/ChangeLog: 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com> Thomas Preud'homme <thomas.preudhomme@arm.com> * gcc.target/arm/cmse/cmse.exp: Run tests in mainline dir. * gcc.target/arm/cmse/cmse-9.c: Added some extra tests. * gcc.target/arm/cmse/cmse-14.c: New. * gcc.target/arm/cmse/baseline/bitfield-4.c: New. * gcc.target/arm/cmse/baseline/bitfield-5.c: New. * gcc.target/arm/cmse/baseline/bitfield-6.c: New. * gcc.target/arm/cmse/baseline/bitfield-7.c: New. * gcc.target/arm/cmse/baseline/bitfield-8.c: New. * gcc.target/arm/cmse/baseline/bitfield-9.c: New. * gcc.target/arm/cmse/baseline/bitfield-and-union-1.c: New. * gcc.target/arm/cmse/baseline/cmse-11.c: New. * gcc.target/arm/cmse/baseline/cmse-13.c: New. * gcc.target/arm/cmse/baseline/cmse-6.c: New. * gcc.target/arm/cmse/baseline/union-1.c: New. * gcc.target/arm/cmse/baseline/union-2.c: New. * gcc.target/arm/cmse/mainline/bitfield-4.c: New. * gcc.target/arm/cmse/mainline/bitfield-5.c: New. * gcc.target/arm/cmse/mainline/bitfield-6.c: New. * gcc.target/arm/cmse/mainline/bitfield-7.c: New. * gcc.target/arm/cmse/mainline/bitfield-8.c: New. * gcc.target/arm/cmse/mainline/bitfield-9.c: New. * gcc.target/arm/cmse/mainline/bitfield-and-union-1.c: New. * gcc.target/arm/cmse/mainline/union-1.c: New. * gcc.target/arm/cmse/mainline/union-2.c: New. * gcc.target/arm/cmse/mainline/hard-sp/cmse-13.c: New. * gcc.target/arm/cmse/mainline/hard-sp/cmse-7.c: New. * gcc.target/arm/cmse/mainline/hard-sp/cmse-8.c: New. * gcc.target/arm/cmse/mainline/hard/cmse-13.c: New. * gcc.target/arm/cmse/mainline/hard/cmse-7.c: New. * gcc.target/arm/cmse/mainline/hard/cmse-8.c: New. * gcc.target/arm/cmse/mainline/soft/cmse-13.c: New. * gcc.target/arm/cmse/mainline/soft/cmse-7.c: New. * gcc.target/arm/cmse/mainline/soft/cmse-8.c: New. * gcc.target/arm/cmse/mainline/softfp-sp/cmse-7.c: New. * gcc.target/arm/cmse/mainline/softfp-sp/cmse-8.c: New. * gcc.target/arm/cmse/mainline/softfp/cmse-13.c: New. * gcc.target/arm/cmse/mainline/softfp/cmse-7.c: New. * gcc.target/arm/cmse/mainline/softfp/cmse-8.c: New. Co-Authored-By: Thomas Preud'homme <thomas.preudhomme@arm.com> From-SVN: r243192
* Add support for ARMv8-M's Secure Extensions flag and intrinsicsAndre Vieira2016-12-023-0/+126
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gcc/ChangeLog: 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com> Thomas Preud'homme <thomas.preudhomme@arm.com> * config.gcc (extra_headers): Added arm_cmse.h. * config/arm/arm-arches.def (ARM_ARCH): (armv8-m): Add FL2_CMSE. (armv8-m.main): Likewise. (armv8-m.main+dsp): Likewise. * config/arm/arm-c.c (arm_cpu_builtins): Added __ARM_FEATURE_CMSE macro. * config/arm/arm-flags.h: Define FL2_CMSE. * config/arm.c (arm_arch_cmse): New. (arm_option_override): New error for unsupported cmse target. * config/arm/arm.h (arm_arch_cmse): New. * config/arm/arm.opt (mcmse): New. * config/arm/arm_cmse.h: New file. * doc/invoke.texi (ARM Options): Add -mcmse. * doc/sourcebuild.texi (arm_cmse_ok): Add new effective target. * doc/extend.texi: Add ARMv8-M Security Extensions entry. gcc/testsuite/ChangeLog: 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com> Thomas Preud'homme <thomas.preudhomme@arm.com> * gcc.target/arm/cmse/cmse.exp: New. * gcc.target/arm/cmse/cmse-1.c: New. * gcc.target/arm/cmse/cmse-12.c: New. * lib/target-supports.exp (check_effective_target_arm_cmse_ok): New. libgcc/ChangeLog: 2016-12-02 Andre Vieira <andre.simoesdiasvieira@arm.com> Thomas Preud'homme <thomas.preudhomme@arm.com> * config/arm/t-arm (HAVE_CMSE): New. * config/arm/cmse.c: New. Co-Authored-By: Thomas Preud'homme <thomas.preudhomme@arm.com> From-SVN: r243187
* re PR target/74748 (libgcc_s.so.1 isn't created correctly for Blackfin FDPIC)Thomas Petazzoni2016-11-283-1893/+8
| | | | | | | | | | PR gcc/74748 * libgcc/config/bfin/libgcc-glibc.ver, libgcc/config/bfin/t-linux: use generic linker version information on Blackfin. 2016-11-27 Iain Sandoe <iain@codesourcery.com> From-SVN: r242934
* re PR target/74748 (libgcc_s.so.1 isn't created correctly for Blackfin FDPIC)Thomas Petazzoni2016-11-282-1/+10
| | | | | | | PR gcc/74748 * libgcc/mkmap-symver.awk: add support for skip_underscore From-SVN: r242933
* [Darwin] fix PR67710 by updating 'as' specs to handle newer assembler versions.Iain Sandoe2016-11-272-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A/ Newer versions of ld64 check the min_version command, and newer versions of the system assembler inserts this in response to "-mmacosx-version-min=" on the assembler line. Unless one makes sensible versions, some object is bound to conflict. B/ Additionally, there's a difference in behaviour between "as" and "ld" when presented with xx.yy.zz (ld truncates to xx.yy, as doesn't); net result is that one needs to pass a truncated version to "as". So (if the assembler supports minversion commands) (a) provide a truncated minversion (as asm_macosx_version_min, which is a driver-only var). (b) pass this to "as" (c) Update tests to determine 'HAVE_AS_MMACOSX_VERSION_MIN_OPTION' (Rainer's patch) (d) For some reason the testcases are "run" (it's not obvious they need to be, they are checking compile-time issues) - anyway, to preserve the status quo, I've left them as exec. However, the minimum version that can be code-gened for is target-dependent (there are no released x86 versions before 10.4, for example). To avoid conflicts where the "as" is assuming some minimum, I've set the testversion to 10.5 (which is supported by all the archs we have) (e) We need to ensure that libgcc and crts are generated with a sufficiently old minversion not to conflict. gcc/ 2016-11-27 Iain Sandoe <iain@codesourcery.com> Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> PR target/67710 * config.in: Regenerate * config/darwin-driver.c (darwin_driver_init): Emit a version string for the assembler. * config/darwin.h(ASM_MMACOSX_VERSION_MIN_SPEC): New, new tests. * config/darwin.opt(asm_macosx_version_min): New. * config/i386/darwin.h: Handle ASM_MMACOSX_VERSION_MIN_SPEC. * configure: Regenerate * configure.ac: Check for mmacosx-version-min handling. gcc/testsuite/ 2016-11-27 Iain Sandoe <iain@codesourcery.com> Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> Dominique d'Humieres <dominiq@lps.ens.fr> PR target/67710 * gcc.dg/darwin-minversion-1.c: Update min version check. * gcc.dg/darwin-minversion-2.c: Likewise. * gcc.dg/darwin-minversion-3.c: Likewise. libgcc/ 2016-11-27 Iain Sandoe <iain@codesourcery.com> Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> PR target/67710 * config/t-darwin: Default builds to 10.5 codegen. Co-Authored-By: Dominique d'Humieres <dominiq@lps.ens.fr> Co-Authored-By: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> From-SVN: r242898
* [Patch libgcc AArch64 12/17] Enable hfmode soft-float conversions and ↵James Greenhalgh2016-11-243-2/+13
| | | | | | | | | | | | | | | | | | | truncations gcc/ * config/aarch64/aarch64-c.c (aarch64_scalar_mode_supported_p): New. (TARGET_SCALAR_MODE_SUPPORTED_P): Define. libgcc/ * config/aarch64/sfp-machine.h (_FP_NANFRAC_H): Define. (_FP_NANSIGN_H): Likewise. * config/aarch64/t-softfp (softfp_extensions): Add hftf. (softfp_truncations): Add tfhf. (softfp_extras): Add required conversion functions. From-SVN: r242844
* [Patch 15/17 libgcc ARM] Add double to half conversions.James Greenhalgh2016-11-232-0/+35
| | | | | | | | | | | | | | | libgcc/ * config/arm/fp16.c (binary64): New. (__gnu_d2h_internal): New. (__gnu_d2h_ieee): New. (__gnu_d2h_alternative): New. Co-Authored-By: Matthew Wahab <matthew.wahab@arm.com> From-SVN: r242782
* [Patch 14/17] [libgcc, ARM] Generalise float-to-half conversion function.James Greenhalgh2016-11-232-18/+82
| | | | | | | | | | | | | | | | | libgcc/ * config/arm/fp16.c (struct format): New. (binary32): New. (__gnu_float2h_internal): New. Body moved from __gnu_f2h_internal and generalize. (_gnu_f2h_internal): Move body to function __gnu_float2h_internal. Call it with binary32. Co-Authored-By: Matthew Wahab <matthew.wahab@arm.com> From-SVN: r242781
* [Patch libgcc 9/17] Update soft-fp from glibcJames Greenhalgh2016-11-238-0/+465
| | | | | | | | | | | | | | libgcc/ * soft-fp/extendhftf2.c: New. * soft-fp/fixhfti.c: Likewise. * soft-fp/fixunshfti.c: Likewise. * soft-fp/floattihf.c: Likewise. * soft-fp/floatuntihf.c: Likewise. * soft-fp/half.h: Likewise. * soft-fp/trunctfhf2.c: Likewise. From-SVN: r242779
* Protect __TMC_END__ - __TMC_LIST__ == 0Marc Glisse2016-11-202-3/+15
| | | | | | | | | | 2016-11-20 Marc Glisse <marc.glisse@inria.fr> PR libgcc/77813 * crtstuff.c (deregister_tm_clones, register_tm_clones): Hide __TMC_END__ behind a passthrough asm. From-SVN: r242635
* TILEPro: force gcc to link against libgcc.a when creating sharedWalter Lee2016-11-192-1/+5
| | | | | | | | libraries. * config.host (tilepro*-*-linux*): Add t-slibgcc-libgcc. From-SVN: r242615
* Add avx5124vnniw/avx5124fmaps to target attributesH.J. Lu2016-11-172-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | gcc/ 2016-11-17 Andrew Senkevich <andrew.senkevich@intel.com> * config/i386/i386.c (processor_features): Add F_AVX5124VNNIW, F_AVX5124FMAPS. (isa_names_table): Handle new features. gcc/testsuite/ 2016-11-17 Andrew Senkevich <andrew.senkevich@intel.com> * gcc.target/i386/builtin_target.c: Handle new "avx5124vnniw", "avx5124fmaps". * gcc.target/i386/funcspec-56.inc: Test new attributes. libgcc/ 2016-11-17 Andrew Senkevich <andrew.senkevich@intel.com> * config/i386/cpuinfo.c (processor_features): Add FEATURE_AVX5124VNNIW, FEATURE_AVX5124FMAPS. From-SVN: r242570
* [ARC][libgcc] Add support for QuarkSE processor.Claudiu Zissulescu2016-11-174-66/+82
| | | | | | | | | | | | | libgcc/ 2016-11-17 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/dp-hack.h (ARC_OPTFPE): Define. (__ARC_NORM__): Use instead ARC_OPTFPE. * config/arc/fp-hack.h: Likewise. * config/arc/lib1funcs.S (ARC_OPTFPE): Define. (__ARC_MPY__): Use it insetead of __ARC700__ and __HS__. From-SVN: r242547
* nvptx backend prerequisites for OpenMP offloadingAlexander Monakov2016-11-164-1/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gcc/ * config/nvptx/mkoffload.c (main): Check that either OpenACC or OpenMP is selected. Pass -mgomp to offload compiler in OpenMP case. * config/nvptx/nvptx-protos.h (nvptx_shuffle_kind): Move enum declaration from nvptx.c. (nvptx_gen_shuffle): Declare. (nvptx_output_set_softstack): Declare. * config/nvptx/nvptx.c (nvptx_shuffle_kind): Move to nvptx-protos.h. (need_softstack_decl): New variable. (need_unisimt_decl): New variable. (diagnose_openacc_conflict): New. Use it... (nvptx_option_override): ...here. Handle TARGET_GOMP. (nvptx_encode_section_info): Handle "shared" attribute. (write_as_kernel): Restrict to OpenACC target regions. (init_softstack_frame): New. (nvptx_init_unisimt_predicate): New. (write_omp_entry): New. Use it... (nvptx_declare_function_name): ...here to emit OpenMP target region entrypoints. Handle TARGET_SOFT_STACK. Call nvptx_init_unisimt_predicate. (nvptx_output_set_softstack): New. (nvptx_get_drap_rtx): Return %argp as the DRAP if needed. (nvptx_gen_shuffle): Export. (nvptx_output_call_insn): Handle COND_EXEC patterns. Emit instruction predicate. (nvptx_print_operand): Fix handling of instruction predicates. (nvptx_get_unisimt_master): New helper function. (nvptx_get_unisimt_predicate): Ditto. (nvptx_call_insn_is_syscall_p): Ditto. (nvptx_unisimt_handle_set): Ditto. (nvptx_reorg_uniform_simt): New. Transform code for -muniform-simt. (nvptx_reorg): Call nvptx_reorg_uniform_simt. (nvptx_handle_shared_attribute): New. Use it... (nvptx_attribute_table): ... here (new entry). (nvptx_record_offload_symbol): Handle NULL attributes. (nvptx_file_end): Handle need_softstack_decl and need_unisimt_decl. (nvptx_simt_vf): New. (TARGET_SIMT_VF): Define. * config/nvptx/nvptx.h (TARGET_CPU_CPP_BUILTINS): Define __nvptx_softstack or __nvptx_unisimt__ when -msoft-stack, or resp. -muniform-simt option is active. (STACK_SIZE_MODE): Define. (FIXED_REGISTERS): Adjust. (SOFTSTACK_SLOT_REGNUM): New. (SOFTSTACK_PREV_REGNUM): New. (REGISTER_NAMES): Adjust. (struct machine_function): New fields. * config/nvptx/nvptx.md (UNSPEC_SET_SOFTSTACK): New. (UNSPEC_VOTE_BALLOT): Ditto. (UNSPEC_LANEID): Ditto. (UNSPECV_NOUNROLL): Ditto. (atomic): New attribute. (predicable): New attribute. Generate predicated forms via define_cond_exec. (br_true): Mark as not predicable. (br_false): Ditto. (br_true_uni): Ditto. (br_false_uni): Ditto. (return): Ditto. (trap_if_true): Ditto. (trap_if_false): Ditto. (nvptx_fork): Ditto. (nvptx_forked): Ditto. (nvptx_joining): Ditto. (nvptx_join): Ditto. (nvptx_barsync): Ditto. (epilogue): Emit stack restore if TARGET_SOFT_STACK. (allocate_stack): Implement for TARGET_SOFT_STACK. Remove unused code. (allocate_stack_<mode>): Remove unused pattern. (set_softstack_insn): New pattern. (restore_stack_block): Handle for TARGET_SOFT_STACK. (nvptx_vote_ballot): New pattern. (omp_simt_lane): Ditto. (omp_simt_last_lane): Ditto. (omp_simt_ordered): Ditto. (omp_simt_vote_any): Ditto. (omp_simt_xchg_bfly): Ditto. (omp_simt_xchg_idx): Ditto. (nvptx_nounroll): Ditto. (atomic_compare_and_swap<mode>_1): Mark with atomic attribute. (atomic_exchange<mode>): Ditto. (atomic_fetch_add<mode>): Ditto. (atomic_fetch_addsf): Ditto. (atomic_fetch_<logic><mode>): Ditto. * config/nvptx/nvptx.opt: (msoft-stack): New option. (muniform-simt): Ditto. (mgomp): Ditto. * config/nvptx/t-nvptx (MULTILIB_OPTIONS): New. * doc/extend.texi (Nvidia PTX Variable Attributes): New section. * doc/invoke.texi (msoft-stack): Document. (muniform-simt): Document (mgomp): Document. * doc/tm.texi: Regenerate. * doc/tm.texi.in: (TARGET_SIMT_VF): New hook. * target.def: Define it. * target-insns.def (omp_simt_lane): New. (omp_simt_last_lane): New. (omp_simt_ordered): New. (omp_simt_vote_any): New. (omp_simt_xchg_bfly): New. (omp_simt_xchg_idx): New. libgcc/ * config/nvptx/crt0.c (__main): Setup __nvptx_stacks and __nvptx_uni. * config/nvptx/mgomp.c: New file. * config/nvptx/t-nvptx: Add mgomp.c gcc/testsuite/ * lib/target-supports.exp (check_effective_target_alloca): Use a compile test. * gcc.target/nvptx/softstack.c: New test. * gcc.target/nvptx/decl-shared.c: New test. * gcc.target/nvptx/decl-shared-init.c: New test. From-SVN: r242503
* re PR libgcc/68468 (frv/bfin FDPIC toolchain build error)Waldemar Brodkorb2016-11-162-2/+11
| | | | | | | PR libgcc/68468 * unwind-dw2-fde-dip.c: Fix build on FDPIC targets. From-SVN: r242468
* [ARC] [libgcc] Fix definesClaudiu Zissulescu2016-11-152-21/+31
| | | | | | | | | | | | libgcc/ 2016-11-15 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/lib1funcs.S (__mulsi3): Use feature defines instead of checking for cpus. (__umulsidi3, __umulsi3_highpart, __udivmodsi4, __divsi3) (__modsi3, __clzsi2): Likewise. From-SVN: r242428
* [i386][musl] Add cpuinfo to static libgcc only on *-musl*Szabolcs Nagy2016-11-113-1/+18
| | | | | | | | | | | | | | | | | | | | The __cpu_indicator_init and __cpu_model symbols are not safe to use from shared libgcc_s.so from ifunc resolvers, so since gcc-6, only the definitions from static libgcc.a are used, however the symbols are kept in libgcc_s as well for backward compatibility (with appropriate symbol version). On targets without such backward compatibility concern add cpuinfo to the static library only (this avoids running the ctor, reduces libgcc_s size and elf abi concerns about the versioned symbols). libgcc/ 2016-11-11 Szabolcs Nagy <szabolcs.nagy@arm.com> * config.host (i[3456]86-*-musl*, x86_64-*-musl*): Use i386/t-cpuinfo-static instead of i386/t-cpuinfo. * config/i386/t-cpuinfo-static: New. From-SVN: r242268
* Make direct emission of time profiler counterMartin Liska2016-11-032-22/+6
| | | | | | | | | | | | | | | | | | | * libgcov-profiler.c (__gcov_time_profiler): Remove. (__gcov_time_profiler_atomic): Likewise. * profile.c (instrument_values): Fix coding style. (branch_prob): Use renamed function. * tree-profile.c (init_ic_make_global_vars): Likewise. (gimple_init_edge_profiler): Rename to gimple_init_gcov_profiler. tree_time_profiler_counter variable declaration. (gimple_gen_time_profiler): Rewrite to do a direct gimple code emission. * value-prof.h: Remove an argument. * gcc.dg/no_profile_instrument_function-attr-1.c: Update scanned output. * gcc.dg/tree-prof/time-profiler-3.c: New test. From-SVN: r241821
* re PR libgcc/78067 (libgcc2 calls count_leading_zero with 0)Bernd Edlinger2016-11-032-0/+11
| | | | | | | | | | | | | | | | 2016-11-03 Bernd Edlinger <bernd.edlinger@hotmail.de> PR libgcc/78067 * libgcc2.c (__floatdisf, __floatdidf): Avoid undefined results from count_leading_zeros. testsuite: 2016-11-03 Bernd Edlinger <bernd.edlinger@hotmail.de> PR libgcc/78067 * gcc.dg/torture/fp-int-convert.h: Add more conversion tests. From-SVN: r241817
* Makefile.in (LIB2_DIVMOD_FUNCS): Add _divmoddi4.Uros Bizjak2016-11-025-11/+56
| | | | | | | | | | * Makefile.in (LIB2_DIVMOD_FUNCS): Add _divmoddi4. * libgcc2.c (__divmoddi4): New function. * libgcc2.h (__divmoddi4): Declare. * libgcc-std.ver.in (GCC_7.0.0): New. Add __PFX_divmoddi4 and __PFX_divmodti4. From-SVN: r241804
* PR libgcc/78064: Add missing include directive to unwind-c.cFlorian Weimer2016-10-242-0/+6
| | | | | | | PR libgcc/78064 * unwind-c.c: Include auto-target.h. From-SVN: r241491
* pa64-hpux-lib.h: New file.John David Anglin2016-10-193-0/+110
| | | | | | | | | | | | | | | | libgcc/ * config/pa/pa64-hpux-lib.h: New file. (EH_FRAME_SECTION_NAME): Rename to __LIBGCC_EH_FRAME_SECTION_NAME__. (DTORS_SECTION_ASM_OP): Rename to __LIBGCC_DTORS_SECTION_ASM_OP__. * config.host (tm_file): Add pa/pa64-hpux-lib.h to tm_file on hppa*64*-*-hpux11*. gcc/ * config/pa/pa64-hpux.h (PA_INIT_FRAME_DUMMY_ASM_OP): Move to config/pa/pa64-hpux-lib.h. (PA_CRTBEGIN_HACK): Likewise. (DTOR_LIST_BEGIN): Likewise. From-SVN: r241356
* xtensa: don't use unwind-dw2-fde-dip with elf targetsMax Filippov2016-10-184-1/+15
| | | | | | | | | | | | | | | | | | | | | | | Define LIB2ADDEH_XTENSA_UNWIND_DW2_FDE to unwind-dw2-fde.c in xtensa/t-elf and to unwind-dw2-fde-dip.c in xtensa/t-linux and use LIB2ADDEH_XTENSA_UNWIND_DW2_FDE in LIB2ADDEH definition. This fixes build for elf target with windowed xtensa core that currently breaks with the following error message: unwind-dw2-fde-dip.c:36:40: fatal error: elf.h: No such file or directory 2016-10-18 Max Filippov <jcmvbkbc@gmail.com> libgcc/ * config/xtensa/t-elf (LIB2ADDEH_XTENSA_UNWIND_DW2_FDE): New definition. * config/xtensa/t-linux (LIB2ADDEH_XTENSA_UNWIND_DW2_FDE): New definition. * config/xtensa/t-windowed (LIB2ADDEH): Use LIB2ADDEH_XTENSA_UNWIND_DW2_FDE defined by either xtensa/t-elf or xtensa/t-linux. From-SVN: r241313
* xtensa: add HW FPU sequences for DIV/SQRT/RECIP/RSQRTDing-Kai Chen2016-10-184-3/+348
| | | | | | | | | | | | | | | | | | | | | Use new FPU instruction sequences documented in the ISA book to implement __divsf3, __divdf3, __recipsf2, __recipdf2, __rsqrtsf2, __rsqrtdf2 and __ieee754_sqrtf and __ieee754_sqrt. 2016-10-18 Ding-Kai Chen <dkchen@cadence.com> libgcc/ * config/xtensa/ieee754-df.S (__recipdf2, __rsqrtdf2, __ieee754_sqrt): New functions. (__divdf3): Add implementation with new FPU instructions under #if XCHAL_HAVE_DFP_DIV. * config/xtensa/ieee754-sf.S (__recipsf2, __rsqrtsf2, __ieee754_sqrtf): New functions. (__divsf3): Add implementation with new FPU instructions under #if XCHAL_HAVE_FP_DIV. * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add _sqrtf, _recipsf2 _rsqrtsf2, _sqrt, _recipdf2 and _rsqrtdf2. From-SVN: r241312
* Move MEMMODEL_* from coretypes.h to memmodel.hThomas Preud'homme2016-10-133-18/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2016-10-13 Thomas Preud'homme <thomas.preudhomme@arm.com> gcc/ * coretypes.h: Move MEMMODEL_* macros and enum memmodel definition into ... * memmodel.h: This file. * alias.c, asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, caller-save.c, calls.c, ccmp.c, cfgbuild.c, cfgcleanup.c, cfgexpand.c, cfgloopanal.c, cfgrtl.c, cilk-common.c, combine.c, combine-stack-adj.c, common/config/aarch64/aarch64-common.c, common/config/arm/arm-common.c, common/config/bfin/bfin-common.c, common/config/c6x/c6x-common.c, common/config/i386/i386-common.c, common/config/ia64/ia64-common.c, common/config/nvptx/nvptx-common.c, compare-elim.c, config/aarch64/aarch64-builtins.c, config/aarch64/aarch64-c.c, config/aarch64/cortex-a57-fma-steering.c, config/arc/arc.c, config/arc/arc-c.c, config/arm/arm-builtins.c, config/arm/arm-c.c, config/avr/avr.c, config/avr/avr-c.c, config/avr/avr-log.c, config/bfin/bfin.c, config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c, config/darwin-c.c, config/darwin.c, config/epiphany/epiphany.c, config/epiphany/mode-switch-use.c, config/epiphany/resolve-sw-modes.c, config/fr30/fr30.c, config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c, config/i386/i386-c.c, config/i386/winnt.c, config/iq2000/iq2000.c, config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c, config/mcore/mcore.c, config/microblaze/microblaze.c, config/mmix/mmix.c, config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c, config/nds32/nds32-cost.c, config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c, config/nds32/nds32-memory-manipulation.c, config/nds32/nds32-predicates.c, config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c, config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c, config/rs6000/rs6000-c.c, config/rx/rx.c, config/s390/s390-c.c, config/s390/s390.c, config/sh/sh.c, config/sh/sh-c.c, config/sh/sh-mem.cc, config/sh/sh_treg_combine.cc, config/sol2.c, config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c, config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c, config/visium/visium.c, config/vms/vms-c.c, config/xtensa/xtensa.c, coverage.c, cppbuiltin.c, cprop.c, cse.c, cselib.c, dbxout.c, dce.c, df-core.c, df-problems.c, df-scan.c, dojump.c, dse.c, dwarf2asm.c, dwarf2cfi.c, dwarf2out.c, emit-rtl.c, except.c, explow.c, expmed.c, expr.c, final.c, fold-const.c, function.c, fwprop.c, gcse.c, ggc-page.c, haifa-sched.c, hsa-brig.c, hsa-gen.c, hw-doloop.c, ifcvt.c, init-regs.c, internal-fn.c, ira-build.c, ira-color.c, ira-conflicts.c, ira-costs.c, ira-emit.c, ira-lives.c, ira.c, jump.c, loop-doloop.c, loop-invariant.c, loop-iv.c, loop-unroll.c, lower-subreg.c, lra.c, lra-assigns.c, lra-coalesce.c, lra-constraints.c, lra-eliminations.c, lra-lives.c, lra-remat.c, lra-spills.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c, postreload-gcse.c, postreload.c, predict.c, print-rtl-function.c, recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c, reload.c, reload1.c, reorg.c, resource.c, rtl-chkp.c, rtl-tests.c, rtlanal.c, rtlhooks.c, sched-deps.c, sched-rgn.c, sdbout.c, sel-sched-ir.c, sel-sched.c, shrink-wrap.c, simplify-rtx.c, stack-ptr-mod.c, stmt.c, stor-layout.c, target-globals.c, targhooks.c, toplev.c, tree-nested.c, tree-outof-ssa.c, tree-profile.c, tree-ssa-coalesce.c, tree-ssa-ifcombine.c, tree-ssa-loop-ivopts.c, tree-ssa-loop.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-vect-data-refs.c, ubsan.c, valtrack.c, var-tracking.c, varasm.c: Include memmodel.h. * genattrtab.c (write_header): Include memmodel.h in generated file. * genautomata.c (main): Likewise. * gengtype.c (open_base_files): Likewise. * genopinit.c (main): Likewise. * genconditions.c (write_header): Include memmodel.h earlier in generated file. * genemit.c (main): Likewise. * genoutput.c (output_prologue): Likewise. * genpeep.c (main): Likewise. * genpreds.c (write_insn_preds_c): Likewise. * genrecog.c (write_header): Likewise. * Makefile.in (PLUGIN_HEADERS): Include memmodel.h gcc/ada/ * gcc-interface/utils2.c: Include memmodel.h. gcc/c-family/ * c-cppbuiltin.c: Include memmodel.h. * c-opts.c: Likewise. * c-pragma.c: Likewise. * c-warn.c: Likewise. gcc/c/ * c-typeck.c: Include memmodel.h. gcc/cp/ * decl2.c: Include memmodel.h. * rtti.c: Likewise. gcc/fortran/ * trans-intrinsic.c: Include memmodel.h. gcc/go/ * go-backend.c: Include memmodel.h. libgcc/ * libgcov-profiler.c: Replace MEMMODEL_* macros by their __ATOMIC_* equivalent. * config/tilepro/atomic.c: Likewise and stop casting model to enum memmodel. From-SVN: r241121
* Always support float128 on ia64 (PR target/77586).Joseph Myers2016-10-102-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug 77586, and previously <https://gcc.gnu.org/ml/gcc-bugs/2016-08/msg03233.html>, reports ia64-elf failing to build because of float128_type_node being NULL, but being used by the back end for __float128. The global float128_type_node is only available conditionally, if target hooks indicate TFmode is not only available as a scalar mode and of the right format, but also supported in libgcc. The back-end support, however, expects the type always to be available for __float128 even if the libgcc support is missing. Although a target-specific node could be restored in the case where libgcc support is missing, it seems better to address the missing libgcc support. Thus, this patch enables TFmode soft-fp in libgcc globally for all ia64 targets. Support for XFmode in libgcc (that is, for libgcc2.c XFmode functions, not soft-fp) is also enabled for all ia64 targets so that ia64 no longer needs to define the TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P hook. I've confirmed that ia64-elf builds cc1 with this patch and it passes -fself-test. I have not otherwise tested the patch. It's plausible that ia64-elf and ia64-freebsd might work as-is, but ia64-vms probably needs further changes, by someone familiar with VMS shared libraries, to implement an equivalent of ia64/t-softfp-compat in that case (avoiding conflicts between __divtf3 from soft-fp and the old alias for __divxf3). PR target/77586 gcc: * config/ia64/ia64.c (ia64_libgcc_floating_mode_supported_p) (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove. * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Likewise. * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Likewise. * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE) (IA64_NO_LIBGCC_TFMODE): Likewise. libgcc: * config.host (ia64*-*-elf*, ia64*-*-freebsd*, ia64-hp-*vms*): Use soft-fp. From-SVN: r240955
* configure.ac: Add aarch64-*-freebsd*.Andreas Tobler2016-10-102-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | toplevel: 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org> * configure.ac: Add aarch64-*-freebsd*. * configure: Regenerate. gcc: 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org> * config.gcc: Add aarch64-*-freebsd* support. * config.host: Likewise. * config/aarch64/aarch64-freebsd.h: New file. * config/aarch64/t-aarch64-freebsd: Ditto. libgcc: 2016-10-10 Andreas Tobler <andreast@gcc.gnu.org> * config.host: Add support for aarch64-*-freebsd*. From-SVN: r240949
* crtbegin.S (__do_jv_register_classes): Remove.Andreas Schwab2016-10-052-63/+6
| | | | | | | | * config/ia64/crtbegin.S (__do_jv_register_classes): Remove. (.section .init_array): Don't call __do_jv_register_classes. (.section .init): Likewise. From-SVN: r240771
* defaults.h (JCR_SECTION_NAME, [...]): Remove.Jakub Jelinek2016-10-046-97/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gcc/ * defaults.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Remove. * system.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Poison. * doc/tm.texi.in (TARGET_USE_JCR_SECTION): Remove. * doc/tm.texi: Regenerated. * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Remove. * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Remove. * config/darwin.h (JCR_SECTION_NAME): Remove. * config/pa/pa64-hpux.h (JCR_SECTION_NAME): Remove. * config/rs6000/aix71.h (TARGET_USE_JCR_SECTION): Remove. * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Remove. * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Remove. * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Remove. * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Remove. gcc/c-family/ * c-cppbuiltin.c (c_cpp_builtins): Don't define __LIBGCC_JCR_SECTION_NAME__. libgcc/ * config/i386/cygming-crtbegin.c (_Jv_RegisterClasses): Remove. (__JCR_LIST__): Remove. (__gcc_register_frame): Don't attempt to _Jv_RegisterClasses. * config/i386/cygming-crtend.c (__JCR_END__): Remove. * config/ia64/crtbegin.S (__JCR_LIST__): Remove. * config/ia64/crtend.S (__JCR_END__): Remove. * crtstuff.c: Remove __LIBGCC_JCR_SECTION_NAME__ from preprocessor conditionals. (__JCR_LIST__, __JCR_END__): Remove. (frame_dummy): Don't attempt to _Jv_RegisterClasses. (__do_global_ctors_1): Likewise. From-SVN: r240739
* cpuinfo.c (__get_cpuid_output): Remove.Uros Bizjak2016-09-282-17/+8
| | | | | | | * config/i386/cpuinfo.c (__get_cpuid_output): Remove. (__cpu_indicator_init): Call __get_cpuid, not __get_cpuid_output. From-SVN: r240590
* gcov: dump in a static dtor instead of in an atexit handlerMartin Liska2016-09-273-3/+15
| | | | | | | | | | | | | | | | | PR gcov-profile/7970 PR gcov-profile/16855 PR gcov-profile/44779 * g++.dg/gcov/pr16855.C: New test. * coverage.c (build_gcov_exit_decl): New function. (coverage_obj_init): Call the function and generate __gcov_exit destructor. * doc/gcov.texi: Document when __gcov_exit function is called. * libgcov-driver.c (__gcov_init): Do not register a atexit handler. (__gcov_exit): Rename from gcov_exit. * libgcov.h (__gcov_exit): Declare. From-SVN: r240529
* Remove __gcov_merge_delta (PR bootstrap/77749)Martin Liska2016-09-275-68/+9
| | | | | | | | | | | | PR bootstrap/77749 * gcov-counter.def: Remove GCOV_COUNTER_V_DELTA. PR bootstrap/77749 * Makefile.in: Remove _gcov_merge_delta. * libgcov-merge.c (void __gcov_merge_delta): Remove. * libgcov-util.c (__gcov_delta_counter_op): Remove. * libgcov.h: Remove declaration of __gcov_merge_delta. From-SVN: r240524
* configure.ac: Do not create links, only substitute the filenames.Eric Botcazou2016-09-214-58/+45
| | | | | | | | | | | | | | | | * configure.ac: Do not create links, only substitute the filenames. * configure: Regenerate. * Makefile.in: Assign the substitution results to variables. (LIBGCC_LINKS): Define. (enable-execute-stack.c): New rule. (unwind.h): Likewise. (md-unwind-support.h): Likewise. (sfp-machine.h): Likewise. (gthr-default.h): Likewise. Add $(LIBGCC_LINKS) to the prerequisites of all object files and unwind.h as prerequisite of install-unwind_h-forbuild. From-SVN: r240312
* re PR libgcc/71744 (Concurrently throwing exceptions is not scalable)Jakub Jelinek2016-09-162-0/+52
| | | | | | | | | | | | | PR libgcc/71744 * unwind-dw2-fde.c (ATOMIC_FDE_FAST_PATH): Define if __register_frame* is not the primary registry and atomics are available. (any_objects_registered): New variable. (__register_frame_info_bases, __register_frame_info_table_bases): Atomically store 1 to any_objects_registered after registering first unwind info. (_Unwind_Find_FDE): Return early if any_objects_registered is 0. From-SVN: r240193
* [Patch libgcc] Enable HCmode multiply and divide (mulhc3/divhc3)James Greenhalgh2016-09-094-6/+39
| | | | | | | | | | | | | | | | | | | This patch arranges for half-precision complex multiply and divide routines to be built if __LIBGCC_HAS_HF_MODE__. This will be true if the target supports the _Float16 type. libgcc/ PR target/63250 * Makefile.in (lib2funcs): Build _mulhc3 and _divhc3. * libgcc2.h (LIBGCC_HAS_HF_MODE): Conditionally define. (HFtype): Likewise. (HCtype): Likewise. (__divhc3): Likewise. (__mulhc3): Likewise. * libgcc2.c: Support _mulhc3 and _divhc3. From-SVN: r240043
* Correct libgcc complex multiply excess precision handling (PR libgcc/77519).Joseph Myers2016-09-082-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | libgcc complex multiply is meant to eliminate excess precision from certain internal values by forcing them to memory in exactly those cases where the type has excess precision. But in https://gcc.gnu.org/ml/gcc-patches/2014-09/msg01894.html I accidentally inverted the logic so that values get forced to memory in exactly the cases where it's not needed. (This is a pessimization in the no-excess-precision case, in principle could lead to bad results depending on code generation in the excess-precision case. Note: I do not have a test demonstrating bad results.) Bootstrapped with no regressions on x86_64-pc-linux-gnu. Code size went down on x86_64 as expected; old sizes: text data bss dec hex filename 887 0 0 887 377 _muldc3.o 810 0 0 810 32a _mulsc3.o 2032 0 0 2032 7f0 _multc3.o 983 0 0 983 3d7 _mulxc3.o New sizes: 847 0 0 847 34f _muldc3.o 770 0 0 770 302 _mulsc3.o 2032 0 0 2032 7f0 _multc3.o 951 0 0 951 3b7 _mulxc3.o PR libgcc/77519 * libgcc2.c (NOTRUNC): Invert settings. From-SVN: r240033
* Detect whether target can use -fprofile-update=atomicMartin Liska2016-09-062-5/+25
| | | | | | | | | | | | | | | | PR gcov-profile/77378 PR gcov-profile/77466 * libgcov-profiler.c: Use __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{4,8} to conditionaly enable/disable *_atomic functions. PR gcov-profile/77378 PR gcov-profile/77466 * tree-profile.c (tree_profiling): Detect whether target can use -fprofile-update=atomic. PR gcov-profile/77378 PR gcov-profile/77466 * gcc.dg/profile-update-warning.c: New test. From-SVN: r240008
* Always support float128 on x86.Joseph Myers2016-08-262-12/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In <https://gcc.gnu.org/ml/gcc-bugs/2016-08/msg03233.html>, Nick reported i386-elf and ia64-elf failing to build because of float128_type_node being NULL, but being used by the back end for __float128. The global float128_type_node is only available conditionally, if target hooks indicate TFmode is not only available as a scalar mode and of the right format, but also supported in libgcc. The back-end support, however, expects the type always to be available for __float128 even if the libgcc support is missing. Although a target-specific node could be restored in the case where libgcc support is missing, it seems better to address the missing libgcc support. Thus, this patch enables TFmode soft-fp in libgcc globally for all x86 targets - the only special cases needed being for targets that use soft-fp for SFmode and DFmode, one of which already had the support for TFmode as well (so I based the i[34567]86-*-rtems* configuration on that present for i[34567]86-*-elfiamcu). The i386 implementation of TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P is then removed as no longer needed. I can provide such a patch for ia64 if useful, but am not in a position to test it (and while I'm reasonably confident that enabling this support would be right for ia64-elf and ia64-freebsd, I've no real idea if enabling libgcc support for TFmode, with or without also enabling it for XFmode, would be safe for ia64-vms). Bootstrapped with no regressions on x86_64-pc-linux-gnu. gcc: * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p) (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove. * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise. * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise. * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise. * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise. * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise. * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise. * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Likewise. * config/i386/vxworks.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise. libgcc: * config.host (i[34567]86-*-* | x86_64-*-*): Enable TFmode soft-fp where not already enabled. From-SVN: r239775
* [mips] Fix linux header use in libgccSzabolcs Nagy2016-08-252-1/+5
| | | | | | | libgcc/ * config/mips/linux-unwind.h: Use sys/syscall.h. From-SVN: r239759
* Update soft-fp from glibc (PR libgcc/77265).Joseph Myers2016-08-1682-81/+170
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch updates soft-fp from glibc, bringing in the fix for PR libgcc/77265, XFmode extension to TFmode wrongly turning an infinity into a NaN. A test for that bug is added. Bootstrapped with no regressions on x86_64-pc-linux-gnu. PR libgcc/77265 gcc/testsuite: * gcc.dg/torture/float128-extend-inf.c: New test. libgcc: * soft-fp/adddf3.c: Update from glibc. * soft-fp/addsf3.c: Likewise. * soft-fp/addtf3.c: Likewise. * soft-fp/divdf3.c: Likewise. * soft-fp/divsf3.c: Likewise. * soft-fp/divtf3.c: Likewise. * soft-fp/double.h: Likewise. * soft-fp/eqdf2.c: Likewise. * soft-fp/eqsf2.c: Likewise. * soft-fp/eqtf2.c: Likewise. * soft-fp/extenddftf2.c: Likewise. * soft-fp/extended.h: Likewise. * soft-fp/extendsfdf2.c: Likewise. * soft-fp/extendsftf2.c: Likewise. * soft-fp/extendxftf2.c: Likewise. * soft-fp/fixdfdi.c: Likewise. * soft-fp/fixdfsi.c: Likewise. * soft-fp/fixdfti.c: Likewise. * soft-fp/fixsfdi.c: Likewise. * soft-fp/fixsfsi.c: Likewise. * soft-fp/fixsfti.c: Likewise. * soft-fp/fixtfdi.c: Likewise. * soft-fp/fixtfsi.c: Likewise. * soft-fp/fixtfti.c: Likewise. * soft-fp/fixunsdfdi.c: Likewise. * soft-fp/fixunsdfsi.c: Likewise. * soft-fp/fixunsdfti.c: Likewise. * soft-fp/fixunssfdi.c: Likewise. * soft-fp/fixunssfsi.c: Likewise. * soft-fp/fixunssfti.c: Likewise. * soft-fp/fixunstfdi.c: Likewise. * soft-fp/fixunstfsi.c: Likewise. * soft-fp/fixunstfti.c: Likewise. * soft-fp/floatdidf.c: Likewise. * soft-fp/floatdisf.c: Likewise. * soft-fp/floatditf.c: Likewise. * soft-fp/floatsidf.c: Likewise. * soft-fp/floatsisf.c: Likewise. * soft-fp/floatsitf.c: Likewise. * soft-fp/floattidf.c: Likewise. * soft-fp/floattisf.c: Likewise. * soft-fp/floattitf.c: Likewise. * soft-fp/floatundidf.c: Likewise. * soft-fp/floatundisf.c: Likewise. * soft-fp/floatunditf.c: Likewise. * soft-fp/floatunsidf.c: Likewise. * soft-fp/floatunsisf.c: Likewise. * soft-fp/floatunsitf.c: Likewise. * soft-fp/floatuntidf.c: Likewise. * soft-fp/floatuntisf.c: Likewise. * soft-fp/floatuntitf.c: Likewise. * soft-fp/gedf2.c: Likewise. * soft-fp/gesf2.c: Likewise. * soft-fp/getf2.c: Likewise. * soft-fp/ledf2.c: Likewise. * soft-fp/lesf2.c: Likewise. * soft-fp/letf2.c: Likewise. * soft-fp/muldf3.c: Likewise. * soft-fp/mulsf3.c: Likewise. * soft-fp/multf3.c: Likewise. * soft-fp/negdf2.c: Likewise. * soft-fp/negsf2.c: Likewise. * soft-fp/negtf2.c: Likewise. * soft-fp/op-1.h: Likewise. * soft-fp/op-2.h: Likewise. * soft-fp/op-4.h: Likewise. * soft-fp/op-8.h: Likewise. * soft-fp/op-common.h: Likewise. * soft-fp/quad.h: Likewise. * soft-fp/single.h: Likewise. * soft-fp/soft-fp.h: Likewise. * soft-fp/subdf3.c: Likewise. * soft-fp/subsf3.c: Likewise. * soft-fp/subtf3.c: Likewise. * soft-fp/truncdfsf2.c: Likewise. * soft-fp/trunctfdf2.c: Likewise. * soft-fp/trunctfsf2.c: Likewise. * soft-fp/trunctfxf2.c: Likewise. * soft-fp/unorddf2.c: Likewise. * soft-fp/unordsf2.c: Likewise. * soft-fp/unordtf2.c: Likewise. From-SVN: r239513
* gcov-tool: Do not segfault in merge operation (PRGilles Gouaillardet2016-08-152-0/+6
| | | | | | | PR gcov-profile/67097 * libgcov-util.c (gcov_profile_merge): Skip missing files. From-SVN: r239478
* Add new *_atomic counter update functionMartin Liska2016-08-104-8/+132
| | | | | | | | | | | | | | | | | | | | | | | PR gcov-profile/58306 * Makefile.in: New functions (modules) are added. * libgcov-profiler.c (__gcov_interval_profiler_atomic): New function. (__gcov_pow2_profiler_atomic): New function. (__gcov_one_value_profiler_body): New argument is instroduced. (__gcov_one_value_profiler): Call with the new argument. (__gcov_one_value_profiler_atomic): Likewise. (__gcov_indirect_call_profiler_v2): Likewise. (__gcov_time_profiler_atomic): New function. (__gcov_average_profiler_atomic): Likewise. (__gcov_ior_profiler_atomic): Likewise. * libgcov.h: Declare the aforementioned functions. PR gcov-profile/58306 * gcc.dg/tree-prof/val-profiler-threads-1.c: New test. PR gcov-profile/58306 * tree-profile.c (gimple_init_edge_profiler): Create conditionally atomic variants of profile update functions. From-SVN: r239324