Tweaking fixnum-shift-fast
parent
d54fc8172d
commit
4fb8380578
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue