From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1039) id 909B53858407; Tue, 22 Mar 2022 16:31:44 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 909B53858407 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: H.J. Lu To: gcc-cvs@gcc.gnu.org Subject: [gcc r11-9685] x86: Also check _SOFT_FLOAT in X-Act-Checkin: gcc X-Git-Author: H.J. Lu X-Git-Refname: refs/heads/releases/gcc-11 X-Git-Oldrev: 97949b796566ad10895e69aadafb2462e45617b6 X-Git-Newrev: f407033b7ca27a75cccef8310360e275cdb94d26 Message-Id: <20220322163144.909B53858407@sourceware.org> Date: Tue, 22 Mar 2022 16:31:44 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Mar 2022 16:31:44 -0000 https://gcc.gnu.org/g:f407033b7ca27a75cccef8310360e275cdb94d26 commit r11-9685-gf407033b7ca27a75cccef8310360e275cdb94d26 Author: H.J. Lu Date: Sun Mar 13 08:57:51 2022 -0700 x86: Also check _SOFT_FLOAT in Push target("general-regs-only") in 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. (cherry picked from commit 3117ffce4c1598a35e724138735b099262353358) Diff: --- gcc/config/i386/x86gprintrin.h | 2 +- gcc/testsuite/gcc.target/i386/pr104890.c | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/gcc/config/i386/x86gprintrin.h b/gcc/config/i386/x86gprintrin.h index b7fefa780a6..7319e373ae9 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 + +__attribute__((target ("general-regs-only"))) +int +foo () +{ + return _get_ssp (); +}