Subject: CVS commit: basesrc/lib/libc/arch/x86_64/gen
To: None <source-changes@netbsd.org>
From: Simon Burge <simonb@netbsd.org>
List: source-changes
Date: 02/19/2002 15:08:37
Module Name:	basesrc
Committed By:	simonb
Date:		Tue Feb 19 13:08:36 UTC 2002

Modified Files:
	basesrc/include: math.h
	basesrc/lib/libc/arch/alpha/gen: Makefile.inc
	basesrc/lib/libc/arch/arm/gen: Makefile.inc
	basesrc/lib/libc/arch/i386/gen: Makefile.inc
	basesrc/lib/libc/arch/m68k/gen: Makefile.inc
	basesrc/lib/libc/arch/mips/gen: Makefile.inc
	basesrc/lib/libc/arch/ns32k/gen: Makefile.inc
	basesrc/lib/libc/arch/powerpc/gen: Makefile.inc
	basesrc/lib/libc/arch/sh3/gen: Makefile.inc
	basesrc/lib/libc/arch/sparc/gen: Makefile.inc
	basesrc/lib/libc/arch/sparc64/gen: Makefile.inc
	basesrc/lib/libc/arch/x86_64/gen: Makefile.inc
	syssrc/sys/arch/alpha/include: math.h
	syssrc/sys/arch/arm/include: math.h
	syssrc/sys/arch/i386/include: math.h
	syssrc/sys/arch/m68k/include: math.h
	syssrc/sys/arch/mips/include: math.h
	syssrc/sys/arch/pc532/include: math.h
	syssrc/sys/arch/powerpc/include: math.h
	syssrc/sys/arch/sh3/include: math.h
	syssrc/sys/arch/sparc/include: math.h
	syssrc/sys/arch/sparc64/include: math.h
	syssrc/sys/arch/x86_64/include: math.h
Added Files:
	basesrc/lib/libc/gen: ieee754_frexp.c ieee754_infinity.c
	    ieee754_isinf.c ieee754_isnan.c ieee754_ldexp.c ieee754_modf.c
	    ieee754_nanf.c
Removed Files:
	basesrc/lib/libc/arch/alpha/gen: frexp.c infinity.c isinf.c isnan.c
	    ldexp.c modf.c nanf.c
	basesrc/lib/libc/arch/arm/gen: frexp.c isinf.c isnan.c ldexp.c modf.c
	    nanf.c
	basesrc/lib/libc/arch/i386/gen: frexp.c infinity.c isinf.c isnan.c
	    nanf.c
	basesrc/lib/libc/arch/m68k/gen: frexp.c infinity.c isinf.c isnan.c
	    ldexp_040.c ldexp_softfloat.c modf_softfloat.c nanf.c
	basesrc/lib/libc/arch/mips/gen: frexp.c infinity.c isinf.c isnan.c
	    nanf.c
	basesrc/lib/libc/arch/ns32k/gen: frexp.c infinity.c isinf.c isnan.c
	    ldexp.c nanf.c
	basesrc/lib/libc/arch/powerpc/gen: frexp.c infinity.c isinf.c isnan.c
	    ldexp.c modf.c nanf.c
	basesrc/lib/libc/arch/sh3/gen: frexp.c infinity.c isinf.c isnan.c
	    ldexp.c modf.c nanf.c
	basesrc/lib/libc/arch/sparc/gen: frexp.c infinity.c isinf.c isnan.c
	    ldexp.c nanf.c
	basesrc/lib/libc/arch/sparc64/gen: frexp.c infinity.c isinf.c isnan.c
	    ldexp.c nanf.c
	basesrc/lib/libc/arch/x86_64/gen: frexp.c infinity.c isinf.c isnan.c
	    nanf.c

Log Message:
Clean up some rampant code duplication wrt ieee number handling:
 - Add alignment-safe double and float unions.
 - Use the above for the __infinity and __nan constants on all
   architectures that use the standard ieee754 representation of
   those constants.
 - Add a single copy of various ieee754 math functions (frexp, isinf,
   isnan, ldexp and modf) that had numerous duplicates among the
   arch-specific directories.
 - Use the above functions on all architectures where the generic C
   versions where used.  Architectures that had local assembly
   routines are untouched (for those functions only).


To generate a diff of this commit:
cvs rdiff -r1.23 -r1.24 basesrc/include/math.h
cvs rdiff -r1.7 -r1.8 basesrc/lib/libc/arch/alpha/gen/Makefile.inc
cvs rdiff -r1.4 -r0 basesrc/lib/libc/arch/alpha/gen/frexp.c
cvs rdiff -r1.6 -r0 basesrc/lib/libc/arch/alpha/gen/infinity.c
cvs rdiff -r1.5 -r0 basesrc/lib/libc/arch/alpha/gen/isinf.c
cvs rdiff -r1.2 -r0 basesrc/lib/libc/arch/alpha/gen/isnan.c \
    basesrc/lib/libc/arch/alpha/gen/nanf.c
