0.7.8.37:
authorChristophe Rhodes <csr21@cam.ac.uk>
Mon, 14 Oct 2002 13:02:50 +0000 (13:02 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Mon, 14 Oct 2002 13:02:50 +0000 (13:02 +0000)
Fix "x86 assembler failure" noted by APD sbcl-devel 2002-10-14
... just port corresponding fix from cmucl (September 1999)

src/compiler/x86/insts.lisp
tests/compiler.impure.lisp
version.lisp-expr

index 4b82210..b221393 100644 (file)
      ((integerp src)
       (cond ((and (not (eq size :byte)) (<= -128 src 127))
             (emit-byte segment #b10000011)
-            (emit-ea segment dst opcode)
+            (emit-ea segment dst opcode allow-constants)
             (emit-byte segment src))
            ((accumulator-p dst)
             (emit-byte segment
             (emit-sized-immediate segment size src))
            (t
             (emit-byte segment (if (eq size :byte) #b10000000 #b10000001))
-            (emit-ea segment dst opcode)
+            (emit-ea segment dst opcode allow-constants)
             (emit-sized-immediate segment size src))))
      ((register-p src)
       (emit-byte segment
index b72c7cc..b091bdb 100644 (file)
@@ -500,6 +500,11 @@ BUG 48c, not yet fixed:
 
 (symbol-macrolet-test)
 \f
+;;; On the x86, this code failed to compile until sbcl-0.7.8.37:
+(defun x86-assembler-failure (x)
+  (declare (optimize (speed 3) (safety 0)))
+  (eq (setf (car x) 'a) nil))
+\f
 ;;;; tests not in the problem domain, but of the consistency of the
 ;;;; compiler machinery itself
 
index 5e0b755..3a3b87d 100644 (file)
@@ -18,4 +18,4 @@
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
 
-"0.7.8.36"
+"0.7.8.37"