aboutsummaryrefslogtreecommitdiff
path: root/nptl
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-03-16 10:16:43 +0000
committerUlrich Drepper <drepper@redhat.com>2003-03-16 10:16:43 +0000
commitb6e2f87a61dd5af7088aab32cd8377c55925354c (patch)
tree22709b176c3ea472461907452fd3033574ef74ef /nptl
parent51d0678c29b8e49e838c85d0ee7e98210a105695 (diff)
downloadglibc-b6e2f87a61dd5af7088aab32cd8377c55925354c.zip
glibc-b6e2f87a61dd5af7088aab32cd8377c55925354c.tar.gz
glibc-b6e2f87a61dd5af7088aab32cd8377c55925354c.tar.bz2
Update.
2003-03-16 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/clock_settime.c (HANDLE_REALTIME): Define tv here, not at function level. * sysdeps/unix/clock_gettime.c (HANDLE_REALTIME): Likewise.
Diffstat (limited to 'nptl')
-rw-r--r--nptl/ChangeLog3
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h28
2 files changed, 24 insertions, 7 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 9219b27..1bafd40 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,5 +1,8 @@
2003-03-16 Ulrich Drepper <drepper@redhat.com>
+ * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Work around red
+ zone versus inline asm stupidity. Use correct instructions.
+
* tst-rwlock6.c: Add some more status output.
2003-03-15 Roland McGrath <roland@redhat.com>
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
index cd233bf..ef3867b 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
@@ -67,7 +67,9 @@ extern int __lll_mutex_unlock_wait (int *__futex) attribute_hidden;
"jne 1f\n\t" \
".subsection 1\n" \
"1:\tleaq %2, %%rsi\n\t" \
- "call __lll_mutex_lock_wait\n\t" \
+ "subq $128, %%rsp\n\t" \
+ "callq __lll_mutex_lock_wait\n\t" \
+ "addq $128, %%rsp\n\t" \
"jmp 2f\n\t" \
".previous\n" \
"2:" \
@@ -84,7 +86,9 @@ extern int __lll_mutex_unlock_wait (int *__futex) attribute_hidden;
".subsection 1\n" \
"1:\tleaq %4, %%rdi\n\t" \
"movq %7, %%rdx\n\t" \
- "call __lll_mutex_timedlock_wait\n\t" \
+ "subq $128, %%rsp\n\t" \
+ "callq __lll_mutex_timedlock_wait\n\t" \
+ "addq $128, %%rsp\n\t" \
"jmp 2f\n\t" \
".previous\n" \
"2:" \
@@ -101,7 +105,9 @@ extern int __lll_mutex_unlock_wait (int *__futex) attribute_hidden;
"jne 1f\n\t" \
".subsection 1\n" \
"1:\tleaq %0, %%rdi\n\t" \
- "call __lll_mutex_unlock_wake\n\t" \
+ "subq $128, %%rsp\n\t" \
+ "callq __lll_mutex_unlock_wake\n\t" \
+ "addq $128, %%rsp\n\t" \
"jmp 2f\n\t" \
".previous\n" \
"2:" \
@@ -152,7 +158,9 @@ extern int lll_unlock_wake_cb (int *__futex) attribute_hidden;
"jne 1f\n\t" \
".subsection 1\n" \
"1:\tleaq %2, %%rsi\n\t" \
- "call __lll_lock_wait\n\t" \
+ "subq $128, %%rsp\n\t" \
+ "callq __lll_lock_wait\n\t" \
+ "addq $128, %%rsp\n\t" \
"jmp 2f\n\t" \
".previous\n" \
"2:" \
@@ -167,7 +175,9 @@ extern int lll_unlock_wake_cb (int *__futex) attribute_hidden;
"jng 1f\n\t" \
".subsection 1\n" \
"1:\tleaq %0, %%rdi\n\t" \
- "call __lll_unlock_wake\n\t" \
+ "subq $128, %%rsp\n\t" \
+ "callq __lll_unlock_wake\n\t" \
+ "addq $128, %%rsp\n\t" \
"jmp 2f\n\t" \
".previous\n" \
"2:" \
@@ -201,7 +211,9 @@ extern int lll_unlock_wake_cb (int *__futex) attribute_hidden;
"jne 1f\n\t" \
".subsection 1\n" \
"1:\tleaq %2, %%rsi\n\t" \
- "call __lll_lock_wait\n\t" \
+ "subq $128, %%rsp\n\t" \
+ "callq __lll_lock_wait\n\t" \
+ "addq $128, %%rsp\n\t" \
"jmp 2f\n\t" \
".previous\n" \
"2:" \
@@ -219,7 +231,9 @@ extern int lll_unlock_wake_cb (int *__futex) attribute_hidden;
"jng 1f\n\t" \
".subsection 1\n" \
"1:\tleaq %0, %%rdi\n\t" \
- "call __lll_unlock_wake\n\t" \
+ "subq $128, %%rsp\n\t" \
+ "callq __lll_unlock_wake\n\t" \
+ "addq $128, %%rsp\n\t" \
"jmp 2f\n\t" \
".previous\n" \
"2:" \