0.9.10.21:
[sbcl.git] / src / assembly / x86 / support.lisp
index 527e326..1b814f3 100644 (file)
       `((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)