From 3b7fca49cbf6c48605e7ebc1f57caa3255ca5cfd Mon Sep 17 00:00:00 2001 From: Nathan Froyd Date: Fri, 1 May 2009 18:17:46 +0000 Subject: [PATCH] 1.0.28.5: delete MERGE-BITS Wasn't used anywhere; probably intended for bignum operations. --- src/compiler/alpha/arith.lisp | 21 --------------------- src/compiler/generic/vm-fndb.lisp | 4 ---- src/compiler/hppa/arith.lisp | 16 ---------------- src/compiler/mips/arith.lisp | 21 --------------------- src/compiler/ppc/arith.lisp | 22 ---------------------- src/compiler/sparc/arith.lisp | 21 --------------------- src/compiler/x86-64/arith.lisp | 15 --------------- src/compiler/x86/arith.lisp | 15 --------------- version.lisp-expr | 2 +- 9 files changed, 1 insertion(+), 136 deletions(-) diff --git a/src/compiler/alpha/arith.lisp b/src/compiler/alpha/arith.lisp index a52bb1d..7a1eaac 100644 --- a/src/compiler/alpha/arith.lisp +++ b/src/compiler/alpha/arith.lisp @@ -602,27 +602,6 @@ ;;;; 32-bit logical operations -(define-vop (merge-bits) - (:translate merge-bits) - (:args (shift :scs (signed-reg unsigned-reg)) - (prev :scs (unsigned-reg)) - (next :scs (unsigned-reg))) - (:arg-types tagged-num unsigned-num unsigned-num) - (:temporary (:scs (unsigned-reg) :to (:result 0)) temp) - (:temporary (:scs (unsigned-reg) :to (:result 0) :target result) res) - (:results (result :scs (unsigned-reg))) - (:result-types unsigned-num) - (:policy :fast-safe) - (:generator 4 - (let ((done (gen-label))) - (inst srl next shift res) - (inst beq shift done) - (inst subq zero-tn shift temp) - (inst sll prev temp temp) - (inst bis res temp res) - (emit-label done) - (move res result)))) - (define-vop (shift-towards-someplace) (:policy :fast-safe) (:args (num :scs (unsigned-reg)) diff --git a/src/compiler/generic/vm-fndb.lisp b/src/compiler/generic/vm-fndb.lisp index 9a788f9..6cc6353 100644 --- a/src/compiler/generic/vm-fndb.lisp +++ b/src/compiler/generic/vm-fndb.lisp @@ -222,10 +222,6 @@ ;;;; 32-bit logical operations -(defknown merge-bits ((unsigned-byte 5) sb!vm:word sb!vm:word) - sb!vm:word - (foldable flushable movable)) - (defknown word-logical-not (sb!vm:word) sb!vm:word (foldable flushable movable)) diff --git a/src/compiler/hppa/arith.lisp b/src/compiler/hppa/arith.lisp index 8ae7ec0..4077c41 100644 --- a/src/compiler/hppa/arith.lisp +++ b/src/compiler/hppa/arith.lisp @@ -633,22 +633,6 @@ (:arg-types * (:constant (signed-byte 9))) (:variant-cost 6)) -;;;; 32-bit logical operations - -(define-vop (merge-bits) ; not implemented, even used ? - (:translate merge-bits) - (:args (shift :scs (signed-reg unsigned-reg)) - (prev :scs (unsigned-reg)) - (next :scs (unsigned-reg))) - (:arg-types tagged-num unsigned-num unsigned-num) - (:results (result :scs (unsigned-reg))) - (:result-types unsigned-num) - (:policy :fast-safe) - (:ignore shift prev next) - (:generator 4 - (inst li 0 result) - (inst break 0))) - ;;;; modular functions (define-modular-fun +-mod32 (x y) + :untagged nil 32) diff --git a/src/compiler/mips/arith.lisp b/src/compiler/mips/arith.lisp index c7e57d8..70649f5 100644 --- a/src/compiler/mips/arith.lisp +++ b/src/compiler/mips/arith.lisp @@ -618,27 +618,6 @@ ;;;; 32-bit logical operations -(define-vop (merge-bits) - (:translate merge-bits) - (:args (shift :scs (signed-reg unsigned-reg)) - (prev :scs (unsigned-reg)) - (next :scs (unsigned-reg))) - (:arg-types tagged-num unsigned-num unsigned-num) - (:temporary (:scs (unsigned-reg) :to (:result 0)) temp) - (:temporary (:scs (unsigned-reg) :to (:result 0) :target result) res) - (:results (result :scs (unsigned-reg))) - (:result-types unsigned-num) - (:policy :fast-safe) - (:generator 4 - (let ((done (gen-label))) - (inst beq shift done) - (inst srl res next shift) - (inst subu temp zero-tn shift) - (inst sll temp prev temp) - (inst or res res temp) - (emit-label done) - (move result res)))) - (define-vop (shift-towards-someplace) (:policy :fast-safe) (:args (num :scs (unsigned-reg)) diff --git a/src/compiler/ppc/arith.lisp b/src/compiler/ppc/arith.lisp index 9f8c2f3..4cbfbb0 100644 --- a/src/compiler/ppc/arith.lisp +++ b/src/compiler/ppc/arith.lisp @@ -1006,28 +1006,6 @@ ;;;; 32-bit logical operations -(define-vop (merge-bits) - (:translate merge-bits) - (:args (shift :scs (signed-reg unsigned-reg)) - (prev :scs (unsigned-reg)) - (next :scs (unsigned-reg))) - (:arg-types tagged-num unsigned-num unsigned-num) - (:temporary (:scs (unsigned-reg) :to (:result 0)) temp) - (:temporary (:scs (unsigned-reg) :to (:result 0) :target result) res) - (:results (result :scs (unsigned-reg))) - (:result-types unsigned-num) - (:policy :fast-safe) - (:generator 4 - (let ((done (gen-label))) - (inst cmpwi shift 0) - (inst beq done) - (inst srw res next shift) - (inst sub temp zero-tn shift) - (inst slw temp prev temp) - (inst or res res temp) - (emit-label done) - (move result res)))) - (define-vop (shift-towards-someplace) (:policy :fast-safe) (:args (num :scs (unsigned-reg)) diff --git a/src/compiler/sparc/arith.lisp b/src/compiler/sparc/arith.lisp index 8be93de..de8d3e6 100644 --- a/src/compiler/sparc/arith.lisp +++ b/src/compiler/sparc/arith.lisp @@ -810,27 +810,6 @@ ;;;; 32-bit logical operations -(define-vop (merge-bits) - (:translate merge-bits) - (:args (shift :scs (signed-reg unsigned-reg)) - (prev :scs (unsigned-reg)) - (next :scs (unsigned-reg))) - (:arg-types tagged-num unsigned-num unsigned-num) - (:temporary (:scs (unsigned-reg) :to (:result 0)) temp) - (:temporary (:scs (unsigned-reg) :to (:result 0) :target result) res) - (:results (result :scs (unsigned-reg))) - (:result-types unsigned-num) - (:policy :fast-safe) - (:generator 4 - (let ((done (gen-label))) - (inst cmp shift) - (inst b :eq done) - (inst srl res next shift) - (inst sub temp zero-tn shift) - (inst sll temp prev temp) - (inst or res temp) - (emit-label done) - (move result res)))) (define-vop (shift-towards-someplace) (:policy :fast-safe) diff --git a/src/compiler/x86-64/arith.lisp b/src/compiler/x86-64/arith.lisp index 9e14550..f615ebd 100644 --- a/src/compiler/x86-64/arith.lisp +++ b/src/compiler/x86-64/arith.lisp @@ -1154,21 +1154,6 @@ ;;;; 32-bit logical operations -(define-vop (merge-bits) - (:translate merge-bits) - (:args (shift :scs (signed-reg unsigned-reg) :target ecx) - (prev :scs (unsigned-reg) :target result) - (next :scs (unsigned-reg))) - (:arg-types tagged-num unsigned-num unsigned-num) - (:temporary (:sc signed-reg :offset ecx-offset :from (:argument 0)) ecx) - (:results (result :scs (unsigned-reg) :from (:argument 1))) - (:result-types unsigned-num) - (:policy :fast-safe) - (:generator 4 - (move ecx shift) - (move result prev) - (inst shrd result next :cl))) - ;;; Only the lower 6 bits of the shift amount are significant. (define-vop (shift-towards-someplace) (:policy :fast-safe) diff --git a/src/compiler/x86/arith.lisp b/src/compiler/x86/arith.lisp index d557048..d16a2ff 100644 --- a/src/compiler/x86/arith.lisp +++ b/src/compiler/x86/arith.lisp @@ -1213,21 +1213,6 @@ ;;;; 32-bit logical operations -(define-vop (merge-bits) - (:translate merge-bits) - (:args (shift :scs (signed-reg unsigned-reg) :target ecx) - (prev :scs (unsigned-reg) :target result) - (next :scs (unsigned-reg))) - (:arg-types tagged-num unsigned-num unsigned-num) - (:temporary (:sc signed-reg :offset ecx-offset :from (:argument 0)) ecx) - (:results (result :scs (unsigned-reg) :from (:argument 1))) - (:result-types unsigned-num) - (:policy :fast-safe) - (:generator 4 - (move ecx shift) - (move result prev) - (inst shrd result next :cl))) - ;;; Only the lower 5 bits of the shift amount are significant. (define-vop (shift-towards-someplace) (:policy :fast-safe) diff --git a/version.lisp-expr b/version.lisp-expr index e2906d7..fa70adf 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"1.0.28.4" +"1.0.28.5" -- 1.7.10.4