From 19283ed83d38c76f3b07d9e9ffd414938b33bd77 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Tue, 10 Nov 2009 17:30:27 -0600 Subject: [PATCH] compiler.cfg.intrinsics.slots: new implementation of value-tag --- basis/compiler/cfg/intrinsics/slots/slots.factor | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/basis/compiler/cfg/intrinsics/slots/slots.factor b/basis/compiler/cfg/intrinsics/slots/slots.factor index 1424aba354..1ceac4990a 100644 --- a/basis/compiler/cfg/intrinsics/slots/slots.factor +++ b/basis/compiler/cfg/intrinsics/slots/slots.factor @@ -1,14 +1,17 @@ ! Copyright (C) 2008, 2009 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: layouts namespaces kernel accessors sequences math -classes.algebra locals combinators cpu.architecture -compiler.tree.propagation.info compiler.cfg.stacks -compiler.cfg.hats compiler.cfg.registers +classes.algebra classes.builtin locals combinators +cpu.architecture compiler.tree.propagation.info +compiler.cfg.stacks compiler.cfg.hats compiler.cfg.registers compiler.cfg.instructions compiler.cfg.utilities compiler.cfg.builder.blocks compiler.constants ; IN: compiler.cfg.intrinsics.slots -: value-tag ( info -- n ) class>> class-type ; inline +: class-tag ( class -- tag/f ) + builtins get [ class<= ] with find drop ; + +: value-tag ( info -- n ) class>> class-tag ; : ^^tag-offset>slot ( slot tag -- vreg' ) [ ^^offset>slot ] dip ^^sub-imm ;