From: George H. <geo...@us...> - 2006-09-28 10:16:54
|
Update of /cvsroot/win32forth/win32forth/src/old In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv8301/win32forth/src/old Modified Files: OPTIMIZE.F Log Message: gah:Added ACTION-OF (per F200X) and made DEFER@ a (temporary) deprecated synonym. Replaced defer@ by action-of (accept in 486asm). Added DEFER!. Support for extension queries (partial) added to environment.f Index: OPTIMIZE.F =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/old/OPTIMIZE.F,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** OPTIMIZE.F 21 Dec 2004 00:19:11 -0000 1.1 --- OPTIMIZE.F 28 Sep 2006 10:16:48 -0000 1.2 *************** *** 7,22 **** BUG: OPT-LAST opt-last is a value with initial 0. Used as a pointer to the last ! word optimised, it was used as opt-last @ optimizable? which only worked with origin=0 code (i.e., relocatable) as 0 pointed at the MAGIC word, which (fortunately) wasn't optimisable ;-). ! For origin<>0, this causes a fetch from ABSOLUTE 0, gives exception C0000005h. ! Fixed arm 4/10/2002 by pointing at _BEGIN in kernel (non-opt NCODE word) ! ! Temp fix: Won't generate in anything other than the DATA section, so the assembler is temporarily overridden to produce code there ! )) --- 7,22 ---- BUG: OPT-LAST opt-last is a value with initial 0. Used as a pointer to the last ! word optimised, it was used as opt-last @ optimizable? which only worked with origin=0 code (i.e., relocatable) as 0 pointed at the MAGIC word, which (fortunately) wasn't optimisable ;-). ! For origin<>0, this causes a fetch from ABSOLUTE 0, gives exception C0000005h. ! Fixed arm 4/10/2002 by pointing at _BEGIN in kernel (non-opt NCODE word) ! ! Temp fix: Won't generate in anything other than the DATA section, so the assembler is temporarily overridden to produce code there ! )) *************** *** 559,563 **** set-opt-last compile, \ compile a cfa address ! then then ; --- 559,563 ---- set-opt-last compile, \ compile a cfa address ! then then ; *************** *** 579,583 **** set-opt-last execute \ compile a cfa address ! then else 2drop \ discard flags set-opt-last --- 579,583 ---- set-opt-last execute \ compile a cfa address ! then else 2drop \ discard flags set-opt-last *************** *** 609,613 **** number, then ! else drop \ discard flag set-opt-last number, --- 609,613 ---- number, then ! else drop \ discard flag set-opt-last number, *************** *** 617,625 **** 0 value interpret-cnt \ compiles slowly, so give user something to look at ! 0 value opt-started? : OPT-INTERPRET ( -- ) begin bl word dup c@ ! while save-src \ cr pocket count type find ?dup --- 617,625 ---- 0 value interpret-cnt \ compiles slowly, so give user something to look at ! 0 value opt-started? : OPT-INTERPRET ( -- ) begin bl word dup c@ ! while save-src \ cr pocket count type find ?dup *************** *** 698,703 **** FALSE to opt-state ['] _BEGIN to opt-last \ arm ! defer@ interpret to prev-interpret ! ['] opt-interpret is interpret opt2data ; --- 698,703 ---- FALSE to opt-state ['] _BEGIN to opt-last \ arm ! action-of interpret to prev-interpret ! ['] opt-interpret is interpret opt2data ; *************** *** 708,712 **** if ['] _interpret then is interpret ! 0 to prev-interpret opt2code ; --- 708,712 ---- if ['] _interpret then is interpret ! 0 to prev-interpret opt2code ; |