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
\ ---------------------------------------------------------------------
|