(movqi): Emit 'st' for INTVAL & 255 == 255, not INTVAL == -1.
authorRichard Kenner <kenner@gcc.gnu.org>
Tue, 12 Nov 1996 19:34:29 +0000 (14:34 -0500)
committerRichard Kenner <kenner@gcc.gnu.org>
Tue, 12 Nov 1996 19:34:29 +0000 (14:34 -0500)
(seq,sne,sgt,sgtu,slt,sltu,sge,sgeu,sle,sleu): Allow "m" as operand 0.

From-SVN: r13138

gcc/config/m68k/m68k.md

index cb791f6584311449a7fb6aa8cdff66dbdaac9b8d..db598c5dcc185310a50e64e5fefd4c39e74f08fc 100644 (file)
       if (operands[1] == const0_rtx)
        return \"clr%.b %0\";
       if (GET_CODE (operands[1]) == CONST_INT
-         && INTVAL (operands[1]) == -1)
+         && (INTVAL (operands[1]) & 255) == 255)
        {
          CC_STATUS_INIT;
          return \"st %0\";
 } ")
 
 (define_insn "seq"
-  [(set (match_operand:QI 0 "general_operand" "=d")
+  [(set (match_operand:QI 0 "general_operand" "=dm")
        (eq:QI (cc0) (const_int 0)))]
   ""
   "*
 ")
 
 (define_insn "sne"
-  [(set (match_operand:QI 0 "general_operand" "=d")
+  [(set (match_operand:QI 0 "general_operand" "=dm")
        (ne:QI (cc0) (const_int 0)))]
   ""
   "*
 ")
 
 (define_insn "sgt"
-  [(set (match_operand:QI 0 "general_operand" "=d")
+  [(set (match_operand:QI 0 "general_operand" "=dm")
        (gt:QI (cc0) (const_int 0)))]
   ""
   "*
 ")
 
 (define_insn "sgtu"
-  [(set (match_operand:QI 0 "general_operand" "=d")
+  [(set (match_operand:QI 0 "general_operand" "=dm")
        (gtu:QI (cc0) (const_int 0)))]
   ""
   "* cc_status = cc_prev_status;
      return \"shi %0\"; ")
 
 (define_insn "slt"
-  [(set (match_operand:QI 0 "general_operand" "=d")
+  [(set (match_operand:QI 0 "general_operand" "=dm")
        (lt:QI (cc0) (const_int 0)))]
   ""
   "* cc_status = cc_prev_status;
      OUTPUT_JUMP (\"slt %0\", \"fslt %0\", \"smi %0\"); ")
 
 (define_insn "sltu"
-  [(set (match_operand:QI 0 "general_operand" "=d")
+  [(set (match_operand:QI 0 "general_operand" "=dm")
        (ltu:QI (cc0) (const_int 0)))]
   ""
   "* cc_status = cc_prev_status;
      return \"scs %0\"; ")
 
 (define_insn "sge"
-  [(set (match_operand:QI 0 "general_operand" "=d")
+  [(set (match_operand:QI 0 "general_operand" "=dm")
        (ge:QI (cc0) (const_int 0)))]
   ""
   "* cc_status = cc_prev_status;
      OUTPUT_JUMP (\"sge %0\", \"fsge %0\", \"spl %0\"); ")
 
 (define_insn "sgeu"
-  [(set (match_operand:QI 0 "general_operand" "=d")
+  [(set (match_operand:QI 0 "general_operand" "=dm")
        (geu:QI (cc0) (const_int 0)))]
   ""
   "* cc_status = cc_prev_status;
      return \"scc %0\"; ")
 
 (define_insn "sle"
-  [(set (match_operand:QI 0 "general_operand" "=d")
+  [(set (match_operand:QI 0 "general_operand" "=dm")
        (le:QI (cc0) (const_int 0)))]
   ""
   "*
 ")
 
 (define_insn "sleu"
-  [(set (match_operand:QI 0 "general_operand" "=d")
+  [(set (match_operand:QI 0 "general_operand" "=dm")
        (leu:QI (cc0) (const_int 0)))]
   ""
   "* cc_status = cc_prev_status;