|
From: Alex M. <ale...@us...> - 2006-11-05 23:34:47
|
Update of /cvsroot/win32forth/win32forth-stc/src/kernel In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv27486 Modified Files: gkernel.f Log Message: arm: better optimisation Index: gkernel.f =================================================================== RCS file: /cvsroot/win32forth/win32forth-stc/src/kernel/gkernel.f,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** gkernel.f 31 Oct 2006 00:06:53 -0000 1.23 --- gkernel.f 5 Nov 2006 23:34:42 -0000 1.24 *************** *** 1511,1515 **** code * ( n1 n2 -- n3 ) \ multiply n1 by n2, return single result n3 2 1 in/out ! mul dword [ebp] next; --- 1511,1515 ---- code * ( n1 n2 -- n3 ) \ multiply n1 by n2, return single result n3 2 1 in/out ! imul dword [ebp] next; *************** *** 2299,2302 **** --- 2299,2303 ---- -16 offset name>xtptr ( nfa -- xt-ptr ) + -1 offset n>flg ( nfa -- flag ) -2 offset n>tfa ( nfa -- tfa ) -4 offset n>ofa ( nfa -- ofa ) *************** *** 2471,2475 **** 0 1 in/out : create ( -<name>- ) \ pointer ['] dovar tvar dogen ! \ ['] (comp-create) compiles-last \ doesn't work because of DOES> needs fixed ; --- 2472,2476 ---- 0 1 in/out : create ( -<name>- ) \ pointer ['] dovar tvar dogen ! ['] (comp-create) compiles-last \ doesn't work because of DOES> needs fixed ; *************** *** 3570,3574 **** : header ( -<name>- ) \ build a header code-align \ align code section, temporary ! parse-word "header latestxt @ to ofa \ for length calculations of the code generated ; --- 3571,3575 ---- : header ( -<name>- ) \ build a header code-align \ align code section, temporary ! bl word count "header latestxt @ to ofa \ for length calculations of the code generated ; *************** *** 4659,4663 **** : (;code) ( -- ) \ compile code for does> r@ 1+ \ code for does> (after ret) ! last @ name>xt addr-off + dup>r \ xt for create, jump part - cell- \ make relative r> ! \ adjust jump part of xt of create --- 4660,4668 ---- : (;code) ( -- ) \ compile code for does> r@ 1+ \ code for does> (after ret) ! last @ name>xt \ last name created ( xt nfa ) ! dup >ct @ ['] execute <> if \ if this isn't an immediate ! ['] xt-call, over (compiles-set) \ reset the standard compile word ! then ! addr-off + dup>r \ xt for create, jump part - cell- \ make relative r> ! \ adjust jump part of xt of create *************** *** 5944,5956 **** \ -------------------- Various support words -------------------------- : in/out@ ( -- in out ) \ get the ste values ! last @ n>ste ! dup sc@ swap 1+ sc@ ; ! : (in/out) ( in out -- ) \ set the ste values last @ n>ste dup>r 1+ c! r> c! ; ! ' (in/out) alias in/out immediate \ immediate version \ --------------------------------------------------------------------- --- 5949,5963 ---- \ -------------------- Various support words -------------------------- + : (in/out@) ( nfa -- in out ) \ get the ste values + n>ste dup sc@ swap 1+ sc@ ; + : in/out@ ( -- in out ) \ get the ste values ! last @ (in/out@) ; ! : (in/out!) ( in out -- ) \ set the ste values last @ n>ste dup>r 1+ c! r> c! ; ! ' (in/out!) alias in/out immediate \ immediate version \ --------------------------------------------------------------------- |