Compare a register with nil-value directly, without going through a
temporary register.
(:results (start :scs (any-reg))
(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 dword-reg :offset eax-offset :to (:result 1)) eax)
(:vop-var vop)
(:save-p :compute-only)
(:generator 0
(move list arg)
(move start rsp-tn) ; WARN pointing 1 below
- (inst mov nil-temp nil-value)
LOOP
- (inst cmp list nil-temp)
+ (inst cmp list nil-value)
(inst jmp :e DONE)
(pushw list cons-car-slot list-pointer-lowtag)
(loadw list list cons-cdr-slot list-pointer-lowtag)