(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
(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
(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)))))))
+ (make-canonical-union-type (list (lvar-type x)
+ (lvar-type y)))))))
(deftransform max ((x y) (number number) *)
- (let ((x-type (continuation-type x))
- (y-type (continuation-type y))
+ (let ((x-type (lvar-type x))
+ (y-type (lvar-type y))
(signed (specifier-type '(signed-byte #.sb!vm:n-word-bits)))
(unsigned (specifier-type '(unsigned-byte #.sb!vm:n-word-bits)))
(d-float (specifier-type 'double-float))
,arg1 ,arg2)))))))
(deftransform min ((x y) (real real) *)
- (let ((x-type (continuation-type x))
- (y-type (continuation-type y))
+ (let ((x-type (lvar-type x))
+ (y-type (lvar-type y))
(signed (specifier-type '(signed-byte #.sb!vm:n-word-bits)))
(unsigned (specifier-type '(unsigned-byte #.sb!vm:n-word-bits)))
(d-float (specifier-type 'double-float))