[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