Small cleanup to DEFINE-BYTE-BASHERS
[sbcl.git] / src / compiler / x86-64 / pred.lisp
index c74ed60..8c9b2fd 100644 (file)
             ((unsigned-byte-64 unsigned-byte-63)
              unsigned-reg move-if/unsigned)
             (signed-byte-64 signed-reg move-if/signed)
+            ;; FIXME: Can't use CMOV with byte registers, and characters live
+            ;; in such outside of unicode builds. A better solution then just
+            ;; disabling MOVE-IF/CHAR should be possible, though.
+            #!+sb-unicode
             (character character-reg move-if/char)
 
             ((single-float complex-single-float
         (let ((scn (sc-number-or-lose representation)))
           (labels ((make-tn ()
                      (make-representation-tn ptype scn))
-                   (immediate-tn-p (tn)
-                     (and (eq (sb!c::tn-kind tn) :constant)
-                          (eq (sb!c::immediate-constant-sc (tn-value tn))
-                              (sc-number-or-lose 'immediate))))
                    (frob-tn (tn)
                      (if (immediate-tn-p tn)
                          tn
       unsigned-num unsigned-reg unsigned-stack)
   (def-move-if move-if/signed
       signed-num signed-reg signed-stack)
+  ;; FIXME: See *CMOV-PTYPE-REPRESENTATION-VOP* above.
+  #!+sb-unicode
   (def-move-if move-if/char
       character character-reg character-stack)
   (def-move-if move-if/sap