From: pito <pi...@vo...> - 2010-09-15 13:28:29
|
HI, thanks to Marcin, who had shown me again how the stack works, the f/ routine works within amforth as word f/. You may see the speed up (amforth 4.0, new f/ v1. in asm, @25Mhz): > : test_mul_forth timer-start 30000 0 do _pi _ln2 f* drop drop > loop > oktimer-stop 30000 s>f f/ fs. ." sec per mul-forth operation" ; ok > : test_div_asm timer-start 30000 0 do _pi _ln2 f/ drop drop loop oktimer-stop 30000 s>f f/ fs. ." sec per div-asm operation" ; ok > test_mul_forth 4.8192544E-3 sec per mul-forth operation ok > test_div_asm 6.6060271E-5 sec per div-asm operation ok > .s ok > _pi _ln2 f/ fs. 4.5323606 ok > The next step is f* (already waiting for debugging). Marcin did some improvements on the above asm f/ (e.g. he is not storing all regs used, some optimisation and inlineing) so his version of the f/ coud be faster by few usec. Pito. |