Commit Graph

399 Commits

Author SHA1 Message Date
Georg-Johann Lay
51526856a1 re PR target/54222 ([avr] Implement fixed-point support)
gcc/
	PR target/54222
	* config/avr/avr-fixed.md (ALL2S, ALL4S, ALL24S, ALL124S,
	ALL124U): New mode iterators.
	(<code_stdname><mode>3): New insns for SS_PLUS, SS_MINUS.
	(<code_stdname><mode>3): New insns for US_PLUS, US_MINUS.
	(usneg<mode>2): New insns.
	(<code_stdname><mode>2): New expanders for SS_NEG, SS_ABS.
	(*<code_stdname><mode>2): New insns for SS_NEG, SS_ABS.
	* config/avr/avr-dimode.md (ALL8U, ALL8S): New mode iterators.
	(avr_out_plus64, avr_out_minus64): Use avr_out_plus instead.
	(<code_stdname><mode>3): New expanders for SS_PLUS, SS_MINUS.
	(<code_stdname><mode>3): New expanders for US_PLUS, US_MINUS.
	(<code_stdname><mode>3_insn): New insns.
	(<code_stdname><mode>3_const_insn): New insns.
	* config/avr/avr.md (cc): Add: plus. Remove: out_plus,
	out_plus_noclobber, minus.
	(length): Add: plus.  Remove: out_plus, out_plus_noclobber,
	plus64, minus, minus64.
	(abelian): New code_attr.
	(code_stdname): Handle: ss_plus, ss_minus, ss_neg, ss_abs,
	us_plus, us_minus, us_neg.
	(*add<mode>3, add<mode>3_clobber, add<mode>3, addpsi3, sub<mode>3):
	Use avr_out_plus to output.
	* config/avr/avr-protos.h (avr_out_plus): Change prototype.
	(avr_out_plus_noclobber, avr_out_minus): Remove.
	(avr_out_plus64, avr_out_minus64): Remove.
	* config/avr/avr.c (avr_out_plus_1): Add new default arguments
	code_sat, sign.  Saturate after operation if code_sat != UNKNOWN.
	(avr_out_plus_symbol): New static function.
	(avr_out_plus): Rewrite.
	(adjust_insn_length): Handle: ADJUST_LEN_PLUS.  Remove handling
	of: ADJUST_LEN_OUT_PLUS, ADJUST_LEN_PLUS64, ADJUST_LEN_MINUS, 
	ADJUST_LEN_MINUS64, ADJUST_LEN_OUT_PLUS_NOCLOBBER.
	(notice_update_cc): Handle: CC_PLUS.  Remove handling of: CC_MINUS,
	CC_OUT_PLUS, CC_OUT_PLUS_NOCLOBBER
	(avr_out_plus_noclobber, avr_out_minus): Remove.
	(avr_out_plus64, avr_out_minus64): Remove.
	(avr_print_operand): Print raw REGNO if 'r' is used with REG.

libgcc/
	PR target/54222
	* config/avr/lib1funcs-fixed.S (__ssneg_2, __ssabs_2, __ssneg_4,
	__ssabs_4, __clr_8, __ssneg_8, __ssabs_8,
	__usadd_8, __ussub_8, __ssadd_8, __sssub_8): New functions.
	(__divsa3): Use __negsi2 to negate r_quoL.
	* config/avr/lib1funcs.S (FALIAS): New macro.
	(__divmodsi4): Break out and use __divmodsi4_neg1 as...
	(__negsi2): ...this new function.
	* config/avr/t-avr (LIB1ASMFUNCS): Add _negsi2, _clr_8,
	_ssneg_2, _ssneg_4, _ssneg_8, _ssabs_2, _ssabs_4,
	_ssabs_8, _ssadd_8, _sssub_8, _usadd_8, _ussub_8.
	(LIB2FUNCS_EXCLUDE): Fix typo for _add _sub.
	Add: _ssadd*, _sssub*, _ssneg*, _ssabs* for signed fixed modes.
	Add: _usadd*, _ussub*, _usneg* for unsigned fixed modes.

