[PATCH v2 04/12] linux-user/sparc: Use WREG constants in sparc/target_cpu.h

Richard Henderson posted 12 patches 6 years, 3 months ago
Maintainers: Laurent Vivier <laurent@vivier.eu>, Riku Voipio <riku.voipio@iki.fi>, "Alex Bennée" <alex.bennee@linaro.org>, Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>, Artyom Tarasenko <atar4qemu@gmail.com>
There is a newer version of this series
[PATCH v2 04/12] linux-user/sparc: Use WREG constants in sparc/target_cpu.h
Posted by Richard Henderson 6 years, 3 months ago
This fixes a naming bug wherein we used "UREG_FP" to access the
stack pointer.  OTOH, the "UREG_FP" constant was also defined
incorrectly such that it *did* reference the stack pointer.

Note that the kernel legitimately uses the name "FP", because it
utilizes the rolled stack window in processing the system call.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 linux-user/sparc/target_cpu.h | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/linux-user/sparc/target_cpu.h b/linux-user/sparc/target_cpu.h
index 1ffc0ae9f2..b30fbc72c4 100644
--- a/linux-user/sparc/target_cpu.h
+++ b/linux-user/sparc/target_cpu.h
@@ -41,15 +41,9 @@ static inline void cpu_set_tls(CPUSPARCState *env, target_ulong newtls)
     env->gregs[7] = newtls;
 }
 
-#ifndef UREG_I6
-#define UREG_I6        6
-#endif
-#ifndef UREG_FP
-#define UREG_FP        UREG_I6
-#endif
-
 static inline abi_ulong get_sp_from_cpustate(CPUSPARCState *state)
 {
-    return state->regwptr[UREG_FP];
+    return state->regwptr[WREG_SP];
 }
+
 #endif
-- 
2.17.1


Re: [PATCH v2 04/12] linux-user/sparc: Use WREG constants in sparc/target_cpu.h
Posted by Laurent Vivier 6 years, 3 months ago
Le 25/10/2019 à 13:39, Richard Henderson a écrit :
> This fixes a naming bug wherein we used "UREG_FP" to access the
> stack pointer.  OTOH, the "UREG_FP" constant was also defined
> incorrectly such that it *did* reference the stack pointer.
> 
> Note that the kernel legitimately uses the name "FP", because it
> utilizes the rolled stack window in processing the system call.
> 
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
>  linux-user/sparc/target_cpu.h | 10 ++--------
>  1 file changed, 2 insertions(+), 8 deletions(-)
> 
> diff --git a/linux-user/sparc/target_cpu.h b/linux-user/sparc/target_cpu.h
> index 1ffc0ae9f2..b30fbc72c4 100644
> --- a/linux-user/sparc/target_cpu.h
> +++ b/linux-user/sparc/target_cpu.h
> @@ -41,15 +41,9 @@ static inline void cpu_set_tls(CPUSPARCState *env, target_ulong newtls)
>      env->gregs[7] = newtls;
>  }
>  
> -#ifndef UREG_I6
> -#define UREG_I6        6
> -#endif
> -#ifndef UREG_FP
> -#define UREG_FP        UREG_I6
> -#endif
> -
>  static inline abi_ulong get_sp_from_cpustate(CPUSPARCState *state)
>  {
> -    return state->regwptr[UREG_FP];
> +    return state->regwptr[WREG_SP];
>  }
> +
>  #endif
> 

Applied to my linux-user branch.

Thanks,
Laurent

Re: [PATCH v2 04/12] linux-user/sparc: Use WREG constants in sparc/target_cpu.h
Posted by Laurent Vivier 6 years, 3 months ago
Le 25/10/2019 à 13:39, Richard Henderson a écrit :
> This fixes a naming bug wherein we used "UREG_FP" to access the
> stack pointer.  OTOH, the "UREG_FP" constant was also defined
> incorrectly such that it *did* reference the stack pointer.
> 
> Note that the kernel legitimately uses the name "FP", because it
> utilizes the rolled stack window in processing the system call.
> 
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
>  linux-user/sparc/target_cpu.h | 10 ++--------
>  1 file changed, 2 insertions(+), 8 deletions(-)
> 
> diff --git a/linux-user/sparc/target_cpu.h b/linux-user/sparc/target_cpu.h
> index 1ffc0ae9f2..b30fbc72c4 100644
> --- a/linux-user/sparc/target_cpu.h
> +++ b/linux-user/sparc/target_cpu.h
> @@ -41,15 +41,9 @@ static inline void cpu_set_tls(CPUSPARCState *env, target_ulong newtls)
>      env->gregs[7] = newtls;
>  }
>  
> -#ifndef UREG_I6
> -#define UREG_I6        6
> -#endif
> -#ifndef UREG_FP
> -#define UREG_FP        UREG_I6
> -#endif
> -
>  static inline abi_ulong get_sp_from_cpustate(CPUSPARCState *state)
>  {
> -    return state->regwptr[UREG_FP];
> +    return state->regwptr[WREG_SP];
>  }
> +
>  #endif
> 

Reviewed-by: Laurent Vivier <laurent@vivier.eu>