aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.4.3/gcc/testsuite/lib/target-supports.exp
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.4.3/gcc/testsuite/lib/target-supports.exp')
-rw-r--r--gcc-4.4.3/gcc/testsuite/lib/target-supports.exp26
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc-4.4.3/gcc/testsuite/lib/target-supports.exp b/gcc-4.4.3/gcc/testsuite/lib/target-supports.exp
index 1f8464d69..792d0918a 100644
--- a/gcc-4.4.3/gcc/testsuite/lib/target-supports.exp
+++ b/gcc-4.4.3/gcc/testsuite/lib/target-supports.exp
@@ -1430,6 +1430,20 @@ proc check_effective_target_arm_vfp_ok { } {
}
}
+# Return 1 if this is an ARM target supporting -mfpu=vfp
+# -mfloat-abi=hard. Some multilibs may be incompatible with these
+# options.
+
+proc check_effective_target_arm_hard_vfp_ok { } {
+ if { [check_effective_target_arm32] } {
+ return [check_no_compiler_messages arm_hard_vfp_ok executable {
+ int main() { return 0;}
+ } "-mfpu=vfp -mfloat-abi=hard"]
+ } else {
+ return 0
+ }
+}
+
# Return 1 if this is an ARM target supporting -mfpu=neon
# -mfloat-abi=softfp. Some multilibs may be incompatible with these
# options.
@@ -1437,6 +1451,7 @@ proc check_effective_target_arm_vfp_ok { } {
proc check_effective_target_arm_neon_ok { } {
if { [check_effective_target_arm32] } {
return [check_no_compiler_messages arm_neon_ok object {
+ #include "arm_neon.h"
int dummy;
} "-mfpu=neon -mfloat-abi=softfp"]
} else {
@@ -1455,6 +1470,17 @@ proc check_effective_target_arm_thumb1_ok { } {
} "-mthumb"]
}
+# Return 1 is this is an ARM target where -mthumb causes Thumb-2 to be
+# used.
+
+proc check_effective_target_arm_thumb2_ok { } {
+ return [check_no_compiler_messages arm_thumb2_ok assembly {
+ #if !defined(__thumb2__)
+ #error FOO
+ #endif
+ } "-mthumb"]
+}
+
# Return 1 if the target supports executing NEON instructions, 0
# otherwise. Cache the result.