;;; CELL-REF and CELL-SET are used to define VOPs like CAR, where the
;;; offset to be read or written is a property of the VOP used.
;;; CELL-SETF is similar to CELL-SET, but delivers the new value as
-;;; the result. CELL-SETF-FUNCTION takes its arguments as if it were a
+;;; the result. CELL-SETF-FUN takes its arguments as if it were a
;;; SETF function (new value first, as apposed to a SETF macro, which
;;; takes the new value last).
(define-vop (cell-ref)
(:generator 4
(storew value object offset lowtag)
(move result value)))
-(define-vop (cell-setf-function)
+(define-vop (cell-setf-fun)
(:args (value :scs (descriptor-reg any-reg) :target result)
(object :scs (descriptor-reg)))
(:results (result :scs (descriptor-reg any-reg)))
(:generator 4
(move result value)
(inst xadd (make-ea :dword :base object
- :disp (- (* offset word-bytes) lowtag))
+ :disp (- (* offset n-word-bytes) lowtag))
value)))
;;; SLOT-REF and SLOT-SET are used to define VOPs like CLOSURE-REF,
(integer
(inst mov
(make-ea :dword :base object
- :disp (- (* (+ base offset) word-bytes) lowtag))
+ :disp (- (* (+ base offset) n-word-bytes) lowtag))
(fixnumize val)))
(symbol
(inst mov
(make-ea :dword :base object
- :disp (- (* (+ base offset) word-bytes) lowtag))
+ :disp (- (* (+ base offset) n-word-bytes) lowtag))
(+ nil-value (static-symbol-offset val))))
(character
(inst mov
(make-ea :dword :base object
- :disp (- (* (+ base offset) word-bytes) lowtag))
- (logior (ash (char-code val) type-bits)
- base-char-type)))))
+ :disp (- (* (+ base offset) n-word-bytes) lowtag))
+ (logior (ash (char-code val) n-widetag-bits)
+ character-widetag)))))
;; Else, value not immediate.
(storew value object (+ base offset) lowtag))))
(move eax old-value)
(move temp new-value)
(inst cmpxchg (make-ea :dword :base object
- :disp (- (* (+ base offset) word-bytes) lowtag))
+ :disp (- (* (+ base offset) n-word-bytes) lowtag))
temp)
(move result eax)))
(:generator 4
(move result value)
(inst xadd (make-ea :dword :base object
- :disp (- (* (+ base offset) word-bytes) lowtag))
+ :disp (- (* (+ base offset) n-word-bytes) lowtag))
value)))