version 1.115, 2002/09/22 09:54:19
|
version 1.116, 2002/09/22 14:21:30
|
Line 89 variable out-nls \ newlines in output (f
|
Line 89 variable out-nls \ newlines in output (f
|
variable store-optimization \ use store optimization? |
variable store-optimization \ use store optimization? |
store-optimization off |
store-optimization off |
|
|
|
variable include-skipped-insts |
|
\ does the threaded code for a combined instruction include the cells |
|
\ for the component instructions (true) or only the cells for the |
|
\ inline arguments (false) |
|
include-skipped-insts off |
|
|
: th ( addr1 n -- addr2 ) |
: th ( addr1 n -- addr2 ) |
cells + ; |
cells + ; |
Line 947 stack inst-stream IP Cell
|
Line 952 stack inst-stream IP Cell
|
prim to combined |
prim to combined |
0 num-combined ! |
0 num-combined ! |
current-depth max-stacks cells erase |
current-depth max-stacks cells erase |
|
include-skipped-insts @ current-depth 0 th ! |
max-depth max-stacks cells erase |
max-depth max-stacks cells erase |
min-depth max-stacks cells erase |
min-depth max-stacks cells erase |
prim prim-effect-in prim prim-effect-in-end ! |
prim prim-effect-in prim prim-effect-in-end ! |
Line 958 stack inst-stream IP Cell
|
Line 964 stack inst-stream IP Cell
|
: min! ( n addr -- ) |
: min! ( n addr -- ) |
tuck @ min swap ! ; |
tuck @ min swap ! ; |
|
|
|
: inst-stream-correction ( nin1 nstack -- nin2 ) |
|
0= if |
|
include-skipped-insts @ - |
|
endif ; |
|
|
: add-depths { p -- } |
: add-depths { p -- } |
\ combine stack effect of p with *-depths |
\ combine stack effect of p with *-depths |
max-stacks 0 ?do |
max-stacks 0 ?do |
current-depth i th @ |
current-depth i th @ |
p prim-stacks-in i th @ + |
p prim-stacks-in i th @ + i inst-stream-correction |
dup max-depth i th max! |
dup max-depth i th max! |
p prim-stacks-out i th @ - |
p prim-stacks-out i th @ - |
dup min-depth i th min! |
dup min-depth i th min! |
Line 1110 stack inst-stream IP Cell
|
Line 1121 stack inst-stream IP Cell
|
|
|
\ This is intended as initializer for a structure like this |
\ This is intended as initializer for a structure like this |
|
|
\ struct super { |
\ struct cost { |
\ int loads; /* number of stack loads */ |
\ int loads; /* number of stack loads */ |
\ int stores; /* number of stack stores */ |
\ int stores; /* number of stack stores */ |
\ int updates; /* number of stack pointer updates */ |
\ int updates; /* number of stack pointer updates */ |