From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NuBeh-0000ir-24 for qemu-devel@nongnu.org; Tue, 23 Mar 2010 17:28:55 -0400 Received: from [140.186.70.92] (port=40885 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NuBef-0000hZ-4k for qemu-devel@nongnu.org; Tue, 23 Mar 2010 17:28:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1NuBed-0001qF-Ip for qemu-devel@nongnu.org; Tue, 23 Mar 2010 17:28:53 -0400 Received: from hall.aurel32.net ([88.191.82.174]:51589) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NuBed-0001qB-AP for qemu-devel@nongnu.org; Tue, 23 Mar 2010 17:28:51 -0400 Date: Tue, 23 Mar 2010 22:28:50 +0100 From: Aurelien Jarno Subject: Re: [Qemu-devel] [PATCH 001/399] target-arm: Fix handling of AL condition in IT instruction Message-ID: <20100323212850.GD19086@hall.aurel32.net> References: <1268830567-3422-1-git-send-email-teofrastius@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: <1268830567-3422-1-git-send-email-teofrastius@gmail.com> Sender: Aurelien Jarno List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Johan Bengtsson Cc: qemu-devel@nongnu.org On Wed, Mar 17, 2010 at 01:56:07PM +0100, Johan Bengtsson wrote: > Do not try to insert a conditional jump over next instruction when the > condition code is AL as this will trigger an internal error. > > Signed-off-by: Johan Bengtsson Thanks, applied. > --- > target-arm/translate.c | 8 +++++--- > 1 files changed, 5 insertions(+), 3 deletions(-) > > diff --git a/target-arm/translate.c b/target-arm/translate.c > index 786c329..554583d 100644 > --- a/target-arm/translate.c > +++ b/target-arm/translate.c > @@ -8328,9 +8328,11 @@ static void disas_thumb_insn(CPUState *env, DisasContext *s) > > if (s->condexec_mask) { > cond = s->condexec_cond; > - s->condlabel = gen_new_label(); > - gen_test_cc(cond ^ 1, s->condlabel); > - s->condjmp = 1; > + if (cond != 0x0e) { /* Skip conditional when condition is AL. */ > + s->condlabel = gen_new_label(); > + gen_test_cc(cond ^ 1, s->condlabel); > + s->condjmp = 1; > + } > } > > insn = lduw_code(s->pc); > -- > 1.6.3.3 > > > > -- Aurelien Jarno GPG: 1024D/F1BCDB73 aurelien@aurel32.net http://www.aurel32.net