From 39f3672f1378f66c7abdf84c6c9df5d63f8d3a6c Mon Sep 17 00:00:00 2001 From: Nathan Froyd Date: Wed, 7 Feb 2007 19:12:42 +0000 Subject: [PATCH] 1.0.2.21: Make ASH VOPs use 'LEA , [+]' instead of 'LEA , [*2]' on x86 and x86-64, resulting in shorter code. --- src/compiler/x86-64/arith.lisp | 6 +++--- src/compiler/x86/arith.lisp | 6 +++--- version.lisp-expr | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/compiler/x86-64/arith.lisp b/src/compiler/x86-64/arith.lisp index e0a4d3c..d90e2f4 100644 --- a/src/compiler/x86-64/arith.lisp +++ b/src/compiler/x86-64/arith.lisp @@ -593,7 +593,7 @@ (:note "inline ASH") (:generator 2 (cond ((and (= amount 1) (not (location= number result))) - (inst lea result (make-ea :qword :index number :scale 2))) + (inst lea result (make-ea :qword :base number :index number))) ((and (= amount 2) (not (location= number result))) (inst lea result (make-ea :qword :index number :scale 4))) ((and (= amount 3) (not (location= number result))) @@ -653,7 +653,7 @@ (:note "inline ASH") (:generator 3 (cond ((and (= amount 1) (not (location= number result))) - (inst lea result (make-ea :qword :index number :scale 2))) + (inst lea result (make-ea :qword :base number :index number))) ((and (= amount 2) (not (location= number result))) (inst lea result (make-ea :qword :index number :scale 4))) ((and (= amount 3) (not (location= number result))) @@ -680,7 +680,7 @@ (:note "inline ASH") (:generator 3 (cond ((and (= amount 1) (not (location= number result))) - (inst lea result (make-ea :qword :index number :scale 2))) + (inst lea result (make-ea :qword :base number :index number))) ((and (= amount 2) (not (location= number result))) (inst lea result (make-ea :qword :index number :scale 4))) ((and (= amount 3) (not (location= number result))) diff --git a/src/compiler/x86/arith.lisp b/src/compiler/x86/arith.lisp index 1380cdb..ad66b62 100644 --- a/src/compiler/x86/arith.lisp +++ b/src/compiler/x86/arith.lisp @@ -597,7 +597,7 @@ (:note "inline ASH") (:generator 2 (cond ((and (= amount 1) (not (location= number result))) - (inst lea result (make-ea :dword :index number :scale 2))) + (inst lea result (make-ea :dword :base number :index number))) ((and (= amount 2) (not (location= number result))) (inst lea result (make-ea :dword :index number :scale 4))) ((and (= amount 3) (not (location= number result))) @@ -655,7 +655,7 @@ (:note "inline ASH") (:generator 3 (cond ((and (= amount 1) (not (location= number result))) - (inst lea result (make-ea :dword :index number :scale 2))) + (inst lea result (make-ea :dword :base number :index number))) ((and (= amount 2) (not (location= number result))) (inst lea result (make-ea :dword :index number :scale 4))) ((and (= amount 3) (not (location= number result))) @@ -682,7 +682,7 @@ (:note "inline ASH") (:generator 3 (cond ((and (= amount 1) (not (location= number result))) - (inst lea result (make-ea :dword :index number :scale 2))) + (inst lea result (make-ea :dword :base number :index number))) ((and (= amount 2) (not (location= number result))) (inst lea result (make-ea :dword :index number :scale 4))) ((and (= amount 3) (not (location= number result))) diff --git a/version.lisp-expr b/version.lisp-expr index baabdd3..c50c25d 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.2.20" +"1.0.2.21" -- 1.7.10.4