| default-ss s state-sss i th ! |
default-ss s state-sss i th ! |
| loop ; |
loop ; |
| |
|
| |
: .state ( state -- ) |
| |
0 >body - >name .name ; |
| |
|
| : set-ss ( ss stack state -- ) |
: set-ss ( ss stack state -- ) |
| state-sss swap stack-number @ th ! ; |
state-sss swap stack-number @ th ! ; |
| |
|
| ." LABEL(" prim prim-c-name 2@ type ." )" ; |
." LABEL(" prim prim-c-name 2@ type ." )" ; |
| |
|
| : output-c ( -- ) |
: output-c ( -- ) |
| print-entry ." /* " prim prim-name 2@ type ." ( " prim prim-stack-string 2@ type ." ) */" cr |
print-entry ." /* " prim prim-name 2@ type |
| |
." ( " prim prim-stack-string 2@ type ." ) " |
| |
state-in .state ." -- " state-out .state ." */" cr |
| ." /* " prim prim-doc 2@ type ." */" cr |
." /* " prim prim-doc 2@ type ." */" cr |
| ." NAME(" quote prim prim-name 2@ type quote ." )" cr \ debugging |
." NAME(" quote prim prim-name 2@ type quote ." )" cr \ debugging |
| ." {" cr |
." {" cr |
| rot 2 .r ." ," swap 2 .r ." ," 2 .r ." , " |
rot 2 .r ." ," swap 2 .r ." ," 2 .r ." , " |
| prim prim-branch? negate . ." ," |
prim prim-branch? negate . ." ," |
| state-in state-number @ 2 .r ." ," |
state-in state-number @ 2 .r ." ," |
| state-out state-number @ 2 .r ." ," ; |
state-out state-number @ 2 .r ." ," |
| |
inst-stream stack-in @ 1 .r ." ," |
| |
; |
| |
|
| : output-costs-gforth-simple ( -- ) |
: output-costs-gforth-simple ( -- ) |
| output-costs-prefix |
output-costs-prefix |
| output-name-comment |
output-name-comment |
| cr ; |
cr ; |
| |
|
| : output-costs ( -- ) |
\ : output-costs ( -- ) |
| \ description of superinstructions and simple instructions |
\ \ description of superinstructions and simple instructions |
| ." {" prim compute-costs |
\ ." {" prim compute-costs |
| rot 2 .r ." ," swap 2 .r ." ," 2 .r ." ," |
\ rot 2 .r ." ," swap 2 .r ." ," 2 .r ." ," |
| offset-super2 @ 5 .r ." ," |
\ offset-super2 @ 5 .r ." ," |
| super2-length dup 2 .r ." }," offset-super2 +! |
\ super2-length dup 2 .r ." ," offset-super2 +! |
| output-name-comment |
\ inst-stream stack-in @ 1 .r ." }," |
| cr ; |
\ output-name-comment |
| |
\ cr ; |
| |
|
| : output-super2-simple ( -- ) |
: output-super2-simple ( -- ) |
| prim prim-c-name 2@ prim prim-c-name-orig 2@ d= if |
prim prim-c-name 2@ prim prim-c-name-orig 2@ d= if |