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)