This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] PPC: Correct SYSV ABI libcall handling


Hi,

due to a misunderstanding on what is passed to FUNCTION_ARG and when, the PPC 
SYSV ABI treats every libcall as a varargs call. That leads to the emission 
of a superflous instruction on every libcall. The appended patch fixes that.

Bootstrapped and regtested on powerpc-linux with mainline, 3.3 and 3.2.3.

OK to commit to mainline and 3.3?

Franz.


	* config/rs6000/rs6000.c (init_cumulative_args): Add and handle LIBCALL
	argument.
	(function_arg): Handle CALL_LIBCALL flag.
	* config/rs6000/rs6000-protos.h (init_cumulative_args): Update
	prototype.
	* config/rs6000/rs6000.h (CALL_LIBCALL): New macro.
	(INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
	(INIT_CUMULATIVE_ARGS): Add LIBCALL argument.
	(INIT_CUMULATIVE_INCOMING_ARGS): Likewise.
	

Attachment: gcc-libcall-ppc-1.patch
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]