From 08690d06880e5935115a4c083fad83cce101ebc5 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Sat, 18 Dec 2004 22:12:52 +0000
Subject: [PATCH] Allow NetBSD, m64k to compile the ASM spinlock code.

R?mi Zara
---
 src/backend/storage/lmgr/s_lock.c | 27 +++++++++++++++++++++------
 1 file changed, 21 insertions(+), 6 deletions(-)

diff --git a/src/backend/storage/lmgr/s_lock.c b/src/backend/storage/lmgr/s_lock.c
index 20f40bef94..56af61db68 100644
--- a/src/backend/storage/lmgr/s_lock.c
+++ b/src/backend/storage/lmgr/s_lock.c
@@ -9,7 +9,7 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/backend/storage/lmgr/s_lock.c,v 1.32 2004/08/30 23:47:20 tgl Exp $
+ *	  $PostgreSQL: pgsql/src/backend/storage/lmgr/s_lock.c,v 1.33 2004/12/18 22:12:52 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -136,12 +136,26 @@ s_lock(volatile slock_t *lock, const char *file, int line)
 
 
 #if defined(__m68k__)
+/* really means: extern int tas(slock_t* **lock); */
 static void
-tas_dummy()						/* really means: extern int tas(slock_t
-								 * **lock); */
+tas_dummy()
 {
 	__asm__		__volatile__(
-										 "\
+#if defined(__NetBSD__) && defined(__ELF__)
+/* no underscore for label and % for registers */
+										"\
+.global		tas 				\n\
+tas:							\n\
+			movel	%sp@(0x4),%a0	\n\
+			tas 	%a0@		\n\
+			beq 	_success	\n\
+			moveq	#-128,%d0	\n\
+			rts 				\n\
+_success:						\n\
+			moveq	#0,%d0		\n\
+			rts 				\n"
+#else
+										"\
 .global		_tas				\n\
 _tas:							\n\
 			movel	sp@(0x4),a0	\n\
@@ -151,8 +165,9 @@ _tas:							\n\
 			rts					\n\
 _success:						\n\
 			moveq 	#0,d0		\n\
-			rts					\n\
-");
+			rts					\n"
+#endif   /* __NetBSD__ && __ELF__ */
+);
 }
 #endif   /* __m68k__ */
 
-- 
2.40.0