From: Christophe Lyon Date: Tue, 30 Mar 2021 12:26:33 +0000 (+0000) Subject: arm: Fix emission of Tag_ABI_VFP_args with MVE and -mfloat-abi=hard (PR target/99773) X-Git-Tag: upstream/12.2.0~9046 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6f93a7c7fc62b2d6ab47e5d5eb60d41366e1ee9e;p=platform%2Fupstream%2Fgcc.git 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 gcc/ PR target/99773 * config/arm/arm.c (arm_file_start): Fix emission of Tag_ABI_VFP_args attribute. --- diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index e89f5e2..518bfed 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.