0.9.6.20:
authorJuho Snellman <jsnell@iki.fi>
Sat, 5 Nov 2005 22:56:50 +0000 (22:56 +0000)
committerJuho Snellman <jsnell@iki.fi>
Sat, 5 Nov 2005 22:56:50 +0000 (22:56 +0000)
Shorter x86-64 inline-allocation code for constant allocations.
        (sbcl-devel "Simple allocation patch" by Alexander Kjeldaas,
        2005-03-11)

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

index ccfc7d7..002f7de 100644 (file)
            (allocation-tramp alloc-tn size))
           (t
            (inst mov temp-reg-tn free-pointer)
-           (unless (and (tn-p size) (location= alloc-tn size))
-             (inst mov alloc-tn size))
-           (inst add alloc-tn temp-reg-tn)
+           (if (tn-p size)
+               (if (location= alloc-tn size)
+                   (inst add alloc-tn temp-reg-tn)
+                   (inst lea alloc-tn
+                         (make-ea :qword :base temp-reg-tn :index size)))
+               (inst lea alloc-tn
+                     (make-ea :qword :base temp-reg-tn :disp size)))
            (inst cmp end-addr alloc-tn)
            (inst jmp :be NOT-INLINE)
            (inst mov free-pointer alloc-tn)
index 5448feb..411a8ea 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.6.19"
+"0.9.6.20"