1.0.10.5: dynamic-extent CONS
[sbcl.git] / src / compiler / hppa / alloc.lisp
index f532c76..779234f 100644 (file)
         (inst move alloc-tn result)
         (inst dep fun-pointer-lowtag 31 3 result)
         (inst li (logior (ash (1- size) n-widetag-bits) closure-header-widetag) temp)
-        (storew temp result 0 fun-pointer-lowtag)))
-    (storew result result closure-self-slot fun-pointer-lowtag)
-    (storew function result closure-fun-slot fun-pointer-lowtag)))
+        (storew temp result 0 fun-pointer-lowtag)
+        (storew function result closure-fun-slot fun-pointer-lowtag)))))
 
 ;;; The compiler likes to be able to directly make value cells.
-;;;
 (define-vop (make-value-cell)
   (:args (value :to :save :scs (descriptor-reg any-reg)))
   (:temporary (:scs (non-descriptor-reg)) temp)
   (:results (result :scs (descriptor-reg)))
+  (:info stack-allocate-p)
+  (:ignore stack-allocate-p)
   (:generator 10
     (with-fixed-allocation
         (result temp value-cell-header-widetag value-cell-size))
   (:generator 1
     (inst li unbound-marker-widetag result)))
 
+(define-vop (make-funcallable-instance-tramp)
+  (:args)
+  (:results (result :scs (any-reg)))
+  (:generator 1
+    (inst li (make-fixup "funcallable_instance_tramp" :foreign) result)))
+
 (define-vop (fixed-alloc)
   (:args)
-  (:info name words type lowtag)
-  (:ignore name)
+  (:info name words type lowtag stack-allocate-p)
+  (:ignore name stack-allocate-p)
   (:results (result :scs (descriptor-reg)))
   (:temporary (:scs (non-descriptor-reg)) temp)
   (:generator 4