From: George H. <geo...@us...> - 2005-11-15 10:42:48
|
Update of /cvsroot/win32forth/win32forth/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5436/win32forth/src Modified Files: FLOAT.F Log Message: gah: More optimisations to produce shorter and faster code and fixed a bug in ZF>D Index: FLOAT.F =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/FLOAT.F,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** FLOAT.F 7 Nov 2005 13:19:27 -0000 1.19 --- FLOAT.F 15 Nov 2005 10:42:39 -0000 1.20 *************** *** 34,37 **** --- 34,38 ---- \ gah Sunday, November 6 2005 major changes to macros to reduce code size and increase speed \ and make code more easy to port to STC (work in progress) + \ gah Monday, November 14 2005 corrected bug in ZF>D and further optimizations \ ------------------------------------------------------------------------- *************** *** 111,121 **** macro: FSP_MEMORY ( -- ) ! FSP [edx] endm macro: FSTACK_MEMORY ( -- ) ! FSTACK [ecx] [edx] endm macro: +FSTACK_MEMORY ( n -- ) ! FSTACK + [ecx] [edx] endm in-application --- 112,122 ---- macro: FSP_MEMORY ( -- ) ! FLOATSP [up] endm macro: FSTACK_MEMORY ( -- ) ! FLOATSTACK [ecx] [up] endm macro: +FSTACK_MEMORY ( n -- ) ! FLOATSTACK + [ecx] [up] endm in-application *************** *** 809,813 **** sub esp, # 8 fistp qword 0 [esp] ! xchg ebx, 0 [esp] float; --- 810,814 ---- sub esp, # 8 fistp qword 0 [esp] ! xchg ebx, 4 [esp] float; *************** *** 1619,1630 **** count -1 charcnt +! charcnt @ 0< ; ! code sig>f ( ?? -- ?? ) \ ?? fbld fbcd-buf ! mov ecx, FSP_MEMORY ! fstp FSIZE FSTACK_MEMORY ! add ecx, # B/FLOAT ! mov FSP_MEMORY , ecx ! next, ! end-code : >float-int ( f: -- r ) --- 1620,1627 ---- count -1 charcnt +! charcnt @ 0< ; ! code sig>f ( f: -- r ) \ Push contents of 80-bit BCD number in fbcd-buf onto FP stack fbld fbcd-buf ! fpu> ! float; : >float-int ( f: -- r ) *************** *** 2285,2287 **** L$2: next, end-code - |