aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>2012-12-06 10:07:41 +0000
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>2012-12-06 10:07:41 +0000
commit71aa66e4fd514cbb6dea13f17374ed2f0bba88a4 (patch)
tree7b9d7f077615fb2e7d590b2045d4d999ce3c1eb4
parent7973996540f699588bb2db60c795e3179869620a (diff)
downloadgcc-71aa66e4fd514cbb6dea13f17374ed2f0bba88a4.zip
gcc-71aa66e4fd514cbb6dea13f17374ed2f0bba88a4.tar.gz
gcc-71aa66e4fd514cbb6dea13f17374ed2f0bba88a4.tar.bz2
sourcebuild.texi: Document arm_v8_neon_ok.
2012-12-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> gcc/ * doc/sourcebuild.texi: Document arm_v8_neon_ok. gcc/testsuite/ * lib/target-supports.exp (check_effective_target_arm_v8_neon_ok): New procedure. (add_options_for_arm_v8_neon): Likewise. From-SVN: r194245
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/doc/sourcebuild.texi4
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/lib/target-supports.exp23
4 files changed, 37 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f5ca6e4..9d87b55 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2012-12-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+ * doc/sourcebuild.texi: Document arm_v8_neon_ok.
+
+2012-12-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
* config/arm/arm.c (neon_itype): Define NEON_RINT enum element.
(neon_builtin_data): Register vrintn, vrinta, vrintp, vrintm,
vrintz, vrintx neon builtins.
diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi
index 0f29326..ae05681 100644
--- a/gcc/doc/sourcebuild.texi
+++ b/gcc/doc/sourcebuild.texi
@@ -1560,6 +1560,10 @@ Some multilibs may be incompatible with these options.
ARM target supports @code{-mfpu=fp-armv8 -mfloat-abi=softfp}.
Some multilibs may be incompatible with these options.
+@item arm_v8_neon_ok
+ARM target supports @code{-mfpu=neon-fp-armv8 -mfloat-abi=softfp}.
+Some multilibs may be incompatible with these options.
+
@item arm_prefer_ldrd_strd
ARM target prefers @code{LDRD} and @code{STRD} instructions over
@code{LDM} and @code{STM} instructions.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 30df45e..f89fe3c 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2012-12-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ * lib/target-supports.exp (check_effective_target_arm_v8_neon_ok):
+ New procedure.
+ (add_options_for_arm_v8_neon): Likewise.
+
2012-12-05 Steven Bosscher <steven@gcc.gnu.org>
* g++.dg/pr55604.C: New test.
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 5e830b1..ef93ad1 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -2107,6 +2107,22 @@ proc check_effective_target_arm_v8_vfp_ok {} {
}
}
+# Return 1 if this is an ARM target supporting -mfpu=neon-fp-armv8
+# -mfloat-abi=softfp
+proc check_effective_target_arm_v8_neon_ok {} {
+ if { [check_effective_target_arm32] } {
+ return [check_no_compiler_messages arm_v8_neon_ok object {
+ int foo (void)
+ {
+ __asm__ volatile ("vrintn.f32 q0, q0");
+ return 0;
+ }
+ } "-mfpu=neon-fp-armv8 -mfloat-abi=softfp"]
+ } else {
+ return 0
+ }
+}
+
# Return 1 if this is an ARM target supporting -mfpu=vfp
# -mfloat-abi=hard. Some multilibs may be incompatible with these
# options.
@@ -2166,6 +2182,13 @@ proc add_options_for_arm_v8_vfp { flags } {
return "$flags -mfpu=fp-armv8 -mfloat-abi=softfp"
}
+proc add_options_for_arm_v8_neon { flags } {
+ if { ! [check_effective_target_arm_v8_neon_ok] } {
+ return "$flags"
+ }
+ return "$flags -mfpu=neon-fp-armv8 -mfloat-abi=softfp"
+}
+
# Add the options needed for NEON. We need either -mfloat-abi=softfp
# or -mfloat-abi=hard, but if one is already specified by the
# multilib, use it. Similarly, if a -mfpu option already enables