On Thu, Mar 17, 2022 at 8:05 AM H.J. Lu <hjl.to...@gmail.com> wrote:
>
> On Mon, Mar 14, 2022 at 7:31 AM H.J. Lu <hjl.to...@gmail.com> wrote:
> >
> > Push target("general-regs-only") in <x86gprintrin.h> if x87 is enabled.
> >
> > gcc/
> >
> >         PR target/104890
> >         * config/i386/x86gprintrin.h: Also check _SOFT_FLOAT before
> >         pushing target("general-regs-only").
> >
> > gcc/testsuite/
> >
> >         PR target/104890
> >         * gcc.target/i386/pr104890.c: New test.
> > ---
> >  gcc/config/i386/x86gprintrin.h           |  2 +-
> >  gcc/testsuite/gcc.target/i386/pr104890.c | 11 +++++++++++
> >  2 files changed, 12 insertions(+), 1 deletion(-)
> >  create mode 100644 gcc/testsuite/gcc.target/i386/pr104890.c
> >
> > diff --git a/gcc/config/i386/x86gprintrin.h b/gcc/config/i386/x86gprintrin.h
> > index 017ec299793..e0be01d5e78 100644
> > --- a/gcc/config/i386/x86gprintrin.h
> > +++ b/gcc/config/i386/x86gprintrin.h
> > @@ -24,7 +24,7 @@
> >  #ifndef _X86GPRINTRIN_H_INCLUDED
> >  #define _X86GPRINTRIN_H_INCLUDED
> >
> > -#if defined __MMX__ || defined __SSE__
> > +#if !defined _SOFT_FLOAT || defined __MMX__ || defined __SSE__
> >  #pragma GCC push_options
> >  #pragma GCC target("general-regs-only")
> >  #define __DISABLE_GENERAL_REGS_ONLY__
> > diff --git a/gcc/testsuite/gcc.target/i386/pr104890.c 
> > b/gcc/testsuite/gcc.target/i386/pr104890.c
> > new file mode 100644
> > index 00000000000..cb430eef688
> > --- /dev/null
> > +++ b/gcc/testsuite/gcc.target/i386/pr104890.c
> > @@ -0,0 +1,11 @@
> > +/* { dg-do compile { target ia32 } } */
> > +/* { dg-options "-O2 -mshstk -march=i686" } */
> > +
> > +#include <x86gprintrin.h>
> > +
> > +__attribute__((target ("general-regs-only")))
> > +int
> > +foo ()
> > +{
> > +  return _get_ssp ();
> > +}
> > --
> > 2.35.1
> >
>
> OK to backport to GCC 11?
>

I am backporting this to GCC 11.

-- 
H.J.

Reply via email to