Commit 4b6af762 by Kyrylo Tkachov Committed by Kyrylo Tkachov

[gcc/testsuite/]

2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* lib/target-supports.exp
	(check_effective_target_arm_crypto_ok_nocache): New.
	(check_effective_target_arm_crypto_ok): Use above procedure.
	(add_options_for_arm_crypto): Use et_arm_crypto_flags.

From-SVN: r206519
parent bcca645c
2014-01-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* lib/target-supports.exp
(check_effective_target_arm_crypto_ok_nocache): New.
(check_effective_target_arm_crypto_ok): Use above procedure.
(add_options_for_arm_crypto): Use et_arm_crypto_flags.
2014-01-10 Jan Hubicka <hubicka@ucw.cz> 2014-01-10 Jan Hubicka <hubicka@ucw.cz>
PR ipa/58252 PR ipa/58252
......
...@@ -2311,19 +2311,37 @@ proc check_effective_target_arm_unaligned { } { ...@@ -2311,19 +2311,37 @@ proc check_effective_target_arm_unaligned { } {
} }
# Return 1 if this is an ARM target supporting -mfpu=crypto-neon-fp-armv8 # Return 1 if this is an ARM target supporting -mfpu=crypto-neon-fp-armv8
# -mfloat-abi=softfp. # -mfloat-abi=softfp or equivalent options. Some multilibs may be
proc check_effective_target_arm_crypto_ok {} { # incompatible with these options. Also set et_arm_crypto_flags to the
# best options to add.
proc check_effective_target_arm_crypto_ok_nocache { } {
global et_arm_crypto_flags
set et_arm_crypto_flags ""
if { [check_effective_target_arm32] } { if { [check_effective_target_arm32] } {
return [check_no_compiler_messages arm_crypto_ok object { foreach flags {"" "-mfloat-abi=softfp" "-mfpu=crypto-neon-fp-armv8" "-mfpu=crypto-neon-fp-armv8 -mfloat-abi=softfp"} {
int foo (void) if { [check_no_compiler_messages_nocache arm_crypto_ok object {
{ #include "arm_neon.h"
__asm__ volatile ("aese.8 q0, q0"); uint8x16_t
return 0; foo (uint8x16_t a, uint8x16_t b)
} {
} "-mfpu=crypto-neon-fp-armv8 -mfloat-abi=softfp"] return vaeseq_u8 (a, b);
} else { }
return 0 } "$flags"] } {
set et_arm_crypto_flags $flags
return 1
}
}
} }
return 0
}
# Return 1 if this is an ARM target supporting -mfpu=crypto-neon-fp-armv8
proc check_effective_target_arm_crypto_ok { } {
return [check_cached_effective_target arm_crypto_ok \
check_effective_target_arm_crypto_ok_nocache]
} }
# Add options for crypto extensions. # Add options for crypto extensions.
...@@ -2331,7 +2349,8 @@ proc add_options_for_arm_crypto { flags } { ...@@ -2331,7 +2349,8 @@ proc add_options_for_arm_crypto { flags } {
if { ! [check_effective_target_arm_crypto_ok] } { if { ! [check_effective_target_arm_crypto_ok] } {
return "$flags" return "$flags"
} }
return "$flags -mfpu=crypto-neon-fp-armv8 -mfloat-abi=softfp" global et_arm_crypto_flags
return "$flags $et_arm_crypto_flags"
} }
# Add the options needed for NEON. We need either -mfloat-abi=softfp # Add the options needed for NEON. We need either -mfloat-abi=softfp
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment