Fix deadlocks in GC on Windows.
[sbcl.git] / src / compiler / sparc / sap.lisp
index 0b1675c..4b1df19 100644 (file)
     signed-reg signed-num :long t)
   (def-system-ref-and-set sap-ref-sap %set-sap-ref-sap
     sap-reg system-area-pointer :long)
+  (def-system-ref-and-set sap-ref-lispobj %set-sap-ref-lispobj
+    descriptor-reg * :long)
   (def-system-ref-and-set sap-ref-single %set-sap-ref-single
     single-reg single-float :single)
   (def-system-ref-and-set sap-ref-double %set-sap-ref-double
   (:generator 2
     (inst add sap vector
           (- (* vector-data-offset n-word-bytes) other-pointer-lowtag))))
-\f
-;;; Transforms for 64-bit SAP accessors.
-(deftransform sap-ref-64 ((sap offset) (* *))
-  '(logior (ash (sap-ref-32 sap offset) 32)
-           (sap-ref-32 sap (+ offset 4))))
-
-(deftransform signed-sap-ref-64 ((sap offset) (* *))
-  '(logior (ash (signed-sap-ref-32 sap offset) 32)
-           (sap-ref-32 sap (+ 4 offset))))
-
-(deftransform %set-sap-ref-64 ((sap offset value) (* * *))
-  '(progn
-     (%set-sap-ref-32 sap offset (ash value -32))
-     (%set-sap-ref-32 sap (+ offset 4) (logand value #xffffffff))))
-
-(deftransform %set-signed-sap-ref-64 ((sap offset value) (* * *))
-  '(progn
-     (%set-signed-sap-ref-32 sap offset (ash value -32))
-     (%set-sap-ref-32 sap (+ 4 offset) (logand value #xffffffff))))