Skip to content
Snippets Groups Projects
Commit 6ebb5ca6 authored by wlott's avatar wlott
Browse files

Removed some unused cruft and updated the header.

parent c6874a75
No related branches found
No related tags found
No related merge requests found
;;; -*- 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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment