summary refs log tree commit diff
path: root/sysdeps/i386
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1996-05-30 16:12:42 +0000
committerRoland McGrath <roland@gnu.org>1996-05-30 16:12:42 +0000
commit76060ec0b8b5d6f0a860a94f100dc6e48041bac3 (patch)
treeb4ff1b5370a30a16705239598cb8e98f4b80b9ca /sysdeps/i386
parentc3352e623384fe221743a6d2212c17d9619041ef (diff)
downloadglibc-76060ec0b8b5d6f0a860a94f100dc6e48041bac3.tar.gz
glibc-76060ec0b8b5d6f0a860a94f100dc6e48041bac3.tar.xz
glibc-76060ec0b8b5d6f0a860a94f100dc6e48041bac3.zip
Thu May 30 11:24:05 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> cvs/libc-960602 cvs/libc-960601 cvs/libc-960531
	* po/header.pot: Replace with exact boilerplate pinard dictates.

	* sysdeps/i386/strtok.S (Lillegal_argument): Remove this code to set
	errno and the check that jumped to it.

	* sysdeps/mach/hurd/Makefile (errnos.d): Use $(sed-remove-objpfx).

Thu May 30 03:21:57 1996  Ulrich Drepper  <drepper@cygnus.com>

	* FAQ: Document need of gperf program for developers.

	* elf/elf.h: Fix typos in comments.

	* libio/stdio.h [!__STRICT_ANSI__ || _POSIX_SOURCE]: Add
        prototypes for `ctermid' and `cuserid'.

	* locale/programs/locale.c: Switch to user selected locale
	before printing variables.

	* math/Makefile [$(long-double-fcts)==yes]: Define long-m-routines
        and long-c-routines.  Only if the `long double' data type is
        available we need to compile the functions.
	(libm-routines): Add $(long-m-routines).
	(routines): Remove isinfl, isnanl.  Use new file s_isinfl and
	s_isnanl instead if `long double' is available.

	* math/math.h: Include <mathcalls.h> again to define `long double'
        functions.

	* math/math_private.h: Define data types, prototypes and access
        macros for `long double'.

	* stdlib/stdlib.h: Add prototypes for `strtoll' and `strtoull'.
	[GCC2 && OPTIMIZE]: Define strto{,u}ll as inline function which
	calls __strto{,u}q_internal.

	* stdlib/strfmon.c: Replace PTR by `void *'.

	* stdlib/strtoq.c: Define strtoll as weak alias.
	* stdlib/strtouq.c: Define strtoull as weak alias.

	* string/tester.c: Correct `strsep' test.

	* sysdeps/generic/strsep.c: Make compatible with BSD version.
        Trailing characters of skip set are not skipped.  In this case
        empty tokens are returned.

	* sysdeps/i386/isinfl.c, sysdeps/i386/isnanl.c,
        sysdeps/ieee754/isinf.c, sysdeps/ieee754/isinfl.c,
        sysdeps/ieee754/isnan.c, sysdeps/ieee754/isnanl.c: Removed.  We
        now use the versions part of libm.

	* sysdeps/i386/strsep.S: Removed.  Generic C version is of
	similar speed.
	* sysdeps/i386/strtok.S: Remove support for `strsep'.

	* sysdeps/libm-i387/e_acosl.S, sysdeps/libm-i387/s_ceill.S,
        sysdeps/libm-i387/s_copysignl.S, sysdeps/libm-i387/s_finitel.S,
        sysdeps/libm-i387/s_floorl.S, sysdeps/libm-i387/s_isinfl.c,
        sysdeps/libm-i387/s_isnanl.c, sysdeps/libm-i387/s_nextafterl.c,
        sysdeps/libm-i387/s_rintl.S, sysdeps/libm-i387/s_significandl.S:
        New i387 specific math functions implementing `long double'
        versions.

	* sysdeps/libm-ieee754/s_ceill.c,
        sysdeps/libm-ieee754/s_copysignl.c,
        sysdeps/libm-ieee754/s_fabsl.c, sysdeps/libm-ieee754/s_finitel.c,
        sysdeps/libm-ieee754/s_floorl.c, sysdeps/libm-ieee754/s_isinfl.c,
        sysdeps/libm-ieee754/s_isnanl.c,
        sysdeps/libm-ieee754/s_nextafterl.c,
        sysdeps/libm-ieee754/s_rintl.c, sysdeps/libm-ieee754/s_scalbnl.c,
        sysdeps/libm-ieee754/s_significandl.c: New generic `long double'
        versions of libm functions.

	* sysdeps/libm-i387/e_exp.S: Add a few comments to explain the
        Intel FPU nonsense.

	* sysdeps/libm-i387/s_ceil.S, sysdeps/libm-i387/s_ceilf.S,
        sysdeps/libm-i387/s_floor.S, sysdeps/libm-i387/s_floorf.S: Correct
        handling of local variables.  The old version created a stack
        frame but stored the values outside.

	* sysdeps/libm-ieee754/s_isinf.c, sysdeps/libm-ieee754/s_isnan.c
        [!NO_LONG_DOUBLE]: Define alias with `long double' versions name.

	* login/pututline_r.c: Include sys/stat.h.  Fix typos.

        according to currently used locale for category LC_CTYPE by
	inet_nsap_ntoa.  Now in <arpa/inet.h>.
        _IO_dup2 to contain complete parameter list.
