[PATCH][ARM] Fix PR 65955: Do not take REGNO on non-REG operand in movcond_addsi

Kyrill Tkachov kyrylo.tkachov@arm.com
Tue May 12 09:08:00 GMT 2015


Ping.
https://gcc.gnu.org/ml/gcc-patches/2015-05/msg00284.html

Thanks,
Kyrill

On 05/05/15 11:50, Kyrill Tkachov wrote:
> On 05/05/15 09:22, Kyrill Tkachov wrote:
>> Hi all,
>>
>> As the PR says, the movcond_addsi pattern takes the REGNO of an operand that may be a CONST_INT.
>> The fix for that is rather simple (perhaps even obvious?).
>>
>> Unfortunately the testcase is in ada, and I'm not sure how to integrate this into the testsuite.
>> Does anyone know how to add an ada testcase?
> As Tom has investigated in the bugzilla entry for this, the failure can
> be reproduced in the testsuite at gfortran.dg/pr43984.f90 with
> --enable-checking=yes,rtl.
>
> So, this patch fixes that ICE, so I think no new testcase should be required for this.
> So, is this patch ok for trunk as is then?
>
> Thanks,
> Kyrill
>
>> The patch that introduced this faulty check was added for GCC 5 and backported to 4.9, so this patch
>> should be backported everywhere as well.
>>
>> I'll be testing it on those branches shortly.
>>
>> Tested on arm-none-eabi. Bootstrapped on arm-none-linux-gnueabihf with arm and thumb default mode.
>> I think this is the right thing to do in any case since the current code is clearly doing the wrong
>> thing if operands[2] is a CONST_INT.
>>
>> Ok for trunk?
>>
>> Thanks,
>> Kyrill
>>
>> P.S. I'm attaching the patch with a larger than usual context so that the definition of operands[2]
>> can be seen more clearly.
>>
>> 2015-05-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
>>
>>        PR target/65955
>>        * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
>>        REG before taking its REGNO.



More information about the Gcc-patches mailing list