diff options
author | Ulrich Drepper <drepper@redhat.com> | 2000-01-04 00:37:51 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2000-01-04 00:37:51 +0000 |
commit | 52354636d3ba63e3467c9062f6ddbaf5138f0229 (patch) | |
tree | fdf70fbff2c72b1bff8958306d4ce5e3d259808d /sysdeps/unix/sysv/linux/i386/mmap64.S | |
parent | e3aaaa2732fbde38c612442fe4f688f2f58801ff (diff) | |
download | glibc-52354636d3ba63e3467c9062f6ddbaf5138f0229.tar.gz glibc-52354636d3ba63e3467c9062f6ddbaf5138f0229.tar.xz glibc-52354636d3ba63e3467c9062f6ddbaf5138f0229.zip |
Update.
2000-01-03 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/i386/mmap64.S: Fix code for running on kernel without mmap2 syscall.
Diffstat (limited to 'sysdeps/unix/sysv/linux/i386/mmap64.S')
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/mmap64.S | 20 |
1 files changed, 10 insertions, 10 deletions
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 |