From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1FseQt-00032v-Jx for qemu-devel@nongnu.org; Tue, 20 Jun 2006 07:30:11 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1FseQr-00030b-9m for qemu-devel@nongnu.org; Tue, 20 Jun 2006 07:30:11 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1FseQr-00030Y-6S for qemu-devel@nongnu.org; Tue, 20 Jun 2006 07:30:09 -0400 Received: from [217.10.32.16] (helo=comtv.ru) by monty-python.gnu.org with esmtp (Exim 4.52) id 1FsebE-0004KT-F7 for qemu-devel@nongnu.org; Tue, 20 Jun 2006 07:40:52 -0400 Received: from av1474.oops ([10.0.66.9] verified) by comtv.ru (CommuniGate Pro SMTP 4.1.8) with ESMTP id 157208115 for qemu-devel@nongnu.org; Tue, 20 Jun 2006 15:28:54 +0400 Date: Tue, 20 Jun 2006 15:29:10 +0400 (MSD) From: malc Subject: Re: [Qemu-devel] cvttps2dq, movdq2q, movq2dq incorrect behaviour In-Reply-To: <200606201154.40985.jseward@acm.org> Message-ID: References: <200606201154.40985.jseward@acm.org> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="8323328-1608295733-1150802950=:2085" 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 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --8323328-1608295733-1150802950=:2085 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed On Tue, 20 Jun 2006, Julian Seward wrote: > > The SSE2 instructions cvttps2dq, movdq2q, movq2dq do not behave > correctly, as shown by the attached program. It should print > > cvttps2dq_1 ... ok > cvttps2dq_2 ... ok > movdq2q_1 ... ok > movq2dq_1 ... ok > > but instead produces > > cvttps2dq_1 ... ok > cvttps2dq_2 ... not ok > result0.sd[0] = 12 (expected 12) > result0.sd[1] = 3 (expected 56) > result0.sd[2] = -2147483648 (expected 43) > result0.sd[3] = 3 (expected 87) > movdq2q_1 ... not ok > result0.uq[0] = 1302123111658042420 (expected 5124095577148911) > movq2dq_1 ... not ok > result0.uq[0] = 1302123111658042420 (expected 5124095577148911) > result0.uq[1] = 6221254864647256184 (expected 0) > > I looked at QEMU's instruction decoders for these, and compared them > to Valgrind's, but could not see what the problem was. The decode > logic looks OK. Maybe the problem is elsewhere. The signature of movdq2q is Pq, VRq and for movq2dq - Vo, PRq it appears that translate.c gets it backwards, attached patch should deal with it. As for cvttps2dq i ran it with interpreter which uses outdated(i.e. non soft-float) conversion routines and it passed, so my guess would be that this is float32_to_int32_round_to_zero vs (int32_t) cast issue. -- mailto:malc@pulsesoft.com --8323328-1608295733-1150802950=:2085 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=sse-movq.patch Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=sse-movq.patch LS0tIHRyYW5zbGF0ZS5jCVR1ZSBKdW4gMjAgMTU6MTk6MDEgMjAwNg0KKysr IC9tbnQvYmlnL25wZi9jdnMvcWVtdXgvcWVtdS90YXJnZXQtaTM4Ni90cmFu c2xhdGUuYwlUdWUgSnVuIDIwIDE1OjE5OjIwIDIwMDYNCkBAIC0yOTQ3LDE1 ICsyOTQ3LDE1IEBADQogICAgICAgICBjYXNlIDB4MmQ2OiAvKiBtb3ZxMmRx ICovDQogICAgICAgICAgICAgZ2VuX29wX2VudGVyX21teCgpOw0KICAgICAg ICAgICAgIHJtID0gKG1vZHJtICYgNykgfCBSRVhfQihzKTsNCi0gICAgICAg ICAgICBnZW5fb3BfbW92cShvZmZzZXRvZihDUFVYODZTdGF0ZSx4bW1fcmVn c1tyZWcgJiA3XS5YTU1fUSgwKSksDQotICAgICAgICAgICAgICAgICAgICAg ICAgb2Zmc2V0b2YoQ1BVWDg2U3RhdGUsZnByZWdzW3JtXS5tbXgpKTsNCi0g ICAgICAgICAgICBnZW5fb3BfbW92cV9lbnZfMChvZmZzZXRvZihDUFVYODZT dGF0ZSx4bW1fcmVnc1tyZWcgJiA3XS5YTU1fUSgxKSkpOw0KKyAgICAgICAg ICAgIGdlbl9vcF9tb3ZxKG9mZnNldG9mKENQVVg4NlN0YXRlLHhtbV9yZWdz W3JtXS5YTU1fUSgwKSksDQorICAgICAgICAgICAgICAgICAgICAgICAgb2Zm c2V0b2YoQ1BVWDg2U3RhdGUsZnByZWdzW3JlZyAmIDddLm1teCkpOw0KKyAg ICAgICAgICAgIGdlbl9vcF9tb3ZxX2Vudl8wKG9mZnNldG9mKENQVVg4NlN0 YXRlLHhtbV9yZWdzW3JtXS5YTU1fUSgxKSkpOw0KICAgICAgICAgICAgIGJy ZWFrOw0KICAgICAgICAgY2FzZSAweDNkNjogLyogbW92ZHEycSAqLw0KICAg ICAgICAgICAgIGdlbl9vcF9lbnRlcl9tbXgoKTsNCiAgICAgICAgICAgICBy bSA9IChtb2RybSAmIDcpOw0KLSAgICAgICAgICAgIGdlbl9vcF9tb3ZxKG9m ZnNldG9mKENQVVg4NlN0YXRlLGZwcmVnc1tyZWddLm1teCksDQotICAgICAg ICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YoQ1BVWDg2U3RhdGUseG1tX3Jl Z3Nbcm1dLlhNTV9RKDApKSk7DQorICAgICAgICAgICAgZ2VuX29wX21vdnEo b2Zmc2V0b2YoQ1BVWDg2U3RhdGUsZnByZWdzW3JtXS5tbXgpLA0KKyAgICAg ICAgICAgICAgICAgICAgICAgIG9mZnNldG9mKENQVVg4NlN0YXRlLHhtbV9y ZWdzW3JlZ10uWE1NX1EoMCkpKTsNCiAgICAgICAgICAgICBicmVhazsNCiAg ICAgICAgIGNhc2UgMHhkNzogLyogcG1vdm1za2IgKi8NCiAgICAgICAgIGNh c2UgMHgxZDc6DQo= --8323328-1608295733-1150802950=:2085--