aboutsummaryrefslogtreecommitdiff
path: root/gcc/value-range.h
diff options
context:
space:
mode:
authorChristophe Lyon <christophe.lyon@linaro.org>2021-04-26 11:23:41 +0000
committerChristophe Lyon <christophe.lyon@linaro.org>2021-04-26 11:23:41 +0000
commite9046be4ffa0a941b15315317a90b437f2c1ac28 (patch)
treee35537ac8fb50ec91d46b9961efd68a3857be2c9 /gcc/value-range.h
parent5320d4e4af76120a402d0c5adef0d1bc92d66e40 (diff)
downloadgcc-e9046be4ffa0a941b15315317a90b437f2c1ac28.zip
gcc-e9046be4ffa0a941b15315317a90b437f2c1ac28.tar.gz
gcc-e9046be4ffa0a941b15315317a90b437f2c1ac28.tar.bz2
testsuite/arm: Add arm_cmse_hw effective target
Some of the CMSE tests have 'dg-do run', but qemu-arm does not support the privileged instructions involved; one has to use qemu-system-arm for this, which in turn requires modifications to the default newlib/libgloss startup code to enable the FPU as the FP status registers need to be saved when using CMSE code. This patch introduces arm_cmse_hw, similar to arm_neon_hw, to detect whether the execution engine supports the CMSE instructions. If not, we set dg-do-what-default to assemble instead of run. We thus remove all the 'dg-do run' directives from CMSE tests, to rely on dg-do-what-default instead. Note that cmse-16.c used to pass with dg-do run under qemu-arm, because the property being tested is not available (qemu-arm does not model secure vs non-secure memory). The patch removes dg-do from it too, since it is relevant only with an adequate simulator. Before the patch, bitfield-[123].c and struct-1.c fail at execution under qemu-arm. With the patch, execution is skipped. The same tests pass under qemu-system-arm both with and without the patch. This avoids failures when testing with -mthumb/-mfloat-abi=hard/-march=armv8-m.main+fp+dsp under qemu-arm for cortex-m33. I'm also running tests with qemu-system-arm for cortex-m33, but I run only cmse.exp with a patched newlib in this case: I use qemu-arm for all combinations except that one because it's faster and supports semihosting. I do not have a setup to check this with actual hardware or another simulator. 2021-04-26 Christophe Lyon <christophe.lyon@linaro.org> gcc/ * doc/sourcebuild.texi (arm_cmse_hw): Document. gcc/testsuite/ * gcc.target/arm/cmse/bitfield-1.c: Remove dg-do. * gcc.target/arm/cmse/bitfield-2.c: Likewise. * gcc.target/arm/cmse/bitfield-3.c: Likewise. * gcc.target/arm/cmse/cmse-16.c: Likewise. * gcc.target/arm/cmse/struct-1.c: Likewise. * gcc.target/arm/cmse/cmse.exp: Set dg-do-what-default depending on arm_cmse_hw. * lib/target-supports.exp (check_effective_target_arm_cmse_hw): New.
Diffstat (limited to 'gcc/value-range.h')
0 files changed, 0 insertions, 0 deletions