[PATCH] target/sparc: Remove NO_READ_GLOBALS flag on saved/restored helpers

Philippe Mathieu-Daudé posted 1 patch 1 day, 14 hours ago
target/sparc/helper.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
[PATCH] target/sparc: Remove NO_READ_GLOBALS flag on saved/restored helpers
Posted by Philippe Mathieu-Daudé 1 day, 14 hours ago
The NO_READ_GLOBALS flags are incorrect: helper_saved()
reads env::otherwin, helper_restored() reads env::otherwin
and env::cleanwin. Drop to plain DEF_HELPER_1; the helpers
have side effects regardless, so translation behavior is
unchanged.

Signed-off-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>
---
 target/sparc/helper.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/target/sparc/helper.h b/target/sparc/helper.h
index 4be84622c89..758fcf2ba68 100644
--- a/target/sparc/helper.h
+++ b/target/sparc/helper.h
@@ -11,8 +11,8 @@ DEF_HELPER_2(wrpstate, void, env, tl)
 DEF_HELPER_1(done, void, env)
 DEF_HELPER_1(retry, void, env)
 DEF_HELPER_FLAGS_1(flushw, TCG_CALL_NO_WG, void, env)
-DEF_HELPER_FLAGS_1(saved, TCG_CALL_NO_RWG, void, env)
-DEF_HELPER_FLAGS_1(restored, TCG_CALL_NO_RWG, void, env)
+DEF_HELPER_1(saved, void, env)
+DEF_HELPER_1(restored, void, env)
 DEF_HELPER_1(rdccr, tl, env)
 DEF_HELPER_2(wrccr, void, env, tl)
 DEF_HELPER_1(rdcwp, tl, env)
-- 
2.55.0


Re: [PATCH] target/sparc: Remove NO_READ_GLOBALS flag on saved/restored helpers
Posted by Philippe Mathieu-Daudé 1 day, 14 hours ago
On 21/10/26 06:13, Philippe Mathieu-Daudé wrote:
> The NO_READ_GLOBALS flags are incorrect: helper_saved()
> reads env::otherwin, helper_restored() reads env::otherwin
> and env::cleanwin. Drop to plain DEF_HELPER_1; the helpers
> have side effects regardless, so translation behavior is
> unchanged.

I got it wrong, env::otherwin and env::cleanwin are not registered
as TCG globals... Please disregard this patch.

> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>
> ---
>   target/sparc/helper.h | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/target/sparc/helper.h b/target/sparc/helper.h
> index 4be84622c89..758fcf2ba68 100644
> --- a/target/sparc/helper.h
> +++ b/target/sparc/helper.h
> @@ -11,8 +11,8 @@ DEF_HELPER_2(wrpstate, void, env, tl)
>   DEF_HELPER_1(done, void, env)
>   DEF_HELPER_1(retry, void, env)
>   DEF_HELPER_FLAGS_1(flushw, TCG_CALL_NO_WG, void, env)
> -DEF_HELPER_FLAGS_1(saved, TCG_CALL_NO_RWG, void, env)
> -DEF_HELPER_FLAGS_1(restored, TCG_CALL_NO_RWG, void, env)
> +DEF_HELPER_1(saved, void, env)
> +DEF_HELPER_1(restored, void, env)
>   DEF_HELPER_1(rdccr, tl, env)
>   DEF_HELPER_2(wrccr, void, env, tl)
>   DEF_HELPER_1(rdcwp, tl, env)