From 06928f553de251ab19f163a23d39b78c80a8ed2f Mon Sep 17 00:00:00 2001 From: Juho Snellman Date: Thu, 20 Jul 2006 17:45:53 +0000 Subject: [PATCH] 0.9.14.30: Micro-optimize x86-64 MOVE-FROM-SIGNED a bit more (thanks to Lutz Euler). --- src/compiler/x86-64/move.lisp | 3 +-- version.lisp-expr | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/compiler/x86-64/move.lisp b/src/compiler/x86-64/move.lisp index 53b16bf..4caf11f 100644 --- a/src/compiler/x86-64/move.lisp +++ b/src/compiler/x86-64/move.lisp @@ -282,7 +282,6 @@ (aver (not (location= x y))) (let ((bignum (gen-label)) (done (gen-label))) - (inst mov y x) ;; We can't do the overflow check with SHL Y, 3, since the ;; state of the overflow flag is only reliably set when ;; shifting by 1. There used to be code here for doing "shift @@ -291,7 +290,7 @@ ;; we can just do a straight multiply instead of trying to ;; optimize it to a shift. This is both faster and smaller. ;; -- JES, 2006-07-08 - (inst imul y 8) + (inst imul y x (ash 1 n-fixnum-tag-bits)) (inst jmp :o bignum) (emit-label done) diff --git a/version.lisp-expr b/version.lisp-expr index 55655dd..9dbf000 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.14.29" +"0.9.14.30" -- 1.7.10.4