(:info start-lab copy-more-arg-follows)
(:vop-var vop)
(:generator 1
- (align n-lowtag-bits)
+ (emit-alignment n-lowtag-bits)
(trace-table-entry trace-table-fun-prologue)
(emit-label start-lab)
;; Skip space for the function header.
;; Restore EDI, and reset the stack.
(emit-label restore-edi)
(loadw edi-tn ebx-tn (frame-word-offset 1))
- (inst mov esp-tn ebx-tn))))
+ (inst mov esp-tn ebx-tn)
+ (inst cld))))
(values))
\f
;;;; unknown values receiving
(inst mov value (make-ea :dword :base object :index value))))
;;; Turn more arg (context, count) into a list.
-(defoptimizer (%listify-rest-args stack-allocate-result) ((&rest args))
- t)
-
(define-vop (listify-rest-args)
(:translate %listify-rest-args)
(:policy :safe)
(inst jecxz done)
(inst lea dst (make-ea :dword :base ecx :index ecx))
(maybe-pseudo-atomic stack-allocate-p
- (allocation dst dst node stack-allocate-p)
- (inst lea dst (make-ea :byte :base dst :disp list-pointer-lowtag))
+ (allocation dst dst node stack-allocate-p list-pointer-lowtag)
(inst shr ecx 2)
;; Set decrement mode (successive args at lower addresses)
(inst std)
(inst sub ecx 1)
(inst jmp :nz loop)
;; NIL out the last cons.
- (storew nil-value dst 1 list-pointer-lowtag))
+ (storew nil-value dst 1 list-pointer-lowtag)
+ (inst cld))
(emit-label done))))
;;; Return the location and size of the &MORE arg glob created by
(:save-p :compute-only)
(:generator 3
(let ((err-lab
- (generate-error-code vop invalid-arg-count-error nargs)))
+ (generate-error-code vop 'invalid-arg-count-error nargs)))
(if (zerop count)
(inst test nargs nargs) ; smaller instruction
(inst cmp nargs (fixnumize count)))
(:vop-var vop)
(:save-p :compute-only)
(:generator 1000
- (error-call vop ,error ,@args)))))
+ (error-call vop ',error ,@args)))))
(def arg-count-error invalid-arg-count-error
sb!c::%arg-count-error nargs)
(def type-check-error object-not-type-error sb!c::%type-check-error
;; register on -SB-THREAD.
#!+sb-thread
(progn
- (inst fs-segment-prefix)
(inst cmp (make-ea :dword
:disp (* thread-stepping-slot n-word-bytes))
- nil-value))
+ nil-value :fs))
#!-sb-thread
(inst cmp (make-ea-for-symbol-value sb!impl::*stepping*)
nil-value))