rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL when returning call_cookie.
authorAlan Modra <amodra@gmail.com>
Fri, 22 Apr 2011 03:58:15 +0000 (13:28 +0930)
committerAlan Modra <amodra@gcc.gnu.org>
Fri, 22 Apr 2011 03:58:15 +0000 (13:28 +0930)
commit401f66999f930fde26fe1d5602371b319ddd9f25
treed6860081e6a2a506b137d064f1efde41a7f0e3cf
parent98e2d9343649af6f9e1d164fe04b3cb3706dc75e
rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL when returning call_cookie.

gcc/
* config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
when returning call_cookie.
(rs6000_function_ok_for_sibcall): Allow sibcalls via function
pointers, to functions with no more vector args than the current
function, and some non-local calls for ABI_V4.
* config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
sibcall_nonlocal_aix64): Combine to ..
(sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
(sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
(sibcall_value_nonlocal_aix<mode>): ..likewise.
(*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
(sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
operand.
* config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
sibcall_value_symbolic_64): Delete.
gcc/testsuite/
* gcc.target/powerpc/ppc-pow.c: Allow for tail calls.

From-SVN: r172855
gcc/ChangeLog
gcc/config/rs6000/darwin.md
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/ppc-pow.c