gcc/testsuite/
	PR target/54222
	* gcc.target/avr/torture/fix-types.h: New.
	* gcc.target/avr/torture/vals-hr.def: New.
	* gcc.target/avr/torture/vals-r.def: New.
	* gcc.target/avr/torture/vals-k.def: New.
	* gcc.target/avr/torture/vals-ur.def: New.
	* gcc.target/avr/torture/vals-uk.def: New.
	* gcc.target/avr/torture/vals-uhr.def: New.
	* gcc.target/avr/torture/vals-llk.def: New.
	* gcc.target/avr/torture/vals-ullk.def: New.
	* gcc.target/avr/torture/sat-hr-plus-minus.c: New.
	* gcc.target/avr/torture/sat-r-plus-minus.c: New.
	* gcc.target/avr/torture/sat-k-plus-minus.c: New.
	* gcc.target/avr/torture/sat-ur-plus-minus.c: New.
	* gcc.target/avr/torture/sat-uk-plus-minus.c: New.
	* gcc.target/avr/torture/sat-uhr-plus-minus.c: New.
	* gcc.target/avr/torture/sat-llk-plus-minus.c: New.
	* gcc.target/avr/torture/sat-ullk-plus-minus.c: New.

From-SVN: r191345
2012-09-15 15:52:28 +00:00
Oleg Endo
aadb5b43ae re PR target/54089 ([SH] Refactor shift patterns)
PR target/54089
	* config/sh/sh.h (SH_DYNAMIC_SHIFT_COST): Set always to 1 if
	dynamic shifts are available.
	(SHIFT_COUNT_TRUNCATED): Always define to 0.  Correct comment.
	* config/sh/sh.c (ashl_lshr_seq, ext_ashl_lshr_seq): Add comments.
	* config/sh/predicates.md (shift_count_operand): Allow
	arith_reg_operand even if TARGET_DYNSHIFT is false.
	* config/sh/sh.md (ashlsi3, lshrsi3): Expand library call patterns
	if needed.
	(ashlsi3_d_call, lshrsi3_d_call): New insns.

	PR target/54089
	* config/sh/lib1funcs.S (ashlsi3): Reimplement as ashlsi3_r0.
	(lshrsi3): Reimplement as lshrsi3_r0.

	PR target/54089
	* gcc.target/sh/pr54089-3.c: New.

From-SVN: r191161
2012-09-10 20:35:25 +00:00
Andreas Schwab
d5d66749a3 re PR target/46191 (Non-absolute names in libgcc_s.so)
PR target/46191
* config/t-slibgcc-libgcc (SHLIB_MAKE_SOLINK): Use -lgcc instead
of libgcc.a.

From-SVN: r191160
2012-09-10 20:14:47 +00:00
Teresa Johnson
c6c36e7310 This fixes part of the issue described in PR gcov-profile/54487 where there...
This fixes part of the issue described in PR gcov-profile/54487 where
there were warnings about mismatches due to slight differences in the
merged histograms in different object files. This can happen due to
the truncating integer division in the merge routine, which could result
in slightly different histograms when summaries are merged in different
orders.

2012-09-07  Teresa Johnson  <tejohnson@google.com>

        PR gcov-profile/54487
	* libgcc/libgcov.c (gcov_exit): Avoid warning on histogram
        differences.

From-SVN: r191074
2012-09-07 13:49:47 +00:00
Georg-Johann Lay
b588ae3074 re PR target/54461 ([avr] add configure option for better AVR-Libc integration)
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-05 08:47:50 +00:00
Teresa Johnson
abd16fb112 Adding change log entries for r190952:
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-04 21:20:30 +00:00
Teresa Johnson
9f71de8404 Enhances the gcov program summary by adding a histogram of arc counter entries.
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-04 21:16:18 +00:00
Mark Kettenis
613061fdd0 config.host (x86_64-*-openbsd*): New target.
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-09-02 14:13:21 +00:00
Chung-Lin Tang
867a834534 crtfastmath.c (set_fast_math): Add 'nomips16' attribute.
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-29 09:31:52 +00:00
Georg-Johann Lay
4aeaaca35f re PR target/54222 ([avr] Implement fixed-point support)
PR target/54222
	* config/avr/t-avr (conv_X): Rename to func_X.

