(make-ea :qword :disp (make-fixup ',name :assembly-routine)))
(inst call temp-reg-tn)
(note-this-location ,vop :single-value-return)
- (inst jmp :nc single-value)
- (move rsp-tn rbx-tn)
- single-value)
+ (inst cmov :c rsp-tn rbx-tn))
'((:save-p :compute-only))))
(:none
(values
`((note-this-location ,vop :call-site)
(inst call (make-fixup ',name :assembly-routine))
(note-this-location ,vop :single-value-return)
- (inst jmp :nc single-value)
- (move esp-tn ebx-tn)
- single-value)
+ (cond
+ ((member :cmov *backend-subfeatures*)
+ (inst cmov :c esp-tn ebx-tn))
+ (t
+ (let ((single-value (gen-label)))
+ (inst jmp :nc single-value)
+ (move esp-tn ebx-tn)
+ (emit-label single-value)))))
'((:save-p :compute-only))))))
(!def-vm-support-routine generate-return-sequence (style)
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.9.10.20"
+"0.9.10.21"