> -----Original Message----- > From: Richard Henderson [mailto:rth@redhat.com] > Sent: 26. november 2002 00:39 > To: Casper Hornstrup > Cc: gcc-patches@gcc.gnu.org > Subject: Re: [PATCH] Fastcall support on cygwin and mingw targets > > > First, please avoid putting the patch into a tarball. It > just makes it harder to review. > I will do that. > On Thu, Nov 14, 2002 at 05:28:25PM +0100, Casper Hornstrup wrote: > > ! /* Output a reference to a label. Fastcall symbols are > prefixed with @, > > ! whereas symbols for functions using other calling > conventions don't > > ! have a prefix (unless they are marked dllimport or dllexport). > > ! Internally, @ is used as a prefix for symbols that are > marked dllimport > > ! or dllexport so internally the prefix + is used for > fastcall symbols. */ > > #undef ASM_OUTPUT_LABELREF > > ! #define ASM_OUTPUT_LABELREF(STREAM, NAME) \ > > (1) This is now so big it should be moved to an external function. > (2) The frobbing of @ and + is confusing. It is not *required* > that @ be used for dllimport/export. I'd prefer to first see > a patch that replaced the literal @ with a macro; then the macro > can expand to something other than @, and your life is happier. > Okay, lets take care of the dllimport/dllexport macro patch first then. I have attached a patch that does this. > > + The @code{fastcall} calling convention exists in Windows > for Intel > > + processors only. > > This is false. It exists on all ia32 targets. The name > mangling only happens on Windows, but that is not required > for the calling convention to be in effect. I will remove that sentence in the next version of the patch. 2002-11-27 Casper S. Hornstrup * config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Define. * config/i386/winnt.c (i386_pe_dllexport_name_p): Use DLL_IMPORT_EXPORT_PREFIX, not '@'. (i386_pe_dllimport_name_p): Likewise. (i386_pe_mark_dllexport): Likewise. (i386_pe_mark_dllimport): Likewise. (i386_pe_encode_section_info): Likewise. (i386_pe_strip_name_encoding): Likewise.