re PR target/23070 ([3.4 only] CALL_V4_CLEAR_FP_ARGS flag not properly set)
authorAlan Modra <amodra@bigpond.net.au>
Tue, 23 Aug 2005 00:33:18 +0000 (00:33 +0000)
committerAlan Modra <amodra@gcc.gnu.org>
Tue, 23 Aug 2005 00:33:18 +0000 (10:03 +0930)
PR target/23070
* config/rs6000/rs6000.c (function_arg): For ABI_V4 calls to
stdarg functions, set/clear the fp marker even when no variable
args are passed.
* config/rs6000/sysv4.opt (mprototype): Describe.

From-SVN: r103375

gcc/ChangeLog
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/sysv4.opt

index 3663104e59c78df9a80470f647e85b6b04c536cd..38e8924ed30ac27eef618a1ac4a439ff511d6bed 100644 (file)
@@ -1,3 +1,11 @@
+2005-08-23  Alan Modra  <amodra@bigpond.net.au>
+
+       PR target/23070
+       * config/rs6000/rs6000.c (function_arg): For ABI_V4 calls to
+       stdarg functions, set/clear the fp marker even when no variable
+       args are passed.
+       * config/rs6000/sysv4.opt (mprototype): Describe.
+
 2005-08-22  Jakub Jelinek  <jakub@redhat.com>
 
        PR rtl-optimization/23478
index 04c02c35377a5ba26beb731f3cde5d27aefeb12e..2797d5f5cca4449128b2f49242988767f4b0470c 100644 (file)
@@ -4997,9 +4997,10 @@ function_arg (CUMULATIVE_ARGS *cum, enum machine_mode mode,
   if (mode == VOIDmode)
     {
       if (abi == ABI_V4
-         && cum->nargs_prototype < 0
          && (cum->call_cookie & CALL_LIBCALL) == 0
-         && (cum->prototype || TARGET_NO_PROTOTYPE))
+         && (cum->stdarg
+             || (cum->nargs_prototype < 0
+                 && (cum->prototype || TARGET_NO_PROTOTYPE))))
        {
          /* For the SPE, we need to crxor CR6 always.  */
          if (TARGET_SPE_ABI)
index 2fafba23b42fde8c51421d596b5ed68aa64cc75c..c483ea5e00ab2e33556bafbfd0af1a45cd6dd913 100644 (file)
@@ -76,7 +76,7 @@ no description yet
 
 mprototype
 Target Mask(PROTOTYPE)
-no description yet
+Assume all variable arg functions are prototyped
 
 ;; FIXME: Does nothing.
 mno-traceback