diff --git a/compiler/mips/array.lisp b/compiler/mips/array.lisp
index 7801491c066c135a4ced7cb26e16601ecefa113b..9d76c0ba2518d028bfb643c14e09fe2c911fb396 100644
--- a/compiler/mips/array.lisp
+++ b/compiler/mips/array.lisp
@@ -7,7 +7,7 @@
 ;;; Scott Fahlman (FAHLMAN@CMUC). 
 ;;; **********************************************************************
 ;;;
-;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/array.lisp,v 1.10 1990/04/24 02:55:41 wlott Exp $
+;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/array.lisp,v 1.11 1990/04/27 19:19:27 wlott Exp $
 ;;;
 ;;;    This file contains the MIPS definitions for array operations.
 ;;;
@@ -105,7 +105,6 @@
 					"-REF")))
        (:variant vm:vector-data-offset vm:other-pointer-type)
        (:translate data-vector-ref)
-       (:policy :fast-safe)
        (:arg-types ,type *)
        ,@(when sc
 	   `((:results (value :scs (,sc)))
@@ -118,37 +117,41 @@
 					"-SET")))
        (:variant vm:vector-data-offset vm:other-pointer-type)
        (:translate data-vector-set)
-       (:policy :fast-safe)
        (:arg-types ,type * ,element-type)
        ,@(when sc
 	   `((:args (object :scs (descriptor-reg))
 		    (index :scs (any-reg descriptor-reg
 					 immediate unsigned-immediate))
 		    (value :scs (,sc)))
-	     (:results (result :scs (,sc)))
-	     (:result-types ,element-type))))))
+	     (:results (result :scs (,sc))))))))
 
 (def-data-vector-frobs simple-string byte-index
   base-character base-character-reg)
 (def-data-vector-frobs simple-vector word-index)
-#|
+
 (def-data-vector-frobs simple-array-unsigned-byte-8 byte-index
-  unsigned-32-reg)
+  unsigned-reg)
 (def-data-vector-frobs simple-array-unsigned-byte-16 halfword-index
-  unsigned-32-reg)
+  unsigned-reg)
 (def-data-vector-frobs simple-array-unsigned-byte-32 word-index
-  unsigned-32-reg)
-|#
+  unsigned-reg)
 
 
 
-(define-vop (raw-bits halfword-index-ref)
+(define-vop (raw-bits word-index-ref)
+  (:note "raw-bits VOP")
   (:translate %raw-bits)
-  (:variant 1 vm:other-pointer-type))
+  (:results (result :scs (unsigned-reg)))
+  (:variant 0 vm:other-pointer-type))
 
-(define-vop (set-raw-bits halfword-index-set)
+(define-vop (set-raw-bits word-index-set)
+  (:note "setf raw-bits VOP")
   (:translate (setf %raw-bits))
-  (:variant 1 vm:other-pointer-type))
+  (:args (object :scs (descriptor-reg))
+	 (index :scs (any-reg descriptor-reg immediate unsigned-immediate))
+	 (value :scs (unsigned-reg)))
+  (:results (result :scs (unsigned-reg)))
+  (:variant 0 vm:other-pointer-type))