[AArch64] Fix ICES with -mgeneral-regs-only / -march=...+nofp
authorAlan Lawrence <alan.lawrence@arm.com>
Wed, 24 Jun 2015 16:13:28 +0000 (16:13 +0000)
committerAlan Lawrence <alalaw01@gcc.gnu.org>
Wed, 24 Jun 2015 16:13:28 +0000 (16:13 +0000)
commit261fb553d291b2fd74ae28348dda80115bf6d29e
tree4102743e90a18e3286c00d6d21c034a0e0340d59
parent4ca1ca5bdb4c7467a1db9a3e2ef32607cceb6ddd
[AArch64] Fix ICES with -mgeneral-regs-only / -march=...+nofp

gcc/ChangeLog:

* config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.

* config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
aarch64_err_no_fpadvsimd.

* config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
(aarch64_layout_arg, aarch64_init_cumulative_args): Use
aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
(aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
Turn error into assert, test TARGET_FLOAT.
(aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
TARGET_FLOAT.

gcc/testsuite/ChangeLog:

* gcc.target/aarch64/mgeneral-regs_1.c: New file.
* gcc.target/aarch64/mgeneral-regs_2.c: New file.
* gcc.target/aarch64/nofp_1.c: New file.

From-SVN: r224908
gcc/ChangeLog
gcc/config/aarch64/aarch64-protos.h
gcc/config/aarch64/aarch64.c
gcc/config/aarch64/aarch64.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/mgeneral-regs_1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/mgeneral-regs_2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/nofp_1.c [new file with mode: 0644]