]> gcc.gnu.org Git - gcc.git/commitdiff
(modsi3): Correct error in last change.
authorRichard Kenner <kenner@gcc.gnu.org>
Sat, 11 Dec 1993 23:47:38 +0000 (18:47 -0500)
committerRichard Kenner <kenner@gcc.gnu.org>
Sat, 11 Dec 1993 23:47:38 +0000 (18:47 -0500)
From-SVN: r6212

gcc/config/rs6000/rs6000.md

index 4d484f4939f689f03415aed75c4ec0abaa7660af..bd8fc6b214e0f05e61583d89bf13b07bc3d85f5b 100644 (file)
   [(use (match_operand:SI 0 "gpc_reg_operand" ""))
    (use (match_operand:SI 1 "gpc_reg_operand" ""))
    (use (match_operand:SI 2 "const_int_operand" ""))]
-  "exact_log2 (INTVAL (operands[2])) >= 0"
+  ""
   "
 {
-  rtx temp1 = gen_reg_rtx (SImode);
-  rtx temp2 = gen_reg_rtx (SImode);
+  int i = exact_log2 (INTVAL (operands[2]));
+  rtx temp1;
+  rtx temp2;
+
+  if (i < 0)
+    FAIL;
+
+  temp1 = gen_reg_rtx (SImode);
+  temp2 = gen_reg_rtx (SImode);
 
   emit_insn (gen_divsi3 (temp1, operands[1], operands[2]));
-  emit_insn (gen_ashlsi3 (temp2, temp1,
-                         GEN_INT (exact_log2 (INTVAL (operands[2])))));
+  emit_insn (gen_ashlsi3 (temp2, temp1, GEN_INT (i)));
   emit_insn (gen_subsi3 (operands[0], operands[1], temp2));
   DONE;
 
This page took 0.064959 seconds and 5 git commands to generate.