From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21120 invoked by alias); 20 Nov 2002 19:03:19 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 21082 invoked from network); 20 Nov 2002 19:03:10 -0000 Received: from unknown (HELO cicero1.cybercity.dk) (212.242.40.4) by sources.redhat.com with SMTP; 20 Nov 2002 19:03:10 -0000 Received: from user3.cybercity.dk (fxp0.user3.ip.cybercity.dk [212.242.41.36]) by cicero1.cybercity.dk (Postfix) with ESMTP id 6ADB115FF51 for ; Wed, 20 Nov 2002 20:03:09 +0100 (CET) Received: from CHLAPTOP (port57.ds1-trg.adsl.cybercity.dk [212.242.245.122]) by user3.cybercity.dk (Postfix) with ESMTP id C4450197 for ; Wed, 20 Nov 2002 20:03:08 +0100 (CET) From: "Casper Hornstrup" To: Subject: [PATCH] Fastcall support on cygwin and mingw targets Date: Wed, 20 Nov 2002 11:03:00 -0000 Message-ID: <008401c290c7$762a71e0$0300000a@csiteoffice.csite.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0085_01C290CF.D7EED9E0" X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 Importance: Normal X-SW-Source: 2002-11/txt/msg01248.txt.bz2 This is a multi-part message in MIME format. ------=_NextPart_000_0085_01C290CF.D7EED9E0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-length: 2601 This is a refresh of the patch that implements support in gcc for the fastcall calling convention on cygwin and mingw targets (found here: http://gcc.gnu.org/ml/gcc-patches/2002-11/msg00638.html). This version of the patch includes changes as suggested by people on this list. gcc/testsuite/ChangeLog 2002-11-13 Casper S. Hornstrup * gcc.c-torture/compile/20021110-1.c: New test. * gcc.c-torture/compile/20021110-1.x: Likewise. * gcc.c-torture/compile/20021110-2.c: Likewise. * gcc.c-torture/compile/20021110-2.x: Likewise. * gcc.c-torture/compile/20021110-3.c: Likewise. * gcc.c-torture/compile/20021110-3.x: Likewise. * gcc.c-torture/compile/20021110-4.c: Likewise. * gcc.c-torture/compile/20021110-4.x: Likewise. gcc/ChangeLog 2002-11-13 Casper S. Hornstrup * config/i386/i386.c (ix86_handle_cdecl_attribute): Check for attributes incompatible with fastcall attribute. (ix86_handle_regparm_attribute): Likewise. 2002-11-13 Danny Smith * config/i386/i386.c (ix86_comp_type_attributes): Check for mismatched fastcall types. 2002-11-13 Eric Kohl * config/i386/cygwin.h (TARGET_OS_CPP_BUILTINS): Add fastcall attributes. (ASM_OUTPUT_LABELREF): Add __imp_ prefix now rather than in winnt.c. * config/i386/winnt.c (i386_pe_mark_dllimport). Convert internal fastcall decoration to MS-compatible decoration. Add __imp_ prefix in ASM_OUTPUT_LABELREF rather than here. * config/i386/i386.c (ix86_attribute_table): Accept 'fastcall' as a valid attribute. (ix86_return_pops_args): Fastcall functions pop the stack. (init_cumulative_args): Reserve registers ECX and EDX if function has fastcall attribute. (function_arg): Use registers ECX and EDX if function has fastcall attribute. * config/i386/i386.h (CUMULATIVE_ARGS): Add fastcall attribute flag. * config/i386/mingw32.h (TARGET_OS_CPP_BUILTINS): Add fastcall attributes. * config/i386/winnt.c (gen_fastcall_suffix): New function. Decorates a label name with a preliminary fastcall prefix (+) and the stdcall suffix. (i386_pe_encode_section_info): Call gen_fastcall_suffix() if a symbol has a fastcall attribute. (i386_pe_strip_name_encoding): Return length of internal fastcall prefix (+). (i386_pe_fastcall_name_p): New function. Checks a symbol for presence of internal fastcall prefix ('+' prefix). (i386_pe_asm_file_end): Converts internal fastcall prefix ('+' prefix) into the Microsoft compatible '@' prefix. * doc/extend.texi: Add documentation of fastcall attribute. ------=_NextPart_000_0085_01C290CF.D7EED9E0 Content-Type: application/octet-stream; name="fastcall.tar.gz" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="fastcall.tar.gz" Content-length: 7882 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 ie1dAHgAAA== ------=_NextPart_000_0085_01C290CF.D7EED9E0--