File:  [gforth] / gforth / cache1.vmg
Revision 1.1: download - view: text, annotated - select for diffs
Sun Nov 2 22:15:28 2003 UTC (15 years ago) by anton
Branches: MAIN
CVS tags: HEAD
more work on stack caching

\ stack cache setup

\ Copyright (C) 2003 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
\ of the License, or (at your option) any later version.

\ This program is distributed in the hope that it will be useful,
\ but WITHOUT ANY WARRANTY; without even the implied warranty of
\ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
\ 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.

\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  1 stack-state ss1
\E regs 1 cells + 2  2 stack-state ss2
\E regs 0 cells + 3  3 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

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