]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
testsuite: arm: tighten up mode-specific ISA tests
authorRichard Earnshaw <rearnsha@arm.com>
Tue, 7 Nov 2023 10:39:14 +0000 (10:39 +0000)
committerRichard Earnshaw <rearnsha@arm.com>
Mon, 13 Nov 2023 14:15:57 +0000 (14:15 +0000)
Some of the standard Arm architecture tests require the test to use a
specific instruction set (arm or thumb).  But although the framework
was checking that the flag was accepted, it wasn't checking that the
flag wasn't somehow being override (eg by run-specific options).  We
can improve these tests easily by checking whether or not __thumb-_ is
defined.

gcc/testsuite:

* lib/target-supports.exp (check_effective_target_arm_arch_FUNC_ok):
For instruction-set specific tests, check that __thumb__ is, or
isn't defined as appropriate.

gcc/testsuite/lib/target-supports.exp

index 316e34a34bed1c771ce70e34926dc9fe6175efd5..3d504d261641ffa39864f58da990128168590a63 100644 (file)
@@ -5403,25 +5403,25 @@ proc check_effective_target_arm_fp16_hw { } {
 foreach { armfunc armflag armdefs } {
        v4 "-march=armv4 -marm" __ARM_ARCH_4__
        v4t "-march=armv4t -mfloat-abi=softfp" __ARM_ARCH_4T__
-       v4t_arm "-march=armv4t -marm" __ARM_ARCH_4T__
-       v4t_thumb "-march=armv4t -mthumb -mfloat-abi=softfp" __ARM_ARCH_4T__
+       v4t_arm "-march=armv4t -marm" "__ARM_ARCH_4T__ && !__thumb__"
+       v4t_thumb "-march=armv4t -mthumb -mfloat-abi=softfp" "__ARM_ARCH_4T__ && __thumb__"
        v5t "-march=armv5t -mfloat-abi=softfp" __ARM_ARCH_5T__
-       v5t_arm "-march=armv5t -marm" __ARM_ARCH_5T__
-       v5t_thumb "-march=armv5t -mthumb -mfloat-abi=softfp" __ARM_ARCH_5T__
+       v5t_arm "-march=armv5t -marm" "__ARM_ARCH_5T__ && !__thumb__"
+       v5t_thumb "-march=armv5t -mthumb -mfloat-abi=softfp" "__ARM_ARCH_5T__ && __thumb__"
        v5te "-march=armv5te+fp -mfloat-abi=softfp" __ARM_ARCH_5TE__
-       v5te_arm "-march=armv5te+fp -marm" __ARM_ARCH_5TE__
-       v5te_thumb "-march=armv5te+fp -mthumb -mfloat-abi=softfp" __ARM_ARCH_5TE__
-       xscale_arm "-mcpu=xscale -mfloat-abi=soft -marm" __XSCALE__
+       v5te_arm "-march=armv5te+fp -marm" "__ARM_ARCH_5TE__ && !__thumb__"
+       v5te_thumb "-march=armv5te+fp -mthumb -mfloat-abi=softfp" "__ARM_ARCH_5TE__ && __thumb__"
+       xscale_arm "-mcpu=xscale -mfloat-abi=soft -marm" "__XSCALE__ && !__thumb__"
        v6 "-march=armv6+fp -mfloat-abi=softfp" __ARM_ARCH_6__
-       v6_arm "-march=armv6+fp -marm" __ARM_ARCH_6__
-       v6_thumb "-march=armv6+fp -mthumb -mfloat-abi=softfp" __ARM_ARCH_6__
+       v6_arm "-march=armv6+fp -marm" "__ARM_ARCH_6__ && !__thumb__"
+       v6_thumb "-march=armv6+fp -mthumb -mfloat-abi=softfp" "__ARM_ARCH_6__ && __thumb__"
        v6k "-march=armv6k+fp -mfloat-abi=softfp" __ARM_ARCH_6K__
-       v6k_arm "-march=armv6k+fp -marm" __ARM_ARCH_6K__
-       v6k_thumb "-march=armv6k+fp -mthumb -mfloat-abi=softfp" __ARM_ARCH_6K__
+       v6k_arm "-march=armv6k+fp -marm" "__ARM_ARCH_6K__ && !__thumb__"
+       v6k_thumb "-march=armv6k+fp -mthumb -mfloat-abi=softfp" "__ARM_ARCH_6K__ && __thumb__"
        v6t2 "-march=armv6t2+fp" __ARM_ARCH_6T2__
        v6z "-march=armv6z+fp -mfloat-abi=softfp" __ARM_ARCH_6Z__
-       v6z_arm "-march=armv6z+fp -marm" __ARM_ARCH_6Z__
-       v6z_thumb "-march=armv6z+fp -mthumb -mfloat-abi=softfp" __ARM_ARCH_6Z__
+       v6z_arm "-march=armv6z+fp -marm" "__ARM_ARCH_6Z__ && !__thumb__"
+       v6z_thumb "-march=armv6z+fp -mthumb -mfloat-abi=softfp" "__ARM_ARCH_6Z__ && __thumb__"
        v6m "-march=armv6-m -mthumb -mfloat-abi=soft" __ARM_ARCH_6M__
        v7a "-march=armv7-a+fp" __ARM_ARCH_7A__
        v7r "-march=armv7-r+fp" __ARM_ARCH_7R__