0.7.7.9:
[sbcl.git] / src / compiler / sparc / macros.lisp
index d897cf2..17c1ddc 100644 (file)
                               :element-type '(unsigned-byte 8)
                               :fill-pointer 0
                               :adjustable t))))
+     (declare (type (vector (unsigned-byte 8) 16) ,var))
      (setf (fill-pointer ,var) 0)
      (unwind-protect
         (progn
      (when fixnump
        `((inst andcc zero-tn ,reg fixnum-tag-mask)
         ,(if (or lowtags hdrs)
-             `(inst b :eq ,(if not-p not-target target)
-               #!+sparc-v9 ,(if not-p :pn :pt))
-             `(inst b ,(if not-p :ne :eq) ,target
-               #!+sparc-v9 ,(if not-p :pn :pt)))))
+             `(if (member :sparc-v9 *backend-subfeatures*)
+                  (inst b :eq ,(if not-p not-target target) ,(if not-p :pn :pt))
+                  (inst b :eq ,(if not-p not-target target)))
+             `(if (member :sparc-v9 *backend-subfeatures*)
+                  (inst b ,(if not-p :ne :eq) ,target ,(if not-p :pn :pt))
+                  (inst b ,(if not-p :ne :eq) ,target)))))
      (when (or lowtags hdrs)
        `((inst and ,temp ,reg lowtag-mask)))
      (when lowtags
                           (1- lowtag-limit) lowtags)))
      (when hdrs
        `((inst cmp ,temp ,lowtag)
-        (inst b :ne ,(if not-p target not-target)
-         #!+sparc-v9 ,(if not-p :pn :pt))
+        (if (member :sparc-v9 *backend-subfeatures*)
+            (inst b :ne ,(if not-p target not-target) ,(if not-p :pn :pt))
+            (inst b :ne ,(if not-p target not-target)))
         (inst nop)
         (load-type ,temp ,reg (- ,lowtag))
         ,@(gen-other-immediate-test temp target not-target not-p hdrs))))))