Pārlūkot izejas kodu

Fixup thread support for the 5200/5307 coldfire platforms.

David McCullough 21 gadi atpakaļ
vecāks
revīzija
af612503bc
1 mainītis faili ar 9 papildinājumiem un 1 dzēšanām
  1. 9 1
      libpthread/linuxthreads/sysdeps/m68k/pt-machine.h

+ 9 - 1
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
+