[gcc r11-7908] arm: Fix emission of Tag_ABI_VFP_args with MVE and -mfloat-abi=hard (PR target/99773)

Christophe Lyon clyon@gcc.gnu.org
Tue Mar 30 13:11:32 GMT 2021


https://gcc.gnu.org/g:6f93a7c7fc62b2d6ab47e5d5eb60d41366e1ee9e

commit r11-7908-g6f93a7c7fc62b2d6ab47e5d5eb60d41366e1ee9e
Author: Christophe Lyon <christophe.lyon@linaro.org>
Date:   Tue Mar 30 12:26:33 2021 +0000

    arm: Fix emission of Tag_ABI_VFP_args with MVE and -mfloat-abi=hard (PR target/99773)
    
    When compiling with -mfloat-abi=hard -march=armv8.1-m.main+mve, we
    want to emit Tag_ABI_VFP_args even though we are not emitting
    floating-point instructions (we need "+mve.fp" for that), because we
    use MVE registers to pass FP arguments.
    
    This patch removes the condition on (! TARGET_SOFT_FLOAT) because this
    is a case where TARGET_SOFT_FLOAT is true, and TARGET_HARD_FLOAT_ABI
    is true too.
    
    2021-03-30  Richard Earnshaw  <rearnsha@arm.com>
    
            gcc/
            PR target/99773
            * config/arm/arm.c (arm_file_start): Fix emission of
            Tag_ABI_VFP_args attribute.

Diff:
---
 gcc/config/arm/arm.c | 11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index e89f5e24d3b..518bfed1c35 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -28150,14 +28150,11 @@ arm_file_start (void)
       if (print_tune_info)
 	arm_print_tune_info ();
 
-      if (! TARGET_SOFT_FLOAT)
-	{
-	  if (TARGET_HARD_FLOAT && TARGET_VFP_SINGLE)
-	    arm_emit_eabi_attribute ("Tag_ABI_HardFP_use", 27, 1);
+      if (TARGET_HARD_FLOAT && TARGET_VFP_SINGLE)
+	arm_emit_eabi_attribute ("Tag_ABI_HardFP_use", 27, 1);
 
-	  if (TARGET_HARD_FLOAT_ABI)
-	    arm_emit_eabi_attribute ("Tag_ABI_VFP_args", 28, 1);
-	}
+      if (TARGET_HARD_FLOAT_ABI)
+	arm_emit_eabi_attribute ("Tag_ABI_VFP_args", 28, 1);
 
       /* Some of these attributes only apply when the corresponding features
 	 are used.  However we don't have any easy way of figuring this out.


More information about the Gcc-cvs mailing list