summary refs log tree commit diff
diff options
context:
space:
mode:
-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