1.0.4.85: small PCL cleanups and thread-safety notes
[sbcl.git] / src / compiler / x86 / cell.lisp
index d1bc473..e30f508 100644 (file)
   (:ignore name)
   (:results)
   (:generator 1
-     (if (sc-is value immediate)
-        (let ((val (tn-value value)))
-           (etypecase val
-              (integer
-               (inst mov
-                     (make-ea :dword :base object
-                              :disp (- (* offset n-word-bytes) lowtag))
-                     (fixnumize val)))
-              (symbol
-               (inst mov
-                     (make-ea :dword :base object
-                              :disp (- (* offset n-word-bytes) lowtag))
-                     (+ nil-value (static-symbol-offset val))))
-              (character
-               (inst mov
-                     (make-ea :dword :base object
-                              :disp (- (* offset n-word-bytes) lowtag))
-                     (logior (ash (char-code val) n-widetag-bits)
-                             character-widetag)))))
-       ;; Else, value not immediate.
-       (storew value object offset lowtag))))
+     (storew (encode-value-if-immediate value) object offset lowtag)))
 \f