From af612503bc09303d4f648d774ce01840dd57adb0 Mon Sep 17 00:00:00 2001 From: David McCullough Date: Tue, 17 Sep 2002 02:08:25 +0000 Subject: Fixup thread support for the 5200/5307 coldfire platforms. --- libpthread/linuxthreads/sysdeps/m68k/pt-machine.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'libpthread/linuxthreads') diff --git a/libpthread/linuxthreads/sysdeps/m68k/pt-machine.h b/libpthread/linuxthreads/sysdeps/m68k/pt-machine.h index 38ea68114..644bc2f0c 100644 --- a/libpthread/linuxthreads/sysdeps/m68k/pt-machine.h +++ b/libpthread/linuxthreads/sysdeps/m68k/pt-machine.h @@ -30,7 +30,12 @@ testandset (int *spinlock) { char ret; - __asm__ __volatile__("tas %1; sne %0" + __asm__ __volatile__( +#ifdef __mcf5200__ + "bset #7,%1; sne %0" +#else + "tas %1; sne %0" +#endif : "=dm"(ret), "=m"(*spinlock) : "m"(*spinlock) : "cc"); @@ -47,6 +52,7 @@ register char * stack_pointer __asm__ ("%sp"); /* Compare-and-swap for semaphores. */ +#ifndef __mcf5200__ #define HAS_COMPARE_AND_SWAP PT_EI int __compare_and_swap (long int *p, long int oldval, long int newval) @@ -60,3 +66,5 @@ __compare_and_swap (long int *p, long int oldval, long int newval) return ret; } +#endif + -- cgit v1.2.3