qatomic_s390.h File Reference

Go to the source code of this file.

Defines

#define  Q_ATOMIC_INT_REFERENCE_COUNTING_IS_ALWAYS_NATIVE
#define  Q_ATOMIC_INT_TEST_AND_SET_IS_ALWAYS_NATIVE
#define  Q_ATOMIC_INT_FETCH_AND_STORE_IS_ALWAYS_NATIVE
#define  Q_ATOMIC_INT_FETCH_AND_ADD_IS_ALWAYS_NATIVE
#define  Q_ATOMIC_POINTER_TEST_AND_SET_IS_ALWAYS_NATIVE
#define  Q_ATOMIC_POINTER_FETCH_AND_STORE_IS_ALWAYS_NATIVE
#define  Q_ATOMIC_POINTER_FETCH_AND_ADD_IS_ALWAYS_NATIVE
#define  __GNU_EXTENSION
#define  __CS_LOOP(ptr, op_val, op_string, pre, post)
#define  __CS_OLD_LOOP(ptr, op_val, op_string, pre, post)

Define Documentation

#define Q_ATOMIC_INT_REFERENCE_COUNTING_IS_ALWAYS_NATIVE

Definition at line 49 of file qatomic_s390.h.

#define Q_ATOMIC_INT_TEST_AND_SET_IS_ALWAYS_NATIVE

Definition at line 56 of file qatomic_s390.h.

#define Q_ATOMIC_INT_FETCH_AND_STORE_IS_ALWAYS_NATIVE

Definition at line 63 of file qatomic_s390.h.

#define Q_ATOMIC_INT_FETCH_AND_ADD_IS_ALWAYS_NATIVE

Definition at line 70 of file qatomic_s390.h.

#define Q_ATOMIC_POINTER_TEST_AND_SET_IS_ALWAYS_NATIVE

Definition at line 77 of file qatomic_s390.h.

#define Q_ATOMIC_POINTER_FETCH_AND_STORE_IS_ALWAYS_NATIVE

Definition at line 86 of file qatomic_s390.h.

#define Q_ATOMIC_POINTER_FETCH_AND_ADD_IS_ALWAYS_NATIVE

Definition at line 95 of file qatomic_s390.h.

#define __GNU_EXTENSION

Definition at line 107 of file qatomic_s390.h.

#define __CS_LOOP (   ptr,
  op_val,
  op_string,
  pre,
  post 
)
Value:
__GNU_EXTENSION ({   \
    volatile int old_val, new_val;                  \
        __asm__ __volatile__(pre                                        \
                             "   l     %0,0(%3)\n"                      \
                             "0: lr    %1,%0\n"             \
                             op_string "  %1,%4\n"          \
                             "   cs    %0,%1,0(%3)\n"           \
                             "   jl    0b\n"                \
                             post                                       \
                             : "=&d" (old_val), "=&d" (new_val),    \
                   "=m" (*ptr)  \
                 : "a" (ptr), "d" (op_val),         \
                   "m" (*ptr)   \
                 : "cc", "memory" );            \
    new_val;                            \
})

Definition at line 110 of file qatomic_s390.h.

#define __CS_OLD_LOOP (   ptr,
  op_val,
  op_string,
  pre,
  post 
)
Value:
__GNU_EXTENSION ({ \
    volatile int old_val, new_val;                  \
        __asm__ __volatile__(pre                                        \
                             "   l     %0,0(%3)\n"          \
                             "0: lr    %1,%0\n"             \
                             op_string "  %1,%4\n"          \
                             "   cs    %0,%1,0(%3)\n"           \
                             "   jl    0b\n"                \
                             post                                       \
                             : "=&d" (old_val), "=&d" (new_val),    \
                   "=m" (*ptr)  \
                 : "a" (ptr), "d" (op_val),         \
                   "m" (*ptr)   \
                 : "cc", "memory" );            \
    old_val;                            \
})

Definition at line 127 of file qatomic_s390.h.