1.0.24.34: IR2: additional representation for predicates, conditional moves
[sbcl.git] / src / compiler / vmdef.lisp
index eef1e30..5501d1e 100644 (file)
     (let* ((args (convert (template-arg-types template)
                           (template-more-args-type template)))
            (result-restr (template-result-types template))
-           (results (if (eq result-restr :conditional)
+           (results (if (template-conditional-p template)
                         '(boolean)
                         (convert result-restr
                                  (cond ((template-more-results-type template))
                  ,(if (= (length results) 1)
                       (first results)
                       `(values ,@results))))))
+
+#!-sb-fluid (declaim (inline template-conditional-p))
+(defun template-conditional-p (template)
+  (declare (type template template))
+  (let ((rtypes (template-result-types template)))
+    (or (eq rtypes :conditional)
+        (eq (car rtypes) :conditional))))