I didn't find much in the archives for this so I wrote my own....
This routine gets ~27000 multiplies per second in VBA which means on
the real hardware its probably around ~22000 [my gba broke so I can't
test it myself...]
What the code does is a 32x32 multiply then a shift right by 16 bits so
it emulates a multiply for a 16.16 system.
I used a standard double/add method but I think if I could take
advantage of the ARM multiplier somehow that may prove useful. However
two major obstacles, the multiplier is unsigned and it doesn't produce
the upper 32 bits [well at least not in Thumb mode].
The code is at http://tomstdenis.home.dhs.org/mylib.zip
Under /sqrt/sqrt.bin is a precompiled binary for the demo [I used it to
time my sqrt function and then my fmul32].
The source for this function is in GAS assembler code in the files
/lib/amath.s
Anyone else have info on this particular operation? Could someone
please time this on real hardware?
Tom
__________________________________________________
Do You Yahoo!?
Yahoo! Health - your guide to health and wellness
http://health.yahoo.com