(insert-step-instrumenting (callable-tn)
;; Conditionally insert a conditional trap:
(when step-instrumenting
- ;; Get the symbol-value of SB!IMPL::*STEPPING*
- (inst lw stepping null-tn
- (- (+ symbol-value-slot
- (truncate (static-symbol-offset 'sb!impl::*stepping*)
- n-word-bytes))
- other-pointer-lowtag))
+ (load-symbol-value stepping sb!impl::*stepping*)
;; If it's not NIL, trap.
(inst beq stepping null-tn step-done-label)
(inst nop)
(move context context-arg)
(move count count-arg)
;; Check to see if there are any arguments.
- (inst beq count zero-tn done)
+ (inst beq count done)
(move result null-tn t)
;; We need to do this atomically.
;; Dec count, and if != zero, go back for more.
(inst addu count count (fixnumize -1))
- (inst bne count zero-tn loop)
+ (inst bne count loop)
;; Store the value in the car (in delay slot)
(storew temp dst 0 list-pointer-lowtag)
(let ((err-lab
(generate-error-code vop invalid-arg-count-error nargs)))
(cond ((zerop count)
- (inst bne nargs zero-tn err-lab)
+ (inst bne nargs err-lab)
(inst nop))
(t
(inst li temp (fixnumize count))
(:policy :fast-safe)
(:vop-var vop)
(:generator 3
- ;; Get the symbol-value of SB!IMPL::*STEPPING*
- (inst lw stepping null-tn
- (- (+ symbol-value-slot
- (truncate (static-symbol-offset 'sb!impl::*stepping*)
- n-word-bytes))
- other-pointer-lowtag))
+ (load-symbol-value stepping sb!impl::*stepping*)
;; If it's not NIL, trap.
(inst beq stepping null-tn DONE)
(inst nop)