From 16140e65bc7b6a01019ae4163b3ed740bbabf5f3 Mon Sep 17 00:00:00 2001 From: slava Date: Fri, 24 Feb 2006 08:59:19 +0000 Subject: [PATCH] Temporarily revert a write barrier change --- TODO.FACTOR.txt | 1 + library/compiler/x86/slots.factor | 10 ++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/TODO.FACTOR.txt b/TODO.FACTOR.txt index dab9b86324..6ac3cfaef0 100644 --- a/TODO.FACTOR.txt +++ b/TODO.FACTOR.txt @@ -5,6 +5,7 @@ - delegating generic words with a non-standard picker - pass an integer stack pos instead of a quotation - yield in a loop starves i/o +- factoring out the callback quotation + portability: diff --git a/library/compiler/x86/slots.factor b/library/compiler/x86/slots.factor index 76dc399197..7f468f7c9c 100644 --- a/library/compiler/x86/slots.factor +++ b/library/compiler/x86/slots.factor @@ -22,8 +22,14 @@ M: %write-barrier generate-node ( vop -- ) #! Mark the card pointed to by vreg. drop 0 input-operand card-bits SHR - 0 input-operand card-offset [+] card-mark OR - rel-absolute-cell rel-cards ; + 0 scratch card-offset MOV rel-absolute-cell rel-cards + 0 scratch 0 input-operand ADD + 0 scratch [] card-mark OR ; + +! drop +! 0 input-operand card-bits SHR +! 0 input-operand card-offset [+] card-mark OR +! rel-absolute-cell rel-cards ; M: %set-slot generate-node ( vop -- ) drop