]> gitweb.factorcode.org Git - factor.git/commitdiff
Revert "cpu.architecture: remove un-needed temp register in %bit-test"
authorJohn Benediktsson <mrjbq7@gmail.com>
Tue, 22 Aug 2023 23:08:14 +0000 (16:08 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Tue, 22 Aug 2023 23:08:14 +0000 (16:08 -0700)
This reverts commit 18b341da00a8a5df7b4d58d76ab1465eee8555e3.

basis/compiler/cfg/instructions/instructions.factor
basis/cpu/architecture/architecture.factor
basis/cpu/arm/64/64.factor
basis/cpu/x86/x86.factor

index 8b9a542d076cf86492ed8220d46a04cff95a5300..cf51510b66eb4815aa0c2ccd50bdd2261bf8b650 100644 (file)
@@ -226,7 +226,8 @@ use: src/int-rep ;
 
 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
index 09d11055e21b5cf72f7988a5be857d8e52d4bf9b..306e18673ab338e4d37dcdcf8454ed2db61c2ec8 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 -- )
+HOOK: %bit-test cpu ( dst src1 src2 temp -- )
 
 HOOK: %copy cpu ( dst src rep -- )
 
index 80ded69add3fef87794074260fe928a09d37a412..6335146dd3d35821ca9e83a62a76e4b1df822a19 100644 (file)
@@ -90,7 +90,7 @@ M: arm.64 %bit-count
     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 ;
index 1baf5dbe41e80bafbba23699b7a45e23833b3023..e5837712738cd35fc44ecf19d9b59c94ffa15520 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 -- )
+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