From c1fa753e4264554a1dd67262d37731aee99f36be Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Tue, 23 Aug 2005 00:33:18 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 8 ++++++++ gcc/config/rs6000/rs6000.c | 5 +++-- gcc/config/rs6000/sysv4.opt | 2 +- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3663104e59c..38e8924ed30 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2005-08-23 Alan Modra + + 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 PR rtl-optimization/23478 diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 04c02c35377..2797d5f5cca 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 2fafba23b42..c483ea5e00a 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 -- 2.30.2