atomicity.h (__compare_and_swap): Remove.

* config/os/aix/bits/atomicity.h (__compare_and_swap): Remove.
	(__always_swap): Likewise.

From-SVN: r39243
This commit is contained in:
Mark Mitchell 2001-01-24 19:19:26 +00:00 committed by Mark Mitchell
parent 4cfc604201
commit c347e89206
2 changed files with 14 additions and 32 deletions

View File

@ -1,3 +1,8 @@
2001-01-24 Mark Mitchell <mark@codesourcery.com>
* config/os/aix/bits/atomicity.h (__compare_and_swap): Remove.
(__always_swap): Likewise.
2001-01-23 Chris Demetriou <cgd@broadcom.com> 2001-01-23 Chris Demetriou <cgd@broadcom.com>
* libsupc++/exception_support.cc (__terminate_func): Remove * libsupc++/exception_support.cc (__terminate_func): Remove

View File

@ -1,5 +1,5 @@
/* Low-level functions for atomic operations. AIX version. /* 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. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -20,7 +20,14 @@
#ifndef _BITS_ATOMICITY_H #ifndef _BITS_ATOMICITY_H
#define _BITS_ATOMICITY_H 1 #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
<sys/atomic_op.h>. */
typedef int _Atomic_word; typedef int _Atomic_word;
#include <sys/atomic_op.h> #include <sys/atomic_op.h>
@ -39,34 +46,4 @@ __atomic_add (atomic_p __mem, int __val)
(void) fetch_and_add (__mem, __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 */ #endif /* atomicity.h */