]> gitweb.factorcode.org Git - factor.git/commitdiff
_gc instruction doesn't need slot to hold GC root area size, since that's just tagged...
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Sun, 9 Aug 2009 08:08:13 +0000 (03:08 -0500)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Sun, 9 Aug 2009 08:08:13 +0000 (03:08 -0500)
basis/compiler/cfg/build-stack-frame/build-stack-frame.factor
basis/compiler/cfg/instructions/instructions.factor
basis/compiler/cfg/linearization/linearization.factor
basis/compiler/codegen/codegen.factor

index af633b3b58759f9e09cfa326056373e20c85a58e..0155ea519d48bd07a0244b54fc4f8595e0816305 100644 (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*
index c223db29eeef537be739929d0396f524e47db7e5..4cf4340bd776ffe1fccddc8bb6682bff7f1645a4 100644 (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
index 97d00c1ed3312e826a30e26c47c8d8ca8e1dfd65..32df6233bd49f54fd203b6930fbc358fd238cdb7 100755 (executable)
@@ -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 ;
index c2342c19149382593397d14e86bcd1b6331e4e90..d1a09394cd99374c611054e5c97cc2dcb00a58ec 100755 (executable)
@@ -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