1 USING: accessors compiler.cfg.build-stack-frame
2 compiler.cfg.instructions compiler.cfg.linearization
3 compiler.cfg.stack-frame compiler.cfg.utilities cpu.x86 kernel math
4 sequences slots.syntax tools.test ;
5 IN: compiler.cfg.build-stack-frame.tests
12 ! 91 8 align 16 + 16 8 align + cell + 16 align
17 { allot-area-align 8 }
18 { allot-area-size 10 }
19 { spill-area-align 8 }
20 { spill-area-size 16 }
21 } finalize-stack-frame
22 slots[ allot-area-base spill-area-base total-size ]
23 ! Exclude any reserved stack space 32 bytes on win64, 0 bytes
24 ! on all other platforms.
25 reserved-stack-space -
29 { } insns>cfg dup build-stack-frame stack-frame>>
33 { T{ ##call-gc } } insns>cfg dup build-stack-frame
34 stack-frame>> stack-frame?
40 T{ ##local-allot { dst 1 } { size 32 } { align 8 } }
41 } insns>cfg dup build-stack-frame cfg>insns last offset>>