X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fgeneric%2Farray.lisp;h=29affadcc9c69ac6a5a9c669a5d367538226a2b3;hb=4378b6ab369ee101b5c4625f24901561ad4899b8;hp=25df53b79f46a77f5c90b4326965ff342c8e274c;hpb=f1ffbf976aaa50b7b22f126b97e34afe06a91210;p=sbcl.git diff --git a/src/compiler/generic/array.lisp b/src/compiler/generic/array.lisp index 25df53b..29affad 100644 --- a/src/compiler/generic/array.lisp +++ b/src/compiler/generic/array.lisp @@ -49,6 +49,39 @@ (:save-p :compute-only) (:generator 1 (error-call vop nil-array-accessed-error object))) + +(define-vop (data-vector-ref-with-offset/simple-array-nil) + (:translate data-vector-ref-with-offset) + (:policy :fast-safe) + (:args (object :scs (descriptor-reg)) + (index :scs (unsigned-reg))) + (:info offset) + (:arg-types simple-array-nil positive-fixnum + (:constant (integer 0 0))) + (:results (value :scs (descriptor-reg))) + (:result-types *) + (:ignore index value offset) + (:vop-var vop) + (:save-p :compute-only) + (:generator 1 + (error-call vop nil-array-accessed-error object))) + +(define-vop (data-vector-set/simple-array-nil) + (:translate data-vector-set) + (:policy :fast-safe) + (:args (object :scs (descriptor-reg)) + (index :scs (unsigned-reg)) + (value :scs (descriptor-reg))) + (:info offset) + (:arg-types simple-array-nil positive-fixnum * + (:constant (integer 0 0))) + (:results (result :scs (descriptor-reg))) + (:result-types *) + (:ignore index value result offset) + (:vop-var vop) + (:save-p :compute-only) + (:generator 1 + (error-call vop nil-array-accessed-error object))) ;;; FIXME: There is probably plenty of other array stuff that looks ;;; the same or similar enough to be genericized. Do so, and move it