[PATCH v3 23/26] target/s390x: don't use ld_code2 to probe next pc

Alex Bennée posted 26 patches 3 years, 3 months ago
Only 25 patches received!
[PATCH v3 23/26] target/s390x: don't use ld_code2 to probe next pc
Posted by Alex Bennée 3 years, 3 months ago
This isn't an translator picking up an instruction so we shouldn't use
the translator_lduw function which has side effects for plugins.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 target/s390x/tcg/translate.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c
index 1d2dddab1c..f4de8efe3a 100644
--- a/target/s390x/tcg/translate.c
+++ b/target/s390x/tcg/translate.c
@@ -6612,7 +6612,7 @@ static void s390x_tr_insn_start(DisasContextBase *dcbase, CPUState *cs)
 static target_ulong get_next_pc(CPUS390XState *env, DisasContext *s,
                                 uint64_t pc)
 {
-    uint64_t insn = ld_code2(env, s, pc);
+    uint64_t insn = cpu_lduw_code(env, pc);
 
     return pc + get_ilen((insn >> 8) & 0xff);
 }
-- 
2.34.1


Re: [PATCH v3 23/26] target/s390x: don't use ld_code2 to probe next pc
Posted by Ilya Leoshkevich 3 years, 3 months ago
On Thu, 2022-10-20 at 12:52 +0100, Alex Bennée wrote:
> This isn't an translator picking up an instruction so we shouldn't
> use
> the translator_lduw function which has side effects for plugins.
> 
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
>  target/s390x/tcg/translate.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/target/s390x/tcg/translate.c
> b/target/s390x/tcg/translate.c
> index 1d2dddab1c..f4de8efe3a 100644
> --- a/target/s390x/tcg/translate.c
> +++ b/target/s390x/tcg/translate.c
> @@ -6612,7 +6612,7 @@ static void
> s390x_tr_insn_start(DisasContextBase *dcbase, CPUState *cs)
>  static target_ulong get_next_pc(CPUS390XState *env, DisasContext *s,
>                                  uint64_t pc)
>  {
> -    uint64_t insn = ld_code2(env, s, pc);
> +    uint64_t insn = cpu_lduw_code(env, pc);
>  
>      return pc + get_ilen((insn >> 8) & 0xff);
>  }

Acked-by: Ilya Leoshkevich <iii@linux.ibm.com>

Re: [PATCH v3 23/26] target/s390x: don't use ld_code2 to probe next pc
Posted by Philippe Mathieu-Daudé 3 years, 3 months ago
On 20/10/22 13:52, Alex Bennée wrote:
> This isn't an translator picking up an instruction so we shouldn't use
> the translator_lduw function which has side effects for plugins.
> 
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
>   target/s390x/tcg/translate.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>


Re: [PATCH v3 23/26] target/s390x: don't use ld_code2 to probe next pc
Posted by Richard Henderson 3 years, 3 months ago
On 10/20/22 21:52, Alex Bennée wrote:
> This isn't an translator picking up an instruction so we shouldn't use
> the translator_lduw function which has side effects for plugins.
> 
> Signed-off-by: Alex Bennée<alex.bennee@linaro.org>
> ---
>   target/s390x/tcg/translate.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)

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

r~

Re: [PATCH v3 23/26] target/s390x: don't use ld_code2 to probe next pc
Posted by David Hildenbrand 3 years, 3 months ago
On 20.10.22 13:52, Alex Bennée wrote:
> This isn't an translator picking up an instruction so we shouldn't use
> the translator_lduw function which has side effects for plugins.
> 
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
>   target/s390x/tcg/translate.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/target/s390x/tcg/translate.c b/target/s390x/tcg/translate.c
> index 1d2dddab1c..f4de8efe3a 100644
> --- a/target/s390x/tcg/translate.c
> +++ b/target/s390x/tcg/translate.c
> @@ -6612,7 +6612,7 @@ static void s390x_tr_insn_start(DisasContextBase *dcbase, CPUState *cs)
>   static target_ulong get_next_pc(CPUS390XState *env, DisasContext *s,
>                                   uint64_t pc)
>   {
> -    uint64_t insn = ld_code2(env, s, pc);
> +    uint64_t insn = cpu_lduw_code(env, pc);
>   
>       return pc + get_ilen((insn >> 8) & 0xff);
>   }

Reviewed-by: David Hildenbrand <david@redhat.com>

-- 
Thanks,

David / dhildenb