This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, ARM/testsuite 6/7, ping] Force soft float in ARMv6-M and ARMv8-M Baseline options


On 22/09/16 17:15, Thomas Preudhomme wrote:
On 22/09/16 16:47, Richard Earnshaw (lists) wrote:
On 22/09/16 15:51, Thomas Preudhomme wrote:
Sorry, noticed an error in the patch. It was not caught during testing
because GCC was built with --with-mode=thumb. Correct patch attached.

Best regards,

Thomas

On 22/09/16 14:49, Thomas Preudhomme wrote:
Hi,

ARMv6-M and ARMv8-M Baseline only support soft float ABI. Therefore, the
arm_arch_v8m_base add option should pass -mfloat-abi=soft, much like
-mthumb is
passed for architectures that only support Thumb instruction set. This
patch
adds -mfloat-abi=soft to both arm_arch_v6m and arm_arch_v8m_base add
options.
Patch is in attachment.

ChangeLog entry is as follows:

*** gcc/testsuite/ChangeLog ***

2016-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>

        * lib/target-supports.exp (add_options_for_arm_arch_v6m): Add
        -mfloat-abi=soft option.
        (add_options_for_arm_arch_v8m_base): Likewise.


Is this ok for trunk?

Best regards,

Thomas

6_softfloat_testing_v6m_v8m_baseline.patch


diff --git a/gcc/testsuite/lib/target-supports.exp
b/gcc/testsuite/lib/target-supports.exp
index
0dabea0850124947a7fe333e0b94c4077434f278..b5d72f1283be6a6e4736a1d20936e169c1384398
100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -3540,24 +3540,25 @@ proc check_effective_target_arm_fp16_hw { } {
 # Usage: /* { dg-require-effective-target arm_arch_v5_ok } */
 #        /* { dg-add-options arm_arch_v5 } */
 #     /* { dg-require-effective-target arm_arch_v5_multilib } */
-foreach { armfunc armflag armdef } { v4 "-march=armv4 -marm" __ARM_ARCH_4__
-                     v4t "-march=armv4t" __ARM_ARCH_4T__
-                     v5 "-march=armv5 -marm" __ARM_ARCH_5__
-                     v5t "-march=armv5t" __ARM_ARCH_5T__
-                     v5te "-march=armv5te" __ARM_ARCH_5TE__
-                     v6 "-march=armv6" __ARM_ARCH_6__
-                     v6k "-march=armv6k" __ARM_ARCH_6K__
-                     v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
-                     v6z "-march=armv6z" __ARM_ARCH_6Z__
-                     v6m "-march=armv6-m -mthumb" __ARM_ARCH_6M__
-                     v7a "-march=armv7-a" __ARM_ARCH_7A__
-                     v7r "-march=armv7-r" __ARM_ARCH_7R__
-                     v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
-                     v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
-                     v8a "-march=armv8-a" __ARM_ARCH_8A__
-                     v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
-                     v8m_base "-march=armv8-m.base -mthumb"
__ARM_ARCH_8M_BASE__
-                     v8m_main "-march=armv8-m.main -mthumb"
__ARM_ARCH_8M_MAIN__ } {
+foreach { armfunc armflag armdef } {
+    v4 "-march=armv4 -marm" __ARM_ARCH_4__
+    v4t "-march=armv4t" __ARM_ARCH_4T__
+    v5 "-march=armv5 -marm" __ARM_ARCH_5__
+    v5t "-march=armv5t" __ARM_ARCH_5T__
+    v5te "-march=armv5te" __ARM_ARCH_5TE__
+    v6 "-march=armv6" __ARM_ARCH_6__
+    v6k "-march=armv6k" __ARM_ARCH_6K__
+    v6t2 "-march=armv6t2" __ARM_ARCH_6T2__
+    v6z "-march=armv6z" __ARM_ARCH_6Z__
+    v6m "-march=armv6-m -mthumb -mfloat-abi=soft" __ARM_ARCH_6M__
+    v7a "-march=armv7-a" __ARM_ARCH_7A__
+    v7r "-march=armv7-r" __ARM_ARCH_7R__
+    v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__
+    v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__
+    v8a "-march=armv8-a" __ARM_ARCH_8A__
+    v8_1a "-march=armv8.1a" __ARM_ARCH_8A__
+    v8m_base "-march=armv8-m.base -mthumb -mfloat-abi=soft"
__ARM_ARCH_8M_BASE__
+    v8m_main "-march=armv8-m.main -mthumb" __ARM_ARCH_8M_MAIN__ } {
     eval [string map [list FUNC $armfunc FLAG $armflag DEF $armdef ] {
     proc check_effective_target_arm_arch_FUNC_ok { } {
         if { [ string match "*-marm*" "FLAG" ] &&


I think if you're going to do this you need to also check that changing
the ABI in this way isn't incompatible with other aspects of how the
user has invoked dejagnu.

So should this check also be done for all the target for which -mthumb is passed
or is there a difference between the two situations?

Ping?

Best regards,

Thomas


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]