aboutsummaryrefslogtreecommitdiff
path: root/gcc/libgcc2.c
AgeCommit message (Collapse)AuthorFilesLines
2005-03-30Fix problem with calling powi* builtins.Fariborz Jahanian1-2/+4
OKed by Richard Henderson. From-SVN: r97278
2005-03-21libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.Richard Sandiford1-6/+6
* 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-02-25re PR target/19930 (gcc.dg/pr19402-2.c fails on ia64-hpux)Steve Ellcey1-19/+19
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-17* libgcc2.c, tree-vect-analyze.c: Fix comment typos.Kazu Hirata1-1/+1
From-SVN: r95196
2005-02-16re PR middle-end/19920 (build broken on several targets due to recent 'DC' ↵Richard Henderson1-97/+148
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-12c-tree.h, [...]: Fix comment typos.Kazu Hirata1-3/+3
* 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-11tree-complex.c (expand_complex_libcall): New.Richard Henderson1-1/+202
* 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-10builtins.def, [...]: Update copyright.Kazu Hirata1-1/+1
* 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-09re PR middle-end/19402 (__builtin_powi? still missing)Richard Guenther1-0/+36
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
2004-12-15re PR other/18665 (-ftrapv borks up simple integer arithmetic)Eric Botcazou1-12/+81
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-10-15bitmap.c, [...]: Update copyright.Kazu Hirata1-1/+1
* 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-07libgcc2.c (__moddi3): Cast &w to UDWtype*.Andrew Pinski1-1/+1
2004-10-07 Andrew Pinski <pinskia@physics.uc.edu> * libgcc2.c (__moddi3): Cast &w to UDWtype*. From-SVN: r88734
2004-09-27libgcc2.c (getpagesize): Change type of return value to int.Aaron W. LaFramboise1-1/+1
2004-09-27 Aaron W. LaFramboise <aaronraolete36@aaronwl.com> * libgcc2.c (getpagesize): Change type of return value to int. From-SVN: r88165
2004-09-25c-typeck.c, [...]: Fix comment formatting.Kazu Hirata1-4/+4
* 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-08-03gthr-gnat.c: Add visibility #pragmas.Mark Mitchell1-10/+0
* 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-07-27libgcc2.c: Change all conditionals testing LIBGCC2_LONG_DOUBLE_TYPE_SIZE == ↵Zack Weinberg1-4/+4
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-17libgcc2.c (__enable_execute_stack): New symbol.Eric Botcazou1-0/+13
* 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-05-20re PR other/15526 (-ftrapv aborts on 0 * (-1))Falk Hueffner1-3/+1
PR other/15526 * libgcc2.c (__mulvsi3): Fix overflow test. * gcc.dg/ftrapv-1.c: New test case. From-SVN: r82042
2003-11-14libgcc2.c (__negdi2, [...]): Const-ify and/or initialize automatic variables ↵Kaveh R. Ghazi1-144/+76
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-02* libgcc2.c (SYMBOL__MAIN): Provide C90 declaration.John David Anglin1-1/+2
From-SVN: r73191
2003-07-01re PR middle-end/6578 (-ftrapv doesn't catch multiplication overflow)Bruno Haible1-17/+127
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-06-15libgcc2.c: Delete sysV68 L_trampoline section.Kaveh R. Ghazi1-45/+0
* libgcc2.c: Delete sysV68 L_trampoline section. * config/m68k/mot3300-crt0.S: Delete file. * config/m68k/mot3300Mcrt0.S: Likewise. From-SVN: r67965
2003-06-07mklibgcc.in (lib2funcs): Remove _exit.Andreas Jaeger1-75/+0
* 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-04uwin.h: Remove SUBTARGET_PROLOGUE.Andreas Jaeger1-102/+1
* 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-02-09libgcc-std.ver (__clztf2): New.Richard Henderson1-60/+66
* 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-04libgcc2.h, libgcc2.c (__ffsSI2): New.Richard Henderson1-2/+18
* libgcc2.h, libgcc2.c (__ffsSI2): New. (__ffsDI2): Rename from __ffsdi2. * mklibgcc.in (lib2funcs): Add _ffssi2. From-SVN: r62422
2003-02-04libgcc2.c (__paritysi2, [...]): Replace last two reduction rounds with a ↵Richard Henderson1-6/+4
"bit table" lookup. * libgcc2.c (__paritysi2, __paritydi2): Replace last two reduction rounds with a "bit table" lookup. From-SVN: r62421
2003-02-04* libgcc2.c (__subvdi3): Fix typo.Falk Hueffner1-1/+1
From-SVN: r62406
2003-02-03libgcc2.c (__ffsdi2, [...]): Change return type to "int".Richard Henderson1-9/+27
* 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-01libgcc2.c: Include auto-host.h.Richard Henderson1-58/+67
* 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[multiple changes]Richard Henderson1-1/+151
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-01-27Makefile.in (LIB2FUNCS_ST): Remove _gcov.Nathan Sidwell1-439/+0
* 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-18basic-block.h: Fix comment formatting.Kazu Hirata1-3/+3
* 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-17ifcvt.c: Fix comment typos.Kazu Hirata1-2/+2
* 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
2002-12-16Merge basic-improvements-branch to trunkZack Weinberg1-251/+345
From-SVN: r60174
2002-10-23libgcc2.c (__udiv_w_sdiv): Use attribute ((always_inline)) when inlining it ↵Ulrich Weigand1-2/+2
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-21libgcc2.c: Fix __udiv_w_sdiv breakage on platforms that don't define sdiv_qrnnd.Ulrich Weigand1-0/+2
* libgcc2.c: Fix __udiv_w_sdiv breakage on platforms that don't define sdiv_qrnnd. From-SVN: r58393
2002-10-21libgcc2.c: Inline __udiv_w_sdiv when compiling __udivdi3, __divdi3, ↵Ulrich Weigand1-0/+9
__umoddi3, or __moddi3. * libgcc2.c: Inline __udiv_w_sdiv when compiling __udivdi3, __divdi3, __umoddi3, or __moddi3. From-SVN: r58382
2002-10-09* libgcc2.c (__floatdisf): Properly cure double rounding.Alan Modra1-1/+4
From-SVN: r57965
2002-09-08basic-block.h: Fix comment formatting.Kazu Hirata1-3/+3
* 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-08-27* libgcc2.c (__bb_exit_func): Properly write the summarized statistics.Jan Hubicka1-3/+3
From-SVN: r56603
2002-08-14m68k.c (m68k_output_function_prologue, [...]): Delete versions for ↵Kaveh R. Ghazi1-147/+0
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-13libgcc2.c (L_bb): Remove unneeded #includes.Nathan Sidwell1-133/+210
* 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-07-30New target macro DECLARE_LIBRARY_RENAMESBernd Schmidt1-0/+4
From-SVN: r55889
2002-07-21libgcc2.c (__divdi3, __moddi3): Use unary minus operator instead of __negdi2 ↵Hartmut Schirmer1-10/+7
directly. * libgcc2.c (__divdi3, __moddi3): Use unary minus operator instead of __negdi2 directly. From-SVN: r55632
2002-06-17* libgcc2.c: Do not include symcat.h or machmode.h.Jeff Law1-3/+0
From-SVN: r54717
2002-06-10Makefile.in (MACHMODE_H): Add @extra_modes_file@.Zack Weinberg1-0/+1
* Makefile.in (MACHMODE_H): Add @extra_modes_file@. * configure.in: If $srcdir/config/${cpu_type}/${cpu_type}-modes.def exists, substitute its pathname as @extra_modes_file@, define EXTRA_MODES_FILE to be an appropriate string to #include it with, and define EXTRA_CC_MODES to 1. * machmode.def: Update comments. Include EXTRA_MODES_FILE if it's defined. Get rid of redundancy in calling sequence for CC; don't use it to define CCmode, to avoid a warning. * libgcc2.c: Include symcat.h for the sake of machmode.def. * arc-modes.def, arm-modes.def, c4x-modes.def, i386-modes.def, i960-modes.def, ia64-modes.def, m88k-modes.def, mmix-modes.def, pa-modes.def, pdp11-modes.def, rs6000-modes.def, sparc-modes.def: New files. * arc.h, arm.h, c4x.h, i386.h, i960.h, ia64.h, m88k.h, mmix.h, pa.h, pdp11.h, rs6000.h, sparc.h: Don't define EXTRA_CC_MODES. * doc/sourcebuild.texi, doc/tm.texi: Document new scheme for defining extra CC modes. From-SVN: r54478
2002-05-30langhooks.c: Fix formatting.Kazu Hirata1-29/+29
* langhooks.c: Fix formatting. * langhooks.h: Likewise. * lcm.c: Likewise. * libgcc2.c: Likewise. * lists.c: Likewise. * local-alloc.c: Likewise. * loop.c: Likewise. * loop.h: Likewise. From-SVN: r54070
2002-05-19system.h (BLOCK_PROFILER, [...]): Poison.Richard Henderson1-4/+0
* system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE, FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison. * toplev.c (display_help): Kill -a -ax help. * config/1750a/1750a.h, config/alpha/alpha.h, config/clipper/clipper.h, config/dsp16xx/dsp16xx.h, config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h, config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h: (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill. * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill. * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill. * config/i386/i386-protos.h (ix86_output_block_profiler): Kill. (ix86_output_function_block_profiler): Kill. * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill. (m68hc11_function_block_profiler): Kill. * config/m68hc11/m68hc11-protos.h: Update. * config/m88k/m88k.c (output_block_profiler): Kill. (output_function_block_profiler): Kill. * config/m88k/m88k-protos.h: Update. From-SVN: r53617
2002-05-10final.c (end_final): Tidy whitespace.Richard Henderson1-1/+1
* final.c (end_final): Tidy whitespace. Don't honor flag_pack_struct. Convert integers constants as needed. Replace "nwords" field with "sizeof_bb". (final): Save profile data if cfun->arc_profile, not profile_arc_flag. * function.h: Fix typo in comment. * libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb". From-SVN: r53374