From-SVN: r190646
2012-08-24 13:01:54 +00:00
Georg-Johann Lay
e55e405619 re PR target/54222 ([avr] Implement fixed-point support)
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-24 12:42:48 +00:00
Georg-Johann Lay
a147b6d28f Makefile.in (fixed-funcs,fixed-conv-funcs): filter-out LIB2FUNCS_EXCLUDE 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-23 15:41:03 +00:00
H.J. Lu
c637141af0 Add -mlong-double-64/-mlong-double-80 to i386
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-22 12:46:28 -07:00
Joseph Myers
130e00bd24 Makefile.in (vis_hide, [...]): Do not make definitions depend on --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-22 09:36:23 +01:00
Ian Lance Taylor
4b1b378895 morestack.S (__morestack_non_split): Increase amount of space allocated for 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-21 20:51:42 +00:00
Joseph Myers
d246814197 crtstuff.c (USE_PT_GNU_EH_FRAME): Define for systems using glibc even if inhibit_libc.
* crtstuff.c (USE_PT_GNU_EH_FRAME): Define for systems using glibc
	even if inhibit_libc.

From-SVN: r190517
2012-08-19 16:11:40 +01:00
Julian Brown
a508e1a8cb Makefile.in (LIB2_DIVMOD_EXCEPTION_FLAGS): Default to -fexceptions -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-17 15:06:06 +00:00
Andreas Schwab
5615a07d0c linux-atomic.c (__sync_lock_test_and_set_1): Fix type.
* config/m68k/linux-atomic.c (__sync_lock_test_and_set_1): Fix
type.

From-SVN: r190480
2012-08-17 12:33:09 +00:00
David Edelsohn
138f5acd18 config.host (*-*-aix*): Move rs6000/t-ibm-ldouble after rs6000/t-slibgcc-aix.
* config.host (*-*-aix*): Move rs6000/t-ibm-ldouble after
        rs6000/t-slibgcc-aix.

From-SVN: r190465
2012-08-16 22:19:04 -04:00
Segher Boessenkool
18efc0dd75 longlong.h: (powerpc): Delete _ARCH_PWR and _ARCH_COM handling.
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-16 03:49:57 +02:00
Segher Boessenkool
6b39bc38c8 aix43.h (TARGET_DEFAULT): Delete MASK_NEW_MNEMONICS.
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-16 03:34:27 +02:00
H.J. Lu
cd25dea0f4 Replace top_srcdir with srcdir
PR driver/54171
	* Makefile.in (version): Replace top_srcdir with srcdir.

From-SVN: r190140
2012-08-03 22:33:27 -07:00
Jonathan Yong
a3dda30be1 * Makefile.in (version): set to BASE-VER file from gcc directory.
From-SVN: r190136
2012-08-03 23:42:20 +00:00
Nick Clifton
d04aacfc87 lib2funcs.c (__clrsbhi2): New function.
* config/m32c/lib2funcs.c (__clrsbhi2): New function.
	Implements __clrsb for an HImode argument.

