]> rtime.felk.cvut.cz Git - l4.git/blobdiff - l4/pkg/valgrind/src/valgrind-3.6.0-svn/helgrind/tests/annotate_hbefore.c
update
[l4.git] / l4 / pkg / valgrind / src / valgrind-3.6.0-svn / helgrind / tests / annotate_hbefore.c
index 704e4aef02e5faae09510c62f5aac932e0a9fda2..82e32f006a4c2c26c5eb33afdded685ad9ab944e 100644 (file)
@@ -167,6 +167,25 @@ UWord do_acasW ( UWord* addr, UWord expected, UWord nyu )
    return success;
 }
 
+#elif defined(VGA_s390x)
+
+// s390x
+/* return 1 if success, 0 if failure */
+UWord do_acasW(UWord* addr, UWord expected, UWord nyu )
+{
+   int cc;
+
+   __asm__ __volatile__ (
+     "csg %2,%3,%1\n\t"
+     "ipm %0\n\t"
+     "srl %0,28\n\t"
+     : /* out */  "=r" (cc)
+     : /* in */ "Q" (*addr), "d" (expected), "d" (nyu)
+     : "memory", "cc"
+   );
+   return cc == 0;
+}
+
 #endif
 
 void atomic_incW ( UWord* w )