99 *
1010 *
1111 * IDENTIFICATION
12- * $PostgreSQL: pgsql/src/backend/storage/lmgr/s_lock.c,v 1.32 2004/08/30 23:47:20 tgl Exp $
12+ * $PostgreSQL: pgsql/src/backend/storage/lmgr/s_lock.c,v 1.33 2004/12/18 22:12:52 momjian Exp $
1313 *
1414 *-------------------------------------------------------------------------
1515 */
@@ -136,12 +136,26 @@ s_lock(volatile slock_t *lock, const char *file, int line)
136136
137137
138138#if defined(__m68k__ )
139+ /* really means: extern int tas(slock_t* **lock); */
139140static void
140- tas_dummy ()/* really means: extern int tas(slock_t
141- * **lock); */
141+ tas_dummy ()
142142{
143143__asm____volatile__(
144- "\
144+ #if defined(__NetBSD__ )&& defined(__ELF__ )
145+ /* no underscore for label and % for registers */
146+ "\
147+ .globaltas \n\
148+ tas:\n\
149+ movel%sp@(0x4),%a0\n\
150+ tas %a0@\n\
151+ beq _success\n\
152+ moveq#-128,%d0\n\
153+ rts \n\
154+ _success:\n\
155+ moveq#0,%d0\n\
156+ rts \n"
157+ #else
158+ "\
145159.global_tas\n\
146160_tas:\n\
147161movelsp@(0x4),a0\n\
@@ -151,8 +165,9 @@ _tas:\n\
151165rts\n\
152166_success:\n\
153167moveq #0,d0\n\
154- rts\n\
155- " );
168+ rts\n"
169+ #endif /* __NetBSD__ && __ELF__ */
170+ );
156171}
157172#endif /* __m68k__ */
158173