--- gforth/xxxprim 2003/10/02 18:58:47 1.4 +++ gforth/xxxprim 2003/10/08 13:17:10 1.6 @@ -148,10 +148,10 @@ \E create regs sp2 , sp1 , spTOS , \E IPregs 1 0 stack-state IPss1 -\E regs 0 0 stack-state ss0 -\E regs 2 cells + 1 1 stack-state ss1 -\E regs 1 cells + 2 2 stack-state ss2 -\E regs 0 cells + 3 3 stack-state ss3 +\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 @@ -168,8 +168,13 @@ \E IPss1 inst-stream S2 set-ss \E IPss1 inst-stream S3 set-ss -\E S1 to state-in -\E S1 to state-out +\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; @@ -181,3 +186,20 @@ lit ( #w -- w ) gforth 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 +