From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MrJb2-0001or-94 for qemu-devel@nongnu.org; Fri, 25 Sep 2009 18:49:00 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MrJb0-0001oB-P6 for qemu-devel@nongnu.org; Fri, 25 Sep 2009 18:48:59 -0400 Received: from [199.232.76.173] (port=48602 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MrJb0-0001o8-LF for qemu-devel@nongnu.org; Fri, 25 Sep 2009 18:48:58 -0400 Received: from fg-out-1718.google.com ([72.14.220.159]:38574) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MrJb0-0001lu-4O for qemu-devel@nongnu.org; Fri, 25 Sep 2009 18:48:58 -0400 Received: by fg-out-1718.google.com with SMTP id d23so982595fga.10 for ; Fri, 25 Sep 2009 15:48:57 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <761ea48b0909160916y21771671g9399ddf9983ac5c0@mail.gmail.com> References: <4AB1020A.1070807@mlbassoc.com> <761ea48b0909160831p3201956u79077c802e6c349a@mail.gmail.com> <4AB10857.2030403@mlbassoc.com> <761ea48b0909160916y21771671g9399ddf9983ac5c0@mail.gmail.com> Date: Sat, 26 Sep 2009 00:48:57 +0200 Message-ID: <761ea48b0909251548l46efb05v49594cb4d2f72ee2@mail.gmail.com> Subject: Re: [Qemu-devel] tcg_abort() From: Laurent Desnogues Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org On Wed, Sep 16, 2009 at 6:16 PM, Laurent Desnogues wrote: > On Wed, Sep 16, 2009 at 5:46 PM, Gary Thomas wrote: > [...] >> >> /qemu-git-2009_09_16/tcg/arm/tcg-target.c:773: tcg fatal error >> >>> =A0 - how to reproduce the issue >> >> This one's harder - I'm running an x86 gnome application on an ARM >> system. =A0I'm not sure exactly what it was doing when the abort happene= d. >> >> Questions: >> =A0* The function in tcp-target.c seems complete, but it has >> =A0 =A0 =A0#if 1 >> =A0 =A0 =A0 =A0tcg_abort(); >> =A0 =A0 =A0#endif >> =A0 =A0which implies it's not complete or maybe just untested? >> =A0* How can I gather more information about what was going on >> =A0 =A0at the time to aid in fixing this? > > Your problem is probably due to generated code being too far from > the helper functions (the helper functions can be thought of as a > library). > > Could please try to replace the tcg_abort() on line 773 with these > two lines? > > =A0 =A0 =A0 =A0tcg_out_movi32(s, cond, TCG_REG_R8, val); > =A0 =A0 =A0 =A0tcg_out32(s, (cond << 28) | 0x012fff30 | TCG_REG_R8); /* b= lx r8 */ > > I didn't test it, so you'll be my guinea pig :-) Turned out this was wrong, it should have been: tcg_out_movi32(s, cond, TCG_REG_R8, addr); tcg_out32(s, (cond << 28) | 0x012fff30 | TCG_REG_R8); /* blx r8 */ Laurent