From: Mark Mitchell Date: Wed, 24 Jan 2001 19:19:26 +0000 (+0000) Subject: atomicity.h (__compare_and_swap): Remove. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c347e89206c3ab7c8273182339c061a2d849ed23;p=gcc.git atomicity.h (__compare_and_swap): Remove. * config/os/aix/bits/atomicity.h (__compare_and_swap): Remove. (__always_swap): Likewise. From-SVN: r39243 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index e962f278e01..fdd1cff4566 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2001-01-24 Mark Mitchell + + * config/os/aix/bits/atomicity.h (__compare_and_swap): Remove. + (__always_swap): Likewise. + 2001-01-23 Chris Demetriou * libsupc++/exception_support.cc (__terminate_func): Remove diff --git a/libstdc++-v3/config/os/aix/bits/atomicity.h b/libstdc++-v3/config/os/aix/bits/atomicity.h index 14481806c6c..fa8350ab8f7 100644 --- a/libstdc++-v3/config/os/aix/bits/atomicity.h +++ b/libstdc++-v3/config/os/aix/bits/atomicity.h @@ -1,5 +1,5 @@ /* Low-level functions for atomic operations. AIX version. - Copyright (C) 2000 Free Software Foundation, Inc. + Copyright (C) 2000, 2001 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -20,7 +20,14 @@ #ifndef _BITS_ATOMICITY_H #define _BITS_ATOMICITY_H 1 -/* Should this be type long so 64-bit word in 64-bit mode? */ +/* We cannot use the cpu/powerpc/bits/atomicity.h inline assembly + definitions for these operations since they depend on operations + that are not available on the original POWER architecture. AIX + still runs on the POWER architecture, so it would be incorrect to + assume the existence of these instructions. */ + +/* This should match the type pointed to by atomic_p in + . */ typedef int _Atomic_word; #include @@ -39,34 +46,4 @@ __atomic_add (atomic_p __mem, int __val) (void) fetch_and_add (__mem, __val); } -static inline int -__attribute__ ((unused)) -__compare_and_swap (atomic_l __p, long int __oldval, long int __newval) -{ - return compare_and_swaplp (__p, &__oldval, __newval); -} - -static inline long -__attribute__ ((unused)) -__always_swap (atomic_l __p, long int __newval) -{ - long __val = *__p; - - while (! compare_and_swaplp (__p, &__val, __newval)) - /* EMPTY */; - - return __val; -} - -static inline int -__attribute__ ((unused)) -__test_and_set (atomic_l __p, long int __newval) -{ - long __val = 0; - - (void) compare_and_swaplp (__p, &__val, __newval); - - return __val; -} - #endif /* atomicity.h */