;;;; files for more information.
(in-package "SB!VM")
-
-(file-comment
- "$Header$")
\f
;;;; interfaces to IR2 conversion
;; Default the unsuppled registers.
(let* ((2nd-tn-ref (tn-ref-across values))
(2nd-tn (tn-ref-tn 2nd-tn-ref)))
- (inst mov 2nd-tn *nil-value*)
+ (inst mov 2nd-tn nil-value)
(when (> nvals 2)
(loop
for tn-ref = (tn-ref-across 2nd-tn-ref)
(inst jmp-short regs-defaulted)
;; Do the single value case.
;; Default the register args
- (inst mov eax-tn *nil-value*)
+ (inst mov eax-tn nil-value)
(do ((i 1 (1+ i))
(val (tn-ref-across values) (tn-ref-across val)))
((= i (min nvals register-arg-count)))
(emit-label regs-defaulted)
- (inst mov eax-tn *nil-value*)
+ (inst mov eax-tn nil-value)
(storew edx-tn ebx-tn -1)
(collect ((defaults))
(do ((i register-arg-count (1+ i))
;; the MV return point.
(inst mov ebx-tn esp-tn)
(inst push edx-tn)
- (inst mov edi-tn *nil-value*)
+ (inst mov edi-tn nil-value)
(inst push edi-tn)
(inst mov esi-tn edi-tn)
;; Compute a pointer to where to put the [defaulted] stack values.
:disp (* (- (1+ register-arg-count)) word-bytes)))
;; Load EAX with NIL so we can quickly store it, and set up stuff
;; for the loop.
- (inst mov eax-tn *nil-value*)
+ (inst mov eax-tn nil-value)
(inst std)
(inst mov ecx-tn (- nvals register-arg-count))
;; Jump into the default loop.
(inst mov ecx-tn eax-tn)
(inst shr ecx-tn word-shift) ; word count
;; Load EAX with NIL for fast storing.
- (inst mov eax-tn *nil-value*)
+ (inst mov eax-tn nil-value)
;; Do the store.
(emit-label default-stack-vals)
(inst rep)
(when (< nvals register-arg-count)
(let* ((arg-tns (nthcdr nvals (list a0 a1 a2)))
(first (first arg-tns)))
- (inst mov first *nil-value*)
+ (inst mov first nil-value)
(dolist (tn (cdr arg-tns))
(inst mov tn first))))
;; And away we go. Except that return-pc is still on the
(move src context)
(move ecx count)
;; Check to see whether there are no args, and just return NIL if so.
- (inst mov result *nil-value*)
+ (inst mov result nil-value)
(inst jecxz done)
(inst lea dst (make-ea :dword :index ecx :scale 2))
(pseudo-atomic
;; Go back for more.
(inst loop loop)
;; NIL out the last cons.
- (storew *nil-value* dst 1 sb!vm:list-pointer-type))
+ (storew nil-value dst 1 sb!vm:list-pointer-type))
(emit-label done))))
;;; Return the location and size of the more arg glob created by Copy-More-Arg.