aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIain Sandoe <iain@sandoe.co.uk>2019-11-01 20:01:52 +0000
committerIain Sandoe <iains@gcc.gnu.org>2019-11-01 20:01:52 +0000
commit10f6583a9d3e785f795170d69e1a1d8451b24d26 (patch)
treedb05ffae6a1b59def1a12075dab18a45cc9904a0
parent8ae6abb8685c0bb6a21c773b9e0a37e1c2421855 (diff)
downloadgcc-10f6583a9d3e785f795170d69e1a1d8451b24d26.zip
gcc-10f6583a9d3e785f795170d69e1a1d8451b24d26.tar.gz
gcc-10f6583a9d3e785f795170d69e1a1d8451b24d26.tar.bz2
[Darwin, PPC, testsuite] Exclude darwin from VSX, power8 and power9.
If we build Darwin with a modern assembler, then it might well recognise insns that cannot be used on current Darwin systems. The patch augments the tests for feature support for VSX, power8 and power9 to exclude Darwin even if the assembler can handle the instructions. gcc/testsuite/ 2019-11-01 Iain Sandoe <iain@sandoe.co.uk> Backport from mainline. 2019-05-15 Iain Sandoe <iain@sandoe.co.uk> * lib/target-supports.exp (check_effective_target_powerpc_p8vector_ok): No support for Darwin. (check_effective_target_powerpc_p9vector_ok): Likewise. (check_effective_target_powerpc_float128_sw_ok): Likewise. (check_effective_target_powerpc_float128_hw_ok): Likewise. (check_effective_target_powerpc_vsx_ok): Likewise. * gcc.target/powerpc/bfp/bfp.exp: Don't try to run this for Darwin. * gcc.target/powerpc/dfp/dfp.exp: Likewise. From-SVN: r277716
-rw-r--r--gcc/testsuite/ChangeLog14
-rw-r--r--gcc/testsuite/gcc.target/powerpc/bfp/bfp.exp6
-rw-r--r--gcc/testsuite/gcc.target/powerpc/dfp/dfp.exp7
-rw-r--r--gcc/testsuite/lib/target-supports.exp29
4 files changed, 44 insertions, 12 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 2b792ef..b93a8cc 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,17 @@
+2019-11-01 Iain Sandoe <iain@sandoe.co.uk>
+
+ Backport from mainline.
+ 2019-05-15 Iain Sandoe <iain@sandoe.co.uk>
+
+ * lib/target-supports.exp
+ (check_effective_target_powerpc_p8vector_ok): No support for Darwin.
+ (check_effective_target_powerpc_p9vector_ok): Likewise.
+ (check_effective_target_powerpc_float128_sw_ok): Likewise.
+ (check_effective_target_powerpc_float128_hw_ok): Likewise.
+ (check_effective_target_powerpc_vsx_ok): Likewise.
+ * gcc.target/powerpc/bfp/bfp.exp: Don't try to run this for Darwin.
+ * gcc.target/powerpc/dfp/dfp.exp: Likewise.
+
2019-10-29 Iain Sandoe <iain@sandoe.co.uk>
* gcc.c-torture/compile/pr72802.c: Skip for Darwin.
diff --git a/gcc/testsuite/gcc.target/powerpc/bfp/bfp.exp b/gcc/testsuite/gcc.target/powerpc/bfp/bfp.exp
index 1537ea8..fa4ce46 100644
--- a/gcc/testsuite/gcc.target/powerpc/bfp/bfp.exp
+++ b/gcc/testsuite/gcc.target/powerpc/bfp/bfp.exp
@@ -16,9 +16,11 @@
# along with GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
-# Exit immediately if this isn't a PowerPC target or if the target is aix.
+# Exit immediately if this isn't a PowerPC target or if the target is
+# aix or Darwin.
if { (![istarget powerpc*-*-*] && ![istarget rs6000-*-*])
- || [istarget "powerpc*-*-aix*"] } then {
+ || [istarget "powerpc*-*-aix*"]
+ || [istarget "powerpc*-*-darwin*"] } then {
return
}
diff --git a/gcc/testsuite/gcc.target/powerpc/dfp/dfp.exp b/gcc/testsuite/gcc.target/powerpc/dfp/dfp.exp
index 575c51a..1b8fade 100644
--- a/gcc/testsuite/gcc.target/powerpc/dfp/dfp.exp
+++ b/gcc/testsuite/gcc.target/powerpc/dfp/dfp.exp
@@ -16,8 +16,11 @@
# along with GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
-# Exit immediately if this isn't a PowerPC target.
-if { ![istarget powerpc*-*-*] && ![istarget rs6000-*-*] } then {
+# Exit immediately if this isn't a PowerPC target, also exit if we
+# are on Darwin which doesn't support decimal float.
+if { (![istarget powerpc*-*-*] && ![istarget rs6000-*-*])
+ || [istarget "powerpc*-*-darwin*"]
+} then {
return
}
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 546edfd..d33136f 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -4564,13 +4564,13 @@ proc check_effective_target_powerpc_p8vector_ok { } {
|| [istarget powerpc*-*-aix5.2*] } {
return 0
}
+ # Darwin doesn't run on power8, so far.
+ if { [istarget *-*-darwin*] } {
+ return 0
+ }
return [check_no_compiler_messages powerpc_p8vector_ok object {
int main (void) {
-#ifdef __MACH__
- asm volatile ("xxlorc vs0,vs0,vs0");
-#else
asm volatile ("xxlorc 0,0,0");
-#endif
return 0;
}
} "-mpower8-vector"]
@@ -4591,6 +4591,10 @@ proc check_effective_target_powerpc_p9vector_ok { } {
|| [istarget powerpc*-*-aix5.2*] } {
return 0
}
+ # Darwin doesn't run on power9, so far.
+ if { [istarget *-*-darwin*] } {
+ return 0
+ }
return [check_no_compiler_messages powerpc_p9vector_ok object {
int main (void) {
long e = -1;
@@ -4641,6 +4645,10 @@ proc check_effective_target_powerpc_float128_sw_ok { } {
|| [istarget powerpc*-*-aix5.2*] } {
return 0
}
+ # Darwin doesn't have VSX, so no soft support for float128.
+ if { [istarget *-*-darwin*] } {
+ return 0
+ }
return [check_no_compiler_messages powerpc_float128_sw_ok object {
volatile __float128 x = 1.0q;
volatile __float128 y = 2.0q;
@@ -4667,6 +4675,10 @@ proc check_effective_target_powerpc_float128_hw_ok { } {
|| [istarget powerpc*-*-aix5.2*] } {
return 0
}
+ # Darwin doesn't run on any machine with float128 h/w so far.
+ if { [istarget *-*-darwin*] } {
+ return 0
+ }
return [check_no_compiler_messages powerpc_float128_hw_ok object {
volatile __float128 x = 1.0q;
volatile __float128 y = 2.0q;
@@ -4693,13 +4705,14 @@ proc check_effective_target_powerpc_vsx_ok { } {
|| [istarget powerpc*-*-aix6*] } {
return 0
}
+ # Darwin doesn't have VSX, even if it's used with an assembler
+ # which recognises the insns.
+ if { [istarget *-*-darwin*] } {
+ return 0
+ }
return [check_no_compiler_messages powerpc_vsx_ok object {
int main (void) {
-#ifdef __MACH__
- asm volatile ("xxlor vs0,vs0,vs0");
-#else
asm volatile ("xxlor 0,0,0");
-#endif
return 0;
}
} "-mvsx"]