2000-01-03 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/i386/mmap64.S: Fix code for running on
kernel without mmap2 syscall.
+2000-01-03 Ulrich Drepper <drepper@cygnus.com>
+
+ * sysdeps/unix/sysv/linux/i386/mmap64.S: Fix code for running on
+ kernel without mmap2 syscall.
+
2000-01-03 Philip Blundell <philb@gnu.org>
* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_MMAP2_SYSCALL,
popl %ebx
popl %ebp
+#ifndef __ASSUME_MMAP2_SYSCALL
+2:
+ cmp $-ENOSYS, %eax
+ je 3f
+#endif
+
/* If 0 > %eax > -4096 there was an error. */
cmpl $-4096, %eax
ja SYSCALL_ERROR_LABEL
L(pseudo_end):
ret
-#ifndef __ASSUME_MMAP2_SYSCALL
-2:
- cmp $-ENOSYS, %eax
- je 3f
-#endif
-
/* This means the offset value is too large. */
L(einval):
popl %edi
#if !defined __ASSUME_MMAP2_SYSCALL || !defined __NR_mmap2
-# ifndef __NR_mmap2
+3:
/* Save registers. */
movl %ebx, %edx
-# endif
-3:
- cmpl $0, 44(%esp)
+
+ cmpl $0, 28(%esp)
jne L(einval)
movl $SYS_ify(mmap), %eax /* System call number in %eax. */
ret
L(einval):
+ movl %edx, %ebx
movl $-EINVAL, %eax
jmp SYSCALL_ERROR_LABEL
# endif