This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
gcc gcc/ChangeLog.gomp gcc/fortran/ChangeLog.g ...
- From: jakub at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: 10 Oct 2005 21:42:20 -0000
- Subject: gcc gcc/ChangeLog.gomp gcc/fortran/ChangeLog.g ...
CVSROOT: /cvs/gcc
Module name: gcc
Branch: gomp-20050608-branch
Changes by: jakub@gcc.gnu.org 2005-10-10 21:42:20
Modified files:
gcc : ChangeLog.gomp
gcc/fortran : ChangeLog.gomp
libgomp : ChangeLog
gcc : builtin-types.def builtins.c c-common.c
sync-builtins.def gimplify.c
gcc/fortran : types.def
gcc/config/i386: i386.h sync.md i386.c
Added files:
libgomp/testsuite/libgomp.dg: atomic-2.c atomic-1.c
Log message:
* config/i386/i386.h (x86_cmpxchg8b, x86_cmpxchg16b): New decls.
(TARGET_CMPXCHG8B, TARGET_CMPXCHG16B): Define.
* config/i386/i386.c (x86_cmpxchg8b, x86_cmpxchg16b): New variables.
* config/i386/sync.md (CASMODE, DCASMODE): New mode macros.
(doublemodesuffix, DCASHMODE): New mode attrs.
(sync_compare_and_swap<mode>): Change into expand, use CASMODE
instead of IMODE, if mode is wider than a word, expand into
sync_double_compare_and_swap*.
(*sync_compare_and_swap<mode>): New insn.
(sync_double_compare_and_swap<mode>): Likewise.
(*sync_double_compare_and_swapdi_pic): Likewise.
(sync_compare_and_swap_cc<mode>): Use CASMODE instead of IMODE, if
mode is wider than a word, expand into
sync_double_compare_and_swap_cc*.
(sync_double_compare_and_swap_cc<mode>): New insn.
(*sync_double_compare_and_swap_ccdi_pic): Likewise.
* sync-builtins.def (BUILT_IN_FETCH_AND_ADD_16,
BUILT_IN_FETCH_AND_SUB_16, BUILT_IN_FETCH_AND_OR_16,
BUILT_IN_FETCH_AND_AND_16, BUILT_IN_FETCH_AND_XOR_16,
BUILT_IN_FETCH_AND_NAND_16, BUILT_IN_ADD_AND_FETCH_16,
BUILT_IN_SUB_AND_FETCH_16, BUILT_IN_OR_AND_FETCH_16,
BUILT_IN_AND_AND_FETCH_16, BUILT_IN_XOR_AND_FETCH_16,
BUILT_IN_NAND_AND_FETCH_16, BUILT_IN_BOOL_COMPARE_AND_SWAP_16,
BUILT_IN_VAL_COMPARE_AND_SWAP_16, BUILT_IN_LOCK_TEST_AND_SET_16,
BUILT_IN_LOCK_RELEASE_16): New builtins.
* builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
* builtins.c (get_builtin_sync_mode): Use 0 as last argument to
mode_for_size.
(expand_builtin): Handle sync BUILT_IN_*_16 builtins.
* c-common.c (sync_resolve_size): Handle also 128 bit sync builtins.
* gimplify.c (gimplify_omp_atomic): Also support 128 bit atomic.
Only use __sync_* builtins if memory is sufficiently aligned.
fortran/
* types.def (BT_I16, BT_FN_I16_VPTR_I16,
BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
libgomp/
* testsuite/libgomp.dg/atomic-1.c: New test.
* testsuite/libgomp.dg/atomic-2.c: New test.
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.gomp.diff?cvsroot=gcc&only_with_tag=gomp-20050608-branch&r1=1.1.6.70&r2=1.1.6.71
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/ChangeLog.gomp.diff?cvsroot=gcc&only_with_tag=gomp-20050608-branch&r1=1.1.2.15&r2=1.1.2.16
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgomp/ChangeLog.diff?cvsroot=gcc&only_with_tag=gomp-20050608-branch&r1=1.1.6.26&r2=1.1.6.27
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgomp/testsuite/libgomp.dg/atomic-2.c.diff?cvsroot=gcc&only_with_tag=gomp-20050608-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgomp/testsuite/libgomp.dg/atomic-1.c.diff?cvsroot=gcc&only_with_tag=gomp-20050608-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/builtin-types.def.diff?cvsroot=gcc&only_with_tag=gomp-20050608-branch&r1=1.31.4.4&r2=1.31.4.5
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/builtins.c.diff?cvsroot=gcc&only_with_tag=gomp-20050608-branch&r1=1.462.4.6&r2=1.462.4.7
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/c-common.c.diff?cvsroot=gcc&only_with_tag=gomp-20050608-branch&r1=1.634.4.8&r2=1.634.4.9
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/sync-builtins.def.diff?cvsroot=gcc&only_with_tag=gomp-20050608-branch&r1=1.1.2.1&r2=1.1.2.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/gimplify.c.diff?cvsroot=gcc&only_with_tag=gomp-20050608-branch&r1=2.135.4.28&r2=2.135.4.29
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/types.def.diff?cvsroot=gcc&only_with_tag=gomp-20050608-branch&r1=1.1.2.2&r2=1.1.2.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.h.diff?cvsroot=gcc&only_with_tag=gomp-20050608-branch&r1=1.437.4.4&r2=1.437.4.5
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/sync.md.diff?cvsroot=gcc&only_with_tag=gomp-20050608-branch&r1=1.2.8.1&r2=1.2.8.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.c.diff?cvsroot=gcc&only_with_tag=gomp-20050608-branch&r1=1.826.4.7&r2=1.826.4.8