From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KQoj9-0000og-Oj for qemu-devel@nongnu.org; Wed, 06 Aug 2008 15:31:19 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KQoj7-0000ji-MR for qemu-devel@nongnu.org; Wed, 06 Aug 2008 15:31:18 -0400 Received: from [199.232.76.173] (port=44811 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KQoj7-0000jD-30 for qemu-devel@nongnu.org; Wed, 06 Aug 2008 15:31:17 -0400 Received: from csl.cornell.edu ([128.84.224.10]:3407 helo=vlsi.csl.cornell.edu) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KQoj6-00048q-QM for qemu-devel@nongnu.org; Wed, 06 Aug 2008 15:31:17 -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 m76JVBx3079621 for ; Wed, 6 Aug 2008 15:31:16 -0400 (EDT) Date: Wed, 6 Aug 2008 15:31:11 -0400 (EDT) From: Vince Weaver In-Reply-To: Message-ID: <20080806152607.J61277@stanley.csl.cornell.edu> References: <20080728225136.C26546@stanley.csl.cornell.edu> <20080805161615.S57426@stanley.csl.cornell.edu> <761ea48b0808051336o120c3e9j286d9523a693f98f@mail.gmail.com> <20080805223132.C58183@stanley.csl.cornell.edu> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="0-177192967-1218051071=:61277" Subject: [Qemu-devel] one more SPARC issue 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-177192967-1218051071=:61277 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed I found one last SPARC issue, this time with the falign() function. This one was a pain to track down because gdb won't let you show the %gsr register, or any of the floating point registers above %f32. The falign code does this: tmp = (*((uint64_t *)&DT0)) << ((env->gsr & 7) * 8); tmp |= (*((uint64_t *)&DT1)) >> (64 - (env->gsr & 7) * 8); But in the case where %gsr is zero, the second case turns into a shift left of 64, which on many architectures turns into a no-op (rather than clearning the result to zero). So in this case, the output of the falign was rs1 *or'd* with rs2, rather than just plain rs1. I've included a patch below that fixes things for me, and I've also attached a test case that shows the bug. With this, I can finally run the spec 2006 bzip2 benchmark to completion under sparc32plus-linux-user Vince --- op_helper.c.orig 2008-07-29 22:38:34.000000000 -0400 +++ op_helper.c 2008-08-06 15:24:51.000000000 -0400 @@ -234,7 +234,12 @@ uint64_t tmp; tmp = (*((uint64_t *)&DT0)) << ((env->gsr & 7) * 8); - tmp |= (*((uint64_t *)&DT1)) >> (64 - (env->gsr & 7) * 8); + + /* on many architectures a shift of 64 does nothing */ + if ( (env->gsr & 7) !=0) { + tmp |= (*((uint64_t *)&DT1)) >> (64 - (env->gsr & 7) * 8); + } + *((uint64_t *)&DT0) = tmp; } --0-177192967-1218051071=:61277 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=falign_test.s Content-Transfer-Encoding: BASE64 Content-ID: <20080806153111.C61277@stanley.csl.cornell.edu> Content-Description: Content-Disposition: attachment; filename=falign_test.s ISBjb21waWxlIHdpdGgNCiEgYXMgLXhhcmNoPXY4cGx1c2EgLW8gZmFsaWdu X3Rlc3QubyBmYWxpZ25fdGVzdC5zIDsgDQohIGxkIC1vIGZhbGlnbl90ZXN0 IGZhbGlnbl90ZXN0Lm8NCg0KISAgICAgKyBTeXNjYWxscyBoYXZlIG51bWJl ciBpbiAlZzEsIG9wdGlvbnMgaW4gJW8wLCVvMSwuLi4NCiEJUmVzdWx0IHJl dHVybmVkIGluICVvMA0KIQlMaW51eCBzeXNjYWxsIGlzIGNhbGxlZCBieSAi dGEgMHgxMCINCg0KLmVxdSBTWVNDQUxMX0VYSVQsMQkNCi5lcXUgU1lTQ0FM TF9XUklURSw0DQoNCi5lcXUgU1RET1VULDENCg0KCS5nbG9ibCBfc3RhcnQN Cl9zdGFydDoNCg0KDQohICANCiEgcHJpbnQgdGhlIHNvdXJjZSENCiENCg0K ICAgICAgIHNldAlzb3VyY2UsJW8xDQogICAgICAgY2FsbAl3cml0ZV9zdGRv dXQNCiAgICAgICBub3ANCg0KIQ0KISBjb3B5IHRoZSBzdHJpbmcNCiENCg0K ICAgICAgc2V0CXNvdXJjZSwlbzEgICAgICANCiAgICAgIHNldAlkZXN0aW5h dGlvbiwlbzANCg0KDQogICAgICBhbGlnbmFkZHIgICVvMSwgJWcwLCAlbzMN CiANCiAgICAgIG1lbWJhciAgI1N0b3JlU3RvcmV8I0xvYWRTdG9yZXwjU3Rv cmVMb2FkDQogICAgICB3ciAgJWcwLCAweGYwLCAlYXNpCQkgICAgICAgCQkh IHNldCBibG9jay1jb3B5IGFzaQ0KICAgICAgbm9wDQogICAgICANCiAgICAg IGxkZGEgIFsgJW8xIF0gJWFzaSwgJWYwDQogICAgICBub3ANCiAgICAgIA0K ICAgICAgZmFsaWduZGF0YSAgJWYwLCAlZjIsICVmMTYNCiAgICAgIGZhbGln bmRhdGEgICVmMiwgJWY0LCAlZjE4DQogICAgICBmYWxpZ25kYXRhICAlZjQs ICVmNiwgJWYyMA0KICAgICAgZmFsaWduZGF0YSAgJWY2LCAlZjgsICVmMjIN CiAgICAgIGZhbGlnbmRhdGEgICVmOCwgJWYxMCwgJWYyNA0KICAgICAgZmFs aWduZGF0YSAgJWYxMCwgJWYxMiwgJWYyNg0KICAgICAgZmFsaWduZGF0YSAg JWYxMiwgJWYxNCwgJWYyOA0KICAgICAgZmFsaWduZGF0YSAgJWYxNCwgJWYx NiwgJWYzMA0KYWZ0ZXI6ICAgICAgDQogICAgICBzdGRhICAlZjE2LCBbICVv MCBdICVhc2kNCg0KICAgICAgbm9wDQogICAgICBub3ANCiAgICAgICANCiAg ICAgIA0KDQohDQohIHByaW50IHRoZSBjb3B5DQohDQogICAgICAgDQogICAg ICBzZXQJZGVzdGluYXRpb24sJW8xDQogICAgICBjYWxsCXdyaXRlX3N0ZG91 dA0KICAgICAgbm9wDQoNCg0KICAgICAgYmEgCWV4aXQNCiAgICAgIG5vcA0K DQoNCgkjPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCgkjIFdS SVRFX1NURE9VVA0KCSM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQ0KCSMgJW8xIGhhcyBzdHJpbmcNCg0Kd3JpdGVfc3Rkb3V0Og0KDQoJc2V0 CVNZU0NBTExfV1JJVEUsJWcxCSEgV3JpdGUgc3lzY2FsbCBpbiAlZzENCglz ZXQJU1RET1VULCVvMAkJISAxIGluICVvMCAoc3Rkb3V0KQ0KCXNldAkwLCVv MgkJCSEgMCAoY291bnQpIGluICVvMg0KDQpzdHJfbG9vcDE6DQoJbGR1Yglb JW8xKyVvMl0sJWwwCQkhIGxvYWQgYnl0ZQ0KCWNtcAklbDAsJWcwCQkJISBj b21wYXJlIGFnYWluc3QgemVybw0KCWJueglzdHJfbG9vcDEJCSEgaWYgbm90 IG51bCwgcmVwZWF0DQoJIyBCUkFOQ0ggREVMQVkgU0xPVA0KCWluYwklbzIJ CQkhIGluY3JlbWVudCBjb3VudA0KDQoJZGVjCSVvMgkJCSEgY29ycmVjdCBj b3VudAkNCgl0YQkweDEwCQkJISBydW4gdGhlIHN5c2NhbGwNCglyZXRsCQkJ CSEgcmV0dXJuDQoJbm9wDQoNCmV4aXQ6CQkNCiAgICAgICAgbW92CTAsJW8w CQkJISBleGl0IHZhbHVlDQogICAgICAgIG1vdglTWVNDQUxMX0VYSVQsJWcx ICAgICAgICAhIHB1dCB0aGUgZXhpdCBzeXNjYWxsIG51bWJlciBpbiBnMQ0K ICAgICAgICB0YSAgICAgIDB4MTAJCQkhIGFuZCBleGl0DQoNCg0KDQoNCiE9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi5kYXRhDQohPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09DQoNCi5iYWxpZ24gNjQgICAgIShu ZWVkcyB0byBiZSBvbiA2NC1ieXRlIGJvdW5kYXJ5KQ0KDQogICAgICAgICAg ICAgICEgICAgICAgICAgIDEgICAgICAgICAyICAgICAgICAgMyAgICAgICAg IDQNCiAgICAgICAgICAgICAgISAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0 NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4DQpzb3VyY2U6IC5hc2NpaSAiVGhl IHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciAiDQogICAgICAgIC5hc2Np aSAgInRoZSBsYXp5IGRvZyEgTmVlZCBtb3JlIGZpbGwhXG5cMCINCg0KLmxj b21tIGRlc3RpbmF0aW9uLDY0DQo= --0-177192967-1218051071=:61277 Content-Type: APPLICATION/octet-stream; name=falign_test Content-Transfer-Encoding: BASE64 Content-ID: <20080806153111.T61277@stanley.csl.cornell.edu> Content-Description: Content-Disposition: attachment; filename=falign_test f0VMRgECAQAAAAAAAAAAAAACABIAAAABAAEAdAAAADQAAAGsAAADAAA0ACAA AgAoAAcABAAAAAEAAAAAAAEAAAABAAAAAAEoAAABKAAAAAUAAQAAAAAAAQAA AUAAAgFAAAIBQAAAAEAAAACAAAAABgABAAATAACAkhJhQEAAAB0BAAAAEwAA gJISYUARAACAkBIhgJeyQwCBQ+AOh4Ag8AEAAADBmmAAAQAAAKGwCQKlsIkE qbEJBq2xiQixsgkKtbKJDLmzCQ69s4kQ4bogAAEAAAABAAAAEwAAgJISYYBA AAAEAQAAABCAAA0BAAAAghAgBJAQIAGUECAA4ApACoCkAAASv//+lAKgAZQi oAGR0CAQgcPgCAEAAACQECAAghAgAZHQIBAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAABUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5 IGRvZyEgTmVlZCBtb3JlIGZpbGwhCgAAAC5zeW10YWIALnN0cnRhYgAuc2hz dHJ0YWIALnRleHQALmRhdGEALmJzcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAGwAAAAEAAAAGAAEAdAAAAHQAAAC0AAAA AAAAAAAAAAABAAAAAAAAACEAAAABAAAAAwACAUAAAAFAAAAAQAAAAAAAAAAA AAAAQAAAAAAAAAAnAAAACAAAAAMAAgGAAAABgAAAAEAAAAAAAAAAAAAAAAgA AAAAAAAAEQAAAAMAAAAAAAAAAAAAAYAAAAAsAAAAAAAAAAAAAAABAAAAAAAA AAEAAAACAAAAAAAAAAAAAALEAAABEAAAAAYAAAANAAAABAAAABAAAAAJAAAA AwAAAAAAAAAAAAAD1AAAAHcAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAQB0AAAAAAMAAAEAAAAAAAIBQAAAAAADAAACAAAAAAACAYAA AAAAAwAAAwAAAAEAAAABAAAAAAAA//EAAAAOAAAABAAAAAAAAP/xAAAAHAAA AAEAAAAAAAD/8QAAACMAAgFAAAAAAAAAAAIAAAAqAAEA8AAAAAAAAAABAAAA NwACAYAAAABAAQAAAwAAAEMAAQDMAAAAAAAAAAEAAABJAAEBHAAAAAAAAAAB AAAATgABAPwAAAAAAAAAAQAAAFgAAQB0AAAAABAAAAEAAABfAAIBgAAAAAAQ AP/xAAAAawACAYAAAAAAEAD/8QAAAHIAAgHAAAAAABAA//EAU1lTQ0FMTF9F WElUAFNZU0NBTExfV1JJVEUAU1RET1VUAHNvdXJjZQB3cml0ZV9zdGRvdXQA ZGVzdGluYXRpb24AYWZ0ZXIAZXhpdABzdHJfbG9vcDEAX3N0YXJ0AF9fYnNz X3N0YXJ0AF9lZGF0YQBfZW5kAA== --0-177192967-1218051071=:61277--