It is generic.  The document that describes the ABI (from
http://www.x86-64.org) uses the term AMD64 instead of x8664, but the
same ABI is used for Intel too.

On Mon, May 16, 2011 at 6:22 PM, Sun Chan <sun.c...@gmail.com> wrote:
> is this AMD64 ABI or generic X8664 ABI? I guess I don't know much
> about Intel vs AMD ABI differences, if there is.
> Sun
>
> On Tue, May 17, 2011 at 8:01 AM, David Coakley <dcoak...@gmail.com> wrote:
>> (Attachment added this time.)
>>
>> On Mon, May 16, 2011 at 5:01 PM, David Coakley <dcoak...@gmail.com> wrote:
>>> Could a gatekeeper review the attached patch?  It fixes some AMD64 ABI
>>> compatibility problems and also eliminates some unnecessary struct
>>> copies.  The second part should apply to all targets.
>>>
>>> Here is the proposed log message:
>>>
>>>
>>> Improve AMD64 ABI compliance and avoid unnecessary struct copies.
>>>
>>> For the following code, the compiler generated unnecessary struct copies
>>> for a return value that has a size too big to be passed in registers.
>>>
>>>  typedef struct { char big[1024]; } C;
>>>  C gc;
>>>  extern C bar9 (void);
>>>  extern C check9 (void) { return bar9 (); }
>>>
>>> In this case there were two copies and one temporary variable generated.
>>> After this change the compiler does not generate any extra copies.
>>>
>>> According to the AMD64 ABI, the caller provides space for the return
>>> value in a hidden first argument and this address is returned in %rax.
>>> Previously the compiler was not following this rule.
>>>
>>> The change handles the similar cases of initialization by function
>>> call ("C c = bar9();") and assignment to a pointer ("*cp = bar9()").
>>>
>>> Also, a complex long double field is now returned in the register pair
>>> (%st0, %st1) as specified by the AMD64 ABI.
>>>
>>>
>>>
>>> I am still looking for a review for the patch I posted last week (May
>>> 10) as well.  Thanks,
>>>
>>> -David Coakley / AMD Open Source Compiler Engineering
>>>
>>
>> ------------------------------------------------------------------------------
>> Achieve unprecedented app performance and reliability
>> What every C/C++ and Fortran developer should know.
>> Learn how Intel has extended the reach of its next-generation tools
>> to help boost performance applications - inlcuding clusters.
>> http://p.sf.net/sfu/intel-dev2devmay
>> _______________________________________________
>> Open64-devel mailing list
>> Open64-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/open64-devel
>>
>>
>

------------------------------------------------------------------------------
Achieve unprecedented app performance and reliability
What every C/C++ and Fortran developer should know.
Learn how Intel has extended the reach of its next-generation tools
to help boost performance applications - inlcuding clusters.
http://p.sf.net/sfu/intel-dev2devmay
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to