From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KaC3X-0008Rs-IR for qemu-devel@nongnu.org; Mon, 01 Sep 2008 12:15:07 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KaC3W-0008Rb-JN for qemu-devel@nongnu.org; Mon, 01 Sep 2008 12:15:07 -0400 Received: from [199.232.76.173] (port=38627 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KaC3W-0008RY-GV for qemu-devel@nongnu.org; Mon, 01 Sep 2008 12:15:06 -0400 Received: from csl.cornell.edu ([128.84.224.10]:1902 helo=vlsi.csl.cornell.edu) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KaC3W-0000pS-6v for qemu-devel@nongnu.org; Mon, 01 Sep 2008 12:15:06 -0400 Received: from stanley.csl.cornell.edu (stanley.csl.cornell.edu [128.84.224.15]) by vlsi.csl.cornell.edu (8.13.4/8.13.4) with ESMTP id m81GEsfD002086 for ; Mon, 1 Sep 2008 12:14:59 -0400 (EDT) Date: Mon, 1 Sep 2008 12:14:54 -0400 (EDT) From: Vince Weaver Message-ID: <20080901121035.R83237@stanley.csl.cornell.edu> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="0-1144698711-1220285694=:83237" Subject: [Qemu-devel] sparc smul problem 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. --0-1144698711-1220285694=:83237 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Hello! I've been stuck on this all weekend, as I can't find where the actual problem is. I might be completely missing it, but I've tried a lot of things and can't make it work. On SPARC, the "smul" instruction multiplies two numbers, puts the result in the result register but also puts the top 32-bits of the 64-bit result into the "Y" register. As the attached code shows, the value of "Y" is wrong. Somehow after the multiply, the top 32 bits of the product rae all zeros. I've played around with the code generated by translate.c, and it looks like the shift and other instructions all work properly, but the 64-bit multiply the result is somehow being truncated. But I've looked at the generated code (on x86_64) and it looks like it is doing the right thing. So anyway, I'll have to take a look at this again later, but in case anyone else wants to look at it in case I am missing anything obvious. Thanks Vince --0-1144698711-1220285694=:83237 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=smul.s Content-Transfer-Encoding: BASE64 Content-ID: <20080901121454.G83237@stanley.csl.cornell.edu> Content-Description: Content-Disposition: attachment; filename=smul.s ISBhcyAtbyBzbXVsLm8gc211bC5zIDsgbGQgLW8gc211bCBzbXVsLm8NCg0K LmVxdSBTWVNDQUxMX0VYSVQsMQkNCi5lcXUgU1lTQ0FMTF9XUklURSw0DQou ZXF1IFNURE9VVCwxDQoNCgkuZ2xvYmwgX3N0YXJ0DQpfc3RhcnQ6CQ0KDQoJ c2V0CTB4YzIyZTQ1MDcsJWcxDQoJc2V0CTB4Mzg2ZDQzODAsJWc0DQpiZWZv cmU6CQ0KCXNtdWwJJWc0LCVnMSwlZzINCglyZAkleSwlZzMNCnN0b3A6CQ0K ISBnMiBzaG91bGQgYmUgKGYyNWZiYzgwKSAxZjJlNTg4MA0KISBnMyBzaG91 bGQgYmUgKDAwMDAwMDAwKSBmMjVmYmM4MA0KDQogICAgICAgIHNldCAgICAw eDFmMmU1ODgwLCVnNQ0KICAgICAJY21wICAgICVnMiwlZzUNCglibmUgICAg d3JvbmdfbG93ZXINCglub3ANCgkNCglzZXQJY29ycmVjdF9hbnN3ZXIsJW8x DQoJYmEJcHJpbnRfbG93ZXINCglub3ANCgkNCndyb25nX2xvd2VyOg0KCXNl dCAJd3JvbmdfYW5zd2VyLCVvMQ0KDQoNCnByaW50X2xvd2VyOg0KCWNhbGwJ d3JpdGVfc3Rkb3V0DQoJbm9wDQoNCiEgQ2hlY2sgdG8gc2VlIGlmIFkgd2Fz IGNvcnJlY3QNCg0KICAgICAgICBzZXQgICAgMHhmMjVmYmM4MCwlZzUNCiAg ICAgCWNtcCAgICAlZzMsJWc1DQoJYm5lICAgIHByaW50X3dyb25nX3kNCglu b3ANCgkNCglzZXQJY29ycmVjdF95LCVvMQ0KCWJhCXByaW50X3kNCglub3AN CgkNCnByaW50X3dyb25nX3k6DQoJc2V0IAl3cm9uZ195LCVvMQ0KDQoNCnBy aW50X3k6DQoJY2FsbAl3cml0ZV9zdGRvdXQNCglub3ANCg0KDQoJDQoJIT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoJISBFeGl0DQoJIT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpleGl0OgkJDQogICAg ICAgIG1vdgkwLCVvMAkJCSEgZXhpdCB2YWx1ZQ0KICAgICAgICBtb3YJU1lT Q0FMTF9FWElULCVnMSAgICAgICAgISBwdXQgdGhlIGV4aXQgc3lzY2FsbCBu dW1iZXIgaW4gZzENCiAgICAgICAgdGEgICAgICAweDEwCQkJISBhbmQgZXhp dA0KDQoNCgkjPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCgkj IFdSSVRFX1NURE9VVA0KCSM9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQ0KCSMgJW8xIGhhcyBzdHJpbmcNCg0Kd3JpdGVfc3Rkb3V0Og0KDQoJ c2V0CVNZU0NBTExfV1JJVEUsJWcxCSEgV3JpdGUgc3lzY2FsbCBpbiAlZzEN CglzZXQJU1RET1VULCVvMAkJISAxIGluICVvMCAoc3Rkb3V0KQ0KCXNldAkw LCVvMgkJCSEgMCAoY291bnQpIGluICVvMg0KDQpzdHJfbG9vcDE6DQoJbGR1 YglbJW8xKyVvMl0sJWwxCQkhIGxvYWQgYnl0ZQ0KCWNtcAklbDEsJWcwCQkJ ISBjb21wYXJlIGFnYWluc3QgemVybw0KCWJueglzdHJfbG9vcDEJCSEgaWYg bm90IG51bCwgcmVwZWF0DQoJIyBCUkFOQ0ggREVMQVkgU0xPVA0KCWluYwkl bzIJCQkhIGluY3JlbWVudCBjb3VudA0KDQoJZGVjCSVvMgkJCSEgY29ycmVj dCBjb3VudAkNCgl0YQkweDEwCQkJISBydW4gdGhlIHN5c2NhbGwNCg0KCXJl dGwNCglub3ANCg0KDQoNCg0KIT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQ0KLmRhdGENCiE9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N Cg0KZGF0YV9yZWdpb246CQkNCndyb25nX2Fuc3dlcjoJLmFzY2lpICJXcm9u ZyBhbnN3ZXJcblwwIg0Kd3JvbmdfeTogICAgICAgIC5hc2NpaSAiV3Jvbmcg WVxuXDAiDQpjb3JyZWN0X2Fuc3dlcjoJLmFzY2lpICJDb3JyZWN0IGFuc3dl clxuXDAiDQpjb3JyZWN0X3k6CS5hc2NpaSAiQ29ycmVjdCBZXG5cMCINCg== --0-1144698711-1220285694=:83237 Content-Type: APPLICATION/octet-stream; name=smul Content-Transfer-Encoding: BASE64 Content-ID: <20080901121454.J83237@stanley.csl.cornell.edu> Content-Description: Content-Disposition: attachment; filename=smul f0VMRgECAQAAAAAAAAAAAAACAAIAAAABAAEAdAAAADQAAAGIAAAAAAA0ACAA AgAoAAYAAwAAAAEAAAAAAAEAAAABAAAAAAEsAAABLAAAAAUAAQAAAAAAAQAA ASwAAgEsAAIBLAAAADIAAAAyAAAABgABAAADMIuRghBhBwkOG1CIESOAhFkA AYdAAAALB8uWihFggICggAUSgAAGAQAAABMAAICSEmFDEIAABAEAAAATAACA khJhLEAAABIBAAAACzyX74oRYICAoMAFEoAABgEAAAATAACAkhJhUxCAAAQB AAAAEwAAgJISYTpAAAAFAQAAAJAQIACCECABkdAgEIIQIASQECABlBAgAOIK QAqApEAAEr///pQCoAGUIqABkdAgEIHD4AgBAAAAV3JvbmcgYW5zd2VyCgBX cm9uZyBZCgBDb3JyZWN0IGFuc3dlcgoAQ29ycmVjdCBZCgAALnN5bXRhYgAu c3RydGFiAC5zaHN0cnRhYgAudGV4dAAuZGF0YQAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGwAAAAEAAAAGAAEAdAAA AHQAAAC4AAAAAAAAAAAAAAABAAAAAAAAACEAAAABAAAAAwACASwAAAEsAAAA MgAAAAAAAAAAAAAAAQAAAAAAAAARAAAAAwAAAAAAAAAAAAABXgAAACcAAAAA AAAAAAAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAAngAAAGAAAAABQAAABQA AAAEAAAAEAAAAAkAAAADAAAAAAAAAAAAAAP4AAAA0gAAAAAAAAAAAAAAAQAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAHQAAAAAAwAAAQAAAAAAAgEsAAAA AAMAAAIAAAABAAAAAQAAAAAAAP/xAAAADgAAAAQAAAAAAAD/8QAAABwAAAAB AAAAAAAA//EAAAAjAAEAhAAAAAAAAAABAAAAKgABAIwAAAAAAAAAAQAAAC8A AQCwAAAAAAAAAAEAAAA7AAIBQwAAAAAAAAACAAAASgABALgAAAAAAAAAAQAA AFYAAgEsAAAAAAAAAAIAAABjAAEBAAAAAAAAAAABAAAAcAABAOQAAAAAAAAA AQAAAH4AAgFTAAAAAAAAAAIAAACIAAEA7AAAAAAAAAABAAAAkAACAToAAAAA AAAAAgAAAJgAAQD0AAAAAAAAAAEAAACdAAEBDAAAAAAAAAABAAAApwACASwA AAAAAAAAAgAAALMAAQB0AAAAABAAAAEAAAC6AAIBXgAAAAAQAP/xAAAAxgAC AV4AAAAAEAD/8QAAAM0AAgFgAAAAABAA//EAU1lTQ0FMTF9FWElUAFNZU0NB TExfV1JJVEUAU1RET1VUAGJlZm9yZQBzdG9wAHdyb25nX2xvd2VyAGNvcnJl Y3RfYW5zd2VyAHByaW50X2xvd2VyAHdyb25nX2Fuc3dlcgB3cml0ZV9zdGRv dXQAcHJpbnRfd3JvbmdfeQBjb3JyZWN0X3kAcHJpbnRfeQB3cm9uZ195AGV4 aXQAc3RyX2xvb3AxAGRhdGFfcmVnaW9uAF9zdGFydABfX2Jzc19zdGFydABf ZWRhdGEAX2VuZAA= --0-1144698711-1220285694=:83237--