aboutsummaryrefslogtreecommitdiff
path: root/libgcc
AgeCommit message (Collapse)AuthorFilesLines
2013-11-11Time profiler introduced.Martin Liska2-1/+39
Co-Authored-By: Jan Hubicka <jh@suse.cz> From-SVN: r204690
2013-11-11config.host (arm-wrs-vxworks): Replace arm/t-vxworks with arm/t-elf in ↵Eric Botcazou3-2/+7
tmake_file. * config.host (arm-wrs-vxworks): Replace arm/t-vxworks with arm/t-elf in tmake_file. * config/arm/t-vxworks: Delete. From-SVN: r204669
2013-11-10cygming-crtbegin.c (__gcc_register_frame): Increment load-count on use of ↵Kai Tietz2-2/+21
LIBGCC_SONAME DLL. 2013-11-10 Kai Tietz <ktietz@redhat.com> * config/i386/cygming-crtbegin.c (__gcc_register_frame): Increment load-count on use of LIBGCC_SONAME DLL. (hmod_libgcc): New static variable to hold handle of LIBGCC_SONAME DLL. (__gcc_deregister_frame): Decrement load-count of LIBGCC_SONAME DLL. From-SVN: r204635
2013-11-08libgcc: check for fenv.h in dfp configure checkBernhard Reutner-Fischer3-1/+27
uClibc can be built without fenv support, extend the configure check for decimal floating point to probe the existance of fenv.h, too. libgcc/ChangeLog: 2013-03-24 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> * configure.ac (libgcc_cv_dfp): Extend check to probe fenv.h availability. * configure: Regenerate From-SVN: r204562
2013-11-07sfp-exceptions.c (__sfp_handle_exceptions): Rewrite FP_EX_INEXACT handling.Uros Bizjak2-7/+12
* config/i386/sfp-exceptions.c (__sfp_handle_exceptions): Rewrite FP_EX_INEXACT handling. From-SVN: r204546
2013-11-07sfp-exceptions.c (__sfp_handle_exceptions): Handle FP_EX_DENORM.Uros Bizjak2-2/+21
* config/i386/sfp-exceptions.c (__sfp_handle_exceptions): Handle FP_EX_DENORM. Store result to volatile location after SSE division to close interrupt window. Remove unneeded fwait after x87 division since interrupt window will be closed by emitted fstp. From-SVN: r204540
2013-11-06float128-cmp-invalid.c, [...]: New tests.Joseph Myers83-3802/+4715
gcc/testsuite: * gcc.dg/torture/float128-cmp-invalid.c, gcc.dg/torture/float128-div-underflow.c, gcc.dg/torture/float128-extend-nan.c, gcc.dg/torture/fp-int-convert-float128-timode-3.c: New tests. libgcc: * soft-fp/README: Update. * soft-fp/adddf3.c: Update from glibc. * soft-fp/addsf3.c: Likewise. * soft-fp/addtf3.c: Likewise. * soft-fp/divdf3.c: Likewise. * soft-fp/divsf3.c: Likewise. * soft-fp/divtf3.c: Likewise. * soft-fp/double.h: Likewise. * soft-fp/eqdf2.c: Likewise. * soft-fp/eqsf2.c: Likewise. * soft-fp/eqtf2.c: Likewise. * soft-fp/extenddftf2.c: Likewise. * soft-fp/extended.h: Likewise. * soft-fp/extendsfdf2.c: Likewise. * soft-fp/extendsftf2.c: Likewise. * soft-fp/extendxftf2.c: Likewise. * soft-fp/fixdfdi.c: Likewise. * soft-fp/fixdfsi.c: Likewise. * soft-fp/fixdfti.c: Likewise. * soft-fp/fixsfdi.c: Likewise. * soft-fp/fixsfsi.c: Likewise. * soft-fp/fixsfti.c: Likewise. * soft-fp/fixtfdi.c: Likewise. * soft-fp/fixtfsi.c: Likewise. * soft-fp/fixtfti.c: Likewise. * soft-fp/fixunsdfdi.c: Likewise. * soft-fp/fixunsdfsi.c: Likewise. * soft-fp/fixunsdfti.c: Likewise. * soft-fp/fixunssfdi.c: Likewise. * soft-fp/fixunssfsi.c: Likewise. * soft-fp/fixunssfti.c: Likewise. * soft-fp/fixunstfdi.c: Likewise. * soft-fp/fixunstfsi.c: Likewise. * soft-fp/fixunstfti.c: Likewise. * soft-fp/floatdidf.c: Likewise. * soft-fp/floatdisf.c: Likewise. * soft-fp/floatditf.c: Likewise. * soft-fp/floatsidf.c: Likewise. * soft-fp/floatsisf.c: Likewise. * soft-fp/floatsitf.c: Likewise. * soft-fp/floattidf.c: Likewise. * soft-fp/floattisf.c: Likewise. * soft-fp/floattitf.c: Likewise. * soft-fp/floatundidf.c: Likewise. * soft-fp/floatundisf.c: Likewise. * soft-fp/floatunditf.c: Likewise. * soft-fp/floatunsidf.c: Likewise. * soft-fp/floatunsisf.c: Likewise. * soft-fp/floatunsitf.c: Likewise. * soft-fp/floatuntidf.c: Likewise. * soft-fp/floatuntisf.c: Likewise. * soft-fp/floatuntitf.c: Likewise. * soft-fp/gedf2.c: Likewise. * soft-fp/gesf2.c: Likewise. * soft-fp/getf2.c: Likewise. * soft-fp/ledf2.c: Likewise. * soft-fp/lesf2.c: Likewise. * soft-fp/letf2.c: Likewise. * soft-fp/muldf3.c: Likewise. * soft-fp/mulsf3.c: Likewise. * soft-fp/multf3.c: Likewise. * soft-fp/negdf2.c: Likewise. * soft-fp/negsf2.c: Likewise. * soft-fp/negtf2.c: Likewise. * soft-fp/op-1.h: Likewise. * soft-fp/op-2.h: Likewise. * soft-fp/op-4.h: Likewise. * soft-fp/op-8.h: Likewise. * soft-fp/op-common.h: Likewise. * soft-fp/quad.h: Likewise. * soft-fp/single.h: Likewise. * soft-fp/soft-fp.h: Likewise. * soft-fp/subdf3.c: Likewise. * soft-fp/subsf3.c: Likewise. * soft-fp/subtf3.c: Likewise. * soft-fp/truncdfsf2.c: Likewise. * soft-fp/trunctfdf2.c: Likewise. * soft-fp/trunctfsf2.c: Likewise. * soft-fp/trunctfxf2.c: Likewise. * soft-fp/unorddf2.c: Likewise. * soft-fp/unordsf2.c: Likewise. * soft-fp/unordtf2.c: Likewise. From-SVN: r204489
2013-11-05i386-c.c (ix86_target_macros): Define _SOFT_FLOAT for !TARGET_80387.Uros Bizjak3-1/+16
gcc/ * config/i386/i386-c.c (ix86_target_macros): Define _SOFT_FLOAT for !TARGET_80387. * config/i386/rtemself.h (TARGET_OS_CPP_BUILTINS): Do not define _SOFT_FLOAT here. (LONG_DOUBLE_TYPE_SIZE): New define. (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Ditto. libgcc/ * config/i386/32/sfp-machine.h (_FP_MUL_MEAT_S): Define. (_FP_MUL_MEAT_D): Ditto. (_FP_DIV_MEAT_S): Ditto. (_FP_DIV_MEAT_D): Ditto. * config.host (i[34567]86-*-rtems*): Remove i386/t-softfp, add t-softfp-sfdf and t-softfp to tmake_file. M gcc/config/i386/i386-c.c M gcc/config/i386/rtemself.h M gcc/ChangeLog M libgcc/ChangeLog M libgcc/config.host M libgcc/config/i386/32/sfp-machine.h From-SVN: r204404
2013-11-03crtfastmath.c: Compile only for !_SOFT_FLOAT.Uros Bizjak3-2/+11
* config/i386/crtfastmath.c: Compile only for !_SOFT_FLOAT. * config/i386/crtprec.c: Ditto. From-SVN: r204327
2013-10-31Add new nds32 port, including machine description, libgcc, and documentation.Chung-Ju Wu257-0/+15176
[gcc/ChangeLog] * config.gcc (nds32*-*-*): Add nds32 target. * config/nds32/nds32.c: New file. * config/nds32/nds32.h: New file. * config/nds32/nds32.md: New file. * config/nds32/constants.md: New file. * config/nds32/constraints.md: New file. * config/nds32/iterators.md: New file. * config/nds32/nds32-doubleword.md: New file. * config/nds32/nds32-intrinsic.md: New file. * config/nds32/nds32_intrinsic.h: New file. * config/nds32/nds32-modes.def: New file. * config/nds32/nds32-multiple.md: New file. * config/nds32/nds32.opt: New file. * config/nds32/nds32-opts.h: New file. * config/nds32/nds32-protos.h: New file. * config/nds32/nds32-peephole2.md: New file. * config/nds32/pipelines.md: New file. * config/nds32/predicates.md: New file. * config/nds32/t-mlibs: New file. * common/config/nds32: New directory and files. * doc/invoke.texi (NDS32 options): Document nds32 specific options. * doc/md.texi (NDS32 family): Document nds32 specific constraints. * doc/install.texi (Cross-Compiler-Specific Options): Document --with-nds32-lib for nds32 target. * doc/extend.texi (Function Attributes, Target Builtins): Document nds32 specific attributes. [libgcc/ChangeLog] * config.host (nds32*-elf*): Add nds32 target. * config/nds32 : New directory and files. [contrib/ChangeLog] * config-list.mk (nds32le-elf, nds32be-elf): Add nds32 target. Co-Authored-By: Shiva Chen <shiva0217@gmail.com> From-SVN: r204269
2013-10-23Fix up ChangeLog entries (name, e-mail, formatting, otherwise).Gerald Pfeifer1-3/+3
From-SVN: r203992
2013-10-16For CRIS ports, switch to soft-fp. Improve arit.c and longlong.h.Hans-Peter Nilsson8-44/+489
* config.host (cpu_type) <Setting default>: Add entry for crisv32-*-*. (tmake_file) <crisv32-*-elf, cris-*-elf, cris-*-linux*> <crisv32-*-linux*>: Adjust. * longlong.h: Wrap the whole CRIS section in a single defined(__CRIS__) conditional. Add comment about add_ssaaaa and sub_ddmmss. (COUNT_LEADING_ZEROS_0): Define when count_leading_zeros is defined. [__CRIS__] (__umulsidi3): Define. [__CRIS__] (umul_ppmm): Define in terms of __umulsidi3. * config/cris/sfp-machine.h: New file. * config/cris/umulsidi3.S: New file. * config/cris/t-elfmulti (LIB2ADD_ST): Add umulsidi3.S. * config/cris/arit.c (SIGNMULT): New macro. (__Div, __Mod): Use SIGNMULT instead of naked multiplication. * config/cris/mulsi3.S: Tweak to avoid redundant register-copying; saving 3 out of originally 33 cycles from the fastest path, 3 out of 54 from the medium path and one from the longest path. Improve comments. From-SVN: r203640
2013-10-15tree-tailcall.c (find_tail_calls): Don't use tail-call recursion for ↵Richard Sandiford2-17/+17
built-in functions. gcc/ 2013-10-15 Richard Biener <rguenther@suse.de> * tree-tailcall.c (find_tail_calls): Don't use tail-call recursion for built-in functions. gcc/testsuite/ * gcc.dg/torture/builtin-self.c: New file. libgcc/ * sync.c: Remove static aliases and define each function directly under its real name. From-SVN: r203628
2013-10-03config.host (hppa*64*-*-linux*): Define extra_parts.John David Anglin2-0/+7
* config.host (hppa*64*-*-linux*): Define extra_parts. (hppa*-*-linux*): Likewise. From-SVN: r203151
2013-10-02In accordance with http://gcc.gnu.org/ml/gcc-patches/2013-10/msg00131.html :Joern Rennecke54-53/+109
gcc: * config/arc/arc-opts.h: Add 2013 to Copyright years. * config/arc/arc700.md: Likewise. * config/arc/arc-modes.def: Likewise. * config/arc/arc-simd.h: Likewise. * config/arc/t-arc-uClibc: Likewise. * config/arc/t-arc-newlib: Likewise. libgcc: * config/arc/crtgend.S: Add 2013 to Copyright years. * config/arc/gmon/atomic.h: Likewise. * config/arc/gmon/auxreg.h: Likewise. * config/arc/gmon/sys/gmon_out.h: Likewise. * config/arc/gmon/sys/gmon.h: Likewise. * config/arc/gmon/prof-freq.c: Likewise. * config/arc/gmon/mcount.c: Likewise. * config/arc/gmon/prof-freq-stub.S: Likewise. * config/arc/gmon/gmon.c: Likewise. * config/arc/gmon/machine-gmon.h: Likewise. * config/arc/gmon/profil.S: Likewise. * config/arc/gmon/dcache_linesz.S: Likewise. * config/arc/crtg.S: Likewise. * config/arc/ieee-754/arc600-mul64/divsf3.S: Likewise. * config/arc/ieee-754/arc600-mul64/divdf3.S: Likewise. * config/arc/ieee-754/adddf3.S: Likewise. * config/arc/ieee-754/truncdfsf2.S: Likewise. * config/arc/ieee-754/fixsfsi.S: Likewise. * config/arc/ieee-754/gtsf2.S: Likewise. * config/arc/ieee-754/floatsisf.S: Likewise. * config/arc/ieee-754/arc600-dsp/divsf3.S: Likewise. * config/arc/ieee-754/arc600-dsp/divdf3.S: Likewise. * config/arc/ieee-754/arc600-dsp/mulsf3.S: Likewise. * config/arc/ieee-754/fixdfsi.S: Likewise. * config/arc/ieee-754/addsf3.S: Likewise. * config/arc/ieee-754/gesf2.S: Likewise. * config/arc/ieee-754/floatsidf.S: Likewise. * config/arc/ieee-754/extendsfdf2.S: Likewise. * config/arc/ieee-754/divtab-arc-df.c: Likewise. * config/arc/ieee-754/gtdf2.S: Likewise. * config/arc/ieee-754/fixunsdfsi.S: Likewise. * config/arc/ieee-754/uneqdf2.S: Likewise. * config/arc/ieee-754/divsf3-stdmul.S: Likewise. * config/arc/ieee-754/uneqsf2.S: Likewise. * config/arc/ieee-754/arc-ieee-754.h: Likewise. * config/arc/ieee-754/divtab-arc-sf.c: Likewise. * config/arc/ieee-754/eqdf2.S: Likewise. * config/arc/ieee-754/ordsf2.S: Likewise. * config/arc/ieee-754/divsf3.S: Likewise. * config/arc/ieee-754/divdf3.S: Likewise. * config/arc/ieee-754/floatunsidf.S: Likewise. * config/arc/ieee-754/orddf2.S: Likewise. * config/arc/ieee-754/eqsf2.S: Likewise. * config/arc/ieee-754/gedf2.S: Likewise. * config/arc/crtn.S: Likewise. * config/arc/crti.S: Likewise. * config/arc/t-arc700-uClibc: Likewise. * config/arc/asm.h: Likewise. * config/arc/libgcc-excl.ver: Likewise. * config/arc/t-arc-newlib: Likewise. * config/arc/divtab-arc700.c: Likewise. * config/arc/initfini.c: Likewise. * config/arc/fp-hack.h: Likewise. From-SVN: r203110
2013-10-01simdext.md: Update copyright years.Joern Rennecke3-3/+3
gcc: * config/arc/simdext.md: Update copyright years. libgcc: * config/arc/ieee-754/arc600-dsp/muldf3.S: Update copyright years * config/arc/ieee-754/arc600-mul64/muldf3.S: Likewise. * config/arc/ieee-754/muldf3.S: Likewise. From-SVN: r203094
2013-10-01muldf3.S (.Linf_denorm): Likewise.Joern Rennecke4-3/+6
* config/arc/ieee-754/arc600-dsp/muldf3.S (.Linf_denorm): Likewise. * config/arc/ieee-754/arc600-mul64/muldf3.S (.Linf_denorm): Likewise. * config/arc/ieee-754/muldf3.S (.Linf_denorm): Likewise. Co-Authored-By: Diego Novillo <dnovillo@google.com> From-SVN: r203083
2013-10-01mcount.c (_MCOUNT_DECL): Comment typo fix.Joern Rennecke2-1/+6
2013-10-01 Joern Rennecke <joern.rennecke@embecosm.com> Diego Novillo <dnovillo@google.com> * config/arc/gmon/mcount.c (_MCOUNT_DECL): Comment typo fix. Co-Authored-By: Diego Novillo <dnovillo@google.com> From-SVN: r203081
2013-10-01config.host (arc*-*-elf*, [...]): New configurations.Joern Rennecke66-10/+10260
2013-10-01 Joern Rennecke <joern.rennecke@embecosm.com> Brendan Kehoe <brendan@zen.org> Simon Cook <simon.cook@embecosm.com> * config.host (arc*-*-elf*, arc*-*-linux-uclibc*): New configurations. * config/arc: New directory. * longlong.h [__arc__] (umul_ppmm): Remove. [__arc__] (__umulsidi3): Define. [__arc__ && __ARC_NORM__] (count_leading_zeroes): Define. [__arc__ && __ARC_NORM__] (COUNT_LEADING_ZEROS_0): Likewise. Co-Authored-By: Brendan Kehoe <brendan@zen.org> Co-Authored-By: Simon Cook <simon.cook@embecosm.com> From-SVN: r203073
2013-09-17gthr-win32.c: CreateSemaphoreW instead of CreateSemaphoreA.Jacek Caban3-4/+10
2013-09-17 Jacek Caban <jacek@codeweavers.com> * config/i386/gthr-win32.c: CreateSemaphoreW instead of CreateSemaphoreA. * config/i386/gthr-win32.h: Likewise. From-SVN: r202648
2013-09-16* config/rl78/vregs.h: Add G10 register definitions.DJ Delorie2-0/+25
From-SVN: r202638
2013-09-16rl78.c (rl78_asm_file_start): Specify alternate vregs location for RL78/G10.DJ Delorie7-52/+35
* config/rl78/rl78.c (rl78_asm_file_start): Specify alternate vregs location for RL78/G10. (rl78_expand_prologue): Avoid SEL on G10. (rl78_expand_epilogue): Likewise. (rl78_peep_movhi_p): Can't move a constant to memory in HImode. * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define __RL78_G10__ when appropriate. (ASM_SPEC): Pass -mg10 along to the assembler. * config/rl78/rl78.md (sel_rb): Disable for G10. * config/rl78/rl78.opt: Add -mg10 option. * config/rl78/t-rl78: Add -mg10 multilib. * config/rl78/lib2mul.c: Enable for RL78/G10. * config/rl78/lib2div.c: Likewise. * config/rl78/lshrsi3.S: Use vregs.h. * config/rl78/cmpsi2.S: Likewise. * config/rl78/trampoline.S: Likewise. * config/rl78/mulsi2.S: Likewise. Disable for RL78/G10. From-SVN: r202637
2013-09-14mulsi3.S: Remove a few unneeded moves and branches.DJ Delorie9-27/+1302
* config/rl78/mulsi3.S: Remove a few unneeded moves and branches. * config/rl78/vregs.h: New. * config/rl78/signbit.S: New file. Implements signbit function. * config/rl78/divmodsi.S: New. * config/rl78/divmodhi.S: New. * config/rl78/divmodqi.S: New. * config/rl78/t-rl78: Build them here... * config/rl78/lib2div.c: ...but not here. Co-Authored-By: Nick Clifton <nickc@redhat.com> From-SVN: r202588
2013-09-12MAINTAINERS: Add Nick Clifton and DJ Delorie as msp430 maintainers.DJ Delorie22-0/+1119
* MAINTAINERS: Add Nick Clifton and DJ Delorie as msp430 maintainers. [gcc] * config/msp430/: New port. * config.gcc (msp430): Added. * doc/invoke.texi: Document MSP430 options. * doc/install.texi: Document msp430-elf * doc/md.texi: Document msp430-elf * doc/contrib.texi: Document msp430-elf [libgcc] * config.host (msp*-*-elf): New. * config/msp430/: New port. [contrib] * config-list.mk: Add msp430-elf. From-SVN: r202535
2013-08-18re PR gcov-profile/58127 (37 failures in gcc.dg/tree-prof/ for ↵Iain Sandoe2-2/+9
x86_64-apple-darwin10) libgcc: PR gcov-profile/58127 * libgcov.c (__gcov_indirect_call_callee): Don't make this a __thread var for emulated TLS. (__gcov_indirect_call_counters): Likewise. From-SVN: r201829
2013-08-16mips16.S (CE_STARTFN, CE_ENDFN): New macros.Maciej W. Rozycki4-51/+48
* config/mips/mips16.S (CE_STARTFN, CE_ENDFN): New macros. (RET_FUNCTION): Use them in place of STARTFN and ENDFN. (CALL_STUB_NO_RET): Likewise. (CALL_STUB_RET): Likewise. * config/mips/libgcc-mips16.ver: Remove __mips16_call_stub and __mips16_ret call/return stub symbols. * config.host <mips*-*-linux>: For non-R5900 add t-slibgcc-libgcc to tmake_file. Co-Authored-By: Catherine Moore <clm@codesourcery.com> Co-Authored-By: Richard Sandiford <rdsandiford@googlemail.com> From-SVN: r201805
2013-08-13* config.host <mips*-*-linux*>: Remove a stray comment.Maciej W. Rozycki2-1/+4
From-SVN: r201689
2013-08-10Workaround binutils PR14342Jan Hubicka3-3/+44
Workaround binutils PR14342 * tree-profile.c (init_ic_make_global_vars): Add LTO path. (gimple_init_edge_profiler): Likewise. (gimple_gen_ic_func_profiler): Likewise. * Makefile.in: Add _gcov_indirect_call_profiler_v2 symbol. * libgcov.c (L_gcov_indirect_call_profiler): Restore original API. (L_gcov_indirect_call_profiler_v2): New. From-SVN: r201648
2013-08-09cgraph.h (cgraph_node): Add profile_id.Jan Hubicka2-6/+27
* cgraph.h (cgraph_node): Add profile_id. * value-prof.c (cgraph_node_map): Turn into pointer_map. (init_node_map): Rewrite to handle hashes increas of incremental IDs. (del_node_map): Update. (find_func_by_funcdef_no): Replace by ... (find_func_by_profile_id): ... this one. (gimple_ic_transform): Do not remove useful histograms when speculation is not done; dump info when indirect call removal can happen at LTO. * value-prof.h (find_func_by_profile_id, gimple_ic): Declare. * gcov-io.h (__gcov_indirect_call_profiler): Replace by ... (__gcov_indirect_call_profiler_v2): .. this one. * profile.h (init_node_map): Update. * coverage.c (coverage_compute_profile_id): New function. * coverage.h (coverage_compute_profile_id): Declare. * tree-profile.c (init_ic_make_global_vars): Make __gcov_indirect_call_callee and __gcov_indirect_call_counters global. (gimple_init_edge_profiler): Update prototype of __gcov_indirect_call_profiler. (gimple_gen_ic_func_profiler): Simplify. (tree_profiling): Use init_node_map From-SVN: r201634
2013-08-08Fix ChangeLog formatting errors.Caroline Tice1-8/+8
From-SVN: r201606
2013-08-06Commit the vtable verification feature.Caroline Tice9-1/+332
Commit the vtable verification feature. This feature is designed to detect, at run time, if/when the vtable pointer in a C++ object has been corrupted, before allowing virtual calls through that pointer. If pointer corruption is detected, execution of the program is halted. libstdc++-v3 ChangeLog: 2013-08-06 Caroline Tice <cmtice@google.com> * fragment.am: Add XTEMPLATE_FLAGS. * configure.ac: Add definitions for --enable-vtable-verify. * acinclude.m4: Add --enable-vtable-verify and --disable-vtable-verify; define --enable-vtable-verify; define VTV_CXXFLAGS, VTV_PCH_CXXFLAGS and VTV_CXXLINKFLAGS. * config/abi/pre/gnu.ver: Export symbols for vtable verification. * libsupc++/Makefile.am: Define vtv_sources and add it to libsupc___la_SOURCES and libsupc__convenience_la_SOURCES. * libsupc++/vtv_stubs.cc: New file. * include/Makefile.am: Add VTV_PCH_CXXFLAGS to PCHFLAGS. * src/Makefile.am: Add VTV_CXXFLAGS to AM_CXXFLAGS; add VTV_CXXLINKFLAGS to CXXLINK. * src/c++98/Makefile.am: Comment out XTEMPLATE_FLAGS; add VTV_CXXFLAGS to AM_CXXFLAGS; add VTV_CXXXLINKFLAGS to CXXLINK. * src/C++11/Makefile.am: Ditto. * doc/xml/manual/configure.xml: Add entry for --enable-vtable-verify. * scripts/testsuite_flags.in: Add cxxvtvflags to Usage; cause cxxvtvflags to use VTV_CXXFLAGS and VTV_CXXLINKFLAGS. * testsuite/lib/libstdc++.exp: Add cxxvtvflags; add code to locate libvtv if --enable-vtable-verify was used; set cxxvtvflags; add cxxvtvflags to cxx_final. * testsuite/18_support/bad_exception/23591_thread-1.c: Add -fvtable-verify=none to compiler flags. * testsuite/17_intro/freestanding.cc: Add -fvtable-verify=none to compiler flags. * configure: Regenerated. * Makefile.in: Regenerated. * python/Makefile.in: Regenerated. * include/Makefile.in: Regenerated. * libsupc++/Makefile.in: Regenerated. * config.h.in: Regenerated. * po/Makefile.in: Regenerated. * src/Makefile.in: Regenerated. * src/c++98/Makefile.in: Regenerated. * src/c++11/Makefile.in: Regenerated. * doc/Makefile.in: Regenerated. * testsuite/Makefile.in: Regenerated. top level ChangeLog: 2013-08-06 Caroline Tice <cmtice@google.com> * configure.ac: Add target-libvtv to target_libraries; disable libvtv on non-linux systems; add target-libvtv to noconfigdirs; add libsupc++/.libs to C++ library search paths. * configure: Regenerated. * Makefile.def: Add libvtv to target_modules; make libvtv depend on libstdc++ and libgcc. * Makefile.in: Regenerated. include/ChangeLog: 2013-08-06 Caroline Tice <cmtice@google.com> * vtv-change-permission.h: New file. contrib/ChangeLog: 2013-08-06 Caroline Tice4 <cmtice@google.com> * gcc_update: Add libvtv files. libgcc/ChangeLog: 2013-08-06 Caroline Tice <cmtice@google.com> config.host (extra_parts): Add vtv_start.o, vtv_end.o vtv_start_preinit.o and vtv_end_preinit.o. configure.ac: Add code to check/set enable_vtable_verify. Makefile.in: Add rules to build vtv_*.o, if enable_vtable_verify is true. vtv_start_preinit.c: New file. vtv_end_preinit.c: New file. vtv_start.c: New file. vtv_end.c: New file. configure: Regenerated. gcc/ChangeLog: 2013-08-06 Caroline Tice <cmtice@google.com> * gcc.c (VTABLE_VERIFICATION_SPEC): New definition. (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC. * tree-pass.h: Add pass_vtable_verify. * varasm.c (assemble_variable): Add code to properly set the comdat section and name for the .vtable_map_vars section. (assemble_vtyv_preinit_initializer): New function. (default_sectin_type_flags): Make sure .vtable_map_vars section has LINK_ONCE flag. * output.h: Add function decl for assemble_vtv_preinit_initializer. * vtable-verify.c: New file. * vtable-verify.h: New file. * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify initialiation levels. * timevar.def (TV_VTABLE_VERIFICATION): New definition. * passes.def: Insert pass_vtable_verify. * aclocal.m4: Reorder includes. * doc/invoke.texi: Add documentation for the flags -fvtable-verify=, -fvtv-debug and -fvtv-counts. * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o, as appropriate, if -fvtable-verify=... is used. (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if -fvtable-verify=... is used. * Makefile.in (OBJS): Add vtable-verify.o to list. (vtable-verify.o): Add new build rule. (GTFILES): Add vtable-verify.c to list. * common.opt (fvtable-verify=): New flag. (vtv_priority): Values for fvtable-verify= flag. (fvtv-counts): New flag. (fvtv-debug): New flag. * tree.h (save_vtable_map_decl): New extern function decl. gcc/cp/ChangeLog: 2013-08-06 Caroline Tice <cmtice@google.com> * Make-lang.in (*CXX_AND_OBJCXX_OBJS): Add vtable-class-hierarchy.o to list. (vtable-class-hierarchy.o): Add build rule. * cp-tree.h (vtv_start_verification_constructor_init_function): New extern function decl. (vtv_finish_verification_constructor_init_function): New extern function decl. (build_vtbl_address): New extern function decl. (get_mangled_vtable_map_var_name): New extern function decl. (vtv_compute_class_hierarchy_transitive_closure): New extern function decl. (vtv_generate_init_routine): New extern function decl. (vtv_save_class_info): New extern function decl. (vtv_recover_class_info): New extern function decl. (vtv_build_vtable_verify_fndecl): New extern function decl. * class.c (finish_struct_1): Add call to vtv_save_class_info if flag_vtable_verify is true. * config-lang.in: Add vtable-class-hierarchy.c to gtfiles list. * vtable-class-hierarchy.c: New file. * mangle.c (get_mangled_vtable_map_var_name): New function. * decl2.c (start_objects): Update function comment. (cp_write_global_declarations): Call vtv_recover_class_info, vtv_compute_class_hierarchy_transitive_closure and vtv_build_vtable_verify_fndecl, before calling finalize_compilation_unit, and call vtv_generate_init_rount after, IFF flag_vtable_verify is true. (vtv_start_verification_constructor_init_function): New function. (vtv_finish_verification_constructor_init_function): New function. * init.c (build_vtbl_address): Remove static qualifier from function. libvtv/ChangeLog: 2013-08-06 Caroline Tice <cmtice@google.com> Initial check-in of new vtable verification feature. * configure.ac : New file. * acinclude.m4 : New file. * Makefile.am : New file. * aclocal.m4 : New file. * configure.tgt : New file. * configure: New file (generated). * Makefile.in: New file (generated). * vtv_set.h : New file. * vtv_utils.cc : New file. * vtv_utils.h : New file. * vtv_malloc.cc : New file. * vtv_rts.cc : New file. * vtv_malloc.h : New file. * vtv_rts.h : New file. * vtv_fail.cc : New file. * vtv_fail.h : New file. * vtv_map.h : New file. * scripts/run-testsuite.sh : New file. * scripts/sum-vtv-counts.c : New file. * testsuite/parts-test-main.h : New file. * testusite/dataentry.cc : New file. * testsuite/temp_deriv.cc : New file. * testsuite/register_pair.cc : New file. * testsuite/virtual_inheritance.cc : New file. * testsuite/field-test.cc : New file. * testsuite/nested_vcall_test.cc : New file. * testsuite/template-list-iostream.cc : New file. * testsuite/register_pair_inserts.cc : New file. * testsuite/register_pair_inserts_mt.cc : New file. * testsuite/event.list : New file. * testsuite/parts-test-extra-parts-views.cc : New file. * testsuite/parts-test-extra-parts-views.h : New file. * testsuite/environment-fail-32.s : New file. * testsuite/parts-test-extra-parts.h : New file. * testsuite/temp_deriv2.cc : New file. * testsuite/dlopen_mt.cc : New file. * testsuite/event.h : New file. * testsuite/template-list.cc : New file. * testsuite/replace-fail.cc : New file. * testsuite/Makefile.am : New file. * testsuite/Makefile.in: New file (generated). * testsuite/mempool_negative.c : New file. * testsuite/parts-test-main.cc : New file. * testsuite/event-private.cc : New file. * testsuite/thunk.cc : New file. * testsuite/event-defintiions.cc : New file. * testsuite/event-private.h : New file. * testsuite/parts-test.list : New file. * testusite/register_pair_mt.cc : New file. * testsuite/povray-derived.cc : New file. * testsuite/event-main.cc : New file. * testsuite/environment.cc : New file. * testsuite/template-list2.cc : New file. * testsuite/thunk_vtable_map_attack.cc : New file. * testsuite/parts-test-extra-parts.cc : New file. * testsuite/environment-fail-64.s : New file. * testsuite/dlopen.cc : New file. * testsuite/so.cc : New file. * testsuite/temp_deriv3.cc : New file. * testsuite/const_vtable.cc : New file. * testsuite/mempool_positive.c : New file. * testsuite/dup_name.cc : New file. From-SVN: r201555
2013-08-01Fix licenses on several libgcc files.Maxim Kuvyrkov6-55/+87
* config/aarch64/sfp-machine.h, config/aarch64/sync-cache.c, * config/i386/cpuinfo.c, config/ia64/unwind-ia64.h, * config/mips/vr4120-div.S: Fix license from GPL-3.0+ to GPL-3.0-with-GCC-exception. From-SVN: r201417
2013-07-30mips16.S (DELAYf): Alias to DELAYt for the MIPS IV ISA and up.Maciej W. Rozycki2-0/+10
* config/mips/mips16.S (DELAYf): Alias to DELAYt for the MIPS IV ISA and up. From-SVN: r201350
2013-07-23linux-unwind.h: Use the proper dwarf to hard reg mapping for FPRs when...Andreas Krebbel2-1/+8
2013-07-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * config/s390/linux-unwind.h: Use the proper dwarf to hard reg mapping for FPRs when creating the fallback framestate. From-SVN: r201156
2013-07-19re PR target/57516 ([avr] Incorrect fixed-point rounding result in the ↵Georg-Johann Lay2-21/+34
overflow case) gcc/ PR target/57516 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn. * config/avr/avr.md (adjust_len): Add `round'. * config/avr/avr-protos.h (avr_out_round): New prototype. (avr_out_plus): Add `out_label' argument. * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument. (avr_out_plus): Pass down `out_label' to avr_out_plus_1. Handle the case where `insn' is just a pattern. (avr_out_bitop): Handle the case where `insn' is just a pattern. (avr_out_round): New function. (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND. libgcc/ PR target/57516 * config/avr/lib1funcs-fixed.S (__roundqq3, __rounduqq3) (__round_s2_const, __round_u2_const) (__round_s4_const, __round_u4_const, __round_x8): Saturate result if addition result cannot be represented. gcc/testsuite/ PR target/57516 * gcc.target/avr/torture/builtins-4-roundfx.c (test2hr, test2k): Adjust to corrected rounding. From-SVN: r201051
2013-07-15libgcc2.c: Don't include <limits.h>.Matthias Klose2-36/+4
2013-07-15 Matthias Klose <doko@ubuntu.com> * libgcc2.c: Don't include <limits.h>. From-SVN: r200963
2013-07-09* config.host (powerpc-*-eabispe*): Add t-fdpbit to tmake_file.Janis Johnson2-1/+5
From-SVN: r200846
2013-07-06re PR target/29776 (result of ffs/clz/ctz/popcount/parity are already ↵Jakub Jelinek2-1/+6
sign-extended) PR target/29776 * fold-const.c (tree_call_nonnegative_warnv_p): Return true for BUILT_IN_C{LZ,LRSB}*. * tree.h (CASE_INT_FN): Add FN##IMAX case. * tree-vrp.c (extract_range_basic): Handle BUILT_IN_{FFS,PARITY,POPCOUNT,C{LZ,TZ,LRSB}}*. For BUILT_IN_CONSTANT_P if argument isn't (D) of PARM_DECL, fall thru to code calling set_value*. * builtins.c (expand_builtin): Remove *IMAX cases. (fold_builtin_bitop): For BUILT_IN_CLRSB* return NULL_TREE if width is bigger than 2*HWI. * libgcc2.c (__floattisf): Avoid undefined signed overflow. * gcc.dg/tree-ssa/vrp89.c: New test. From-SVN: r200731
2013-06-28re PR middle-end/36041 (Speed up builtin_popcountll)Jakub Jelinek2-0/+50
PR middle-end/36041 * libgcc2.c (POPCOUNTCST2, POPCOUNTCST4, POPCOUNTCST8, POPCOUNTCST): Define. (__popcountSI2): For __SIZEOF_INT__ > 2 targets use arithmetics instead of table lookups. (__popcountDI2): Likewise. From-SVN: r200506
2013-06-25Makefile.in (clean, distclean): Remove auto-target.h and stamp-h correctly.Chung-Ju Wu2-2/+9
libgcc/ 2013-06-25 Chung-Ju Wu <jasonwucj@gmail.com> * Makefile.in (clean, distclean): Remove auto-target.h and stamp-h correctly. From-SVN: r200390
2013-06-21re PR other/53317 (Conversion from __int128 to __float128)Joseph Myers80-120/+259
PR other/53317 gcc/testsuite: * gcc.dg/torture/fp-int-convert-float128-timode-2.c: New test. libgcc: * soft-fp/adddf3.c: Update from glibc. * soft-fp/addsf3.c: Likewise. * soft-fp/addtf3.c: Likewise. * soft-fp/divdf3.c: Likewise. * soft-fp/divsf3.c: Likewise. * soft-fp/divtf3.c: Likewise. * soft-fp/double.h: Likewise. * soft-fp/eqdf2.c: Likewise. * soft-fp/eqsf2.c: Likewise. * soft-fp/eqtf2.c: Likewise. * soft-fp/extenddftf2.c: Likewise. * soft-fp/extended.h: Likewise. * soft-fp/extendsfdf2.c: Likewise. * soft-fp/extendsftf2.c: Likewise. * soft-fp/fixdfdi.c: Likewise. * soft-fp/fixdfsi.c: Likewise. * soft-fp/fixsfdi.c: Likewise. * soft-fp/fixsfsi.c: Likewise. * soft-fp/fixtfdi.c: Likewise. * soft-fp/fixtfsi.c: Likewise. * soft-fp/fixunsdfdi.c: Likewise. * soft-fp/fixunsdfsi.c: Likewise. * soft-fp/fixunssfdi.c: Likewise. * soft-fp/fixunssfsi.c: Likewise. * soft-fp/fixunstfdi.c: Likewise. * soft-fp/fixunstfsi.c: Likewise. * soft-fp/floatdidf.c: Likewise. * soft-fp/floatdisf.c: Likewise. * soft-fp/floatditf.c: Likewise. * soft-fp/floatsidf.c: Likewise. * soft-fp/floatsisf.c: Likewise. * soft-fp/floatsitf.c: Likewise. * soft-fp/floatundidf.c: Likewise. * soft-fp/floatundisf.c: Likewise. * soft-fp/floatunditf.c: Likewise. * soft-fp/floatunsidf.c: Likewise. * soft-fp/floatunsisf.c: Likewise. * soft-fp/floatunsitf.c: Likewise. * soft-fp/gedf2.c: Likewise. * soft-fp/gesf2.c: Likewise. * soft-fp/getf2.c: Likewise. * soft-fp/ledf2.c: Likewise. * soft-fp/lesf2.c: Likewise. * soft-fp/letf2.c: Likewise. * soft-fp/muldf3.c: Likewise. * soft-fp/mulsf3.c: Likewise. * soft-fp/multf3.c: Likewise. * soft-fp/negdf2.c: Likewise. * soft-fp/negsf2.c: Likewise. * soft-fp/negtf2.c: Likewise. * soft-fp/op-1.h: Likewise. * soft-fp/op-2.h: Likewise. * soft-fp/op-4.h: Likewise. * soft-fp/op-8.h: Likewise. * soft-fp/op-common.h: Likewise. * soft-fp/quad.h: Likewise. * soft-fp/single.h: Likewise. * soft-fp/soft-fp.h: Likewise. * soft-fp/subdf3.c: Likewise. * soft-fp/subsf3.c: Likewise. * soft-fp/subtf3.c: Likewise. * soft-fp/truncdfsf2.c: Likewise. * soft-fp/trunctfdf2.c: Likewise. * soft-fp/trunctfsf2.c: Likewise. * soft-fp/unorddf2.c: Likewise. * soft-fp/unordsf2.c: Likewise. * soft-fp/unordtf2.c: Likewise. * config/aarch64/sfp-machine.h (_FP_QNANNEGATEDP): Define to 0. * config/arm/sfp-machine.h (_FP_QNANNEGATEDP): Likewise. * config/c6x/sfp-machine.h (_FP_QNANNEGATEDP): Likewise. * config/i386/sfp-machine.h (_FP_QNANNEGATEDP): Likewise. * config/ia64/sfp-machine.h (_FP_QNANNEGATEDP): Likewise. * config/lm32/sfp-machine.h (_FP_QNANNEGATEDP): Likewise. * config/moxie/sfp-machine.h (_FP_QNANNEGATEDP): Likewise. * config/rs6000/sfp-machine.h (_FP_QNANNEGATEDP): Likewise. * config/score/sfp-machine.h (_FP_QNANNEGATEDP): Likewise. * config/tilegx/sfp-machine32.h (_FP_QNANNEGATEDP): Likewise. * config/tilegx/sfp-machine64.h (_FP_QNANNEGATEDP): Likewise. * config/tilepro/sfp-machine.h (_FP_QNANNEGATEDP): Likewise. From-SVN: r200318
2013-06-16mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.Jürgen Urban3-0/+51
gcc/ 2013-06-16 Jürgen Urban <JuergenUrban@gmx.de> * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900. (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros. * config/mips/mips.md (mul<mode>3, mul<mode>3_internal) (mul<mode>3_r4000): Require ISA_HAS_<D>MULT. (mul<mode>3_mul3): Handle TARGET_MIPS5900. (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test. (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3) (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT instead of TARGET_64BIT. (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>): Require ISA_HAS_<D>DIV. libgcc/ 2013-06-16 Jürgen Urban <JuergenUrban@gmx.de> * config/mips/lib2funcs.c: New file. * config/mips/t-mips (LIB2ADD_ST): Add it. From-SVN: r200140
2013-06-09re PR target/6526 ([SH4] sdivsi3_i4 can clobber xd0/xd2)Oleg Endo2-70/+161
PR target/6526 * config/sh/lib1funcs.S (sdivsi3_i4, udivsi3_i4): Do not change bits other than FPSCR.PR and FPSCR.SZ. Add SH4A implementation. PR target/6526 * gcc.target/sh/pr6526.c: New. From-SVN: r199873
2013-06-08atomic.h: Don't include stdint.h or features.h.Walter Lee3-16/+24
* config/tilepro/atomic.h: Don't include stdint.h or features.h. Replace int64_t with long long. Add __extension__ where appropriate. * config/tilepro/atomic.c: Include config.h. From-SVN: r199855
2013-06-06* config.host (arm-wrs-vxworks): Configure with other soft float.Doug Rupp2-1/+5
From-SVN: r199747
2013-06-04gcc/Jürgen Urban2-1/+24
2013-06-03 Jürgen Urban <JuergenUrban@gmx.de> * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*) (mips64r5900el-*-elf*): New configurations. * config/mips/mips-cpus.def (r5900): New processor. * config/mips/mips-tables.opt: Regenerate. * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry. (mips_issue_rate): Handle PROCESSOR_R5900. (mips_reorg_process_insns): Force reorder mode for the R5900. * config/mips/mips.h (TARGET_MIPS5900): Define. (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include TARGET_MIPS5900. (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude TARGET_MIPS5900. * config/mips/mips.md (processor): Add r5900. (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900. libgcc/ 2013-06-03 Jürgen Urban <JuergenUrban@gmx.de> * config.host (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*) (mips64r5900el-*-elf*): New configurations. From-SVN: r199666
2013-06-04ibm-ldouble.c: Enable for little-endian.Alan Modra2-3/+7
* config/rs6000/ibm-ldouble.c: Enable for little-endian. From-SVN: r199650
2013-06-03i386.c (ix86_lea_outperforms): Fix formatting.Yuri Rumyantsev2-1/+7
* config/i386/i386.c (ix86_lea_outperforms): Fix formatting. (ix86_avoid_lea_for_addr): Likewise. (exact_dependency_1): Likewise. (ix86_adjust_cost): Likewise. (swap_top_of_ready_list): Fix formatting and !reload_completed check removed. (do_reorder_for_imul): Fix typo, formatting and !reload_completed check removed. (ix86_sched_reorder): Fix typo and formatting. (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types list. * config/i386/cpuinfo.c (INTEL_SLM): New enum value. From-SVN: r199611
2013-05-30Silvermont (SLM) architecture pipeline model, tuning and insn selection.Yuri Rumyantsev1-0/+1
Silvermont (SLM) architecture pipeline model, tuning and insn selection. * config.gcc: Add slm config options and target. * config/i386/slm.md: New. * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe. * gcc/config/i386/i386-c.c (ix86_target_macros_internal): New case PROCESSOR_SLM. (ix86_target_macros_internal): Likewise. * gcc/config/i386/i386.c (slm_cost): New cost. (m_SLM): New macro flag. (initial_ix86_tune_features): Set m_SLM. (x86_accumulate_outgoing_args): Likewise. (x86_arch_always_fancy_math_387): Likewise. (processor_target_table): Add slm cost. (cpu_names): Add slm cpu name. (x86_option_override_internal): Set SLM ISA. (ix86_issue_rate): New case PROCESSOR_SLM. (ia32_multipass_dfa_lookahead): Likewise. (fold_builtin_cpu): Add slm. * config/i386/i386.h (TARGET_SLM): New target macro. (target_cpu_default): Add TARGET_CPU_DEFAULT_slm. (processor_type): Add PROCESSOR_SLM. * config/i386/i386.md (cpu): Add new value "slm". (slm.md): Include slm.md. * libgcc/config/i386/cpuinfo.c (INTEL_SLM): New enum value. Co-Authored-By: Igor Zamyatin <igor.zamyatin@intel.com> From-SVN: r199444
2013-05-28sol2-unwind.h (MD_FALLBACK_FRAME_STATE_FOR): Do not set fs->signal_frame for ↵Eric Botcazou3-2/+18
SIGFPE raised for IEEE-754 exceptions. * config/sparc/sol2-unwind.h (MD_FALLBACK_FRAME_STATE_FOR): Do not set fs->signal_frame for SIGFPE raised for IEEE-754 exceptions. * config/i386/sol2-unwind.h (x86_fallback_frame_state): Likewise. From-SVN: r199381