Diffstat (limited to 'sysdeps/i386')
-rw-r--r--sysdeps/i386/isinfl.c46
-rw-r--r--sysdeps/i386/isnanl.c43
-rw-r--r--sysdeps/i386/strsep.S3
-rw-r--r--sysdeps/i386/strtok.S63
4 files changed, 9 insertions, 146 deletions
diff --git a/sysdeps/i386/isinfl.c b/sysdeps/i386/isinfl.c
deleted file mode 100644
index 056d756d58..0000000000
--- a/sysdeps/i386/isinfl.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Check `long double' for Infinity.  i386 FPU version.
-Copyright (C) 1991, 1992, 1995 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
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
-
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
-
-#include <math.h>
-#include "ieee754.h"
-
-#undef __isinfl
-#undef isinfl
-
-
-/* Return 0 if VALUE is finite or NaN, +1 if it
-   is +Infinity, -1 if it is -Infinity.  */
-int
-__isinfl (long double value)
-{
-  union ieee854_long_double u;
-
-  u.d = value;
-
-  /* Intel's interpretation of the IEEE 854 standard defines Inf to
-     have the maximum possible exponent and the MSB of the mantissa
-     set.  No further bit of the mantissa must be set.  */
-  if ((u.ieee.exponent & 0x7fff) == 0x7fff &&
-      u.ieee.mantissa0 == 0x80000000 && u.ieee.mantissa1 == 0)
-    return u.ieee.negative ? -1 : 1;
-
-  return 0;
-}
-
-weak_alias (__isinfl, isinfl);
diff --git a/sysdeps/i386/isnanl.c b/sysdeps/i386/isnanl.c
deleted file mode 100644
index de10c07532..0000000000
--- a/sysdeps/i386/isnanl.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Check `long double' for Not A Number.  i386 FPU version.
-Copyright (C) 1991, 1992, 1995 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
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
-
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
-
-#include <math.h>
-#include "ieee754.h"
-
-#undef __isnanl
-#undef isnanl
-
-
-/* Return nonzero if VALUE is not a number.  */
-int
-__isnanl (long double value)
-{
-  union ieee854_long_double u;
-
-  u.d = value;
-
-  /* Intel's interpretation of the IEEE 854 standard defines NaN to
-     have the maximum possible exponent and the MSB and at least one
-     more bit of the mantissa set.  */
-  return ((u.ieee.exponent & 0x7fff) == 0x7fff
-	  && ((u.ieee.mantissa0 & 0x80000000) != 0)
-	  && ((u.ieee.mantissa0 & 0x7fffffff) != 0 || u.ieee.mantissa1 != 0));
-}
-
-weak_alias (__isnanl, isnanl);
diff --git a/sysdeps/i386/strsep.S b/sysdeps/i386/strsep.S
deleted file mode 100644
index 8c425dd505..0000000000
--- a/sysdeps/i386/strsep.S
+++ /dev/null
@@ -1,3 +0,0 @@
-#define FUNCTION strsep
-#define USE_AS_STRSEP	1
-#include <sysdeps/i386/strtok.S>
diff --git a/sysdeps/i386/strtok.S b/sysdeps/i386/strtok.S
index 28845e08cf..2ef8803ef6 100644
--- a/sysdeps/i386/strtok.S
+++ b/sysdeps/i386/strtok.S
@@ -19,7 +19,6 @@ License along with the GNU C Library; see the file COPYING.LIB.  If
 not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 Boston, MA 02111-1307, USA.  */
 
-#include <errnos.h>
 #include <sysdep.h>
 
 /* This file can be used for three variants of the strtok function:
@@ -35,14 +34,9 @@ Boston, MA 02111-1307, USA.  */
 	delim		(sp + 8)
 	save_ptr	(sp + 12)
 
