From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15582 invoked by alias); 30 Sep 2009 00:02:40 -0000 Received: (qmail 15441 invoked by uid 22791); 30 Sep 2009 00:02:39 -0000 X-SWARE-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from rock.gnat.com (HELO rock.gnat.com) (205.232.38.15) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 30 Sep 2009 00:02:34 +0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id 15CDA2BAB85; Tue, 29 Sep 2009 20:02:33 -0400 (EDT) Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id Mq7-HYIZB+d0; Tue, 29 Sep 2009 20:02:33 -0400 (EDT) Received: from joel.gnat.com (localhost.localdomain [127.0.0.1]) by rock.gnat.com (Postfix) with ESMTP id 7C27D2BAB09; Tue, 29 Sep 2009 20:02:32 -0400 (EDT) Received: by joel.gnat.com (Postfix, from userid 1000) id 4BE2DF593D; Tue, 29 Sep 2009 17:02:25 -0700 (PDT) Date: Wed, 30 Sep 2009 00:02:00 -0000 From: Joel Brobecker To: Jonas Maebe Cc: tromey@redhat.com, Mark Kettenis , gdb-patches@sourceware.org Subject: Re: [patch] Set calling convention of methods Message-ID: <20090930000225.GA10338@adacore.com> References: <7B6EF4DA-76C8-4D9C-8B9F-94153EF1C4E1@elis.ugent.be> <691B0BA8-C606-42FF-A796-76CC9C31556A@elis.ugent.be> <200904222215.n3MMF0p2006994@brahms.sibelius.xs4all.nl> <19C107AA-5271-4C23-A6D2-AFF75BBAC4E4@elis.ugent.be> <5AA3BCA9-1ECF-446E-8B49-3132F0E470FB@elis.ugent.be> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5AA3BCA9-1ECF-446E-8B49-3132F0E470FB@elis.ugent.be> User-Agent: Mutt/1.5.18 (2008-05-17) Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2009-09/txt/msg00943.txt.bz2 > I've attached my first patch. Other patches will modify code in this > one, so I'd prefer to get this one out of the way first. But it looks like this patch actually introduces code that will be dead until you actually set the calling convention, right? It seems strange that you'd prefer to do it this way. > 2009-06-10 Jonas Maebe > > Add support for the "Borland fastcall" calling convention. > > * elf/dwarf2.h: Add DW_CC_GNU_borland_fastcall_i386 constant. > * i386-tdep.c: #include elf/dwarf2.h > (i386_borland_fastcall_push_dummy_call): New. > (i386_push_dummy_generic_call): Renamed i386_push_dummy_call. > (i386_push_dummy_call): New dispatch function that calls > i386_generic_push_dummy_call or i386_push_dummy_borland_fast_call > depending on the calling convention. One of the concerns that never got resolved from what I've read in the archives, was the use of a DWARF constant outside of DWARF code. I am not sure I understand the problem, though. Was it the use of constant zero when populating this field when reading stabs debug info, or anything else? As far as I am concerned, I can't see a problem with using DWARF declarations even from stabs. Just a couple of formatting nits: > + if (struct_return > + && reg_paras[para_regnum-1] != nargs) and > + while (type > + && can_dereference (type)) You probably want to join the two lines in one. gdb_indent.sh, our automatic indentation program would (though no one uses it, it makes pretty bad choices sometimes). I think it'd make the code a little easier to read too. > diff --git a/include/elf/dwarf2.h b/include/elf/dwarf2.h > index a7448dc..efa786e 100644 > --- a/include/elf/dwarf2.h > +++ b/include/elf/dwarf2.h > @@ -662,7 +662,8 @@ enum dwarf_calling_convention > DW_CC_normal = 0x1, > DW_CC_program = 0x2, > DW_CC_nocall = 0x3, > - DW_CC_GNU_renesas_sh = 0x40 > + DW_CC_GNU_renesas_sh = 0x40, > + DW_CC_GNU_borland_fastcall_i386 = 0x41 This part is maintained by binutils, I believe. You'll need to ask them for approval of this change. -- Joel