]> xenbits.xensource.com Git - qemu-xen-4.3-testing.git/commitdiff
alpha support
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Tue, 29 Apr 2003 21:07:28 +0000 (21:07 +0000)
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Tue, 29 Apr 2003 21:07:28 +0000 (21:07 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@111 c046a42c-6fe2-441c-8c8c-71466251a162

exec-i386.c

index b75c6c70a0012b3ebef0a39f62a5fc06b818d234..508d0688245ed2bf634641de1be7a6c4600c7e32 100644 (file)
@@ -102,6 +102,25 @@ static inline int testandset (int *p)
 }
 #endif
 
+#ifdef __alpha__
+int testandset (int *p)
+{
+    int ret;
+    unsigned long one;
+
+    __asm__ __volatile__ ("0:  mov 1,%2\n"
+                         "     ldl_l %0,%1\n"
+                         "     stl_c %2,%1\n"
+                         "     beq %2,1f\n"
+                         ".subsection 2\n"
+                         "1:   br 0b\n"
+                         ".previous"
+                         : "=r" (ret), "=m" (*p), "=r" (one)
+                         : "m" (*p));
+    return ret;
+}
+#endif
+
 int global_cpu_lock = 0;
 
 void cpu_lock(void)