1. 15 Apr, 2005 28 commits
  2. 14 Apr, 2005 12 commits
    • ia64.h (enum fetchop_code): Remove. · af795c3c
              * config/ia64/ia64.h (enum fetchop_code): Remove.
              (enum ia64_builtins): Move ...
              * config/ia64/ia64.c (enum ia64_builtins): ... here.  Remove all
              members except BSP and FLUSHRS.
              (ia64_init_builtins): Remove __sync builtins.
              (ia64_expand_builtin): Likewise.
              (ia64_expand_fetch_and_op, ia64_expand_op_and_fetch): Remove.
              (ia64_expand_compare_and_swap, ia64_expand_lock_test_and_set): Remove.
              (ia64_expand_lock_release): Remove.
              * config/ia64/ia64.md (mf): Move to sync.md.
              (mf_internal, fetchadd_acq_si, fetchadd_acq_di, cmpxchg_acq_si,
              cmpxchg_acq_di, xchgsi, xchgdi): Likewise.
              * config/ia64/sync.md: New file.
              (memory_barrier): Rename from mf.
              (fetchadd_acq_<I48MODE>): Macroize from _si/_di patterns.
              (cmpxchg_acq_<I48MODE>): Likewise.
              (sync_lock_test_and_set<I48MODE>): Likewise.
      
              * config/ia64/ia64intrin.h: Define nothing for C; limit #defines
              to c++.  Remove __sync* declarations.  s/_si/_4/.  s/_di/_8/.
      
      From-SVN: r98156
      Richard Henderson committed
    • i386.c (x86_cmpxchg, x86_xadd): New. · 1ef45b77
              * config/i386/i386.c (x86_cmpxchg, x86_xadd): New.
              (ix86_compare_emitted): New.
              (ix86_expand_compare): Use ix86_compare_emitted if set.
              (ix86_expand_setcc): Only emit REG_EQUAL if both ix86_compare_op0
              and ix86_compare_op0 are set.
              * config/i386/i386.h (x86_cmpxchg, x86_xadd): Declare.
              (TARGET_CMPXCHG, TARGET_XADD): New.
              (ix86_compare_emitted): Declare.
              * config/i386/i386.md: Include sync.md
              (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2): New.
              (UNSPECV_XCHG, UNSPECV_LOCK): New.
              * config/i386/sync.md: New file.
      
      From-SVN: r98155
      Richard Henderson committed
    • re PR middle-end/14311 (builtins for atomic operations needed) · 48ae6c13
      	PR middle-end/14311
      	* builtin-types.def (BT_BOOL, BT_VOLATILE_PTR, BT_I1, BT_I2,
      	BT_I4, BT_I8, BT_FN_VOID_VPTR, BT_FN_I1_VPTR_I1, BT_FN_I2_VPTR_I2,
      	BT_FN_I4_VPTR_I4, BT_FN_I8_VPTR_I8, BT_FN_BOOL_VPTR_I1_I1,
      	BT_FN_BOOL_VPTR_I2_I2, BT_FN_BOOL_VPTR_I4_I4, BT_FN_BOOL_VPTR_I8_I8,
      	BT_FN_I1_VPTR_I1_I1, BT_FN_I2_VPTR_I2_I2, BT_FN_I4_VPTR_I4_I4,
      	BT_FN_I8_VPTR_I8_I8): New.
      	* builtins.def (DEF_SYNC_BUILTIN): New.
      	(BUILT_IN_FETCH_AND_ADD_N, BUILT_IN_FETCH_AND_ADD_1,
      	BUILT_IN_FETCH_AND_ADD_2, BUILT_IN_FETCH_AND_ADD_4,
      	BUILT_IN_FETCH_AND_ADD_8, BUILT_IN_FETCH_AND_SUB_N,
      	BUILT_IN_FETCH_AND_SUB_1, BUILT_IN_FETCH_AND_SUB_2,
      	BUILT_IN_FETCH_AND_SUB_4, BUILT_IN_FETCH_AND_SUB_8,
      	BUILT_IN_FETCH_AND_OR_N, BUILT_IN_FETCH_AND_OR_1,
      	BUILT_IN_FETCH_AND_OR_2, BUILT_IN_FETCH_AND_OR_4,
      	BUILT_IN_FETCH_AND_OR_8, BUILT_IN_FETCH_AND_AND_N,
      	BUILT_IN_FETCH_AND_AND_1, BUILT_IN_FETCH_AND_AND_2,
      	BUILT_IN_FETCH_AND_AND_4, BUILT_IN_FETCH_AND_AND_8,
      	BUILT_IN_FETCH_AND_XOR_N, BUILT_IN_FETCH_AND_XOR_1,
      	BUILT_IN_FETCH_AND_XOR_2, BUILT_IN_FETCH_AND_XOR_4,
      	BUILT_IN_FETCH_AND_XOR_8, BUILT_IN_FETCH_AND_NAND_N,
      	BUILT_IN_FETCH_AND_NAND_1, BUILT_IN_FETCH_AND_NAND_2,
      	BUILT_IN_FETCH_AND_NAND_4, BUILT_IN_FETCH_AND_NAND_8,
      	BUILT_IN_ADD_AND_FETCH_N, BUILT_IN_ADD_AND_FETCH_1,
      	BUILT_IN_ADD_AND_FETCH_2, BUILT_IN_ADD_AND_FETCH_4,
      	BUILT_IN_ADD_AND_FETCH_8, BUILT_IN_SUB_AND_FETCH_N,
      	BUILT_IN_SUB_AND_FETCH_1, BUILT_IN_SUB_AND_FETCH_2,
      	BUILT_IN_SUB_AND_FETCH_4, BUILT_IN_SUB_AND_FETCH_8,
      	BUILT_IN_OR_AND_FETCH_N, BUILT_IN_OR_AND_FETCH_1,
      	BUILT_IN_OR_AND_FETCH_2, BUILT_IN_OR_AND_FETCH_4,
      	BUILT_IN_OR_AND_FETCH_8, BUILT_IN_AND_AND_FETCH_N,
      	BUILT_IN_AND_AND_FETCH_1, BUILT_IN_AND_AND_FETCH_2,
      	BUILT_IN_AND_AND_FETCH_4, BUILT_IN_AND_AND_FETCH_8,
      	BUILT_IN_XOR_AND_FETCH_N, BUILT_IN_XOR_AND_FETCH_1,
      	BUILT_IN_XOR_AND_FETCH_2, BUILT_IN_XOR_AND_FETCH_4,
      	BUILT_IN_XOR_AND_FETCH_8, BUILT_IN_NAND_AND_FETCH_N,
      	BUILT_IN_NAND_AND_FETCH_1, BUILT_IN_NAND_AND_FETCH_2,
      	BUILT_IN_NAND_AND_FETCH_4, BUILT_IN_NAND_AND_FETCH_8,
      	BUILT_IN_BOOL_COMPARE_AND_SWAP_N, BUILT_IN_BOOL_COMPARE_AND_SWAP_1,
      	BUILT_IN_BOOL_COMPARE_AND_SWAP_2, BUILT_IN_BOOL_COMPARE_AND_SWAP_4,
      	BUILT_IN_BOOL_COMPARE_AND_SWAP_8, BUILT_IN_VAL_COMPARE_AND_SWAP_N,
      	BUILT_IN_VAL_COMPARE_AND_SWAP_1, BUILT_IN_VAL_COMPARE_AND_SWAP_2,
      	BUILT_IN_VAL_COMPARE_AND_SWAP_4, BUILT_IN_VAL_COMPARE_AND_SWAP_8,
      	BUILT_IN_LOCK_TEST_AND_SET_N, BUILT_IN_LOCK_TEST_AND_SET_1,
      	BUILT_IN_LOCK_TEST_AND_SET_2, BUILT_IN_LOCK_TEST_AND_SET_4,
      	BUILT_IN_LOCK_TEST_AND_SET_8, BUILT_IN_LOCK_RELEASE_N,
      	BUILT_IN_LOCK_RELEASE_1, BUILT_IN_LOCK_RELEASE_2,
      	BUILT_IN_LOCK_RELEASE_4, BUILT_IN_LOCK_RELEASE_8,
      	BUILT_IN_SYNCHRONIZE: New.
      	* builtins.c (called_as_built_in): Rewrite from CALLED_AS_BUILT_IN
      	as a function.  Accept __sync_ as a prefix as well.
      	(expand_builtin_sync_operation, expand_builtin_compare_and_swap,
      	expand_builtin_lock_test_and_set, expand_builtin_synchronize,
      	expand_builtin_lock_release): New.
      	(expand_builtin): Call them.
      	* c-common.c (DEF_BUILTIN): Don't require __builtin_ prefix if
      	neither BOTH_P nor FALLBACK_P are defined.
      	(builtin_type_for_size): New.
      	(sync_resolve_size, sync_resolve_params, sync_resolve_return): New.
      	(resolve_overloaded_builtin): New.
      	* c-common.h (resolve_overloaded_builtin): Declare.
      	(builtin_type_for_size): Declare.
      	* c-typeck.c (build_function_call): Invoke resolve_overloaded_builtin.
      	* expr.c (sync_add_optab, sync_sub_optab, sync_ior_optab,
      	sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab,
      	sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab,
      	sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab,
      	sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab,
      	sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap,
      	sync_compare_and_swap_cc, sync_lock_test_and_set,
      	sync_lock_release): New.
      	* optabs.h: Declare them.
      	* expr.h (expand_val_compare_and_swap, expand_bool_compare_and_swap,
      	expand_sync_operation, expand_sync_fetch_operation,
      	expand_sync_lock_test_and_set): Declare.
      	* genopinit.c (optabs): Add sync optabs.
      	* optabs.c (init_optabs): Initialize sync optabs.
      	(expand_val_compare_and_swap_1, expand_val_compare_and_swap,
      	expand_bool_compare_and_swap, expand_compare_and_swap_loop,
      	expand_sync_operation, expand_sync_fetch_operation,
      	expand_sync_lock_test_and_set): New.
      	* doc/extend.texi (Atomic Builtins): New section
      	* doc/md.texi (Standard Names): Add sync patterns.
      
      From-SVN: r98154
      Richard Henderson committed
    • tree-eh.c (lower_try_finally_copy): Generate new code in response to goto_queue entries as if... · dd58eb5a
      * tree-eh.c (lower_try_finally_copy): Generate new code in
      response to goto_queue entries as if the queue was sorted by
      index, not pointers.
      (lower_try_finally_switch): Likewise.
      
      From-SVN: r98149
      Alexandre Oliva committed
    • re PR testsuite/21010 (New gcc.dg/vect tests fail) · b67af20b
      	PR testsuite/21010
      	* gcc.dg/vect/vect-ifcvt-1.c: Remove dg-do, add cleanup.
      	* gcc.dg/vect/vect-ifcvt-2.c: Ditto.
      	* gcc.dg/vect/vect-ifcvt-3.c: Ditto.
      	* gcc.dg/vect/vect-ifcvt-4.c: Ditto.
      	* gcc.dg/vect/vect-ifcvt-5.c: Ditto.
      	* gcc.dg/vect/vect-ifcvt-6.c: Ditto.
      	* gcc.dg/vect/vect-ifcvt-7.c: Ditto.
      	* gcc.dg/vect/vect-ifcvt-9.c: Ditto.
      
      From-SVN: r98148
      Janis Johnson committed
    • i386.c (ix86_expand_sse_cmp): Split out from ... · ae46a07a
              * config/i386/i386.c (ix86_expand_sse_cmp): Split out from ...
              (ix86_expand_sse_movcc): ... here.  Take cmp as a pre-computed
              register.
              (ix86_expand_fp_movcc): Update to match.
              (ix86_expand_fp_vcond, ix86_expand_int_vcond): New.
              * config/i386/i386-protos.h: Update.
              * config/i386/sse.md (vcondv4sf, vcondv2df): New.
              (vcond<SSEMODE124>, vcondu<SSEMODE12>): New.
      
              * lib/target-supports.exp (check_effective_target_vect_condition):
              Add ia64, i?86, and x86_64.
      
      From-SVN: r98146
      Richard Henderson committed
    • cpp.texi, [...]: Change references to GCC 3.5 to refer to 4.0. · 25f710ba
      	* doc/cpp.texi, doc/install.texi: Change references to GCC 3.5 to
      	refer to 4.0.
      
      From-SVN: r98144
      Joseph Myers committed
    • * Revert patch from 2005-04-13. · 07b12652
      From-SVN: r98143
      Julian Brown committed
    • * gfortran.dg/underflow.f90: Use tiny(x)/huge(x). · ab13f408
      From-SVN: r98142
      Steven G. Kargl committed
    • gfortran.h (gfc_real_info): Add subnormal struct member. · 2d0aa65f
      * gfortran.h (gfc_real_info): Add subnormal struct member.
      * arith.c (gfc_arith_init_1): Set it.
        (gfc_check_real_range): Use it.
      * simplify.c (gfc_simplify_nearest): Fix nearest(0.,1.).
      
      From-SVN: r98141
      Steven G. Kargl committed
    • config.gcc: Set cpu_type for s390. · 6cecb0aa
      2005-04-14  Andreas Krebbel  <krebbel1@de.ibm.com>
      
      	* config.gcc: Set cpu_type for s390.
      
      From-SVN: r98140
      Andreas Krebbel committed