]> gitweb.factorcode.org Git - factor.git/commitdiff
cpu.architecture: remove un-needed temp register in %bit-test
authorJohn Benediktsson <mrjbq7@gmail.com>
Tue, 22 Aug 2023 22:19:54 +0000 (15:19 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Tue, 22 Aug 2023 22:19:54 +0000 (15:19 -0700)
basis/compiler/cfg/instructions/instructions.factor
basis/cpu/architecture/architecture.factor
basis/cpu/arm/64/64.factor
basis/cpu/x86/x86.factor

index cf51510b66eb4815aa0c2ccd50bdd2261bf8b650..8b9a542d076cf86492ed8220d46a04cff95a5300 100644 (file)
@@ -226,8 +226,7 @@ use: src/int-rep ;
 
 FOLDABLE-INSN: ##bit-test
 def: dst/tagged-rep
-use: src1/int-rep src2/int-rep
-temp: temp/int-rep ;
+use: src1/int-rep src2/int-rep ;
 
 ! Float arithmetic
 FOLDABLE-INSN: ##add-float
index 306e18673ab338e4d37dcdcf8454ed2db61c2ec8..09d11055e21b5cf72f7988a5be857d8e52d4bf9b 100644 (file)
@@ -270,7 +270,7 @@ HOOK: %not     cpu ( dst src -- )
 HOOK: %neg     cpu ( dst src -- )
 HOOK: %log2    cpu ( dst src -- )
 HOOK: %bit-count cpu ( dst src -- )
-HOOK: %bit-test cpu ( dst src1 src2 temp -- )
+HOOK: %bit-test cpu ( dst src1 src2 -- )
 
 HOOK: %copy cpu ( dst src rep -- )
 
index 6335146dd3d35821ca9e83a62a76e4b1df822a19..80ded69add3fef87794074260fe928a09d37a412 100644 (file)
@@ -90,7 +90,7 @@ M: arm.64 %bit-count
     D0 swap DX FMOVgen ;
 
 M: arm.64 %bit-test
-    [ 2^ swap TSTi ] dip
+    [ 2^ swap TSTi ] keep
     swap dup EQ CSEL ;
 
 M: arm.64 %and rot ANDr ;
index e5837712738cd35fc44ecf19d9b59c94ffa15520..1baf5dbe41e80bafbba23699b7a45e23833b3023 100644 (file)
@@ -771,9 +771,9 @@ M: x86 immediate-bitwise?
         { cc/<>= [ src1 src2 compare call( a b -- ) label JP ] }
     } case ;
 
-M:: x86 %bit-test ( dst src1 src2 temp -- )
+M:: x86 %bit-test ( dst src1 src2 -- )
     src1 src2 BT
-    dst temp \ CMOVB (%boolean) ;
+    dst src2 \ CMOVB (%boolean) ;
 
 M: x86 enable-cpu-features
     enable-min/max