From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MYX9k-0001Ik-Gl for qemu-devel@nongnu.org; Tue, 04 Aug 2009 23:27:12 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MYX9f-0001IR-2E for qemu-devel@nongnu.org; Tue, 04 Aug 2009 23:27:11 -0400 Received: from [199.232.76.173] (port=33074 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MYX9e-0001IO-T4 for qemu-devel@nongnu.org; Tue, 04 Aug 2009 23:27:06 -0400 Received: from mx20.gnu.org ([199.232.41.8]:31731) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1MYX9e-0002DI-Dl for qemu-devel@nongnu.org; Tue, 04 Aug 2009 23:27:06 -0400 Received: from csl.cornell.edu ([128.84.224.10] helo=vlsi.csl.cornell.edu) by mx20.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MYX9X-00079V-Tk for qemu-devel@nongnu.org; Tue, 04 Aug 2009 23:27:00 -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 n753Qhd2070745 for ; Tue, 4 Aug 2009 23:26:48 -0400 (EDT) Date: Tue, 4 Aug 2009 23:26:43 -0400 (EDT) From: Vince Weaver Message-ID: <20090804231934.G93384@stanley.csl.cornell.edu> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="0-752646438-1249442803=:93384" Subject: [Qemu-devel] [patch] Fix extlh instruction on Alpha 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-752646438-1249442803=:93384 Content-Type: TEXT/PLAIN; charset=US-ASCII Hello The extlh instruction on Alpha currently doesn't work properly. It's a combination of a cut/paste bug (16 where it should be 32) as well as a "shift by 64" bug. Below is a patch that fixes the problem, and attached is a test case that exhibits the bug. The program should print a 4-char wide sliding window across the test string; without the patch this fails. Vince Signed-off-by: Vince Weaver diff --git a/target-alpha/translate.c b/target-alpha/translate.c index 1fc5119..2a681b0 100644 --- a/target-alpha/translate.c +++ b/target-alpha/translate.c @@ -526,14 +526,24 @@ static always_inline void gen_ext_h(void (*tcg_gen_ext_i64)(TCGv t0, TCGv t1), else tcg_gen_mov_i64(cpu_ir[rc], cpu_ir[ra]); } else { + int l1; TCGv tmp1, tmp2; tmp1 = tcg_temp_new(); + l1 = gen_new_label(); + tcg_gen_andi_i64(tmp1, cpu_ir[rb], 7); tcg_gen_shli_i64(tmp1, tmp1, 3); + + tcg_gen_mov_i64(cpu_ir[rc], cpu_ir[ra]); + tcg_gen_brcondi_i64(TCG_COND_EQ, tmp1, 0, l1); + tmp2 = tcg_const_i64(64); tcg_gen_sub_i64(tmp1, tmp2, tmp1); tcg_temp_free(tmp2); tcg_gen_shl_i64(cpu_ir[rc], cpu_ir[ra], tmp1); + + gen_set_label(l1); + tcg_temp_free(tmp1); } if (tcg_gen_ext_i64) @@ -1320,7 +1330,7 @@ static always_inline int translate_one (DisasContext *ctx, uint32_t insn) break; case 0x6A: /* EXTLH */ - gen_ext_h(&tcg_gen_ext16u_i64, ra, rb, rc, islit, lit); + gen_ext_h(&tcg_gen_ext32u_i64, ra, rb, rc, islit, lit); break; case 0x72: /* MSKQH */ --0-752646438-1249442803=:93384 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=uldl.s Content-Transfer-Encoding: BASE64 Content-ID: <20090804232643.N93384@stanley.csl.cornell.edu> Content-Description: Content-Disposition: attachment; filename=uldl.s IyB1bGRsLnMgYnkgVmluY2UgV2VhdmVyDQojIFRoaXMgc2hvd3MgYSBidWcg d2l0aCBRZW11IGluIGhhbmRsaW5nIG9mIHRoZSBleHRsaCBpbnN0cnVjdGlv bg0KIyAgYXNzZW1ibGUgd2l0aCAgICAgImFzIC1vIHVsZGwubyB1bGRsLnMi DQojICBsaW5rIHdpdGggICAgICAgICAibGQgLW8gdWxkbCB1bGRsLm8iDQoN Cg0KDQojIHN5c2NhbGwgbnVtYmVycw0KDQouZXF1IFNZU0NBTExfRVhJVCwx CQ0KLmVxdSBTWVNDQUxMX1dSSVRFLDQNCgkJDQouZXF1IFNURElOLDANCi5l cXUgU1RET1VULDENCi5lcXUgU1RERVJSLDIJDQoJDQoJDQoJLmdsb2JsIF9z dGFydA0KX3N0YXJ0Og0KCQ0KCWJyICAgICAgJDI3LDAgICAgICAgICAgICMg ZmFrZSBicmFuY2gsIHRvIGdyYWIgdGhlIGxvY2F0aW9uDQoJICAgICAgICAg ICAgICAgICAgICAgICAgIyBvZiBvdXIgZW50cnkgcG9pbnQNCglsZGdwICAg ICRncCwwKCQyNykgICAgICAjIGxvYWQgdGhlIEdQIHByb3BlciBmb3Igb3Vy IGVudHJ5IHBvaW50DQoJCQkJIyB0aGlzIGRvZXMgYXV0b21hZ2ljIHN0dWZm Li4uDQoJCQkJIyBncCBpcyB1c2VkIGZvciA2NC1iaXQganVtcHMgYW5kIGNv bnN0YW50cw0KCQkJCSMgc28gaWYgeW91IHVzZSAibGEiIGFuZCB0aGUgbGlr ZSBpdCB3aWxsDQoJCQkJIyBsb2FkIGZyb20gZ3AgZm9yIHlvdS4gDQoJDQoN CglsZGEgICAgICQxNyx0aXRsZQkgICMgbG9hZCB0aXRsZQ0KCWJyCSQyNix3 cml0ZV9zdGRvdXQgICMgcHJpbnQgaXQNCgkNCglsZGEJJDE3LHRlc3Rfc3Ry aW5nCSAgIyBsb2FkIHRlc3Qgc3RyaW5nDQoJYnIJJDI2LHdyaXRlX3N0ZG91 dCAgIyBwcmludCBpdA0KDQoJbGRhCSQxMyxmb3VyX2J5dGVzCSAgIyBwb2lu dCAkMTMgdG8gb3VyIDMyLWJpdCB3aWRlDQoJCQkJICAjIHRlc3QgbG9jYXRp b24NCgkJCQkgIA0KCWxkYQkkMTEsdGVzdF9zdHJpbmcJICAjIHBvaW50ICQx MSB0byBiZWdpbm5pbmcgb2YgdGVzdCBzdHJpbmcNCglhZGRxCSQxMSwyMCwk MTQJICAjIHJlcGVhdCAyMCB0aW1lcw0KCQ0KbG9hZF9sb29wOgkNCgkjIHVs ZGwJJDEyLDAoJDExKQkgICMgbG9hZCAzMi1iaXRzIGZyb20gaXQNCgkjIFRo aXMgZXhwYW5kcyB0byB0aGUgZm9sbG93aW5nDQoNCi5zZXQgbm9hdA0KCWxk YSAgICAgJDI4LDAoJDExKQ0KCWxkcV91ICAgJDIzLDAoJDI4KQ0KCWxkcV91 ICAgJDI0LDMoJDI4KQ0KCWV4dGxsICAgJDIzLCQyOCwkMjMJDQoJZXh0bGgg ICAkMjQsJDI4LCQyNAkNCglvciAgICAgICQyMywkMjQsJDEyDQoJc2V4dGwg ICAkMTIsJDEyDQouc2V0IGF0DQoNCglzdGwJJDEyLDAoJDEzKQkgICMgc3Rv cmUgdG8gNC1ieXRlIGxvY2F0aW9uDQoJbGRhCSQxNyxmb3VyX2J5dGVzCSAg IyBwb2ludCB0byBpdA0KCWJyCSQyNix3cml0ZV9zdGRvdXQgICMgcHJpbnQg NCBjaGFycw0KDQoJYWRkcQkkMTEsMSwkMTENCgkNCgljbXBlcQkkMTEsJDE0 LCQxDQoJYmVxCSQxLGxvYWRfbG9vcA0KDQoJIz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09DQoJIyBFeGl0DQoJIz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09DQpleGl0OgkJDQogICAgICAgIGNscgkkMTYJCQkj IDAgZXhpdCB2YWx1ZQ0KICAgICAgICBtb3YJU1lTQ0FMTF9FWElULCQwCQkj IHB1dCB0aGUgZXhpdCBzeXNjYWxsIG51bWJlciBpbiB2MA0KICAgICAgICBj YWxsc3lzCQkJCSMgYW5kIGV4aXQNCgkNCgkjPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0NCgkjIFdSSVRFX1NURE9VVA0KCSM9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQ0KCSMgJDE3IGhhcyBzdHJpbmcNCgkj ICQxIGlzIHRyYXNoZWQNCgkNCndyaXRlX3N0ZG91dDoJDQoJbGRpbAkkMCxT WVNDQUxMX1dSSVRFCSMgV3JpdGUgc3lzY2FsbCBpbiAkMA0KCWxkaWwJJDE2 LFNURE9VVAkJIyAxIGluICQxNiAoc3Rkb3V0KQ0KCWNscgkkMTgJCQkjIDAg KGNvdW50KSBpbiAkMTgNCgkNCnN0cl9sb29wMToNCglhZGRxCSQxNywkMTgs JDEJCSMgb2Zmc2V0IGluICQxDQoJbGRidSAgICAkMSwwKCQxKQkJIyBsb2Fk IGJ5dGUNCglhZGRxCSQxOCwxLCQxOAkJIyBpbmNyZW1lbnQgcG9pbnRlcg0K CWJuZQkkMSxzdHJfbG9vcDEJCSMgaWYgbm90IG51bCwgcmVwZWF0DQoJDQoJ c3VicQkkMTgsMSwkMTgJCSMgY29ycmVjdCBjb3VudA0KCWNhbGxzeXMJCQkJ IyBNYWtlIHN5c2NhbGwNCgkNCglyZXQJJDI2CQkJIyByZXR1cm4NCgkJCQ0K LmRhdGENCg0KLmFsaWduIDMNCg0KZm91cl9ieXRlczogLmFzY2lpICJSUExD XG5cMCINCi5hbGlnbiAzDQplaWdodF9ieXRlczoJLmFzY2lpICJSRVBMQUNF IVxuXDAiDQoNCnRpdGxlOgkuYXNjaWkgIlVMREwgVGVzdFxuXDAiDQpsaW5l ZmVlZDogLmFzY2lpICJcblwwIg0KLmFsaWduIDMNCnRlc3Rfc3RyaW5nOiAg LmFzY2lpICJUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBlZCBvdmVyIHRoZSBs YXp5IGRvZ1xuXDAiDQo= --0-752646438-1249442803=:93384 Content-Type: APPLICATION/octet-stream; name=uldl Content-Transfer-Encoding: BASE64 Content-ID: <20090804232643.U93384@stanley.csl.cornell.edu> Content-Description: Content-Disposition: attachment; filename=uldl f0VMRgIBAQAAAAAAAAAAAAIAJpABAAAAsAAAIAEAAABAAAAAAAAAAOABAAAA AAAAAAAAAEAAOAACAEAABwAEAAEAAAAFAAAAAAAAAAAAAAAAAAAgAQAAAAAA ACABAAAASAEAAAAAAABIAQAAAAAAAAAAAQAAAAAAAQAAAAYAAABIAQAAAAAA AEgBASABAAAASAEBIAEAAABoAAAAAAAAAGgAAAAAAAAAAAABAAAAAAAAAGDD AgC7J+SAvSMQgD2mFQBAwwiAPaYTAEDDAIC9pQiAfaUOlGJBAACLIwAA/C4D ABwv1wT8SlgNHEsMBPhGDADsQwAAjbEAgD2mBgBAwws0YEGhBW5B8/8/5BAE /0cANOBHgwAAAAQAHyABAB8iEgT/RwEEMkIAAIEjAAA8LMEAPEgSNEBC+v8/ 9DI1QEKDAAAAAYBaa1JQTEMKAAAAUkVQTEFDRSEKAFVMREwgVGVzdAoACgAA VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cK AAAASAEBIAEAAABoAQEgAQAAAFoBASABAAAAAC5zeW10YWIALnN0cnRhYgAu c2hzdHJ0YWIALnRleHQALmRhdGEALmdvdAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAABsAAAABAAAABgAAAAAAAACwAAAgAQAAALAAAAAAAAAAmAAAAAAAAAAA AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAhAAAAAQAAAAMAAAAAAAAASAEBIAEA AABIAQAAAAAAAFAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAJwAA AAEAAAADAAAAAAAAAJgBASABAAAAmAEAAAAAAAAYAAAAAAAAAAAAAAAAAAAA CAAAAAAAAAAAAAAAAAAAABEAAAADAAAAAAAAAAAAAAAAAAAAAAAAALABAAAA AAAALAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAAA AAAAAAAAAAAAAAAAAACgAwAAAAAAABACAAAAAAAABgAAABIAAAAIAAAAAAAA ABgAAAAAAAAACQAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAsAUAAAAAAACnAAAA AAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAADAAEAsAAAIAEAAAAAAAAAAAAAAAAAAAADAAIASAEBIAEA AAAAAAAAAAAAAAAAAAADAAMAmAEBIAEAAAAAAAAAAAAAAAEAAAAAAPH/AQAA AAAAAAAAAAAAAAAAAA4AAAAAAPH/BAAAAAAAAAAAAAAAAAAAABwAAAAAAPH/ AAAAAAAAAAAAAAAAAAAAACIAAAAAAPH/AQAAAAAAAAAAAAAAAAAAACkAAAAA APH/AgAAAAAAAAAAAAAAAAAAADAAAAAAAAIAWgEBIAEAAAAAAAAAAAAAADYA AAAAAAEAGAEAIAEAAAAAAAAAAAAAAEMAAAAAAAIAaAEBIAEAAAAAAAAAAAAA AE8AAAAAAAIASAEBIAEAAAAAAAAAAAAAAFoAAAAAAAEA2AAAIAEAAAAAAAAA AAAAAGQAAAAAAAEADAEAIAEAAAAAAAAAAAAAAGkAAAAAAAEAJAEAIAEAAAAA AAAAAAAAAHMAAAAAAAIAUAEBIAEAAAAAAAAAAAAAAH8AAAAAAAIAZQEBIAEA AAAAAAAAAAAAAIgAAAAQAAEAsAAAIAEAAAAAAAAAAAAAAI8AAAAQAPH/sAEB IAEAAAAAAAAAAAAAAJsAAAAQAPH/sAEBIAEAAAAAAAAAAAAAAKIAAAAQAPH/ sAEBIAEAAAAAAAAAAAAAAABTWVNDQUxMX0VYSVQAU1lTQ0FMTF9XUklURQBT VERJTgBTVERPVVQAU1RERVJSAHRpdGxlAHdyaXRlX3N0ZG91dAB0ZXN0X3N0 cmluZwBmb3VyX2J5dGVzAGxvYWRfbG9vcABleGl0AHN0cl9sb29wMQBlaWdo dF9ieXRlcwBsaW5lZmVlZABfc3RhcnQAX19ic3Nfc3RhcnQAX2VkYXRhAF9l bmQA --0-752646438-1249442803=:93384--