From 08690d06880e5935115a4c083fad83cce101ebc5 Mon Sep 17 00:00:00 2001 From: Bruce Momjian 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__ */