From: Renlin Li Date: Tue, 11 Feb 2014 15:26:46 +0000 (+0000) Subject: sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and add_options_for_arm... X-Git-Tag: releases/gcc-4.9.0~965 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6d3715b90d7c024028af78b512c6796d3369f705;p=thirdparty%2Fgcc.git sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and add_options_for_arm_vfp3. 2014-02-11 Renlin Li gcc/ * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and add_options_for_arm_vfp3. gcc/testsuite/ * gcc.target/arm/fixed_float_conversion.c: Add arm_vfp3 option. * lib/target-supports.exp (check_effective_target_arm_vfp3_ok): New. (add_options_for_arm_vfp3): New. From-SVN: r207691 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b2d0f8370f55..e425b0268289 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2014-02-11 Renlin Li + + * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and + add_options_for_arm_vfp3. + 2014-02-11 Jeff Law PR middle-end/54041 diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi index f9bc88056091..1ea57535e337 100644 --- a/gcc/doc/sourcebuild.texi +++ b/gcc/doc/sourcebuild.texi @@ -1551,6 +1551,10 @@ ARM target generates Thumb-2 code for @code{-mthumb}. ARM target supports @code{-mfpu=vfp -mfloat-abi=softfp}. Some multilibs may be incompatible with these options. +@item arm_vfp3_ok +ARM target supports @code{-mfpu=vfp3 -mfloat-abi=softfp}. +Some multilibs may be incompatible with these options. + @item arm_v8_vfp_ok ARM target supports @code{-mfpu=fp-armv8 -mfloat-abi=softfp}. Some multilibs may be incompatible with these options. @@ -1954,6 +1958,10 @@ NEON and half-precision floating point support. Only ARM targets support this feature, and only then in certain modes; see the @ref{arm_neon_ok,,arm_neon_fp16_ok effective target keyword}. +@item arm_vfp3 +arm vfp3 floating point support; see +the @ref{arm_vfp3_ok,,arm_vfp3_ok effective target keyword}. + @item bind_pic_locally Add the target-specific flags needed to enable functions to bind locally when using pic/PIC passes in the testsuite. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2333347dee05..c287b8da7723 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2014-02-11 Renlin Li + + * gcc.target/arm/fixed_float_conversion.c: Add arm_vfp3 option. + * lib/target-supports.exp (check_effective_target_arm_vfp3_ok): New. + (add_options_for_arm_vfp3): New. + 2014-02-11 Jeff Law PR middle-end/54041 diff --git a/gcc/testsuite/gcc.target/arm/fixed_float_conversion.c b/gcc/testsuite/gcc.target/arm/fixed_float_conversion.c index a8befd0fba7f..078b103745d6 100644 --- a/gcc/testsuite/gcc.target/arm/fixed_float_conversion.c +++ b/gcc/testsuite/gcc.target/arm/fixed_float_conversion.c @@ -1,7 +1,8 @@ /* Check that vcvt is used for fixed and float data conversions. */ /* { dg-do compile } */ -/* { dg-options "-O1 -mfpu=vfp3" } */ -/* { dg-require-effective-target arm_vfp_ok } */ +/* { dg-require-effective-target arm_vfp3_ok } */ +/* { dg-options "-O1" } */ +/* { dg-add-options arm_vfp3 } */ float fixed_to_float (int i) diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index b1c397c221bc..3a8aa9856c3f 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -2259,6 +2259,19 @@ proc check_effective_target_arm_vfp_ok { } { } } +# Return 1 if this is an ARM target supporting -mfpu=vfp3 +# -mfloat-abi=softfp. + +proc check_effective_target_arm_vfp3_ok { } { + if { [check_effective_target_arm32] } { + return [check_no_compiler_messages arm_vfp3_ok object { + int dummy; + } "-mfpu=vfp3 -mfloat-abi=softfp"] + } else { + return 0 + } +} + # Return 1 if this is an ARM target supporting -mfpu=fp-armv8 # -mfloat-abi=softfp. proc check_effective_target_arm_v8_vfp_ok {} { @@ -2406,6 +2419,14 @@ proc add_options_for_arm_neonv2 { flags } { return "$flags $et_arm_neonv2_flags" } +# Add the options needed for vfp3. +proc add_options_for_arm_vfp3 { flags } { + if { ! [check_effective_target_arm_vfp3_ok] } { + return "$flags" + } + return "$flags -mfpu=vfp3 -mfloat-abi=softfp" +} + # Return 1 if this is an ARM target supporting -mfpu=neon # -mfloat-abi=softfp or equivalent options. Some multilibs may be # incompatible with these options. Also set et_arm_neon_flags to the