* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_mutex_lock):
	Add ax to clobber list.
	(lll_mutex_cond_lock): Likewise.
	(lll_mutex_unlock): Likewise.
	(lll_lock): Likewise.
	(lll_unlock): Likewise.
This commit is contained in:
Ulrich Drepper 2003-06-18 00:00:50 +00:00
parent f23b30e23b
commit 1d53508d2c
3 changed files with 15 additions and 7 deletions

View file

@ -1,5 +1,12 @@
2003-06-17 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_mutex_lock):
Add ax to clobber list.
(lll_mutex_cond_lock): Likewise.
(lll_mutex_unlock): Likewise.
(lll_lock): Likewise.
(lll_unlock): Likewise.
* Makefile: Add rules to build and run tst-cancel18 and tst-cancelx18.
* tst-cancel18.c: New file.
* tst-cancelx18.c: New file.

View file

@ -364,6 +364,7 @@ CFLAGS-tst-cancelx14.c += -fexceptions
CFLAGS-tst-cancelx15.c += -fexceptions
CFLAGS-tst-cancelx16.c += -fexceptions
CFLAGS-tst-cancelx17.c += -fexceptions
CFLAGS-tst-cancelx18.c += -fexceptions
CFLAGS-tst-cleanupx0.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-tst-cleanupx1.c += -fexceptions -fasynchronous-unwind-tables
CFLAGS-tst-cleanupx2.c += -fexceptions

View file

@ -100,7 +100,7 @@ extern int __lll_mutex_unlock_wait (int *__futex) attribute_hidden;
"2:" \
: "=S" (ignore1), "=&D" (ignore2), "=m" (futex) \
: "0" (1), "2" (futex) \
: "cx", "r11", "cc", "memory"); })
: "ax", "cx", "r11", "cc", "memory"); })
#define lll_mutex_cond_lock(futex) \
@ -118,7 +118,7 @@ extern int __lll_mutex_unlock_wait (int *__futex) attribute_hidden;
"2:" \
: "=S" (ignore1), "=&D" (ignore2), "=m" (futex) \
: "0" (2), "2" (futex) \
: "cx", "r11", "cc", "memory"); })
: "ax", "cx", "r11", "cc", "memory"); })
#define lll_mutex_timedlock(futex, timeout) \
@ -156,7 +156,7 @@ extern int __lll_mutex_unlock_wait (int *__futex) attribute_hidden;
"2:" \
: "=m" (futex), "=&D" (ignore) \
: "0" (futex) \
: "cx", "r11", "cc", "memory"); })
: "ax", "cx", "r11", "cc", "memory"); })
#define lll_mutex_islocked(futex) \
@ -209,7 +209,7 @@ extern int lll_unlock_wake_cb (int *__futex) attribute_hidden;
"2:" \
: "=S" (ignore1), "=&D" (ignore2), "=m" (futex) \
: "0" (-1), "2" (futex) \
: "cx", "r11", "cc", "memory"); })
: "ax", "cx", "r11", "cc", "memory"); })
# define lll_unlock(futex) \
@ -226,7 +226,7 @@ extern int lll_unlock_wake_cb (int *__futex) attribute_hidden;
"2:" \
: "=m" (futex), "=&D" (ignore) \
: "0" (futex) \
: "cx", "r11", "cc", "memory"); })
: "ax", "cx", "r11", "cc", "memory"); })
#else
/* Special versions of the macros for use in libc itself. They avoid
the lock prefix when the thread library is not used.
@ -262,7 +262,7 @@ extern int lll_unlock_wake_cb (int *__futex) attribute_hidden;
"2:" \
: "=S" (ignore1), "=&D" (ignore2), "=m" (futex) \
: "0" (-1), "2" (futex) \
: "cx", "r11", "cc", "memory"); })
: "ax", "cx", "r11", "cc", "memory"); })
# define lll_unlock(futex) \
@ -282,7 +282,7 @@ extern int lll_unlock_wake_cb (int *__futex) attribute_hidden;
"2:" \
: "=m" (futex), "=&D" (ignore) \
: "0" (futex) \
: "cx", "r11", "cc", "memory"); })
: "ax", "cx", "r11", "cc", "memory"); })
#endif