]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/23070 ([3.4 only] CALL_V4_CLEAR_FP_ARGS flag not properly set)
authorAlan Modra <amodra@bigpond.net.au>
Sat, 29 Oct 2005 22:35:37 +0000 (22:35 +0000)
committerAlan Modra <amodra@gcc.gnu.org>
Sat, 29 Oct 2005 22:35:37 +0000 (09:05 +1030)
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.h (SUBTARGET_SWITCHES): Describe
-mprototype and -mno-prototype.

From-SVN: r105998

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

index 0b7a125f2005fb663ca014672a292c01dc311059..57f6747c8ed4c51076b7ad2c2dc25baec8c3b571 100644 (file)
@@ -1,3 +1,12 @@
+2005-10-30  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.h (SUBTARGET_SWITCHES): Describe
+       -mprototype and -mno-prototype.
+
 2005-10-21  Alan Modra  <amodra@bigpond.net.au>
 
        PR target/24465
index 7c9f02d5decf9dafd8c561cf05885172b658e903..a5ff8addb0f4243d607a369db0c16cf744b1937d 100644 (file)
@@ -4369,9 +4369,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 a2e0c35321b4f62283c3bce1b0f1ace50b2afaab..d367aa810b3609502a39f330953dc1be1ffc6723 100644 (file)
@@ -123,8 +123,10 @@ extern const char *rs6000_tls_size_string; /* For -mtls-size= */
   { "no-toc",           0, N_("no description yet") },                 \
   { "toc",              MASK_MINIMAL_TOC, N_("no description yet") },  \
   { "full-toc",                 MASK_MINIMAL_TOC, N_("no description yet") },  \
-  { "prototype",        MASK_PROTOTYPE, N_("no description yet") },    \
-  { "no-prototype",    -MASK_PROTOTYPE, N_("no description yet") },    \
+  { "prototype",        MASK_PROTOTYPE,                                \
+    N_("Assume all variable arg functions are prototyped") },          \
+  { "no-prototype",    -MASK_PROTOTYPE,                                \
+    N_("Non-prototyped functions might take a variable number of args") }, \
   { "no-traceback",     0, N_("no description yet") },                 \
   { "eabi",             MASK_EABI, N_("Use EABI") },                   \
   { "no-eabi",         -MASK_EABI, N_("Don't use EABI") },             \