qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/2] linux-user/sparc64: Translate flushw opcode
@ 2020-06-25  9:12 Laurent Vivier
  2020-06-25  9:12 ` [PATCH v2 1/2] target/sparc: " Laurent Vivier
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Laurent Vivier @ 2020-06-25  9:12 UTC (permalink / raw)
  To: qemu-devel
  Cc: Giuseppe Musacchio, Mark Cave-Ayland, Riku Voipio,
	Richard Henderson, Philippe Mathieu-Daudé, Laurent Vivier,
	Artyom Tarasenko

I send a modified version according to Richard's comments of the original
series sent by Giuseppe Musacchio <thatlemon@gmail.com> (aka LemonBoy).

v2: split patch in two patches
    update comment style

I didn't really test the new patches (except a build and "make check").
But there is no code modification so I don't think I can introduce bugs in
this process. Any "Tested-by:" is welcome.

LemonBoy (2):
  target/sparc: Translate flushw opcode
  linux-user/sparc64: Fix the handling of window spill trap

 bsd-user/main.c             | 6 +++++-
 linux-user/sparc/cpu_loop.c | 6 +++++-
 target/sparc/translate.c    | 2 ++
 3 files changed, 12 insertions(+), 2 deletions(-)

-- 
2.26.2



^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v2 1/2] target/sparc: Translate flushw opcode
  2020-06-25  9:12 [PATCH v2 0/2] linux-user/sparc64: Translate flushw opcode Laurent Vivier
@ 2020-06-25  9:12 ` Laurent Vivier
  2020-06-25  9:12 ` [PATCH v2 2/2] linux-user/sparc64: Fix the handling of window spill trap Laurent Vivier
  2020-06-26 21:23 ` [PATCH v2 0/2] linux-user/sparc64: Translate flushw opcode Richard Henderson
  2 siblings, 0 replies; 5+ messages in thread
From: Laurent Vivier @ 2020-06-25  9:12 UTC (permalink / raw)
  To: qemu-devel
  Cc: Giuseppe Musacchio, Mark Cave-Ayland, Riku Voipio,
	Richard Henderson, Philippe Mathieu-Daudé, Laurent Vivier,
	Artyom Tarasenko

From: LemonBoy <thatlemon@gmail.com>

The ifdef logic should unconditionally compile in the `xop == 0x2b` case
when targeting sparc64.

Signed-off-by: Giuseppe Musacchio <thatlemon@gmail.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
 target/sparc/translate.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/target/sparc/translate.c b/target/sparc/translate.c
index 9416a551cf46..1a4efd4ed665 100644
--- a/target/sparc/translate.c
+++ b/target/sparc/translate.c
@@ -3663,6 +3663,8 @@ static void disas_sparc_insn(DisasContext * dc, unsigned int insn)
 #endif
                 gen_store_gpr(dc, rd, cpu_tmp0);
                 break;
