[ARM] Fix PR85261: ICE with FPSCR setter builtin
authorThomas Preud'homme <thomas.preudhomme@arm.com>
Wed, 11 Apr 2018 10:07:25 +0000 (10:07 +0000)
committerThomas Preud'homme <thopre01@gcc.gnu.org>
Wed, 11 Apr 2018 10:07:25 +0000 (10:07 +0000)
commit60d1915f9a3bbc2b3cc9d5eec72404d9b7180ad8
tree895af22275d062d0cc9da1b374f5b5984846e6c6
parent52556a878d77b0b6c8ad680c79d5a3db14503a42
[ARM] Fix PR85261: ICE with FPSCR setter builtin

Instruction pattern for setting the FPSCR expects the input value to be
in a register. However, __builtin_arm_set_fpscr expander does not ensure
that this is the case and as a result GCC ICEs when the builtin is
called with a constant literal.

This commit fixes the builtin to force the input value into a register.
It also remove the unneeded volatile in the existing fpscr test and
fixes the function prototype.

2018-04-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    PR target/85261
    * config/arm/arm-builtins.c (arm_expand_builtin): Force input operand
    into register.

    gcc/testsuite/
    PR target/85261
    * config/arm/arm-builtins.c (arm_expand_builtin): Force input operand
    into register.

From-SVN: r259310
gcc/ChangeLog
gcc/config/arm/arm-builtins.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/arm/fpscr.c