diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3663104e59c78df9a80470f647e85b6b04c536cd..38e8924ed30ac27eef618a1ac4a439ff511d6bed 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 04c02c35377a5ba26beb731f3cde5d27aefeb12e..2797d5f5cca4449128b2f49242988767f4b0470c 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -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)
diff --git a/gcc/config/rs6000/sysv4.opt b/gcc/config/rs6000/sysv4.opt
index 2fafba23b42fde8c51421d596b5ed68aa64cc75c..c483ea5e00ab2e33556bafbfd0af1a45cd6dd913 100644
--- a/gcc/config/rs6000/sysv4.opt
+++ b/gcc/config/rs6000/sysv4.opt
@@ -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