From cc5476c823e569a7d124b842ae85cdaf356a2ee0 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Sun, 9 Aug 2009 03:08:13 -0500 Subject: [PATCH] _gc instruction doesn't need slot to hold GC root area size, since that's just tagged-values>> length --- basis/compiler/cfg/build-stack-frame/build-stack-frame.factor | 2 +- basis/compiler/cfg/instructions/instructions.factor | 2 +- basis/compiler/cfg/linearization/linearization.factor | 2 +- basis/compiler/codegen/codegen.factor | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/basis/compiler/cfg/build-stack-frame/build-stack-frame.factor b/basis/compiler/cfg/build-stack-frame/build-stack-frame.factor index af633b3b58..0155ea519d 100644 --- a/basis/compiler/cfg/build-stack-frame/build-stack-frame.factor +++ b/basis/compiler/cfg/build-stack-frame/build-stack-frame.factor @@ -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* diff --git a/basis/compiler/cfg/instructions/instructions.factor b/basis/compiler/cfg/instructions/instructions.factor index c223db29ee..4cf4340bd7 100644 --- a/basis/compiler/cfg/instructions/instructions.factor +++ b/basis/compiler/cfg/instructions/instructions.factor @@ -218,7 +218,7 @@ INSN: _fixnum-mul < _fixnum-overflow ; TUPLE: spill-slot n ; C: 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 diff --git a/basis/compiler/cfg/linearization/linearization.factor b/basis/compiler/cfg/linearization/linearization.factor index 97d00c1ed3..32df6233bd 100755 --- a/basis/compiler/cfg/linearization/linearization.factor +++ b/basis/compiler/cfg/linearization/linearization.factor @@ -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 ; diff --git a/basis/compiler/codegen/codegen.factor b/basis/compiler/codegen/codegen.factor index c2342c1914..d1a09394cd 100755 --- a/basis/compiler/codegen/codegen.factor +++ b/basis/compiler/codegen/codegen.factor @@ -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