sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and add_options_for_arm_vfp3.

2014-02-11  Renlin Li  <Renlin.Li@arm.com>

	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
This commit is contained in:
Renlin Li 2014-02-11 15:26:46 +00:00 committed by Kyrylo Tkachov
parent cddddfff5b
commit 6d3715b90d
5 changed files with 43 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2014-02-11 Renlin Li <Renlin.Li@arm.com>
* doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
add_options_for_arm_vfp3.
2014-02-11 Jeff Law <law@redhat.com>
PR middle-end/54041

View File

@ -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.

View File

@ -1,3 +1,9 @@
2014-02-11 Renlin Li <Renlin.Li@arm.com>
* 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 <law@redhat.com>
PR middle-end/54041

View File

@ -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)

View File

@ -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