From 52354636d3ba63e3467c9062f6ddbaf5138f0229 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 4 Jan 2000 00:37:51 +0000 Subject: Update. 2000-01-03 Ulrich Drepper * sysdeps/unix/sysv/linux/i386/mmap64.S: Fix code for running on kernel without mmap2 syscall. --- sysdeps/unix/sysv/linux/i386/mmap64.S | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'sysdeps/unix') diff --git a/sysdeps/unix/sysv/linux/i386/mmap64.S b/sysdeps/unix/sysv/linux/i386/mmap64.S index 0785bce783..22515a11d2 100644 --- a/sysdeps/unix/sysv/linux/i386/mmap64.S +++ b/sysdeps/unix/sysv/linux/i386/mmap64.S @@ -62,6 +62,12 @@ L(do_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 @@ -70,12 +76,6 @@ L(do_syscall): 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 @@ -88,12 +88,11 @@ L(einval): #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. */ @@ -119,6 +118,7 @@ L(pseudo_end): ret L(einval): + movl %edx, %ebx movl $-EINVAL, %eax jmp SYSCALL_ERROR_LABEL # endif -- cgit 1.4.1