From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=56299 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PwW1m-000541-Ux for qemu-devel@nongnu.org; Mon, 07 Mar 2011 03:42:55 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PwW1l-00067s-KK for qemu-devel@nongnu.org; Mon, 07 Mar 2011 03:42:54 -0500 Received: from hall.aurel32.net ([88.191.126.93]:38012) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PwW1l-00067n-D5 for qemu-devel@nongnu.org; Mon, 07 Mar 2011 03:42:53 -0500 Date: Mon, 7 Mar 2011 09:42:51 +0100 From: Aurelien Jarno Subject: Re: [Qemu-devel] [PATCH v2 0/3] tcg: Support debugging leakage of temporaries Message-ID: <20110307084251.GE10503@volta.aurel32.net> References: <1299447595-13344-1-git-send-email-peter.maydell@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: <1299447595-13344-1-git-send-email-peter.maydell@linaro.org> List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell Cc: qemu-devel@nongnu.org, patches@linaro.org On Sun, Mar 06, 2011 at 09:39:52PM +0000, Peter Maydell wrote: > This patchset removes the ad-hoc debug code in target-arm for > identifying cases where we leaked TCG temporary variables, in > favour of an implementation in tcg itself. > > Generally any temporaries created by a target while it is > translating an instruction should be freed by the end of that > instruction; otherwise carefully crafted guest code could cause > TCG to run out of temporaries and assert. > > Putting the leak-debugging code into TCG proper (a) makes more > sense as this isn't at all arm-specific (b) makes it more > comprehensive, as it now covers temporaries created in all ways, > not just via the new_tmp()/dead_tmp() wrapper functions > (c) avoids annoying false positives where eg a TCG temp created > with tcg_const_i32() was passed to dead_tmp(). > > The tracking only happens if qemu was configured with > --enable-debug-tcg. It should be easy to add to other targets if > desired; it's just a matter of calling tcg_clear_temp_count() > and tcg_check_temp_count() in the appropriate places. > > Changes since v1: > use "do { } while (0)" for the non-debug version of the > tcg_clear_temp_count() macro to avoid creating empty statements > > Peter Maydell (3): > tcg: Add support for debugging leakage of temporaries > target-arm: Remove ad-hoc leak checking code > target-arm: Use TCG temporary leak debugging facilities > > target-arm/translate.c | 705 +++++++++++++++++++++++------------------------ > tcg/tcg.c | 32 +++ > tcg/tcg.h | 17 ++ > 3 files changed, 394 insertions(+), 360 deletions(-) > > > Thanks, all applied. -- Aurelien Jarno GPG: 1024D/F1BCDB73 aurelien@aurel32.net http://www.aurel32.net