mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-08 09:16:49 +08:00
i386.c (ix86_expand_int_movcc, [...]): Sign-extend CONST_INTs.
* config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_strlensi_unroll_1): Sign-extend CONST_INTs. From-SVN: r41454
This commit is contained in:
parent
99ffe40fe7
commit
7471a1f03c
@ -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,
|
||||
|
@ -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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user