;;;; files for more information.
(in-package "SB!VM")
-
-(file-comment
- "$Header$")
\f
;;;; LENGTH
;; Move OBJECT into a temp we can bash on, and initialize the count.
(move ptr object)
(inst xor count count)
- ;; If we are starting with NIL, then it's real easy.
- (inst cmp ptr *nil-value*)
+ ;; If we are starting with NIL, then it's really easy.
+ (inst cmp ptr nil-value)
(inst jmp :e done)
;; Note: we don't have to test to see whether the original argument is a
;; list, because this is a :fast-safe vop.
LOOP
;; Get the CDR and boost the count.
- (loadw ptr ptr cons-cdr-slot list-pointer-type)
+ (loadw ptr ptr cons-cdr-slot list-pointer-lowtag)
(inst add count (fixnumize 1))
;; If we hit NIL, then we are done.
- (inst cmp ptr *nil-value*)
+ (inst cmp ptr nil-value)
(inst jmp :e done)
;; Otherwise, check to see whether we hit the end of a dotted list. If
;; not, loop back for more.
(move eax ptr)
(inst and al-tn lowtag-mask)
- (inst cmp al-tn list-pointer-type)
+ (inst cmp al-tn list-pointer-lowtag)
(inst jmp :e loop)
;; It's dotted all right. Flame out.
- (error-call vop object-not-list-error ptr)
+ (error-call vop 'object-not-list-error ptr)
;; We be done.
DONE))
(move ptr object)
(inst xor count count)
;; If we are starting with NIL, we be done.
- (inst cmp ptr *nil-value*)
+ (inst cmp ptr nil-value)
(inst jmp :e done)
;; Indirect the next cons cell, and boost the count.
LOOP
- (loadw ptr ptr cons-cdr-slot list-pointer-type)
+ (loadw ptr ptr cons-cdr-slot list-pointer-lowtag)
(inst add count (fixnumize 1))
;; If we aren't done, go back for more.
- (inst cmp ptr *nil-value*)
+ (inst cmp ptr nil-value)
(inst jmp :ne loop)
DONE))
-(define-static-function length (object) :translate length)
+(define-static-fun length (object) :translate length)