[ARM] Rename FPSCR builtins to correct names
The GCC documentation in section 6.60.8 ARM Floating Point Status and Control Intrinsics states that the FPSCR register can be read and written to using the intrinsics __builtin_arm_get_fpscr and __builtin_arm_set_fpscr. However, these are misnamed within GCC itself and these intrinsic names are not recognised. This patch corrects the intrinsic names to match the documentation, and adds tests to verify these intrinsics generate the correct instructions. 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com> gcc/ * gcc/config/arm/arm-builtins.c (arm_init_builtins): Rename __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename __builtin_arm_stfscr to __builtin_arm_set_fpscr. gcc/testsuite/ * gcc.target/arm/fpscr.c: New file. From-SVN: r247584
This commit is contained in:
parent
cd09e219ce
commit
556cf0887e
@ -1,3 +1,9 @@
|
||||
2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
|
||||
|
||||
* gcc/config/arm/arm-builtins.c (arm_init_builtins): Rename
|
||||
__builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
|
||||
__builtin_arm_stfscr to __builtin_arm_set_fpscr.
|
||||
|
||||
2017-05-04 Martin Liska <mliska@suse.cz>
|
||||
|
||||
* tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
|
||||
|
@ -1893,10 +1893,10 @@ arm_init_builtins (void)
|
||||
= build_function_type_list (unsigned_type_node, NULL);
|
||||
|
||||
arm_builtin_decls[ARM_BUILTIN_GET_FPSCR]
|
||||
= add_builtin_function ("__builtin_arm_ldfscr", ftype_get_fpscr,
|
||||
= add_builtin_function ("__builtin_arm_get_fpscr", ftype_get_fpscr,
|
||||
ARM_BUILTIN_GET_FPSCR, BUILT_IN_MD, NULL, NULL_TREE);
|
||||
arm_builtin_decls[ARM_BUILTIN_SET_FPSCR]
|
||||
= add_builtin_function ("__builtin_arm_stfscr", ftype_set_fpscr,
|
||||
= add_builtin_function ("__builtin_arm_set_fpscr", ftype_set_fpscr,
|
||||
ARM_BUILTIN_SET_FPSCR, BUILT_IN_MD, NULL, NULL_TREE);
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,7 @@
|
||||
2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
|
||||
|
||||
* gcc.target/arm/fpscr.c: New file.
|
||||
|
||||
2017-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
|
||||
|
||||
* gcc.c-torture/execute/pr78622.c: Require c99_runtime effective
|
||||
|
16
gcc/testsuite/gcc.target/arm/fpscr.c
Normal file
16
gcc/testsuite/gcc.target/arm/fpscr.c
Normal file
@ -0,0 +1,16 @@
|
||||
/* Test the fpscr builtins. */
|
||||
|
||||
/* { dg-do compile } */
|
||||
/* { dg-require-effective-target arm_fp_ok } */
|
||||
/* { dg-skip-if "need fp instructions" { *-*-* } { "-mfloat-abi=soft" } { "" } } */
|
||||
/* { dg-add-options arm_fp } */
|
||||
|
||||
void
|
||||
test_fpscr ()
|
||||
{
|
||||
volatile unsigned int status = __builtin_arm_get_fpscr ();
|
||||
__builtin_arm_set_fpscr (status);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "mrc\tp10, 7, r\[0-9\]+, cr1, cr0, 0" } } */
|
||||
/* { dg-final { scan-assembler "mcr\tp10, 7, r\[0-9\]+, cr1, cr0, 0" } } */
|
Loading…
Reference in New Issue
Block a user