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] |
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] |