2019-01-03 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+ * sysdeps/x86_64/nptl/tls.h (THREAD_ATOMIC_CMPXCHG_VAL,
+ THREAD_ATOMIC_AND, THREAD_ATOMIC_BIT_SET): Remove macros.
+
* debug/tst-backtrace5.c (handle_signal): Avoid cancellable wrappers
in backtrace analysis.
* nptl/tst-cancel4.c (tf_write): Handle cancelled syscall with
}})
-/* Atomic compare and exchange on TLS, returning old value. */
-# define THREAD_ATOMIC_CMPXCHG_VAL(descr, member, newval, oldval) \
- ({ __typeof (descr->member) __ret; \
- __typeof (oldval) __old = (oldval); \
- if (sizeof (descr->member) == 4) \
- asm volatile (LOCK_PREFIX "cmpxchgl %2, %%fs:%P3" \
- : "=a" (__ret) \
- : "0" (__old), "r" (newval), \
- "i" (offsetof (struct pthread, member))); \
- else \
- /* Not necessary for other sizes in the moment. */ \
- abort (); \
- __ret; })
-
-
-/* Atomic logical and. */
-# define THREAD_ATOMIC_AND(descr, member, val) \
- (void) ({ if (sizeof ((descr)->member) == 4) \
- asm volatile (LOCK_PREFIX "andl %1, %%fs:%P0" \
- :: "i" (offsetof (struct pthread, member)), \
- "ir" (val)); \
- else \
- /* Not necessary for other sizes in the moment. */ \
- abort (); })
-
-
-/* Atomic set bit. */
-# define THREAD_ATOMIC_BIT_SET(descr, member, bit) \
- (void) ({ if (sizeof ((descr)->member) == 4) \
- asm volatile (LOCK_PREFIX "orl %1, %%fs:%P0" \
- :: "i" (offsetof (struct pthread, member)), \
- "ir" (1 << (bit))); \
- else \
- /* Not necessary for other sizes in the moment. */ \
- abort (); })
-
-
/* Set the stack guard field in TCB head. */
# define THREAD_SET_STACK_GUARD(value) \
THREAD_SETMEM (THREAD_SELF, header.stack_guard, value)