From-SVN: r190032
2012-08-01 09:36:01 +00:00
Nick Clifton
0d13c974d9 lib2funcs.c (__clrsbhi2): New function.
* 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-31 09:09:29 +00:00
Steven Bosscher
efbb59b21b coverage.c: Refer to "notes file" instead of "graph file" in all comments.
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-23 11:59:15 +00:00
Tristan Gingold
bf1431e359 eh_personality.cc (__gxx_personality_seh0): New function.
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-19 07:29:24 +00:00
Steven Bosscher
659140c86e * config/t-darwin (crt3.0): Remove work-around for fixed PR26840.
From-SVN: r189479
2012-07-14 13:50:59 +00:00
Uros Bizjak
a20d08fd75 sfp-machine.h (FP_HANDLE_EXCEPTIONS): Use __builtin_expect when checking for 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-17 15:54:53 +02:00
Uros Bizjak
4a1721561c * ChangeLog: Fix whitespace.
From-SVN: r188521
2012-06-13 17:59:15 +02:00
Uros Bizjak
79261115dd sfp-machine.h (__sfp_handle_exceptions): New function declaration.
* 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-13 17:56:55 +02:00
Uros Bizjak
bb5c97d42c sfp-machine.h (_FP_NANSIGN_S, [...]): Move ...
* 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-13 17:23:12 +02:00
Sriraman Tallam
91fe5efbd2 libgcc-bsd.ver: Version symbol __cpu_indicator_init.
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-12 02:55:20 +00:00
Roland McGrath
67a218c536 gthr-posix.h [...] (__gthread_active_p): If __GLIBC__ is defined, refer to __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-11 14:15:38 -07:00
Uros Bizjak
492fbea162 sfp-machine.h (__gcc_CMPtype, [...]): Move ...
* 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-09 19:32:27 +02:00
David S. Miller
7b4cf26643 Fix bug added to sparc 64-bit sub_ddmmss() implementation.
* longlong.h [SPARC] (sub_ddmmss): Fix thinko in previous 64-bit
	change.

From-SVN: r188163
2012-06-03 18:54:59 -07:00
David S. Miller
0de0d5c606 Sparc longlong.h enhancements.
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-31 17:12:22 -07:00
Joseph Myers
d8c9d39117 ieee754-df.S: Fix typos.
* 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-29 15:54:22 +01:00
Ian Lance Taylor
31a18a7e23 morestack.S (__morestack_non_split): Check whether caller is varargs and 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-25 20:48:19 +00:00
Olivier Hainque
c57685107c tramp.S (trampoline_setup): Use a longcall sequence in the non pic case on 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-25 08:20:03 +00:00
Olivier Hainque
73fb763006 Fix typo in latest ChangeLog entry addition.
From-SVN: r187840
2012-05-24 14:58:49 +00:00
Olivier Hainque
7c7c339b4b Makefile.in: move dependency on install-unwind_h from "install-leaf" to "install".
libgcc/
        * Makefile.in: move dependency on install-unwind_h from
        "install-leaf" to "install".

From-SVN: r187839
2012-05-24 14:57:11 +00:00
Olivier Hainque
fdc1b7d3a7 Makefile.in (clean): Remove libgcc_tm.stamp as well.
libgcc/
        * Makefile.in (clean): Remove libgcc_tm.stamp as well.
        Use a separate command for stamp removals.

From-SVN: r187838
2012-05-24 14:51:33 +00:00
Andrew Pinski
07ba94b91a re PR bootstrap/53183 (libgcc does not always figure out the size of 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-21 11:56:35 -07:00
Olivier Hainque
4677d2eb61 Makefile.in (install-unwind_h): Rename into ...
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-16 15:36:08 +00:00
Olivier Hainque
7d67c380fa aix-unwind.h (*_REGNO): New, set of useful register numbers.
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-15 14:03:04 +00:00
Rainer Orth
aca06c900e Use i386-cpuinfo.c on all i386 targets
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-10 08:51:39 +00:00
H.J. Lu
0d03ac1ba7 Use a URL for FSF address and replace spaces with tab
* longlong.h: Use a URL instead of an FSF postal address.
	Replace spaces with tab.

From-SVN: r187333
2012-05-09 06:36:19 -07:00
Teresa Johnson
4e8ee9cbf7 This patch adds functionality to libgcov to enable user applications to 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-05-08 21:22:28 +00:00
Aurelien Jarno
e4bb767ec3 config.host (mips64*-*-linux*, [...]): Remove.
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-28 08:03:54 +00:00