From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KWmqX-0001af-U0 for qemu-devel@nongnu.org; Sat, 23 Aug 2008 02:43:37 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KWmqV-0001aT-EY for qemu-devel@nongnu.org; Sat, 23 Aug 2008 02:43:36 -0400 Received: from [199.232.76.173] (port=51757 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KWmqV-0001aQ-7j for qemu-devel@nongnu.org; Sat, 23 Aug 2008 02:43:35 -0400 Received: from wf-out-1314.google.com ([209.85.200.172]:51776) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KWmqU-0000go-Mc for qemu-devel@nongnu.org; Sat, 23 Aug 2008 02:43:35 -0400 Received: by wf-out-1314.google.com with SMTP id 27so1022200wfd.4 for ; Fri, 22 Aug 2008 23:43:32 -0700 (PDT) Message-ID: Date: Sat, 23 Aug 2008 09:43:32 +0300 From: "Blue Swirl" Subject: Re: [Qemu-devel] tcg problem running SPARC program on x86 In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_65181_26677448.1219473812456" References: <20080818153918.U9420@stanley.csl.cornell.edu> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org ------=_Part_65181_26677448.1219473812456 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline On 8/19/08, Blue Swirl wrote: > On 8/18/08, Vince Weaver wrote: > > Hello > > > > I'm continuing on my quest to get the SPEC2000 benchmarks running under > > sparc32-linux-user (so far 8 out of 48 work). > > > > Many of the benchmarks die early on with the following error: > > > > /fusion/research4/vince/qemu/svn/tcg/tcg.c:1455: tcg > > fatal error > > > > This error is caused when tcg_reg_alloc_mov() is called but ts->val_type > > is equal to 0 (which is TEMP_VAL_DEAD). So maybe the optimizer is > > optimizing away something that it shouldn't? > > > > This happens in a block with multiple calls to the SPARC "mulscc" > > instruction which is a complicated instruction, so maybe this is finding an > > obscure corner case. > > > > I've attached a very small sample program that exhibits the bug when run > > with ./sparc32-linux-user/qemu-sparc32plus > > > Okay, I can finally reproduce this. Strangely it does not occur if -d > flag is used and "op" is one of the log items. I have to check if > older reports where I could not reproduce the bug were suffering from > the same problem. > > But I haven't found any fix yet. I have isolated the problem to andi op. The attached patch makes the bug go away by disabling the offending andi, but it's of course not a real fix. Why andi fails with op flag enabled, I have no idea. ------=_Part_65181_26677448.1219473812456 Content-Type: plain/text; name=fix_mulscc.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_fk7v4ii2 Content-Disposition: attachment; filename=fix_mulscc.diff SW5kZXg6IHFlbXUvdGFyZ2V0LXNwYXJjL3RyYW5zbGF0ZS5jCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUu b3JpZy90YXJnZXQtc3BhcmMvdHJhbnNsYXRlLmMJMjAwOC0wOC0yMyAwNjowMzo0MS4wMDAwMDAw MDAgKzAwMDAKKysrIHFlbXUvdGFyZ2V0LXNwYXJjL3RyYW5zbGF0ZS5jCTIwMDgtMDgtMjMgMDY6 MzU6NDIuMDAwMDAwMDAwICswMDAwCkBAIC0yODAsNyArMjgwLDkgQEAKIHsKICAgICB0Y2dfZ2Vu X2V4dHVfaTMyX3RsKHJlZywgc3JjKTsKICAgICB0Y2dfZ2VuX3NocmlfdGwocmVnLCByZWcsIFBT Ul9PVkZfU0hJRlQpOworI2lmIDAKICAgICB0Y2dfZ2VuX2FuZGlfdGwocmVnLCByZWcsIDB4MSk7 CisjZW5kaWYKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGdlbl9tb3ZfcmVnX0MoVENHdiByZWcs IFRDR3Ygc3JjKQpAQCAtNzE3LDI0ICs3MTksMjIgQEAKICAgICBpbnQgbDE7CiAKICAgICBsMSA9 IGdlbl9uZXdfbGFiZWwoKTsKLSAgICByX3RlbXAgPSB0Y2dfdGVtcF9uZXcoVENHX1RZUEVfVEwp OwotICAgIHJfdGVtcDIgPSB0Y2dfdGVtcF9uZXcoVENHX1RZUEVfSTMyKTsKIAogICAgIC8qIG9s ZCBvcDoKICAgICBpZiAoIShlbnYtPnkgJiAxKSkKICAgICAgICAgVDEgPSAwOwogICAgICovCiAg ICAgdGNnX2dlbl9tb3ZfdGwoY3B1X2NjX3NyYywgc3JjMSk7Ci0gICAgdGNnX2dlbl9sZDMydV90 bChyX3RlbXAsIGNwdV9lbnYsIG9mZnNldG9mKENQVVNQQVJDU3RhdGUsIHkpKTsKLSAgICB0Y2df Z2VuX3RydW5jX3RsX2kzMihyX3RlbXAyLCByX3RlbXApOwotICAgIHRjZ19nZW5fYW5kaV9pMzIo cl90ZW1wMiwgcl90ZW1wMiwgMHgxKTsKKyAgICB0Y2dfZ2VuX2xkX2kzMihjcHVfdG1wMzIsIGNw dV9lbnYsIG9mZnNldG9mKENQVVNQQVJDU3RhdGUsIHkpKTsKKyAgICB0Y2dfZ2VuX2FuZGlfaTMy KGNwdV90bXAzMiwgY3B1X3RtcDMyLCAweDEpOwogICAgIHRjZ19nZW5fbW92X3RsKGNwdV9jY19z cmMyLCBzcmMyKTsKLSAgICB0Y2dfZ2VuX2JyY29uZGlfaTMyKFRDR19DT05EX05FLCByX3RlbXAy LCAwLCBsMSk7CisgICAgdGNnX2dlbl9icmNvbmRpX2kzMihUQ0dfQ09ORF9ORSwgY3B1X3RtcDMy LCAwLCBsMSk7CiAgICAgdGNnX2dlbl9tb3ZpX3RsKGNwdV9jY19zcmMyLCAwKTsKICAgICBnZW5f c2V0X2xhYmVsKGwxKTsKIAogICAgIC8vIGIyID0gVDAgJiAxOwogICAgIC8vIGVudi0+eSA9IChi MiA8PCAzMSkgfCAoZW52LT55ID4+IDEpOworICAgIHJfdGVtcDIgPSB0Y2dfdGVtcF9uZXcoVENH X1RZUEVfSTMyKTsKICAgICB0Y2dfZ2VuX3RydW5jX3RsX2kzMihyX3RlbXAyLCBjcHVfY2Nfc3Jj KTsKICAgICB0Y2dfZ2VuX2FuZGlfaTMyKHJfdGVtcDIsIHJfdGVtcDIsIDB4MSk7CiAgICAgdGNn X2dlbl9zaGxpX2kzMihyX3RlbXAyLCByX3RlbXAyLCAzMSk7CkBAIC03NDYsMTAgKzc0NiwxMCBA QAogCiAgICAgLy8gYjEgPSBOIF4gVjsKICAgICBnZW5fbW92X3JlZ19OKGNwdV90bXAwLCBjcHVf cHNyKTsKKyAgICByX3RlbXAgPSB0Y2dfdGVtcF9uZXcoVENHX1RZUEVfVEwpOwogICAgIGdlbl9t b3ZfcmVnX1Yocl90ZW1wLCBjcHVfcHNyKTsKICAgICB0Y2dfZ2VuX3hvcl90bChjcHVfdG1wMCwg Y3B1X3RtcDAsIHJfdGVtcCk7CiAgICAgdGNnX3RlbXBfZnJlZShyX3RlbXApOwotCiAgICAgLy8g VDAgPSAoYjEgPDwgMzEpIHwgKFQwID4+IDEpOwogICAgIC8vIHNyYzEgPSBUMDsKICAgICB0Y2df Z2VuX3NobGlfdGwoY3B1X3RtcDAsIGNwdV90bXAwLCAzMSk7Cg== ------=_Part_65181_26677448.1219473812456--