arm: Fix vfp_operand_register for VFP HI regs

Kyrylo Tkachov Kyrylo.Tkachov@arm.com
Fri May 1 10:57:42 GMT 2020



> -----Original Message-----
> From: Christophe Lyon <christophe.lyon@linaro.org>
> Sent: 30 April 2020 09:51
> To: Kyrylo Tkachov <Kyrylo.Tkachov@arm.com>
> Cc: gcc-patches@gcc.gnu.org
> Subject: Re: arm: Fix vfp_operand_register for VFP HI regs
> 
> On Wed, 29 Apr 2020 at 18:40, Kyrylo Tkachov <Kyrylo.Tkachov@arm.com>
> wrote:
> >
> > Hi Christophe,
> >
> > > -----Original Message-----
> > > From: Gcc-patches <gcc-patches-bounces@gcc.gnu.org> On Behalf Of
> > > Christophe Lyon via Gcc-patches
> > > Sent: 29 April 2020 16:53
> > > To: gcc Patches <gcc-patches@gcc.gnu.org>
> > > Subject: arm: Fix vfp_operand_register for VFP HI regs
> > >
> > > Hi,
> > >
> > > While looking at PR target/94743 I noticed an ICE when I tried to save
> > > all the FP registers: this was because all HI registers wouldn't match
> > > vfp_register_operand.
> >
> > Hmm, I see that arm_regno_class indeed never returns VFP_REGS and
> would return VFP_HI_REGS here.
> > So the patch looks correct to me.
> > Do you have a testcase for the ICE to add to the testsuite?
> >
> 
> No C source code: I found that while extending the list of registers
> pushed in the prologue of an IRQ handler, more-or-less modifying
> arm_save_coproc_regs so that more registers are handled by
> vfp_emit_fstmd.
> The problem occurs when trying to push d16-d31.

I'd be comfortable taking this now for trunk (GCC 11) so it has time to bake.
Once you're ready to post the IRQ handler work we can see about backporting this fix it to the branch, if we deem it necessary.
Thanks,
Kyrill

> 
> 
> > Thanks,
> > Kyrill
> >
> > >
> > > Regression-tested and bootstrapped OK.
> > >
> > > 2020-04-29  Christophe Lyon  <christophe.lyon@linaro.org>
> > >
> > >         gcc/
> > >         * config/arm/predicates.md (vfp_register_operand): Use
> VFP_HI_REGS
> > >         instead of VFP_REGS.
> > >
> > > OK?
> > >
> > > Thanks,
> > >
> > > Christophe


More information about the Gcc-patches mailing list