(:policy :safe)
(:save-p t))
((:arg x (descriptor-reg any-reg) rdx-offset)
- (:arg y (descriptor-reg any-reg)
- ;; this seems wrong esi-offset -- FIXME: What's it mean?
- rdi-offset)
+ (:arg y (descriptor-reg any-reg) rdi-offset)
(:res res (descriptor-reg any-reg) rdx-offset)
`((note-this-location ,vop :call-site)
(inst mov temp-reg-tn (make-fixup ',name :assembly-routine))
(inst call temp-reg-tn)
- (note-this-location ,vop :single-value-return)
- (inst cmov :c rsp-tn rbx-tn))
+ (note-this-location ,vop :single-value-return))
'((:save-p :compute-only))))
(:none
(values
(:policy :safe)
(:save-p t))
((:arg x (descriptor-reg any-reg) edx-offset)
- (:arg y (descriptor-reg any-reg)
- ;; this seems wrong esi-offset -- FIXME: What's it mean?
- edi-offset)
+ (:arg y (descriptor-reg any-reg) edi-offset)
(:res res (descriptor-reg any-reg) edx-offset)
(values
`((note-this-location ,vop :call-site)
(inst call (make-fixup ',name :assembly-routine))
- (note-this-location ,vop :single-value-return)
- (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)))))
+ (note-this-location ,vop :single-value-return))
'((:save-p :compute-only))))))
(defun generate-return-sequence (style)