X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fassembly%2Fx86%2Farray.lisp;h=7662427adc69fa0b769e216aacc75beba37d6944;hb=4ed3f0d08c3a57a6762018d9622f253ab9d0f2b6;hp=677bffa34466ba4b8fad7c7218960609ce4fa670;hpb=cea4896b2482b7b2b429c1631d774b4cfbc0efba;p=sbcl.git diff --git a/src/assembly/x86/array.lisp b/src/assembly/x86/array.lisp index 677bffa..7662427 100644 --- a/src/assembly/x86/array.lisp +++ b/src/assembly/x86/array.lisp @@ -24,15 +24,15 @@ (:arg length any-reg ebx-offset) (:arg words any-reg ecx-offset) (:res result descriptor-reg edx-offset)) - (inst mov result (+ (1- (ash 1 lowtag-bits)) - (* vector-data-offset word-bytes))) + (inst mov result (+ (1- (ash 1 n-lowtag-bits)) + (* vector-data-offset n-word-bytes))) (inst add result words) - (inst and result (lognot sb!vm:lowtag-mask)) + (inst and result (lognot lowtag-mask)) (pseudo-atomic (allocation result result) - (inst lea result (make-ea :byte :base result :disp other-pointer-type)) - (storew type result 0 other-pointer-type) - (storew length result vector-length-slot other-pointer-type)) + (inst lea result (make-ea :byte :base result :disp other-pointer-lowtag)) + (storew type result 0 other-pointer-lowtag) + (storew length result vector-length-slot other-pointer-lowtag)) (inst ret)) ;;;; Note: CMU CL had assembly language primitives for hashing strings,