diff --git a/compiler/sparc/memory.lisp b/compiler/sparc/memory.lisp index fa90d7bab616015f68bf83c2ae94cd1b9056993b..6150db0920593885ed9a9953f6268d887e3a8043 100644 --- a/compiler/sparc/memory.lisp +++ b/compiler/sparc/memory.lisp @@ -1,13 +1,15 @@ ;;; -*- Package: SPARC -*- ;;; ;;; ********************************************************************** -;;; This code was written as part of the Spice Lisp project at -;;; Carnegie-Mellon University, and has been placed in the public domain. -;;; If you want to use this code or any part of Spice Lisp, please contact -;;; Scott Fahlman (FAHLMAN@CMUC). -;;; ********************************************************************** +;;; This code was written as part of the CMU Common Lisp project at +;;; Carnegie Mellon University, and has been placed in the public domain. +;;; If you want to use this code or any part of CMU Common Lisp, please contact +;;; Scott Fahlman or slisp-group@cs.cmu.edu. +;;; +(ext:file-comment + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/memory.lisp,v 1.2 1992/12/16 20:26:30 wlott Exp $") ;;; -;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/memory.lisp,v 1.1 1990/11/30 17:04:52 wlott Exp $ +;;; ********************************************************************** ;;; ;;; This file contains the SPARC definitions of some general purpose memory ;;; reference VOPs inherited by basic memory reference operations. @@ -20,10 +22,7 @@ (in-package "SPARC") ;;; 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 setf function (new value first, as -;;; apposed to a setf macro, which takes the new value last). +;;; be read or written is a property of the VOP used. ;;; (define-vop (cell-ref) (:args (object :scs (descriptor-reg))) @@ -40,49 +39,6 @@ (:policy :fast-safe) (:generator 4 (storew value object offset lowtag))) -;;; -(define-vop (cell-setf) - (:args (object :scs (descriptor-reg)) - (value :scs (descriptor-reg any-reg) - :target result)) - (:results (result :scs (descriptor-reg any-reg))) - (:variant-vars offset lowtag) - (:policy :fast-safe) - (:generator 4 - (storew value object offset lowtag) - (move result value))) -;;; -(define-vop (cell-setf-function) - (:args (value :scs (descriptor-reg any-reg) - :target result) - (object :scs (descriptor-reg))) - (:results (result :scs (descriptor-reg any-reg))) - (:variant-vars offset lowtag) - (:policy :fast-safe) - (:generator 4 - (storew value object offset lowtag) - (move result value))) - -;;; Define-Cell-Accessors -- Interface -;;; -;;; Define accessor VOPs for some cells in an object. If the operation name -;;; is NIL, then that operation isn't defined. If the translate function is -;;; null, then we don't define a translation. -;;; -(defmacro define-cell-accessors (offset lowtag - ref-op ref-trans set-op set-trans) - `(progn - ,@(when ref-op - `((define-vop (,ref-op cell-ref) - (:variant ,offset ,lowtag) - ,@(when ref-trans - `((:translate ,ref-trans)))))) - ,@(when set-op - `((define-vop (,set-op cell-setf) - (:variant ,offset ,lowtag) - ,@(when set-trans - `((:translate ,set-trans)))))))) - ;;; Slot-Ref and Slot-Set are used to define VOPs like Closure-Ref, where the ;;; offset is constant at compile time, but varies for different uses. We add