(:translate length)
(:args (object :scs (descriptor-reg control-stack) :target ptr))
(:arg-types list)
- (:temporary (:sc unsigned-reg :offset eax-offset) eax)
+ (:temporary (:sc dword-reg :offset eax-offset) eax)
(:temporary (:sc descriptor-reg :from (:argument 0)) ptr)
(:results (count :scs (any-reg)))
(:result-types positive-fixnum)
(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)
+ (move eax (make-dword-tn ptr))
(inst and al-tn lowtag-mask)
(inst cmp al-tn list-pointer-lowtag)
(inst jmp :e LOOP)
(count :scs (any-reg)))
(:temporary (:sc descriptor-reg :from (:argument 0) :to (:result 1)) list)
(:temporary (:sc descriptor-reg :to (:result 1)) nil-temp)
- (:temporary (:sc unsigned-reg :offset rax-offset :to (:result 1)) rax)
+ (:temporary (:sc dword-reg :offset eax-offset :to (:result 1)) eax)
(:vop-var vop)
(:save-p :compute-only)
(:generator 0
(inst jmp :e DONE)
(pushw list cons-car-slot list-pointer-lowtag)
(loadw list list cons-cdr-slot list-pointer-lowtag)
- (inst mov rax list)
+ (inst mov eax (make-dword-tn list))
(inst and al-tn lowtag-mask)
(inst cmp al-tn list-pointer-lowtag)
(inst jmp :e LOOP)