public inbox for qemu-devel@nongnu.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: "Philippe Mathieu-Daudé" <philmd@linaro.org>
Cc: qemu-devel@nongnu.org,
	 Daniel Henrique Barboza <dbarboza@ventanamicro.com>,
	 Paolo Bonzini <pbonzini@redhat.com>,
	 Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>,
	 Pierrick Bouvier <pierrick.bouvier@linaro.org>,
	 Artyom Tarasenko <atar4qemu@gmail.com>,
	"Dr. David Alan Gilbert" <dave@treblig.org>,
	 Richard Henderson <richard.henderson@linaro.org>,
	 Zhao Liu <zhao1.liu@intel.com>
Subject: Re: [PATCH-for-11.1 v6 3/6] monitor: Have MonitorDef::get_value() always return int64_t type
Date: Tue, 24 Mar 2026 13:56:50 +0100	[thread overview]
Message-ID: <87pl4ts7vx.fsf@pond.sub.org> (raw)
In-Reply-To: <20260320091019.59902-4-philmd@linaro.org> ("Philippe Mathieu-Daudé"'s message of "Fri, 20 Mar 2026 10:10:15 +0100")

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

> Simplify MonitorDef::get_value() handler by having it always
> return a int64_t type. Truncate to 32-bit in the single caller.
>
> Note, this handler is only implemented once for the x86 targets.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>  include/monitor/hmp-target.h | 6 +-----
>  monitor/hmp-target.c         | 5 ++++-
>  target/i386/monitor.c        | 4 ++--
>  3 files changed, 7 insertions(+), 8 deletions(-)
>
> diff --git a/include/monitor/hmp-target.h b/include/monitor/hmp-target.h
> index 56322ceddd4..6364c94edf8 100644
> --- a/include/monitor/hmp-target.h
> +++ b/include/monitor/hmp-target.h
> @@ -27,15 +27,11 @@
>  
>  typedef struct MonitorDef MonitorDef;
>  
> -#ifdef COMPILING_PER_TARGET
> -#include "cpu.h"
>  struct MonitorDef {
>      const char *name;
>      int offset;
> -    target_long (*get_value)(Monitor *mon, const struct MonitorDef *md,
> -                             int val);
> +    int64_t (*get_value)(Monitor *mon, const struct MonitorDef *md, int offset);
>  };
> -#endif
>  
>  const MonitorDef *target_monitor_defs(void);
>  int target_get_monitor_def(CPUState *cs, const char *name, uint64_t *pval);
> diff --git a/monitor/hmp-target.c b/monitor/hmp-target.c
> index 3f019ae2a28..155caedd784 100644
> --- a/monitor/hmp-target.c
> +++ b/monitor/hmp-target.c
> @@ -23,6 +23,7 @@
>   */
>  
>  #include "qemu/osdep.h"
> +#include "qemu/target-info.h"
>  #include "monitor-internal.h"
>  #include "monitor/qdev.h"
>  #include "net/slirp.h"
> @@ -33,6 +34,7 @@
>  #include "qapi/qapi-commands-control.h"
>  #include "qapi/qapi-commands-misc.h"
>  #include "qapi/qapi-commands-machine.h"
> +#include "exec/target_long.h"
>  
>  #if defined(TARGET_S390X)
>  #include "hw/s390x/storage-keys.h"
> @@ -78,7 +80,8 @@ int get_monitor_def(Monitor *mon, int64_t *pval, const char *name)
>      for(; md->name != NULL; md++) {
>          if (hmp_compare_cmd(name, md->name)) {
>              if (md->get_value) {
> -                *pval = md->get_value(mon, md, md->offset);
> +                int64_t val = md->get_value(mon, md, md->offset);
> +                *pval = target_long_bits() == 32 ? (int32_t)val : val;

This assumes target_long_bits() returns either 32 or 64, doesn't it?

Is this true today?

Will it remain true?

Could we use something like

    val & ((1 << target_long_bits()) - 1)

to truncate to target_long_bits() bits?

>              } else {
>                  CPUArchState *env = mon_get_cpu_env(mon);
>                  ptr = (uint8_t *)env + md->offset;
> diff --git a/target/i386/monitor.c b/target/i386/monitor.c
> index 977f65fe16c..b128334e571 100644
> --- a/target/i386/monitor.c
> +++ b/target/i386/monitor.c
> @@ -593,8 +593,8 @@ void hmp_mce(Monitor *mon, const QDict *qdict)
>      }
>  }
>  
> -static target_long monitor_get_pc(Monitor *mon, const struct MonitorDef *md,
> -                                  int val)
> +static int64_t monitor_get_pc(Monitor *mon, const struct MonitorDef *md,
> +                              int offset)
>  {
>      CPUArchState *env = mon_get_cpu_env(mon);
>      return env->eip + env->segs[R_CS].base;



  parent reply	other threads:[~2026-03-24 12:57 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-20  9:10 [PATCH-for-11.1 v6 0/6] monitor/hmp: Reduce target-specific definitions Philippe Mathieu-Daudé
2026-03-20  9:10 ` [PATCH-for-11.1 v6 1/6] target/sparc/monitor: Dump all registers as 32-bit Philippe Mathieu-Daudé
2026-03-20 21:44   ` Pierrick Bouvier
2026-03-24 12:49   ` Markus Armbruster
2026-03-20  9:10 ` [PATCH-for-11.1 v6 2/6] monitor: Remove MonitorDef::type field and MD_TLONG / MD_I32 Philippe Mathieu-Daudé
2026-03-20 21:44   ` Pierrick Bouvier
2026-03-20  9:10 ` [PATCH-for-11.1 v6 3/6] monitor: Have MonitorDef::get_value() always return int64_t type Philippe Mathieu-Daudé
2026-03-20 21:45   ` Pierrick Bouvier
2026-03-24 12:56   ` Markus Armbruster [this message]
2026-03-24 13:24     ` Peter Maydell
2026-03-24 14:42       ` Markus Armbruster
2026-03-24 18:34         ` Pierrick Bouvier
2026-03-25  5:51           ` Markus Armbruster
2026-03-25 17:37             ` Pierrick Bouvier
2026-03-20  9:10 ` [PATCH-for-11.1 v6 4/6] monitor: Remove last target_long use in get_monitor_def() Philippe Mathieu-Daudé
2026-03-20 21:45   ` Pierrick Bouvier
2026-03-20 21:51   ` Pierrick Bouvier
2026-03-20  9:10 ` [PATCH-for-11.1 v6 5/6] monitor: Reduce target-specific methods further Philippe Mathieu-Daudé
2026-03-20 21:52   ` Pierrick Bouvier
2026-03-20  9:10 ` [PATCH-for-11.1 v6 6/6] monitor: Remove 'monitor/hmp-target.h' header Philippe Mathieu-Daudé
2026-03-20 21:52   ` Pierrick Bouvier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87pl4ts7vx.fsf@pond.sub.org \
    --to=armbru@redhat.com \
    --cc=atar4qemu@gmail.com \
    --cc=dave@treblig.org \
    --cc=dbarboza@ventanamicro.com \
    --cc=mark.cave-ayland@ilande.co.uk \
    --cc=pbonzini@redhat.com \
    --cc=philmd@linaro.org \
    --cc=pierrick.bouvier@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=zhao1.liu@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox