OSDN Git Service

PR target/23485
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 22 Aug 2005 03:07:43 +0000 (03:07 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 22 Aug 2005 03:07:43 +0000 (03:07 +0000)
        * config/ia64/ia64.md (divsi3): Check divide by zero.
        (udivsi3): Likewise.
        (divdi3): Likewise.
        (udivdi3): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103331 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/ia64/ia64.md

index 90e30ae..ab5bb6a 100644 (file)
@@ -1,3 +1,11 @@
+2005-08-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/23485
+       * config/ia64/ia64.md (divsi3): Check divide by zero.
+       (udivsi3): Likewise.
+       (divdi3): Likewise.
+       (udivdi3): Likewise.
+
 2005-08-21  Jakub Jelinek  <jakub@redhat.com>
 
        * simplify-rtx.c (simplify_immed_subreg) <case CONST_DOUBLE>: Only clear
 2005-08-21  Sebastian Pop  <pop@cri.ensmp.fr>
 
        PR tree-optimization/23433
-        * tree-chrec.c (chrec_apply): Translate INTEGER_CST to a
-        REAL_CST when the type is SCALAR_FLOAT_TYPE_P.
+       * tree-chrec.c (chrec_apply): Translate INTEGER_CST to a
+       REAL_CST when the type is SCALAR_FLOAT_TYPE_P.
 
 2005-08-21  Sebastian Pop  <pop@cri.ensmp.fr>
 
        PR tree-optimization/23434
-        * tree-ssa-loop-niter.c (proved_non_wrapping_p): Give up when
-        the iteration bound is not an INTEGER_CST.
+       * tree-ssa-loop-niter.c (proved_non_wrapping_p): Give up when
+       the iteration bound is not an INTEGER_CST.
 
 2005-08-21  Dorit Nuzman  <dorit@il.ibm.com>
 
        * c-typeck.c (c_finish_loop): Likewise.
 
 2005-08-16  J"orn Rennecke <joern.rennecke@st.com>
-            Richard Shann <rshann@superh.com>
+           Richard Shann <rshann@superh.com>
 
        PR middle-end/20396:
        * optabs.c (expand_binop): Take TRULY_NOOP_TRUNCATION into account.
index 3f43e48..ab54609 100644 (file)
   twon34 = gen_reg_rtx (XFmode);
   emit_insn (gen_setf_exp_xf (twon34, twon34_exp));
 
+  emit_insn (gen_cond_trap (EQ, operands[2], CONST0_RTX (SImode),
+                           CONST1_RTX (SImode)));
+  
   emit_insn (gen_divsi3_internal (op0_xf, op1_xf, op2_xf, twon34));
 
   emit_insn (gen_fix_truncxfdi2_alts (op0_di, op0_xf, const1_rtx));
   twon34 = gen_reg_rtx (XFmode);
   emit_insn (gen_setf_exp_xf (twon34, twon34_exp));
 
+  emit_insn (gen_cond_trap (EQ, operands[2], CONST0_RTX (SImode),
+                           CONST1_RTX (SImode)));
+  
   emit_insn (gen_divsi3_internal (op0_xf, op1_xf, op2_xf, twon34));
 
   emit_insn (gen_fixuns_truncxfdi2_alts (op0_di, op0_xf, const1_rtx));
   op2_xf = gen_reg_rtx (XFmode);
   expand_float (op2_xf, operands[2], 0);
 
+  emit_insn (gen_cond_trap (EQ, operands[2], CONST0_RTX (DImode),
+                           CONST1_RTX (DImode)));
+
   if (TARGET_INLINE_INT_DIV == INL_MIN_LAT)
     emit_insn (gen_divdi3_internal_lat (op0_xf, op1_xf, op2_xf));
   else
   op2_xf = gen_reg_rtx (XFmode);
   expand_float (op2_xf, operands[2], 1);
 
+  emit_insn (gen_cond_trap (EQ, operands[2], CONST0_RTX (DImode),
+                           CONST1_RTX (DImode)));
+
   if (TARGET_INLINE_INT_DIV == INL_MIN_LAT)
     emit_insn (gen_divdi3_internal_lat (op0_xf, op1_xf, op2_xf));
   else