re PR middle-end/22347 (Return value register not correctly computed for indirect...
authorRichard Guenther <rguenther@suse.de>
Thu, 14 Jul 2005 07:46:23 +0000 (07:46 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Thu, 14 Jul 2005 07:46:23 +0000 (07:46 +0000)
commitcb1119b785be0b910b6c7a9e2ee1f0338badf579
treee23fe4eb2d1a570d31a48f2d2648f10e107f2e10
parent1d636cc69fa14e7f7daa4eef6ecb6a6a1413cfda
re PR middle-end/22347 (Return value register not correctly computed for indirect function call)

2005-07-14  Richard Guenther  <rguenther@suse.de>

PR middle-end/22347
* config/i386/i386-protos.h (ix86_function_value): Change
prototype to match new target hook.
* config/i386/i386.c (ix86_value_regno): Change prototype
to take extra type argument.
(TARGET_FUNCTION_VALUE): Define.
(ix86_function_ok_for_sibcall): Pass extra argument to
ix86_value_regno, check return slot rtx for exact match.
(ix86_function_value): Take extra parameter.  Dispatch to
ix86_value_regno with fndecl/fntype as provided.
(ix86_value_regno): Handle extra type argument.
* config/i386/i386.h (FUNCTION_VALUE): No longer define.

* testsuite/gcc.target/i386/sseregparm-3.c: New testcase.
* testsuite/gcc.target/i386/sseregparm-4.c: New testcase.
* testsuite/gcc.target/i386/sseregparm-5.c: New testcase.
* testsuite/gcc.target/i386/sseregparm-6.c: New testcase.
* testsuite/gcc.target/i386/sseregparm-7.c: New testcase.

From-SVN: r102014
gcc/ChangeLog
gcc/config/i386/i386-protos.h
gcc/config/i386/i386.c
gcc/config/i386/i386.h
gcc/testsuite/gcc.target/i386/sseregparm-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/sseregparm-4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/sseregparm-5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/sseregparm-6.c [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/sseregparm-7.c [new file with mode: 0644]