X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fsparc%2Ffloat.lisp;h=7751eb55648d84f75238fbd0cdfcd7c78c174ec2;hb=83543d4d5f876def7327969ec6ec40606e9e63f1;hp=5996928fa98329e47aa947e434ba53bf1f9f65a7;hpb=3c5609fe910bae51ff885c8cfd4be879151e7489;p=sbcl.git diff --git a/src/compiler/sparc/float.lisp b/src/compiler/sparc/float.lisp index 5996928..7751eb5 100644 --- a/src/compiler/sparc/float.lisp +++ b/src/compiler/sparc/float.lisp @@ -158,15 +158,15 @@ (:temporary (:scs (non-descriptor-reg)) ndescr) (:variant-vars format size type data) (:generator 13 - (with-fixed-allocation (y ndescr type size)) - (ecase format - (:single - (inst stf x y (- (* data n-word-bytes) other-pointer-lowtag))) - (:double - (inst stdf x y (- (* data n-word-bytes) other-pointer-lowtag))) - (:long - (store-long-reg x y (- (* data n-word-bytes) - other-pointer-lowtag)))))) + (with-fixed-allocation (y ndescr type size) + (ecase format + (:single + (inst stf x y (- (* data n-word-bytes) other-pointer-lowtag))) + (:double + (inst stdf x y (- (* data n-word-bytes) other-pointer-lowtag))) + (:long + (store-long-reg x y (- (* data n-word-bytes) + other-pointer-lowtag))))))) (macrolet ((frob (name sc &rest args) `(progn @@ -413,15 +413,15 @@ (:note "complex single float to pointer coercion") (:generator 13 (with-fixed-allocation (y ndescr complex-single-float-widetag - complex-single-float-size)) - (let ((real-tn (complex-single-reg-real-tn x))) - (inst stf real-tn y (- (* complex-single-float-real-slot - n-word-bytes) - other-pointer-lowtag))) - (let ((imag-tn (complex-single-reg-imag-tn x))) - (inst stf imag-tn y (- (* complex-single-float-imag-slot - n-word-bytes) - other-pointer-lowtag))))) + complex-single-float-size) + (let ((real-tn (complex-single-reg-real-tn x))) + (inst stf real-tn y (- (* complex-single-float-real-slot + n-word-bytes) + other-pointer-lowtag))) + (let ((imag-tn (complex-single-reg-imag-tn x))) + (inst stf imag-tn y (- (* complex-single-float-imag-slot + n-word-bytes) + other-pointer-lowtag)))))) ;;; (define-move-vop move-from-complex-single :move (complex-single-reg) (descriptor-reg)) @@ -433,15 +433,15 @@ (:note "complex double float to pointer coercion") (:generator 13 (with-fixed-allocation (y ndescr complex-double-float-widetag - complex-double-float-size)) - (let ((real-tn (complex-double-reg-real-tn x))) - (inst stdf real-tn y (- (* complex-double-float-real-slot - n-word-bytes) - other-pointer-lowtag))) - (let ((imag-tn (complex-double-reg-imag-tn x))) - (inst stdf imag-tn y (- (* complex-double-float-imag-slot - n-word-bytes) - other-pointer-lowtag))))) + complex-double-float-size) + (let ((real-tn (complex-double-reg-real-tn x))) + (inst stdf real-tn y (- (* complex-double-float-real-slot + n-word-bytes) + other-pointer-lowtag))) + (let ((imag-tn (complex-double-reg-imag-tn x))) + (inst stdf imag-tn y (- (* complex-double-float-imag-slot + n-word-bytes) + other-pointer-lowtag)))))) ;;; (define-move-vop move-from-complex-double :move (complex-double-reg) (descriptor-reg)) @@ -454,15 +454,15 @@ (:note "complex long float to pointer coercion") (:generator 13 (with-fixed-allocation (y ndescr complex-long-float-widetag - complex-long-float-size)) - (let ((real-tn (complex-long-reg-real-tn x))) - (store-long-reg real-tn y (- (* complex-long-float-real-slot - n-word-bytes) - other-pointer-lowtag))) - (let ((imag-tn (complex-long-reg-imag-tn x))) - (store-long-reg imag-tn y (- (* complex-long-float-imag-slot - n-word-bytes) - other-pointer-lowtag))))) + complex-long-float-size) + (let ((real-tn (complex-long-reg-real-tn x))) + (store-long-reg real-tn y (- (* complex-long-float-real-slot + n-word-bytes) + other-pointer-lowtag))) + (let ((imag-tn (complex-long-reg-imag-tn x))) + (store-long-reg imag-tn y (- (* complex-long-float-imag-slot + n-word-bytes) + other-pointer-lowtag)))))) ;;; #!+long-float (define-move-vop move-from-complex-long :move