FOLDABLE-INSN: ##bit-test
def: dst/tagged-rep
-use: src1/int-rep src2/int-rep ;
+use: src1/int-rep src2/int-rep
+temp: temp/int-rep ;
! Float arithmetic
FOLDABLE-INSN: ##add-float
HOOK: %neg cpu ( dst src -- )
HOOK: %log2 cpu ( dst src -- )
HOOK: %bit-count cpu ( dst src -- )
-HOOK: %bit-test cpu ( dst src1 src2 -- )
+HOOK: %bit-test cpu ( dst src1 src2 temp -- )
HOOK: %copy cpu ( dst src rep -- )
D0 swap DX FMOVgen ;
M: arm.64 %bit-test
- [ 2^ swap TSTi ] keep
+ [ 2^ swap TSTi ] dip
swap dup EQ CSEL ;
M: arm.64 %and rot ANDr ;
{ cc/<>= [ src1 src2 compare call( a b -- ) label JP ] }
} case ;
-M:: x86 %bit-test ( dst src1 src2 -- )
+M:: x86 %bit-test ( dst src1 src2 temp -- )
src1 src2 BT
- dst src2 \ CMOVB (%boolean) ;
+ dst temp \ CMOVB (%boolean) ;
M: x86 enable-cpu-features
enable-min/max