From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KYp72-0005Do-FX for qemu-devel@nongnu.org; Thu, 28 Aug 2008 17:33:04 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KYp6z-00057K-IV for qemu-devel@nongnu.org; Thu, 28 Aug 2008 17:33:03 -0400 Received: from [199.232.76.173] (port=44042 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KYp6y-00055x-4H for qemu-devel@nongnu.org; Thu, 28 Aug 2008 17:33:00 -0400 Received: from csl.cornell.edu ([128.84.224.10]:3718 helo=vlsi.csl.cornell.edu) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KYp6w-0001aB-OV for qemu-devel@nongnu.org; Thu, 28 Aug 2008 17:32:59 -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 m7SLWi3U036352 for ; Thu, 28 Aug 2008 17:32:49 -0400 (EDT) Date: Thu, 28 Aug 2008 17:32:44 -0400 (EDT) From: Vince Weaver Message-ID: <20080828172114.V64752@stanley.csl.cornell.edu> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="0-2032838324-1219959164=:64752" Subject: [Qemu-devel] sparc 64-bit fsr 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-2032838324-1219959164=:64752 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Hello on SPARC v9 the floating point status register (fsr) was extended to 64-bits, and 3 additional condtion codes were added in the upper 32-bits (fcc1-fcc3). The current qemu code doesn't handle this properly, using 32-bit shifts to access the condition codes which doesn't work unless you are only using fcc0. Attached is code that shows the problem. I've attempted to fix this myself but I am having trouble trying to get the gen_mov_reg_FCC0() and gen_mov_reg_FCC1() functions in target-sparc/translate.c to use 64-bit shifts. In addition the floating point compare instructions need to be fixed. Below is my attempt to make them work properly. Vince --- op_helper.c.orig 2008-08-28 17:25:22.000000000 -0400 +++ op_helper.c 2008-08-28 17:27:42.000000000 -0400 @@ -746,10 +746,10 @@ { \ target_ulong new_fsr; \ \ - env->fsr &= ~((FSR_FCC1 | FSR_FCC0) << FS); \ + env->fsr &= ~((target_ulong) (FSR_FCC1 | FSR_FCC0) << FS); \ switch (glue(size, _compare) (reg1, reg2, &env->fp_status)) { \ case float_relation_unordered: \ - new_fsr = (FSR_FCC1 | FSR_FCC0) << FS; \ + new_fsr = (target_ulong)(FSR_FCC1 | FSR_FCC0) << FS; \ if ((env->fsr & FSR_NVM) || TRAP) { \ env->fsr |= new_fsr; \ env->fsr |= FSR_NVC; \ @@ -760,10 +760,10 @@ } \ break; \ case float_relation_less: \ - new_fsr = FSR_FCC0 << FS; \ + new_fsr = (target_ulong)FSR_FCC0 << FS; \ break; \ case float_relation_greater: \ - new_fsr = FSR_FCC1 << FS; \ + new_fsr = (target_ulong)FSR_FCC1 << FS; \ break; \ default: \ new_fsr = 0; \ --0-2032838324-1219959164=:64752 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=fcc2_test.s Content-Transfer-Encoding: BASE64 Content-ID: <20080828173244.P64752@stanley.csl.cornell.edu> Content-Description: Content-Disposition: attachment; filename=fcc2_test.s ISBDb21waWxlIHdpdGg6IA0KISBhcyAtQXY4cGx1cyAtbyBmY2MyX3Rlc3Qu byBmY2MyX3Rlc3QucyA7IGxkIC1vIGZjYzJfdGVzdCBmY2MyX3Rlc3Qubw0K DQohICAgICArIFN5c2NhbGxzIGhhdmUgbnVtYmVyIGluICVnMSwgb3B0aW9u cyBpbiAlbzAsJW8xLC4uLg0KIQlSZXN1bHQgcmV0dXJuZWQgaW4gJW8wDQoh CUxpbnV4IHN5c2NhbGwgaXMgY2FsbGVkIGJ5ICJ0YSAweDEwIg0KDQouZXF1 IFNZU0NBTExfRVhJVCwxCQ0KLmVxdSBTWVNDQUxMX1dSSVRFLDQNCg0KLmVx dSBTVERPVVQsMQ0KDQoJLmdsb2JsIF9zdGFydA0KX3N0YXJ0Og0KICAgICAg IHNldAlmbG9hdDEsJWcxDQogICAgICAgbGRkCVslZzFdLCVmNg0KICAgICAg IHNldAlmbG9hdDIsJWcxDQogICAgICAgbGRkCVslZzFdLCVmOA0KDQogICAg ICAgZmNtcGVkICAlZmNjMiwgJWY2LCAlZjgNCg0KICAgICAgIHNldCAgICAg ZmxvYXQzLCVnMQ0KICAgICAgIHN0eCAgICAgJWZzcixbJWcxXQ0KICAgICAg IGxkZCAgICAgWyVnMV0sJWcyIA0KbG9hZGVkOiAgICAgICANCiAgICAgICBm YnVsZSxwbiAgICVmY2MyLCBsZXNzX2VxdWFsDQogICAgICAgDQogICAgICAg bm9wDQogICAgICAgYmEJZ3JlYXRlcg0KICAgICAgIG5vcA0KICAgICAgIA0K bGVzc19lcXVhbDoNCiAgICAgICBzZXQJbGVzc2VxdWFsX3N0cmluZywlbzEN CiAgICAgICBiYQl3cml0ZV9zdGRvdXQNCiAgICAgICBub3ANCg0KZ3JlYXRl cjoNCiAgICAgICBzZXQJZ3JlYXRlcl9zdHJpbmcsJW8xDQogICAgICAgDQoJ Iz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoJIyBXUklURV9T VERPVVQNCgkjPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCgkj ICVvMSBoYXMgc3RyaW5nDQoNCndyaXRlX3N0ZG91dDoNCg0KCXNldAlTWVND QUxMX1dSSVRFLCVnMQkhIFdyaXRlIHN5c2NhbGwgaW4gJWcxDQoJc2V0CVNU RE9VVCwlbzAJCSEgMSBpbiAlbzAgKHN0ZG91dCkNCglzZXQJMCwlbzIJCQkh IDAgKGNvdW50KSBpbiAlbzINCg0Kc3RyX2xvb3AxOg0KCWxkdWIJWyVvMSsl bzJdLCVsMAkJISBsb2FkIGJ5dGUNCgljbXAJJWwwLCVnMAkJCSEgY29tcGFy ZSBhZ2FpbnN0IHplcm8NCglibnoJc3RyX2xvb3AxCQkhIGlmIG5vdCBudWws IHJlcGVhdA0KCSMgQlJBTkNIIERFTEFZIFNMT1QNCglpbmMJJW8yCQkJISBp bmNyZW1lbnQgY291bnQNCg0KCWRlYwklbzIJCQkhIGNvcnJlY3QgY291bnQJ DQoJdGEJMHgxMAkJCSEgcnVuIHRoZSBzeXNjYWxsDQoNCmV4aXQ6CQkNCiAg ICAgICAgbW92CTAsJW8wCQkJISBleGl0IHZhbHVlDQogICAgICAgIG1vdglT WVNDQUxMX0VYSVQsJWcxICAgICAgICAhIHB1dCB0aGUgZXhpdCBzeXNjYWxs IG51bWJlciBpbiBnMQ0KICAgICAgICB0YSAgICAgIDB4MTAJCQkhIGFuZCBl eGl0DQoNCg0KDQoNCiE9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N Ci5kYXRhDQohPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoNCmRh dGFfcmVnaW9uOgkJDQpmbG9hdDE6IC5kb3VibGUgMC4wMjUxMzI3NDENCmZs b2F0MjogLmRvdWJsZSAwLjANCmZsb2F0MzoJLmRvdWJsZSAwLjANCg0KZ3Jl YXRlcl9zdHJpbmc6CQkuYXNjaWkgICJHcmVhdGVyXG5cMCINCmxlc3NlcXVh bF9zdHJpbmc6CS5hc2NpaSAgIkxlc3MgRXF1YWxcblwwIg0K --0-2032838324-1219959164=:64752 Content-Type: APPLICATION/octet-stream; name=fcc2_test Content-Transfer-Encoding: BASE64 Content-ID: <20080828173244.A64752@stanley.csl.cornell.edu> Content-Description: Content-Disposition: attachment; filename=fcc2_test f0VMRgECAQAAAAAAAAAAAAACABIAAAABAAEAdAAAADQAAAFMAAABAAA0ACAA AgAoAAYAAwAAAAEAAAAAAAEAAAABAAAAAAD4AAAA+AAAAAUAAQAAAAAAAQAA APgAAgD4AAIA+AAAAC0AAAAtAAAABgABAAADAACAghBg+M0YQAADAACAghBh ANEYQACFqYrIAwAAgIIQYQjDKEAAxBhAAB1gAAQBAAAAEIAABgEAAAATAACA khJhGRCAAAQBAAAAEwAAgJISYRCCECAEkBAgAZQQIADgCkAKgKQAABK///6U AqABlCKgAZHQIBCQECAAghAgAZHQIBA/mbxlsp2HzAAAAAAAAAAAAAAAAAAA AABHcmVhdGVyCgBMZXNzIEVxdWFsCgAALnN5bXRhYgAuc3RydGFiAC5zaHN0 cnRhYgAudGV4dAAuZGF0YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAGwAAAAEAAAAGAAEAdAAAAHQAAACEAAAAAAAAAAAA AAABAAAAAAAAACEAAAABAAAAAwACAPgAAAD4AAAALQAAAAAAAAAAAAAAAQAA AAAAAAARAAAAAwAAAAAAAAAAAAABJQAAACcAAAAAAAAAAAAAAAEAAAAAAAAA AQAAAAIAAAAAAAAAAAAAAjwAAAFgAAAABQAAABIAAAAEAAAAEAAAAAkAAAAD AAAAAAAAAAAAAAOcAAAAuQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAABAHQAAAAAAwAAAQAAAAAAAgD4AAAAAAMAAAIAAAABAAAAAQAA AAAAAP/xAAAADgAAAAQAAAAAAAD/8QAAABwAAAABAAAAAAAA//EAAAAjAAIA +AAAAAAAAAACAAAAKgACAQAAAAAAAAAAAgAAADEAAgEIAAAAAAAAAAIAAAA4 AAEAoAAAAAAAAAABAAAAPwABALAAAAAAAAAAAQAAAEoAAQDAAAAAAAAAAAEA AABSAAIBGQAAAAAAAAACAAAAYwABAMgAAAAAAAAAAQAAAHAAAgEQAAAAAAAA AAIAAAB/AAEA1AAAAAAAAAABAAAAiQABAOwAAAAAAAAAAQAAAI4AAgD4AAAA AAAAAAIAAACaAAEAdAAAAAAQAAABAAAAoQACASUAAAAAEAD/8QAAAK0AAgEl AAAAABAA//EAAAC0AAIBKAAAAAAQAP/xAFNZU0NBTExfRVhJVABTWVNDQUxM X1dSSVRFAFNURE9VVABmbG9hdDEAZmxvYXQyAGZsb2F0MwBsb2FkZWQAbGVz c19lcXVhbABncmVhdGVyAGxlc3NlcXVhbF9zdHJpbmcAd3JpdGVfc3Rkb3V0 AGdyZWF0ZXJfc3RyaW5nAHN0cl9sb29wMQBleGl0AGRhdGFfcmVnaW9uAF9z dGFydABfX2Jzc19zdGFydABfZWRhdGEAX2VuZAA= --0-2032838324-1219959164=:64752--