1. 19 Sep, 2014 1 commit
    • config.gcc (powerpc-wrs-vxworksmils): New configuration. · 3a8fe7c6
      2014-09-18  Olivier Hainque  <hainque@adacore.com>
      
      gcc/
      	* config.gcc (powerpc-wrs-vxworksmils): New configuration.
      	* config/rs6000/t-vxworksmils: New file.
      	* config/rs6000/vxworksmils.h: New file.
      
      libgcc/
      	* config.host (powerpc-wrs-vxworksmils): New configuration,
      	same as vxworksae.
      
      contrib/
      	* config-list.mk (LIST): Add powerpc-wrs-vxworksmils.
      
      From-SVN: r215377
      Olivier Hainque committed
  2. 18 Sep, 2014 2 commits
    • Remove LIBGCC2_TF_CEXT target macro. · dd69f047
      This patch removes the (undocumented) LIBGCC2_TF_CEXT target macro,
      replacing it by -fbuilding-libgcc predefines (and thereby gets rid of
      another LIBGCC2_LONG_DOUBLE_TYPE_SIZE conditional, though some more
      patches are needed before that target macro can be eliminated).  This
      macro indicated the suffix used on __builtin_huge_val,
      __builtin_copysign, __builtin_fabs built-in function names to produce
      the names for a given floating-point mode.
      
      Predefines are added for all floating-point modes supported for
      libgcc, not just TFmode.  These are fully accurate for modes
      corresponding to float, double and long double.  For other modes, the
      suffix for *constants* is determined by the targetm.c.mode_for_suffix
      hook (the limit to two possible suffixes 'w' and 'q' being hardcoded
      in various places).  This is in fact the suffix for built-in functions
      as well where such functions exist.
      
      * For i386, the *q functions always exist (whether or not TFmode is
        used for long double).  The *w functions never exist (but this
        doesn't matter for libgcc, since no i386 configuration treats XFmode
        as a supported scalar mode if long double is TFmode; if __float80
        were to be supported for 64-bit Android, properly such functions
        ought to be added).
      
      * For ia64, the *q functions exist for non-HP-UX (under HP-UX, long
        double is TFmode, so they aren't needed).  The *w functions never
        exist.  This is an issue for this libgcc code for the XFmode complex
        functions in libgcc on HP-UX; as I understand it, right now those
        will accidentally be using TFmode versions of those three functions,
        so involving unnecessary conversions, while the sanity check on CEXT
        accidentally passes because all it tests is the sizes of the types.
      
      Because of the lack of 'w' functions, the patch uses 'l' when the
      constant suffix is 'w', matching what the existing libgcc code would
      do for IA64 HP-UX in that case.
      
      Ideally there would be generic code to create such built-in functions
      for all supported floating-point types.  That may be something to
      consider if support for TS 18661-3 (standard bindings for IEEE
      754-2008, defining names such as _Float128, and function names such as
      copysignf128) is added in future.
      
      Bootstrapped with no regressions on x86_64-unknown-linux-gnu.
      
      gcc:
      	* system.h (LIBGCC2_TF_CEXT): Poison.
      	* config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove.
      	* config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise.
      	* config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise.
      	* config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise.
      	* config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise.
      	* config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise.
      	* config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise.
      	* config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise.
      	* config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise.
      
      gcc/c-family:
      	* c-cppbuiltin.c (c_cpp_builtins): Define __LIBGCC_*_FUNC_EXT__
      	for supported floating-point modes.
      
      libgcc:
      	* libgcc2.c (CEXT): Define using __LIBGCC_*_FUNC_EXT__.
      
      From-SVN: r215368
      Joseph Myers committed
    • Fix i386 FP_TRAPPING_EXCEPTIONS. · e770bfd9
      The i386 sfp-machine.h defines FP_TRAPPING_EXCEPTIONS in a way that is
      always wrong: it treats a set bit as indicating the exception is
      trapping, when actually a set bit (both for 387 and SSE floating
      point) indicates it is masked, and a clear bit indicates it is
      trapping.  This patch fixes this bug.
      
      Bootstrapped with no regressions on x86_64-unknown-linux-gnu.
      
      libgcc:
      	* config/i386/sfp-machine.h (FP_TRAPPING_EXCEPTIONS): Treat clear
      	bits not set bits as indicating trapping exceptions.
      
      gcc/testsuite:
      	* gcc.dg/torture/float128-exact-underflow.c: New test.
      
      From-SVN: r215347
      Joseph Myers committed
  3. 17 Sep, 2014 2 commits
    • Makefile.in (LIBGCOV_INTERFACE): Add _gcov_dump from ... · cadb2b96
      	* Makefile.in (LIBGCOV_INTERFACE): Add _gcov_dump from ...
      	(LIBGCOV_DRIVER): ... here.
      	* libgcov-driver.c (gcov_master): New.
      	(gcov_exit): Remove from master chain.
      	(__gcov_init): Add to master chain if version compatible.  Don't
      	clear the version.
      	* libgcov_interface (__gcov_flust): Call gcov_dump_int.
      	(gcov_reset_int): Clear master chain, if compatible.
      	(gcov_dump_int): New internal interface.  Dump master chain, if
      	compatible.
      	(gcov_dump): Alias for gcov_dump_int.
      	* libgcov.h (struct gcov_root): Add next and prev fields.
      	(struct gcov_master): New struct.
      	(__gcov_master): New.
      	(gcov_dump_int): Declare.
      
      From-SVN: r215337
      Nathan Sidwell committed
    • config.host (x86_64-*-mingw*): Add i386/t-cygming to tmake_file and crtbegin.o +… · 580d22a3
      config.host (x86_64-*-mingw*): Add i386/t-cygming to tmake_file and crtbegin.o + crtend.o to extra_parts.
      
      2014-09-17  Olivier Hainque  <hainque@adacore.com>
      
              * config.host (x86_64-*-mingw*): Add i386/t-cygming to tmake_file
              and crtbegin.o + crtend.o to extra_parts.
      
      From-SVN: r215323
      Olivier Hainque committed
  4. 12 Sep, 2014 1 commit
    • Remove LIBGCC2_HAS_?F_MODE target macros. · 8cc4b7a2
      This patch removes the LIBGCC2_HAS_{SF,DF,XF,TF}_MODE target macros,
      replacing them by predefines with -fbuilding-libgcc, together with a
      target hook that can influence those predefines when needed.
      
      The new default is that a floating-point mode is supported in libgcc
      if (a) it passes the scalar_mode_supported_p hook (otherwise it's not
      plausible for it to be supported in libgcc) and (b) it's one of those
      four modes (since those are the modes for which libgcc hardcodes the
      possibility of support).  The target hook can override the default
      choice (in either direction) for modes that pass
      scalar_mode_supported_p (although overriding in the direction of
      returning true when the default would return false only makes sense if
      all relevant functions are specially defined in libgcc for that
      particular target).
      
      The previous default settings depended on various settings such as
      LIBGCC2_LONG_DOUBLE_TYPE_SIZE, as well as targets defining the above
      target macros if the default wasn't correct.
      
      The default scalar_mode_supported_p only declares a floating-point
      mode to be supported if it matches one of float / double / long
      double.  This means that in most cases where a mode is only supported
      conditionally in libgcc (TFmode only supported if it's the mode of
      long double, most commonly), the default gets things right.  Overrides
      were needed in the following cases:
      
      * SFmode would always have been supported in libgcc (the condition was
        BITS_PER_UNIT == 8, true for all current targets), but pdp11
        defaults to 64-bit float, and in that case SFmode would fail
        scalar_mode_supported_p.  I don't know if libgcc actually built for
        pdp11 (and the port may well no longer be being used), but this
        patch adds a scalar_mode_supported_p hook to it to ensure SFmode is
        treated as supported.
      
      * Certain i386 and ia64 targets need the new hook to match the
        existing cases for when XFmode or TFmode support is present in
        libgcc.  For i386, the hook can always declare XFmode to be
        supported - the cases where it's not are the cases where long double
        is TFmode, in which case XFmode fails scalar_mode_supported_p[*] -
        but TFmode support needs to be conditional.  (And of the targets not
        defining LIBGCC2_HAS_TF_MODE before this patch, some defined
        LONG_DOUBLE_TYPE_SIZE to 64, so ensuring LIBGCC2_HAS_TF_MODE would
        always be false, while others did not define it, so allowing it to
        be true in the -mlong-double-128 case.  This patch matches that
        logic, although I suspect all the latter targets would have been
        broken if you tried to enable -mlong-double-128 by default, for lack
        of the soft-fp TFmode support in libgcc, which is separately
        configured.)
      
        [*] I don't know if it's deliberate not to support __float80 at all
        with -mlong-double-128.
      
      In order to implement the default version of the new hook,
      insn-modes.h was made to contain macros such as HAVE_TFmode for each
      machine mode, so the default hook can contain conditionals on whether
      XFmode and TFmode exist (to match the hardcoding of a list of modes in
      libgcc).  This is also used in fortran/trans-types.c; previously it
      had a conditional on defined(LIBGCC2_HAS_TF_MODE) (a bit dubious,
      since it ignored the value of the macro), which is replaced by testing
      defined(HAVE_TFmode), in conjunction with requiring
      targetm.libgcc_floating_mode_supported_p.
      
      (Fortran is testing something stronger than that hook: not only is
      libgcc support required, but also libm or equivalent.  Thus, it has a
      test for ENABLE_LIBQUADMATH_SUPPORT in the case that the mode is
      TFmode and that's not the same as any of the three standard types.
      The old and new tests are intended to accept exactly the same set of
      modes for all targets.)
      
      Apart from the four target macros eliminated by this patch, it gets us
      closer to eliminating LIBGCC2_LONG_DOUBLE_TYPE_SIZE as well, though a
      few more places using that macro need changing first.
      
      Bootstrapped with no regressions on x86_64-unknown-linux-gnu; also
      built cc1 for crosses to ia64-elf and pdp11-none as a minimal test of
      changes for those targets.
      
      gcc:
      	* target.def (libgcc_floating_mode_supported_p): New hook.
      	* targhooks.c (default_libgcc_floating_mode_supported_p): New
      	function.
      	* targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
      	* doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
      	(LIBGCC2_HAS_TF_MODE): Remove.
      	(TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
      	* doc/tm.texi: Regenerate.
      	* genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
      	machine mode.
      	* system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
      	(LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
      	* config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
      	* config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
      	* config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
      	* config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
      	* config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
      	* config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
      	* config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
      	* config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
      	function.
      	(TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
      	* config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
      	* config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
      	* config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
      	* config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
      	* config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
      	* config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
      	* config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
      	* config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
      	* config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
      	* config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
      	* config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
      	* config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
      	* config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
      	Remove.
      	* config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
      	New macro.
      	(ia64_libgcc_floating_mode_supported_p): New function.
      	* config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
      	* config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
      	(IA64_NO_LIBGCC_TFMODE): Define.
      	* config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
      	* config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New
      	macro.
      	(pdp11_scalar_mode_supported_p): New function.
      	* config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
      	* config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
      
      gcc/c-family:
      	* c-cppbuiltin.c (c_cpp_builtins): Define __LIBGCC_HAS_%s_MODE__
      	macros for floating-point modes.
      
      gcc/fortran:
      	* trans-types.c (gfc_init_kinds): Check
      	targetm.libgcc_floating_mode_supported_p for floating-point
      	modes.  Check HAVE_TFmode instead of LIBGCC2_HAS_TF_MODE.
      
      libgcc:
      	* libgcc2.h (LIBGCC2_HAS_SF_MODE): Define using
      	__LIBGCC_HAS_SF_MODE__.
      	(LIBGCC2_HAS_DF_MODE): Define using __LIBGCC_HAS_DF_MODE__.
      	(LIBGCC2_HAS_XF_MODE): Define using __LIBGCC_HAS_XF_MODE__.
      	(LIBGCC2_HAS_TF_MODE): Define using __LIBGCC_HAS_TF_MODE__.
      	* config/libbid/bid_gcc_intrinsics.h
      	(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Do not define.
      	(LIBGCC2_HAS_XF_MODE): Define using __LIBGCC_HAS_XF_MODE__.
      	(LIBGCC2_HAS_TF_MODE): Define using __LIBGCC_HAS_TF_MODE__.
      	* fixed-bit.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Do not define.
      	(LIBGCC2_HAS_SF_MODE): Define using __LIBGCC_HAS_SF_MODE__.
      	(LIBGCC2_HAS_DF_MODE): Define using __LIBGCC_HAS_DF_MODE__.
      
      From-SVN: r215215
      Joseph Myers committed
  5. 11 Sep, 2014 1 commit
    • re PR target/63223 ([avr] Make jumptables work with -Wl,--section-start,.text=) · ea3f2b24
      gcc/
      	PR target/63223
      	* config/avr/avr.md (*tablejump.3byte-pc): New insn.
      	(*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL.  Add void clobber.
      	(casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
      libgcc/
      	PR target/63223
      	* config/avr/libgcc.S (__tablejump2__): Rewrite to use RAMPZ, ELPM
      	and R24 as needed.  Make work for all devices and .text locations.
      	(__do_global_ctors, __do_global_dtors): Use word addresses.
      	(__tablejump__, __tablejump_elpm__): Remove functions.
      	* t-avr (LIB1ASMFUNCS): Remove _tablejump, _tablejump_elpm.
      	Add _tablejump2.
      	(XICALL, XIJMP): New macros.
      
      From-SVN: r215152
      Georg-Johann Lay committed
  6. 09 Sep, 2014 2 commits
    • Add crtfastmath for AArch64. · b677236a
      gcc/Changelog
      
      2014-09-09  Marcus Shawcroft  <marcus.shawcroft@arm.com>
                  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
      
           * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
           * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC): Define.
            (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
      
      libgcc/Changelog
      
      2014-09-09  Marcus Shawcroft  <marcus.shawcroft@arm.com>
                  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
      
          * config.host (aarch64*): Include crtfastmath and t-crtfm.
          * config/aarch64/crtfastmath.c: New file. 
      
      Co-Authored-By: Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
      
      From-SVN: r215086
      Marcus Shawcroft committed
    • remove picochip · 157e859f
      contrib/ChangeLog:
      
      2014-09-08  Trevor Saunders  <tsaunders@mozilla.com>
      
      	* compare-all-tests: Don't test picochip.
      	* config-list.mk: Likewise.
      
      gcc/ChangeLog:
      
      2014-09-08  Trevor Saunders  <tsaunders@mozilla.com>
      
      	* common/config/picochip/picochip-common.c: Remove.
      	* config.gcc: Remove support for picochip.
      	* config/picochip/constraints.md: Remove.
      	* config/picochip/dfa_space.md: Remove.
      	* config/picochip/dfa_speed.md: Remove.
      	* config/picochip/picochip-protos.h: Remove.
      	* config/picochip/picochip.c: Remove.
      	* config/picochip/picochip.h: Remove.
      	* config/picochip/picochip.md: Remove.
      	* config/picochip/picochip.opt: Remove.
      	* config/picochip/predicates.md: Remove.
      	* config/picochip/t-picochip: Remove.
      	* doc/md.texi: Don't document picochi.
      
      libgcc/ChangeLog:
      
      2014-09-08  Trevor Saunders  <tsaunders@mozilla.com>
      
      	* config.host: Remove picochip support.
      	* config/picochip/adddi3.S: Remove.
      	* config/picochip/ashlsi3.S: Remove.
      	* config/picochip/ashlsi3.c: Remove.
      	* config/picochip/ashrsi3.S: Remove.
      	* config/picochip/ashrsi3.c: Remove.
      	* config/picochip/clzsi2.S: Remove.
      	* config/picochip/cmpsi2.S: Remove.
      	* config/picochip/divmod15.S: Remove.
      	* config/picochip/divmodhi4.S: Remove.
      	* config/picochip/divmodsi4.S: Remove.
      	* config/picochip/lib1funcs.S: Remove.
      	* config/picochip/longjmp.S: Remove.
      	* config/picochip/lshrsi3.S: Remove.
      	* config/picochip/lshrsi3.c: Remove.
      	* config/picochip/parityhi2.S: Remove.
      	* config/picochip/popcounthi2.S: Remove.
      	* config/picochip/setjmp.S: Remove.
      	* config/picochip/subdi3.S: Remove.
      	* config/picochip/t-picochip: Remove.
      	* config/picochip/ucmpsi2.S: Remove.
      	* config/picochip/udivmodhi4.S: Remove.
      	* config/picochip/udivmodsi4.S: Remove.
      
      From-SVN: r215039
      Trevor Saunders committed
  7. 08 Sep, 2014 2 commits
    • Remove SF_SIZE etc. target macros. · 66bb34c0
      gcc:
      	* config/i386/cygming.h (TF_SIZE): Remove.
      	* config/i386/darwin.h (TF_SIZE): Remove.
      	* config/i386/dragonfly.h (TF_SIZE): Remove.
      	* config/i386/freebsd.h (TF_SIZE): Remove.
      	* config/i386/gnu-user-common.h (TF_SIZE): Remove.
      	* config/i386/openbsdelf.h (TF_SIZE): Remove.
      	* config/i386/sol2.h (TF_SIZE): Remove.
      	* config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
      	* config/ia64/linux.h (TF_SIZE): Remove.
      	* doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
      	* doc/tm.texi: Regenerate.
      	* system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
      
      gcc/c-family:
      	* c-cppbuiltin.c (c_cpp_builtins): Define macros for mantissa
      	digits of floating-point modes if -fbuilding-libgcc.
      
      libgcc:
      	* libgcc2.c (SF_SIZE): Change all uses to __LIBGCC_SF_MANT_DIG__.
      	(DF_SIZE): Change all uses to __LIBGCC_DF_MANT_DIG__.
      	(XF_SIZE): Change all uses to __LIBGCC_XF_MANT_DIG__.
      	(TF_SIZE): Change all uses to __LIBGCC_TF_MANT_DIG__.
      	* libgcc2.h (SF_SIZE): Change to __LIBGCC_SF_MANT_DIG__.  Give
      	error if not defined and LIBGCC2_HAS_SF_MODE is defined.
      	(DF_SIZE): Change to __LIBGCC_DF_MANT_DIG__.  Give error if not
      	defined and LIBGCC2_HAS_DF_MODE is defined.
      	(XF_SIZE): Change to __LIBGCC_XF_MANT_DIG__.  Give error if not
      	defined and LIBGCC2_HAS_XF_MODE is defined.
      	(TF_SIZE): Change to __LIBGCC_TF_MANT_DIG__.  Give error if not
      	defined and LIBGCC2_HAS_TF_MODE is defined.
      
      From-SVN: r215014
      Joseph Myers committed
    • Remove no-longer-needed fp-bit target macros. · 9686a2e6
      gcc:
      	* defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
      	Remove.
      	* doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
      	Remove.
      	* doc/tm.texi: Regenerate.
      	* system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
      	Poison.
      	* config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
      	* config/cris/cris.h (__make_dp): Remove.
      
      libgcc:
      	* fp-bit.c (pack_d, unpack_d): Remove LARGEST_EXPONENT_IS_NORMAL
      	and ROUND_TOWARDS_ZERO conditionals.
      
      From-SVN: r215013
      Joseph Myers committed
  8. 07 Sep, 2014 1 commit
  9. 05 Sep, 2014 1 commit
    • Use -fbuilding-libgcc for more target macros used in libgcc. · 53d68b9f
      gcc/c-family:
      	* c-cppbuiltin.c (c_cpp_builtins): Also define
      	__LIBGCC_EH_TABLES_CAN_BE_READ_ONLY__,
      	__LIBGCC_EH_FRAME_SECTION_NAME__, __LIBGCC_JCR_SECTION_NAME__,
      	__LIBGCC_CTORS_SECTION_ASM_OP__, __LIBGCC_DTORS_SECTION_ASM_OP__,
      	__LIBGCC_TEXT_SECTION_ASM_OP__, __LIBGCC_INIT_SECTION_ASM_OP__,
      	__LIBGCC_INIT_ARRAY_SECTION_ASM_OP__,
      	__LIBGCC_STACK_GROWS_DOWNWARD__,
      	__LIBGCC_DONT_USE_BUILTIN_SETJMP__,
      	__LIBGCC_DWARF_ALT_FRAME_RETURN_COLUMN__,
      	__LIBGCC_DWARF_FRAME_REGISTERS__,
      	__LIBGCC_EH_RETURN_STACKADJ_RTX__, __LIBGCC_JMP_BUF_SIZE__,
      	__LIBGCC_STACK_POINTER_REGNUM__ and
      	__LIBGCC_VTABLE_USES_DESCRIPTORS__ for -fbuilding-libgcc.
      	(builtin_define_with_value): Handle backslash-escaping in string
      	macro values.
      
      libgcc:
      	* Makefile.in (CRTSTUFF_CFLAGS): Add -fbuilding-libgcc.
      	* config/aarch64/linux-unwind.h (STACK_POINTER_REGNUM): Change all
      	uses to __LIBGCC_STACK_POINTER_REGNUM__.
      	(DWARF_ALT_FRAME_RETURN_COLUMN): Change all uses to
      	__LIBGCC_DWARF_ALT_FRAME_RETURN_COLUMN__.
      	* config/alpha/vms-unwind.h (DWARF_ALT_FRAME_RETURN_COLUMN):
      	Change use to __LIBGCC_DWARF_ALT_FRAME_RETURN_COLUMN__.
      	* config/cr16/unwind-cr16.c (STACK_GROWS_DOWNWARD): Change all
      	uses to __LIBGCC_STACK_GROWS_DOWNWARD__.
      	(DWARF_FRAME_REGISTERS): Change all uses to
      	__LIBGCC_DWARF_FRAME_REGISTERS__.
      	(EH_RETURN_STACKADJ_RTX): Change all uses to
      	__LIBGCC_EH_RETURN_STACKADJ_RTX__.
      	* config/cr16/unwind-dw2.h (DWARF_FRAME_REGISTERS): Change use to
      	__LIBGCC_DWARF_FRAME_REGISTERS__.  Remove conditional definition.
      	* config/i386/cygming-crtbegin.c (EH_FRAME_SECTION_NAME): Change
      	use to __LIBGCC_EH_FRAME_SECTION_NAME__.
      	(JCR_SECTION_NAME): Change use to __LIBGCC_JCR_SECTION_NAME__.
      	* config/i386/cygming-crtend.c (EH_FRAME_SECTION_NAME): Change use
      	to __LIBGCC_EH_FRAME_SECTION_NAME__.
      	(JCR_SECTION_NAME): Change use to __LIBGCC_JCR_SECTION_NAME__
      	* config/mips/linux-unwind.h (STACK_POINTER_REGNUM): Change use to
      	__LIBGCC_STACK_POINTER_REGNUM__.
      	(DWARF_ALT_FRAME_RETURN_COLUMN): Change all uses to
      	__LIBGCC_DWARF_ALT_FRAME_RETURN_COLUMN__.
      	* config/nios2/linux-unwind.h (STACK_POINTER_REGNUM): Change use
      	to __LIBGCC_STACK_POINTER_REGNUM__.
      	* config/pa/hpux-unwind.h (DWARF_ALT_FRAME_RETURN_COLUMN): Change
      	all uses to __LIBGCC_DWARF_ALT_FRAME_RETURN_COLUMN__.
      	* config/pa/linux-unwind.h (DWARF_ALT_FRAME_RETURN_COLUMN): Change
      	all uses to __LIBGCC_DWARF_ALT_FRAME_RETURN_COLUMN__.
      	* config/rs6000/aix-unwind.h (DWARF_ALT_FRAME_RETURN_COLUMN):
      	Change all uses to __LIBGCC_DWARF_ALT_FRAME_RETURN_COLUMN__.
      	(STACK_POINTER_REGNUM): Change all uses to
      	__LIBGCC_STACK_POINTER_REGNUM__.
      	* config/rs6000/darwin-fallback.c (STACK_POINTER_REGNUM): Change
      	use to __LIBGCC_STACK_POINTER_REGNUM__.
      	* config/rs6000/linux-unwind.h (STACK_POINTER_REGNUM): Change all
      	uses to __LIBGCC_STACK_POINTER_REGNUM__.
      	* config/sparc/linux-unwind.h (DWARF_FRAME_REGISTERS): Change use
      	to __LIBGCC_DWARF_FRAME_REGISTERS__.
      	* config/sparc/sol2-unwind.h (DWARF_FRAME_REGISTERS): Change use
      	to __LIBGCC_DWARF_FRAME_REGISTERS__.
      	* config/tilepro/linux-unwind.h (STACK_POINTER_REGNUM): Change use
      	to __LIBGCC_STACK_POINTER_REGNUM__.
      	* config/xtensa/unwind-dw2-xtensa.h (DWARF_FRAME_REGISTERS):
      	Remove conditional definition.
      	* crtstuff.c (TEXT_SECTION_ASM_OP): Change all uses to
      	__LIBGCC_TEXT_SECTION_ASM_OP__.
      	(EH_FRAME_SECTION_NAME): Change all uses to
      	__LIBGCC_EH_FRAME_SECTION_NAME__.
      	(EH_TABLES_CAN_BE_READ_ONLY): Change all uses to
      	__LIBGCC_EH_TABLES_CAN_BE_READ_ONLY__.
      	(CTORS_SECTION_ASM_OP): Change all uses to
      	__LIBGCC_CTORS_SECTION_ASM_OP__.
      	(DTORS_SECTION_ASM_OP): Change all uses to
      	__LIBGCC_DTORS_SECTION_ASM_OP__.
      	(JCR_SECTION_NAME): Change all uses to
      	__LIBGCC_JCR_SECTION_NAME__.
      	(INIT_SECTION_ASM_OP): Change all uses to
      	__LIBGCC_INIT_SECTION_ASM_OP__.
      	(INIT_ARRAY_SECTION_ASM_OP): Change all uses to
      	__LIBGCC_INIT_ARRAY_SECTION_ASM_OP__.
      	* generic-morestack.c (STACK_GROWS_DOWNWARD): Change all uses to
      	__LIBGCC_STACK_GROWS_DOWNWARD__.
      	* libgcc2.c (INIT_SECTION_ASM_OP): Change all uses to
      	__LIBGCC_INIT_SECTION_ASM_OP__.
      	(INIT_ARRAY_SECTION_ASM_OP): Change all uses to
      	__LIBGCC_INIT_ARRAY_SECTION_ASM_OP__.
      	(EH_FRAME_SECTION_NAME): Change all uses to
      	__LIBGCC_EH_FRAME_SECTION_NAME__.
      	* libgcov-profiler.c (VTABLE_USES_DESCRIPTORS): Remove conditional
      	definitions.  Change all uses to
      	__LIBGCC_VTABLE_USES_DESCRIPTORS__.
      	* unwind-dw2.c (STACK_GROWS_DOWNWARD): Change all uses to
      	__LIBGCC_STACK_GROWS_DOWNWARD__.
      	(DWARF_FRAME_REGISTERS): Change all uses to
      	__LIBGCC_DWARF_FRAME_REGISTERS__.
      	(EH_RETURN_STACKADJ_RTX): Change all uses to
      	__LIBGCC_EH_RETURN_STACKADJ_RTX__.
      	* unwind-dw2.h (DWARF_FRAME_REGISTERS): Remove conditional
      	definition.  Change use to __LIBGCC_DWARF_FRAME_REGISTERS__.
      	* unwind-sjlj.c (DONT_USE_BUILTIN_SETJMP): Change all uses to
      	__LIBGCC_DONT_USE_BUILTIN_SETJMP__.
      	(JMP_BUF_SIZE): Change use to __LIBGCC_JMP_BUF_SIZE__.
      
      From-SVN: r214954
      Joseph Myers committed
  10. 03 Sep, 2014 1 commit
  11. 19 Aug, 2014 2 commits
  12. 13 Aug, 2014 1 commit
  13. 12 Aug, 2014 1 commit
  14. 07 Aug, 2014 1 commit
    • Makefile.in (LIBGCOV_INTERFACE): Move _gcov_dump ... · 4303c581
      	* Makefile.in (LIBGCOV_INTERFACE): Move _gcov_dump ...
      	(LIBGCOV_DRIVER): ... to here.
      	* libgcov.h (gcov_do_dump): New #define.
      	(struct gcov_root): New.
      	(__gcov_root): New declaration.
      	(__gcov_dump_one): Declare.
      	* libgcov-driver.c (gcov_list, gcov_dump_complete,
      	run_accounted): Delete.
      	(gcov_compute_histogram): Add LIST argument, adjust.
      	(compute_summary): Adjust gcov_compute_histogram call.
      	(gcov_do_dump): Not hidden, static in libgcov.
      	(gcov_clear): Move  to interface.c.
      	(__gcov_dump_one): New, broken out of ...
      	(gcov_exit): ... here.  Make static.
      	(__gcov_root): New.
      	(__gcov_init): Adjust.
      	* libgcov-interface.c (gcov_clear, gcov_exit): Remove
      	declarations.
      	(__gcov_flush): Use __gcov_dump_one and __gcov_reset.
      	(gcov_clear): Moved from driver.c.   Add LIST argument.
      	(__gcov_reset): Adjust for changed interfaces.
      	(__gcov_fork): Remove local declaration of __gcov_flush_mx.
      
      From-SVN: r213719
      Nathan Sidwell committed
  15. 05 Aug, 2014 1 commit
  16. 04 Aug, 2014 1 commit
    • re PR middle-end/60102 (powerpc fp-bit ices at dwf_regno) · 23742a9e
      	PR target/60102
      
      [libgcc]
      2014-07-31  Rohit  <rohitarulraj@freescale.com>
      	* config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Update
      	  based on change in SPE high register numbers and 3 HTM registers.
      
      [gcc]
      2014-07-31  Rohit  <rohitarulraj@freescale.com>
      	* config/rs6000/rs6000.c
      	  (rs6000_reg_names) : Add SPE high register names.
      	  (alt_reg_names) : Likewise.
      	  (rs6000_dwarf_register_span) : For SPE high registers, replace
      	  dwarf register numbers with GCC hard register numbers.
      	  (rs6000_init_dwarf_reg_sizes_extra) : Likewise.
      	  (rs6000_dbx_register_number): For SPE high registers, return dwarf
      	  register number for the corresponding GCC hard register number.
      
      	* config/rs6000/rs6000.h
      	  (FIRST_PSEUDO_REGISTER) : Update based on 32 newly added GCC hard
      	  register numbers for SPE high registers.
      	  (DWARF_FRAME_REGISTERS) :  Likewise.
      	  (DWARF_REG_TO_UNWIND_COLUMN) : Likewise.
      	  (DWARF_FRAME_REGNUM) : Likewise.
      	  (FIXED_REGISTERS) : Likewise.
      	  (CALL_USED_REGISTERS) : Likewise.
      	  (CALL_REALLY_USED_REGISTERS) : Likewise.
      	  (REG_ALLOC_ORDER) : Likewise.
      	  (enum reg_class) : Likewise.
      	  (REG_CLASS_NAMES) : Likewise.
      	  (REG_CLASS_CONTENTS) : Likewise.
      	  (SPE_HIGH_REGNO_P) : New macro to identify SPE high registers.	
      
      	* gcc.target/powerpc/pr60102.c: New testcase.
      
      From-SVN: r213596
      Rohit Arul Raj committed
  17. 01 Aug, 2014 1 commit
  18. 31 Jul, 2014 1 commit
    • ibm-ldouble.c (typedef union longDblUnion): Delete. · 6adaaa1d
      	* config/rs6000/ibm-ldouble.c (typedef union longDblUnion): Delete.
      	(pack_ldouble): New function.
      	(__gcc_qadd): Use it.
      	(__gcc_qmul): Likewise.
      	(__gcc_qdiv): Likewise.
      	(__gcc_qneg): Likewise.
      	(__gcc_stoq): Likewise.
      	(__gcc_dtoq): Likewise.
      
      Co-Authored-By: Peter Bergner <bergner@vnet.ibm.com>
      
      From-SVN: r213380
      Alan Modra committed
  19. 30 Jul, 2014 1 commit
    • s390.c (s390_emit_tpf_eh_return): Pass original return address as second… · 87cb0c0c
      s390.c (s390_emit_tpf_eh_return): Pass original return address as second parameter to __tpf_eh_return routine.
      
      gcc/
      
      2014-07-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
      
      	* config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
      	address as second parameter to __tpf_eh_return routine.
      
      libgcc/
      
      2014-07-30  J. D. Johnston  <jjohnst@us.ibm.com>
      
      	* config/s390/tpf-unwind.h: Include <stdbool.h>.
      	(__tpf_eh_return): Add original return address as second parameter.
      	Handle cases where unwinder routines were called directly, instead
      	of from within the C++ library.
      
      From-SVN: r213305
      Ulrich Weigand committed
  20. 29 Jul, 2014 1 commit
    • libgcov.h: Move renaming of entry points to lib gcov specific portion. · 19926161
      	libgcc/
      	* libgcov.h: Move renaming of entry points to lib gcov specific
      	portion.
      	(gcov_do_dump): New rename.
      	(gcov_rewrite): Remove inline, make HIDDEN.
      	* libgcov-driver.c (gcov_clear, gcov_exit): Remove declarations.
      	(gcov_exit_compute_summary): Rename to ...
      	(compute_summary): ... here.  Add LIST argument.
      	(gcov_exit_merge_gcda): Rename to ...
      	(merge_one_data): ... here.
      	(gcov_exit_write_gcda): Rename to ...
      	(write_one_data): ... here.
      	(gcov_exit_merge_summary): Rename to ...
      	(merge_summary): Add RUN_COUNTED argument.
      	(gcov_exit_dump_gcov): Rename to ...
      	(dump_one_gcov): Add RUN_COUNTED argument.
      	(gcov_do_dump): New function, broken out of ...
      	(gcov_exit): ... here.  Call it.
      
      	gcc/
      	* gcov-io.c (gcov_var): Make hidden.
      	* gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
      	(gcov_do_dump): Declare.
      	(gcov_output_files): Call gcov_do_dump, not gcov_exit).
      
      From-SVN: r213188
      Nathan Sidwell committed
  21. 28 Jul, 2014 1 commit
  22. 27 Jul, 2014 2 commits
    • Add moxiebox target. · 17522262
      From-SVN: r213098
      Anthony Green committed
    • libgcov-driver.c (struct gcov_filename_aux): Rename ... · 6dc33097
      	* libgcov-driver.c (struct gcov_filename_aux): Rename ...
      	(struct gcov_filename): ... here.  Include buffer and max length
      	fields.
      	(gcov_max_filename): Remove.
      	(gi_filename): Remove.
      	(gcov_exit_compute_summary): Compute max filename here.
      	(gcov_exit_merge_gcda): Add filename parm, adjust.
      	(gcov_exit_merge_summary): Likewise.
      	(gcov_exit_dump_gcov): Adjust for struct gcov_filename changes.
      	(gcov_exit): Likewise.
      	(__gcov_init): Don't calculate max length here.
      	* libgcov_util.c (max_filename_len): Remove.
      	(read_gcda_file): Don't calculate max length here.
      	(gcov_read_profile_dir): Don't propagate here.
      	* libgcov-driver-system.c (alloc_filename_struct): Adjust for
      	struct gcov_filename changes.
      	(gcov_exit_open_gcda_file): Likewise.
      
      From-SVN: r213092
      Nathan Sidwell committed
  23. 25 Jul, 2014 1 commit
    • libgcov-driver.c (set_gcov_dump_complete, [...]): Remove global functions… · 770f687d
      libgcov-driver.c (set_gcov_dump_complete, [...]): Remove global functions polluting user's namespace.
      
      	* libgcov-driver.c (set_gcov_dump_complete,
      	reset_gcov_dump_complete, get_gcov_dump_complete): Remove global
      	functions polluting user's namespace.
      	(gcov_exit): Set variable directly.
      	(gcov_clear): Reset variable directly.
      	* libgcov-interface.c (get_gcov_dymp_complete,
      	reset_gov_dump_complete): Remove declarations.
      	(__gcov_reset, __gcov_dump): Don't call them.
      
      From-SVN: r213058
      Nathan Sidwell committed
  24. 24 Jul, 2014 1 commit
  25. 23 Jul, 2014 2 commits
  26. 17 Jul, 2014 1 commit
  27. 14 Jul, 2014 1 commit
  28. 11 Jul, 2014 2 commits
    • libgcov-util.c (gcov_max_filename): Fix declartion. · d5313205
      2014-07-11  Rong Xu  <xur@google.com>
      
      	* libgcov-util.c (gcov_max_filename): Fix declartion.
      
      From-SVN: r212463
      Rong Xu committed
    • Add gcov-tool: an offline gcda profile processing tool Support. · c77556a5
      2014-07-10  Rong Xu  <xur@google.com>
      
      	Add gcov-tool: an offline gcda profile processing tool
      	Support.
      	* gcc/gcov-io.c (gcov_position): Make avaialble to gcov-tool.
      	(gcov_is_error): Ditto.
      	(gcov_read_string): Ditto.
      	(gcov_read_sync): Ditto.
      	* gcc/gcov-io.h: Move counter defines to gcov-counter.def.
      	* gcc/gcov-dump.c (tag_counters): Use gcov-counter.def.
      	* gcc/coverage.c: Ditto.
      	* gcc/gcov-tool.c: Offline gcda profile processing tool.
              (unlink_gcda_file): Remove one gcda file.
      	(unlink_profile_dir): Remove gcda files from the profile path.
      	(gcov_output_files): Output gcda files to an output dir.
      	(profile_merge): Merge two profiles in directory.
      	(print_merge_usage_message): Print merge usage.
      	(merge_usage): Print merge usage and exit.
      	(do_merge): Driver for profile merge sub-command.
      	(profile_rewrite): Rewrite profile.
      	(print_rewrite_usage_message): Print rewrite usage.
      	(rewrite_usage): Print rewrite usage and exit.
      	(do_rewrite): Driver for profile rewrite sub-command.
      	(print_usage): Print gcov-info usage and exit.
      	(print_version): Print gcov-info version.
      	(process_args): Process arguments.
      	(main): Main routine for gcov-tool.
      	* gcc/Makefile.in: Build and install gcov-tool.
      	* gcc/gcov-counter.def: New file split from gcov-io.h.
      	* libgcc/libgcov-driver.c (gcov_max_filename): Make available
              to gcov-tool.
      	* libgcc/libgcov-merge.c (__gcov_merge_add): Replace
              gcov_read_counter() with a Macro.
      	(__gcov_merge_ior): Ditto.
      	(__gcov_merge_time_profile): Ditto.
      	(__gcov_merge_single): Ditto.
      	(__gcov_merge_delta): Ditto.
      	* libgcc/libgcov-util.c (void gcov_set_verbose): Set the verbose flag
              in the utility functions.
      	(set_fn_ctrs): Utility function for reading gcda files to in-memory
              gcov_list object link lists.
      	(tag_function): Ditto.
      	(tag_blocks): Ditto.
      	(tag_arcs): Ditto.
      	(tag_lines): Ditto.
      	(tag_counters): Ditto.
      	(tag_summary): Ditto.
      	(read_gcda_finalize): Ditto.
      	(read_gcda_file): Ditto.
      	(ftw_read_file): Ditto.
      	(read_profile_dir_init): Ditto.
      	(gcov_read_profile_dir): Ditto.
      	(gcov_read_counter_mem): Ditto.
      	(gcov_get_merge_weight): Ditto.
      	(merge_wrapper): A wrapper function that calls merging handler.
      	(gcov_merge): Merge two gcov_info objects with weights.
      	(find_match_gcov_info): Find the matched gcov_info in the list.
      	(gcov_profile_merge): Merge two gcov_info object lists.
      	(__gcov_add_counter_op): Process edge profile counter values.
      	(__gcov_ior_counter_op): Process IOR profile counter values.
      	(__gcov_delta_counter_op): Process delta profile counter values.
      	(__gcov_single_counter_op): Process single  profile counter values.
      	(fp_scale): Callback function for float-point scaling.
      	(int_scale): Callback function for integer fraction scaling. 
      	(gcov_profile_scale): Scaling profile counters.
      	(gcov_profile_normalize): Normalize profile counters.
      	* libgcc/libgcov.h: Add headers and functions for gcov-tool use.
              (gcov_get_counter): New.
              (gcov_get_counter_target): Ditto.
              (struct gcov_info): Make the functions field mutable in gcov-tool
              compilation.
      	* gcc/doc/gcc.texi: Include gcov-tool.texi.
      	* gcc/doc/gcov-tool.texi: Document for gcov-tool.
      
      From-SVN: r212448
      Rong Xu committed
  29. 23 Jun, 2014 1 commit
  30. 18 Jun, 2014 3 commits