Tweaking fixnum-shift-fast

db4
Slava Pestov 2008-01-12 22:57:13 -05:00
parent d54fc8172d
commit 4fb8380578
1 changed files with 4 additions and 5 deletions

View File

@ -185,22 +185,21 @@ IN: cpu.ppc.intrinsics
{ {
[ [
{ "positive" "end" } [ define-label ] each { "positive" "end" } [ define-label ] each
{ "x" "y" } %untag-fixnums "y" operand "out" operand swap %untag-fixnum
0 "y" operand 0 CMPI 0 "y" operand 0 CMPI
"positive" get BGE "positive" get BGE
"y" operand dup NEG "y" operand dup NEG
"out" operand "x" operand "y" operand SRAW "out" operand "x" operand "out" operand SRAW
"end" get B "end" get B
"positive" resolve-label "positive" resolve-label
"out" operand "x" operand "y" operand SLW "out" operand "x" operand "out" operand SLW
"end" resolve-label "end" resolve-label
! Mask off low bits ! Mask off low bits
"out" operand dup %tag-fixnum "out" operand dup %untag
] H{ ] H{
{ +input+ { { f "x" } { f "y" } } } { +input+ { { f "x" } { f "y" } } }
{ +scratch+ { { f "out" } } } { +scratch+ { { f "out" } } }
{ +output+ { "out" } } { +output+ { "out" } }
{ +clobber+ { "x" "y" } }
} }
} }
} define-intrinsics } define-intrinsics