(macrolet ((make-case ()
`(ecase raw-type
((t)
- (vop set-slot node block object arg-tn
+ (vop init-slot node block object arg-tn
name (+ sb!vm:instance-slots-offset slot) lowtag))
,@(mapcar (lambda (rsd)
`(,(sb!kernel::raw-slot-data-raw-type rsd)
nil))))
(make-case))))
(:dd
- (vop set-slot node block object
+ (vop init-slot node block object
(emit-constant (sb!kernel::dd-layout-or-lose slot))
name sb!vm:instance-slots-offset lowtag))
(otherwise
- (vop set-slot node block object
+ (vop init-slot node block object
(ecase kind
(:arg
(aver args)
(progn
(defoptimizer (allocate-vector stack-allocate-result)
((type length words) node dx)
- (or (eq dx :truly)
+ (or (eq dx :always-dynamic)
(zerop (policy node safety))
;; a vector object should fit in one page -- otherwise it might go past
;; stack guard pages.
;;; ...conses
#!+stack-allocatable-fixed-objects
-(defoptimizer (cons stack-allocate-result) ((&rest args) node dx)
- (declare (ignore node dx))
- t)
+(progn
+ (defoptimizer (cons stack-allocate-result) ((&rest args) node dx)
+ t)
+ (defoptimizer (%make-complex stack-allocate-result) ((&rest args) node dx)
+ t))