[uClibc-cvs] svn commit: trunk/uClibc/libpthread/linuxthreads/sysdeps/arm

vapier at uclibc.org vapier at uclibc.org
Mon Aug 15 03:06:11 UTC 2005


Author: vapier
Date: 2005-08-14 21:06:11 -0600 (Sun, 14 Aug 2005)
New Revision: 11152

Log:
import thumb support from jbowler in Bug 385

Modified:
   trunk/uClibc/libpthread/linuxthreads/sysdeps/arm/pt-machine.h


Changeset:
Modified: trunk/uClibc/libpthread/linuxthreads/sysdeps/arm/pt-machine.h
===================================================================
--- trunk/uClibc/libpthread/linuxthreads/sysdeps/arm/pt-machine.h	2005-08-15 03:04:38 UTC (rev 11151)
+++ trunk/uClibc/libpthread/linuxthreads/sysdeps/arm/pt-machine.h	2005-08-15 03:06:11 UTC (rev 11152)
@@ -39,9 +39,24 @@
 {
   register unsigned int ret;
 
+#if defined(__thumb__)
+  void *pc;
+  __asm__ __volatile__(
+	".align 0\n"
+	"\tbx pc\n"
+	"\tnop\n"
+	"\t.arm\n"
+	"\tswp %0, %2, [%3]\n"
+	"\torr %1, pc, #1\n"
+	"\tbx %1\n"
+	"\t.force_thumb"
+	: "=r"(ret), "=r"(pc)
+	: "0"(1), "r"(spinlock));
+#else
   __asm__ __volatile__("swp %0, %1, [%2]"
 		       : "=r"(ret)
 		       : "0"(1), "r"(spinlock));
+#endif
 
   return ret;
 }




More information about the uClibc-cvs mailing list