From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NaztE-00057m-93 for qemu-devel@nongnu.org; Fri, 29 Jan 2010 18:04:36 -0500 Received: from [199.232.76.173] (port=39062 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NaztC-00057I-T5 for qemu-devel@nongnu.org; Fri, 29 Jan 2010 18:04:34 -0500 Received: from Debian-exim by monty-python.gnu.org with spam-scanned (Exim 4.60) (envelope-from ) id 1NaztA-0002T1-Lv for qemu-devel@nongnu.org; Fri, 29 Jan 2010 18:04:34 -0500 Received: from moutng.kundenserver.de ([212.227.17.10]:49633) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Nazt9-0002Sh-Af for qemu-devel@nongnu.org; Fri, 29 Jan 2010 18:04:32 -0500 Message-ID: <4B63697D.4040507@mail.berlios.de> Date: Sat, 30 Jan 2010 00:04:29 +0100 From: Stefan Weil MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH] Porting TCG to alpha platform References: <62332.72612.qm@web15907.mail.cnb.yahoo.com> <4B63153A.6070509@twiddle.net> <20100129213808.GA11999@laped.iglesias.mooo.com> In-Reply-To: <20100129213808.GA11999@laped.iglesias.mooo.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Edgar E. Iglesias" Cc: qemu-devel@nongnu.org Edgar E. Iglesias schrieb: > On Fri, Jan 29, 2010 at 09:04:58AM -0800, Richard Henderson wrote: >> On 01/28/2010 05:55 PM, identifier scorpio wrote: >>> Your code is more skilled and I learn a lot from it, but I haven't yet >>> recognized the key difference between your version and mine. In last >>> mail, you've said that "Mainly, tcg_target_long was used places that >>> could be holding HOST values, which means that the host values would >>> have been truncated to 32 bits.", and I can't fully understand it, may >>> you put it more clearly. >> It was a mis-statement made while tired. Of course tcg_target_long is >> defined to int64_t when TCG_TARGET_REG_BITS == 64, so there was no >> truncation to 32 bits. >> >> Have you tested of any of the other embedded targets? You may be able >> to find the error with one of those easier than finding it emulating >> full-scale Windows. See the images at the bottom of the QEMU download >> page. > > Hi, > > Although I've never hacked on a TCG backend I'd still like to give some > advice. > > >From experience when developing both the CRIS and the MicroBlaze ISA > translators I very much suggest getting something very stable to work > in linux-user before going further. > > I used GCC's C torture tests and OpenSSL's bignum tests to verify the > ports. In particular, OpenSSL's bignum tests seem to excersice lot's of > cornercases. > > If you pass those, you've come a long way. In general it's much easier > to debug a guest testcase (bntest, etc) that fails compared to huge > propretiary blob that fails (windows). > > Just a suggestion, hope it helps. > > Cheers, > Edgar Hi Edgar, that was a good suggestion. bntest raises a segmentation fault (NULL pointer, p == 0, see below) with qemu-x86_64 on a x86_64 host. Regards, Stefan obase=16 ibase=16 test BN_add print "test BN_add\n" Program received signal SIGSEGV, Segmentation fault. tb_alloc_page (tb=0x7ffff3423290, phys_pc=, phys_page2=18446744073709551615) at /home/stefan/src/qemu/repo.or.cz/qemu/ar7/exec.c:1124 1124 tb->page_next[n] = p->first_tb; (gdb) i s #0 tb_alloc_page (tb=0x7ffff3423290, phys_pc=, phys_page2=18446744073709551615) at /home/stefan/src/qemu/repo.or.cz/qemu/ar7/exec.c:1124 #1 tb_link_phys (tb=0x7ffff3423290, phys_pc=, phys_page2=18446744073709551615) at /home/stefan/src/qemu/repo.or.cz/qemu/ar7/exec.c:1214 #2 0x000000006001fd5c in tb_gen_code (env=0x7ffff7f97010, pc=18446744073699066880, cs_base=, flags=, cflags=) at /home/stefan/src/qemu/repo.or.cz/qemu/ar7/exec.c:912 #3 0x000000006002241b in tb_find_slow (env1=) at /home/stefan/src/qemu/repo.or.cz/qemu/ar7/cpu-exec.c:161 #4 tb_find_fast (env1=) at /home/stefan/src/qemu/repo.or.cz/qemu/ar7/cpu-exec.c:182 #5 cpu_x86_exec (env1=) at /home/stefan/src/qemu/repo.or.cz/qemu/ar7/cpu-exec.c:574 #6 0x00000000600064c0 in cpu_loop (env=0x7ffff7f97010) at /home/stefan/src/qemu/repo.or.cz/qemu/ar7/linux-user/main.c:309 #7 0x00000000600076d2 in main (argc=, argv=, envp=) at /home/stefan/src/qemu/repo.or.cz/qemu/ar7/linux-user/main.c:3101