This is the mail archive of the
mailing list for the GCC project.
Re: x86 MMX/SSE ABI compatibility with ICC
- From: "Jan Beulich" <JBeulich at novell dot com>
- To: <rth at redhat dot com>,<Joe dot Buck at synopsys dot COM>
- Cc: <gcc at gcc dot gnu dot org>
- Date: Tue, 13 Jul 2004 08:57:11 +0200
- Subject: Re: x86 MMX/SSE ABI compatibility with ICC
>> Nope. There is an ABI standard that multiple compiler providers,
>> including both GCC and Intel, have agreed to implement.
>For i386? Yes, but it was written by AT&T in 1980. It says nothing
>about mmx or sse registers. We did have some agreement for an abi that
>passed sse types in aligned stack slots, back in 1998/99 when gcc first
>got support for sse.
That doesn't bring us closer to an answer to the original question: Why are generic, target-independent types overloaded with semantics that no-one outside of i386 (and perhaps ppc with altivec) cares?
And * is there some formal specification of what the intended ABI is? Someone, according to the mailing list archives, supposedly checked icc versions for their implementation of vector types, but as far as I could see this was only for the parameter passing case, not the return value one.
>But since then Intel has been making random ABI changes for vector types.
If that's the case, then did they signal commitment to a certain variant going forward? Otherwise, as asked already above, what's the intended ABI (i.e., compatibility with what icc version) gcc tries to implement?