On Sun, Mar 11, 2012 at 5:56 PM, H.J. Lu <hjl.to...@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.

I have committed the patch without (ix86_expand_call) change. The
later change was wrong, since it allowed arg register in the call
pattern.

Please commit your loop expand patch.

Thanks,
Uros.

Reply via email to