1\ stack cache setup: default state S1
2
3\ Copyright (C) 2003,2004,2005,2006,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 register fpTOS Float
31
32\E create IPregs IPTOS ,
33\E create regs sph , spg , spf , spe , spd , spc , spb , spTOS ,
34\ \E create regs spTOS ,
35\E create fpregs fpTOS ,
36
37\E IPregs 1 0 stack-state IPss1
38\E regs 8 th 0  -1 stack-state ss0
39\E regs 7 th 1  0 stack-state ss1
40\E regs 6 th 2  1 stack-state ss2
41\E regs 5 th 3  2 stack-state ss3
42\E regs 4 th 4  3 stack-state ss4
43\E regs 3 th 5  4 stack-state ss5
44\E regs 2 th 6  5 stack-state ss6
45\E regs 1 th 7  6 stack-state ss7
46\E regs 0 th 8  7 stack-state ss8
47\ \E regs 1 th 0 -1 stack-state ss0
48\ \E regs           1  0 stack-state ss1
49\E fpregs 0 th 1 0 stack-state fpss1
50
51\ the first of these is the default state (for now)
52\E state S1
53\E state S0
54\E state S2
55\E state S3
56\E state S4
57\E state S5
58\E state S6
59\E state S7
60\E state S8
61
62include(STACK_CACHE_REGS)
63
64\E ss0 data-stack S0 set-ss
65\E ss1 data-stack S1 set-ss
66\E ss2 data-stack S2 set-ss
67\E ss3 data-stack S3 set-ss
68\E ss4 data-stack S4 set-ss
69\E ss5 data-stack S5 set-ss
70\E ss6 data-stack S6 set-ss
71\E ss7 data-stack S7 set-ss
72\E ss8 data-stack S8 set-ss
73
74\E IPss1 inst-stream S0 set-ss
75\E IPss1 inst-stream S1 set-ss
76\E IPss1 inst-stream S2 set-ss
77\E IPss1 inst-stream S3 set-ss
78\E IPss1 inst-stream S4 set-ss
79\E IPss1 inst-stream S5 set-ss
80\E IPss1 inst-stream S6 set-ss
81\E IPss1 inst-stream S7 set-ss
82\E IPss1 inst-stream S8 set-ss
83
84\E fpss1 fp-stack S0 set-ss
85\E fpss1 fp-stack S1 set-ss
86\E fpss1 fp-stack S2 set-ss
87\E fpss1 fp-stack S3 set-ss
88\E fpss1 fp-stack S4 set-ss
89\E fpss1 fp-stack S5 set-ss
90\E fpss1 fp-stack S6 set-ss
91\E fpss1 fp-stack S7 set-ss
92\E fpss1 fp-stack S8 set-ss
93
94\E data-stack to cache-stack
95\E here 9 cache-states 2! s0 , s1 , s2 , s3 , s4 , s5 , s6 , s7 , s8 ,
96\ \E here 2 cache-states 2! s0 , s1 ,
97
98\ !! the following should be automatic
99\E S1 to state-default
100\E state-default to state-in
101\E state-default to state-out
102