SoftwareFPU

SoftwareFPU is a control panel for classic Mac OS from John Neil & Associates that emulated a floating-point unit on vintage Macintosh systems that did not have one.

Functionality
Some early software for classic Mac OS would try to execute instructions without first checking for the presence of a hardware floating-point unit. Under normal circumstances the Standard Apple Numerics Environment (SANE) could be used to execute such instructions, but poorly-written software that expected floating-point hardware without checking would not run or fail. SoftwareFPU would conduct the hardware checks, and redirect floating point instructions to a software emulator of the Motorola 68881. SoftwareFPU was somewhat slower than SANE and much slower than actual hardware, but acceptable over not running at all.

SoftwareFPU was released after Apple had released the entry-level Macintosh LC and IIsi with Motorola 68020 and 68030 processors, respectively, but without floating-point units to save manufacturing costs. SoftwareFPU became needed again when Apple released computers with 68LC040 processors without integrated floating-point hardware. However, some early 68LC040s contained a hardware bug that made running SoftwareFPU impossible.

SoftwareFPU found use again when Apple begin its transition from 68k to PowerPC processors. Though PowerPC processors contained floating-point hardware, the 68k emulator in classic Mac OS only emulated a 68LC040 without floating-point hardware, causing old 68k software that did not perform necessary hardware checks to fail again. Though SoftwareFPU 3.0 was available as a fat binary, running floating-point emulation with emulated 68k software was still very slow. John Neil & Associates then licensed PowerFPU from Todd Pittman, which would directly route such instructions to the appropriate PowerPC-native instructions, enabling significant performance improvements.