-   strsep:
-	INPUT PARAMETERS
-	str_ptr		(sp + 4)
-	delim		(sp + 8)
-
    We do a common implementation here.  */
 
-#if !defined (USE_AS_STRTOK_R) && !defined (USE_AS_STRSEP)
+#ifndef USE_AS_STRTOK_R
 	.bss
 	.local save_ptr
 	ASM_TYPE_DIRECTIVE (save_ptr, @object)
@@ -53,73 +47,40 @@ save_ptr:
 #define FUNCTION strtok
 #endif
 
-	/* We use the possibility to do some more initialization
-	   for the strtok implementation.  */
 	.text
-Lillegal_argument:
-#ifndef PIC
-	movl $EINVAL, C_SYMBOL_NAME(errno)
-	xorl %eax, %eax
-#else
-# if defined (USE_AS_STRTOK_R) || defined (USE_AS_STRSEP)
-	pushl %ebx			/* Save PIC register.  */
-	call Lhere2
-Lhere2:	popl %ebx
-	addl $_GLOBAL_OFFSET_TABLE_+[.-Lhere2], %ebx
-# endif
-	movl errno@GOT(%ebx), %ebx
-	movl $EINVAL, (%ebx)
-	xorl %eax, %eax
-	popl %ebx
-#endif
-	ret
-
 
 ENTRY (FUNCTION)
 
 	movl 4(%esp), %edx		/* Get start of string.  */
 	movl 8(%esp), %eax		/* Get start of delimiter set.  */
 
-#ifdef USE_AS_STRSEP
-	/* %EDX does not yet contain the string starting point.  Only
-	   a pointer to the location where it is stored.  */
-	movl (%edx), %edx
-#else
-# if !defined (USE_AS_STRTOK_R) && defined (PIC)
+#if !defined (USE_AS_STRTOK_R) && defined (PIC)
 	pushl %ebx			/* Save PIC register.  */
 	call Lhere
 Lhere:	popl %ebx
 	addl $_GLOBAL_OFFSET_TABLE_+[.-Lhere], %ebx
-# endif
+#endif
 
 	/* If the pointer is NULL we have to use the stored value of
 	   the last run.  */
 	cmpl $0, %edx
 	jne L0
 
-# ifdef USE_AS_STRTOK_R
+#ifdef USE_AS_STRTOK_R
 	/* The value is stored in the third argument.  */
 	movl 12(%esp), %edx
 	movl (%edx), %edx
-# else
+#else
 	/* The value is in the local variable defined above.  But
 	   we have to take care for PIC code.  */
-#  ifndef PIC
+# ifndef PIC
 	movl save_ptr, %edx
-#  else
+# else
 	movl save_ptr@GOTOFF(%ebx), %edx
-#  endif
 # endif
 #endif
 
-	/* Compare whether pointer is NULL.  We are tolerant here
-	   because the C function do the same.  */
-	cmpl $0, %edx
-	je Lillegal_argument
-
-#ifndef USE_AS_STRSEP
 L0:
-#endif
 	/* First we create a table with flags for all possible characters.
 	   For the ASCII (7bit/8bit) or ISO-8859-X character sets which are
 	   supported by the C string functions we have 256 characters.
@@ -224,8 +185,8 @@ L1:	leal -4(%edx), %eax	/* prepare loop */
 	   1. a character in the stopset was found
 	   and
 	   2. the end of the string was found
-	   But as a sign that the chracter is in the stopset we store its
-	   value in the table.  But the value of NUL is NUL so the loop
+	   As a sign that the character is in the stopset we store its
+	   value in the table.  The value of NUL is NUL so the loop
 	   terminates for NUL in every case.  */
 
 L3:	addl $4, %eax		/* adjust pointer for full loop round */
@@ -295,9 +256,6 @@ L11:
 #ifdef USE_AS_STRTOK_R
 	movl 12(%esp), %ecx
 	movl %edx, (%ecx)
-#elif USE_AS_STRSEP
-	movl 4(%esp), %ecx
-	movl %edx, (%ecx)
 #else
 # ifndef PIC
 	movl %edx, save_ptr
@@ -315,9 +273,6 @@ LreturnNULL:
 #ifdef USE_AS_STRTOK_R
 	movl 12(%esp), %ecx
 	movl %eax, (%ecx)
-#elif USE_AS_STRSEP
-	movl 4(%esp), %ecx
-	movl %eax, (%ecx)
 #else
 # ifndef PIC
 	movl %eax, save_ptr