1\ stack cache setup
2
3\ Copyright (C) 2003,2004,2005,2007,2008 Free Software Foundation, Inc.
4
5\ This file is part of Gforth.
6
7\ Gforth is free software; you can redistribute it and/or
8\ modify it under the terms of the GNU General Public License
9\ as published by the Free Software Foundation, either version 3
10\ of the License, or (at your option) any later version.
11
12\ This program is distributed in the hope that it will be useful,
13\ but WITHOUT ANY WARRANTY; without even the implied warranty of
14\ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15\ GNU General Public License for more details.
16
17\ You should have received a copy of the GNU General Public License
18\ along with this program. If not, see http://www.gnu.org/licenses/.
19
20\E register IPTOS Cell
21\E register spTOS Cell
22\E register spb Cell
23\E register spc Cell
24\E register spd Cell
25\E register spe Cell
26\E register spf Cell
27\E register spg Cell
28\E register sph Cell
29
30\E create IPregs IPTOS ,
31\E create regs sph , spg , spf , spe , spd , spc , spb , spTOS ,
32\ \E create regs spTOS ,
33
34\E IPregs 1 0 stack-state IPss1
35\E regs 8 th 0  -1 stack-state ss0
36\E regs 7 th 1  0 stack-state ss1
37\E regs 6 th 2  1 stack-state ss2
38\E regs 5 th 3  2 stack-state ss3
39\E regs 4 th 4  3 stack-state ss4
40\E regs 3 th 5  4 stack-state ss5
41\E regs 2 th 6  5 stack-state ss6
42\E regs 1 th 7  6 stack-state ss7
43\E regs 0 th 8  7 stack-state ss8
44\ \E regs 1 th 0 -1 stack-state ss0
45\ \E regs           1  0 stack-state ss1
46
47\ the first of these is the default state (for now)
48\E state S0
49\E state S1
50\E state S2
51\E state S3
52\E state S4
53\E state S5
54\E state S6
55\E state S7
56\E state S8
57
58include(STACK_CACHE_REGS)
59
60\E ss0 data-stack S0 set-ss
61\E ss1 data-stack S1 set-ss
62\E ss2 data-stack S2 set-ss
63\E ss3 data-stack S3 set-ss
64\E ss4 data-stack S4 set-ss
65\E ss5 data-stack S5 set-ss
66\E ss6 data-stack S6 set-ss
67\E ss7 data-stack S7 set-ss
68\E ss8 data-stack S8 set-ss
69
70\E IPss1 inst-stream S0 set-ss
71\E IPss1 inst-stream S1 set-ss
72\E IPss1 inst-stream S2 set-ss
73\E IPss1 inst-stream S3 set-ss
74\E IPss1 inst-stream S4 set-ss
75\E IPss1 inst-stream S5 set-ss
76\E IPss1 inst-stream S6 set-ss
77\E IPss1 inst-stream S7 set-ss
78\E IPss1 inst-stream S8 set-ss
79
80\E data-stack to cache-stack
81\E here 9 cache-states 2! s0 , s1 , s2 , s3 , s4 , s5 , s6 , s7 , s8 ,
82\ \E here 2 cache-states 2! s0 , s1 ,
83
84\ !! the following should be automatic
85\E S0 to state-default
86\E state-default to state-in
87\E state-default to state-out
88