diff options
author | Thomas Preud'homme <thomas.preudhomme@arm.com> | 2017-06-09 12:55:38 +0000 |
---|---|---|
committer | Thomas Preud'homme <thopre01@gcc.gnu.org> | 2017-06-09 12:55:38 +0000 |
commit | 051508d769162f11d48b185a253408ffd849ee07 (patch) | |
tree | 9cfc74c727b5b16f3c98479ba0e439e67fa72a54 | |
parent | 4f751c5437988863e622fd8b3ff82ec65e281260 (diff) | |
download | gcc-051508d769162f11d48b185a253408ffd849ee07.zip gcc-051508d769162f11d48b185a253408ffd849ee07.tar.gz gcc-051508d769162f11d48b185a253408ffd849ee07.tar.bz2 |
[ARM] Allow arm_arch_*_ok to test several macros
2017-06-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/testsuite/
* lib/target-supports.exp (check_effective_target_arm_arch_FUNC_ok):
Test for null definitions instead of them being undefined. Add entry
for ARMv7VE. Reindent entry for ARMv8-M Baseline. Add comment warning
about using the effective target for architecture extension.
(check_effective_target_arm_arch_v7ve_ok): Remove.
(add_options_for_arm_arch_v7ve): Likewise.
From-SVN: r249059
-rw-r--r-- | gcc/testsuite/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/testsuite/lib/target-supports.exp | 38 |
2 files changed, 20 insertions, 27 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7bef1b5..1a70946 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2017-06-09 Thomas Preud'homme <thomas.preudhomme@arm.com> + + * lib/target-supports.exp (check_effective_target_arm_arch_FUNC_ok): + Test for null definitions instead of them being undefined. Add entry + for ARMv7VE. Reindent entry for ARMv8-M Baseline. Add comment warning + about using the effective target for architecture extension. + (check_effective_target_arm_arch_v7ve_ok): Remove. + (add_options_for_arm_arch_v7ve): Likewise. + 2017-06-09 Richard Biener <rguenther@suse.de> PR tree-optimization/66623 diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index d0b35be..9c9a26f 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -3772,12 +3772,13 @@ proc check_effective_target_arm_fp16_hw { } { # can be selected and a routine to give the flags to select that architecture # Note: Extra flags may be added to disable options from newer compilers # (Thumb in particular - but others may be added in the future). -# -march=armv7ve is special and is handled explicitly after this loop because -# it needs more than one predefine check to identify. +# Warning: Do not use check_effective_target_arm_arch_*_ok for architecture +# extension (eg. ARMv8.1-A) since there is no macro defined for them. See +# how only __ARM_ARCH_8A__ is checked for ARMv8.1-A. # 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 } { +foreach { armfunc armflag armdefs } { v4 "-march=armv4 -marm" __ARM_ARCH_4__ v4t "-march=armv4t" __ARM_ARCH_4T__ v5 "-march=armv5 -marm" __ARM_ARCH_5__ @@ -3792,20 +3793,23 @@ foreach { armfunc armflag armdef } { v7r "-march=armv7-r" __ARM_ARCH_7R__ v7m "-march=armv7-m -mthumb" __ARM_ARCH_7M__ v7em "-march=armv7e-m -mthumb" __ARM_ARCH_7EM__ + v7ve "-march=armv7ve -marm" + "__ARM_ARCH_7A__ && __ARM_FEATURE_IDIV" v8a "-march=armv8-a" __ARM_ARCH_8A__ v8_1a "-march=armv8.1a" __ARM_ARCH_8A__ v8_2a "-march=armv8.2a" __ARM_ARCH_8A__ - v8m_base "-march=armv8-m.base -mthumb -mfloat-abi=soft" __ARM_ARCH_8M_BASE__ + 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 ] { + eval [string map [list FUNC $armfunc FLAG $armflag DEFS $armdefs ] { proc check_effective_target_arm_arch_FUNC_ok { } { if { [ string match "*-marm*" "FLAG" ] && ![check_effective_target_arm_arm_ok] } { return 0 } return [check_no_compiler_messages arm_arch_FUNC_ok assembly { - #if !defined (DEF) - #error !DEF + #if !(DEFS) + #error !(DEFS) #endif } "FLAG" ] } @@ -3826,26 +3830,6 @@ foreach { armfunc armflag armdef } { }] } -# Same functions as above but for -march=armv7ve. To uniquely identify -# -march=armv7ve we need to check for __ARM_ARCH_7A__ as well as -# __ARM_FEATURE_IDIV otherwise it aliases with armv7-a. - -proc check_effective_target_arm_arch_v7ve_ok { } { - if { [ string match "*-marm*" "-march=armv7ve" ] && - ![check_effective_target_arm_arm_ok] } { - return 0 - } - return [check_no_compiler_messages arm_arch_v7ve_ok assembly { - #if !defined (__ARM_ARCH_7A__) || !defined (__ARM_FEATURE_IDIV) - #error !armv7ve - #endif - } "-march=armv7ve" ] -} - -proc add_options_for_arm_arch_v7ve { flags } { - return "$flags -march=armv7ve" -} - # Return 1 if GCC was configured with --with-mode= proc check_effective_target_default_mode { } { |