X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fgeneric%2Fvm-macs.lisp;h=74a9e099ef95999a0cf81b31c83a25cfe6be6fe5;hb=19319c931fc1636835dbef71808cc10e252bcf45;hp=a3863c8205bca275fcd14ad522a30927120f2703;hpb=1907ad030ca773162bcd9ff90fdc485a035591f4;p=sbcl.git diff --git a/src/compiler/generic/vm-macs.lisp b/src/compiler/generic/vm-macs.lisp index a3863c8..74a9e09 100644 --- a/src/compiler/generic/vm-macs.lisp +++ b/src/compiler/generic/vm-macs.lisp @@ -106,7 +106,7 @@ (forms `(progn (defknown ,cas-trans (,type ,slot-type ,slot-type) - ,slot-type (unsafe)) + ,slot-type ()) #!+compare-and-swap-vops (def-casser ,cas-trans ,offset ,lowtag)))) (when init @@ -119,8 +119,10 @@ (constants `(def!constant ,size ,offset)) (exports size))) (when alloc-trans - (forms `(def-alloc ,alloc-trans ,offset ,variable-length-p ,widetag - ,lowtag ',(inits)))) + (forms `(def-alloc ,alloc-trans ,offset + ,(if variable-length-p :var-alloc :fixed-alloc) + ,widetag + ,lowtag ',(inits)))) `(progn (eval-when (:compile-toplevel :load-toplevel :execute) (%define-primitive-object @@ -141,8 +143,8 @@ `(%def-reffer ',name ,offset ,lowtag)) (defmacro def-setter (name offset lowtag) `(%def-setter ',name ,offset ,lowtag)) -(defmacro def-alloc (name words variable-length-p header lowtag inits) - `(%def-alloc ',name ,words ,variable-length-p ,header ,lowtag ,inits)) +(defmacro def-alloc (name words alloc-style header lowtag inits) + `(%def-alloc ',name ,words ,alloc-style ,header ,lowtag ,inits)) #!+compare-and-swap-vops (defmacro def-casser (name offset lowtag) `(%def-casser ',name ,offset ,lowtag)) @@ -160,7 +162,7 @@ (in-package "SB!C") ;;; the maximum number of SCs in any implementation -(def!constant sc-number-limit 32) +(def!constant sc-number-limit 62) ;;; Modular functions @@ -184,7 +186,7 @@ (:untagged (ecase signedp ((nil) *untagged-unsigned-modular-class*) - (t *untagged-signed-modular-class*))) + ((t) *untagged-signed-modular-class*))) (:tagged (aver signedp) *tagged-modular-class*))) @@ -247,7 +249,7 @@ (check-type kind (member :untagged :tagged)) (check-type width unsigned-byte) (dolist (arg lambda-list) - (when (member arg lambda-list-keywords) + (when (member arg sb!xc:lambda-list-keywords) (error "Lambda list keyword ~S is not supported for ~ modular function lambda lists." arg))) `(progn @@ -255,7 +257,7 @@ (defknown ,name ,(mapcar (constantly 'integer) lambda-list) (,(ecase signedp ((nil) 'unsigned-byte) - (t 'signed-byte)) + ((t) 'signed-byte)) ,width) (foldable flushable movable) :derive-type (make-modular-fun-type-deriver @@ -276,7 +278,7 @@ (check-type name symbol) (check-type kind (member :untagged :tagged)) (dolist (arg lambda-list) - (when (member arg lambda-list-keywords) + (when (member arg sb!xc:lambda-list-keywords) (error "Lambda list keyword ~S is not supported for ~ modular function lambda lists." arg))) (with-unique-names (call args)