Short: Patches executables to use '020+ math instructions
Uploader: Mark Knibbs lambada oit unc edu
Type: util/misc
Architecture: m68k-amigaos
PatchMath020
This program "snoops" through other programs looking for 32 bit
interger multiply, divide and modulus subroutines and replaces
them with 68020 multiply, divide and modulus instructions. The
68000 only has 16 bit multiply and 16 bit divide (divide a 32 bit
number by a 16 bit number giving a 16 bit result and a 16 bit
modulus) instructions. C compilers for the Amiga all generate
68000 code so they must make subroutine calls to perform full
32 bit math.
This program recognizes several of these library modules and can
replace 20 or thirty opcodes with two: the multiply or divide
followed by RTS.
Programs which use 32 bit math intensively may run significantly
faster after being treated with PatchMath020. A few modified
programs run 2 to 3 times faster than the originals. A more
common result is 15 to 20 percent faster due to the fact that
multiply/divide/modulus is usually a small fraction of the
instructions executed. As an example, Sculpt 3D's object editor
runs 15% faster after being modified by PatchMath020. Silver
runs an additional 40% faster.
Note that the program is modified "in place" so be sure to
make a backup before running PatchMath020 on you program.
Also note that these modified programs will no longer run on
normal Amigas.
[PatchMath020 was supplied with Hurricane accelerator cards. It works with
many programs, such as SA4D 2.09, Imagine 2.0, etc. It needs to be updated to
recognise the routines used by recent compilers.]