X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Faliencomp.lisp;h=bc5b11a2ac8117e7aa3d42f8e09c28454b9049a1;hb=158f220d2e6b44e48806480d6498466b9fc7eb62;hp=7cd63584c60ba68a95df7bfba1a834f44d9b7687;hpb=a6c61ba848e9ed11118b6fb579fe237d0b1cf9c6;p=sbcl.git diff --git a/src/compiler/aliencomp.lisp b/src/compiler/aliencomp.lisp index 7cd6358..bc5b11a 100644 --- a/src/compiler/aliencomp.lisp +++ b/src/compiler/aliencomp.lisp @@ -332,7 +332,8 @@ (deftransform %heap-alien-addr ((info) * * :important t) (multiple-value-bind (sap type) (heap-alien-sap-and-type info) (/noshow "in DEFTRANSFORM %HEAP-ALIEN-ADDR, creating %SAP-ALIEN") - `(%sap-alien ,sap ',type))) + `(%sap-alien ,sap ',(make-alien-pointer-type :to type)))) + ;;;; support for local (stack or register) aliens @@ -527,7 +528,7 @@ (count-low-order-zeros (lvar-uses thing)))) (combination (case (let ((name (lvar-fun-name (combination-fun thing)))) - (or (modular-version-info name :unsigned) name)) + (or (modular-version-info name :untagged nil) name)) ((+ -) (let ((min most-positive-fixnum) (itype (specifier-type 'integer))) @@ -584,7 +585,7 @@ (give-up-ir1-transform)) (let ((inside-fun-name (lvar-fun-name (combination-fun value-node)))) (multiple-value-bind (prototype width) - (modular-version-info inside-fun-name :unsigned) + (modular-version-info inside-fun-name :untagged nil) (unless (eq (or prototype inside-fun-name) 'ash) (give-up-ir1-transform)) (when (and width (not (constant-lvar-p amount)))