On Sun, Mar 11, 2012 at 8:53 AM, Uros Bizjak <ubiz...@gmail.com> wrote: > On Sun, Mar 11, 2012 at 3:30 PM, Uros Bizjak <ubiz...@gmail.com> wrote: > >>>>> This patches uses word_mode instead of Pmode in loop expand since >>>>> word_mode may have bigger size than Pmode. OK for trunk? >>>>> >>>>> Thanks. >>>>> >>>>> H.J. >>>>> --- >>>>> 2012-03-02 H.J. Lu <hongjiu...@intel.com> >>>>> >>>>> * config/i386/i386.c (ix86_expand_movmem): Use word_mode instead >>>>> of Pmode on loop. >>>>> (ix86_expand_setmem): Likwise. >>>> >>>> Jan, can you please comment on the changes in this patch? >>>> >>> >>> Here is a complete updated patch to use word_mode in ix86_expand_movmem >>> and ix86_expand_setmem. It also fixes ix86_zero_extend_to_Pmode to handle >>> Pmode != DImode. OK for trunk? >> >> Please rewrite ix86_zero_extend_to_Pmode to something like: >> rtx tmp; >> if (GET_MODE (exp) != Pmode) >> tmp = convert_to_mode (Pmode, exp, 1); >> return force_reg (Pmode, tmp)); > > I am testing attached patch: > > 2012-03-11 Uros Bizjak <ubiz...@gmail.com> > > * config/i386/i386.c (ix86_zero_extend_to_Pmode): Rewrite using > convert_to_mode. > (ix86_expand_call): Use force_reg istead of copy_to_mode_reg. >
It passed all tests in GCC testsuite under Linux/x32 and glibc x32 tests. Thanks. -- H.J.