From 77c38c16f62c785f44e96d6438cf16d080d6b889 Mon Sep 17 00:00:00 2001 From: Christophe Rhodes Date: Mon, 14 Oct 2002 13:02:50 +0000 Subject: [PATCH] 0.7.8.37: 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 | 4 ++-- tests/compiler.impure.lisp | 5 +++++ version.lisp-expr | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/compiler/x86/insts.lisp b/src/compiler/x86/insts.lisp index 4b82210..b221393 100644 --- a/src/compiler/x86/insts.lisp +++ b/src/compiler/x86/insts.lisp @@ -1114,7 +1114,7 @@ ((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 @@ -1126,7 +1126,7 @@ (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 diff --git a/tests/compiler.impure.lisp b/tests/compiler.impure.lisp index b72c7cc..b091bdb 100644 --- a/tests/compiler.impure.lisp +++ b/tests/compiler.impure.lisp @@ -500,6 +500,11 @@ BUG 48c, not yet fixed: (symbol-macrolet-test) +;;; 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)) + ;;;; tests not in the problem domain, but of the consistency of the ;;;; compiler machinery itself diff --git a/version.lisp-expr b/version.lisp-expr index 5e0b755..3a3b87d 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -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" -- 1.7.10.4