From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KiG7B-0004qQ-LO for qemu-devel@nongnu.org; Tue, 23 Sep 2008 18:12:13 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KiG78-0004no-T7 for qemu-devel@nongnu.org; Tue, 23 Sep 2008 18:12:12 -0400 Received: from [199.232.76.173] (port=57994 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KiG78-0004nf-Ei for qemu-devel@nongnu.org; Tue, 23 Sep 2008 18:12:10 -0400 Received: from csl.cornell.edu ([128.84.224.10]:2010 helo=vlsi.csl.cornell.edu) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KiG78-0003SU-7G for qemu-devel@nongnu.org; Tue, 23 Sep 2008 18:12:10 -0400 Date: Tue, 23 Sep 2008 18:08:42 -0400 (EDT) From: Vince Weaver Subject: Re: [Qemu-devel] [5283] Use the new concat_tl_i64 op for std and stda In-Reply-To: <200809232259.24692.paul@codesourcery.com> Message-ID: <20080923180629.I10486@stanley.csl.cornell.edu> References: <20080923174506.X10311@stanley.csl.cornell.edu> <200809232259.24692.paul@codesourcery.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paul Brook Cc: qemu-devel@nongnu.org On Tue, 23 Sep 2008, Paul Brook wrote: > On Tuesday 23 September 2008, Vince Weaver wrote: >> Hello >> >> the aforementioned patch broke the spec2k crafty benchmark on >> sparc32plus-linux-user (I'm running on x86_64 but I don't think it makes a >> difference). > > Are you sure? I've double checked the patch and I still think it is correct. Yes. The program definitely works if I revert the patch, but fails if I re-apply it. >> The new code generates: >> movi_i64 tmp12,$0x20 >> shl_i64 tmp10,loc4,tmp12 >> or_i64 tmp2,tmp0,tmp10 >> qemu_st64 tmp2,loc5,$0x0 > > The extension should be immediately before the code you quote here. Nope, in both cases the preceeding code is identical: OP after la: movi_i64 tmp8,$0x13bc00 mov_i64 g1,tmp8 movi_i64 tmp10,$0x268 add_i64 loc5,g1,tmp10 ld_i64 loc4,regwptr,$0x0 movi_i64 pc,$0x27e78 movi_i64 npc,$0x27e7c movi_i64 tmp10,$0xffffffff and_i64 loc5,loc5,tmp10 movi_i32 tmp11,$0x7 movi_i64 tmp10,$helper_check_align call tmp10,$0x0,$0,loc5,tmp11 ld_i64 tmp0,regwptr,$0x8 The code in question is: IN: InitializeMasks 0x0000000000027e74: sethi %hi(0x13bc00), %g1 0x0000000000027e78: std %o0, [ %g1 + 0x268 ] ! 0x13be68 0x0000000000027e7c: call 0x22eac 0x0000000000027e80: mov 3, %o0 I can create a small assembly language program that duplicates the problem if it would help debugging it. Vince