ftp.nice.ch/pub/next/developer/hardware/m68k/libFPSP.1.p2.N.s.tar.gz

Makefile
 
NeXTglue.s
 
README
 
arch/
 
l_do_func.s
 
l_entry.s
 
l_fpsp.h
[View l_fpsp.h] 
l_round.s
 
l_sacos.s
 
l_sasin.s
 
l_satan.s
 
l_satanh.s
 
l_scale.s
 
l_scosh.s
 
l_setox.s
 
l_sgetem.s
 
l_sint.s
 
l_slog2.s
 
l_slogn.s
 
l_srem_mod.s
 
l_ssin.s
 
l_ssinh.s
 
l_stan.s
 
l_stanh.s
 
l_stwotox.s
 
l_support.s
 
test/
 

README

Motorola M68040FPSP library routines for NeXT 68040 machines.
Patch level 2.
	Fix up sincos entry point.

Patch level 1.
	Add a bunch more C entry points.
	Add declarations to fend off NeXT library routines.

Installation
============
1. Create a new directory, `cd' to it.
2. Uncompress and `un-tar' the source files.
   You should than have:
   In the current directory:
	a Makefile, a README, and a bunch of assembler source files.
   In the arch subdirectory:
	The original source from the Motorola BBS.
   In the test subdirectory:
	A program to test the library routines.
3. Type `make install' to assemble the routines, create the library, and
   install the library in /usr/local/lib/libFPSP.a.

The FPSP library is now ready to use.
To use the routines with your programs, just add a `-lFPSP' to the
appropriate spots in your makefiles.


Comments
========
A number of people who have tried these routines have sent me mail
about the libjv package also available on the archives.  Yes, that
package *is* faster than the M68040FPSP routines, but the speed comes
at the cost of reduced accuracy.


Caveats
=======
These are the Motorola FPSP library routines translated to `gas' syntax.
I had to work around a bunch of assembler bugs, the worst being that
instructions like
	fcmps	#0x3FF80000,fp0
would not assemble properly.  You can find all the places I had to do
this by doing a
	grep '|||' *.s
The original instruction is included as a comment on each of these lines
so you can see what should be there.

I *hope* I got all the translations correct.  Use this software at your
own risk!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

I was unable to figure out how to make the assembler generate a
floating-point-condition-branch instruction with a word offset.  The
assembler insists on emitting a long offset even when the target is
only a few instructions away.  This makes the routines run slower, and
take up more space, than they otherwise would.

The file NeXTglue.s contains the `glue' routines which provide C entry
points to the functions.  I threw these glue routines together pretty
quickly.  If someone else takes the time to redo them correctly please
send the improved routinse back to me.  I had to put in some `magic'
declarations to keep the loader from trying to pull in the floating
point support routines from /lib/libsys_s.a -- again I hope I got 
this right.

Eric Norum                     		eric@skatter.usask.ca
Saskatchewan Accelerator Laboratory
University of Saskatchewan
Saskatoon, Canada.             		NeXTMail accepted.

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.