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.
This commit is contained in:
Ulrich Drepper 1998-04-03 12:07:01 +00:00
parent cab24c3767
commit ecdd1a3160
4 changed files with 24 additions and 44 deletions

View File

@ -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

View 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)

View 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)

View 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
@ -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 */