Diff for /gforth/prim between versions 1.143 and 1.146

version 1.143, 2003/09/01 22:12:46 version 1.146, 2003/10/09 20:25:59
Line 136 Line 136
 \ throw execute, cfa and NEXT1 out?  \ throw execute, cfa and NEXT1 out?
 \ macroize *ip, ip++, *ip++ (pipelining)?  \ macroize *ip, ip++, *ip++ (pipelining)?
   
   \ Stack caching setup
   
   \E register IPTOS Cell
   \E register spa Cell
   \E register spb Cell
   \E register spc Cell
   \E register spd Cell
   
   \E create IPregs IPTOS ,
   \E create regs spc , spb , spa ,
   
   \E IPregs 1 0 stack-state IPss1
   \E regs 3 cells + 0 0 stack-state ss0
   \E regs 2 cells + 1  0 stack-state ss1
   \E regs 1 cells + 2  1 stack-state ss2
   \E regs 0 cells + 3  2 stack-state ss3
   
   \ the first of these is the default state
   \E state S0
   \E state S1
   \E state S2
   \E state S3
   
   \E ss0 data-stack S0 set-ss
   \E ss1 data-stack S1 set-ss
   \E ss2 data-stack S2 set-ss
   \E ss3 data-stack S3 set-ss
   
   \E IPss1 inst-stream S0 set-ss
   \E IPss1 inst-stream S1 set-ss
   \E IPss1 inst-stream S2 set-ss
   \E IPss1 inst-stream S3 set-ss
   
   \E data-stack to cache-stack
   \E here 4 cache-states 2! s0 , s1 , s2 , s3 ,
   
   \ !! the following should be automatic
   \E S0 to state-default
   \E state-default to state-in
   \E state-default to state-out
   
 \ these m4 macros would collide with identifiers  \ these m4 macros would collide with identifiers
 undefine(`index')  undefine(`index')
 undefine(`shift')  undefine(`shift')
Line 1400  longname2=listlfind(c_addr, u, longname1 Line 1441  longname2=listlfind(c_addr, u, longname1
     REPEAT  THEN  nip nip ;      REPEAT  THEN  nip nip ;
 : (findl-samelen) ( u longname1 -- u longname2/0 )  : (findl-samelen) ( u longname1 -- u longname2/0 )
     BEGIN  2dup cell+ @ lcount-mask and <> WHILE  @  dup 0= UNTIL  THEN ;      BEGIN  2dup cell+ @ lcount-mask and <> WHILE  @  dup 0= UNTIL  THEN ;
   : capscomp ( c_addr1 u c_addr2 -- n )
    swap bounds
    ?DO  dup c@ I c@ <>
        IF  dup c@ toupper I c@ toupper =
        ELSE  true  THEN  WHILE  1+  LOOP  drop 0
    ELSE  c@ toupper I c@ toupper - unloop  THEN  sgn ;
   : sgn ( n -- -1/0/1 )
    dup 0= IF EXIT THEN  0< 2* 1+ ;
   
 \+hash  \+hash
   

Removed from v.1.143  
changed lines
  Added in v.1.146


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>