]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
sourcebuild.texi: (dfp_hw): Document.
authorPeter Bergner <bergner@vnet.ibm.com>
Wed, 14 May 2014 00:07:50 +0000 (19:07 -0500)
committerPeter Bergner <bergner@gcc.gnu.org>
Wed, 14 May 2014 00:07:50 +0000 (19:07 -0500)
gcc/
* doc/sourcebuild.texi: (dfp_hw): Document.
(p8vector_hw): Likewise.
(powerpc_eabi_ok): Likewise.
(powerpc_elfv2): Likewise.
(powerpc_htm_ok): Likewise.
(ppc_recip_hw): Likewise.
(vsx_hw): Likewise.

gcc/testsuite/
* lib/target-support.exp (check_dfp_hw_available): New function.
(is-effective-target): Check $arg for dfp_hw.
(is-effective-target-keyword): Likewise.
* gcc.target/powerpc/pack03.c: (dg-require-effective-target):
Change target to dfp_hw.

From-SVN: r210406

gcc/ChangeLog
gcc/doc/sourcebuild.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/pack03.c
gcc/testsuite/lib/target-supports.exp

index ac561d56e9bc66766af092189c1801a9d90c87e4..27052a692aff723d337229c9d2ee353007e4b0be 100644 (file)
@@ -1,3 +1,13 @@
+2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
+
+       * doc/sourcebuild.texi: (dfp_hw): Document.
+       (p8vector_hw): Likewise.
+       (powerpc_eabi_ok): Likewise.
+       (powerpc_elfv2): Likewise.
+       (powerpc_htm_ok): Likewise.
+       (ppc_recip_hw): Likewise.
+       (vsx_hw): Likewise.
+
 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
 
        Backport from mainline
index 90bd0bdf2309174754c0618315f243c70482dea5..9330aae520245784ca62987fddbd865d8fcc95dc 100644 (file)
@@ -1596,6 +1596,13 @@ MIPS target supports @code{-mpaired-single}.
 @subsubsection PowerPC-specific attributes
 
 @table @code
+
+@item dfp_hw
+PowerPC target supports executing hardware DFP instructions.
+
+@item p8vector_hw
+PowerPC target supports executing VSX instructions (ISA 2.07).
+
 @item powerpc64
 Test system supports executing 64-bit instructions.
 
@@ -1605,12 +1612,24 @@ PowerPC target supports AltiVec.
 @item powerpc_altivec_ok
 PowerPC target supports @code{-maltivec}.
 
+@item powerpc_eabi_ok
+PowerPC target supports @code{-meabi}.
+
+@item powerpc_elfv2
+PowerPC target supports @code{-mabi=elfv2}.
+
 @item powerpc_fprs
 PowerPC target supports floating-point registers.
 
 @item powerpc_hard_double
 PowerPC target supports hardware double-precision floating-point.
 
+@item powerpc_htm_ok
+PowerPC target supports @code{-mhtm}
+
+@item powerpc_p8vector_ok
+PowerPC target supports @code{-mpower8-vector}
+
 @item powerpc_ppu_ok
 PowerPC target supports @code{-mcpu=cell}.
 
@@ -1624,9 +1643,6 @@ PowerPC target supports PowerPC SPE.
 @item powerpc_spu
 PowerPC target supports PowerPC SPU.
 
-@item spu_auto_overlay
-SPU target has toolchain that supports automatic overlay generation.
-
 @item powerpc_vsx_ok
 PowerPC target supports @code{-mvsx}.
 
@@ -1634,8 +1650,17 @@ PowerPC target supports @code{-mvsx}.
 Including the options used to compile this particular test, the
 PowerPC target supports PowerPC 405.
 
+@item ppc_recip_hw
+PowerPC target supports executing reciprocal estimate instructions.
+
+@item spu_auto_overlay
+SPU target has toolchain that supports automatic overlay generation.
+
 @item vmx_hw
 PowerPC target supports executing AltiVec instructions.
