X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Falpha%2Fsubprim.lisp;h=b3185d151829ce37eafd2b624ce748826b918e81;hb=aa7b669779e8e88349938ca962229f31ead08af2;hp=66e9ef8f85741b8909ffd116f7c44fb392f06538;hpb=6fb6e66f531dfb6140ec3e0cc8f84f6ecd1927ca;p=sbcl.git diff --git a/src/compiler/alpha/subprim.lisp b/src/compiler/alpha/subprim.lisp index 66e9ef8..b3185d1 100644 --- a/src/compiler/alpha/subprim.lisp +++ b/src/compiler/alpha/subprim.lisp @@ -20,7 +20,7 @@ (:temporary (:scs (descriptor-reg) :from (:argument 0)) ptr) (:temporary (:scs (non-descriptor-reg)) temp) (:temporary (:scs (any-reg) :type fixnum :to (:result 0) :target result) - count) + count) (:results (result :scs (any-reg descriptor-reg))) (:policy :fast-safe) (:vop-var vop) @@ -28,24 +28,24 @@ (:generator 50 (move object ptr) (move zero-tn count) - + LOOP - + (inst cmpeq ptr null-tn temp) (inst bne temp done) - + (inst and ptr lowtag-mask temp) (inst xor temp list-pointer-lowtag temp) (inst bne temp not-list) - + (loadw ptr ptr cons-cdr-slot list-pointer-lowtag) (inst addq count (fixnumize 1) count) (inst br zero-tn loop) - + NOT-LIST (cerror-call vop done object-not-list-error ptr) - + DONE (move count result))) - -(define-static-function length (object) :translate length) + +(define-static-fun length (object) :translate length)