From: Juho Snellman Date: Wed, 14 Dec 2005 02:02:11 +0000 (+0000) Subject: 0.9.7.27: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=b392b3f4f0dd206ffe7d17b66e0cbf2effdab231;p=sbcl.git 0.9.7.27: Oops. Off-by-one in 0.9.5.68 meant that the shorter MOV instruction wasn't getting used quite as often as possible. Use a check for (signed-byte 32) instead of (signed-byte 31) to pick between the C7 and B8 opcodes. Shrinks the x86-64 core by 70k. --- diff --git a/src/compiler/x86-64/insts.lisp b/src/compiler/x86-64/insts.lisp index aeb857e..fde1633 100644 --- a/src/compiler/x86-64/insts.lisp +++ b/src/compiler/x86-64/insts.lisp @@ -1576,7 +1576,7 @@ (cond ((integerp src) (maybe-emit-rex-prefix segment size nil nil dst) (cond ((and (eq size :qword) - (typep src '(signed-byte 31))) + (typep src '(signed-byte 32))) ;; When loading small immediates to a qword register ;; using B8 wastes 3 bytes compared to C7. (emit-byte segment #b11000111) diff --git a/version.lisp-expr b/version.lisp-expr index 10e1e97..eeac556 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".) -"0.9.7.26" +"0.9.7.27"