diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-04-20 04:54:11 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-04-20 04:54:11 +0000 |
commit | 87121034113f8b3bb96db325d3260d806f4e103a (patch) | |
tree | 4acdd6c4898d643fa0b840941a2d12315366ec66 /gcc/testsuite/gcc.dg/ia64-sync-3.c | |
parent | 039f212de27c41c806d96f52be4b534138dbfc10 (diff) | |
download | gcc-87121034113f8b3bb96db325d3260d806f4e103a.tar.gz |
* builtins.c (expand_builtin_sync_operation): Revert last change.
* optabs.c (expand_bool_compare_and_swap): Compare vs old value,
not vs new value.
(expand_compare_and_swap_loop): Likewise.
(expand_sync_operation): Remove fallback from NAND to AND; invert
memory operand when expanding from cmpxchg.
(expand_sync_fetch_operation): Likewise.
* doc/extend.texi (Atomic Builtins): Fix docs for nand and
compare-and-swap.
* config/alpha/alpha.c (alpha_split_atomic_op): Invert memory operand
when implementing NAND. Fix double-add for AFTER.
* config/alpha/sync.md (sync_nand<I48MODE>): Invert memory operand.
(sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
(sync_compare_and_swap<I48MODE>): Fix compare vs zero. Return old
memory value.
(sync_lock_test_and_set<I48MODE>): Remove extra label and last
memory barrier.
* config/i386/sync.md (sync_compare_and_swap<IMODE>): Fix pattern
to return old memory value.
(sync_compare_and_swap_cc<IMODE>): Likewise.
* config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Early
return pre-reload. Don't consider output or anti dependencies.
* config/ia64/sync.md (IMODE): New.
(modesuffix): Add QI and HI.
(memory_barrier): Simplify expansion.
(sync_compare_and_swap<IMODE>): Use IMODE, not I48MODE.
(cmpxchg_acq_<IMODE>): Likewise.
(sync_lock_test_and_set<IMODE>): Likewise.
(sync_lock_release<IMODE>): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98436 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gcc.dg/ia64-sync-3.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/ia64-sync-3.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/testsuite/gcc.dg/ia64-sync-3.c b/gcc/testsuite/gcc.dg/ia64-sync-3.c index c2772f759b6..46f6294aac2 100644 --- a/gcc/testsuite/gcc.dg/ia64-sync-3.c +++ b/gcc/testsuite/gcc.dg/ia64-sync-3.c @@ -1,10 +1,11 @@ -/* { dg-do run { target ia64-*-* } } */ +/* { dg-do run } */ +/* { dg-require-effective-target sync_int_long } */ /* { dg-options } */ +/* { dg-options "-march=i486" { target i?86-*-* } } */ +/* { dg-options "-march=i486" { target { x86_64-*-* && ilp32 } } } */ /* Test basic functionality of the intrinsics. */ -#include <ia64intrin.h> - extern void abort (void); extern void *memcpy (void *, const void *, __SIZE_TYPE__); |