(div_trap_mips16): Remove nop's after branches.
authorGavin Romig-Koch <gavin@cygnus.com>
Wed, 3 Feb 1999 12:31:38 +0000 (12:31 +0000)
committerGavin Romig-Koch <gavin@gcc.gnu.org>
Wed, 3 Feb 1999 12:31:38 +0000 (12:31 +0000)
From-SVN: r25004

gcc/ChangeLog
gcc/config/mips/mips.md

index 267f494b2ad936c7ee210f12e0492c565c4e7259..556f5db6a98818e9343c9fc714120e83dedda0bd 100644 (file)
@@ -1,3 +1,7 @@
+Wed Feb  3 15:26:58 1999  Gavin Romig-Koch  <gavin@cygnus.com>
+
+       * config/mips/mips.md (div_trap_mips16): Remove nop's after branches.
+
 Wed Feb  3 11:56:23 1999  Jeffrey A Law  (law@cygnus.com)
 
        * pa.c (insn_sets_and_refs_are_delayed): New function.
index 1e64a05951428730b3979748acb975294d94d1f5..71bd9a65edf853bf4d83af364625ca4dcddc402a 100644 (file)
   if (!TARGET_NO_CHECK_ZERO_DIV)
     {
       emit_insn (gen_div_trap (operands[2],
-                              copy_to_mode_reg (SImode, GEN_INT (0)),
+                              GEN_INT (0),
                               GEN_INT (0x7)));
     }
   if (TARGET_CHECK_RANGE_DIV)
   if (!TARGET_NO_CHECK_ZERO_DIV)
     {
       emit_insn (gen_div_trap (operands[2],
-                              copy_to_mode_reg (DImode, GEN_INT (0)),
+                              GEN_INT (0),
                               GEN_INT (0x7)));
     }
   if (TARGET_CHECK_RANGE_DIV)
   if (!TARGET_NO_CHECK_ZERO_DIV)
     {
       emit_insn (gen_div_trap (operands[2],
-                              copy_to_mode_reg (SImode, GEN_INT (0)),
+                              GEN_INT (0),
                               GEN_INT (0x7)));
     }
   
   if (!TARGET_NO_CHECK_ZERO_DIV)
     {
       emit_insn (gen_div_trap (operands[2],
-                              copy_to_mode_reg (DImode, GEN_INT (0)),
+                              GEN_INT (0),
                               GEN_INT (0x7)));
     }
   
 
 (define_expand "div_trap"
   [(trap_if (eq (match_operand 0 "register_operand" "d")
-               (match_operand 1 "reg_or_0_operand" "dJ"))
+               (match_operand 1 "true_reg_or_0_operand" "dJ"))
             (match_operand 2 "immediate_operand" ""))]
   ""
   "
 
 (define_insn "div_trap_normal"
   [(trap_if (eq (match_operand 0 "register_operand" "d")
-               (match_operand 1 "reg_or_0_operand" "dJ"))
+               (match_operand 1 "true_reg_or_0_operand" "dJ"))
             (match_operand 2 "immediate_operand" ""))]
   "!TARGET_MIPS16"
   "*
 
 (define_insn "div_trap_mips16"
   [(trap_if (eq (match_operand 0 "register_operand" "d")
-               (match_operand 1 "reg_or_0_operand" "dJ"))
+               (match_operand 1 "true_reg_or_0_operand" "dJ"))
             (match_operand 2 "immediate_operand" ""))
    (clobber (reg:SI 24))]
   "TARGET_MIPS16"
       have_dep_anti = 1;
   if (! have_dep_anti)
     {
+      /* No branch delay slots on mips16. */ 
       if (GET_CODE (operands[1]) == CONST_INT)
-        return \"%(bnez\\t%0,1f\\n\\tnop\\n\\tbreak\\t%2\\n1:%)\";
+        return \"%(bnez\\t%0,1f\\n\\tbreak\\t%2\\n1:%)\";
       else
-        return \"%(bne\\t%0,%1,1f\\n\\tnop\\n\\tbreak\\t%2\\n1:%)\";
+        return \"%(bne\\t%0,%1,1f\\n\\tbreak\\t%2\\n1:%)\";
     }
   return \"\";
 }"
   [(set_attr "type" "unknown")
-   (set_attr "length" "4")])
+   (set_attr "length" "3")])
 
 (define_expand "divsi3"
   [(set (match_operand:SI 0 "register_operand" "=l")
   if (!TARGET_NO_CHECK_ZERO_DIV)
     {
       emit_insn (gen_div_trap (operands[2],
-                              copy_to_mode_reg (SImode, GEN_INT (0)),
+                              GEN_INT (0),
                               GEN_INT (0x7)));
     }
   if (TARGET_CHECK_RANGE_DIV)
   if (!TARGET_NO_CHECK_ZERO_DIV)
     {
       emit_insn (gen_div_trap (operands[2],
-                              copy_to_mode_reg (DImode, GEN_INT (0)),
+                              GEN_INT (0),
                               GEN_INT (0x7)));
     }
   if (TARGET_CHECK_RANGE_DIV)
   if (!TARGET_NO_CHECK_ZERO_DIV)
     {
       emit_insn (gen_div_trap (operands[2],
-                              copy_to_mode_reg (SImode, GEN_INT (0)),
+                              GEN_INT (0),
                               GEN_INT (0x7)));
     }
   if (TARGET_CHECK_RANGE_DIV)
   if (!TARGET_NO_CHECK_ZERO_DIV)
     {
       emit_insn (gen_div_trap (operands[2],
-                              copy_to_mode_reg (DImode, GEN_INT (0)),
+                              GEN_INT (0),
                               GEN_INT (0x7)));
     }
   if (TARGET_CHECK_RANGE_DIV)
   if (!TARGET_NO_CHECK_ZERO_DIV)
     {
       emit_insn (gen_div_trap (operands[2],
-                              copy_to_mode_reg (SImode, GEN_INT (0)),
+                              GEN_INT (0),
                               GEN_INT (0x7)));
     }
   
   if (!TARGET_NO_CHECK_ZERO_DIV)
     {
       emit_insn (gen_div_trap (operands[2],
-                              copy_to_mode_reg (DImode, GEN_INT (0)),
+                              GEN_INT (0),
                               GEN_INT (0x7)));
     }
   
   if (!TARGET_NO_CHECK_ZERO_DIV)
     {
       emit_insn (gen_div_trap (operands[2],
-                              copy_to_mode_reg (SImode, GEN_INT (0)),
+                              GEN_INT (0),
                               GEN_INT (0x7)));
     }
   
   if (!TARGET_NO_CHECK_ZERO_DIV)
     {
       emit_insn (gen_div_trap (operands[2],
-                              copy_to_mode_reg (DImode, GEN_INT (0)),
+                              GEN_INT (0),
                               GEN_INT (0x7)));
     }