diff --git a/compiler/mips/array.lisp b/compiler/mips/array.lisp index 8e0e98facb6e2861ce40a813047aeaf84ace99a6..a5ad468aaf750963631c80d2a88766d362a02bc6 100644 --- a/compiler/mips/array.lisp +++ b/compiler/mips/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/mips/array.lisp,v 1.39 1993/02/04 14:37:46 wlott Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/array.lisp,v 1.40 1993/02/26 08:48:55 ram Exp $") ;;; ;;; ********************************************************************** ;;; @@ -426,6 +426,25 @@ (inst fmove :double 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. diff --git a/compiler/mips/call.lisp b/compiler/mips/call.lisp index 69ad228c1438d26562f8118661c1f51df718dedc..a263055b158475260bcdca963e56c19866473ee2 100644 --- a/compiler/mips/call.lisp +++ b/compiler/mips/call.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/mips/call.lisp,v 1.55 1993/02/07 18:48:56 wlott Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/call.lisp,v 1.56 1993/02/26 08:48:59 ram Exp $") ;;; ;;; ********************************************************************** ;;; @@ -498,7 +498,7 @@ default-value-8 (store-stack-tn nfp-save cur-nfp)) (let ((callee-nfp (callee-nfp-tn callee))) (when callee-nfp - (move callee-nfp nfp))) + (maybe-load-stack-tn callee-nfp nfp))) (maybe-load-stack-tn cfp-tn fp) #-gengc (inst compute-lra-from-code @@ -540,7 +540,7 @@ default-value-8 (store-stack-tn nfp-save cur-nfp)) (let ((callee-nfp (callee-nfp-tn callee))) (when callee-nfp - (move callee-nfp nfp))) + (maybe-load-stack-tn callee-nfp nfp))) (maybe-load-stack-tn cfp-tn fp) #-gengc (inst compute-lra-from-code @@ -586,7 +586,7 @@ default-value-8 (store-stack-tn nfp-save cur-nfp)) (let ((callee-nfp (callee-nfp-tn callee))) (when callee-nfp - (move callee-nfp nfp))) + (maybe-load-stack-tn callee-nfp nfp))) (maybe-load-stack-tn cfp-tn fp) #-gengc (inst compute-lra-from-code @@ -1379,6 +1379,8 @@ default-value-8 c::%argument-count-error nargs) (frob type-check-error object-not-type-error c::%type-check-error object type) + (frob layout-invalid-error layout-invalid-error c::%layout-invalid-error + object layout) (frob odd-keyword-arguments-error odd-keyword-arguments-error c::%odd-keyword-arguments-error) (frob unknown-keyword-argument-error unknown-keyword-argument-error diff --git a/compiler/mips/cell.lisp b/compiler/mips/cell.lisp index bec195201eb6d9c1f2d4e882dd3387478b4ef588..22eb1f414007a0c51eb506439cc4602433b49107 100644 --- a/compiler/mips/cell.lisp +++ b/compiler/mips/cell.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/mips/cell.lisp,v 1.64 1992/12/16 14:11:52 wlott Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/cell.lisp,v 1.65 1993/02/26 08:49:03 ram Exp $") ;;; ;;; ********************************************************************** ;;; @@ -246,35 +246,35 @@ -;;;; Structure hackery: +;;;; Instance hackery: -(define-vop (structure-length) +(define-vop (instance-length) (:policy :fast-safe) - (:translate structure-length) + (:translate %instance-length) (:args (struct :scs (descriptor-reg))) (:results (res :scs (unsigned-reg))) (:result-types positive-fixnum) (:generator 4 - (loadw res struct 0 structure-pointer-type) + (loadw res struct 0 instance-pointer-type) (inst srl res type-bits))) -(define-vop (structure-ref slot-ref) - (:variant structure-slots-offset structure-pointer-type) +(define-vop (instance-ref slot-ref) + (:variant instance-slots-offset instance-pointer-type) (:policy :fast-safe) - (:translate structure-ref) - (:arg-types structure (:constant index))) + (:translate %instance-ref) + (:arg-types instance (:constant index))) -(define-vop (structure-set slot-set) +(define-vop (instance-set slot-set) (:policy :fast-safe) - (:translate structure-set) - (:variant structure-slots-offset structure-pointer-type) - (:arg-types structure (:constant index) *)) + (:translate %instance-set) + (:variant instance-slots-offset instance-pointer-type) + (:arg-types instance (:constant index) *)) -(define-full-reffer structure-index-ref * structure-slots-offset - structure-pointer-type (descriptor-reg any-reg) * structure-ref) +(define-full-reffer instance-index-ref * instance-slots-offset + instance-pointer-type (descriptor-reg any-reg) * %instance-ref) -(define-full-setter structure-index-set * structure-slots-offset - structure-pointer-type (descriptor-reg any-reg) * structure-set) +(define-full-setter instance-index-set * instance-slots-offset + instance-pointer-type (descriptor-reg any-reg) * %instance-set) diff --git a/compiler/mips/parms.lisp b/compiler/mips/parms.lisp index b8265acd35387308906f0a70a576bb46b1c8f725..3c33e184c6e92f0885a2f2800877d72f9307002f 100644 --- a/compiler/mips/parms.lisp +++ b/compiler/mips/parms.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/mips/parms.lisp,v 1.106 1993/01/13 16:04:32 wlott Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/parms.lisp,v 1.107 1993/02/26 08:49:06 ram Exp $") ;;; ;;; ********************************************************************** ;;; @@ -35,7 +35,7 @@ (setf (backend-fasl-file-type *target-backend*) "pmaxf") (setf (backend-fasl-file-implementation *target-backend*) pmax-fasl-file-implementation) -(setf (backend-fasl-file-version *target-backend*) 5) +(setf (backend-fasl-file-version *target-backend*) 6) (setf (backend-register-save-penalty *target-backend*) 3) (setf (backend-byte-order *target-backend*) :little-endian) (setf (backend-page-size *target-backend*) 4096) diff --git a/compiler/mips/type-vops.lisp b/compiler/mips/type-vops.lisp index 77216fae6ecf0a3e66b86464fd3f17ecdcf92bf7..26060f31eee3a7f6fe5cad91d574d3408ce6c690 100644 --- a/compiler/mips/type-vops.lisp +++ b/compiler/mips/type-vops.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/mips/type-vops.lisp,v 1.39 1993/01/13 16:00:02 wlott Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/type-vops.lisp,v 1.40 1993/02/26 08:49:09 ram Exp $") ;;; ;;; ********************************************************************** ;;; @@ -252,8 +252,8 @@ (def-type-vops listp check-list list object-not-list-error list-pointer-type) -(def-type-vops structurep check-structure structure object-not-structure-error - structure-pointer-type) +(def-type-vops %instancep check-instance instance object-not-instance-error + instance-pointer-type) (def-type-vops bignump check-bigunm bignum object-not-bignum-error bignum-type)