X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=inline;f=src%2Fcompiler%2Fx86-64%2Falloc.lisp;h=bcc7a74cdd9df30f871b43d7e164d4d9883d17d6;hb=51344a3364f2cd6b14985719a77f697c094ea14d;hp=27441683516df0c95097491837a39dd54c7582c4;hpb=0d871fd7a98fc4af92a8b942a1154761466ad8c9;p=sbcl.git diff --git a/src/compiler/x86-64/alloc.lisp b/src/compiler/x86-64/alloc.lisp index 2744168..bcc7a74 100644 --- a/src/compiler/x86-64/alloc.lisp +++ b/src/compiler/x86-64/alloc.lisp @@ -1,4 +1,4 @@ -;;;; allocation VOPs for the x86 +;;;; allocation VOPs for the x86-64 ;;;; This software is part of the SBCL system. See the README file for ;;;; more information. @@ -128,6 +128,7 @@ (make-ea :byte :base result :disp fun-pointer-lowtag)) (storew (logior (ash (1- size) n-widetag-bits) closure-header-widetag) result 0 fun-pointer-lowtag)) + (storew result result closure-self-slot fun-pointer-lowtag) (loadw temp function closure-fun-slot fun-pointer-lowtag) (storew temp result closure-fun-slot fun-pointer-lowtag)))) @@ -187,9 +188,9 @@ (inst lea result (make-ea :byte :base result :disp lowtag)) (storew header result 0 lowtag)))) -(define-vop (make-symbol) +(define-vop (%make-symbol) (:policy :fast-safe) - (:translate make-symbol) + (:translate %make-symbol) (:args (name :scs (descriptor-reg) :to :eval)) (:temporary (:sc unsigned-reg :from :eval) temp) (:results (result :scs (descriptor-reg) :from :argument))