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