qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 10/13] target-alpha: Enable NPTL.


From: Aurelien Jarno
Subject: Re: [Qemu-devel] [PATCH 10/13] target-alpha: Enable NPTL.
Date: Sat, 10 Apr 2010 02:54:46 +0200
User-agent: Mutt/1.5.20 (2009-06-14)

On Wed, Mar 24, 2010 at 05:13:07PM -0700, Richard Henderson wrote:
> Signed-off-by: Richard Henderson <address@hidden>
> ---
>  configure            |    1 +
>  linux-user/syscall.c |    2 +-
>  target-alpha/cpu.h   |   28 +++++++++++++++++-----------
>  3 files changed, 19 insertions(+), 12 deletions(-)
> 
> diff --git a/configure b/configure
> index 1d5fb17..37f2ba7 100755
> --- a/configure
> +++ b/configure
> @@ -2430,6 +2430,7 @@ case "$target_arch2" in
>    ;;
>    alpha)
>      target_phys_bits=64
> +    target_nptl="yes"
>    ;;
>    arm|armeb)
>      TARGET_ARCH=arm
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index a03e432..050a418 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -5768,7 +5768,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long 
> arg1,
>          ret = get_errno(fsync(arg1));
>          break;
>      case TARGET_NR_clone:
> -#if defined(TARGET_SH4)
> +#if defined(TARGET_SH4) || defined(TARGET_ALPHA)
>          ret = get_errno(do_fork(cpu_env, arg1, arg2, arg3, arg5, arg4));
>  #elif defined(TARGET_CRIS)
>          ret = get_errno(do_fork(cpu_env, arg2, arg1, arg3, arg4, arg5));
> diff --git a/target-alpha/cpu.h b/target-alpha/cpu.h
> index 8afe16d..3dd9888 100644
> --- a/target-alpha/cpu.h
> +++ b/target-alpha/cpu.h
> @@ -411,15 +411,6 @@ static inline int cpu_mmu_index (CPUState *env)
>      return (env->ps >> 3) & 3;
>  }
>  
> -#if defined(CONFIG_USER_ONLY)
> -static inline void cpu_clone_regs(CPUState *env, target_ulong newsp)
> -{
> -    if (newsp)
> -        env->ir[30] = newsp;
> -    /* FIXME: Zero syscall return value.  */
> -}
> -#endif
> -
>  #include "cpu-all.h"
>  #include "exec-all.h"
>  
> @@ -477,7 +468,7 @@ enum {
>      IR_S4   = 13,
>      IR_S5   = 14,
>      IR_S6   = 15,
> -#define IR_FP IR_S6
> +    IR_FP   = IR_S6,
>      IR_A0   = 16,
>      IR_A1   = 17,
>      IR_A2   = 18,
> @@ -490,7 +481,7 @@ enum {
>      IR_T11  = 25,
>      IR_RA   = 26,
>      IR_T12  = 27,
> -#define IR_PV IR_T12
> +    IR_PV   = IR_T12,
>      IR_AT   = 28,
>      IR_GP   = 29,
>      IR_SP   = 30,
> @@ -531,4 +522,19 @@ static inline void cpu_get_tb_cpu_state(CPUState *env, 
> target_ulong *pc,
>      *flags = env->ps;
>  }
>  
> +#if defined(CONFIG_USER_ONLY)
> +static inline void cpu_clone_regs(CPUState *env, target_ulong newsp)
> +{
> +    if (newsp)
> +        env->ir[IR_SP] = newsp;

You need curly braces here.

> +    env->ir[IR_V0] = 0;
> +    env->ir[IR_A3] = 0;
> +}
> +
> +static inline void cpu_set_tls(CPUState *env, target_ulong newtls)
> +{
> +    env->unique = newtls;
> +}
> +#endif
> +
>  #endif /* !defined (__CPU_ALPHA_H__) */
> -- 
> 1.6.6.1
> 
> 
> 
> 

-- 
Aurelien Jarno                          GPG: 1024D/F1BCDB73
address@hidden                 http://www.aurel32.net




reply via email to

[Prev in Thread] Current Thread [Next in Thread]