aboutsummaryrefslogtreecommitdiff
path: root/libgcc
AgeCommit message (Collapse)AuthorFilesLines
2012-09-05re PR target/54461 ([avr] add configure option for better AVR-Libc integration)Georg-Johann Lay4-0/+83
PR target/54461 * configure.ac (noconfigdirs,target=avr-*-*): Add target-newlib, target-libgloss if not configured --with-avrlibc=no. * configure: Regenerate. libgcc/ PR target/54461 * config.host (tmake_file,host=avr-*-*): Add avr/t-avrlibc if not configured --with-avrlibc=no. * config/avr/t-avrlibc: New file. * Makefile.in (FPBIT_FUNCS): filter-out LIB2FUNCS_EXCLUDE. (DPBIT_FUNCS): Ditto. (TPBIT_FUNCS): Ditto. gcc/ PR target/54461 * config.gcc (tm_file,target=avr-*-*): Add avr/avrlibc.h if not configured --with-avrlibc=no. (tm_defines,target=avr-*-*): Add WITH_AVRLIBC if not configured --with-avrlibc=no. * config/avr/avrlibc.h: New file. * config/avr/avr-c.c: Build-in define __WITH_AVRLIBC__ if not configured --with-avrlibc=no. * doc/invoke.texi (AVR Built-in Macros): Document __WITH_AVRLIBC__ From-SVN: r190967
2012-09-04Adding change log entries for r190952:Teresa Johnson1-0/+8
Enhances the gcov program summary by adding a histogram of arc counter entries. This is used to compute working set information in the compiler for use by optimizations that need information on hot vs cold counter values or the rough working set size in terms of the number of counters. Each working set data point is the minimum counter value and number of counters required to reach a given percentage of the cumulative counter sum across the profiled execution (sum_all in the program summary). 2012-09-04 Teresa Johnson <tejohnson@google.com> * libgcc/libgcov.c (struct gcov_summary_buffer): New structure. (gcov_histogram_insert): New function. (gcov_compute_histogram): Ditto. (gcov_exit): Invoke gcov_compute_histogram, and perform merging of histograms during summary merging. * gcc/gcov-io.c (gcov_write_summary): Write out non-zero histogram entries to function summary along with an occupancy bit vector. (gcov_read_summary): Read in the histogram entries. (gcov_histo_index): New function. (void gcov_histogram_merge): Ditto. * gcc/gcov-io.h (gcov_type_unsigned): New type. (struct gcov_bucket_type): Ditto. (struct gcov_ctr_summary): Include histogram. (GCOV_TAG_SUMMARY_LENGTH): Update to include histogram entries. (GCOV_HISTOGRAM_SIZE): New macro. (GCOV_HISTOGRAM_BITVECTOR_SIZE): Ditto. * gcc/profile.c (NUM_GCOV_WORKING_SETS): Ditto. (gcov_working_sets): New global variable. (compute_working_sets): New function. (find_working_set): Ditto. (get_exec_counts): Invoke compute_working_sets. * gcc/coverage.c (read_counts_file): Merge histograms, and fix bug with accessing summary info for non-summable counters. * gcc/basic-block.h (gcov_type_unsigned): New type. (struct gcov_working_set_info): Ditto. (find_working_set): Declare. * gcc/gcov-dump.c (tag_summary): Dump out histogram. From-SVN: r190953
2012-09-04Enhances the gcov program summary by adding a histogram of arc counter entries.Teresa Johnson1-8/+114
Enhances the gcov program summary by adding a histogram of arc counter entries. This is used to compute working set information in the compiler for use by optimizations that need information on hot vs cold counter values or the rough working set size in terms of the number of counters. Each working set data point is the minimum counter value and number of counters required to reach a given percentage of the cumulative counter sum across the profiled execution (sum_all in the program summary). 2012-09-04 Teresa Johnson <tejohnson@google.com> * libgcc/libgcov.c (struct gcov_summary_buffer): New structure. (gcov_histogram_insert): New function. (gcov_compute_histogram): Ditto. (gcov_exit): Invoke gcov_compute_histogram, and perform merging of histograms during summary merging. * gcc/gcov-io.c (gcov_write_summary): Write out non-zero histogram entries to function summary along with an occupancy bit vector. (gcov_read_summary): Read in the histogram entries. (gcov_histo_index): New function. (void gcov_histogram_merge): Ditto. * gcc/gcov-io.h (gcov_type_unsigned): New type. (struct gcov_bucket_type): Ditto. (struct gcov_ctr_summary): Include histogram. (GCOV_TAG_SUMMARY_LENGTH): Update to include histogram entries. (GCOV_HISTOGRAM_SIZE): New macro. (GCOV_HISTOGRAM_BITVECTOR_SIZE): Ditto. * gcc/profile.c (NUM_GCOV_WORKING_SETS): Ditto. (gcov_working_sets): New global variable. (compute_working_sets): New function. (find_working_set): Ditto. (get_exec_counts): Invoke compute_working_sets. * gcc/coverage.c (read_counts_file): Merge histograms, and fix bug with accessing summary info for non-summable counters. * gcc/basic-block.h (gcov_type_unsigned): New type. (struct gcov_working_set_info): Ditto. (find_working_set): Declare. * gcc/gcov-dump.c (tag_summary): Dump out histogram. From-SVN: r190952
2012-09-02config.host (x86_64-*-openbsd*): New target.Mark Kettenis2-0/+6
libgcc/ * config.host (x86_64-*-openbsd*): New target. gcc/ * config.gcc (x86_64-*-openbsd*): New target. * config.host (*-*-openbsd*): New target. * config/openbsd.h (TARGET_C99_FUNCTIONS): Define. * config/i386/openbsdelf.h: Remove some superfluous defines and group things together in a more logical fashion. (DBX_REGISTER_NUMBER): Provide a definition that works on both 32-bit and 64-bit targets. (WCHAR_TYPE_SIZE): Hardcode as 32. (NO_DOLLAR_IN_LABEL): Remove undef. (TARGET_DEFAULT): Remove. (SET_ASM_OP): Remove. (DEFAULT_PCC_STRUCT_RETURN): Undef first to prevent warning. (ASM_OUTPUT_MAX_SKIP_ALIGN): Synch with x86-64.h (DWARF2_UNWIND_INFO): Remove define. (HAVE_ENABLE_EXECUTE_STACK): Define. * config/host-openbsd.c: New file. * config/t-openbsd (USER_H): Add EXTRA_HEADERS. * config/x-openbsd: New file. From-SVN: r190863
2012-08-29crtfastmath.c (set_fast_math): Add 'nomips16' attribute.Chung-Lin Tang2-1/+6
2012-08-29 Chung-Lin Tang <cltang@codesourcery.com> libgcc/ * config/mips/crtfastmath.c (set_fast_math): Add 'nomips16' attribute. From-SVN: r190773
2012-08-24re PR target/54222 ([avr] Implement fixed-point support)Georg-Johann Lay2-5/+10
PR target/54222 * config/avr/t-avr (conv_X): Rename to func_X. From-SVN: r190646
2012-08-24re PR target/54222 ([avr] Implement fixed-point support)Georg-Johann Lay5-150/+1308
libgcc/ PR target/54222 * config/avr/lib1funcs-fixed.S: New file. * config/avr/lib1funcs.S: Include it. Undefine some divmodsi after they are used. (neg2, neg4): New macros. (__mulqihi3,__umulqihi3,__mulhi3): Rewrite non-MUL variants. (__mulhisi3,__umulhisi3,__mulsi3): Rewrite non-MUL variants. (__umulhisi3): Speed up MUL variant if there is enough flash. * config/avr/avr-lib.h (TA, UTA): Adjust according to gcc's avr-modes.def. * config/avr/t-avr (LIB1ASMFUNCS): Add: _fractqqsf, _fractuqqsf, _fracthqsf, _fractuhqsf, _fracthasf, _fractuhasf, _fractsasf, _fractusasf, _fractsfqq, _fractsfuqq, _fractsfhq, _fractsfuhq, _fractsfha, _fractsfsa, _mulqq3, _muluqq3, _mulhq3, _muluhq3, _mulha3, _muluha3, _mulsa3, _mulusa3, _divqq3, _udivuqq3, _divhq3, _udivuhq3, _divha3, _udivuha3, _divsa3, _udivusa3. (LIB2FUNCS_EXCLUDE): Add supported functions. gcc/ PR target/54222 * avr-modes.def (HA, SA, DA, TA, UTA): Adjust modes. * avr/avr-fixed.md: New file. * avr/avr.md: Include it. (cc): Add: minus. (adjust_len): Add: minus, minus64, ufract, sfract. (ALL1, ALL2, ALL4, ORDERED234): New mode iterators. (MOVMODE): Add: QQ, UQQ, HQ, UHQ, HA, UHA, SQ, USQ, SA, USA. (MPUSH): Add: HQ, UHQ, HA, UHA, SQ, USQ, SA, USA. (pushqi1, xload8_A, xload_8, movqi_insn, *reload_inqi, addqi3, subqi3, ashlqi3, *ashlqi3, ashrqi3, lshrqi3, *lshrqi3, *cmpqi, cbranchqi4, *cpse.eq): Generalize to handle all 8-bit modes in ALL1. (*movhi, reload_inhi, addhi3, *addhi3, addhi3_clobber, subhi3, ashlhi3, *ashlhi3_const, ashrhi3, *ashirhi3_const, lshrhi3, *lshrhi3_const, *cmphi, cbranchhi4): Generalize to handle all 16-bit modes in ALL2. (subhi3, casesi, strlenhi): Add clobber when expanding minus:HI. (*movsi, *reload_insi, addsi3, subsi3, ashlsi3, *ashlsi3_const, ashrsi3, *ashrhi3_const, *ashrsi3_const, lshrsi3, *lshrsi3_const, *reversed_tstsi, *cmpsi, cbranchsi4): Generalize to handle all 32-bit modes in ALL4. * avr-dimode.md (ALL8): New mode iterator. (adddi3, adddi3_insn, adddi3_const_insn, subdi3, subdi3_insn, subdi3_const_insn, cbranchdi4, compare_di2, compare_const_di2, ashrdi3, lshrdi3, rotldi3, ashldi3_insn, ashrdi3_insn, lshrdi3_insn, rotldi3_insn): Generalize to handle all 64-bit modes in ALL8. * config/avr/avr-protos.h (avr_to_int_mode): New prototype. (avr_out_fract, avr_out_minus, avr_out_minus64): New prototypes. * config/avr/avr.c (TARGET_FIXED_POINT_SUPPORTED_P): Define to... (avr_fixed_point_supported_p): ...this new static function. (TARGET_BUILD_BUILTIN_VA_LIST): Define to... (avr_build_builtin_va_list): ...this new static function. (avr_adjust_type_node): New static function. (avr_scalar_mode_supported_p): Allow if ALL_FIXED_POINT_MODE_P. (avr_builtin_setjmp_frame_value): Use gen_subhi3 and return new pseudo instead of gen_rtx_MINUS. (avr_print_operand, avr_operand_rtx_cost): Handle: CONST_FIXED. (notice_update_cc): Handle: CC_MINUS. (output_movqi): Generalize to handle respective fixed-point modes. (output_movhi, output_movsisf, avr_2word_insn_p): Ditto. (avr_out_compare, avr_out_plus_1): Also handle fixed-point modes. (avr_assemble_integer): Ditto. (output_reload_in_const, output_reload_insisf): Ditto. (avr_compare_pattern): Skip all modes > 4 bytes. (avr_2word_insn_p): Skip movuqq_insn, movqq_insn. (avr_out_fract, avr_out_minus, avr_out_minus64): New functions. (avr_to_int_mode): New function. (adjust_insn_length): Handle: ADJUST_LEN_SFRACT, ADJUST_LEN_UFRACT, ADJUST_LEN_MINUS, ADJUST_LEN_MINUS64. * config/avr/predicates.md (const0_operand): Allow const_fixed. (const_operand, const_or_immediate_operand): New. (nonmemory_or_const_operand): New. * config/avr/constraints.md (Ynn, Y00, Y01, Y02, Ym1, Ym2, YIJ): New constraints. * config/avr/avr.h (LONG_LONG_ACCUM_TYPE_SIZE): Define. From-SVN: r190644
2012-08-23Makefile.in (fixed-funcs,fixed-conv-funcs): filter-out LIB2FUNCS_EXCLUDE ↵Georg-Johann Lay3-4/+14
before adding them to libgcc-objects, libgcc-s-objects. * Makefile.in (fixed-funcs,fixed-conv-funcs): filter-out LIB2FUNCS_EXCLUDE before adding them to libgcc-objects, libgcc-s-objects. * fixed-obj.mk: Only expand dependency if $o is not in LIB2FUNCS_EXCLUDE. From-SVN: r190624
2012-08-22Add -mlong-double-64/-mlong-double-80 to i386H.J. Lu2-0/+6
gcc/ * doc/invoke.texi: Document -mlong-double-64/-mlong-double-80. * config/i386/i386.c (flag_opts): Add -mlong-double-64. (TARGET_HAS_BIONIC): Default long double to 64-bit for Bionic. * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 64 if TARGET_LONG_DOUBLE_64 is true. (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New macro. (WIDEST_HARDWARE_FP_SIZE): Defined to 80. * config/i386/i386.opt (mlong-double-80): New option. (mlong-double-64): Likewise. * config/i386/i386-c.c (ix86_target_macros): Define __LONG_DOUBLE_64__ for TARGET_LONG_DOUBLE_64. gcc/testsuite/ * gcc.target/i386/long-double-64-1.c: New file. * gcc.target/i386/long-double-64-2.c: Likewise. * gcc.target/i386/long-double-64-3.c: Likewise. * gcc.target/i386/long-double-64-4.c: Likewise. * gcc.target/i386/long-double-80-1.c: Likewise. * gcc.target/i386/long-double-80-2.c: Likewise. * gcc.target/i386/long-double-80-3.c: Likewise. * gcc.target/i386/long-double-80-4.c: Likewise. * gcc.target/i386/long-double-80-5.c: Likewise. * gcc.target/i386/long-double-80-6.c: Likewise. * gcc.target/i386/long-double-80-7.c: Likewise. libgcc/ * config/i386/t-linux (HOST_LIBGCC2_CFLAGS): New. From-SVN: r190599
2012-08-22Makefile.in (vis_hide, [...]): Do not make definitions depend on ↵Joseph Myers3-14/+22
--enable-shared. * Makefile.in (vis_hide, gen-hide-list): Do not make definitions depend on --enable-shared. ($(lib1asmfuncs-o)): Use %.vis files independent of --enable-shared. * static-object.mk ($(base)$(objext), $(base).vis) ($(base)_s$(objext)): Use same rules for visibility handling as in shared-object.mk. From-SVN: r190588
2012-08-21morestack.S (__morestack_non_split): Increase amount of space allocated for ↵Ian Lance Taylor2-4/+14
non-split code stack. * config/i386/morestack.S (__morestack_non_split): Increase amount of space allocated for non-split code stack. From-SVN: r190574
2012-08-19crtstuff.c (USE_PT_GNU_EH_FRAME): Define for systems using glibc even if ↵Joseph Myers2-1/+20
inhibit_libc. * crtstuff.c (USE_PT_GNU_EH_FRAME): Define for systems using glibc even if inhibit_libc. From-SVN: r190517
2012-08-17Makefile.in (LIB2_DIVMOD_EXCEPTION_FLAGS): Default to -fexceptions ↵Julian Brown3-2/+20
-fnon-call-exceptions if not defined. libgcc/ * Makefile.in (LIB2_DIVMOD_EXCEPTION_FLAGS): Default to -fexceptions -fnon-call-exceptions if not defined. ($(lib2-divmod-o), $(lib2-divmod-s-o)): Use above. * config/arm/t-bpabi (LIB2_DIVMOD_EXCEPTION_FLAGS): Define. gcc/testsuite/ * gcc.target/arm/div64-unwinding.c: New test. From-SVN: r190483
2012-08-17linux-atomic.c (__sync_lock_test_and_set_1): Fix type.Andreas Schwab2-2/+7
* config/m68k/linux-atomic.c (__sync_lock_test_and_set_1): Fix type. From-SVN: r190480
2012-08-16config.host (*-*-aix*): Move rs6000/t-ibm-ldouble after rs6000/t-slibgcc-aix.David Edelsohn2-3/+8
* config.host (*-*-aix*): Move rs6000/t-ibm-ldouble after rs6000/t-slibgcc-aix. From-SVN: r190465
2012-08-16longlong.h: (powerpc): Delete _ARCH_PWR and _ARCH_COM handling.Segher Boessenkool2-10/+4
2012-08-15 Segher Boessenkool <segher@kernel.crashing.org> libgcc/ * longlong.h: (powerpc): Delete _ARCH_PWR and _ARCH_COM handling. From-SVN: r190434
2012-08-16aix43.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.Segher Boessenkool2-17/+21
2012-08-15 Segher Boessenkool <segher@kernel.crashing.org> gcc/ * config/rs6000/aix43.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS. (RS6000_CALL_GLUE): Adjust for single assembler syntax. * config/rs6000/aix51.h (TARGET_DEFAULT, RS6000_CALL_GLUE): Ditto. * config/rs6000/aix52.h (TARGET_DEFAULT, RS6000_CALL_GLUE): Ditto. * config/rs6000/aix53.h (TARGET_DEFAULT, RS6000_CALL_GLUE): Ditto. * config/rs6000/aix61.h (TARGET_DEFAULT, RS6000_CALL_GLUE): Ditto. * config/rs6000/darwin.h (TARGET_DEFAULT): Ditto. * config/rs6000/darwin.md (whole file): Adjust to single assembler syntax. * config/rs6000/darwin64.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS. * config/rs6000/default64.h (TARGET_DEFAULT): Ditto. * config/rs6000/dfp.md: (whole file): Adjust to single assembler syntax. * config/rs6000/eabi.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS. * config/rs6000/eabialtivec.h (TARGET_DEFAULT): Ditto. * config/rs6000/eabispe.h (TARGET_DEFAULT): Ditto. * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Ditto. * config/rs6000/linuxspe.h (TARGET_DEFAULT): Ditto. * config/rs6000/rs6000-cpus.def (whole file): Delete POWERPC_BASE_MASK. * config/rs6000/rs6000-tables.opt: Regenerate. * config/rs6000/rs6000.c (POWERPC_BASE_MASK): Delete. (num_insns_constant_wide): Adjust comments. (whole file): Adjust to single assembler syntax. (output_cbranch): Adjust comment. * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Delete. * config/rs6000/rs6000.md: (whole file): Adjust to single assembler syntax. * config/rs6000/rs6000.opt (mnew-mnemonics): Delete. (mold-mnemonics): Delete. * config/rs6000/spe.md: (whole file): Adjust to single assembler syntax. * config/rs6000/sync.md: (whole file): Adjust to single assembler syntax. * config/rs6000/sysv4.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS. (ASM_OUTPUT_REG_PUSH): Adjust. (ASM_OUTPUT_REG_POP): Adjust. * config/rs6000/sysv4le.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS. * config/rs6000/vsx.md: (whole file): Adjust to single assembler syntax. * config/rs6000/vxworks.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS. * doc/invoke.texi: Adjust documentation to reflect the removal of -mnew-mnemonics and -mold-mnemonics. libgcc/ * longlong.h: (whole file, powerpc): Adjust to single assembler syntax. From-SVN: r190432
2012-08-03Replace top_srcdir with srcdirH.J. Lu2-1/+6
PR driver/54171 * Makefile.in (version): Replace top_srcdir with srcdir. From-SVN: r190140
2012-08-03* Makefile.in (version): set to BASE-VER file from gcc directory.Jonathan Yong2-1/+5
From-SVN: r190136
2012-08-01lib2funcs.c (__clrsbhi2): New function.Nick Clifton2-1/+20
* config/m32c/lib2funcs.c (__clrsbhi2): New function. Implements __clrsb for an HImode argument. From-SVN: r190032
2012-07-31lib2funcs.c (__clrsbhi2): New function.Nick Clifton4-0/+26
* config/stormy16/lib2funcs.c (__clrsbhi2): New function. Implements __clrsb for an HImode argument. * config/stormy16/clrsbhi2.c: New file: * config/stormy16/t-stormy16 (LIB2ADD): Add clrsbhi2.c. From-SVN: r189997
2012-07-23coverage.c: Refer to "notes file" instead of "graph file" in all comments.Steven Bosscher2-2/+5
gcc/ * coverage.c: Refer to "notes file" instead of "graph file" in all comments. Explain history of bbg prefix. * gcov-io.h: Likewise. * gcov.c: Likewise. (find_source): Likewise in fnotice. (read_graph_file): Likewise. (read_count_file): Likewise. * doc/gcov.texi: Document -fprofile-dir flag. Add "notes file" and "data file" explicitly in the explanation of the files. libgcc/ * libgcov.c (__gcov_ior_profiler): Benign comment fix. From-SVN: r189781
2012-07-19eh_personality.cc (__gxx_personality_seh0): New function.Tristan Gingold8-2/+558
libstdc++-v3/ * libsupc++/eh_personality.cc (__gxx_personality_seh0): New function. Adjust for SEH. * config/abi/pre/gnu.ver: Add __gxx_personality_seh0. libobjc/ * exception.c (__gnu_objc_personality_seh0): New function. libjava/ * libgcj.ver: Add __gcj_personality_seh0. * exception.cc (__gcj_personality_seh0): New function. Adjust for SEH. libgcc/ * unwind-seh.c: New file. * unwind-generic.h: Include windows.h for SEH. (_Unwind_Exception): Use 6 private fields for SEH. (_GCC_specific_handler): Declare. * unwind-c.c (__gcc_personality_seh0): New function. Adjust for SEH. * config/i386/libgcc-cygming.ver: New file. * config/i386/t-seh-eh: New file. * config.host (x86_64-*-mingw*): Default to seh. gcc/ * opts.c (finish_options): Handle UI_SEH. * expr.c (build_personality_function): Handle UI_SEH. * dwarf2out.c (dwarf2out_begin_prologue): Handle UI_SEH. * coretypes.h (unwind_info_type): Add UI_SEH. * config/i386/winnt.c (i386_pe_seh_emit_except_personality): New function. (i386_pe_seh_init_sections): Likewise. * config/i386/cygming.h (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): Define. (TARGET_ASM_INIT_SECTIONS): Define. * common/config/i386/i386-common.c (TARGET_EXCEPT_UNWIND_INFO): Define. (i386_except_unwind_info): New function. Co-Authored-By: Richard Henderson <rth@redhat.com> From-SVN: r189644
2012-07-14* config/t-darwin (crt3.0): Remove work-around for fixed PR26840.Steven Bosscher2-3/+5
From-SVN: r189479
2012-06-17sfp-machine.h (FP_HANDLE_EXCEPTIONS): Use __builtin_expect when checking for ↵Uros Bizjak3-2/+8
exceptions. * config/i386/sfp-machine.h (FP_HANDLE_EXCEPTIONS): Use __builtin_expect when checking for exceptions. * config/ia64/sfp-machine.h (FP_HANDLE_EXCEPTIONS): Ditto. From-SVN: r188705
2012-06-13* ChangeLog: Fix whitespace.Uros Bizjak1-9/+9
From-SVN: r188521
2012-06-13sfp-machine.h (__sfp_handle_exceptions): New function declaration.Uros Bizjak4-44/+85
* config/ia64/sfp-machine.h (__sfp_handle_exceptions): New function declaration. (FP_HANDLE_EXCEPTIONS): Use __sfp_handle_exceptions. (FP_RND_MASK): New. * config/ia64/sfp-exceptions.c: New. * config/ia64/t-softfp (LIB2ADD): Add sfp-exceptions.c. From-SVN: r188520
2012-06-13sfp-machine.h (_FP_NANSIGN_S, [...]): Move ...Uros Bizjak4-20/+27
* config/i386/32/sfp-machine.h (_FP_NANSIGN_S, _FP_NANSIGN_D, _FP_NANSIGN_E, _FP_NANSIGN_Q): Move ... * config/i386/64/sfp-machine: ... (delete here) ... * config/i386/sfp-machine.h: ... to here. (FP_EX_MASK): Remove. (FP_RND_MASK): New. (FP_INIT_ROUNDMODE): Declare asm as volatile. From-SVN: r188518
2012-06-12libgcc-bsd.ver: Version symbol __cpu_indicator_init.Sriraman Tallam4-0/+10
2012-06-11 Sriraman Tallam <tmsriram@google.com> * config/i386/libgcc-bsd.ver: Version symbol __cpu_indicator_init. * config/i386/libgcc-sol2.ver: Ditto. * config/i386/libgcc-glibc.ver: Ditto. * gcc.target/i386/builtin_target.c (vendor_signatures): New enum. (check_intel_cpu_model): New function. (check_amd_cpu_model): New function. (check_features): New function. (__get_cpuid_output): New function. (check_detailed): New function. (fn1): Rename to quick_check. (main): Update to call quick_check and call check_detailed. From-SVN: r188417
2012-06-11gthr-posix.h [...] (__gthread_active_p): If __GLIBC__ is defined, refer to ↵Roland McGrath2-8/+39
__pthread_key_create instead of pthread_cancel. * gthr-posix.h [neither FreeBSD nor Solaris] (__gthread_active_p): If __GLIBC__ is defined, refer to __pthread_key_create instead of pthread_cancel. From-SVN: r188400
2012-06-09sfp-machine.h (__gcc_CMPtype, [...]): Move ...Uros Bizjak7-254/+185
* config/i386/32/sfp-machine.h (__gcc_CMPtype, CMPtype, _FP_KEEPNANFRACP, _FP_CHOOSENAN, FP_EX_INVALID, FP_EX_DENORM, FP_EX_DIVZERO, FP_EX_OVERFLOW, FP_EX_UNDERFLOW, FP_EX_INEXACT, FP_HANDLE_EXCEPTIONS, FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF, FP_RND_MINF, _FP_DEXL_EX, FP_INIT_ROUNDMODE, FP_ROUNDMODE, __LITTLE_ENDIAN, __BIG_ENDIAN, strong_alias): Move ... * config/i386/64/sfp-machine: ... (delete here) ... * config/i386/sfp-machine.h: ... to here. (FP_EX_MASK): New. (__sfp_handle_exceptions): New function declaration. (FP_HANDLE_EXCEPTIONS): Use __sfp_handle_exceptions. * config/i386/sfp-exceptions.c: New. * config/i386/t-softfp: New. * config.host (i[34567]86-*-* and x86_64-*-* soft-fp targets): Add i386/t-softfp to tmake_file. From-SVN: r188361
2012-06-03Fix bug added to sparc 64-bit sub_ddmmss() implementation.David S. Miller2-1/+6
* longlong.h [SPARC] (sub_ddmmss): Fix thinko in previous 64-bit change. From-SVN: r188163
2012-05-31Sparc longlong.h enhancements.David S. Miller2-25/+61
libgcc/ * longlong.h [SPARC] (umul_ppmm, udiv_qrnnd): Use hardware integer multiply and divide instructions on 32-bit when V9. (add_ssaaaa, sub_ddmmss): Convert to branchless code on 64-bit. From-SVN: r188090
2012-05-29ieee754-df.S: Fix typos.Joseph Myers28-28/+58
* config/arm/ieee754-df.S: Fix typos. * config/arm/ieee754-sf.S: Fix typos. * config/c6x/libunwind.S: Fix typos. * config/epiphany/udivsi3-float.c: Fix typos. * config/microblaze/muldi3_hard.S: Fix typos. * config/picochip/adddi3.S: Fix typos. * config/picochip/ashlsi3.S: Fix typos. * config/picochip/ashrsi3.S: Fix typos. * config/picochip/clzsi2.S: Fix typos. * config/picochip/cmpsi2.S: Fix typos. * config/picochip/divmod15.S: Fix typos. * config/picochip/divmodhi4.S: Fix typos. * config/picochip/divmodsi4.S: Fix typos. * config/picochip/longjmp.S: Fix typos. * config/picochip/lshrsi3.S: Fix typos. * config/picochip/parityhi2.S: Fix typos. * config/picochip/popcounthi2.S: Fix typos. * config/picochip/setjmp.S: Fix typos. * config/picochip/subdi3.S: Fix typos. * config/picochip/ucmpsi2.S: Fix typos. * config/picochip/udivmodhi4.S: Fix typos. * config/picochip/udivmodsi4.S: Fix typos. * config/spu/divv2df3.c: Fix typos. * config/spu/mfc_multi_tag_release.c: Fix typos. * config/spu/mfc_tag_release.c: Fix typos. * configure.ac: Fix typos. * configure: Regenerate. From-SVN: r187967
2012-05-25morestack.S (__morestack_non_split): Check whether caller is varargs and ↵Ian Lance Taylor2-8/+45
needs %bp to hold the stack frame on return. libgcc/: * config/i386/morestack.S (__morestack_non_split): Check whether caller is varargs and needs %bp to hold the stack frame on return. gcc/testsuite/: * gcc.dg/split-6.c: New test. From-SVN: r187894
2012-05-25tramp.S (trampoline_setup): Use a longcall sequence in the non pic case on ↵Olivier Hainque2-0/+17
VxWorks. libgcc/ * config/rs6000/vxworks/tramp.S (trampoline_setup): Use a longcall sequence in the non pic case on VxWorks. From-SVN: r187871
2012-05-24Fix typo in latest ChangeLog entry addition.Olivier Hainque1-1/+1
From-SVN: r187840
2012-05-24Makefile.in: move dependency on install-unwind_h from "install-leaf" to ↵Olivier Hainque2-2/+7
"install". libgcc/ * Makefile.in: move dependency on install-unwind_h from "install-leaf" to "install". From-SVN: r187839
2012-05-24Makefile.in (clean): Remove libgcc_tm.stamp as well.Olivier Hainque2-1/+7
libgcc/ * Makefile.in (clean): Remove libgcc_tm.stamp as well. Use a separate command for stamp removals. From-SVN: r187838
2012-05-21re PR bootstrap/53183 (libgcc does not always figure out the size of ↵Andrew Pinski3-325/+15
double/long double) 2012-05-21 Andrew Pinski <apinski@cavium.com> PR bootstrap/53183 * configure.ac: Define the default includes to being none. * configure: Regenerate. From-SVN: r187732
2012-05-16Makefile.in (install-unwind_h): Rename into ...Olivier Hainque2-3/+25
libgcc/ * Makefile.in (install-unwind_h): Rename into ... (install-unwind_h-forbuild): New target. (all): Use it instead of the former install-unwind_h. (install-unwind_h): Reinstate, copy to user install destination for include files, not to the internal gcc object directory one. (install-leaf): Depend on it. From-SVN: r187599
2012-05-15aix-unwind.h (*_REGNO): New, set of useful register numbers.Olivier Hainque2-4/+211
libgcc/ * config/rs6000/aix-unwind.h (*_REGNO): New, set of useful register numbers. LR_REGNO replaces R_LR. (ucontext_for): New, helper for ... (ppc_aix_fallback_frame_state): New, implementation for aix 5.2 and 5.3 of ... (MD_FALLBACK_FRAME_STATE_FOR): Define for 32bit configurations. testsuite/ * g++.dg/eh/sighandle.C: New testcase. From-SVN: r187540
2012-05-10Use i386-cpuinfo.c on all i386 targetsRainer Orth11-50/+330
libgcc: * config.host (i[34567]86-*-linux*, x86_64-*-linux*) (i[34567]86-*-kfreebsd*-gnu, x86_64-*-kfreebsd*-gnu) (i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*): Move i386/t-cpuinfo ... (i[34567]86-*-*, x86_64-*-*): ... here. * config/i386/libgcc-bsd.ver (GCC_4.8.0): New version. * config/i386/libgcc-sol2.ver (GCC_4.8.0): New version. * config/i386/i386-cpuinfo.c: Rename to ... * config/i386/cpuinfo.c: ... this. * config/i386/t-cpuinfo (LIB2ADD): Reflect this. * configure.ac (AC_CONFIG_HEADER): Call for auto-target.h. (libgcc_cv_init_priority): New test. * configure: Regenerate. * config.in: New file. * Makefile.in (clean): Rename config.h to auto-target.h. (config.h): Likewise. (stamp-h): Likewise. * config/i386/cpuinfo.c (auto-target.h): Include. (CONSTRUCTOR_PRIORITY): Define. (__cpu_indicator_init): Use it. gcc * doc/extend.texi (X86 Built-in Functions, __builtin_cpu_init): Document requirement to call in constructors. * config/i386/i386.c: Update comments for i386-cpuinfo.c name change. From-SVN: r187365
2012-05-09Use a URL for FSF address and replace spaces with tabH.J. Lu2-18/+22
* longlong.h: Use a URL instead of an FSF postal address. Replace spaces with tab. From-SVN: r187333
2012-05-08This patch adds functionality to libgcov to enable user applications to ↵Teresa Johnson3-26/+94
collect... This patch adds functionality to libgcov to enable user applications to collect profile data only in regions of interest. This is useful, for example, to collect profile data from a long-running server only during the time when it is serving requests. Specifically, the new routines __gcov_reset will clear all profile counters to zero and __gcov_dump will write out the profile information collected so far. A global variable is used to prevent writing out the profile a second time during exit. 2012-05-08 Teresa Johnson <tejohnson@google.com> * libgcc/libgcov.c (gcov_clear, __gcov_reset): New functions. (__gcov_dump): Ditto. (gcov_dump_complete): New global variable. (gcov_exit): Export hidden to enable use in L_gcov_dump. (__gcov_flush): Outline functionality now in gcov_clear. * libgcc/Makefile.in (L_gcov_reset, L_gcov_dump): Define. * gcc/gcov-io.h (__gcov_reset, __gcov_dump): Declare. * gcc/doc/gcov.texi: Add note on using __gcov_reset and __gcov_dump. From-SVN: r187297
2012-04-28config.host (mips64*-*-linux*, [...]): Remove.Aurelien Jarno2-5/+9
libgcc/ 2012-04-28 Aurelien Jarno <aurelien@aurel32.net> * config.host (mips64*-*-linux*, mipsisa64*-*-linux*): Remove. (mips*-*-linux*): Include mips/t-tpbit when long double is 16 bytes long. From-SVN: r186931
2012-04-26i386-cpuinfo.c (FEATURE_AVX2): New enum value.Sriraman Tallam2-4/+23
2012-04-25 Sriraman Tallam <tmsriram@google.com> * config/i386/i386-cpuinfo.c (FEATURE_AVX2): New enum value. (get_available_features): New argument. Check for AVX2. (__cpu_indicator_init): Modify call to get_available_features. * doc/extend.texi: Document avx2 support. * config/i386/i386.c (fold_builtin_cpu): Add avx2. * testsuite/gcc.target/i386/builtin_target.c: Check avx2. From-SVN: r186855
2012-04-25rs6000 (SAVE_INLINE_VRS, [...]): Define.Alan Modra5-1/+188
gcc/ * config/rs6000/rs6000 (SAVE_INLINE_VRS, REST_INLINE_VRS, V_SAVE_INLINE, SAVRES_LR, SAVRES_SAVE, SAVRES_REG, SAVRES_GPR, SAVRES_FPR, SAVRES_VR): Define. (no_global_regs_above): Delete. (no_global_regs): New function. (rs6000_savres_strategy): Handle vector regs. Use proper lr_save_p value for load multiple test. (savres_routine_syms): Increase size. (rs6000_savres_routine_name, rs6000_savres_routine_sym, ptr_regno_for_savres, rs6000_emit_savres_rtx): Pass in int selector rather than a number of boolean flags. Update all callers. (rs6000_savres_routine_name): Generate vector save/restore names. (rs6000_savres_routine_sym): Handle vector regs. Delete forward decl. (ptr_regno_for_savres, rs6000_emit_savres_rtx): Likewise. (rs6000_emit_prologue): Delete saving_FPRs_inline, saving_GPRs_inline and using_store_multiple. Expand uses. Don't always use r11 as frame reg when needed for out-of-line saves. Set up initial offset for out-of-line vector saves when buying stack frame. Handle pointer reg setup for out-of-line fp save. Emit call to out-of-line vector save function. Choose r11 or r12 for vrsave reg when available for better scheduling. (rs6000_output_function_prologue): Don't emit .extern for ELF. (rs6000_emit_epilogue): Choose a better frame reg when restoring from back-chain to suit out-of-line vector restore functions. Emit call to out-of-line vector restore function. Adjust register used for cr restore. Tweak pointer register setup for gpr restore. * config/rs6000/rs6000.h (FIRST_SAVED_GP_REGNO): Take into account FIXED_R13. * config/rs6000/sysv4.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Simplify. (V_SAVE_INLINE): Define. * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*): New insns. libgcc/ * config/rs6000/crtsavevr.S: New file. * config/rs6000/crtrestvr.S: New file. * config/rs6000/t-savresfgpr: Build the above. * config/rs6000/t-netbsd: Likewise. From-SVN: r186800
2012-04-25i386-cpuinfo.c: Set __cpu_vendor always.Sriraman Tallam2-3/+16
2012-04-24 Sriraman Tallam <tmsriram@google.com> * libgcc/config/i386/i386-cpuinfo.c: Set __cpu_vendor always. From-SVN: r186795
2012-04-25This patch adds new builtins to check for cpu type and features.Sriraman Tallam5-1/+333
2012-04-24 Sriraman Tallam <tmsriram@google.com> This patch adds new builtins to check for cpu type and features. * __builtin_cpu_is ("<CPUNAME>") * __builtin_cpu_supports ("<FEATURE>") apart from the cpu init builtin, __builtin_cpu_init. List of CPU names : * "amd" * "intel" * "atom" * "core2" * "corei7" * "nehalem" * "westmere" * "sandybridge" * "amdfam10h" * "barcelona" * "shanghai" * "istanbul" * "bdver1" * "bdver2" List of CPU features : * "cmov" * "mmx" * "popcnt" * "sse" * "sse2" * "sse3" * "ssse3" * "sse4.1" * "sse4.2" * "avx" * config/i386/i386.c (build_processor_model_struct): New function. (make_var_decl): New function. (fold_builtin_cpu): New function. (ix86_fold_builtin): New function. (make_cpu_type_builtin): New function. (ix86_init_platform_type_builtins): New function. (ix86_expand_builtin): Expand new builtins by folding them. (ix86_init_builtins): Make new builtins to detect CPU type. (TARGET_FOLD_BUILTIN): New macro. (IX86_BUILTIN_CPU_INIT): New enum value. (IX86_BUILTIN_CPU_IS): New enum value. (IX86_BUILTIN_CPU_SUPPORTS): New enum value. * config/i386/i386-builtin-types.def: New function type. * testsuite/gcc.target/builtin_target.c: New testcase. * doc/extend.texi: Document builtins. * libgcc/config/i386/i386-cpuinfo.c: New file. * libgcc/config/i386/t-cpuinfo: New file. * libgcc/config.host: Include t-cpuinfo. * libgcc/config/i386/libgcc-glibc.ver: Version symbol __cpu_model. From-SVN: r186789