From: alalaw01 Date: Wed, 24 Jun 2015 16:26:38 +0000 (+0000) Subject: [AArch64] Fix another ICE with -mgeneral-regs-only X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=14a6e10c3985adc02f126b1ce5a2f52906e52349;p=thirdparty%2Fgcc.git [AArch64] Fix another ICE with -mgeneral-regs-only gcc/: * config/aarch64/aarch64.md (2): Condition on TARGET_FLOAT. gcc/testsuite/: * gcc.target/aarch64/mgeneral-regs_3.c: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@224910 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bf4f27c3d519..944e89c5fa5f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2015-06-24 Alan Lawrence + + * config/aarch64/aarch64.md (2): + Condition on TARGET_FLOAT. + 2015-06-24 Alan Lawrence * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md index 934c8faf6d6e..dbc4d1fbfee8 100644 --- a/gcc/config/aarch64/aarch64.md +++ b/gcc/config/aarch64/aarch64.md @@ -4117,7 +4117,7 @@ (define_insn "2" [(set (match_operand:GPF 0 "register_operand" "=w,w") (FLOATUORS:GPF (match_operand: 1 "register_operand" "w,r")))] - "" + "TARGET_FLOAT" "@ cvtf\t%0, %1 cvtf\t%0, %1" diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b9084a6e393a..61045d38d2a5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2015-06-24 Alan Lawrence + + * gcc.target/aarch64/mgeneral-regs_3.c: New. + 2015-06-24 Alan Lawrence * gcc.target/aarch64/mgeneral-regs_1.c: New file. diff --git a/gcc/testsuite/gcc.target/aarch64/mgeneral-regs_3.c b/gcc/testsuite/gcc.target/aarch64/mgeneral-regs_3.c new file mode 100644 index 000000000000..f6b5fbae70b9 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mgeneral-regs_3.c @@ -0,0 +1,11 @@ +/* { dg-options "-mgeneral-regs-only -O2" } */ + +extern void abort (void); + +int +test (int i, ...) +{ + float f = (float) i; /* { dg-error "'-mgeneral-regs-only' is incompatible with floating-point code" } */ + if (f != f) abort (); + return 2; +}