a9164c7803a2fab7b99e45e0b4b585efa23a8798
[cacao.git] / src / vm / jit / s390 / machine-instr.h
1 #ifndef _MACHINE_INSTR_H
2 #define _MACHINE_INSTR_H
3
4 static inline void
5 __attribute__ ((unused))
6 atomic_add (volatile int *mem, int val)
7 {
8 #if 0
9   __asm__ __volatile__ ("lock; addl %1,%0"
10                                                 : "=m" (*mem) 
11                                                 : "ir" (val), "m" (*mem));
12 #endif
13 }
14
15 static inline long
16 __attribute__ ((unused))
17 compare_and_swap (volatile long *p, long oldval, long newval)
18 {
19 #if 0
20   long ret;
21
22   __asm__ __volatile__ ("lock; cmpxchgq %2, %1"
23                         : "=a" (ret), "=m" (*p)
24                         : "r" (newval), "m" (*p), "0" (oldval));
25   return ret;
26 #endif
27 }
28
29 #if 0
30 #define STORE_ORDER_BARRIER() __asm__ __volatile__ ("" : : : "memory");
31 #define MEMORY_BARRIER_BEFORE_ATOMIC() __asm__ __volatile__ ("" : : : "memory");
32 #define MEMORY_BARRIER_AFTER_ATOMIC() __asm__ __volatile__ ("" : : : "memory");
33 #define MEMORY_BARRIER() __asm__ __volatile__ ( \
34                 "mfence" : : : "memory" )
35 #endif
36
37 #define STORE_ORDER_BARRIER()
38 #define MEMORY_BARRIER_BEFORE_ATOMIC()
39 #define MEMORY_BARRIER_AFTER_ATOMIC()
40 #define MEMORY_BARRIER()
41
42 #endif