]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[Darwin, PPC, testsuite] Exclude darwin from VSX, power8 and power9.
authorIain Sandoe <iain@sandoe.co.uk>
Fri, 1 Nov 2019 20:01:52 +0000 (20:01 +0000)
committerIain Sandoe <iains@gcc.gnu.org>
Fri, 1 Nov 2019 20:01:52 +0000 (20:01 +0000)
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

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/bfp/bfp.exp
gcc/testsuite/gcc.target/powerpc/dfp/dfp.exp
gcc/testsuite/lib/target-supports.exp

index 2b792efb52d4a60265d24a070be49731a8f6c371..b93a8cce8decff3694b5263f53311ae80ac34cc1 100644 (file)
@@ -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.
index 1537ea8016fb1bf2def6ed95f5b1bc0ff5fde6a3..fa4ce46f94b1226d93207bbf6eb8ec509b88a5d5 100644 (file)
 # 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
 }
 
index 575c51ac395ada8893f35c6894c17c68e4f927d2..1b8fadeff2549bec1048b32b156adf6e315a2715 100644 (file)
 # 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
 }
 
index 546edfd8db877aac9dbc09631ab6930e3465b95a..d33136f7aa4bc2475448810ca2d6539b8497db1a 100644 (file)
@@ -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"]