Update.
authorUlrich Drepper <drepper@redhat.com>
Fri, 3 Apr 1998 12:07:01 +0000 (12:07 +0000)
committerUlrich Drepper <drepper@redhat.com>
Fri, 3 Apr 1998 12:07:01 +0000 (12:07 +0000)
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.

ChangeLog
sysdeps/i386/i686/strtok.S
sysdeps/i386/strtok.S
sysdeps/unix/sysv/linux/arm/sysdep.S

index f77a060..3351a17 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+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.
+
 1998-04-02  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
 
        * sysdeps/generic/dl-procinfo.h (_dl_hwcap_string): Provide
index 62d54c4..c7a058e 100644 (file)
@@ -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)
index 3d09dd7..c6469e8 100644 (file)
@@ -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)
index a71181c..482535b 100644 (file)
@@ -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
 /* 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 */