--- gforth/xxxprim 2003/10/05 20:14:10 1.5 +++ gforth/xxxprim 2007/12/31 19:02:24 1.9 @@ -1,12 +1,12 @@ \ Gforth primitives -\ Copyright (C) 1995,1996,1997,1998,2000,2003 Free Software Foundation, Inc. +\ Copyright (C) 1995,1996,1997,1998,2000,2003,2007 Free Software Foundation, Inc. \ This file is part of Gforth. \ Gforth is free software; you can redistribute it and/or \ modify it under the terms of the GNU General Public License -\ as published by the Free Software Foundation; either version 2 +\ as published by the Free Software Foundation, either version 3 \ of the License, or (at your option) any later version. \ This program is distributed in the hope that it will be useful, @@ -15,8 +15,7 @@ \ GNU General Public License for more details. \ You should have received a copy of the GNU General Public License -\ along with this program; if not, write to the Free Software -\ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. +\ along with this program. If not, see http://www.gnu.org/licenses/. \ WARNING: This file is processed by m4. Make sure your identifiers @@ -148,13 +147,14 @@ \E create regs sp2 , sp1 , spTOS , \E IPregs 1 0 stack-state IPss1 -\E regs 0 -1 stack-state ss0 +\E regs 3 cells + 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 +\ the first of these is the default state \E state S1 +\E state S0 \E state S2 \E state S3 @@ -171,8 +171,9 @@ \E data-stack to cache-stack \E here 4 cache-states 2! s0 , s1 , s2 , s3 , -\E S1 to state-in -\E S1 to state-out +\E S1 to state-default +\E state-default to state-in +\E state-default to state-out + ( n1 n2 -- n ) core plus n = n1+n2; @@ -185,5 +186,19 @@ 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 branch-states ?branch + +\E gen-transitions noop +