From patchwork Wed Feb 23 15:19:36 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 207 Return-Path: Delivered-To: unknown Received: from imap.gmail.com (74.125.159.109) by localhost6.localdomain6 with IMAP4-SSL; 08 Jun 2011 14:40:52 -0000 Delivered-To: patches@linaro.org Received: by 10.224.19.208 with SMTP id c16cs295648qab; Wed, 23 Feb 2011 07:20:15 -0800 (PST) Received: by 10.223.106.134 with SMTP id x6mr5310011fao.73.1298474379286; Wed, 23 Feb 2011 07:19:39 -0800 (PST) Received: from mnementh.archaic.org.uk (mnementh.archaic.org.uk [81.2.115.146]) by mx.google.com with ESMTPS id a2si769313fak.3.2011.02.23.07.19.37 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 23 Feb 2011 07:19:38 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of pm215@archaic.org.uk designates 81.2.115.146 as permitted sender) client-ip=81.2.115.146; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of pm215@archaic.org.uk designates 81.2.115.146 as permitted sender) smtp.mail=pm215@archaic.org.uk Received: from pm215 by mnementh.archaic.org.uk with local (Exim 4.72) (envelope-from ) id 1PsGV6-0005L6-7Q; Wed, 23 Feb 2011 15:19:36 +0000 From: Peter Maydell To: qemu-devel@nongnu.org Cc: patches@linaro.org Subject: [PATCH 3/3] target-arm: Use TCG temporary leak debugging facilities Date: Wed, 23 Feb 2011 15:19:36 +0000 Message-Id: <1298474376-20495-4-git-send-email-peter.maydell@linaro.org> X-Mailer: git-send-email 1.7.2.3 In-Reply-To: <1298474376-20495-1-git-send-email-peter.maydell@linaro.org> References: <1298474376-20495-1-git-send-email-peter.maydell@linaro.org> Use the new TCG temporary leak debugging facilities to check that each ARM instruction does not leak temporaries. Signed-off-by: Peter Maydell --- target-arm/translate.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/target-arm/translate.c b/target-arm/translate.c index 31067d5..b96a136 100644 --- a/target-arm/translate.c +++ b/target-arm/translate.c @@ -9125,6 +9125,8 @@ static inline void gen_intermediate_code_internal(CPUState *env, gen_icount_start(); + tcg_clear_temp_count(); + /* A note on handling of the condexec (IT) bits: * * We want to avoid the overhead of having to write the updated condexec @@ -9234,6 +9236,11 @@ static inline void gen_intermediate_code_internal(CPUState *env, gen_set_label(dc->condlabel); dc->condjmp = 0; } + + if (tcg_check_temp_count()) { + fprintf(stderr, "TCG temporary leak before %08x\n", dc->pc); + } + /* Translation stops when a conditional branch is encountered. * Otherwise the subsequent code could get translated several times. * Also stop translation when a page boundary is reached. This