[PATCH-for-11.1 v6 4/6] monitor: Remove last target_long use in get_monitor_def()

Philippe Mathieu-Daudé posted 6 patches 2 days, 5 hours ago
Maintainers: "Michael S. Tsirkin" <mst@redhat.com>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Paolo Bonzini <pbonzini@redhat.com>, Richard Henderson <richard.henderson@linaro.org>, "Dr. David Alan Gilbert" <dave@treblig.org>, Markus Armbruster <armbru@redhat.com>, Zhao Liu <zhao1.liu@intel.com>, Marcelo Tosatti <mtosatti@redhat.com>, Laurent Vivier <laurent@vivier.eu>, Nicholas Piggin <npiggin@gmail.com>, Chinmay Rath <rathc@linux.ibm.com>, Glenn Miles <milesg@linux.ibm.com>, Palmer Dabbelt <palmer@dabbelt.com>, Alistair Francis <alistair.francis@wdc.com>, Weiwei Li <liwei1518@gmail.com>, Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>, Liu Zhiwei <zhiwei_liu@linux.alibaba.com>, Chao Liu <chao.liu.zevorn@gmail.com>, Yoshinori Sato <yoshinori.sato@nifty.com>, Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>, Artyom Tarasenko <atar4qemu@gmail.com>, Max Filippov <jcmvbkbc@gmail.com>
[PATCH-for-11.1 v6 4/6] monitor: Remove last target_long use in get_monitor_def()
Posted by Philippe Mathieu-Daudé 2 days, 5 hours ago
Truncate manually, removing the need of target-specific
code in get_monitor_def().

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 monitor/hmp-target.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/monitor/hmp-target.c b/monitor/hmp-target.c
index 155caedd784..5e9f1b0db5b 100644
--- a/monitor/hmp-target.c
+++ b/monitor/hmp-target.c
@@ -34,7 +34,6 @@
 #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"
@@ -93,7 +92,7 @@ int get_monitor_def(Monitor *mon, int64_t *pval, const char *name)
 
     ret = target_get_monitor_def(cs, name, &tmp);
     if (!ret) {
-        *pval = (target_long) tmp;
+        *pval = target_long_bits() == 32 ? (int32_t)tmp : tmp;
     }
 
     return ret;
-- 
2.53.0


Re: [PATCH-for-11.1 v6 4/6] monitor: Remove last target_long use in get_monitor_def()
Posted by Pierrick Bouvier 1 day, 16 hours ago
On 3/20/26 2:10 AM, Philippe Mathieu-Daudé wrote:
> Truncate manually, removing the need of target-specific
> code in get_monitor_def().
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   monitor/hmp-target.c | 3 +--
>   1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/monitor/hmp-target.c b/monitor/hmp-target.c
> index 155caedd784..5e9f1b0db5b 100644
> --- a/monitor/hmp-target.c
> +++ b/monitor/hmp-target.c
> @@ -34,7 +34,6 @@
>   #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"
> @@ -93,7 +92,7 @@ int get_monitor_def(Monitor *mon, int64_t *pval, const char *name)
>   
>       ret = target_get_monitor_def(cs, name, &tmp);
>       if (!ret) {
> -        *pval = (target_long) tmp;
> +        *pval = target_long_bits() == 32 ? (int32_t)tmp : tmp;
>       }
>   
>       return ret;

Looking a second time at it, I don't think you need it. Same in previous 
commit.

Since pval is a pointer to a (signed) int64, sign will be extended from 
32 bit value automatically. So either, it's a positive value, and will 
be treated as it is. Or it's a negative value, and all upper bits will 
be set to 1.

So the casting in int32_t has no effect, since it will be extended again 
automatically.

Regards,
Pierrick

Re: [PATCH-for-11.1 v6 4/6] monitor: Remove last target_long use in get_monitor_def()
Posted by Pierrick Bouvier 1 day, 16 hours ago
On 3/20/26 2:10 AM, Philippe Mathieu-Daudé wrote:
> Truncate manually, removing the need of target-specific
> code in get_monitor_def().
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   monitor/hmp-target.c | 3 +--
>   1 file changed, 1 insertion(+), 2 deletions(-)
> 

Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>