mirror of
https://github.com/postgres/postgres.git
synced 2025-07-15 19:21:59 +03:00
Support IBM S/390. Patches from Neale Ferguson@softwareAG-usa.com.
This commit is contained in:
@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/include/storage/s_lock.h,v 1.74 2000/11/28 23:27:57 tgl Exp $
|
||||
* $Header: /cvsroot/pgsql/src/include/storage/s_lock.h,v 1.75 2000/12/03 14:41:42 thomas Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -128,6 +128,29 @@ __asm__("swpb %0, %0, [%3]": "=r"(_res), "=m"(*lock):"0"(_res), "r" (lock));
|
||||
|
||||
#endif /* __arm__ */
|
||||
|
||||
#if defined(__s390__)
|
||||
/*
|
||||
* S/390 Linux
|
||||
*/
|
||||
#define TAS(lock) tas(lock)
|
||||
|
||||
static inline int
|
||||
tas(volatile slock_t *lock)
|
||||
{
|
||||
int _res;
|
||||
|
||||
__asm__ __volatile(" la 1,1\n"
|
||||
" l 2,%2\n"
|
||||
" slr 0,0\n"
|
||||
" cs 0,1,0(2)\n"
|
||||
" lr %1,0"
|
||||
: "=m" (lock), "=d" (_res)
|
||||
: "m" (lock)
|
||||
: "0", "1", "2");
|
||||
|
||||
return (_res);
|
||||
}
|
||||
#endif /* __s390__ */
|
||||
|
||||
|
||||
#if defined(__sparc__)
|
||||
|
Reference in New Issue
Block a user