i386.c (ix86_expand_int_movcc, [...]): Sign-extend CONST_INTs.
authorAlexandre Oliva <aoliva@redhat.com>
Fri, 20 Apr 2001 09:36:34 +0000 (09:36 +0000)
committerAlexandre Oliva <aoliva@gcc.gnu.org>
Fri, 20 Apr 2001 09:36:34 +0000 (09:36 +0000)
* config/i386/i386.c (ix86_expand_int_movcc,
ix86_expand_strlensi_unroll_1): Sign-extend CONST_INTs.

From-SVN: r41454

gcc/ChangeLog
gcc/config/i386/i386.c

index 03ec2b87bb8330e9c561a3c3aca086f1b633bcf9..9a3e3127135e16b5204eae31e7aefd0cf1441287 100644 (file)
@@ -1,3 +1,8 @@
+2001-04-20  Alexandre Oliva  <aoliva@redhat.com>
+
+       * config/i386/i386.c (ix86_expand_int_movcc,
+       ix86_expand_strlensi_unroll_1): Sign-extend CONST_INTs.
+
 2001-04-20  Geoff Keating  <geoffk@redhat.com>
 
        * config/rs6000/rs6000.md (ctrsi_internal1, ctrsi_internal2,
index e6e76fe279e72251793385b72702f45ab5642612..163b36e5f4d0790e1d3bdcfff79f915bee49f870 100644 (file)
@@ -6316,7 +6316,8 @@ ix86_expand_int_movcc (operands)
               *
               * Size 8 - 11.
               */
-             emit_insn (gen_andsi3 (out, out, GEN_INT (cf - ct)));
+             emit_insn (gen_andsi3 (out, out, GEN_INT (trunc_int_for_mode
+                                                       (cf - ct, SImode))));
              if (ct)
                emit_insn (gen_addsi3 (out, out, GEN_INT (ct)));
            }
@@ -6473,7 +6474,8 @@ ix86_expand_int_movcc (operands)
                                 ix86_compare_op1, VOIDmode, 0, 1);
 
          emit_insn (gen_addsi3 (out, out, constm1_rtx));
-         emit_insn (gen_andsi3 (out, out, GEN_INT (cf-ct)));
+         emit_insn (gen_andsi3 (out, out, GEN_INT (trunc_int_for_mode
+                                                   (cf - ct, SImode))));
          if (ct != 0)
            emit_insn (gen_addsi3 (out, out, GEN_INT (ct)));
          if (out != operands[0])
@@ -7886,7 +7888,9 @@ ix86_expand_strlensi_unroll_1 (out, align_rtx)
   emit_insn (gen_addsi3 (tmpreg, scratch, GEN_INT (-0x01010101)));
   emit_insn (gen_one_cmplsi2 (scratch, scratch));
   emit_insn (gen_andsi3 (tmpreg, tmpreg, scratch));
-  emit_insn (gen_andsi3 (tmpreg, tmpreg, GEN_INT (0x80808080)));
+  emit_insn (gen_andsi3 (tmpreg, tmpreg,
+                        GEN_INT (trunc_int_for_mode
+                                 (0x80808080, SImode))));
   emit_cmp_and_jump_insns (tmpreg, const0_rtx, EQ, 0,
                           SImode, 1, 0, align_4_label);