X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fx86%2Fmemory.lisp;h=ca8c2e28b0dc9328a3f117620e6b7c3d206e2640;hb=b7a8f5313a83dea33ce60551a4fb987b415c2cc6;hp=d06db4f87be73cff6a5d772d5bbd5b57205370da;hpb=3c65762b927af861c9c8bc416e4cbac9a14ec0c3;p=sbcl.git diff --git a/src/compiler/x86/memory.lisp b/src/compiler/x86/memory.lisp index d06db4f..ca8c2e2 100644 --- a/src/compiler/x86/memory.lisp +++ b/src/compiler/x86/memory.lisp @@ -15,7 +15,7 @@ ;;; 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) @@ -41,7 +41,7 @@ (: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))) @@ -79,7 +79,7 @@ (: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, @@ -104,17 +104,17 @@ (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)) + :disp (- (* (+ base offset) n-word-bytes) lowtag)) (logior (ash (char-code val) n-widetag-bits) base-char-widetag))))) ;; Else, value not immediate. @@ -134,7 +134,7 @@ (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))) @@ -149,5 +149,5 @@ (: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)))