(storew ,temp-tn ,result-tn 0 other-pointer-lowtag)
,@body)))
+(defun align-csp (temp)
+ ;; is used for stack allocation of dynamic-extent objects
+ (let ((aligned (gen-label)))
+ (inst and temp csp-tn lowtag-mask)
+ (inst beq temp aligned)
+ (inst nop)
+ (inst addu csp-tn n-word-bytes)
+ (storew zero-tn csp-tn -1)
+ (emit-label aligned)))
+
\f
;;;; Three Way Comparison
(defun three-way-comparison (x y condition flavor not-p target temp)
`((let ((vop ,vop))
(when vop
(note-this-location vop :internal-error)))
- (inst break ,kind)
+ (inst break 0 ,kind)
(with-adjustable-vector (,vector)
(write-var-integer (error-number-or-lose ',code) ,vector)
,@(mapcar #'(lambda (tn)
(let ((label (gen-label)))
(inst bgez ,flag-tn label)
(inst addu alloc-tn (1- ,extra))
- (inst break 16)
+ (inst break 0 16)
(emit-label label)))))
\f
;;;; memory accessor vop generators