Inherit FP modes for new threads on Windows.
[sbcl.git] / src / code / defsetfs.lisp
index e5c1db2..af7d31e 100644 (file)
 ;;; from defstruct.lisp
 (in-package "SB!KERNEL")
 (defsetf %instance-ref %instance-set)
-(defsetf %raw-ref-single %raw-set-single)
-(defsetf %raw-ref-double %raw-set-double)
-#!+long-float
-(defsetf %raw-ref-long %raw-set-long)
-(defsetf %raw-ref-complex-single %raw-set-complex-single)
-(defsetf %raw-ref-complex-double %raw-set-complex-double)
-#!+long-float
-(defsetf %raw-ref-complex-long %raw-set-complex-long)
+
+(defsetf %raw-instance-ref/word %raw-instance-set/word)
+(defsetf %raw-instance-ref/single %raw-instance-set/single)
+(defsetf %raw-instance-ref/double %raw-instance-set/double)
+(defsetf %raw-instance-ref/complex-single %raw-instance-set/complex-single)
+(defsetf %raw-instance-ref/complex-double %raw-instance-set/complex-double)
+
 (defsetf %instance-layout %set-instance-layout)
 (defsetf %funcallable-instance-info %set-funcallable-instance-info)
+(defsetf %funcallable-instance-layout %set-funcallable-instance-layout)
 
 ;;; from early-setf.lisp
 (in-package "SB!IMPL")
 
-;;; KLUDGE: Various of these (e.g. AREF and BIT) have DEFUN (SETF FOO) versions
-;;; too. Do we really need both? -- WHN 19990921
+;;; (setf aref/bit/sbit) are implemented using setf-functions,
+;;; because they have to work with (setf (apply #'aref array subscripts))
+;;; All other setfs can be done using setf-functions too, but I
+;;; haven't found technical advantages or disatvantages for either
+;;; scheme.
 #-sb-xc-host (defsetf car %rplaca)
 #-sb-xc-host (defsetf cdr %rplacd)
 #-sb-xc-host (defsetf caar (x) (v) `(%rplaca (car ,x) ,v))
 #-sb-xc-host (defsetf tenth (x) (v) `(%rplaca (cdr (cddddr (cddddr ,x))) ,v))
 #-sb-xc-host (defsetf rest %rplacd)
 #-sb-xc-host (defsetf elt %setelt)
-#-sb-xc-host (defsetf aref %aset)
 #-sb-xc-host (defsetf row-major-aref %set-row-major-aref)
 #-sb-xc-host (defsetf svref %svset)
 #-sb-xc-host (defsetf char %charset)
-#-sb-xc-host (defsetf bit %bitset)
 #-sb-xc-host (defsetf schar %scharset)
-#-sb-xc-host (defsetf sbit %sbitset)
 (defsetf %array-dimension %set-array-dimension)
-(defsetf sb!kernel:%raw-bits sb!kernel:%set-raw-bits)
+(defsetf sb!kernel:%vector-raw-bits sb!kernel:%set-vector-raw-bits)
 #-sb-xc-host (defsetf symbol-value set)
-#-sb-xc-host (defsetf symbol-function fset)
+#-sb-xc-host (defsetf symbol-global-value set-symbol-global-value)
 #-sb-xc-host (defsetf symbol-plist %set-symbol-plist)
 #-sb-xc-host (defsetf nth %setnth)
 #-sb-xc-host (defsetf fill-pointer %set-fill-pointer)
-(defsetf search-list %set-search-list)
 (defsetf sap-ref-8 %set-sap-ref-8)
 (defsetf signed-sap-ref-8 %set-signed-sap-ref-8)
 (defsetf sap-ref-16 %set-sap-ref-16)
 (defsetf signed-sap-ref-16 %set-signed-sap-ref-16)
 (defsetf sap-ref-32 %set-sap-ref-32)
 (defsetf signed-sap-ref-32 %set-signed-sap-ref-32)
-#!+alpha (defsetf sap-ref-64 %set-sap-ref-64)
-#!+alpha (defsetf signed-sap-ref-64 %set-signed-sap-ref-64)
+(defsetf sap-ref-64 %set-sap-ref-64)
+(defsetf signed-sap-ref-64 %set-signed-sap-ref-64)
+(defsetf sap-ref-word %set-sap-ref-word)
+(defsetf signed-sap-ref-word %set-signed-sap-ref-word)
 (defsetf sap-ref-sap %set-sap-ref-sap)
+(defsetf sap-ref-lispobj %set-sap-ref-lispobj)
 (defsetf sap-ref-single %set-sap-ref-single)
 (defsetf sap-ref-double %set-sap-ref-double)
 #!+long-float (defsetf sap-ref-long %set-sap-ref-long)
 #-sb-xc-host (defsetf subseq (sequence start &optional (end nil)) (v)
-           `(progn (replace ,sequence ,v :start1 ,start :end1 ,end)
-                   ,v))
+            `(progn (replace ,sequence ,v :start1 ,start :end1 ,end)
+                    ,v))
 
 ;;; from fdefinition.lisp
 (in-package "SB!IMPL")
 ;;; from kernel.lisp
 (in-package "SB!KERNEL")
 (defsetf code-header-ref code-header-set)
-(defsetf %raw-bits %set-raw-bits)
 
 ;;; from serve-event.lisp
 (in-package "SB!IMPL")