* fixed bug 376: CONJUGATE type deriver.
* fixed infinite looping of ALIEN-FUNCALL, compiled with high DEBUG.
(reported by Baughn on #lisp)
+ * a cross-compiler bug on non-x86 platforms has been identified and
+ fixed. (thanks to Bruno Haible)
* fixed some bugs related to Unicode integration:
** the restarts for recovering from input and output encoding
errors only appear when there is in fact such an error to
;; to debug cross-compilation if it isn't.)
(when (find :sb-test *shebang-features*)
(load "tests/type.before-xc.lisp")
- (load "tests/info.before-xc.lisp"))
+ (load "tests/info.before-xc.lisp")
+ (load "tests/vm.before-xc.lisp"))
(load "tools-for-build/ucd.lisp")
(sb-cold::slurp-ucd)
(sb-cold::output)
(sc-number-or-lose 'zero))
(null
(sc-number-or-lose 'null ))
- ((or fixnum system-area-pointer character)
+ ((or (integer sb!xc:most-negative-fixnum sb!xc:most-positive-fixnum)
+ system-area-pointer character)
(sc-number-or-lose 'immediate ))
(symbol
(if (static-symbol-p value)
(sc-number-or-lose 'zero))
(null
(sc-number-or-lose 'null))
- ((or fixnum system-area-pointer character)
+ ((or (integer #.sb!xc:most-negative-fixnum #.sb!xc:most-positive-fixnum)
+ system-area-pointer character)
(sc-number-or-lose 'immediate))
(symbol
(if (static-symbol-p value)
(if (static-symbol-p value)
(sc-number-or-lose 'immediate)
nil))
- ((signed-byte 30)
+ ((integer #.sb!xc:most-negative-fixnum sb!xc:most-positive-fixnum)
(sc-number-or-lose 'immediate))
(system-area-pointer
(sc-number-or-lose 'immediate))
(sc-number-or-lose 'zero))
(null
(sc-number-or-lose 'null))
- ((or fixnum system-area-pointer character)
+ ((or (integer #.sb!xc:most-negative-fixnum #.sb!xc:most-positive-fixnum)
+ system-area-pointer character)
(sc-number-or-lose 'immediate))
(symbol
(if (static-symbol-p value)
(sc-number-or-lose 'zero))
(null
(sc-number-or-lose 'null))
- ((or fixnum system-area-pointer character)
+ ((or (integer #.sb!xc:most-negative-fixnum #.sb!xc:most-positive-fixnum)
+ system-area-pointer character)
(sc-number-or-lose 'immediate))
(symbol
(if (static-symbol-p value)
--- /dev/null
+;;;; tests of the compiler vm internal consistency intended to be
+;;;; executed as soon as the cross-compiler is built.
+
+;;;; This software is part of the SBCL system. See the README file for
+;;;; more information.
+;;;;
+;;;; While most of SBCL is derived from the CMU CL system, the test
+;;;; files (like this one) were written from scratch after the fork
+;;;; from CMU CL.
+;;;;
+;;;; This software is in the public domain and is provided with
+;;;; absolutely no warranty. See the COPYING and CREDITS files for
+;;;; more information.
+
+(in-package "SB!VM")
+
+(/show "beginning tests/vm.before-xc.lisp")
+
+(flet ((yes (x)
+ (assert
+ (eql (sc-number-or-lose 'immediate)
+ (impl-of-vm-support-routine-immediate-constant-sc x))))
+ (no (x)
+ (assert
+ (not (impl-of-vm-support-routine-immediate-constant-sc x)))))
+ ;; target fixnums can be dealt with as immediates; target bignums
+ ;; can not.
+ (yes #.sb-xc:most-positive-fixnum)
+ (yes #.sb-xc:most-negative-fixnum)
+ (no #.(1+ sb-xc:most-positive-fixnum))
+ (no #.(1- sb-xc:most-negative-fixnum)))
+
+(/show "done with tests/vm.before-xc.lisp")
;;; 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.8.21.16"
+"0.8.21.17"