]> granicus.if.org Git - postgresql/commitdiff
Allow NetBSD, m64k to compile the ASM spinlock code.
authorBruce Momjian <bruce@momjian.us>
Sat, 18 Dec 2004 22:12:52 +0000 (22:12 +0000)
committerBruce Momjian <bruce@momjian.us>
Sat, 18 Dec 2004 22:12:52 +0000 (22:12 +0000)
R?mi Zara

src/backend/storage/lmgr/s_lock.c

index 20f40bef9414c0a47a81afe14c0e402617d70ce2..56af61db68a263cf7a737b130010afe9e93a82d6 100644 (file)
@@ -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__ */