_gc instruction doesn't need slot to hold GC root area size, since that's just tagged-values>> length
parent
1cb0f3370b
commit
cc5476c823
|
@ -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*
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ;
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue