projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
0.9.6.23:
[sbcl.git]
/
src
/
compiler
/
x86-64
/
float.lisp
diff --git
a/src/compiler/x86-64/float.lisp
b/src/compiler/x86-64/float.lisp
index
310d92a
..
9f97d65
100644
(file)
--- a/
src/compiler/x86-64/float.lisp
+++ b/
src/compiler/x86-64/float.lisp
@@
-324,10
+324,7
@@
(:double '((inst movsd ea x)))))
(let ((ea (make-ea
:dword :base fp
(:double '((inst movsd ea x)))))
(let ((ea (make-ea
:dword :base fp
- :disp (- (* (+ (tn-offset y)
- ,(case format
- (:single 1)
- (:double 2) ))
+ :disp (- (* (1+ (tn-offset y))
n-word-bytes)))))
,@(ecase format
(:single '((inst movss ea x)))
n-word-bytes)))))
,@(ecase format
(:single '((inst movss ea x)))
@@
-789,7
+786,8
@@
(unless (location= imag r-imag)
(inst movss r-imag imag))))
(complex-single-stack
(unless (location= imag r-imag)
(inst movss r-imag imag))))
(complex-single-stack
- (inst movss (ea-for-csf-real-stack r) real)
+ (unless (location= real r)
+ (inst movss (ea-for-csf-real-stack r) real))
(inst movss (ea-for-csf-imag-stack r) imag)))))
(define-vop (make-complex-double-float)
(inst movss (ea-for-csf-imag-stack r) imag)))))
(define-vop (make-complex-double-float)
@@
-813,7
+811,8
@@
(unless (location= imag r-imag)
(inst movsd r-imag imag))))
(complex-double-stack
(unless (location= imag r-imag)
(inst movsd r-imag imag))))
(complex-double-stack
- (inst movsd (ea-for-cdf-real-stack r) real)
+ (unless (location= real r)
+ (inst movsd (ea-for-cdf-real-stack r) real))
(inst movsd (ea-for-cdf-imag-stack r) imag)))))
(define-vop (complex-float-value)
(inst movsd (ea-for-cdf-imag-stack r) imag)))))
(define-vop (complex-float-value)