From a3b5c07e8049bc62acc25c2811f0ef550fc64d20 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Mon, 2 Nov 2009 17:41:36 -0600 Subject: [PATCH] Minor bug fixes for 4-bit tags --- basis/compiler/cfg/gc-checks/gc-checks.factor | 4 ++-- basis/compiler/cfg/intrinsics/slots/slots.factor | 2 +- basis/cpu/x86/x86.factor | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/basis/compiler/cfg/gc-checks/gc-checks.factor b/basis/compiler/cfg/gc-checks/gc-checks.factor index 29616aaf8f..6d192ec54a 100644 --- a/basis/compiler/cfg/gc-checks/gc-checks.factor +++ b/basis/compiler/cfg/gc-checks/gc-checks.factor @@ -1,7 +1,7 @@ ! Copyright (C) 2009 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: accessors kernel sequences assocs fry math -cpu.architecture layouts +cpu.architecture layouts namespaces compiler.cfg.rpo compiler.cfg.registers compiler.cfg.instructions @@ -28,7 +28,7 @@ M: ##box-displaced-alien allocation-size* drop 5 cells ; : allocation-size ( bb -- n ) instructions>> [ ##allocation? ] filter - [ allocation-size* data-alignment align ] map-sum ; + [ allocation-size* data-alignment get align ] map-sum ; : insert-gc-check ( bb -- ) dup dup '[ diff --git a/basis/compiler/cfg/intrinsics/slots/slots.factor b/basis/compiler/cfg/intrinsics/slots/slots.factor index ad7891b78d..1424aba354 100644 --- a/basis/compiler/cfg/intrinsics/slots/slots.factor +++ b/basis/compiler/cfg/intrinsics/slots/slots.factor @@ -8,7 +8,7 @@ compiler.cfg.instructions compiler.cfg.utilities compiler.cfg.builder.blocks compiler.constants ; IN: compiler.cfg.intrinsics.slots -: value-tag ( info -- n ) class>> type-number ; inline +: value-tag ( info -- n ) class>> class-type ; inline : ^^tag-offset>slot ( slot tag -- vreg' ) [ ^^offset>slot ] dip ^^sub-imm ; diff --git a/basis/cpu/x86/x86.factor b/basis/cpu/x86/x86.factor index 7d576c0b1c..fc56113e90 100644 --- a/basis/cpu/x86/x86.factor +++ b/basis/cpu/x86/x86.factor @@ -208,8 +208,8 @@ M:: x86 %box-alien ( dst src temp -- ) dst 5 cells alien temp %allot dst 1 alien@ \ f type-number MOV ! base dst 2 alien@ \ f type-number MOV ! expired - dst 3 alien@ displacement MOV ! displacement - dst 4 alien@ displacement MOV ! address + dst 3 alien@ src MOV ! displacement + dst 4 alien@ src MOV ! address "end" resolve-label ] with-scope ;