summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2009-01-03 20:36:44 +0000
committerUlrich Drepper <drepper@redhat.com>2009-01-03 20:36:44 +0000
commitb2bcd249bf2ada6ad1212c91e4a152b5366b6fd8 (patch)
treeeb971dc35663c93ca43eab254dcc9432fc45e844
parentcbd8aeb836c8061c23a5e00419e0fb25a34abee7 (diff)
* sysdeps/unix/sysv/linux/i386/sysdep.h: Describe 6th argument
handling.
-rw-r--r--ChangeLog5
-rw-r--r--nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S4
-rw-r--r--sysdeps/unix/sysv/linux/i386/sysdep.h4
3 files changed, 10 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 9bc0afced4..c553c8102d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-01-03 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/unix/sysv/linux/i386/sysdep.h: Describe 6th argument
+ handling.
+
2009-01-02 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/kernel-features.h
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
index 72c3858238..8de9cf461a 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
@@ -170,8 +170,8 @@ __lll_timedlock_wait:
# endif
pushq %r9
- cfi_adjust_cfa_offset(9)
- cfi_offset(%r9, -16)
+ cfi_adjust_cfa_offset(8)
+ cfi_rel_offset(%r9, 0)
movq %rdx, %r10
movl $0xffffffff, %r9d
LOAD_FUTEX_WAIT_ABS (%esi)
diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.h b/sysdeps/unix/sysv/linux/i386/sysdep.h
index 89d5b12043..77e6bad105 100644
--- a/sysdeps/unix/sysv/linux/i386/sysdep.h
+++ b/sysdeps/unix/sysv/linux/i386/sysdep.h
@@ -204,9 +204,11 @@
arg 3 %edx call-clobbered
arg 4 %esi call-saved
arg 5 %edi call-saved
+ arg 6 %ebp call-saved
The stack layout upon entering the function is:
+ 24(%esp) Arg# 6
20(%esp) Arg# 5
16(%esp) Arg# 4
12(%esp) Arg# 3
@@ -215,7 +217,7 @@
(%esp) Return address
(Of course a function with say 3 arguments does not have entries for
- arguments 4 and 5.)
+ arguments 4, 5, and 6.)
The following code tries hard to be optimal. A general assumption
(which is true according to the data books I have) is that