X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcompiler%2Falpha%2Fcell.lisp;h=b99075bdb2d21c663f7b1051249d61d80f23ee16;hb=ef61e6c46ca429b84a61e90efcd7ac11261f92c7;hp=22f7ce6c28325fca2b936f3b9bad5c64f4aee2ae;hpb=79a8e51bf4b06a5bd57bc90233605f98fee3b041;p=sbcl.git diff --git a/src/compiler/alpha/cell.lisp b/src/compiler/alpha/cell.lisp index 22f7ce6..b99075b 100644 --- a/src/compiler/alpha/cell.lisp +++ b/src/compiler/alpha/cell.lisp @@ -35,6 +35,8 @@ (storew value object offset lowtag)) #!-gengc (storew value object offset lowtag))) + +(define-vop (init-slot set-slot)) ;;;; symbol hacking VOPs @@ -239,6 +241,12 @@ (define-vop (closure-init slot-set) (:variant closure-info-offset fun-pointer-lowtag)) + +(define-vop (closure-init-from-fp) + (:args (object :scs (descriptor-reg))) + (:info offset) + (:generator 4 + (storew cfp-tn object (+ closure-info-offset offset) fun-pointer-lowtag))) ;;;; value cell hackery @@ -360,7 +368,7 @@ (:variant ,offset)) ,@(when writable `((defknown ((setf ,fn)) (,lisp-type) ,lisp-type - (unsafe)) + ()) (define-vop (,set ,set-vop) (:translate (setf ,fn)) (:variant ,offset)))))))))