X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Ffun-info-funs.lisp;h=d399be7317f24de6fa97ee400485412300844701;hb=0dda5090b6c16a641000b4eb2dcd479f39b784ca;hp=600e7355b93f7694e0651d223649467f5940d00b;hpb=bfb19d306581ac86feb4371846c4b9953d692dd8;p=sbcl.git diff --git a/src/compiler/fun-info-funs.lisp b/src/compiler/fun-info-funs.lisp index 600e735..d399be7 100644 --- a/src/compiler/fun-info-funs.lisp +++ b/src/compiler/fun-info-funs.lisp @@ -23,16 +23,22 @@ (ir2-convert-setter node block name offset lowtag))))) name) -(defun %def-alloc (name words variable-length-p header lowtag inits) +(defun %def-alloc (name words allocation-style header lowtag inits) (let ((info (fun-info-or-lose name))) (setf (fun-info-ir2-convert info) - (if variable-length-p - (lambda (node block) + (ecase allocation-style + (:var-alloc + (lambda (node block) (ir2-convert-variable-allocation node block name words header - lowtag inits)) - (lambda (node block) - (ir2-convert-fixed-allocation node block name words header - lowtag inits))))) + lowtag inits))) + (:fixed-alloc + (lambda (node block) + (ir2-convert-fixed-allocation node block name words header + lowtag inits))) + (:structure-alloc + (lambda (node block) + (ir2-convert-structure-allocation node block name words header + lowtag inits)))))) name) (defun %def-casser (name offset lowtag)