Commit 58db2bd2 authored by toy's avatar toy
Browse files

Enable dynamic-extent stack allocation for MAKE-CLOSURE, just like on

x86.
parent 9c7dd4b4
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@
;;; Carnegie Mellon University, and has been placed in the public domain.
;;;
(ext:file-comment
  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/alloc.lisp,v 1.14 2003/08/03 11:27:46 gerd Exp $")
  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/alloc.lisp,v 1.15 2003/08/06 21:12:07 toy Exp $")
;;;
;;; **********************************************************************
;;;
@@ -117,13 +117,17 @@

(define-vop (make-closure)
  (:args (function :to :save :scs (descriptor-reg)))
  (:info length)
  (:info length dynamic-extent)
  (:temporary (:scs (non-descriptor-reg)) temp)
  (:results (result :scs (descriptor-reg)))
  (:node-var node)
  (:generator 10
    (let ((size (+ length closure-info-offset)))
      (pseudo-atomic ()
        (allocation result (pad-data-block size) function-pointer-type)
        (allocation result (pad-data-block size) function-pointer-type
		    :stack-p dynamic-extent
		    :node node
		    :temp-tn temp)
	(inst li temp (logior (ash (1- size) type-bits) closure-header-type))
	(storew temp result 0 function-pointer-type)))
    (storew function result closure-function-slot function-pointer-type)))