cvs rdiff -r1.10 -r0 basesrc/lib/libc/arch/alpha/gen/ldexp.c
cvs rdiff -r1.3 -r0 basesrc/lib/libc/arch/alpha/gen/modf.c
cvs rdiff -r1.1 -r1.2 basesrc/lib/libc/arch/arm/gen/Makefile.inc
cvs rdiff -r1.1 -r0 basesrc/lib/libc/arch/arm/gen/frexp.c \
    basesrc/lib/libc/arch/arm/gen/modf.c basesrc/lib/libc/arch/arm/gen/nanf.c
cvs rdiff -r1.2 -r0 basesrc/lib/libc/arch/arm/gen/isinf.c \
    basesrc/lib/libc/arch/arm/gen/isnan.c \
    basesrc/lib/libc/arch/arm/gen/ldexp.c
cvs rdiff -r1.11 -r1.12 basesrc/lib/libc/arch/i386/gen/Makefile.inc
cvs rdiff -r1.5 -r0 basesrc/lib/libc/arch/i386/gen/frexp.c \
    basesrc/lib/libc/arch/i386/gen/infinity.c
cvs rdiff -r1.7 -r0 basesrc/lib/libc/arch/i386/gen/isinf.c
cvs rdiff -r1.2 -r0 basesrc/lib/libc/arch/i386/gen/isnan.c
cvs rdiff -r1.1 -r0 basesrc/lib/libc/arch/i386/gen/nanf.c
cvs rdiff -r1.13 -r1.14 basesrc/lib/libc/arch/m68k/gen/Makefile.inc
cvs rdiff -r1.6 -r0 basesrc/lib/libc/arch/m68k/gen/frexp.c \
    basesrc/lib/libc/arch/m68k/gen/infinity.c
cvs rdiff -r1.8 -r0 basesrc/lib/libc/arch/m68k/gen/isinf.c
cvs rdiff -r1.2 -r0 basesrc/lib/libc/arch/m68k/gen/isnan.c \
    basesrc/lib/libc/arch/m68k/gen/ldexp_softfloat.c
cvs rdiff -r1.7 -r0 basesrc/lib/libc/arch/m68k/gen/ldexp_040.c
cvs rdiff -r1.1 -r0 basesrc/lib/libc/arch/m68k/gen/modf_softfloat.c \
    basesrc/lib/libc/arch/m68k/gen/nanf.c
cvs rdiff -r1.12 -r1.13 basesrc/lib/libc/arch/mips/gen/Makefile.inc
cvs rdiff -r1.6 -r0 basesrc/lib/libc/arch/mips/gen/frexp.c
cvs rdiff -r1.5 -r0 basesrc/lib/libc/arch/mips/gen/infinity.c
cvs rdiff -r1.2 -r0 basesrc/lib/libc/arch/mips/gen/isinf.c \
    basesrc/lib/libc/arch/mips/gen/isnan.c
cvs rdiff -r1.1 -r0 basesrc/lib/libc/arch/mips/gen/nanf.c
cvs rdiff -r1.13 -r1.14 basesrc/lib/libc/arch/ns32k/gen/Makefile.inc
cvs rdiff -r1.2 -r0 basesrc/lib/libc/arch/ns32k/gen/frexp.c \
    basesrc/lib/libc/arch/ns32k/gen/isnan.c
cvs rdiff -r1.7 -r0 basesrc/lib/libc/arch/ns32k/gen/infinity.c
cvs rdiff -r1.9 -r0 basesrc/lib/libc/arch/ns32k/gen/isinf.c
cvs rdiff -r1.5 -r0 basesrc/lib/libc/arch/ns32k/gen/ldexp.c
cvs rdiff -r1.1 -r0 basesrc/lib/libc/arch/ns32k/gen/nanf.c
cvs rdiff -r1.8 -r1.9 basesrc/lib/libc/arch/powerpc/gen/Makefile.inc
cvs rdiff -r1.4 -r0 basesrc/lib/libc/arch/powerpc/gen/frexp.c \
    basesrc/lib/libc/arch/powerpc/gen/modf.c
cvs rdiff -r1.5 -r0 basesrc/lib/libc/arch/powerpc/gen/infinity.c \
    basesrc/lib/libc/arch/powerpc/gen/isnan.c
