--- gforth/xxxprim 2003/09/29 20:51:16 1.2 +++ gforth/xxxprim 2003/10/08 13:17:10 1.6 @@ -138,30 +138,43 @@ \ set up stack caching states +\E register IPTOS Cell \E register spTOS Cell \E register sp1 Cell \E register sp2 Cell \E register sp3 Cell -\E create regs spTOS , sp1 , sp2 , sp3 , +\E create IPregs IPTOS , +\E create regs sp2 , sp1 , spTOS , -\E regs 0 0 stack-state ss0 -\E regs 1 1 stack-state ss1 -\E regs 2 2 stack-state ss2 -\E regs 3 3 stack-state ss3 +\E IPregs 1 0 stack-state IPss1 +\E regs 0 -1 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 \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 S1 to state-in -\E S1 to state-out +\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 , + +\E S1 to state-in-default +\E S1 to state-out-default +\E state-in-default to state-in +\E state-out-default to state-out + ( n1 n2 -- n ) core plus n = n1+n2; @@ -169,3 +182,24 @@ n = n1+n2; lit ( #w -- w ) gforth : r> dup @ swap cell+ >r ; + +over ( n1 n2 -- n1 n2 n1 ) + +drop ( n -- ) + +?branch ( #a_target f -- ) f83 question_branch +if (f==0) { + SET_IP((Xt *)a_target); + INST_TAIL; NEXT_P2; +} +SUPER_CONTINUE; + +noop ( -- ) + +\E prim-states drop +\E prim-states over + +\E S1 branch-states ?branch + +\E gen-transitions noop +