Thank you.
What can I do to ensure this gets back-ported as further back as possible? I assume that it can go all the way back to gcc 7 branch. Best regards, Dragan ________________________________ From: Jeff Law <l...@redhat.com> Sent: Friday, May 17, 2019 6:28 PM To: Dragan Mladjenovic; gcc-patches@gcc.gnu.org Cc: Jakub Jelinek; Matthew Fortune Subject: Re: [PATCH] Fix __builtin_init_dwarf_reg_size_table when built with -mfpxx On 5/16/19 7:15 AM, Dragan Mladjenovic wrote: > Ping. > > > ________________________________ > From: Dragan Mladjenovic > Sent: Thursday, May 9, 2019 12:29 PM > To: gcc-patches@gcc.gnu.org > Cc: Dragan Mladjenovic; Jakub Jelinek; Matthew Fortune > Subject: [PATCH] Fix __builtin_init_dwarf_reg_size_table when built with > -mfpxx > > From: "Dragan Mladjenovic" <dmladjeno...@wavecomp.com> > > > Hi all, > > For TARGET_FLOATXX the odd-numbered FP registers in SFmode are > HARD_REGNO_CALL_PART_CLOBBERED. This causes dwarf_frame_reg_mode to fall > back to VOIDmode and for __builtin_init_dwarf_reg_size_table to fill them > as zero sized. > > This prevents libgcc's unwinder form ever restoring high parts of > calle-saved double precision registers. > > This patch fixes the issue by forcing dwarf_frame_reg_mode to use SImode > for FP registers. > > Bootstrapped and done regression tests on mipsel-unknown-linux-gnu - > no new failures found. > > > Best regards, > Dragan > > > gcc/ChangeLog: > > 2019-04-23 Dragan Mladjenovic <dmladjeno...@wavecomp.com> > > * gcc/config/mips/mips.c(mips_dwarf_frame_reg_mode): Replace TARGET_FLOAT64 > with !TARGET_FLOAT32, thus handling both fp64 and fpxx modes. > > gcc/testsuite/ChangeLog: > > 2019-04-23 Dragan Mladjenovic <dmladjeno...@wavecomp.com> > > * g++.dg/eh/o32-fp.C: New. > * gcc.target/mips/dwarfregtable-1.c: New. > * gcc.target/mips/dwarfregtable-2.c: New. > * gcc.target/mips/dwarfregtable-3.c: New. > * gcc.target/mips/dwarfregtable-4.c: New. > * gcc.target/mips/dwarfregtable.h: New. THanks. I've installed this on the trunk. jeff