_gc instruction doesn't need slot to hold GC root area size, since that's just tagged-values>> length

db4
Slava Pestov 2009-08-09 03:08:13 -05:00
parent 1cb0f3370b
commit cc5476c823
4 changed files with 4 additions and 4 deletions

View File

@ -28,7 +28,7 @@ M: ##call compute-stack-frame*
M: _gc compute-stack-frame*
frame-required? on
stack-frame new swap gc-root-size>> cells >>gc-root-size
stack-frame new swap tagged-values>> length cells >>gc-root-size
request-stack-frame ;
M: _spill-area-size compute-stack-frame*

View File

@ -218,7 +218,7 @@ INSN: _fixnum-mul < _fixnum-overflow ;
TUPLE: spill-slot n ; C: <spill-slot> spill-slot
INSN: _gc temp1 temp2 data-values tagged-values gc-root-size uninitialized-locs ;
INSN: _gc temp1 temp2 data-values tagged-values uninitialized-locs ;
! These instructions operate on machine registers and not
! virtual registers

View File

@ -89,7 +89,7 @@ M: ##gc linearize-insn
[ temp1>> ]
[ temp2>> ]
[ data-values>> ]
[ tagged-values>> gc-root-offsets dup length ]
[ tagged-values>> gc-root-offsets ]
[ uninitialized-locs>> ]
} cleave
_gc ;

View File

@ -254,7 +254,7 @@ M: _gc generate-insn
[ [ uninitialized-locs>> ] [ temp1>> ] bi wipe-locs ]
[ data-values>> save-data-regs ]
[ [ tagged-values>> ] [ temp1>> ] bi save-gc-roots ]
[ gc-root-size>> %call-gc ]
[ tagged-values>> length %call-gc ]
[ [ tagged-values>> ] [ temp1>> ] bi load-gc-roots ]
[ data-values>> load-data-regs ]
} cleave