X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fsparc%2Ffloat.lisp;h=5ae9ef2c49a82e4434c4c025d8ad166343a4d5e0;hb=dcf5978d9d33098e868ae6eea28e1b310038c03d;hp=64b67e3d2a4cd4bb8800e694717aae9068a456b7;hpb=ea775867d48327bf1179eb570263427f28083880;p=sbcl.git diff --git a/src/compiler/sparc/float.lisp b/src/compiler/sparc/float.lisp index 64b67e3..5ae9ef2 100644 --- a/src/compiler/sparc/float.lisp +++ b/src/compiler/sparc/float.lisp @@ -118,7 +118,7 @@ (defun move-long-reg (dst src) (cond ((member :sparc-v9 *backend-subfeatures*) - (inst fmovq dst src) + (inst fmovq dst src)) (t (dotimes (i 4) (let ((dst (make-random-tn :kind :normal @@ -127,7 +127,7 @@ (src (make-random-tn :kind :normal :sc (sc-or-lose 'single-reg) :offset (+ i (tn-offset src))))) - (inst fmovs dst src))))))) + (inst fmovs dst src)))))) (macrolet ((frob (vop sc format) `(progn @@ -1273,7 +1273,7 @@ ;; The desired FP mode data is in the least significant 32 ;; bits, which is stored at the next higher word in memory. (loadw res nfp (+ offset 4)) - ;; Is this nop needed? (toy@rtp.ericsson.se) + ;; Is this nop needed? -- rtoy (inst nop)))) (define-vop (set-floating-point-modes) @@ -2510,7 +2510,7 @@ ;;; expression since we don't have to do branches. (define-source-transform min (&rest args) - (if (member :sparc-v9 sb!vm:*backend-subfeatures*) + (if (member :sparc-v9 *backend-subfeatures*) (case (length args) ((0 2) (values nil t)) (1 `(values ,(first args))) @@ -2518,7 +2518,7 @@ (values nil t))) (define-source-transform max (&rest args) - (if (member :sparc-v9 sb!vm:*backend-subfeatures*) + (if (member :sparc-v9 *backend-subfeatures*) (case (length args) ((0 2) (values nil t)) (1 `(values ,(first args))) @@ -2530,29 +2530,29 @@ (multiple-value-bind (definitely-< definitely->=) (ir1-transform-<-helper x y) (cond (definitely-< - (continuation-type y)) + (lvar-type y)) (definitely->= - (continuation-type x)) + (lvar-type x)) (t - (make-canonical-union-type (list (continuation-type x) - (continuation-type y))))))) + (make-canonical-union-type (list (lvar-type x) + (lvar-type y))))))) (defoptimizer (min derive-type) ((x y)) (multiple-value-bind (definitely-< definitely->=) (ir1-transform-<-helper x y) (cond (definitely-< - (continuation-type x)) + (lvar-type x)) (definitely->= - (continuation-type y)) + (lvar-type y)) (t - (make-canonical-union-type (list (continuation-type x) - (continuation-type y))))))) - -(deftransform max ((x y) (number number) * :when :both) - (let ((x-type (continuation-type x)) - (y-type (continuation-type y)) - (signed (specifier-type '(signed-byte #.sb!vm:n-word-bits))) - (unsigned (specifier-type '(unsigned-byte #.sb!vm:n-word-bits))) + (make-canonical-union-type (list (lvar-type x) + (lvar-type y))))))) + +(deftransform max ((x y) (number number) *) + (let ((x-type (lvar-type x)) + (y-type (lvar-type y)) + (signed (specifier-type '(signed-byte #.n-word-bits))) + (unsigned (specifier-type '(unsigned-byte #.n-word-bits))) (d-float (specifier-type 'double-float)) (s-float (specifier-type 'single-float))) ;; Use %%max if both args are good types of the same type. As a @@ -2578,11 +2578,11 @@ (if (> ,arg1 ,arg2) ,arg1 ,arg2))))))) -(deftransform min ((x y) (real real) * :when :both) - (let ((x-type (continuation-type x)) - (y-type (continuation-type y)) - (signed (specifier-type '(signed-byte #.sb!vm:n-word-bits))) - (unsigned (specifier-type '(unsigned-byte #.sb!vm:n-word-bits))) +(deftransform min ((x y) (real real) *) + (let ((x-type (lvar-type x)) + (y-type (lvar-type y)) + (signed (specifier-type '(signed-byte #.n-word-bits))) + (unsigned (specifier-type '(unsigned-byte #.n-word-bits))) (d-float (specifier-type 'double-float)) (s-float (specifier-type 'single-float))) (cond ((and (csubtypep x-type signed)