From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23247 invoked by alias); 15 Nov 2004 09:07:03 -0000 Mailing-List: contact binutils-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sources.redhat.com Received: (qmail 23188 invoked from network); 15 Nov 2004 09:06:53 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org with SMTP; 15 Nov 2004 09:06:53 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11/8.12.11) with ESMTP id iAF96rU5000643 for ; Mon, 15 Nov 2004 04:06:53 -0500 Received: from talisman.cambridge.redhat.com (talisman.cambridge.redhat.com [172.16.18.81]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id iAF96qr01178 for ; Mon, 15 Nov 2004 04:06:52 -0500 Received: from talisman.cambridge.redhat.com (localhost.localdomain [127.0.0.1]) by talisman.cambridge.redhat.com (8.13.1/8.12.10) with ESMTP id iAF96pKh007209 for ; Mon, 15 Nov 2004 09:06:51 GMT Received: (from rsandifo@localhost) by talisman.cambridge.redhat.com (8.13.1/8.12.10/Submit) id iAF96pdv007208; Mon, 15 Nov 2004 09:06:51 GMT X-Authentication-Warning: talisman.cambridge.redhat.com: rsandifo set sender to rsandifo@redhat.com using -f To: binutils@sources.redhat.com Subject: Re: RFA: Extensions to the .eh_frame linker code References: <87654akkwn.fsf@redhat.com> <20041115020718.GH32175@bubble.modra.org> From: Richard Sandiford Date: Mon, 15 Nov 2004 09:07:00 -0000 In-Reply-To: <20041115020718.GH32175@bubble.modra.org> (Alan Modra's message of "Mon, 15 Nov 2004 12:37:18 +1030") Message-ID: User-Agent: Gnus/5.1006 (Gnus v5.10.6) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2004-11/txt/msg00222.txt.bz2 Alan Modra writes: >> @@ -289,6 +289,8 @@ struct eh_cie_fde >> /* For FDEs, this points to the CIE used. */ >> struct eh_cie_fde *cie_inf; >> unsigned int size; >> + unsigned int growth; >> + unsigned int new_size; >> unsigned int offset; >> unsigned int new_offset; >> unsigned char fde_encoding; > > Can you do without these extra fields? It seems a waste of memory to > have them in a struct kept for all FDEs. Perhaps you could split this > struct into two variants, one for CIEs and one for FDEs. Well, if we're adding a 'z' augmentation, both CIEs and FDEs can grow, so the fields aren't fully redundant for FDEs. If space is a concern, would it be OK to have: unsigned char growth : 4; unsigned char rounded_growth : 4; (I'll try to think of better names ;) after the three existing "unsigned char" fields? The old "new_size" field would then be "size + rounded_growth". (Although at the moment it's easy to work out rounded_growth from growth, I'll need the two fields for the "eat existing padding" optimisation). Richard