This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: patch to fix PR57559 for s390
- From: Richard Sandiford <rdsandiford at googlemail dot com>
- To: Vladimir Makarov <vmakarov at redhat dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 19 Jun 2013 19:31:12 +0100
- Subject: Re: patch to fix PR57559 for s390
- References: <51B37A3F dot 1060705 at redhat dot com> <87zjuv3t9m dot fsf at talisman dot default>
Richard Sandiford <rdsandiford@googlemail.com> writes:
> Vladimir Makarov <vmakarov@redhat.com> writes:
>> Index: lra.c
>> ===================================================================
>> --- lra.c (revision 199753)
>> +++ lra.c (working copy)
>> @@ -306,11 +306,11 @@ lra_emit_add (rtx x, rtx y, rtx z)
>> || (disp != NULL_RTX && ! CONSTANT_P (disp))
>> || (scale != NULL_RTX && ! CONSTANT_P (scale)))
>> {
>> - /* Its is not an address generation. Probably we have no 3 op
>> + /* It is not an address generation. Probably we have no 3 op
>> add. Last chance is to use 2-op add insn. */
>> lra_assert (x != y && x != z);
>> - emit_move_insn (x, z);
>> - insn = gen_add2_insn (x, y);
>> + emit_move_insn (x, y);
>> + insn = gen_add2_insn (x, z);
>> emit_insn (insn);
>> }
>> else
>
> Could you add a comment to lra_emit_add saying why it has to be this
> way round (move y, add z)?
Ping.