projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
1.0.25.45: fix futex_wait deadlines when interrupted
[sbcl.git]
/
src
/
assembly
/
x86
/
support.lisp
diff --git
a/src/assembly/x86/support.lisp
b/src/assembly/x86/support.lisp
index
527e326
..
1b814f3
100644
(file)
--- a/
src/assembly/x86/support.lisp
+++ b/
src/assembly/x86/support.lisp
@@
-34,9
+34,14
@@
`((note-this-location ,vop :call-site)
(inst call (make-fixup ',name :assembly-routine))
(note-this-location ,vop :single-value-return)
`((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)
'((:save-p :compute-only))))))
(!def-vm-support-routine generate-return-sequence (style)