0.9.7.27:
authorJuho Snellman <jsnell@iki.fi>
Wed, 14 Dec 2005 02:02:11 +0000 (02:02 +0000)
committerJuho Snellman <jsnell@iki.fi>
Wed, 14 Dec 2005 02:02:11 +0000 (02:02 +0000)
         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.

src/compiler/x86-64/insts.lisp
version.lisp-expr

index aeb857e..fde1633 100644 (file)
             (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)
index 10e1e97..eeac556 100644 (file)
@@ -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"