cvs rdiff -r1.6 -r0 basesrc/lib/libc/arch/powerpc/gen/isinf.c
cvs rdiff -r1.10 -r0 basesrc/lib/libc/arch/powerpc/gen/ldexp.c
cvs rdiff -r1.1 -r0 basesrc/lib/libc/arch/powerpc/gen/nanf.c
cvs rdiff -r1.4 -r1.5 basesrc/lib/libc/arch/sh3/gen/Makefile.inc
cvs rdiff -r1.1 -r0 basesrc/lib/libc/arch/sh3/gen/frexp.c \
    basesrc/lib/libc/arch/sh3/gen/nanf.c
cvs rdiff -r1.3 -r0 basesrc/lib/libc/arch/sh3/gen/infinity.c \
    basesrc/lib/libc/arch/sh3/gen/modf.c
cvs rdiff -r1.2 -r0 basesrc/lib/libc/arch/sh3/gen/isinf.c \
    basesrc/lib/libc/arch/sh3/gen/isnan.c \
    basesrc/lib/libc/arch/sh3/gen/ldexp.c
cvs rdiff -r1.6 -r1.7 basesrc/lib/libc/arch/sparc/gen/Makefile.inc
cvs rdiff -r1.4 -r0 basesrc/lib/libc/arch/sparc/gen/frexp.c
cvs rdiff -r1.5 -r0 basesrc/lib/libc/arch/sparc/gen/infinity.c
cvs rdiff -r1.7 -r0 basesrc/lib/libc/arch/sparc/gen/isinf.c
cvs rdiff -r1.6 -r0 basesrc/lib/libc/arch/sparc/gen/isnan.c
cvs rdiff -r1.10 -r0 basesrc/lib/libc/arch/sparc/gen/ldexp.c
cvs rdiff -r1.1 -r0 basesrc/lib/libc/arch/sparc/gen/nanf.c
cvs rdiff -r1.4 -r1.5 basesrc/lib/libc/arch/sparc64/gen/Makefile.inc
cvs rdiff -r1.4 -r0 basesrc/lib/libc/arch/sparc64/gen/frexp.c \
    basesrc/lib/libc/arch/sparc64/gen/isnan.c
cvs rdiff -r1.3 -r0 basesrc/lib/libc/arch/sparc64/gen/infinity.c
cvs rdiff -r1.5 -r0 basesrc/lib/libc/arch/sparc64/gen/isinf.c
cvs rdiff -r1.9 -r0 basesrc/lib/libc/arch/sparc64/gen/ldexp.c
cvs rdiff -r1.1 -r0 basesrc/lib/libc/arch/sparc64/gen/nanf.c
cvs rdiff -r1.1 -r1.2 basesrc/lib/libc/arch/x86_64/gen/Makefile.inc
cvs rdiff -r1.1 -r0 basesrc/lib/libc/arch/x86_64/gen/frexp.c \
    basesrc/lib/libc/arch/x86_64/gen/infinity.c \
    basesrc/lib/libc/arch/x86_64/gen/isinf.c \
    basesrc/lib/libc/arch/x86_64/gen/isnan.c \
    basesrc/lib/libc/arch/x86_64/gen/nanf.c
cvs rdiff -r0 -r1.1 basesrc/lib/libc/gen/ieee754_frexp.c \
    basesrc/lib/libc/gen/ieee754_infinity.c \
    basesrc/lib/libc/gen/ieee754_isinf.c basesrc/lib/libc/gen/ieee754_isnan.c \
    basesrc/lib/libc/gen/ieee754_ldexp.c basesrc/lib/libc/gen/ieee754_modf.c \
    basesrc/lib/libc/gen/ieee754_nanf.c
cvs rdiff -r1.3 -r1.4 syssrc/sys/arch/alpha/include/math.h
cvs rdiff -r1.1 -r1.2 syssrc/sys/arch/arm/include/math.h
cvs rdiff -r1.3 -r1.4 syssrc/sys/arch/i386/include/math.h
cvs rdiff -r1.3 -r1.4 syssrc/sys/arch/m68k/include/math.h
cvs rdiff -r1.3 -r1.4 syssrc/sys/arch/mips/include/math.h
cvs rdiff -r1.2 -r1.3 syssrc/sys/arch/pc532/include/math.h
cvs rdiff -r1.3 -r1.4 syssrc/sys/arch/powerpc/include/math.h
cvs rdiff -r1.2 -r1.3 syssrc/sys/arch/sh3/include/math.h
cvs rdiff -r1.3 -r1.4 syssrc/sys/arch/sparc/include/math.h
cvs rdiff -r1.3 -r1.4 syssrc/sys/arch/sparc64/include/math.h
cvs rdiff -r1.1 -r1.2 syssrc/sys/arch/x86_64/include/math.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.