OSDN Git Service

Backport from mainline
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 5 Jul 2013 14:04:26 +0000 (14:04 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 5 Jul 2013 14:04:26 +0000 (14:04 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@200716 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/i386.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr57655.c [new file with mode: 0644]

index 2bfabf7..37b67a5 100644 (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
index 5bcb7e0..a6b53e9 100644 (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
index d1abd62..6fd55a6 100644 (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
diff --git a/gcc/testsuite/gcc.target/i386/pr57655.c b/gcc/testsuite/gcc.target/i386/pr57655.c
new file mode 100644 (file)
index 0000000..586d338
--- /dev/null
@@ -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);
+}