+#endif
+#if defined(TARGET_SPARC64) || !defined(CONFIG_USER_ONLY)
             } else if (xop == 0x2b) { /* rdtbr / V9 flushw */
 #ifdef TARGET_SPARC64
                 gen_helper_flushw(cpu_env);
-- 
2.26.2



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v2 2/2] linux-user/sparc64: Fix the handling of window spill trap
  2020-06-25  9:12 [PATCH v2 0/2] linux-user/sparc64: Translate flushw opcode Laurent Vivier
  2020-06-25  9:12 ` [PATCH v2 1/2] target/sparc: " Laurent Vivier
@ 2020-06-25  9:12 ` Laurent Vivier
  2020-06-26 21:23 ` [PATCH v2 0/2] linux-user/sparc64: Translate flushw opcode Richard Henderson
  2 siblings, 0 replies; 5+ messages in thread
From: Laurent Vivier @ 2020-06-25  9:12 UTC (permalink / raw)
  To: qemu-devel
  Cc: Giuseppe Musacchio, Mark Cave-Ayland, Riku Voipio,
	Richard Henderson, Philippe Mathieu-Daudé, Laurent Vivier,
	Artyom Tarasenko

From: LemonBoy <thatlemon@gmail.com>

Fix the handling of window spill traps by keeping cansave into account
when calculating the new CWP.

Signed-off-by: Giuseppe Musacchio <thatlemon@gmail.com>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
 bsd-user/main.c             | 6 +++++-
 linux-user/sparc/cpu_loop.c | 6 +++++-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/bsd-user/main.c b/bsd-user/main.c
index 0bfe46cff93e..ac40d79bfaac 100644
--- a/bsd-user/main.c
+++ b/bsd-user/main.c
@@ -413,7 +413,11 @@ static void save_window(CPUSPARCState *env)
     save_window_offset(env, cpu_cwp_dec(env, env->cwp - 2));
     env->wim = new_wim;
 #else
-    save_window_offset(env, cpu_cwp_dec(env, env->cwp - 2));
+    /*
+     * cansave is zero if the spill trap handler is triggered by `save` and
+     * nonzero if triggered by a `flushw`
+     */
+    save_window_offset(env, cpu_cwp_dec(env, env->cwp - env->cansave - 2));
     env->cansave++;
     env->canrestore--;
 #endif
diff --git a/linux-user/sparc/cpu_loop.c b/linux-user/sparc/cpu_loop.c
index 7645cc04ca73..02532f198df8 100644
--- a/linux-user/sparc/cpu_loop.c
+++ b/linux-user/sparc/cpu_loop.c
@@ -69,7 +69,11 @@ static void save_window(CPUSPARCState *env)
     save_window_offset(env, cpu_cwp_dec(env, env->cwp - 2));
     env->wim = new_wim;
 #else
-    save_window_offset(env, cpu_cwp_dec(env, env->cwp - 2));
+    /*
+     * cansave is zero if the spill trap handler is triggered by `save` and
+     * nonzero if triggered by a `flushw`
+     */
+    save_window_offset(env, cpu_cwp_dec(env, env->cwp - env->cansave - 2));
     env->cansave++;
     env->canrestore--;
 #endif
-- 
2.26.2



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v2 0/2] linux-user/sparc64: Translate flushw opcode
  2020-06-25  9:12 [PATCH v2 0/2] linux-user/sparc64: Translate flushw opcode Laurent Vivier
  2020-06-25  9:12 ` [PATCH v2 1/2] target/sparc: " Laurent Vivier
  2020-06-25  9:12 ` [PATCH v2 2/2] linux-user/sparc64: Fix the handling of window spill trap Laurent Vivier
@ 2020-06-26 21:23 ` Richard Henderson
  2020-06-29 11:01   ` Laurent Vivier
  2 siblings, 1 reply; 5+ messages in thread
From: Richard Henderson @ 2020-06-26 21:23 UTC (permalink / raw)
  To: Laurent Vivier, qemu-devel
  Cc: Giuseppe Musacchio, Riku Voipio, Mark Cave-Ayland,
	Philippe Mathieu-Daudé, Artyom Tarasenko

On 6/25/20 2:12 AM, Laurent Vivier wrote:
> I send a modified version according to Richard's comments of the original
> series sent by Giuseppe Musacchio <thatlemon@gmail.com> (aka LemonBoy).
> 
> v2: split patch in two patches
>     update comment style
> 
> I didn't really test the new patches (except a build and "make check").
> But there is no code modification so I don't think I can introduce bugs in
> this process. Any "Tested-by:" is welcome.
> 
> LemonBoy (2):
>   target/sparc: Translate flushw opcode
>   linux-user/sparc64: Fix the handling of window spill trap
> 

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

You might want to reset the Author to match the Signed-off-by.


r~


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2 0/2] linux-user/sparc64: Translate flushw opcode
  2020-06-26 21:23 ` [PATCH v2 0/2] linux-user/sparc64: Translate flushw opcode Richard Henderson
@ 2020-06-29 11:01   ` Laurent Vivier
  0 siblings, 0 replies; 5+ messages in thread
From: Laurent Vivier @ 2020-06-29 11:01 UTC (permalink / raw)
  To: Richard Henderson, qemu-devel
  Cc: Giuseppe Musacchio, Riku Voipio, Mark Cave-Ayland,
	Philippe Mathieu-Daudé, Artyom Tarasenko

Le 26/06/2020 à 23:23, Richard Henderson a écrit :
> On 6/25/20 2:12 AM, Laurent Vivier wrote:
>> I send a modified version according to Richard's comments of the original
>> series sent by Giuseppe Musacchio <thatlemon@gmail.com> (aka LemonBoy).
>>
>> v2: split patch in two patches
>>     update comment style
>>
>> I didn't really test the new patches (except a build and "make check").
>> But there is no code modification so I don't think I can introduce bugs in
>> this process. Any "Tested-by:" is welcome.
>>
>> LemonBoy (2):
>>   target/sparc: Translate flushw opcode
>>   linux-user/sparc64: Fix the handling of window spill trap
>>
> 
> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
> 
> You might want to reset the Author to match the Signed-off-by.

Applied to my branch linux-user-for-5.1 with updated author to "Giuseppe
Musacchio <thatlemon@gmail.com>"

Thanks,
Laurent


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-06-29 11:02 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-06-25  9:12 [PATCH v2 0/2] linux-user/sparc64: Translate flushw opcode Laurent Vivier
2020-06-25  9:12 ` [PATCH v2 1/2] target/sparc: " Laurent Vivier
2020-06-25  9:12 ` [PATCH v2 2/2] linux-user/sparc64: Fix the handling of window spill trap Laurent Vivier
2020-06-26 21:23 ` [PATCH v2 0/2] linux-user/sparc64: Translate flushw opcode Richard Henderson
2020-06-29 11:01   ` Laurent Vivier

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).