From f42719aa983d7b9bc1fe7931952d715a2b759381 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Fri, 9 May 2008 18:24:41 -0500 Subject: [PATCH] Fix PowerPC write barrier for real --- core/cpu/ppc/intrinsics/intrinsics.factor | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/core/cpu/ppc/intrinsics/intrinsics.factor b/core/cpu/ppc/intrinsics/intrinsics.factor index ac59deb8bb..fd9682aee7 100755 --- a/core/cpu/ppc/intrinsics/intrinsics.factor +++ b/core/cpu/ppc/intrinsics/intrinsics.factor @@ -61,17 +61,17 @@ IN: cpu.ppc.intrinsics : %write-barrier ( -- ) "val" get operand-immediate? "obj" get fresh-object? or [ - "scratch1" operand card-mark LI + card-mark "scratch1" operand LI ! Mark the card "val" operand load-cards-offset "obj" operand "scratch2" operand card-bits SRWI - "scratch1" operand "scratch2" operand "val" operand STBX + "scratch2" operand "scratch1" operand "val" operand STBX ! Mark the card deck "val" operand load-decks-offset "obj" operand "scratch2" operand deck-bits SRWI - "scratch1" operand "scratch2" operand "val" operand STBX + "scratch2" operand "scratch1" operand "val" operand STBX ] unless ; \ set-slot { @@ -87,7 +87,7 @@ IN: cpu.ppc.intrinsics { [ %slot-literal-any-tag STW %write-barrier ] H{ { +input+ { { f "val" } { f "obj" } { [ small-slot? ] "n" } } } - { +scratch+ { { f "scratch" } } } + { +scratch+ { { f "scratch1" } { f "scratch2" } } } { +clobber+ { "val" } } } } @@ -95,7 +95,7 @@ IN: cpu.ppc.intrinsics { [ %slot-any STWX %write-barrier ] H{ { +input+ { { f "val" } { f "obj" } { f "n" } } } - { +scratch+ { { f "scratch" } { f "offset" } } } + { +scratch+ { { f "scratch1" } { f "scratch2" } { f "offset" } } } { +clobber+ { "val" } } } }