qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH v2 07/14] target/m68k: use gdb_get_reg helpers


From: Laurent Vivier
Subject: Re: [PATCH v2 07/14] target/m68k: use gdb_get_reg helpers
Date: Sat, 30 Nov 2019 11:58:34 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.2

Le 30/11/2019 à 09:45, Alex Bennée a écrit :
> This is cleaner than poking memory directly and will make later
> clean-ups easier.
> 
> Signed-off-by: Alex Bennée <address@hidden>
> Reviewed-by: Richard Henderson <address@hidden>
> ---
>  target/m68k/helper.c | 29 +++++++++++------------------
>  1 file changed, 11 insertions(+), 18 deletions(-)
> 
> diff --git a/target/m68k/helper.c b/target/m68k/helper.c
> index ae766a6cb0b..70b0c0b5076 100644
> --- a/target/m68k/helper.c
> +++ b/target/m68k/helper.c
> @@ -72,19 +72,15 @@ static int cf_fpu_gdb_get_reg(CPUM68KState *env, uint8_t 
> *mem_buf, int n)
>  {
>      if (n < 8) {
>          float_status s;
> -        stfq_p(mem_buf, floatx80_to_float64(env->fregs[n].d, &s));
> -        return 8;
> +        return gdb_get_reg64(buf, floatx80_to_float64(env->fregs[n].d, &s));

Where is coming from "buf"? We were using "mem_buf".

>      }
>      switch (n) {
>      case 8: /* fpcontrol */
> -        stl_be_p(mem_buf, env->fpcr);
> -        return 4;
> +        return gdb_get_reg32(buf, env->fpcr);
>      case 9: /* fpstatus */
> -        stl_be_p(mem_buf, env->fpsr);
> -        return 4;
> +        return gdb_get_reg32(buf, env->fpsr);
>      case 10: /* fpiar, not implemented */
> -        memset(mem_buf, 0, 4);
> -        return 4;
> +        return gdb_get_reg32(buf, 0);
>      }
>      return 0;
>  }
> @@ -112,21 +108,18 @@ static int cf_fpu_gdb_set_reg(CPUM68KState *env, 
> uint8_t *mem_buf, int n)
>  static int m68k_fpu_gdb_get_reg(CPUM68KState *env, uint8_t *mem_buf, int n)
>  {
>      if (n < 8) {
> -        stw_be_p(mem_buf, env->fregs[n].l.upper);
> -        memset(mem_buf + 2, 0, 2);
> -        stq_be_p(mem_buf + 4, env->fregs[n].l.lower);
> -        return 12;
> +        int len = gdb_get_reg16(buf, env->fregs[n].l.upper);
> +        len += gdb_get_reg16(buf, 0);

len += gdb_get_reg16(buf + len, ...

> +        len += gdb_get_reg64(buf, env->fregs[n].l.lower);

len += gdb_get_reg64(buf + len, ...

> +        return len;
>      }
>      switch (n) {
>      case 8: /* fpcontrol */
> -        stl_be_p(mem_buf, env->fpcr);
> -        return 4;
> +        return gdb_get_reg32(buf, env->fpcr);
>      case 9: /* fpstatus */
> -        stl_be_p(mem_buf, env->fpsr);
> -        return 4;
> +        return gdb_get_reg32(buf, env->fpsr);
>      case 10: /* fpiar, not implemented */
> -        memset(mem_buf, 0, 4);
> -        return 4;
> +        return gdb_get_reg32(buf, 0);
>      }
>      return 0;
>  }
> 

Thanks,
Laurent



reply via email to

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