Protect the last store into the object also by pseudo-atomic.
[sbcl.git] / src / compiler / mips / alloc.lisp
index 697ba4c..1f6e3a7 100644 (file)
 
     (pseudo-atomic (pa-flag)
       (inst or result alloc-tn other-pointer-lowtag)
+      (inst addu alloc-tn boxed)
       (storew ndescr result 0 other-pointer-lowtag)
       (storew unboxed result code-code-size-slot other-pointer-lowtag)
+      (inst addu alloc-tn unboxed)
       (storew null-tn result code-entry-points-slot other-pointer-lowtag)
-      (inst addu alloc-tn boxed)
-      (inst addu alloc-tn unboxed))
-
-    (storew null-tn result code-debug-info-slot other-pointer-lowtag)))
+      (storew null-tn result code-debug-info-slot other-pointer-lowtag))))
 
 (define-vop (make-fdefn)
   (:policy :fast-safe)