]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
sse.md (smaxv16qi3): Fix buffer overflow.
authorRichard Henderson <rth@redhat.com>
Tue, 28 Jun 2005 09:00:42 +0000 (02:00 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Tue, 28 Jun 2005 09:00:42 +0000 (02:00 -0700)
        * config/i386/sse.md (smaxv16qi3): Fix buffer overflow.
        (sminv16qi3, umaxv8hi3, uminv8hi3): Likewise.

From-SVN: r101376

gcc/ChangeLog
gcc/config/i386/sse.md

index 9ee25417497134e3663e0b695431fd02d9c6ba74..9626f8395304888483befa0dabfdbe7178c4f186 100644 (file)
@@ -1,3 +1,8 @@
+2005-06-28  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/sse.md (smaxv16qi3): Fix buffer overflow.
+       (sminv16qi3, umaxv8hi3, uminv8hi3): Likewise.
+
 2005-06-27  Richard Henderson  <rth@redhat.com>
 
        * config/ia64/ia64.c (ia64_expand_vcondu_v2si): Generate proper
index 16059bb55d13841ceba669d1b779fcfa179948a2..37454f5af30e001948f1300e84cfc894e7786f20 100644 (file)
                    (match_operand:V16QI 2 "register_operand" "")))]
   "TARGET_SSE2"
 {
+  rtx xops[6];
   bool ok;
-  operands[3] = gen_rtx_GT (VOIDmode, operands[1], operands[2]);
-  operands[4] = operands[1];
-  operands[5] = operands[2];
-  ok = ix86_expand_int_vcond (operands, false);
+
+  xops[0] = operands[0];
+  xops[1] = operands[1];
+  xops[2] = operands[2];
+  xops[3] = gen_rtx_GT (VOIDmode, operands[1], operands[2]);
+  xops[4] = operands[1];
+  xops[5] = operands[2];
+  ok = ix86_expand_int_vcond (xops, false);
   gcc_assert (ok);
   DONE;
 })
                   (match_operand:V8HI 2 "register_operand" "")))]
   "TARGET_SSE2"
 {
-  rtx t1, t2;
+  rtx xops[6], t1, t2;
   bool ok;
 
   t1 = gen_reg_rtx (V8HImode);
   emit_insn (gen_sse2_ussubv8hi3 (t1, operands[2], operands[1]));
   t2 = force_reg (V8HImode, CONST0_RTX (V8HImode));
 
-  operands[3] = gen_rtx_EQ (VOIDmode, t1, t2);
-  operands[4] = t1;
-  operands[5] = t2;
-  ok = ix86_expand_int_vcond (operands, false);
+  xops[0] = operands[0];
+  xops[1] = operands[1];
+  xops[2] = operands[2];
+  xops[3] = gen_rtx_EQ (VOIDmode, t1, t2);
+  xops[4] = t1;
+  xops[5] = t2;
+  ok = ix86_expand_int_vcond (xops, false);
   gcc_assert (ok);
   DONE;
 })
                    (match_operand:V16QI 2 "register_operand" "")))]
   "TARGET_SSE2"
 {
+  rtx xops[6];
   bool ok;
-  operands[3] = gen_rtx_GT (VOIDmode, operands[1], operands[2]);
-  operands[4] = operands[2];
-  operands[5] = operands[1];
-  ok = ix86_expand_int_vcond (operands, false);
+
+  xops[0] = operands[0];
+  xops[1] = operands[1];
+  xops[2] = operands[2];
+  xops[3] = gen_rtx_GT (VOIDmode, operands[1], operands[2]);
+  xops[4] = operands[2];
+  xops[5] = operands[1];
+  ok = ix86_expand_int_vcond (xops, false);
   gcc_assert (ok);
   DONE;
 })
                   (match_operand:V8HI 2 "register_operand" "")))]
   "TARGET_SSE2"
 {
-  rtx t1, t2;
+  rtx xops[6], t1, t2;
   bool ok;
 
   t1 = gen_reg_rtx (V8HImode);
   emit_insn (gen_sse2_ussubv8hi3 (t1, operands[1], operands[2]));
   t2 = force_reg (V8HImode, CONST0_RTX (V8HImode));
 
-  operands[3] = gen_rtx_EQ (VOIDmode, t1, t2);
-  operands[4] = t1;
-  operands[5] = t2;
-  ok = ix86_expand_int_vcond (operands, false);
+  xops[0] = operands[0];
+  xops[1] = operands[1];
+  xops[2] = operands[2];
+  xops[3] = gen_rtx_EQ (VOIDmode, t1, t2);
+  xops[4] = t1;
+  xops[5] = t2;
+  ok = ix86_expand_int_vcond (xops, false);
   gcc_assert (ok);
   DONE;
 })