X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fassembly%2Fmips%2Farray.lisp;h=5e68e873284419cd3933d99a2d248ab8dad55c84;hb=95591ed483dbb8c0846c129953acac1554f28809;hp=3c53f1edede2ec0c123fc41d424ed0203b74fbba;hpb=481348f2f96f364374f669786f9fc61348decabc;p=sbcl.git diff --git a/src/assembly/mips/array.lisp b/src/assembly/mips/array.lisp index 3c53f1e..5e68e87 100644 --- a/src/assembly/mips/array.lisp +++ b/src/assembly/mips/array.lisp @@ -12,29 +12,4 @@ (in-package "SB!VM") -(define-assembly-routine (allocate-vector - (:policy :fast-safe) - (:translate allocate-vector) - (:arg-types positive-fixnum - positive-fixnum - positive-fixnum)) - ((:arg type any-reg a0-offset) - (:arg length any-reg a1-offset) - (:arg words any-reg a2-offset) - (:res result descriptor-reg a0-offset) - - (:temp ndescr non-descriptor-reg nl0-offset) - (:temp pa-flag non-descriptor-reg nl4-offset)) - ;; This is kinda sleezy, changing words like this. But we can because - ;; the vop thinks it is temporary. - (inst addu words (+ lowtag-mask - (* vector-data-offset n-word-bytes))) - (inst srl ndescr type word-shift) - (inst srl words n-lowtag-bits) - (inst sll words n-lowtag-bits) - - (pseudo-atomic (pa-flag) - (inst or result alloc-tn other-pointer-lowtag) - (inst addu alloc-tn words) - (storew ndescr result 0 other-pointer-lowtag) - (storew length result vector-length-slot other-pointer-lowtag))) +;;;; Note: ALLOCATE-VECTOR is now implemented as a VOP.