From 6008cdb02511c1f26e808876ba41f75effd24dad Mon Sep 17 00:00:00 2001 From: ram <ram> Date: Mon, 1 Mar 1993 14:50:14 +0000 Subject: [PATCH] Add %raw-set-{single,double} --- compiler/sparc/array.lisp | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/compiler/sparc/array.lisp b/compiler/sparc/array.lisp index 841f46ae9..9d52de979 100644 --- a/compiler/sparc/array.lisp +++ b/compiler/sparc/array.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/array.lisp,v 1.10 1992/10/11 10:54:20 wlott Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/array.lisp,v 1.11 1993/03/01 14:50:14 ram Exp $") ;;; ;;; ********************************************************************** ;;; @@ -388,6 +388,26 @@ (inst fmovs result value) (inst fmovs-odd result value)))) +;;; These VOPs are used for implementing float slots in structures (whose raw +;;; data is an unsigned-32 vector. +;;; +(define-vop (raw-ref-single data-vector-ref/simple-array-single-float) + (:translate %raw-ref-single) + (:arg-types simple-array-unsigned-byte-32 positive-fixnum)) +;;; +(define-vop (raw-set-single data-vector-set/simple-array-single-float) + (:translate %raw-set-single) + (:arg-types simple-array-unsigned-byte-32 positive-fixnum single-float)) +;;; +(define-vop (raw-ref-double data-vector-ref/simple-array-double-float) + (:translate %raw-ref-double) + (:arg-types simple-array-unsigned-byte-32 positive-fixnum)) +;;; +(define-vop (raw-set-double data-vector-set/simple-array-double-float) + (:translate %raw-set-double) + (:arg-types simple-array-unsigned-byte-32 positive-fixnum double-float)) + + ;;; These vops are useful for accessing the bits of a vector irrespective of ;;; what type of vector it is. ;;; -- GitLab