Re: x86 abi for complex.

Anders Magnusson <[email protected]>
Newsgroups gmane.os.netbsd.devel.toolchain
Message-ID <[email protected]>
Den 2023-02-02 kl. 20:29, skrev Joseph Koshy:
> On Thu, Feb 02, 2023 at 07:59:32PM +0100, Anders Magnusson wrote:
>
>> I looked at the "complex" abi code generated on NetBSD/i386
>> for function calls, and noticed a slight discrepancy.
>> For functions returning double or long double complex, the complex
>> numbers are handled as returning of structs with the same content.
>> But; for functions returning float complex, the return values are
>> returned in eax/edx and not as the corresponding struct.
> I believe that is how the i386 ABI is defined:
>
>    https://www.uclibc.org/docs/psABI-i386.pdf (page 14)
Yep, sounds quite likely.
>> What is the reason for;
>> 1) return floats in eax/edx instead as a struct?
> My guess: passing these values in registers helps
> reduce memory traffic.
I don't think so, since the values must be stored into memory anyway to 
get them into the floating point registers.

-- R
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.