From 4a9da7e5c4c1f8aeb281d3fe6d3527564574b2cb Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Fri, 18 Sep 1998 17:18:41 +0000 Subject: [PATCH] NS32K lock patch reversed. --- src/backend/storage/buffer/s_lock.c | 13 +------------ src/include/storage/s_lock.h | 19 +++++++++++++++++-- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/src/backend/storage/buffer/s_lock.c b/src/backend/storage/buffer/s_lock.c index c50c9612bd..a7b42bc479 100644 --- a/src/backend/storage/buffer/s_lock.c +++ b/src/backend/storage/buffer/s_lock.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/storage/buffer/Attic/s_lock.c,v 1.11 1998/09/18 05:36:23 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/storage/buffer/Attic/s_lock.c,v 1.12 1998/09/18 17:18:39 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -118,17 +118,6 @@ success: \n\ #endif /* PPC */ -#if defined(__ns32k__) -int -tas(volatile slock_t *lock) -{ - int res; - __asm__("sbitb 0, %0" : "=m"(*lock)); - __asm__("sprb us, %0" : "=r"(res)); - res = (res >> 5) & 1; - return res; -} -#endif #else /* defined(__GNUC__) */ /*************************************************************************** diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h index 967ec432cd..7b531fda72 100644 --- a/src/include/storage/s_lock.h +++ b/src/include/storage/s_lock.h @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/include/storage/s_lock.h,v 1.48 1998/09/18 05:36:24 momjian Exp $ + * $Header: /cvsroot/pgsql/src/include/storage/s_lock.h,v 1.49 1998/09/18 17:18:41 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -213,7 +213,22 @@ tas(slock_t *s_lock) #endif /* NEED_I386_TAS_ASM */ -/* NS32K code is in s_lock.c */ + +#if defined(NEED_NS32K_TAS_ASM) + +#define S_LOCK(lock) \ +{ \ + slock_t res = 1; \ + while (res) { \ + __asm__("movqd 0, r0"); \ + __asm__("sbitd r0, %0" : "=m"(*lock)); \ + __asm__("sprb us, %0" : "=r" (res)); \ + res = ((res >> 5) & 1); \ + } \ +} + +#endif /* NEED_NS32K_TAS_ASM */ + #endif /* defined(__GNUC__) */