Nick Clifton
3542b7ccd2
* libgcc2.c (__popcount_tab): Remove redundant prototype.
...
From-SVN: r104702
2005-09-27 17:11:39 +00:00
Nick Clifton
dcfae47c5e
Makefile.in (LIBGCC_DEPS): Add libgcc2.h.
...
* Makefile.in (LIBGCC_DEPS): Add libgcc2.h.
* libgcc2.c (__clz_tab[], __popcount_tab[]): Set the fixed dimension of
these arrays.
* libgcc2.h (__clz_tab[], __popcount_tab[]): Add exports of these arrays.
* longlong.h: Only provide a prototype for the __clz_tab[] array if this
header has not been included from libgcc2.h.
* config/stormy16/stormy16-lib2.c: Include libgcc2.h rather than defining
own types.
Provide prototypes for exported functions.
Use the __clz_tab[] and __popcount_tab[] arrays provided by libgcc2.c.
From-SVN: r104081
2005-09-09 08:39:18 +00:00
Jakub Jelinek
7700825281
Makefile.def (target_modules): Add libssp.
...
* Makefile.def (target_modules): Add libssp.
* configure.in (target_libraries): Add target-libssp.
* configure: Rebuilt.
* Makefile.in: Rebuilt.
gcc/
* gcc.c (LINK_SSP_SPEC): Define.
(link_ssp_spec): New variable.
(LINK_COMMAND_SPEC): Add %(link_ssp).
(static_specs): Add link_ssp_spec.
* configure.ac (TARGET_LIBC_PROVIDES_SSP): New test.
* configure: Rebuilt.
* config.in: Rebuilt.
* config/rs6000/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
* config/rs6000/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
* config/i386/linux.h (TARGET_THREAD_SSP_OFFSET): Likewise.
* config/i386/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
* config/rs6000/rs6000.md (stack_protect_set, stack_protect_test):
If TARGET_THREAD_SSP_OFFSET is defined, use -0x7010(13) resp.
-0x7008(2) instead of reading __stack_chk_guard variable.
* config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): Change
number.
(UNSPEC_SP_TLS_SET, UNSPEC_SP_TLS_TEST): New constants.
(stack_protect_set, stack_protect_test): Use *_tls* patterns
if TARGET_THREAD_SSP_OFFSET is defined.
(stack_tls_protect_set_si, stack_tls_protect_set_di,
stack_tls_protect_test_si, stack_tls_protect_test_di): New insns.
Revert:
2005-06-27 Richard Henderson <rth@redhat.com>
* libgcc-std.ver (GCC_4.1.0): New.
* libgcc.h (__stack_chk_guard): Declare.
(__stack_chk_fail, __stack_chk_fail_local): Declare.
* libgcc2.c (L_stack_chk, L_stack_chk_local): New.
* mklibgcc.in (lib2funcs): Add them.
From-SVN: r101531
2005-07-02 10:52:21 +02:00
Richard Henderson
7d69de618e
c-cppbuiltin.c (c_cpp_builtins): Add __SSP_ALL__ and __SSP__.
...
* c-cppbuiltin.c (c_cpp_builtins): Add __SSP_ALL__ and __SSP__.
* cfgexpand.c: Include params.h.
(has_protected_decls, has_short_buffer): New.
(expand_stack_vars): Take a predicate to determine what to expand.
(defer_stack_allocation): True when flag_stack_protect on.
(SPCT_HAS_LARGE_CHAR_ARRAY, SPCT_HAS_SMALL_CHAR_ARRAY): New.
(SPCT_HAS_ARRAY, SPCT_HAS_AGGREGATE): New.
(stack_protect_classify_type, stack_protect_decl_phase): New.
(stack_protect_decl_phase_1, stack_protect_decl_phase_2): New.
(add_stack_protection_conflicts, create_stack_guard): New.
(expand_used_vars): Add stack protection logic.
(tree_expand_cfg): Likewise.
* common.opt (Wstack-protector): New.
(fstack-protector, fstack-protector-all): New.
* function.c: Include predict.h.
(assign_parm_adjust_stack_rtl): Zap stack_parm when stack protect
wants to copy the parameter into the stack frame.
(stack_protect_prologue, stack_protect_epilogue): New.
(expand_function_end): Call stack_protect_epilogue. Do
sjlj_emit_function_exit_after after naked_return_label.
* function.h (struct function): Add stack_protect_guard.
* params.def (PARAM_SSP_BUFFER_SIZE): New.
* toplev.c (process_options): Disable flag_stack_protect and/or
warn_stack_protect based on FRAME_GROWS_DOWNWARD.
* tree.h (stack_protect_prologue): Declare.
* target-def.h (TARGET_STACK_PROTECT_GUARD): New.
(TARGET_STACK_PROTECT_FAIL): New.
(TARGET_INITIALIZER): Add them.
* target.h (struct gcc_target): Add stack_protect_guard and
stack_protect_fail.
* targhooks.c: Include ggc.h, gty header.
(stack_chk_guard_decl, default_stack_protect_guard): New.
(stack_chk_fail_decl, default_external_stack_protect_fail): New.
(default_hidden_stack_protect_fail): New.
* targhooks.h (default_stack_protect_guard): Declare.
(default_external_stack_protect_fail): Declare.
(default_hidden_stack_protect_fail): Declare.
* config/i386/i386.c (TARGET_STACK_PROTECT_FAIL): New.
* config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New.
(trap): Use ud2.
(conditional_trap, conditional_trap_1): Remove.
(stack_protect_set, stack_protect_set_si, stack_protect_set_di): New.
(stack_protect_test, stack_protect_test_si, stack_protect_test_di): New.
* doc/md.texi (stack_protect_set, stack_protect_test): New.
* doc/tm.texi (TARGET_STACK_PROTECT_GUARD): New.
(TARGET_STACK_PROTECT_FAIL): New.
* libgcc-std.ver (GCC_4.1.0): New.
* libgcc.h (__stack_chk_guard): Declare.
(__stack_chk_fail, __stack_chk_fail_local): Declare.
* libgcc2.c (L_stack_chk, L_stack_chk_local): New.
* mklibgcc.in (lib2funcs): Add them.
From-SVN: r101348
2005-06-27 09:41:16 +02:00
Kelley Cook
366ccddb2b
Update FSF address.
...
From-SVN: r101317
2005-06-25 02:02:01 +00:00
Nathan Sidwell
232b67d9f8
Makefile.in (cs-tconfig.h): Pass USED_FOR_TARGET to mkconfig.sh
...
* Makefile.in (cs-tconfig.h): Pass USED_FOR_TARGET to mkconfig.sh
* aclocal.m4 (GCC_TARGET_TEMPLATE, AH_TEMPLATE): New.
* configure.ac (enable_checking): Fix typos in runtime_checking.
(ENABLE_RUNTIME_CHECKING): Mark as target template.
(xm_file): Prepend auto-host.h
(HAVE_GAS_HIDDEN, HAVE_LD_EH_FRAME_HDR): Mark as target template.
* mkconfig.sh: Do not automatically define USED_FOR_TARGET in
tconfig.h.
* crtstuff.c: Do not include auto-host.h.
(IN_LIBGCC2): Do not define.
* gcov-io.h: Include tconfig.h, not auto-host.h.
* libgcc2.c: Do not include auto-host.h.
(abort): Do not undefine.
* libgcov.c: Remove unneeded comment about config.h.
* unwind-dw2-fde-glibc.c: Do not inlude auto-host.h.
* config.in, configure: Regenerated.
Co-Authored-By: Paolo Bonzini <bonzini@gnu.org>
From-SVN: r99386
2005-05-08 10:13:19 +00:00
Julian Brown
7abc66b142
crtstuff.c: Handle targets that use .init_array.
...
* crtstuff.c: Handle targets that use .init_array.
* function.c (HAS_INIT_SECTION): Do not define. Instead, make sure
that INVOKE__main is set correctly.
(expand_main_function): Test INVOKE__main.
* libgcc2.c: Do not define __main when using .init_array.
* config/arm/arm.c (arm_elf_asm_constructor): New function.
* config/arm/arm.h (CTORS_SECTION_ASM_OP): Define, with specialized
libgcc version.
(DTORS_SECTION_ASM_OP): Likewise.
(CTOR_LIST_BEGIN): Define specially when in libgcc.
(CTOR_LIST_END): Likewise.
(DTOR_LIST_BEGIN): Likewise.
(DTOR_LIST_END): Likewise.
* config/arm/bpapi.h (INIT_SECTION_ASM_OP): Do not define it.
(FINI_SECTION_ASM_OP): Likewise.
(INIT_ARRAY_SECTION_ASM_OP): Define.
(FINI_ARRAY_SECTION_ASM_OP): Likewise.
* config/arm/elf.h (TARGET_ASM_CONSTRUCTOR): Define.
(SUPPORTS_INIT_PRIORITY): Evaluate to false for EABI based targets.
* doc/tm.texi (INIT_ARRAY_SECTION_ASM_OP): Document.
(FINI_ARRAY_SECTION_ASM_OP): Likewise.
Co-Authored-By: Mark Mitchell <mark@codesourcery.com>
Co-Authored-By: Paul Brook <paul@codesourcery.com>
From-SVN: r98986
2005-04-29 14:09:45 +00:00
Fariborz Jahanian
0b8495ae45
Fix problem with calling powi* builtins.
...
OKed by Richard Henderson.
From-SVN: r97278
2005-03-30 20:59:21 +00:00
Richard Sandiford
cfa7bd9ca2
libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
...
* libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
(LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
the defaults false if BITS_PER_UNIT != 8.
(SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
(__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
than BITS_PER_UNIT != 8.
(L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
(L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
(L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
#undefs.
* libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
(__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
From-SVN: r96778
2005-03-21 07:22:22 +00:00
Steve Ellcey
4e9db8b235
re PR target/19930 (gcc.dg/pr19402-2.c fails on ia64-hpux)
...
PR target/19930
* doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
(LIBGCC2_HAS_DF_MODE): New.
(LIBGCC2_HAS_XF_MODE): New.
(LIBGCC2_HAS_TF_MODE): New.
* libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
(LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
* libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
(LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
(LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
* config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
and add _fixtfdi, _fixunstfdi, _floatditf
* lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
L_fixunstfdi, L_floatditf.
* config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
(LIBGCC2_HAS_TF_MODE): Define.
From-SVN: r95548
2005-02-25 21:34:49 +00:00
Kazu Hirata
2e681715d6
* libgcc2.c, tree-vect-analyze.c: Fix comment typos.
...
From-SVN: r95196
2005-02-17 21:20:21 +00:00
Richard Henderson
4f2e0d5ecc
re PR middle-end/19920 (build broken on several targets due to recent 'DC' type update to libgcc2)
...
PR 19920
* libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
with W_TYPE_SIZE.
(HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
replace uses with Wtype_MAXp1_F.
(L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
and HAVE_TFMODE as appropriate.
(__fixunssfDI): Provide an implementation that doesn't need DFmode.
(__floatdisf): Likewise.
* libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
(HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
(Wtype_MAXp1_F): New.
(DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
__powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
From-SVN: r95121
2005-02-16 14:55:33 -08:00
Kazu Hirata
647eea9dd8
c-tree.h, [...]: Fix comment typos.
...
* c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
simplify-rtx.c, tree-ssa-live.h: Fix comment typos. Follow
spelling conventions.
From-SVN: r94939
2005-02-12 15:17:56 +00:00
Richard Henderson
7e7e470f9b
tree-complex.c (expand_complex_libcall): New.
...
* tree-complex.c (expand_complex_libcall): New.
(expand_complex_multiplication): Use it for c99 compliance.
(expand_complex_division): Likewise.
* fold-const.c (fold_complex_add, fold_complex_mult): New.
(fold): Call them.
* builtins.c (built_in_names): Remove const.
* tree.c (build_common_builtin_nodes): Build complex arithmetic
builtins.
* tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
(BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
(built_in_names): Remove const.
* c-common.c (c_common_type_for_mode): Handle complex modes.
* flags.h, toplev.c (flag_complex_method): Rename from
flag_complex_divide_method.
* libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
__mulsc3, __muldc3, __mulxc3, __multc3): New.
* libgcc2.h: Declare them.
* libgcc-std.ver: Export them.
* mklibgcc.in (lib2funcs): Build them.
From-SVN: r94909
2005-02-11 16:26:57 -08:00
Kazu Hirata
c486021de8
builtins.def, [...]: Update copyright.
...
* builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
config/cris/cris-protos.h, config/cris/cris.c: Update
copyright.
From-SVN: r94840
2005-02-10 18:59:07 +00:00
Richard Guenther
17684d4629
re PR middle-end/19402 (__builtin_powi? still missing)
...
2005-02-09 Richard Guenther <rguenth@gcc.gnu.org>
PR middle-end/19402
* builtins.def: New __builtin_powi[lf].
* builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
(expand_builtin_powi): New function.
(expand_builtin): Dispatch to expand_builtin_powi.
* libgcc2.h: Add prototypes for __builtin_powi[lf].
* libgcc2.c: Add __builtin_powi[lf] implementation.
* mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
* optabs.h: Add powi_optab.
* optabs.c (init_optabs): Initialize powi_optab.
* doc/extend.texi: Document __builtin_powi[lf].
* gcc.dg/pr19402-1.c: New testcase.
* gcc.dg/pr19402-2.c: likewise.
From-SVN: r94774
2005-02-09 20:58:13 +00:00
Eric Botcazou
0aec601466
re PR other/18665 (-ftrapv borks up simple integer arithmetic)
...
PR other/18665
* libgcc-std.ver (GCC_3.4.4): Inherit from GCC_3.4.2.
Export __absvti2, __addvti3, __mulvti3, __negvti2 and __subvti3.
* libgcc2.c (__addvsi3): Rename to __addvSI3.
New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
(__addvdi3): Rename to __addvDI3.
(__subvsi3): Rename to __subvSI3. Use word type for the result.
New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
(__subvdi3): Rename to __subvDI3.
(_mulvsi3): Rename to _mulvSI3.
New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
(_mulvdi3): Rename to _mulvDI3.
(__negvsi2): Rename to __negvSI2.
New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
(__negvdi2): Rename to __negvDI2.
(__absvsi2): Rename to __absvSI2.
New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
(__absvdi2): Rename to __absvDI2.
* libgcc2.h (64-bit targets): Define COMPAT_SIMODE_TRAPPING_ARITHMETIC.
(__absvSI2, __addvSI3, __subvSI3, __mulvSI3, __negvSI2, __absvDI2,
__addvDI3, __subvDI3, __mulvDI3, __negvDI2): Define to the appropriate
symbol and declare.
(__absvsi2, __addvsi3, __subvsi3, __mulvsi3, __negvsi2): Declare if
COMPAT_SIMODE_TRAPPING_ARITHMETIC.
From-SVN: r92187
2004-12-15 12:30:46 +00:00
Kazu Hirata
f30278e8b4
bitmap.c, [...]: Update copyright.
...
* bitmap.c, bitmap.h, builtin-attrs.def, cfglayout.h,
collect2.h, conflict.c, coretypes.h, coverage.h, errors.h,
gcc.h, gcov-dump.c, gen-protos.c, gencheck.c, gencodes.c,
genconstants.c, gengenrtl.c, genmodes.c, genpeep.c,
gensupport.h, graph.h, gthr-gnat.c, gthr-gnat.h, gthr-posix.c,
gthr-posix.h, hard-reg-set.h, hwint.h, integrate.h, libgcc2.c,
lists.c, machmode.def, mips-tdump.c, opts.h, params.c,
predict.def, predict.h, protoize.c, reload.h, resource.h,
rtl-error.c, sbitmap.c, sbitmap.h, sreal.c, tlink.c,
tree-dump.h, tree-inline.h, unwind-dw2-fde.c, unwind-dw2.c,
unwind-sjlj.c, value-prof.h: Update copyright.
From-SVN: r89097
2004-10-15 14:47:12 +00:00
Andrew Pinski
9c859be169
libgcc2.c (__moddi3): Cast &w to UDWtype*.
...
2004-10-07 Andrew Pinski <pinskia@physics.uc.edu>
* libgcc2.c (__moddi3): Cast &w to UDWtype*.
From-SVN: r88734
2004-10-07 19:55:15 -07:00
Aaron W. LaFramboise
94c1e7acf0
libgcc2.c (getpagesize): Change type of return value to int.
...
2004-09-27 Aaron W. LaFramboise <aaronraolete36@aaronwl.com>
* libgcc2.c (getpagesize): Change type of return value to int.
From-SVN: r88165
2004-09-27 08:01:57 +00:00
Kazu Hirata
ea4b78487c
c-typeck.c, [...]: Fix comment formatting.
...
* c-typeck.c, defaults.h, dwarf.h, dwarf2out.c, fold-const.c,
gthr-dce.h, gthr-posix.h, gthr-solaris.h, gthr-win32.h,
lambda-code.c, lambda-mat.c, libgcc2.c, stmt.c,
tree-ssa-pre.c, tree-vn.c, tree.h: Fix comment formatting.
From-SVN: r88102
2004-09-25 14:36:40 +00:00
Mark Mitchell
3fc1f660b2
gthr-gnat.c: Add visibility #pragmas.
...
* gthr-gnat.c: Add visibility #pragmas.
* gthr-gnat.h : Likewise.
* gthr.h: Likewise.
* libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
(__ffsDI2): Likewise.
(__clzSI2): Likewise.
(__ctzSI2): Likewise.
(__ctzDI2): Likewise.
(__popcountSI2): Likewise.
(__popcountDI2): Likewise.
(__paritySI2): Likewise.
(__parityDI2): Likewise.
* libgcc2.h: Add visibility #pragmas.
(__clzDI2): Add prototype.
(__clzSI2): Likewise.
(__ctzSI2): Likewise.
(__ffsDI2): Likewise.
(__ffsSI2): Likewise.
(__ctzDI2): Likewise.
(__popcountSI2): Likewise.
(__popcountDI2): Likewise.
(__paritySI2): Likewise.
(__parityDI2): Likewise.
* unwind-dw2-fde.h: Add visibility #pragmas.
* unwind.h: Likewise.
From-SVN: r85489
2004-08-03 16:57:40 +00:00
Zack Weinberg
968a7562a6
libgcc2.c: Change all conditionals testing LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
...
* libgcc2.c: Change all conditionals testing
LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80.
* libgcc2.h: Likewise.
* config/i386/i386.c (ix86_init_mmx_sse_builtins): Set
TYPE_PRECISION of float80_type to 80.
* config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION
of fpreg_type and float80_type to 80.
* config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h
* config/m68k/netbsd-elf.h:
Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE
to evaluate to 80 whenever they would formerly have evaluated to 96.
* config/i386/sco5.h: Remove unnecessary redefinition of
LONG_DOUBLE_TYPE_SIZE.
* doc/rtl.texi: Clarify uses of XFmode and TFmode.
* config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for
XFmode, with a bitsize of 80. Update commentary.
* config/ia64/ia64-modes.def: Likewise.
* config/m68k/m68k-modes.def: Likewise.
From-SVN: r85232
2004-07-27 21:41:23 +00:00
Eric Botcazou
e7a742ec96
libgcc2.c (__enable_execute_stack): New symbol.
...
* libgcc2.c (__enable_execute_stack): New symbol.
* libgcc-std.ver (GCC_3.4.2): New version. Inherit from GCC_3.4
and declare __enable_execute_stack.
* mklibgcc.in (lib2funcs): Add _enable_execute_stack.
* config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy.
* config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into
ENABLE_EXECUTE_STACK.
* config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize
on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
* config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into
ENABLE_EXECUTE_STACK.
* config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
* config/i386/i386.c (x86_initialize_trampoline): Conditionalize
on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
* config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into
ENABLE_EXECUTE_STACK.
* config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
* config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
* config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
* config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise.
* config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize
on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE.
(sparc64_initialize_trampoline): Likewise.
* doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro.
From-SVN: r84880
2004-07-17 21:09:14 +00:00
Falk Hueffner
d3a7ef9aac
re PR other/15526 (-ftrapv aborts on 0 * (-1))
...
PR other/15526
* libgcc2.c (__mulvsi3): Fix overflow test.
* gcc.dg/ftrapv-1.c: New test case.
From-SVN: r82042
2004-05-20 01:43:20 +02:00
Kaveh R. Ghazi
b982024e30
libgcc2.c (__negdi2, [...]): Const-ify and/or initialize automatic variables at declaration.
...
* libgcc2.c (__negdi2, __addvsi3, __addvdi3, __subvsi3, __subvdi3,
__mulvsi3, __negvsi2, __negvdi2, __mulvdi3, __lshrdi3, __ashldi3,
__ashrdi3, __ffsDI2, __muldi3, __clzDI2, __ctzDI2, __parityDI2,
__udivmoddi4, __divdi3, __moddi3, __cmpdi2, __ucmpdi2,
__fixunstfDI, __fixunsxfDI, __fixunsdfDI, __fixunssfDI,
__floatdixf, __floatditf, __floatdidf, __floatdisf, __gcc_bcmp):
Const-ify and/or initialize automatic variables at declaration.
From-SVN: r73573
2003-11-14 02:23:13 +00:00
John David Anglin
4043d9c130
* libgcc2.c (SYMBOL__MAIN): Provide C90 declaration.
...
From-SVN: r73191
2003-11-02 00:16:33 +00:00
Bruno Haible
4c20b2e76b
re PR middle-end/6578 (-ftrapv doesn't catch multiplication overflow)
...
2003-06-30 Bruno Haible <bruno@clisp.org>
PR middle-end/6578
* libgcc2.c (__subvsi3): Remove simplification that would not work
when subtracting -0x80000000.
(__subvdi3): Remove simplification that would return a wrong result.
(__mulvsi3): Fix overflow check.
(__absvdi2): Fix simplification that would return a wrong result.
(__mulvdi3): Fix overflow check.
From-SVN: r68758
2003-07-01 04:04:13 +00:00
Kaveh R. Ghazi
e87b9d8b7a
libgcc2.c: Delete sysV68 L_trampoline section.
...
* libgcc2.c: Delete sysV68 L_trampoline section.
* config/m68k/mot3300-crt0.S: Delete file.
* config/m68k/mot3300Mcrt0.S: Likewise.
From-SVN: r67965
2003-06-15 05:47:39 +00:00
Andreas Jaeger
5145a02e5d
mklibgcc.in (lib2funcs): Remove _exit.
...
* mklibgcc.in (lib2funcs): Remove _exit.
* libgcc2.c: Remove L_exit.
* gbl-ctors.h: Remove declarations dependend on NEED_ATEXIT.
* system.h: Poison NEED_ATEXIT, ON_EXIT, EXIT_BODY.
* doc/tm.texi (Misc): Remove NEED_ATEXIT, ON_EXIT, EXIT_BODY.
From-SVN: r67599
2003-06-07 20:50:54 +02:00
Andreas Jaeger
f691dc3b22
uwin.h: Remove SUBTARGET_PROLOGUE.
...
* config/i386/uwin.h: Remove SUBTARGET_PROLOGUE.
* config/i386/i386.c (ix86_expand_prologue): Do not use
SUBTARGET_PROLOGUE.
* system.h: Poision SUBTARGET_PROLOGUE.
* config/arm/arm-protos.h: Remove unused rdate_section prototype.
* output.h: Remove TDESC_SECTION_ASM_OP and RDATA_SECTION_ASM_OP
dependend code.
* system.h: Poison TDESC_SECTION_ASM_OP and RDATA_SECTION_ASM_OP.
* system.h: Poison INSN_CACHE_DEPTH, INSN_CACHE_SIZE and
INSN_CACHE_LINE_WIDTH.
* libgcc2.c (INSN_CACHE_PLANE_SIZE): Removed.
(__clear_cache): Remove code dependend on INSN_CACHE_DEPTH,
INSN_CACHE_SIZE and INSN_CACHE_LINE_WIDTH.
* doc/tm.texi (Trampolines): Remove INSN_CACHE_DEPTH,
INSN_CACHE_SIZE and INSN_CACHE_LINE_WIDTH.
* dbxout.c (dbxout_type): Remove usage of DBX_OUTPUT_ENUM.
(dbxout_symbol): Remove usage of DBX_OUTPUT_CONSTANT_SYMBOL.
(dbxout_block): Remove usage of DBX_OUTPUT_CATCH.
(dbxout_block): Remove usage of DBX_LBRAC_FIRST.
(dbxout_source_file): Remove usage of DBX_OUTPUT_SOURCE_FILENAME.
(dbxout_init): Remove test for DBX_WORKING_DIRECTORY.
* doc/tm.texi (DBX Options): Do not document DBX_LBRAC_FIRST,
DBX_OUTPUT_SOURCE_FILENAME and DBX_OUTPUT_ENUM and
DBX_WORKING_DIRECTORY.
* system.h: Poison DBX_LBRAC_FIRST, DBX_OUTPUT_ENUM,
DBX_OUTPUT_SOURCE_FILENAME and DBX_WORKING_DIRECTORY.
* config/frv/frv-protos.h: Remove unused const_section
declaration.
* config/vax/vax-protos.h: Likewise.
* output.h: Remove CONST_SECTION_ASM_OP usage.
* system.h: Poison CONST_SECTION_ASM_OP.
* crtstuff.c (__do_global_dtors_aux): Remove usage of CRT_GET_RFIB_TEXT
(frame_dummy): Likewise.
* unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Likewise.
* system.h: Poison CRT_GET_RFIB_TEXT.
From-SVN: r67423
2003-06-04 07:21:41 +02:00
Richard Henderson
8275b011ca
libgcc-std.ver (__clztf2): New.
...
* libgcc-std.ver (__clztf2): New.
(__ctztf2, __popcounttf2, __paritytf2): New.
* libgcc2.c (__clzSI2, __clzDI2, __ctzSI2, __ctzDI2, __popcountSI2,
__popcountDI2, __paritySI2, __parityDI2): Use UWmode and UDWmode;
adjust code to match the different type sizes.
* libgcc2.h (__clzSI2, __ctzSI2, __popcountSI2, __paritySI2,
__clzDI2, __ctzDI2, __popcountDI2, __parityDI2): New macros.
* optabs.c (init_integral_libfuncs): Don't hard-code SImode and
TImode; select word_mode and twice that.
(init_floating_libfuncs): Don't hard-code SFmode and TFmode;
select the modes from float, double, and long double.
(init_optabs): Remove duplicate initializations.
From-SVN: r62606
2003-02-09 10:35:22 -08:00
Richard Henderson
dfff898c27
libgcc2.h, libgcc2.c (__ffsSI2): New.
...
* libgcc2.h, libgcc2.c (__ffsSI2): New.
(__ffsDI2): Rename from __ffsdi2.
* mklibgcc.in (lib2funcs): Add _ffssi2.
From-SVN: r62422
2003-02-04 16:52:24 -08:00
Richard Henderson
0c9ed8564d
libgcc2.c (__paritysi2, [...]): Replace last two reduction rounds with a "bit table" lookup.
...
* libgcc2.c (__paritysi2, __paritydi2): Replace last two reduction
rounds with a "bit table" lookup.
From-SVN: r62421
2003-02-04 16:43:22 -08:00
Falk Hueffner
087fc75a00
* libgcc2.c (__subvdi3): Fix typo.
...
From-SVN: r62406
2003-02-04 13:45:40 -08:00
Richard Henderson
dabb3f04da
libgcc2.c (__ffsdi2, [...]): Change return type to "int".
...
* libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
__popcountsi2, __popcountdi2, __paritysi2, __paritydi2): Change
return type to "int". Shuffle declarations and undef int trap.
* libgcc2.h: Remove their declarations.
* optabs.c (expand_unop): Force outmode to int for bitops.
From-SVN: r62353
2003-02-03 14:42:20 -08:00
Richard Henderson
53585c36db
libgcc2.c: Include auto-host.h.
...
* libgcc2.c: Include auto-host.h.
(ATTRIBUTE_HIDDEN): New.
(__clz_tab): Don't declare here for clz and ctz.
(__clzsi2, __clzdi2): Use count_leading_zeros.
(__ctzsi2, __ctzdi2): Use count_trailing_zeros.
(__popcount_tab): Mark ATTRIBUTE_HIDDEN.
(__paritysi2, __paritydi2): Use shifts instead of __popcount_tab.
* longlong.h (__clz_tab): Mark ATTRIBUTE_HIDDEN.
From-SVN: r62256
2003-02-01 12:58:35 -08:00
Richard Henderson
2928cd7aac
[multiple changes]
...
2003-02-01 Richard Henderson <rth@redhat.com>
* optabs.c (expand_unop): Use word_mode for outmode of bit scaners.
* libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
__popcountsi2, __popcountdi2, __paritysi2 __paritydi2): Change
return type to Wtype.
* libgcc-std.ver (GCC_3.4): Fix inheritance.
* config/i386/i386.md (ffssi2): Use nonimmediate_operand for
expander input constraint.
2003-02-01 Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
* optabs.h (optab_index): Add OTI_clz, OTI_ctz, OTI_popcount and
OTI_parity.
(clz_optab, ctz_optab, popcount_optab, parity_optab): New.
* optabs.c (widen_clz, expand_parity): New.
(expand_unop): Handle clz and parity. Hardcode SImode as outmode
for libcalls to clz, ctz, popcount, and parity.
(init_optabs): Init clz_optab, ctz_optab, popcount_optab and
parity_optab, and set up libfunc handlers.
* libgcc2.c (__clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
__popcountsi2, __popcountdi2, __paritysi2 __paritydi2,
__popcount_tab): New.
* libgcc2.h: Declare them.
* libgcc-std.ver (GCC_3.4): Add new functions from libgcc2.c.
* genopinit.c (optabs): Add clz_optab, ctz_optab, popcount_optab
and parity_optab.
* builtin-types.def (BT_FN_INT_LONG, BT_FN_INT_LONGLONG): New.
* builtins.def (BUILT_IN_CLZ, BUILT_IN_CTZ, BUILT_IN_POPCOUNT,
BUILT_IN_PARITY, BUILT_IN_FFSL, BUILT_IN_CLZL, BUILT_IN_CTZL,
BUILT_IN_POPCOUNTL, BUILT_IN_PARITYL, BUILT_IN_FFSLL,
BUILT_IN_CLZLL, BUILT_IN_CTZLL, BUILT_IN_POPCOUNTLL,
BUILT_IN_PARITYLL): New.
* builtins.c (expand_builtin_unop): Rename from expand_builtin_ffs
and add optab argument.
(expand_builtin): Expand BUILT_IN_{FFS,CLZ,POPCOUNT,PARITY}*.
* tree.def (CLZ_EXPR, CTZ_EXPR, POPCOUNT_EXPR, PARITY_EXPR): New.
* expr.c (expand_expr): Handle them.
* fold-const.c (tree_expr_nonnegative_p): Likewise.
* rtl.def (CLZ, CTZ, POPCOUNT, PARITY): New.
* reload1.c (eliminate_regs): Handle them.
(elimination_effects): Likewise.
* function.c (instantiate_virtual_regs_1): Likewise
* genattrtab.c (check_attr_value): Likewise.
* simplify-rtx.c (simplify_unary_operation): Likewise.
* c-common.c (c_common_truthvalue_conversion): Handle POPCOUNT_EXPR.
* combine.c (combine_simplify_rtx): Handle POPCOUNT and PARITY.
(nonzero_bits): Handle CLZ, CTZ, POPCOUNT and PARITY.
* config/alpha/alpha.md (clzdi2, ctzdi2, popcountdi2): New.
* config/arm/arm.c (arm_init_builtins): Rename __builtin_clz to
__builtin_arm_clz.
* Makefile.in (LIB2FUNCS_1, LIB2FUNCS_2): Move...
* mklibgcc.in (lib2funcs): ...here and merge. Add new members.
* doc/extend.texi (Other Builtins): Add new builtins.
* doc/md.texi (Standard Names): Add new patterns.
From-SVN: r62252
2003-02-01 11:00:02 -08:00
Nathan Sidwell
23af32e6ea
Makefile.in (LIB2FUNCS_ST): Remove _gcov.
...
* Makefile.in (LIB2FUNCS_ST): Remove _gcov.
(LIBGCOV): New variable.
(libgcc.mk): Add LIBGCOV.
(LIBGCC_DEPS): Add libgcov.c.
(libgcov.a): New target.
(clean): Remove libgcov.a.
(install-libgcc): Do libgcov too.
(stage1-start, stage2-start, stage3-start, stage4-start): Deal
with libgcov.a.
* libgcc2.c (L_gcov): Move into ...
* libgcov.c: ... here. New file.
* mklibgcc.in: Add libgcov rules.
* gcc.c (LINK_COMMAND_SPEC): Add -lgcov when profiling.
* doc/invoke.texi (profile-arcs, test-coverage): Update and
clarify.
* profile.c (index_counts_file): Remove duplicate check for open file.
From-SVN: r61905
2003-01-27 23:22:17 +00:00
Kazu Hirata
32dd366d5e
basic-block.h: Fix comment formatting.
...
* basic-block.h: Fix comment formatting.
* calls.c: Likewise.
* combine.c: Likewise.
* convert.c: Likewise.
* gcov.c: Likewise.
* haifa-sched.c: Likewise.
* libgcc2.c: Likewise.
* loop.c: Likewise.
* profile.c: Likewise.
* system.h: Likewise.
From-SVN: r61478
2003-01-18 22:32:06 +00:00
Kazu Hirata
3d042e770b
ifcvt.c: Fix comment typos.
...
* ifcvt.c: Fix comment typos.
* lcm.c: Likewise.
* libgcc2.c: Likewise.
* local-alloc.c: Likewise.
* loop.c: Likewise.
* predict.c: Likewise.
* ra-build.c: Likewise.
* ra.c: Likewise.
* ra-colorize.c: Likewise.
* ra.h: Likewise.
* ra-rewrite.c: Likewise.
* regmove.c: Likewise.
* reload.h: Likewise.
* rtlanal.c: Likewise.
* toplev.c: Likewise.
* tree.h: Likewise.
* unwind-dw2-fde-glibc.c: Likewise.
* vmsdbgout.c: Likewise.
From-SVN: r61421
2003-01-17 03:28:11 +00:00
Zack Weinberg
4977bab6ed
Merge basic-improvements-branch to trunk
...
From-SVN: r60174
2002-12-16 18:23:00 +00:00
Ulrich Weigand
1ab9ba6286
libgcc2.c (__udiv_w_sdiv): Use attribute ((always_inline)) when inlining it into other libgcc2 routines.
...
* libgcc2.c (__udiv_w_sdiv): Use attribute ((always_inline)) when
inlining it into other libgcc2 routines.
(__udivmoddi4): Likewise.
From-SVN: r58450
2002-10-23 10:47:24 +00:00
Ulrich Weigand
f8eef88332
libgcc2.c: Fix __udiv_w_sdiv breakage on platforms that don't define sdiv_qrnnd.
...
* libgcc2.c: Fix __udiv_w_sdiv breakage on platforms that
don't define sdiv_qrnnd.
From-SVN: r58393
2002-10-21 23:10:38 +00:00
Ulrich Weigand
59798a0cae
libgcc2.c: Inline __udiv_w_sdiv when compiling __udivdi3, __divdi3, __umoddi3, or __moddi3.
...
* libgcc2.c: Inline __udiv_w_sdiv when compiling __udivdi3,
__divdi3, __umoddi3, or __moddi3.
From-SVN: r58382
2002-10-21 20:25:38 +00:00
Alan Modra
cef1c1bac1
* libgcc2.c (__floatdisf): Properly cure double rounding.
...
From-SVN: r57965
2002-10-09 09:20:56 +09:30
Kazu Hirata
4b7e68e7d2
basic-block.h: Fix comment formatting.
...
* basic-block.h: Fix comment formatting.
* c-common.c: Likewise.
* c-common.h: Likewise.
* c-lex.c: Likewise.
* c-pretty-print.c: Likewise.
* cfglayout.c: Likewise.
* cfgloop.c: Likewise.
* defaults.h: Likewise.
* et-forest.c: Likewise.
* explow.c: Likewise.
* function.h: Likewise.
* gcov.c: Likewise.
* genattrtab.c: Likewise.
* gengtype.c: Likewise.
* ifcvt.c: Likewise.
* libgcc2.c: Likewise.
* loop.c: Likewise.
* profile.c: Likewise.
* ra-build.c: Likewise.
* real.c: Likewise.
* rtl.h: Likewise.
* tracer.c: Likewise.
* tree-inline.c: Likewise.
* varasm.c: Likewise.
From-SVN: r56952
2002-09-08 12:47:27 +00:00
Jan Hubicka
7acc97e02e
* libgcc2.c (__bb_exit_func): Properly write the summarized statistics.
...
From-SVN: r56603
2002-08-27 16:02:29 +00:00
Kaveh R. Ghazi
cbf2f4797d
m68k.c (m68k_output_function_prologue, [...]): Delete versions for DPX2/MOTOROLA and NEWS/MOTOROLA.
...
* m68k.c (m68k_output_function_prologue,
m68k_output_function_epilogue): Delete versions for DPX2/MOTOROLA
and NEWS/MOTOROLA.
* genattrtab.c: Remove dpx2 comment.
* libgcc2.c (__enable_execute_stack): Delete versions for
NeXT/__MACH__, __convex__, __sysV88__, __pyr__ and
sony_news/SYSTYPE_BSD.
* longlong.h: Delete code for __a29k__, _AM29K, __clipper__,
__gmicro__, __i860__, __NeXT__ and __pyr__.
* rtl.h: Remove convex comment.
* varasm.c: Likewise.
From-SVN: r56272
2002-08-14 03:16:05 +00:00
Nathan Sidwell
8733892f66
libgcc2.c (L_bb): Remove unneeded #includes.
...
* libgcc2.c (L_bb): Remove unneeded #includes.
(__global_counters, __gthreads_active): Remove unused globals.
(__bb_exit_func): Merge counts into files rather than appending.
* Makefile.in (INTERNAL_CFLAGS): Move COVERAGE_FLAGS from here ...
(ALL_CFLAGS): ... to here.
From-SVN: r56250
2002-08-13 12:11:20 +00:00