]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
pa.md (extzv): Check predicates before emitting extzv_32.
authorJohn David Anglin <dave@hiauly1.hia.nrc.ca>
Wed, 11 Sep 2002 02:45:09 +0000 (02:45 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Wed, 11 Sep 2002 02:45:09 +0000 (02:45 +0000)
* pa.md (extzv): Check predicates before emitting extzv_32.
(insv): Likewise.

From-SVN: r57018

gcc/ChangeLog
gcc/config/pa/pa.md

index 6242b777d9e323f95ef39e9315277180807847d9..14fa46998cec8c21caa2d7988cfd7d85316de915 100644 (file)
@@ -1,3 +1,8 @@
+2002-09-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * pa.md (extzv): Check predicates before emitting extzv_32.
+       (insv): Likewise.
+
 2002-09-10  Ulrich Weigand  <uweigand@de.ibm.com>
 
        * config/s390/s390.h (MOVE_MAX): Define to correct value.
index 5da3806eec7219c9e965e74b8cd6a03b9ea3d7ce..bbd44fa3d0445bd5a14a2e8ea6cb35034b1a0a68 100644 (file)
     emit_insn (gen_extzv_64 (operands[0], operands[1],
                             operands[2], operands[3]));
   else
-    emit_insn (gen_extzv_32 (operands[0], operands[1],
-                            operands[2], operands[3]));
+    {
+      if (! uint5_operand (operands[2], SImode)
+         || ! uint5_operand (operands[3], SImode))
+       FAIL;
+      emit_insn (gen_extzv_32 (operands[0], operands[1],
+                              operands[2], operands[3]));
+    }
   DONE;
 }")
 
     emit_insn (gen_insv_64 (operands[0], operands[1],
                            operands[2], operands[3]));
   else
-    emit_insn (gen_insv_32 (operands[0], operands[1],
-                           operands[2], operands[3]));
+    {
+      if (! uint5_operand (operands[2], SImode)
+         || ! uint5_operand (operands[3], SImode))
+       FAIL;
+      emit_insn (gen_insv_32 (operands[0], operands[1],
+                             operands[2], operands[3]));
+    }
   DONE;
 }")