diff options
Diffstat (limited to 'toolchain/uClibc/uClibc-0.9.30.3-xtensa-009-testandset.patch')
| -rw-r--r-- | toolchain/uClibc/uClibc-0.9.30.3-xtensa-009-testandset.patch | 59 | 
1 files changed, 0 insertions, 59 deletions
diff --git a/toolchain/uClibc/uClibc-0.9.30.3-xtensa-009-testandset.patch b/toolchain/uClibc/uClibc-0.9.30.3-xtensa-009-testandset.patch deleted file mode 100644 index f0e4eb272..000000000 --- a/toolchain/uClibc/uClibc-0.9.30.3-xtensa-009-testandset.patch +++ /dev/null @@ -1,59 +0,0 @@ ---- uClibc-0.9.29/libpthread/linuxthreads.old/sysdeps/xtensa/pt-machine.h.orig	2008-09-12 09:51:50.000000000 -0700 -+++ uClibc-0.9.29/libpthread/linuxthreads.old/sysdeps/xtensa/pt-machine.h	2008-10-04 12:14:57.000000000 -0700 -@@ -26,19 +26,51 @@ - #include <asm/unistd.h> -  - #ifndef PT_EI --# define PT_EI __extern_always_inline -+# define PT_EI extern inline __attribute__ ((gnu_inline)) - #endif -  --/* Memory barrier.  */ - #define MEMORY_BARRIER() __asm__ ("memw" : : : "memory") -+#define HAS_COMPARE_AND_SWAP -+ -+extern long int testandset (int *spinlock); -+extern int __compare_and_swap (long int *p, long int oldval, long int newval); -  - /* Spinlock implementation; required.  */ - PT_EI long int - testandset (int *spinlock) - { --  int unused = 0; --  return INTERNAL_SYSCALL (xtensa, , 4, SYS_XTENSA_ATOMIC_SET, --			   spinlock, 1, unused); -+	unsigned long tmp; -+	__asm__ volatile ( -+"	movi	%0, 0			\n" -+"	wsr	%0, SCOMPARE1		\n" -+"	movi	%0, 1			\n" -+"	s32c1i	%0, %1, 0		\n" -+	: "=&a" (tmp) -+	: "a" (spinlock) -+	: "memory" -+	); -+	return tmp; -+} -+ -+PT_EI int -+__compare_and_swap (long int *p, long int oldval, long int newval) -+{ -+        unsigned long tmp; -+        unsigned long value; -+        __asm__ volatile ( -+"1:     l32i    %0, %2, 0            \n" -+"       bne     %0, %4, 2f           \n" -+"       wsr     %0, SCOMPARE1        \n" -+"       mov     %1, %0               \n" -+"       mov     %0, %3               \n" -+"       s32c1i  %0, %2, 0            \n" -+"       bne     %1, %0, 1b           \n" -+"2:                                  \n" -+          : "=&a" (tmp), "=&a" (value) -+          : "a" (p), "a" (newval), "a" (oldval) -+          : "memory" ); -+ -+        return tmp == oldval; - } -  - /* Get some notion of the current stack.  Need not be exactly the top  | 
