diff --git a/compiler/x86/float-sse2.lisp b/compiler/x86/float-sse2.lisp index 865397d0d47edbfabed1b2944f165092e7def053..a9e3fe37e79abd58589291ecca22b298702f71c4 100644 --- a/compiler/x86/float-sse2.lisp +++ b/compiler/x86/float-sse2.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/x86/float-sse2.lisp,v 1.1.2.8.2.2 2008/10/09 16:24:11 rtoy Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/x86/float-sse2.lisp,v 1.1.2.8.2.3 2008/10/09 19:10:32 rtoy Exp $") ;;; ;;; ********************************************************************** ;;; @@ -1520,10 +1520,9 @@ (:generator 5 (sc-case r (complex-double-reg - ;; Move the imag part to both the low and high parts of temp - (inst movddup temp imag) - ;; Move the real part the low part of temp. The high part is untouched. - (inst movsd temp real) + ;; x = a + b*i = b|a + (inst movsd temp real) ; temp = ?|a + (inst unpcklpd temp imag) ; temp = b|a (inst movapd r temp)) (complex-double-stack (inst movsd (ea-for-cdf-real-stack r) real) @@ -1638,10 +1637,9 @@ (:generator 3 (sc-case x (complex-double-reg - (inst movapd temp x) - ;; Put the high part of x (the imaginary part) to the low part - ;; of r. We ignore the high part of r. - (inst unpckhpd temp x) + ;; x = a+b*i = b|a + (inst movapd temp x) ; temp = b|a + (inst unpckhpd temp temp) ; temp = b|b (inst movsd r temp)) (complex-double-stack (inst movsd r (ea-for-cdf-imag-stack x))) @@ -1996,6 +1994,7 @@ (inst movapd r x)) (inst subpd r y))) +#+nil (define-vop (*/complex-double-float) (:translate *) (:args (x :scs (complex-double-reg))