aboutsummaryrefslogtreecommitdiff
path: root/libgcc
AgeCommit message (Collapse)AuthorFilesLines
2012-12-13fp16.c (__gnu_f2h_internal): Fix inaccuracy when aexp is 25.John Tytgat2-5/+8
* config/arm/fp16.c (__gnu_f2h_internal): Fix inaccuracy when aexp is 25. From-SVN: r194474
2012-12-12re PR libgcc/55451 (FAIL: gcc.dg/fixed-point/unary.c)Jakub Jelinek2-18/+17
PR libgcc/55451 * fixed-bit.c (FIXED_SSADD, FIXED_SSSUB, FIXED_SSNEG): Avoid undefined signed overflows. From-SVN: r194439
2012-12-09re PR target/55344 (Cross compiling for alpha-linux fails because <signal.h> ↵Uros Bizjak2-0/+7
doesn't exist) PR target/55344 * config/alpha/linux-unwind.h: Disable when inhibit_libc is defined. From-SVN: r194334
2012-12-06sfp-machine.h (FP_EX_ALL): Define.Uros Bizjak4-10/+26
* config/i386/sfp-machine.h (FP_EX_ALL): Define. (FP_TRAPPING_EXCEPTIONS): Define. * config/i386/32/sfp-machine.h (FP_EX_SHIFT): Define. * config/i386/64/sfp-machine.h (FP_EX_SHIFT): Ditto. From-SVN: r194243
2012-12-04re PR bootstrap/55571 (PR48076 fix broke bootstrap on armv5tel-linux-gnueabi)Richard Henderson2-2/+7
PR bootstrap/55571 * Makefile.in (libgcc_s.so): Depend on and link with libgcc.a. From-SVN: r194159
2012-12-04AArch64: Define FP_TRAPPING_EXCEPTIONS.Marcus Shawcroft2-0/+12
2012-12-04 Marcus Shawcroft <marcus.shawcroft@arm.com> * config/aarch64/sfp-machine.h (FP_EX_ALL): Define. (FP_EX_SHIFT): Define. (FP_TRAPPING_EXCEPTIONS): Define. From-SVN: r194151
2012-12-04aarch64: Refactor aarch64 sfp-machine.hMarcus Shawcroft4-52/+96
2012-12-04 Marcus Shawcroft <marcus.shawcroft@arm.com> * config/aarch64/sfp-machine.h (FP_RND_MASK): Define. (FP_ROUNDMODE): Use FP_RND_MASK. * config/aarch64/sfp-exceptions.c: New. * config/aarch64/sfp-machine.h (FP_HANDLE_EXCEPTIONS): Use __sfp_handle_exceptions. From-SVN: r194142
2012-12-04config.host: (arm*-*-freebsd*): Remove.Richard Earnshaw6-140/+34
* config.host: (arm*-*-freebsd*): Remove. (arm*-*-linux*, arm*-*-uclinux*): Simplify logic. (arm*-*-elf*): Remove. (arm*-*-wince-pe*): Remove. * arm/unwind-arm.c (struct fpa_reg): Delete. (struct fpa_regs): Delete. (phase1_vrs): Remove fpa element. (_Unwind_VRS_Get): Remove _UVRSC_FPA. (_Unwind_VRS_Set, _Unwind_VRS_Pop): Likewise. * arm/pr-support.c (__gnu_unwind_execute): Remove FPA support. * ieee754-sf.S (floatundisf): Remove FPA support. (floatdisf): Likewise. * ieee75f-df.S (floatundidf): Likewise. (floatdidf): Likewise. From-SVN: r194138
2012-11-29re PR target/55445 (Always defined __SEH__ when build from trunk)Kai Tietz4-6/+13
PR target/55445 * unwind-c.c (__SEH__): Make sure SjLj isn't active. * unwind-generic.h: Likewise. * unwind-seh.c: Likewise. From-SVN: r193928
2012-11-28re PR libgcc/48076 (Unsafe double checked locking in __emutls_get_address)Richard Henderson2-2/+8
PR libgcc/48076 * emutls.c (__emutls_get_address): Avoid race condition between obj->loc.offset read and emutls_key initialization. From-SVN: r193907
2012-11-22Adjust decimal point of signed accum mode to GCC default.Georg-Johann Lay3-59/+162
libgcc/ Adjust decimal point of signed accum mode to GCC default. PR target/54222 * config/avr/t-avr (LIB1ASMFUNCS): Add _fractsfsq _fractsfusq, _divqq_helper. * config/avr/lib1funcs-fixed.S (__fractqqsf, __fracthqsf) (__fractsasf, __fractsfha, __fractusqsf, __fractsfsa) (__mulha3, __mulsa3) (__divqq3, __divha3, __divsa3): Adjust to new position of decimal point of signed accum types. (__mulusa3_round): New function. (__mulusa3): Use it. (__divqq_helper): New function. (__udivuqq3): Use it. gcc/ Adjust decimal point of signed accum mode to GCC default. PR target/54222 * config/avr/avr-modes.def (HA, SA, DA): Remove mode adjustments. (TA): Move decimal point one bit to the right. * config/avr/avr.c (avr_out_fract): Rewrite. From-SVN: r193721
2012-11-20re PR bootstrap/55370 (Bad libgcc.map)Jakub Jelinek2-0/+9
PR bootstrap/55370 * libgcc-std.ver.in: Add GCC_4.8.0 and %inherit for it. From-SVN: r193648
2012-11-19This patch addresses the bogus "Invocation mismatch" messages seen in ↵Teresa Johnson2-10/+33
parallel profiledbootstrap builds of gcc. This patch addresses the bogus "Invocation mismatch" messages seen in parallel profiledbootstrap builds of gcc. See PR bootstrap/55051 for a discussion of why this is occurring and why this checking is inaccurate. Leave it in when !GCOV_LOCKED, to warn about concurrent update issues requiring locking. 2012-11-18 Teresa Johnson <tejohnson@google.com> PR bootstrap/55051 * libgcov.c (gcov_exit): Remove merged program summary comparison unless !GCOV_LOCKED. From-SVN: r193612
2012-11-15soft-fp updated from GLIBC upstream.Marcus Shawcroft3-29/+46
From-SVN: r193540
2012-11-06generic-morestack.c (__generic_morestack): Align the returned stack pointer ↵Ian Lance Taylor3-13/+46
to a 32 byte boundary. * generic-morestack.c (__generic_morestack): Align the returned stack pointer to a 32 byte boundary. * config/i386/morestack.S (__morestack_non_split) [32-bit]: Don't increment the return address until we have decided that we don't have a varargs function. (__morestack) [32-bit]: Align stack correctly when calling C functions. (__morestack) [64-bit]: Likewise. From-SVN: r193264
2012-11-05bid_functions.h: Check for __GLIBC__ additionally to LINUX when defining ↵Thomas Schwinge4-2/+12
format specifiers. libgcc/config/libbid/ * bid_functions.h: Check for __GLIBC__ additionally to LINUX when defining format specifiers. config/ * dfp.m4 (enable_decimal_float): Enable for i?86*-*-gnu*. gcc/ * configure: Regenerate. libdecnumber/ * configure: Regenerate. libgcc/ * configure: Regenerate. From-SVN: r193143
2012-11-02re PR target/55175 (i386/sfp-exceptions.c:52:7: error: impossible constraint ↵Uros Bizjak5-1/+19
in 'asm') PR target/55175 * config/i386/sfp-exceptions.c: Guard with _SOFT_FLOAT. * config/i386/sfp-machine.h: Guard exception handling code with _SOFT_FLOAT. * config/i386/32/sfp-machine.h: Guard rounding handling code with _SOFT_FLOAT. * config/i386/64/sfp-machine.h: Ditto. From-SVN: r193095
2012-10-31config.host (m32r-*-rtems*): Include crtinit.o and crtfinit.o as extra_parts.Joel Sherrill2-0/+6
2012-10-31 Joel Sherrill <joel.sherrill@oarcorp.com> * config.host (m32r-*-rtems*): Include crtinit.o and crtfinit.o as extra_parts. From-SVN: r193010
2012-10-26crtfastmath.c (set_fast_math): Use __builtin_ia32_fxsave.Uros Bizjak3-19/+32
* config/i386/crtfastmath.c (set_fast_math): Use __builtin_ia32_fxsave. Clear only fxsave.mxcsr_mask. Use saved mxcsr from fxsave structure when appropriate. Correct structure element types. * config/i386/t-crtfm (crtfastmath.o): Compile with -mfxsr, remove -minline-all-stringops from compile flags. From-SVN: r192855
2012-10-25config.host (sh*-*-rtems*): Add sh*-*-elf*'s extra_parts.Ralf Corsepius2-1/+5
2012-10-25 Ralf Corsépius <ralf.corsepius@rtems.org> * config.host (sh*-*-rtems*): Add sh*-*-elf*'s extra_parts. From-SVN: r192805
2012-10-25config.host (sh*-*-rtems*): Add sh*-*-elf*'s extra_parts.Ralf Corsepius2-1/+8
2012-10-25 Ralf Corsépius <ralf.corsepius@rtems.org> * config.host (sh*-*-rtems*): Add sh*-*-elf*'s extra_parts. From-SVN: r192799
2012-10-25config.host (powerpc-*-rtems*): Add rs6000/t-savresfgpr to tmake_file.Sebastian Huber2-1/+6
2012-10-25 Sebastian Huber <sebastian.huber@embedded-brains.de> * config.host (powerpc-*-rtems*): Add rs6000/t-savresfgpr to tmake_file. From-SVN: r192795
2012-10-23AArch64 [8/10] Fixup botched commit.Marcus Shawcroft7-0/+510
From-SVN: r192733
2012-10-23AArch64 [8/10]Ian Bolton2-0/+33
2012-10-23 Ian Bolton <ian.bolton@arm.com> Jim MacArthur <jim.macarthur@arm.com> Marcus Shawcroft <marcus.shawcroft@arm.com> Nigel Stephens <nigel.stephens@arm.com> Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> Richard Earnshaw <rearnsha@arm.com> Sofiane Naci <sofiane.naci@arm.com> Stephen Thomas <stephen.thomas@arm.com> Tejas Belagod <tejas.belagod@arm.com> Yufeng Zhang <yufeng.zhang@arm.com> * config.host (aarch64*-*-elf, aarch64*-*-linux*): New. * config/aarch64/crti.S: New file. * config/aarch64/crtn.S: New file. * config/aarch64/linux-unwind.h: New file. * config/aarch64/sfp-machine.h: New file. * config/aarch64/sync-cache.c: New file. * config/aarch64/t-aarch64: New file. * config/aarch64/t-softfp: New file. Co-Authored-By: Jim MacArthur <jim.macarthur@arm.com> Co-Authored-By: Marcus Shawcroft <marcus.shawcroft@arm.com> Co-Authored-By: Nigel Stephens <nigel.stephens@arm.com> Co-Authored-By: Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> Co-Authored-By: Richard Earnshaw <rearnsha@arm.com> Co-Authored-By: Sofiane Naci <sofiane.naci@arm.com> Co-Authored-By: Stephen Thomas <stephen.thomas@arm.com> Co-Authored-By: Tejas Belagod <tejas.belagod@arm.com> Co-Authored-By: Yufeng Zhang <yufeng.zhang@arm.com> From-SVN: r192729
2012-10-21crti.S: Mark program and data addresses using PRELD.Hans-Peter Nilsson2-9/+51
* config/mmix/crti.S: Mark program and data addresses using PRELD. Remove typo'd and unnecessary alignment-LOC for .data. Remove no-longer-needed LDBU insns. From-SVN: r192646
2012-10-19config.host (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*): Rename ↵Sebastian Huber2-6/+8
"arm*-*-rtemseabi*" to "arm*-*-rtems*". 2012-10-18 Sebastian Huber <sebastian.huber@embedded-brains.de> * config.host (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*): Rename "arm*-*-rtemseabi*" to "arm*-*-rtems*". From-SVN: r192599
2012-10-18Add basic armv8-a supportMatthew Gretton-Dann2-0/+8
2012-10-17 Matthew Gretton-Dann <matthew.gretton-dann@arm.com> * config/arm/lib1funcs.S (__ARM_ARCH__): Define for ARMv8-A. 2012-10-17 Matthew Gretton-Dann <matthew.gretton-dann@arm.com> * gcc.target/arm/ftest-armv8a-arm.c: New testcase. * gcc.target/arm/ftest-armv8a-thumb.c: Likewise. * gcc.target/arm/ftest-support-arm.h (feature_matrix): Add ARMv8-A row. * gcc.target/arm/ftest-support-thumb.h (feature_matrix): Likewise. * gcc.target/arm/ftest-support.h (architecture): Add ARMv8-A. * lib/target-supports.exp: Add ARMv8-A architecture expectation. 2012-10-17 Matthew Gretton-Dann <matthew.gretton-dann@arm.com> Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> * config.gcc: Add support for ARMv8 for arm*-*-* targets. * config/arm/arm-arches.def: Add armv8-a * config/arm/arm-fpus.def: Add fp-armv8, neon-fp-armv8, crypto-neon-fp-armv8. Add crypto field. * config/arm/arm-tables.opt: Regenerate. * config/arm/arm.c (FL_FOR_ARCH8A): Likewise. (arm_arch8): New global variable. (ARM_FPU): Add crypto parameter. (arm_option_override): Set arm_arch8, update comments. * config/arm/arm.h (TARGET_CRYPTO): New macro. (arm_fpu_desc): Add crypto field. (base_architecture): Add ARMv8 entry. (arm_arch8): New variable declaration. * config/arm/bpabi.h: ARMv8 supports BE8. * doc/invoke.texi: Document ARMv8 options. Co-Authored-By: Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> From-SVN: r192558
2012-10-15config.gcc: Match arm*-*-linux-* for ARM Linux/GNU.Matthias Klose2-1/+5
gcc/ 2012-10-15 Matthias Klose <doko@ubuntu.com> * config.gcc: Match arm*-*-linux-* for ARM Linux/GNU. * doc/install.texi: Use arm-*-*linux-* instead of arm-*-*linux-gnueabi. gcc/testsuite/ 2012-10-15 Matthias Klose <doko@ubuntu.com> * lib/target-supports.exp (check_profiling_available): Match arm*-*-linux-* for ARM Linux/GNU. * g++.dg/torture/predcom-1.C: Match arm*-*-linux-* for ARM Linux/GNU. * gfortran.dg/enum_10.f90: Likewise. * gfortran.dg/enum_9.f90: Likewise. * gcc.target/arm/synchronize.c: Likewise. * g++.old-deja/g++.jason/enum6.C: Likewise. * g++.old-deja/g++.other/enum4.C: Likewise. * g++.old-deja/g++.law/enum9.C: Likewise. gcc/ada/ 2012-10-15 Matthias Klose <doko@ubuntu.com> * gcc-interface/Makefile.in: Match arm*-*-linux-*eabi* for ARM Linux/GNU. libgcc/ 2012-10-15 Matthias Klose <doko@ubuntu.com> * config.host: Match arm*-*-linux-* for ARM Linux/GNU. libstdc++-v3/ 2012-10-15 Matthias Klose <doko@ubuntu.com> * configure.host: Match arm*-*-linux-* for ARM Linux/GNU. * testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise. * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc: Likewise. libjava/ 2012-10-15 Matthias Klose <doko@ubuntu.com> * configure.ac: Match arm*-*-linux-* for ARM Linux/GNU. * configure: Regenerate. From-SVN: r192475
2012-10-15gthr.m4: New.Pavel Chupin3-12/+11
* config/gthr.m4: New. Define GCC_AC_THREAD_HEADER. * libgcc/configure: Regenerate. * libgcc/configure.ac: Replace code with GCC_AC_THREAD_HEADER use. * libstdc++-v3/Makefile.in: Regenerate. * libstdc++-v3/acinclude.m4: Replace code with GCC_AC_THREAD_HEADER use. * libstdc++-v3/configure: Regenerate. * libstdc++-v3/doc/Makefile.in: Regenerate. * libstdc++-v3/include/Makefile.am: Regenerate. * libstdc++-v3/include/Makefile.in: Rename variable. * libstdc++-v3/libsupc++/Makefile.in: Regenerate. * libstdc++-v3/po/Makefile.in: Regenerate. * libstdc++-v3/python/Makefile.in: Regenerate. * libstdc++-v3/src/Makefile.in: Regenerate. * libstdc++-v3/src/c++11/Makefile.in: Regenerate. * libstdc++-v3/src/c++98/Makefile.in: Regenerate. * libstdc++-v3/testsuite/Makefile.in: Regenerate. From-SVN: r192458
2012-10-11sfp-exceptions.c (__sfp_handle_exceptions): Emit SSE instructions for 64bit ↵Uros Bizjak2-2/+7
targets only. * config/i386/sfp-exceptions.c (__sfp_handle_exceptions): Emit SSE instructions for 64bit targets only. From-SVN: r192355
2012-10-10sfp-machine.h (FP_RND_NEAREST, [...]): Move to ...Uros Bizjak4-15/+39
* config/i386/sfp-machine.h (FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF, FP_RND_MINF, FP_RND_MASK, FP_INIT_ROUNDMODE, _FP_DECL_EX): Move to ... * config/i386/32/sfp-machine.h: ... here. * config/i386/64/sfp-machine.h (FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF, FP_RND_MINF, FP_RND_MASK, FP_INIT_ROUNDMODE, _FP_DECL_EX): New defines. From-SVN: r192324
2012-10-07Fix typo in previous commit:Matthias Klose1-1/+1
2012-10-07 Matthias Klose <doko@ubuntu.com> * config/arm/unwind-arm.h (__gnu_unwind_24bit): Mark parameters as unused. (_Unwind_decode_typeinfo_ptr): Mark base as unused. From-SVN: r192182
2012-10-07unwind-arm.h (__gnu_unwind_24bit): Mark parameters as unused.Matthias Klose2-2/+11
2012-10-07 Matthias Klose <doko@ubuntu.com> * config/arm/unwind-arm.h (__gnu_unwind_24bit): Mark parameters as unused. (_Unwind_decode_typeinfo_ptr): Mark base as unused. From-SVN: r192181
2012-10-05config.host (*-*-openbsd*): Add t-eh-dw2-dip to tmake_file.Mark Kettenis3-2/+15
* config.host (*-*-openbsd*): Add t-eh-dw2-dip to tmake_file. * unwind-dw2-fde-dip.c: Don't include <elf.h> on OpenBSD. (USE_PT_GNU_EH_FRAME): Define for OpenBSD. (ElfW): Likewise. From-SVN: r192148
2012-10-05re PR other/53889 (Gthreads doesn't support destroying recursive mutexes)Jonathan Wakely2-3/+11
PR other/53889 * config/i386/gthr-win32.h (__gthread_recursive_mutex_destroy): Fix parameter names. From-SVN: r192114
2012-10-04re PR target/33135 ([SH] -ffinite-math-only should not be on by default)Oleg Endo4-4/+8
PR target/33135 * config/sh/t-sh (HOST_LIBGCC2_CFLAGS): Delete. * config/sh/t-netbsd (HOST_LIBGCC2_CFLAGS): Delete. * config/sh/t-linux (HOST_LIBGCC2_CFLAGS): Remove mieee option. From-SVN: r192097
2012-10-03re PR target/50457 (SH2A atomic functions)Oleg Endo4-228/+98
PR target/50457 * config/sh/sh.c (parse_validate_atomic_model_option): Handle name strings in sh_atomic_model. * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Move macro implementation to ... * config/sh/sh-c.c (sh_cpu_cpp_builtins): ... this new function. Add __SH1__ and __SH2__ defines. Add __SH_ATOMIC_MODEL_*__ define. * config/sh/sh-protos.h (sh_atomic_model): Add name and cdef_name variables. (sh_cpu_cpp_builtins): Declare new function. PR target/50457 * config/sh/linux-atomic.S: Delete. * config/sh/linux-atomic.c: New. * config/sh/t-linux (LIB2ADD): Replace linux-atomic.S with linux-atomic.c. Add cflags to disable warnings. From-SVN: r192051
2012-10-02re PR other/53889 (Gthreads doesn't support destroying recursive mutexes)Jonathan Wakely11-16/+92
libgcc: PR other/53889 * gthr.h (__gthread_recursive_mutex_destroy): Document new required function. * gthr-posix.h (__gthread_recursive_mutex_destroy): Define. * gthr-single.h (__gthread_recursive_mutex_destroy): Likewise. * config/gthr-rtems.h (__gthread_recursive_mutex_destroy): Likewise. * config/gthr-vxworks.h (__gthread_recursive_mutex_destroy): Likewise. * config/i386/gthr-win32.h (__gthread_recursive_mutex_destroy): Likewise. * config/mips/gthr-mipssde.h (__gthread_recursive_mutex_destroy): Likewise. * config/pa/gthr-dce.h (__gthread_recursive_mutex_destroy): Likewise. * config/s390/gthr-tpf.h (__gthread_recursive_mutex_destroy): Likewise. libstdc++-v3: PR other/53889 * include/std/mutex (__recursive_mutex_base::~__recursive_mutex_base): Use __gthread_recursive_mutex_destroy. (__recursive_mutex_base::_S_destroy): Remove. (__recursive_mutex_base::_S_destroy_win32): Likewise. * include/ext/concurrence.h (__recursive_mutex::~__recursive_mutex): Use __gthread_recursive_mutex_destroy. (__recursive_mutex::_S_destroy): Remove. (__recursive_mutex::_S_destroy_win32): Likewise. From-SVN: r192002
2012-09-20config.host (hppa-*-openbsd*): New target.Mark Kettenis3-0/+17
libgcc/: * config.host (hppa-*-openbsd*): New target. * config/pa/t-openbsd: New file. gcc:/ * config.gcc (hppa*-*-openbsd*): New target. * config/pa/pa-openbsd.h: New file. * config/pa/pa32-openbsd.h: New file. * config/host-openbsd.c: Update copyright year. (TRY_EXCEPT_VM_SPACE): Define for OpenBSD/hppa. From-SVN: r191508
2012-09-15re PR target/54222 ([avr] Implement fixed-point support)Georg-Johann Lay4-16/+290
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-10re PR target/54089 ([SH] Refactor shift patterns)Oleg Endo2-208/+249
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-10re PR target/46191 (Non-absolute names in libgcc_s.so)Andreas Schwab2-1/+7
PR target/46191 * config/t-slibgcc-libgcc (SHLIB_MAKE_SOLINK): Use -lgcc instead of libgcc.a. From-SVN: r191160
2012-09-07This fixes part of the issue described in PR gcov-profile/54487 where there...Teresa Johnson2-1/+13
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-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