2010-04-27 10:51:00 -04:00
|
|
|
! Copyright (C) 2009, 2010 Slava Pestov.
|
2008-09-17 20:31:35 -04:00
|
|
|
! See http://factorcode.org/license.txt for BSD license.
|
2014-12-13 19:10:21 -05:00
|
|
|
USING: accessors kernel math namespaces ;
|
2008-09-17 20:31:35 -04:00
|
|
|
IN: compiler.cfg.stack-frame
|
|
|
|
|
2009-06-02 19:23:47 -04:00
|
|
|
TUPLE: stack-frame
|
|
|
|
{ params integer }
|
2010-05-22 01:25:10 -04:00
|
|
|
{ allot-area-size integer }
|
|
|
|
{ allot-area-align integer }
|
2009-10-20 06:02:42 -04:00
|
|
|
{ spill-area-size integer }
|
2010-05-22 01:25:10 -04:00
|
|
|
{ spill-area-align integer }
|
|
|
|
|
|
|
|
{ total-size integer }
|
|
|
|
{ allot-area-base integer }
|
|
|
|
{ spill-area-base integer } ;
|
2008-09-17 20:31:35 -04:00
|
|
|
|
2010-05-19 00:33:15 -04:00
|
|
|
: local-allot-offset ( n -- offset )
|
2010-05-22 01:25:10 -04:00
|
|
|
stack-frame get allot-area-base>> + ;
|
2008-09-17 20:31:35 -04:00
|
|
|
|
2009-08-07 18:44:50 -04:00
|
|
|
: spill-offset ( n -- offset )
|
2010-05-22 01:25:10 -04:00
|
|
|
stack-frame get spill-area-base>> + ;
|
2008-11-06 20:00:56 -05:00
|
|
|
|
2009-06-02 19:23:47 -04:00
|
|
|
: (stack-frame-size) ( stack-frame -- n )
|
2010-05-22 01:25:10 -04:00
|
|
|
[ spill-area-base>> ] [ spill-area-size>> ] bi + ;
|