From: Nikodemus Siivola Date: Mon, 10 Mar 2008 19:26:15 +0000 (+0000) Subject: 1.0.15.19: use TEST X X when possible in SIGNED-BYTE-*-LEN VOPS X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=16028d14234d2acd0e6a3145a7364f2a52eabf63;p=sbcl.git 1.0.15.19: use TEST X X when possible in SIGNED-BYTE-*-LEN VOPS * Both x86 and x86-64. --- diff --git a/src/compiler/x86-64/arith.lisp b/src/compiler/x86-64/arith.lisp index c02e9d7..0daa98d 100644 --- a/src/compiler/x86-64/arith.lisp +++ b/src/compiler/x86-64/arith.lisp @@ -919,7 +919,9 @@ (:result-types unsigned-num) (:generator 28 (move res arg) - (inst cmp res 0) + (if (sc-is res unsigned-reg) + (inst test res res) + (inst cmp res 0)) (inst jmp :ge POS) (inst not res) POS diff --git a/src/compiler/x86/arith.lisp b/src/compiler/x86/arith.lisp index e7ec031..970b369 100644 --- a/src/compiler/x86/arith.lisp +++ b/src/compiler/x86/arith.lisp @@ -923,7 +923,9 @@ (:result-types unsigned-num) (:generator 28 (move res arg) - (inst cmp res 0) + (if (sc-is res unsigned-reg) + (inst test res res) + (inst cmp res 0)) (inst jmp :ge POS) (inst not res) POS diff --git a/version.lisp-expr b/version.lisp-expr index d9723ca..9de3b23 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.15.18" +"1.0.15.19"