diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-04-03 12:07:01 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-04-03 12:07:01 +0000 |
commit | ecdd1a316035312a0565a64011520819ff36ae11 (patch) | |
tree | 592feec09cb2886c1f5420472e36d06aaaf531b3 /sysdeps | |
parent | cab24c3767986d0c4c336634756b4de5aee3a797 (diff) | |
download | glibc-ecdd1a316035312a0565a64011520819ff36ae11.tar glibc-ecdd1a316035312a0565a64011520819ff36ae11.tar.gz glibc-ecdd1a316035312a0565a64011520819ff36ae11.tar.bz2 glibc-ecdd1a316035312a0565a64011520819ff36ae11.zip |
Update.
1998-04-03 16:29 Philip Blundell <pb@nexus.co.uk>
Based on patch from Pat Beirne:
* sysdeps/unix/sysv/linux/arm/sysdep.S (__syscall_error): Same for
PIC and non-PIC now. Correctly negate error number.
(errno): Use `%' not `@' in .type directives.
1998-04-03 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/i386/strtok.S: Change to use single exit point.
* sysdeps/i386/i686/strtok.S: Likewise.
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/i386/i686/strtok.S | 16 | ||||
-rw-r--r-- | sysdeps/i386/strtok.S | 18 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/arm/sysdep.S | 22 |
3 files changed, 12 insertions, 44 deletions
diff --git a/sysdeps/i386/i686/strtok.S b/sysdeps/i386/i686/strtok.S index 62d54c4e1a..c7a058eb41 100644 --- a/sysdeps/i386/i686/strtok.S +++ b/sysdeps/i386/i686/strtok.S @@ -207,6 +207,7 @@ L(8): /* Remove the stopset table. */ leal 1(%edx), %ecx cmovne %ecx, %edx +L(return): /* Store the pointer to the next character. */ #ifdef USE_AS_STRTOK_R movl 12(%esp), %ecx @@ -223,18 +224,5 @@ L(8): /* Remove the stopset table. */ L(returnNULL): xorl %eax, %eax - - /* Store current pointer for next round. */ -#ifdef USE_AS_STRTOK_R - movl 12(%esp), %ecx - movl %edx, (%ecx) -#else -# ifndef PIC - movl %edx, save_ptr -# else - movl %edx, save_ptr@GOTOFF(%ebx) - popl %ebx -# endif -#endif - ret + jmp L(return) END (FUNCTION) diff --git a/sysdeps/i386/strtok.S b/sysdeps/i386/strtok.S index 3d09dd7406..c6469e8ecf 100644 --- a/sysdeps/i386/strtok.S +++ b/sysdeps/i386/strtok.S @@ -1,6 +1,6 @@ /* strtok (str, delim) -- Return next DELIM separated token from STR. For Intel 80x86, x>=3. - Copyright (C) 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. @@ -254,6 +254,7 @@ L(8): /* Remove the stopset table. */ incl %edx L(11): +L(return): /* Store the pointer to the next character. */ #ifdef USE_AS_STRTOK_R movl 12(%esp), %ecx @@ -270,18 +271,5 @@ L(11): L(returnNULL): xorl %eax, %eax - - /* Store current pointer for next round. */ -#ifdef USE_AS_STRTOK_R - movl 12(%esp), %ecx - movl %edx, (%ecx) -#else -# ifndef PIC - movl %edx, save_ptr -# else - movl %edx, save_ptr@GOTOFF(%ebx) - popl %ebx -# endif -#endif - ret + jmp L(return) END (FUNCTION) diff --git a/sysdeps/unix/sysv/linux/arm/sysdep.S b/sysdeps/unix/sysv/linux/arm/sysdep.S index a71181c911..482535bea5 100644 --- a/sysdeps/unix/sysv/linux/arm/sysdep.S +++ b/sysdeps/unix/sysv/linux/arm/sysdep.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -21,31 +21,23 @@ /* We define errno here, to be consistent with Linux/i386. */ .bss .globl errno - .type errno,@object + .type errno,%object .size errno,4 errno: .zero 4 .globl _errno - .type _errno,@object + .type _errno,%object _errno = errno /* This name is expected by hj's libc.so.5 startup code. */ .text -/* The following code is only used in the shared library when we - compile the reentrant version. Otherwise each system call defines - each own version. */ - -#ifndef PIC - /* The syscall stubs jump here when they detect an error. - The code for Linux is almost identical to the canonical Unix/i386 - code, except that the error number in %eax is negated. */ + The code for Linux is almost identical to the canonical Unix + code, except that the error number in R0 is negated. */ #undef CALL_MCOUNT -#define CALL_MCOUNT /* Don't insert the profiling call, it clobbers %eax. */ +#define CALL_MCOUNT /* Don't insert the profiling call, it clobbers R0. */ ENTRY (__syscall_error) - mvn r0, r0 + rsb r0, r0, $0 #define __syscall_error __syscall_error_1 #include <sysdeps/unix/arm/sysdep.S> - -#endif /* !PIC */ |