aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2005-08-23 00:33:18 +0000
committerAlan Modra <amodra@gcc.gnu.org>2005-08-23 10:03:18 +0930
commitc1fa753e4264554a1dd67262d37731aee99f36be (patch)
tree5dfa221dc93b36286a12b038316582aed1183061 /gcc/config
parenta0940ff60840d35b17f9987b522009be9d2067af (diff)
downloadgcc-c1fa753e4264554a1dd67262d37731aee99f36be.zip
gcc-c1fa753e4264554a1dd67262d37731aee99f36be.tar.gz
gcc-c1fa753e4264554a1dd67262d37731aee99f36be.tar.bz2
re PR target/23070 ([3.4 only] CALL_V4_CLEAR_FP_ARGS flag not properly set)
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
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/rs6000/rs6000.c5
-rw-r--r--gcc/config/rs6000/sysv4.opt2
2 files changed, 4 insertions, 3 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 04c02c3..2797d5f 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 2fafba2..c483ea5 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