(define-vop (set-slot)
(:args (object :scs (descriptor-reg))
(value :scs (descriptor-reg any-reg null zero)))
- (:info name offset lowtag #+gengc remember)
+ (:info name offset lowtag #!+gengc remember)
(:ignore name)
(:results)
(:generator 1
- #+gengc
+ #!+gengc
(if remember
(storew-and-remember-slot value object offset lowtag)
(storew value object offset lowtag))
- #-gengc
+ #!-gengc
(storew value object offset lowtag)))
\f
;;;; symbol hacking VOPs
(inst xor value unbound-marker-widetag temp)
(inst beq temp err-lab))))
-;;; Like CHECKED-CELL-REF, only we are a predicate to see if the cell
-;;; is bound.
+;;; like CHECKED-CELL-REF, only we are a predicate to see if the cell
+;;; is bound
(define-vop (boundp-frob)
(:args (object :scs (descriptor-reg)))
(:conditional)
(:variant symbol-value-slot other-pointer-lowtag)
(:policy :fast)
(:translate symbol-value))
-
-
\f
;;;; fdefinition (FDEFN) objects
(:generator 10
(move object obj-temp)
(loadw value obj-temp fdefn-fun-slot other-pointer-lowtag)
- (let ((err-lab (generate-error-code vop undefined-symbol-error obj-temp)))
+ (let ((err-lab (generate-error-code vop undefined-fun-error obj-temp)))
(inst cmpeq value null-tn temp)
(inst bne temp err-lab))))
(inst addq bsp-tn (* 2 n-word-bytes) bsp-tn)
(storew temp bsp-tn (- binding-value-slot binding-size))
(storew symbol bsp-tn (- binding-symbol-slot binding-size))
- (#+gengc storew-and-remember-slot #-gengc storew
+ (#!+gengc storew-and-remember-slot #!-gengc storew
val symbol symbol-value-slot other-pointer-lowtag)))
(:generator 0
(loadw symbol bsp-tn (- binding-symbol-slot binding-size))
(loadw value bsp-tn (- binding-value-slot binding-size))
- (#+gengc storew-and-remember-slot #-gengc storew
+ (#!+gengc storew-and-remember-slot #!-gengc storew
value symbol symbol-value-slot other-pointer-lowtag)
(storew zero-tn bsp-tn (- binding-symbol-slot binding-size))
(inst subq bsp-tn (* 2 n-word-bytes) bsp-tn)))
(loadw symbol bsp-tn (- binding-symbol-slot binding-size))
(loadw value bsp-tn (- binding-value-slot binding-size))
(inst beq symbol skip)
- (#+gengc storew-and-remember-slot #-gengc storew
+ (#!+gengc storew-and-remember-slot #!-gengc storew
value symbol symbol-value-slot other-pointer-lowtag)
(storew zero-tn bsp-tn (- binding-symbol-slot binding-size))
\f
;;;; mutator accessing
-#+gengc
+#!+gengc
(progn
(eval-when (:compile-toplevel :load-toplevel :execute)