X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Finterr.lisp;h=18c571e634de045250a0c9562385551d7d9de478;hb=77641d60a8b001bf3ccc755f3fb9881ee8d4753f;hp=3e8f95f4f2e93e775d7d1568123391624345a407;hpb=492dce07cf27b3cbee8ce4800c938fcb884aa53e;p=sbcl.git diff --git a/src/code/interr.lisp b/src/code/interr.lisp index 3e8f95f..18c571e 100644 --- a/src/code/interr.lisp +++ b/src/code/interr.lisp @@ -106,6 +106,11 @@ :datum object :expected-type 'fixnum)) +(deferr object-not-mod-error (object limit) + (error 'type-error + :datum object + :expected-type `(mod ,(1+ limit)))) + (deferr object-not-vector-error (object) (error 'type-error :datum object @@ -330,6 +335,12 @@ :datum object :expected-type '(complex long-float))) +#!+sb-simd-pack +(deferr object-not-simd-pack-error (object) + (error 'type-error + :datum object + :expected-type 'simd-pack)) + (deferr object-not-weak-pointer-error (object) (error 'type-error :datum object @@ -421,9 +432,18 @@ (/hexstr context) (infinite-error-protect (/show0 "about to bind ALIEN-CONTEXT") - (let ((alien-context (locally - (declare (optimize (inhibit-warnings 3))) - (sb!alien:sap-alien context (* os-context-t))))) + (let* ((alien-context (locally + (declare (optimize (inhibit-warnings 3))) + (sb!alien:sap-alien context (* os-context-t)))) + #!+c-stack-is-control-stack + (*saved-fp-and-pcs* + (cons (cons (%make-lisp-obj (sb!vm:context-register + alien-context + sb!vm::cfp-offset)) + (sb!vm:context-pc alien-context)) + (when (boundp '*saved-fp-and-pcs*) + *saved-fp-and-pcs*)))) + (declare (truly-dynamic-extent *saved-fp-and-pcs*)) (/show0 "about to bind ERROR-NUMBER and ARGUMENTS") (multiple-value-bind (error-number arguments) (sb!vm:internal-error-args alien-context)