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 aurel...@aurel32.net http://www.aurel32.net