+
+@item vsx_hw
+PowerPC target supports executing VSX instructions (ISA 2.06).
 @end table
 
 @subsubsection Other hardware attributes
index 499415e52e05b45f86704307cda8c186d72ab529..9b2d8be06088ad92e5c7e7f99b24722e8409df71 100644 (file)
@@ -1,3 +1,11 @@
+2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
+
+       * lib/target-support.exp (check_dfp_hw_available): New function.
+       (is-effective-target): Check $arg for dfp_hw.
+       (is-effective-target-keyword): Likewise.
+       * gcc.target/powerpc/pack03.c: (dg-require-effective-target):
+       Change target to dfp_hw.
+
 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
 
        Backport from mainline
index bc582f232d69ec0f83c042437ee139a78efa5c45..dfaf2efa07e043cb55aaa56793180e59083a8d70 100644 (file)
@@ -1,7 +1,7 @@
 /* { dg-do run { target { powerpc*-*-linux* } } } */
 /* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
 /* { dg-skip-if "" { powerpc*-*-*spe* } { "*" } { "" } } */
-/* { dg-require-effective-target dfprt } */
+/* { dg-require-effective-target dfp_hw } */
 /* { dg-options "-O2 -mhard-dfp" } */
 
 #include <stddef.h>
index 815d5e129fdd2961f90662574972de23156cfb6a..f32cd04838dd36b89b8de9a72582f64448a42024 100644 (file)
@@ -1884,6 +1884,32 @@ proc check_effective_target_dfprt { } {
     }]
 }
 
+# Return 1 if the target supports executing DFP hardware instructions,
+# 0 otherwise.  Cache the result.
+
+proc check_dfp_hw_available { } {
+    return [check_cached_effective_target dfp_hw_available {
+       # For now, disable on Darwin
+       if { [istarget powerpc-*-eabi] || [istarget powerpc*-*-eabispe] || [istarget *-*-darwin*]} {
+           expr 0
+       } else {
+           check_runtime_nocache dfp_hw_available {
+               volatile _Decimal64 r;
+               volatile _Decimal64 a = 4.0DD;
+               volatile _Decimal64 b = 2.0DD;
+               int main()
+               {
+                 asm volatile ("dadd %0,%1,%2" : "=d" (r) : "d" (a), "d" (b));
+                 asm volatile ("dsub %0,%1,%2" : "=d" (r) : "d" (a), "d" (b));
+                 asm volatile ("dmul %0,%1,%2" : "=d" (r) : "d" (a), "d" (b));
+                 asm volatile ("ddiv %0,%1,%2" : "=d" (r) : "d" (a), "d" (b));
+                 return 0;
+               }
+           } "-mcpu=power6 -mhard-float"
+       }
+    }]
+}
+
 # Return 1 if the target supports compiling and assembling UCN, 0 otherwise.
 
 proc check_effective_target_ucn_nocache { } {
@@ -4591,6 +4617,7 @@ proc is-effective-target { arg } {
          "vsx_hw"         { set selected [check_vsx_hw_available] }
          "p8vector_hw"    { set selected [check_p8vector_hw_available] }
          "ppc_recip_hw"   { set selected [check_ppc_recip_hw_available] }
+         "dfp_hw"         { set selected [check_dfp_hw_available] }
          "named_sections" { set selected [check_named_sections_available] }
          "gc_sections"    { set selected [check_gc_sections_available] }
          "cxa_atexit"     { set selected [check_cxa_atexit_available] }
@@ -4613,6 +4640,7 @@ proc is-effective-target-keyword { arg } {
          "vsx_hw"         { return 1 }
          "p8vector_hw"    { return 1 }
          "ppc_recip_hw"   { return 1 }
+         "dfp_hw"         { return 1 }
          "named_sections" { return 1 }
          "gc_sections"    { return 1 }
          "cxa_atexit"     { return 1 }