glenn@qed.physics.su.OZ.AU (Glenn Geers) (12/19/90)
Hi, The following set of context diffs allow the alternative math library - libfpu.a - to be compiled on systems without gcc. Diffs are relative to version 2.0 of libfpu.a. With the updated version of nextafter[f].c. A lot of the patches just fix the comment form from C style /* */ to AT&T assembler // style. Warning ------- Be warned pow.s is very different. Although a lot of the assembler files are the same, some are different in ways that are not obvious. Gas will assemble them and you'll get a library that gives the wrong results. Caveat ------ Only the double version has been patched. You need gcc to compile the float version. I figured that most people who want float support would have gcc anyway. But don't fret! it'll be done for the next full blown release. What To Do ---------- 1. Unpack the shar file contained in this posting. 2. Apply the patches (patch < att.pats) 3. Edit the Makefile and define GCC=cc 4. Type 'make libfpu' 5. Type 'make paranoia' - ignore errors from make - you may not have libffpu.a. Make sure paranoia works - ESIX 'cc' (rev. D) produces a paranoia that will dump core at the end of an otherwise successful run. This is ok. 6. Type 'make install'. Again ignore errors from make. Enjoy, Glenn glenn@qed.physics.su.oz.au ---- Cut Here and feed the following to sh ---- #!/bin/sh # This is a shell archive (shar 3.47) # made 12/18/1990 04:56 UTC by root@trantor # Source directory /usr1/src/math # # existing files will NOT be overwritten unless -c is specified # # This shar contains: # length mode name # ------ ---------- ------------------------------------------ # 40533 -rw-r--r-- att.pats # # ============= att.pats ============== if test -f 'att.pats' -a X"$1" != X"-c"; then echo 'x - skipping att.pats (File already exists)' else echo 'x - extracting att.pats (Text)' sed 's/^X//' << 'SHAR_EOF' > 'att.pats' && *** ../_getsw.s Sun Dec 9 18:13:52 1990 --- _getsw.s Mon Dec 17 15:02:29 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl _getsw --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl _getsw *** ../acos.s Sun Dec 9 18:13:52 1990 --- acos.s Mon Dec 17 14:06:57 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .Lhalfpi: --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .Lhalfpi: *************** *** 27,41 **** X fst %st(1) X fmull 8(%ebp) X fld1 ! fsubp X fsqrt ! fdivp X fld1 X fpatan X jnc .Ldone X X fldpi ! faddp X leave X ret X --- 27,41 ---- X fst %st(1) X fmull 8(%ebp) X fld1 ! fsubp %st, %st(1) X fsqrt ! fdivp %st, %st(1) X fld1 X fpatan X jnc .Ldone X X fldpi ! faddp %st, %st(1) X leave X ret X *** ../acosh.s Sun Dec 9 18:13:52 1990 --- acosh.s Tue Dec 18 06:51:37 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl acosh --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl acosh *************** *** 17,23 **** X X fmull 8(%ebp) X fld1 ! fsubrp X fsqrt X faddl 8(%ebp) X fldln2 --- 17,23 ---- X X fmull 8(%ebp) X fld1 ! fsubrp %st, %st(1) X fsqrt X faddl 8(%ebp) X fldln2 *** ../asin.s Sun Dec 9 18:13:52 1990 --- asin.s Mon Dec 17 14:10:03 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl asin --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl asin *************** *** 16,28 **** X fldl 8(%ebp) X fst %st(1) X fst %st(2) ! fmulp X fld1 ! fsubp X fsqrt X fld1 ! fdivp ! fmulp X fld1 X fpatan X --- 16,28 ---- X fldl 8(%ebp) X fst %st(1) X fst %st(2) ! fmulp %st, %st(1) X fld1 ! fsubp %st, %st(1) X fsqrt X fld1 ! fdivp %st, %st(1) ! fmulp %st, %st(1) X fld1 X fpatan X *** ../asinh.s Sun Dec 9 18:13:52 1990 --- asinh.s Mon Dec 17 14:11:34 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl asinh --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl asinh *************** *** 17,23 **** X X fmull 8(%ebp) X fld1 ! faddp X fsqrt X faddl 8(%ebp) X fldln2 --- 17,23 ---- X X fmull 8(%ebp) X fld1 ! faddp %st, %st(1) X fsqrt X faddl 8(%ebp) X fldln2 *** ../atan.s Sun Dec 9 18:13:52 1990 --- atan.s Mon Dec 17 14:12:28 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl atan --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl atan *** ../atan2.s Sun Dec 9 18:13:52 1990 --- atan2.s Tue Dec 18 06:57:16 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .Lpi: --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .Lpi: *************** *** 37,43 **** X jz .Lgotzero X jc .Lgotneg X ! fdivp X fld1 X fpatan X --- 37,43 ---- X jz .Lgotzero X jc .Lgotneg X ! fdivp %st, %st(1) X fld1 X fpatan X *************** *** 50,70 **** X sahf X jc .Lneg1 X ! fdivp X fld1 X fpatan X fldl .Lmpi ! fsubrp X X leave X ret X X .Lneg1: ! fdivp X fld1 X fpatan X fldl .Lpi ! fsubrp X X leave X ret --- 50,70 ---- X sahf X jc .Lneg1 X ! fdivp %st, %st(1) X fld1 X fpatan X fldl .Lmpi ! fsubrp %st, %st(1) X X leave X ret X X .Lneg1: ! fdivp %st, %st(1) X fld1 X fpatan X fldl .Lpi ! fsubrp %st, %st(1) X X leave X ret *** ../atanh.s Sun Dec 9 18:13:53 1990 --- atanh.s Tue Dec 18 06:50:11 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .Lhalf: --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .Lhalf: *************** *** 21,27 **** X faddl 8(%ebp) X fld1 X fsubl 8(%ebp) ! fdivrp X X fldln2 X fxch %st(1) --- 21,27 ---- X faddl 8(%ebp) X fld1 X fsubl 8(%ebp) ! fdivrp %st, %st(1) X X fldln2 X fxch %st(1) *************** *** 28,34 **** X fyl2x X X fldl .Lhalf ! fmulp X X leave X ret --- 28,34 ---- X fyl2x X X fldl .Lhalf ! fmulp %st, %st(1) X X leave X ret *** ../ceil.s Sun Dec 9 18:13:53 1990 --- ceil.s Mon Dec 17 14:17:24 1990 *************** *** 1,13 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Could use ceil(x) = -floor(-x) but this is quicker. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl ceil --- 1,13 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Could use ceil(x) = -floor(-x) but this is quicker. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl ceil *** ../copysign.s Wed Dec 12 06:52:45 1990 --- copysign.s Mon Dec 17 14:18:13 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl copysign --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl copysign *** ../cos.s Sun Dec 9 18:13:53 1990 --- cos.s Mon Dec 17 14:18:49 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl cos --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl cos *** ../cosh.s Thu Dec 13 19:35:36 1990 --- cosh.s Tue Dec 18 06:55:23 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .LC2: --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .LC2: *************** *** 26,48 **** X X .Lpos: X fldl2e ! fmulp ! fstl %st(1) X frndint ! fstl %st(2) ! fsubrp X f2xm1 X fld1 ! faddp X fscale X fst %st(1) X X fld1 ! fdivp ! faddp X X fldl .LC2 ! fmulp X X leave X ret --- 26,48 ---- X X .Lpos: X fldl2e ! fmulp %st, %st(1) ! fst %st(1) X frndint ! fst %st(2) ! fsubrp %st, %st(1) X f2xm1 X fld1 ! faddp %st, %st(1) X fscale X fst %st(1) X X fld1 ! fdivp %st, %st(1) ! faddp %st, %st(1) X X fldl .LC2 ! fmulp %st, %st(1) X X leave X ret *** ../drem.s Sun Dec 9 18:13:53 1990 --- drem.s Mon Dec 17 14:24:54 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl drem --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl drem *** ../exp.s Sun Dec 9 18:13:54 1990 --- exp.s Tue Dec 18 09:43:48 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl exp --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl exp *************** *** 15,28 **** X X fldl 8(%ebp) X fldl2e ! fmulp ! fstl %st(1) X frndint ! fstl %st(2) ! fsubrp X f2xm1 X fld1 ! faddp X fscale X X leave --- 15,28 ---- X X fldl 8(%ebp) X fldl2e ! fmulp %st, %st(1) ! fst %st(1) X frndint ! fst %st(2) ! fsubrp %st, %st(1) X f2xm1 X fld1 ! faddp %st, %st(1) X fscale X X leave *** ../exp10.s Sun Dec 9 18:13:54 1990 --- exp10.s Tue Dec 18 06:53:40 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl exp10 --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl exp10 *************** *** 15,28 **** X X fldl 8(%ebp) X fldl2t ! fmulp ! fstl %st(1) X frndint ! fstl %st(2) ! fsubrp X f2xm1 X fld1 ! faddp X fscale X X leave --- 15,28 ---- X X fldl 8(%ebp) X fldl2t ! fmulp %st, %st(1) ! fst %st(1) X frndint ! fst %st(2) ! fsubrp %st, %st(1) X f2xm1 X fld1 ! faddp %st, %st(1) X fscale X X leave *** ../exp2.s Sun Dec 9 18:13:54 1990 --- exp2.s Tue Dec 18 06:57:45 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl exp2 --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl exp2 *************** *** 14,26 **** X movl %esp,%ebp X X fldl 8(%ebp) ! fstl %st(1) X frndint ! fstl %st(2) ! fsubrp X f2xm1 X fld1 ! faddp X fscale X X leave --- 14,26 ---- X movl %esp,%ebp X X fldl 8(%ebp) ! fst %st(1) X frndint ! fst %st(2) ! fsubrp %st, %st(1) X f2xm1 X fld1 ! faddp %st, %st(1) X fscale X X leave *** ../expm1.s Thu Dec 13 19:03:26 1990 --- expm1.s Tue Dec 18 06:54:10 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl expm1 --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl expm1 *************** *** 16,29 **** X X fldl 8(%ebp) X fldl2e ! fmulp ! fstl %st(1) X frndint ! fstl %st(2) ! fsubrp X f2xm1 X fld1 ! faddp X fscale X X fstpl -8(%ebp) --- 16,29 ---- X X fldl 8(%ebp) X fldl2e ! fmulp %st, %st(1) ! fst %st(1) X frndint ! fst %st(2) ! fsubrp %st, %st(1) X f2xm1 X fld1 ! faddp %st, %st(1) X fscale X X fstpl -8(%ebp) *************** *** 31,48 **** X fldl 8(%ebp) X fchs X fldl2e ! fmulp ! fstl %st(1) X frndint ! fstl %st(2) ! fsubrp X f2xm1 X fld1 ! faddp X fscale X X fld1 ! fsubp X fmull -8(%ebp) X X leave --- 31,48 ---- X fldl 8(%ebp) X fchs X fldl2e ! fmulp %st, %st(1) ! fst %st(1) X frndint ! fst %st(2) ! fsubrp %st, %st(1) X f2xm1 X fld1 ! faddp %st, %st(1) X fscale X X fld1 ! fsubp %st, %st(1) X fmull -8(%ebp) X X leave *** ../fabs.s Sun Dec 9 18:13:54 1990 --- fabs.s Mon Dec 17 14:31:48 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl fabs --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl fabs *** ../finite.s Sun Dec 9 18:13:54 1990 --- finite.s Mon Dec 17 14:32:09 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl finite --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl finite *** ../floor.s Sun Dec 9 18:13:54 1990 --- floor.s Mon Dec 17 14:32:41 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl floor --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl floor *** ../fmod.s Sun Dec 9 18:13:54 1990 --- fmod.s Mon Dec 17 14:33:15 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl fmod --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl fmod *** ../hypot.s Sun Dec 9 18:13:55 1990 --- hypot.s Mon Dec 17 14:35:25 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl hypot --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl hypot *************** *** 17,23 **** X fmull 8(%ebp) X fldl 16(%ebp) X fmull 16(%ebp) ! faddp X fsqrt X X leave --- 17,23 ---- X fmull 8(%ebp) X fldl 16(%ebp) X fmull 16(%ebp) ! faddp %st, %st(1) X fsqrt X X leave *** ../ieee_ext.s Tue Dec 11 18:45:05 1990 --- ieee_ext.s Mon Dec 17 14:36:21 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl isnan --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl isnan *** ../ieee_values.s Mon Dec 17 12:11:31 1990 --- ieee_values.s Mon Dec 17 14:36:46 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl max_normal --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl max_normal *** ../infinity.s Mon Dec 17 12:08:18 1990 --- infinity.s Mon Dec 17 14:37:07 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl infinity --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl infinity *** ../log.s Sun Dec 9 18:13:55 1990 --- log.s Mon Dec 17 14:38:00 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl log --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl log *** ../log10.s Sun Dec 9 18:13:55 1990 --- log10.s Mon Dec 17 14:38:09 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl log10 --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl log10 *** ../log1p.s Sun Dec 9 18:13:56 1990 --- log1p.s Mon Dec 17 14:38:41 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl log1p --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl log1p *************** *** 16,22 **** X fldln2 X fldl 8(%ebp) X fld1 ! faddp X fyl2x X X leave --- 16,22 ---- X fldln2 X fldl 8(%ebp) X fld1 ! faddp %st, %st(1) X fyl2x X X leave *** ../log2.s Sun Dec 9 18:13:56 1990 --- log2.s Mon Dec 17 14:39:30 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl log2 --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl log2 *** ../logb.s Sun Dec 9 18:13:56 1990 --- logb.s Mon Dec 17 14:42:35 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl logb --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl logb *************** *** 15,21 **** X X fldl 8(%ebp) X fxtract ! fldl %st(1) X X leave X ret --- 15,21 ---- X X fldl 8(%ebp) X fxtract ! fld %st(1) X X leave X ret *** ../pow.s Sun Dec 9 18:13:56 1990 --- pow.s Tue Dec 18 08:12:52 1990 *************** *** 1,161 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** This file started life as a C implemenation of pow, it then evolved ! ** into an embeded asm version (with some C) and finally, all assembler. ! ** It's actually hacked assembler produced by gcc. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X ! .text ! .LC0: ! .ascii "pow: DOMAIN error\12\0" ! .align 4 ! .LC1: ! .double 0d0.00000000000000000000e+00 ! .align 4 ! .LC2: ! .double 0d1.00000000000000000000e+00 ! .align 4 ! .globl pow X pow: ! pushl %ebp ! movl %esp,%ebp ! subl $28,%esp ! pushl %edi ! pushl %esi ! pushl %ebx ! movl 16(%ebp),%esi ! movl 20(%ebp),%edi ! movl $0,-4(%ebp) ! movl $1,%ebx ! fldl 8(%ebp) ! ftst ! fstp %st(0) ! fnstsw %ax ! sahf ! jae .L2 ! movl %ebx,-4(%ebp) ! pushl %edi ! pushl %esi ! /**/ ! fldl 16(%ebp) ! ! fstcw -8(%ebp) ! fstcw -12(%ebp) ! orw $0x0400, -12(%ebp) X fldcw -12(%ebp) ! ! frndint ! fldcw -8(%ebp) ! /**/ ! fstpl -16(%ebp) ! pushl %edi ! pushl %esi ! fldl (%esp) ! addl $8,%esp ! fsubl -16(%ebp) ! fstpl -16(%ebp) ! addl $8,%esp ! fldl -16(%ebp) ! ftst ! fstp %st(0) ! fnstsw %ax ! sahf ! je .L3 ! movl $33,errno ! pushl $.LC0 ! pushl $_iob+32 ! call fprintf ! fldl .LC1 ! jmp .L1 ! .align 4 ! .L3: ! pushl %edi ! pushl %esi ! /**/ X fldl 16(%ebp) ! fistpl -8(%ebp) ! movl -8(%ebp),%eax ! /**/ ! testl %eax,%eax ! jge .L5 ! incl %eax ! .L5: ! andl $-2,%eax ! movl -8(%ebp),%ecx ! subl %eax,%ecx ! movl %ecx,%eax ! testl %eax,%eax ! je .L2 ! xorl %ebx,%ebx ! .L2: ! fldl 8(%ebp) ! ftst ! fstp %st(0) ! fnstsw %ax ! sahf ! jne .L6 ! pushl %edi ! pushl %esi ! fldl (%esp) ! addl $8,%esp ! ftst ! fstp %st(0) ! fnstsw %ax ! sahf ! je .L6 ! fldl .LC1 ! jmp .L1 ! .align 4 ! .L6: ! pushl %edi ! pushl %esi ! fldl (%esp) ! addl $8,%esp ! ftst ! fstp %st(0) ! fnstsw %ax ! sahf ! jne .L8 ! fldl .LC2 ! jmp .L1 ! .align 4 ! .L8: ! /APP ! fldl 16(%ebp) ! fldl 8(%ebp) ! /NO_APP ! cmpl $0,-4(%ebp) ! je .L10 ! /APP ! fchs ! /NO_APP ! .L10: ! /APP ! fyl2x ! fstl %st(1) ! frndint ! fstl %st(2) ! fsubrp ! f2xm1 ! fld1 ! faddp ! fscale ! /NO_APP ! testl %ebx,%ebx ! jne .L1 ! /APP ! fchs ! /NO_APP ! .L1: ! leal -28(%ebp),%esp ! popl %ebx ! popl %esi ! popl %edi ! leave ! ret --- 1,190 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // This file started life as a C implemenation of pow, it then evolved ! // into an embeded asm version (with some C) and finally, all assembler. ! // It's actually hacked assembler produced by gcc. ! // ! // Copyright 1990 G. Geers ! // ! // X ! .data ! .align 4 ! .L92: ! .double 0.0000000000000000000000e+00 ! .data ! .align 4 ! .L94: ! .double 0.0000000000000000000000e+00 ! .data ! .align 4 ! .L96: ! .double 0.0000000000000000000000e+00 ! .data ! .align 4 ! .L99: ! .double 0.0000000000000000000000e+00 ! .align 4 ! .L100: ! .double 0.0000000000000000000000e+00 ! .data ! .align 4 ! .L101: ! .double 0.0000000000000000000000e+00 ! .data ! .align 4 ! .L103: ! .double 0.0000000000000000000000e+00 ! .data ! .align 4 ! .L104: ! .double 1.0000000000000000000000e+00 ! .data ! .long __fltused ! .text ! .align 4 ! .def pow; .val pow; .scl 2; .type 047; .endef ! .globl pow X pow: ! pushl %ebp ! movl %esp,%ebp ! subl $16,%esp ! movl $0,-4(%ebp) ! movl $1,-8(%ebp) ! fldl 8(%ebp) ! fcompl .L92 ! fstsw %ax ! sahf ! jae .L91 ! movl $1,-4(%ebp) ! // ! fldl 16(%ebp) ! fstcw -12(%ebp) ! fstcw -16(%ebp) ! orw $0x0400, -16(%ebp) ! fldcw -16(%ebp) ! frndint X fldcw -12(%ebp) ! // ! addl $8,%esp ! fsubrl 16(%ebp) ! fcompl .L94 ! fstsw %ax ! sahf ! je .L93 ! movl $33,errno ! pushl $.L95 ! pushl $_iob+32 ! call fprintf ! addl $8,%esp ! fldl .L96 ! .L106: ! .L88: ! leave ! ret ! .align 4 ! .L93: ! fstcw -12(%ebp) ! movw -12(%ebp),%ax ! orw $0x0c00,%ax ! movw %ax,-10(%ebp) ! fldcw -10(%ebp) X fldl 16(%ebp) ! fistpl -16(%ebp) ! fldcw -12(%ebp) ! movl -16(%ebp),%eax ! movl $2,%ecx ! cltd ! idivl %ecx ! testl %edx,%edx ! je .L97 ! movl $0,-8(%ebp) ! .L97: ! .L91: ! fldl 8(%ebp) ! fcompl .L100 ! fstsw %ax ! sahf ! jne .L98 ! fldl 16(%ebp) ! fcompl .L99 ! fstsw %ax ! sahf ! je .L98 ! fldl .L101 ! leave ! ret ! .align 4 ! .L98: ! fldl 16(%ebp) ! fcompl .L103 ! fstsw %ax ! sahf ! jne .L102 ! fldl .L104 ! leave ! ret ! .align 4 ! .L102: ! /ASM ! fldl 16(%ebp) ! /ASMEND0 ! /ASM ! fldl 8(%ebp) ! /ASMEND1 ! cmpl $0,-4(%ebp) ! je .L105 ! /ASM ! fchs ! /ASMEND2 ! .L105: ! /ASM ! fyl2x ! /ASMEND3 ! /ASM ! fst %st(1) ! /ASMEND4 ! /ASM ! frndint ! /ASMEND5 ! /ASM ! fst %st(2) ! /ASMEND6 ! /ASM ! fsubr %st(1), %st ! /ASMEND7 ! /ASM ! f2xm1 ! /ASMEND8 ! /ASM ! fld1 ! /ASMEND9 ! /ASM ! faddp %st, %st(1) ! /ASMEND10 ! /ASM ! fld %st(2) ! /ASMEND11 ! /ASM ! fstp %st(2) ! /ASMEND12 ! /ASM ! fscale ! /ASMEND13 ! cmpl $0,-8(%ebp) ! jne .L106 ! /ASM ! fchs ! /ASMEND14 ! leave ! ret ! .align 4 ! .def pow; .val .; .scl -1; .endef ! .data ! .L95: ! .byte 0x70,0x6f,0x77,0x3a,0x20,0x44,0x4f,0x4d,0x41,0x49 ! .byte 0x4e,0x20,0x45,0x52,0x52,0x4f,0x52,0x0a,0x00 ! .text *** ../rint.s Sun Dec 9 18:13:56 1990 --- rint.s Mon Dec 17 14:53:52 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl rint --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl rint *** ../scalb.s Thu Dec 13 13:55:10 1990 --- scalb.s Mon Dec 17 14:54:21 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl scalb --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl scalb *** ../setcont.s Sun Dec 9 18:13:57 1990 --- setcont.s Mon Dec 17 14:54:38 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl setcont --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl setcont *** ../setinternal.s Sun Dec 9 18:13:57 1990 --- setinternal.s Mon Dec 17 14:54:47 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl setinternal --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl setinternal *** ../sin.s Sun Dec 9 18:13:57 1990 --- sin.s Mon Dec 17 14:54:58 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl sin --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl sin *** ../sinh.s Sun Dec 16 08:51:42 1990 --- sinh.s Tue Dec 18 06:53:16 1990 *************** *** 1,15 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! ** This file started life as a C program but has been massively hacked. ! ** ! ** The coefficients are from Hart, et.al. via Berkeley ! ** ! */ X X .data X .align 4 --- 1,15 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // This file started life as a C program but has been massively hacked. ! // ! // The coefficients are from Hart, et.al. via Berkeley ! // ! // X X .data X .align 4 *************** *** 71,87 **** X jbe .L3 X fldl -8(%ebp) X fldl2e ! fmulp ! fstl %st(1) X frndint ! fstl %st(2) ! fsubrp X f2xm1 X fld1 ! faddp X fscale X fldl .LC1 ! fmulp X testl %edx,%edx X jg .L7 X fchs --- 71,87 ---- X jbe .L3 X fldl -8(%ebp) X fldl2e ! fmulp %st, %st(1) ! fst %st(1) X frndint ! fst %st(2) ! fsubrp %st, %st(1) X f2xm1 X fld1 ! faddp %st, %st(1) X fscale X fldl .LC1 ! fmulp %st, %st(1) X testl %edx,%edx X jg .L7 X fchs *************** *** 97,117 **** X jbe .L6 X fldl 8(%ebp) X fldl2e ! fmulp ! fstl %st(1) X frndint ! fstl %st(2) ! fsubrp X f2xm1 X fld1 ! faddp X fscale X fst %st(1) X fld1 ! fdivp ! fsubrp X fldl .LC1 ! fmulp X leave X ret X .L6: --- 97,117 ---- X jbe .L6 X fldl 8(%ebp) X fldl2e ! fmulp %st, %st(1) ! fst %st(1) X frndint ! fst %st(2) ! fsubrp %st, %st(1) X f2xm1 X fld1 ! faddp %st, %st(1) X fscale X fst %st(1) X fld1 ! fdivp %st, %st(1) ! fsubrp %st, %st(1) X fldl .LC1 ! fmulp %st, %st(1) X leave X ret X .L6: *** ../sqrt.s Sun Dec 9 18:13:57 1990 --- sqrt.s Mon Dec 17 14:58:28 1990 *************** *** 1,12 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! ** sqrt in the prevailing precision ! */ X X .align 4 X .globl sqrt --- 1,12 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // sqrt in the prevailing precision ! // X X .align 4 X .globl sqrt *** ../sqrtp.s Sun Dec 9 18:13:57 1990 --- sqrtp.s Mon Dec 17 14:58:52 1990 *************** *** 1,12 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! ** sqrt in 64 bit precision always ! */ X X .align 4 X .globl sqrtp --- 1,12 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // sqrt in 64 bit precision always ! // X X .align 4 X .globl sqrtp *** ../tan.s Sun Dec 9 18:13:57 1990 --- tan.s Mon Dec 17 14:59:55 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl tan --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl tan *** ../tanh.s Sun Dec 9 18:13:58 1990 --- tanh.s Tue Dec 18 06:56:49 1990 *************** *** 1,11 **** ! /* ! ** This file is part of the alternative 80386 math library and is ! ** covered by the GNU General Public license with my modification ! ** as noted in the README file that accompanied this file. ! ** ! ** Copyright 1990 G. Geers ! ** ! */ X X .align 4 X .globl tanh --- 1,11 ---- ! // ! // This file is part of the alternative 80386 math library and is ! // covered by the GNU General Public license with my modification ! // as noted in the README file that accompanied this file. ! // ! // Copyright 1990 G. Geers ! // ! // X X .align 4 X .globl tanh *************** *** 16,39 **** X X fldl 8(%ebp) X fldl2e ! fmulp ! fstl %st(1) X frndint ! fstl %st(2) ! fsubrp X f2xm1 X fld1 ! faddp X fscale ! fstl %st(1) X fstl -16(%ebp) X X fld1 ! fdivp X ! fsubr X faddl -16(%ebp) ! fdivrp X X leave X ret --- 16,39 ---- X X fldl 8(%ebp) X fldl2e ! fmulp %st, %st(1) ! fst %st(1) X frndint ! fst %st(2) ! fsubrp %st, %st(1) X f2xm1 X fld1 ! faddp %st, %st(1) X fscale ! fst %st(1) X fstl -16(%ebp) X X fld1 ! fdivp %st, %st(1) X ! fsubr %st(1), %st X faddl -16(%ebp) ! fdivrp %st, %st(1) X X leave X ret *** ../nextafter.c Mon Dec 17 12:00:23 1990 --- nextafter.c Tue Dec 18 10:03:34 1990 *************** *** 64,80 **** X asm("fldl .Lulpup"); X X asm("fldl -16(%ebp)"); ! asm("fmulp"); X X if (y > x) { X asm("fldl 8(%ebp)"); ! asm("faddp"); X asm("leave"); X asm("ret"); X } X if (y < x) { X asm("fldl 8(%ebp)"); ! asm("fsubp"); X asm("leave"); X asm("ret"); X } --- 64,80 ---- X asm("fldl .Lulpup"); X X asm("fldl -16(%ebp)"); ! asm("fmulp %st, %st(1)"); X X if (y > x) { X asm("fldl 8(%ebp)"); ! asm("faddp %st, %st(1)"); X asm("leave"); X asm("ret"); X } X if (y < x) { X asm("fldl 8(%ebp)"); ! asm("fsubp %st, %st(1)"); X asm("leave"); X asm("ret"); X } SHAR_EOF chmod 0644 att.pats || echo 'restore of att.pats failed' Wc_c="`wc -c < 'att.pats'`" test 40533 -eq "$Wc_c" || echo 'att.pats: original size 40533, current size' "$Wc_c" fi exit 0 -- Glenn Geers | "So when it's over, we're back to people. Department of Theoretical Physics | Just to prove that human touch can have The University of Sydney | no equal." Sydney NSW 2006 Australia | - Basia Trzetrzelewska, 'Prime Time TV'