1.0.4.69: fix CL-PPCRE compilation on x86-64
authorJuho Snellman <jsnell@iki.fi>
Thu, 12 Apr 2007 01:55:22 +0000 (01:55 +0000)
committerJuho Snellman <jsnell@iki.fi>
Thu, 12 Apr 2007 01:55:22 +0000 (01:55 +0000)
        * Broken by the character vop changes in 1.0.4.53
        * Patch by Lutz Euler

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

index 3b2307e..f7ef502 100644 (file)
                :load-if (not (location= x y))))
   (:note "character untagging")
   (:generator 1
-    (let ((y-dword (make-dword-tn y)))
-      (move y-dword (make-dword-tn x))
-      (inst shr y-dword n-widetag-bits))))
+    (cond ((and (sc-is y character-reg) (sc-is x any-reg descriptor-reg))
+           (let ((y-dword (make-dword-tn y)))
+             (unless (location= x y)
+               (inst mov y-dword (make-dword-tn x)))
+             (inst shr y-dword n-widetag-bits)))
+          (t
+           (move y x)
+           (inst shr y n-widetag-bits)))))
 #!-sb-unicode
 (define-vop (move-to-character)
   (:args (x :scs (any-reg control-stack)))
index 64e78e2..33d2cb4 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".)
-"1.0.4.68"
+"1.0.4.69"