backport: re PR target/57655 (ICE: in create_pre_exit, at mode-switching.c:418 with -mno-fp-ret-in-387 -mvzeroupper -mxop and __builtin_ilogbl())

Backport from mainline
	2013-06-20  Uros Bizjak  <ubizjak@gmail.com>

	PR target/57655
	* config/i386/i386.c (construct_container): Report error if
	long double is used with disabled x87 float returns.

testsuite/ChangeLog:

	Backport from mainline
	2013-06-20  Uros Bizjak  <ubizjak@gmail.com>

	PR target/57655
	* gcc.target/i386/pr57655.c: New test.

From-SVN: r200716
This commit is contained in:
Uros Bizjak 2013-07-05 16:04:26 +02:00 committed by Uros Bizjak
parent a509e0d8b5
commit 77c99e50b3
4 changed files with 28 additions and 1 deletions

View File

@ -1,3 +1,12 @@
2013-07-05 Uros Bizjak <ubizjak@gmail.com>
Backport from mainline
2013-06-20 Uros Bizjak <ubizjak@gmail.com>
PR target/57655
* config/i386/i386.c (construct_container): Report error if
long double is used with disabled x87 float returns.
2013-06-21 David Edelsohn <dje.gcc@gmail.com>
Backport from mainline

View File

@ -6303,7 +6303,7 @@ construct_container (enum machine_mode mode, enum machine_mode orig_mode,
/* Likewise, error if the ABI requires us to return values in the
x87 registers and the user specified -mno-80387. */
if (!TARGET_80387 && in_return)
if (!TARGET_FLOAT_RETURNS_IN_80387 && in_return)
for (i = 0; i < n; i++)
if (regclass[i] == X86_64_X87_CLASS
|| regclass[i] == X86_64_X87UP_CLASS

View File

@ -1,3 +1,11 @@
2013-07-05 Uros Bizjak <ubizjak@gmail.com>
Backport from mainline
2013-06-20 Uros Bizjak <ubizjak@gmail.com>
PR target/57655
* gcc.target/i386/pr57655.c: New test.
2013-06-09 Jakub Jelinek <jakub@redhat.com>
PR target/57568

View File

@ -0,0 +1,10 @@
/* { dg-do compile } */
/* { dg-options "-mavx -mvzeroupper -mno-fp-ret-in-387" }
/* { dg-error "x87 register return with x87 disabled" "" { target { ! ia32 } } 8 } */
long double
foo (long double x)
{
return __builtin_ilogbl (x);
}