Diff for /gforth/xxxprim between versions 1.2 and 1.9

version 1.2, 2003/09/29 20:51:16 version 1.9, 2007/12/31 19:02:24
Line 1 Line 1
 \ Gforth primitives  \ 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.  \ This file is part of Gforth.
   
 \ Gforth is free software; you can redistribute it and/or  \ Gforth is free software; you can redistribute it and/or
 \ modify it under the terms of the GNU General Public License  \ 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.  \ of the License, or (at your option) any later version.
   
 \ This program is distributed in the hope that it will be useful,  \ This program is distributed in the hope that it will be useful,
Line 15 Line 15
 \ GNU General Public License for more details.  \ GNU General Public License for more details.
   
 \ You should have received a copy of the GNU General Public License  \ You should have received a copy of the GNU General Public License
 \ along with this program; if not, write to the Free Software  \ along with this program. If not, see http://www.gnu.org/licenses/.
 \ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.  
   
   
 \ WARNING: This file is processed by m4. Make sure your identifiers  \ WARNING: This file is processed by m4. Make sure your identifiers
Line 138 Line 137
   
 \ set up stack caching states  \ set up stack caching states
   
   \E register IPTOS Cell
 \E register spTOS Cell  \E register spTOS Cell
 \E register sp1 Cell  \E register sp1 Cell
 \E register sp2 Cell  \E register sp2 Cell
 \E register sp3 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 IPregs 1 0 stack-state IPss1
 \E regs 1 1 stack-state ss1  \E regs 3 cells + 0 -1 stack-state ss0
 \E regs 2 2 stack-state ss2  \E regs 2 cells + 1  0 stack-state ss1
 \E regs 3 3 stack-state ss3  \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 S1
   \E state S0
 \E state S2  \E state S2
 \E state S3  \E state S3
   
 \E ss0 data-stack s0 set-ss  \E ss0 data-stack S0 set-ss
 \E ss1 data-stack s1 set-ss  \E ss1 data-stack S1 set-ss
 \E ss2 data-stack s2 set-ss  \E ss2 data-stack S2 set-ss
 \E ss3 data-stack s3 set-ss  \E ss3 data-stack S3 set-ss
   
 \E S1 to state-in  \E IPss1 inst-stream S0 set-ss
 \E S1 to state-out  \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-default
   \E state-default to state-in
   \E state-default to state-out
   
 +       ( n1 n2 -- n )          core    plus  +       ( n1 n2 -- n )          core    plus
 n = n1+n2;  n = n1+n2;
Line 169  n = n1+n2; Line 181  n = n1+n2;
 lit     ( #w -- w )             gforth  lit     ( #w -- w )             gforth
 :  :
  r> dup @ swap cell+ >r ;   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 branch-states ?branch
   
   \E gen-transitions noop
   

Removed from v.1.2  
changed lines
  Added in v.1.9


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