github.com/afumu/libc@v0.0.6/musl/arch/s390x/atomic_arch.h (about)

     1  #define a_cas a_cas
     2  static inline int a_cas(volatile int *p, int t, int s)
     3  {
     4  	__asm__ __volatile__ (
     5  		"cs %0, %2, %1"
     6  		: "+d"(t), "+Q"(*p) : "d"(s) : "memory", "cc");
     7  	return t;
     8  }
     9  
    10  #define a_cas_p a_cas_p
    11  static inline void *a_cas_p(volatile void *p, void *t, void *s)
    12  {
    13  	__asm__ __volatile__ (
    14  		"csg %0, %2, %1"
    15  		: "+d"(t), "+Q"(*(void *volatile *)p) : "d"(s)
    16  		: "memory", "cc");
    17  	return t;
    18  }
    19  
    20  #define a_barrier a_barrier
    21  static inline void a_barrier()
    22  {
    23  	__asm__ __volatile__ ("bcr 15,0" : : : "memory");
    24  }
    25  
    26  #define a_crash a_crash
    27  static inline void a_crash()
    28  {
    29  	__asm__ __volatile__ (".insn e,0");
    30  }