re PR target/69100 (ICE in final_scan_insn with -msoft-float and __builtin_apply)
authorEric Botcazou <ebotcazou@adacore.com>
Mon, 4 Jan 2016 08:14:12 +0000 (08:14 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Mon, 4 Jan 2016 08:14:12 +0000 (08:14 +0000)
PR target/69100
* config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
mode for %f0-%f31 only if TARGET_FPU.

From-SVN: r232050

gcc/ChangeLog
gcc/config/sparc/sparc.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/sparc/20160104-2.c [new file with mode: 0644]

index 4b29c224689e9ece790c4be05794bb782b12e5e7..fa7b0c4a4b885beba4bffdd2b7c8bd22fa0f22da 100644 (file)
@@ -1,3 +1,9 @@
+2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR target/69100
+       * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
+       mode for %f0-%f31 only if TARGET_FPU.
+
 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
 
        PR target/69072
index ae8e962d111c99c469bcea0943f0ad30a15e204c..9fa2a5a1ecfa5c42fa0a13edfe691125b862d3b0 100644 (file)
@@ -1176,9 +1176,8 @@ extern char leaf_reg_remap[];
    On SPARC, these are the "output" registers.  v9 also uses %f0-%f31.  */
 
 #define FUNCTION_ARG_REGNO_P(N) \
-(TARGET_ARCH64 \
- ? (((N) >= 8 && (N) <= 13) || ((N) >= 32 && (N) <= 63)) \
- : ((N) >= 8 && (N) <= 13))
+  (((N) >= 8 && (N) <= 13)     \
+   || (TARGET_ARCH64 && TARGET_FPU && (N) >= 32 && (N) <= 63))
 \f
 /* Define a data type for recording info about an argument list
    during the scan of that argument list.  This data type should
index 148ac10dc15c3434a1de7fb15839dea57ec05916..f2f962922225dc7ff6bc695c91ce3ab91ac72347 100644 (file)
@@ -1,3 +1,7 @@
+2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gcc.target/sparc/20160104-2.c: New test.
+
 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
 
        * gcc.target/sparc/20160104-1.c: New test.
diff --git a/gcc/testsuite/gcc.target/sparc/20160104-2.c b/gcc/testsuite/gcc.target/sparc/20160104-2.c
new file mode 100644 (file)
index 0000000..837161d
--- /dev/null
@@ -0,0 +1,11 @@
+/* PR target/69100 */
+/* Reported by Zdenek Sojka <zsojka@seznam.cz> */
+
+/* { dg-do compile } */
+/* { dg-options "-mno-fpu" } */
+
+void
+foo (void)
+{
+  __builtin_apply (0, 0, 0);
+}