From 4fb83805780df8e2e2a34c781ca9b64e9dc5cf73 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Sat, 12 Jan 2008 22:57:13 -0500 Subject: [PATCH] Tweaking fixnum-shift-fast --- core/cpu/ppc/intrinsics/intrinsics.factor | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/core/cpu/ppc/intrinsics/intrinsics.factor b/core/cpu/ppc/intrinsics/intrinsics.factor index 6a49e34d58..f1a696b4e4 100755 --- a/core/cpu/ppc/intrinsics/intrinsics.factor +++ b/core/cpu/ppc/intrinsics/intrinsics.factor @@ -185,22 +185,21 @@ IN: cpu.ppc.intrinsics { [ { "positive" "end" } [ define-label ] each - { "x" "y" } %untag-fixnums + "y" operand "out" operand swap %untag-fixnum 0 "y" operand 0 CMPI "positive" get BGE "y" operand dup NEG - "out" operand "x" operand "y" operand SRAW + "out" operand "x" operand "out" operand SRAW "end" get B "positive" resolve-label - "out" operand "x" operand "y" operand SLW + "out" operand "x" operand "out" operand SLW "end" resolve-label ! Mask off low bits - "out" operand dup %tag-fixnum + "out" operand dup %untag ] H{ { +input+ { { f "x" } { f "y" } } } { +scratch+ { { f "out" } } } { +output+ { "out" } } - { +clobber+ { "x" "y" } } } } } define-intrinsics