From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Kf8ko-0005ca-0z for qemu-devel@nongnu.org; Mon, 15 Sep 2008 03:44:14 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Kf8kn-0005c8-95 for qemu-devel@nongnu.org; Mon, 15 Sep 2008 03:44:13 -0400 Received: from [199.232.76.173] (port=43088 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Kf8kn-0005c0-0P for qemu-devel@nongnu.org; Mon, 15 Sep 2008 03:44:13 -0400 Received: from mx20.gnu.org ([199.232.41.8]:39138) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1Kf8kn-0007cq-3l for qemu-devel@nongnu.org; Mon, 15 Sep 2008 03:44:13 -0400 Received: from hall.aurel32.net ([91.121.138.14]) by mx20.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Kf8kl-0006cm-3h for qemu-devel@nongnu.org; Mon, 15 Sep 2008 03:44:11 -0400 Received: from volta.aurel32.net ([2002:52e8:2fb:1:21e:8cff:feb0:693b]) by hall.aurel32.net with esmtpsa (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.63) (envelope-from ) id 1Kf8kk-0005li-BX for qemu-devel@nongnu.org; Mon, 15 Sep 2008 09:44:10 +0200 Received: from aurel32 by volta.aurel32.net with local (Exim 4.69) (envelope-from ) id 1Kf8kj-0006CK-JO for qemu-devel@nongnu.org; Mon, 15 Sep 2008 09:44:09 +0200 Date: Mon, 15 Sep 2008 09:44:09 +0200 From: Aurelien Jarno Subject: Re: [Qemu-devel] [RFC][PATCH] qemu sh4 nptl support Message-ID: <20080915074409.GD9801@volta.aurel32.net> References: <48C8284E.8030004@gandalf.sssup.it> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: <48C8284E.8030004@gandalf.sssup.it> 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 On Wed, Sep 10, 2008 at 10:04:30PM +0200, michael wrote: > Hi all, > > I do some change the qemu to support nptl in linux-user mode for the sh4 > cpu starting from the arm support. This is a little and an initial step > and I hope that another peaple can test it. Applied, thanks. > Regards Michael > > > > Index: target-sh4/cpu.h > =================================================================== > --- target-sh4/cpu.h (revision 5185) > +++ target-sh4/cpu.h (working copy) > @@ -141,6 +141,11 @@ > void cpu_sh4_write_mmaped_utlb_addr(CPUSH4State *s, target_phys_addr_t addr, > uint32_t mem_value); > > +static inline void cpu_set_tls(CPUSH4State *env, target_ulong newtls) > +{ > + env->gbr = newtls; > +} > + > #include "softfloat.h" > > #define CPUState CPUSH4State > Index: target-sh4/translate.c > =================================================================== > --- target-sh4/translate.c (revision 5185) > +++ target-sh4/translate.c (working copy) > @@ -243,6 +243,7 @@ > return NULL; > cpu_exec_init(env); > sh4_translate_init(); > + env->cpu_model_str = cpu_model; > cpu_sh4_reset(env); > cpu_sh4_register(env, def); > tlb_flush(env, 1); > Index: linux-user/syscall.c > =================================================================== > --- linux-user/syscall.c (revision 5185) > +++ linux-user/syscall.c (working copy) > @@ -53,6 +53,7 @@ > //#include > #include > #include > +#include > > #define termios host_termios > #define winsize host_winsize > @@ -4662,7 +4663,11 @@ > ret = get_errno(fsync(arg1)); > break; > case TARGET_NR_clone: > +#if !defined(TARGET_SH4) > ret = get_errno(do_fork(cpu_env, arg1, arg2, arg3, arg4, arg5)); > +#else > + ret = get_errno(do_fork(cpu_env, arg1, arg2, arg3, arg5, arg4)); > +#endif > break; > #ifdef __NR_exit_group > /* new thread calls */ > Index: linux-user/main.c > =================================================================== > --- linux-user/main.c (revision 5185) > +++ linux-user/main.c (working copy) > @@ -1887,6 +1887,7 @@ > > switch (trapnr) { > case 0x160: > + env->pc += 2; > ret = do_syscall(env, > env->gregs[3], > env->gregs[4], > @@ -1896,7 +1897,6 @@ > env->gregs[0], > env->gregs[1]); > env->gregs[0] = ret; > - env->pc += 2; > break; > case EXCP_INTERRUPT: > /* just indicate that signals should be handled asap */ > Index: configure > =================================================================== > --- configure (revision 5185) > +++ configure (working copy) > @@ -1435,6 +1435,7 @@ > echo "#define TARGET_ARCH \"sh4\"" >> $config_h > echo "#define TARGET_SH4 1" >> $config_h > bflt="yes" > + target_nptl="yes" > ;; > sparc) > echo "TARGET_ARCH=sparc" >> $config_mak > -- .''`. Aurelien Jarno | GPG: 1024D/F1BCDB73 : :' : Debian developer | Electrical Engineer `. `' aurel32@debian.org | aurelien@aurel32.net `- people.debian.org/~aurel32 | www.aurel32.net