* [PATCH 0/4] target/loongarch: Remove some unnecessary target_ulong uses
@ 2025-10-09 20:19 Philippe Mathieu-Daudé
2025-10-09 20:19 ` [PATCH 1/4] hw/loongarch/boot: Remove unnecessary cast to target_ulong Philippe Mathieu-Daudé
` (4 more replies)
0 siblings, 5 replies; 14+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-10-09 20:19 UTC (permalink / raw)
To: qemu-devel
Cc: Song Gao, Bibo Mao, Pierrick Bouvier, Anton Johansson,
Jiaxun Yang, Philippe Mathieu-Daudé
Remove few invalid target_ulong uses in LoongArch frontend.
Philippe Mathieu-Daudé (4):
hw/loongarch/boot: Remove unnecessary cast to target_ulong
target/loongarch: Remove target_ulong use in gen_goto_tb()
target/loongarch: Remove target_ulong use in gdb_write_register
handler
target/loongarch: Do not use target_ulong type for LDDIR level
target/loongarch/cpu-mmu.h | 2 +-
target/loongarch/tcg/helper.h | 2 +-
hw/loongarch/boot.c | 7 ++++---
target/loongarch/cpu_helper.c | 2 +-
target/loongarch/gdbstub.c | 2 +-
target/loongarch/tcg/tlb_helper.c | 4 ++--
target/loongarch/tcg/translate.c | 2 +-
target/loongarch/tcg/insn_trans/trans_privileged.c.inc | 2 +-
8 files changed, 12 insertions(+), 11 deletions(-)
--
2.51.0
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 1/4] hw/loongarch/boot: Remove unnecessary cast to target_ulong
2025-10-09 20:19 [PATCH 0/4] target/loongarch: Remove some unnecessary target_ulong uses Philippe Mathieu-Daudé
@ 2025-10-09 20:19 ` Philippe Mathieu-Daudé
2025-10-09 21:46 ` Richard Henderson
2025-10-14 9:12 ` gaosong
2025-10-09 20:19 ` [PATCH 2/4] target/loongarch: Remove target_ulong use in gen_goto_tb() Philippe Mathieu-Daudé
` (3 subsequent siblings)
4 siblings, 2 replies; 14+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-10-09 20:19 UTC (permalink / raw)
To: qemu-devel
Cc: Song Gao, Bibo Mao, Pierrick Bouvier, Anton Johansson,
Jiaxun Yang, Philippe Mathieu-Daudé
Reduce initrd_size scope. It is already of signed type (ssize_t),
no need to cast to unsigned for the comparison.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
hw/loongarch/boot.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/hw/loongarch/boot.c b/hw/loongarch/boot.c
index a516415822d..3dd48cb8aab 100644
--- a/hw/loongarch/boot.c
+++ b/hw/loongarch/boot.c
@@ -306,7 +306,7 @@ static ram_addr_t alloc_initrd_memory(struct loongarch_boot_info *info,
static int64_t load_kernel_info(struct loongarch_boot_info *info)
{
uint64_t kernel_entry, kernel_low, kernel_high, initrd_offset = 0;
- ssize_t kernel_size, initrd_size;
+ ssize_t kernel_size;
kernel_size = load_elf(info->kernel_filename, NULL,
cpu_loongarch_virt_to_phys, NULL,
@@ -328,7 +328,8 @@ static int64_t load_kernel_info(struct loongarch_boot_info *info)
}
if (info->initrd_filename) {
- initrd_size = get_image_size(info->initrd_filename);
+ ssize_t initrd_size = get_image_size(info->initrd_filename);
+
if (initrd_size > 0) {
initrd_offset = ROUND_UP(kernel_high + 4 * kernel_size, 64 * KiB);
initrd_offset = alloc_initrd_memory(info, initrd_offset,
@@ -337,7 +338,7 @@ static int64_t load_kernel_info(struct loongarch_boot_info *info)
initrd_offset, initrd_size);
}
- if (initrd_size == (target_ulong)-1) {
+ if (initrd_size == -1) {
error_report("could not load initial ram disk '%s'",
info->initrd_filename);
exit(1);
--
2.51.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 2/4] target/loongarch: Remove target_ulong use in gen_goto_tb()
2025-10-09 20:19 [PATCH 0/4] target/loongarch: Remove some unnecessary target_ulong uses Philippe Mathieu-Daudé
2025-10-09 20:19 ` [PATCH 1/4] hw/loongarch/boot: Remove unnecessary cast to target_ulong Philippe Mathieu-Daudé
@ 2025-10-09 20:19 ` Philippe Mathieu-Daudé
2025-10-09 21:46 ` Richard Henderson
2025-10-14 9:13 ` gaosong
2025-10-09 20:19 ` [PATCH 3/4] target/loongarch: Remove target_ulong use in gdb_write_register handler Philippe Mathieu-Daudé
` (2 subsequent siblings)
4 siblings, 2 replies; 14+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-10-09 20:19 UTC (permalink / raw)
To: qemu-devel
Cc: Song Gao, Bibo Mao, Pierrick Bouvier, Anton Johansson,
Jiaxun Yang, Philippe Mathieu-Daudé
translator_use_goto_tb() expects a vaddr type since commit
b1c09220b4c ("accel/tcg: Replace target_ulong with vaddr in
translator*()").
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
target/loongarch/tcg/translate.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/target/loongarch/tcg/translate.c b/target/loongarch/tcg/translate.c
index 53a0b4c3ce9..e30b64c0e05 100644
--- a/target/loongarch/tcg/translate.c
+++ b/target/loongarch/tcg/translate.c
@@ -99,7 +99,7 @@ void generate_exception(DisasContext *ctx, int excp)
ctx->base.is_jmp = DISAS_NORETURN;
}
-static inline void gen_goto_tb(DisasContext *ctx, int n, target_ulong dest)
+static inline void gen_goto_tb(DisasContext *ctx, int n, vaddr dest)
{
if (ctx->va32) {
dest = (uint32_t) dest;
--
2.51.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 3/4] target/loongarch: Remove target_ulong use in gdb_write_register handler
2025-10-09 20:19 [PATCH 0/4] target/loongarch: Remove some unnecessary target_ulong uses Philippe Mathieu-Daudé
2025-10-09 20:19 ` [PATCH 1/4] hw/loongarch/boot: Remove unnecessary cast to target_ulong Philippe Mathieu-Daudé
2025-10-09 20:19 ` [PATCH 2/4] target/loongarch: Remove target_ulong use in gen_goto_tb() Philippe Mathieu-Daudé
@ 2025-10-09 20:19 ` Philippe Mathieu-Daudé
2025-10-09 21:47 ` Richard Henderson
2025-10-14 9:17 ` gaosong
2025-10-09 20:19 ` [PATCH 4/4] target/loongarch: Do not use target_ulong type for LDDIR level Philippe Mathieu-Daudé
2025-10-14 10:00 ` [PATCH 0/4] target/loongarch: Remove some unnecessary target_ulong uses gaosong
4 siblings, 2 replies; 14+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-10-09 20:19 UTC (permalink / raw)
To: qemu-devel
Cc: Song Gao, Bibo Mao, Pierrick Bouvier, Anton Johansson,
Jiaxun Yang, Philippe Mathieu-Daudé
ldq_le_p() returns a uint64_t type, big enough to also hold
ldl_le_p() return value. If we were building for a 32-bit
LoongArch target, ldq_le_p() would not fit in target_ulong.
Better stick to plain uint64_t.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
target/loongarch/gdbstub.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/target/loongarch/gdbstub.c b/target/loongarch/gdbstub.c
index 471eda28c73..23a5eecc20b 100644
--- a/target/loongarch/gdbstub.c
+++ b/target/loongarch/gdbstub.c
@@ -62,7 +62,7 @@ int loongarch_cpu_gdb_read_register(CPUState *cs, GByteArray *mem_buf, int n)
int loongarch_cpu_gdb_write_register(CPUState *cs, uint8_t *mem_buf, int n)
{
CPULoongArchState *env = cpu_env(cs);
- target_ulong tmp;
+ uint64_t tmp;
int length = 0;
if (n < 0 || n > 34) {
--
2.51.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 4/4] target/loongarch: Do not use target_ulong type for LDDIR level
2025-10-09 20:19 [PATCH 0/4] target/loongarch: Remove some unnecessary target_ulong uses Philippe Mathieu-Daudé
` (2 preceding siblings ...)
2025-10-09 20:19 ` [PATCH 3/4] target/loongarch: Remove target_ulong use in gdb_write_register handler Philippe Mathieu-Daudé
@ 2025-10-09 20:19 ` Philippe Mathieu-Daudé
2025-10-09 21:50 ` Richard Henderson
2025-10-14 9:18 ` gaosong
2025-10-14 10:00 ` [PATCH 0/4] target/loongarch: Remove some unnecessary target_ulong uses gaosong
4 siblings, 2 replies; 14+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-10-09 20:19 UTC (permalink / raw)
To: qemu-devel
Cc: Song Gao, Bibo Mao, Pierrick Bouvier, Anton Johansson,
Jiaxun Yang, Philippe Mathieu-Daudé
The LDDIR level page table is a 5-bit immediate. Using the
uint32_t type for it is sufficient. Avoid the target_ulong type.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
target/loongarch/cpu-mmu.h | 2 +-
target/loongarch/tcg/helper.h | 2 +-
target/loongarch/cpu_helper.c | 2 +-
target/loongarch/tcg/tlb_helper.c | 4 ++--
target/loongarch/tcg/insn_trans/trans_privileged.c.inc | 2 +-
5 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/target/loongarch/cpu-mmu.h b/target/loongarch/cpu-mmu.h
index 0068d22efcb..dbc69c7c0f2 100644
--- a/target/loongarch/cpu-mmu.h
+++ b/target/loongarch/cpu-mmu.h
@@ -34,7 +34,7 @@ TLBRet get_physical_address(CPULoongArchState *env, MMUContext *context,
MMUAccessType access_type, int mmu_idx,
int is_debug);
void get_dir_base_width(CPULoongArchState *env, uint64_t *dir_base,
- uint64_t *dir_width, target_ulong level);
+ uint64_t *dir_width, unsigned int level);
hwaddr loongarch_cpu_get_phys_page_debug(CPUState *cpu, vaddr addr);
#endif /* LOONGARCH_CPU_MMU_H */
diff --git a/target/loongarch/tcg/helper.h b/target/loongarch/tcg/helper.h
index db57dbfc167..7e508c5a7b9 100644
--- a/target/loongarch/tcg/helper.h
+++ b/target/loongarch/tcg/helper.h
@@ -129,7 +129,7 @@ DEF_HELPER_2(invtlb_all_asid, void, env, tl)
DEF_HELPER_3(invtlb_page_asid, void, env, tl, tl)
DEF_HELPER_3(invtlb_page_asid_or_g, void, env, tl, tl)
-DEF_HELPER_4(lddir, tl, env, tl, tl, i32)
+DEF_HELPER_4(lddir, tl, env, tl, i32, i32)
DEF_HELPER_4(ldpte, void, env, tl, tl, i32)
DEF_HELPER_1(ertn, void, env)
DEF_HELPER_1(idle, void, env)
diff --git a/target/loongarch/cpu_helper.c b/target/loongarch/cpu_helper.c
index 4a9db3ea4c1..867e7c88670 100644
--- a/target/loongarch/cpu_helper.c
+++ b/target/loongarch/cpu_helper.c
@@ -17,7 +17,7 @@
#include "tcg/tcg_loongarch.h"
void get_dir_base_width(CPULoongArchState *env, uint64_t *dir_base,
- uint64_t *dir_width, target_ulong level)
+ uint64_t *dir_width, unsigned int level)
{
switch (level) {
case 1:
diff --git a/target/loongarch/tcg/tlb_helper.c b/target/loongarch/tcg/tlb_helper.c
index 8cfce48a297..f85b68fa53d 100644
--- a/target/loongarch/tcg/tlb_helper.c
+++ b/target/loongarch/tcg/tlb_helper.c
@@ -595,7 +595,7 @@ bool loongarch_cpu_tlb_fill(CPUState *cs, vaddr address, int size,
}
target_ulong helper_lddir(CPULoongArchState *env, target_ulong base,
- target_ulong level, uint32_t mem_idx)
+ uint32_t level, uint32_t mem_idx)
{
CPUState *cs = env_cpu(env);
target_ulong badvaddr, index, phys;
@@ -603,7 +603,7 @@ target_ulong helper_lddir(CPULoongArchState *env, target_ulong base,
if (unlikely((level == 0) || (level > 4))) {
qemu_log_mask(LOG_GUEST_ERROR,
- "Attepted LDDIR with level %"PRId64"\n", level);
+ "Attepted LDDIR with level %u\n", level);
return base;
}
diff --git a/target/loongarch/tcg/insn_trans/trans_privileged.c.inc b/target/loongarch/tcg/insn_trans/trans_privileged.c.inc
index a407ab51b74..64e53a44606 100644
--- a/target/loongarch/tcg/insn_trans/trans_privileged.c.inc
+++ b/target/loongarch/tcg/insn_trans/trans_privileged.c.inc
@@ -380,7 +380,7 @@ static bool trans_lddir(DisasContext *ctx, arg_lddir *a)
if (check_plv(ctx)) {
return false;
}
- gen_helper_lddir(dest, tcg_env, src, tcg_constant_tl(a->imm), mem_idx);
+ gen_helper_lddir(dest, tcg_env, src, tcg_constant_i32(a->imm), mem_idx);
return true;
}
--
2.51.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 1/4] hw/loongarch/boot: Remove unnecessary cast to target_ulong
2025-10-09 20:19 ` [PATCH 1/4] hw/loongarch/boot: Remove unnecessary cast to target_ulong Philippe Mathieu-Daudé
@ 2025-10-09 21:46 ` Richard Henderson
2025-10-14 9:12 ` gaosong
1 sibling, 0 replies; 14+ messages in thread
From: Richard Henderson @ 2025-10-09 21:46 UTC (permalink / raw)
To: qemu-devel
On 10/9/25 13:19, Philippe Mathieu-Daudé wrote:
> Reduce initrd_size scope. It is already of signed type (ssize_t),
> no need to cast to unsigned for the comparison.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> hw/loongarch/boot.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/hw/loongarch/boot.c b/hw/loongarch/boot.c
> index a516415822d..3dd48cb8aab 100644
> --- a/hw/loongarch/boot.c
> +++ b/hw/loongarch/boot.c
> @@ -306,7 +306,7 @@ static ram_addr_t alloc_initrd_memory(struct loongarch_boot_info *info,
> static int64_t load_kernel_info(struct loongarch_boot_info *info)
> {
> uint64_t kernel_entry, kernel_low, kernel_high, initrd_offset = 0;
> - ssize_t kernel_size, initrd_size;
> + ssize_t kernel_size;
>
> kernel_size = load_elf(info->kernel_filename, NULL,
> cpu_loongarch_virt_to_phys, NULL,
> @@ -328,7 +328,8 @@ static int64_t load_kernel_info(struct loongarch_boot_info *info)
> }
>
> if (info->initrd_filename) {
> - initrd_size = get_image_size(info->initrd_filename);
> + ssize_t initrd_size = get_image_size(info->initrd_filename);
> +
> if (initrd_size > 0) {
> initrd_offset = ROUND_UP(kernel_high + 4 * kernel_size, 64 * KiB);
> initrd_offset = alloc_initrd_memory(info, initrd_offset,
> @@ -337,7 +338,7 @@ static int64_t load_kernel_info(struct loongarch_boot_info *info)
> initrd_offset, initrd_size);
> }
>
> - if (initrd_size == (target_ulong)-1) {
> + if (initrd_size == -1) {
> error_report("could not load initial ram disk '%s'",
> info->initrd_filename);
> exit(1);
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
r~
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 2/4] target/loongarch: Remove target_ulong use in gen_goto_tb()
2025-10-09 20:19 ` [PATCH 2/4] target/loongarch: Remove target_ulong use in gen_goto_tb() Philippe Mathieu-Daudé
@ 2025-10-09 21:46 ` Richard Henderson
2025-10-14 9:13 ` gaosong
1 sibling, 0 replies; 14+ messages in thread
From: Richard Henderson @ 2025-10-09 21:46 UTC (permalink / raw)
To: qemu-devel
On 10/9/25 13:19, Philippe Mathieu-Daudé wrote:
> translator_use_goto_tb() expects a vaddr type since commit
> b1c09220b4c ("accel/tcg: Replace target_ulong with vaddr in
> translator*()").
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> target/loongarch/tcg/translate.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/target/loongarch/tcg/translate.c b/target/loongarch/tcg/translate.c
> index 53a0b4c3ce9..e30b64c0e05 100644
> --- a/target/loongarch/tcg/translate.c
> +++ b/target/loongarch/tcg/translate.c
> @@ -99,7 +99,7 @@ void generate_exception(DisasContext *ctx, int excp)
> ctx->base.is_jmp = DISAS_NORETURN;
> }
>
> -static inline void gen_goto_tb(DisasContext *ctx, int n, target_ulong dest)
> +static inline void gen_goto_tb(DisasContext *ctx, int n, vaddr dest)
> {
> if (ctx->va32) {
> dest = (uint32_t) dest;
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
r~
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 3/4] target/loongarch: Remove target_ulong use in gdb_write_register handler
2025-10-09 20:19 ` [PATCH 3/4] target/loongarch: Remove target_ulong use in gdb_write_register handler Philippe Mathieu-Daudé
@ 2025-10-09 21:47 ` Richard Henderson
2025-10-14 9:17 ` gaosong
1 sibling, 0 replies; 14+ messages in thread
From: Richard Henderson @ 2025-10-09 21:47 UTC (permalink / raw)
To: qemu-devel
On 10/9/25 13:19, Philippe Mathieu-Daudé wrote:
> ldq_le_p() returns a uint64_t type, big enough to also hold
> ldl_le_p() return value. If we were building for a 32-bit
> LoongArch target, ldq_le_p() would not fit in target_ulong.
> Better stick to plain uint64_t.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> target/loongarch/gdbstub.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/target/loongarch/gdbstub.c b/target/loongarch/gdbstub.c
> index 471eda28c73..23a5eecc20b 100644
> --- a/target/loongarch/gdbstub.c
> +++ b/target/loongarch/gdbstub.c
> @@ -62,7 +62,7 @@ int loongarch_cpu_gdb_read_register(CPUState *cs, GByteArray *mem_buf, int n)
> int loongarch_cpu_gdb_write_register(CPUState *cs, uint8_t *mem_buf, int n)
> {
> CPULoongArchState *env = cpu_env(cs);
> - target_ulong tmp;
> + uint64_t tmp;
> int length = 0;
>
> if (n < 0 || n > 34) {
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
r~
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 4/4] target/loongarch: Do not use target_ulong type for LDDIR level
2025-10-09 20:19 ` [PATCH 4/4] target/loongarch: Do not use target_ulong type for LDDIR level Philippe Mathieu-Daudé
@ 2025-10-09 21:50 ` Richard Henderson
2025-10-14 9:18 ` gaosong
1 sibling, 0 replies; 14+ messages in thread
From: Richard Henderson @ 2025-10-09 21:50 UTC (permalink / raw)
To: qemu-devel
On 10/9/25 13:19, Philippe Mathieu-Daudé wrote:
> The LDDIR level page table is a 5-bit immediate. Using the
> uint32_t type for it is sufficient. Avoid the target_ulong type.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> target/loongarch/cpu-mmu.h | 2 +-
> target/loongarch/tcg/helper.h | 2 +-
> target/loongarch/cpu_helper.c | 2 +-
> target/loongarch/tcg/tlb_helper.c | 4 ++--
> target/loongarch/tcg/insn_trans/trans_privileged.c.inc | 2 +-
> 5 files changed, 6 insertions(+), 6 deletions(-)
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
r~
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/4] hw/loongarch/boot: Remove unnecessary cast to target_ulong
2025-10-09 20:19 ` [PATCH 1/4] hw/loongarch/boot: Remove unnecessary cast to target_ulong Philippe Mathieu-Daudé
2025-10-09 21:46 ` Richard Henderson
@ 2025-10-14 9:12 ` gaosong
1 sibling, 0 replies; 14+ messages in thread
From: gaosong @ 2025-10-14 9:12 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel
Cc: Bibo Mao, Pierrick Bouvier, Anton Johansson, Jiaxun Yang
在 2025/10/10 上午4:19, Philippe Mathieu-Daudé 写道:
> Reduce initrd_size scope. It is already of signed type (ssize_t),
> no need to cast to unsigned for the comparison.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> hw/loongarch/boot.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
Signed-off-by: Song Gao <gaosong@loongson.cn>
Thanks.
Song Gao
> diff --git a/hw/loongarch/boot.c b/hw/loongarch/boot.c
> index a516415822d..3dd48cb8aab 100644
> --- a/hw/loongarch/boot.c
> +++ b/hw/loongarch/boot.c
> @@ -306,7 +306,7 @@ static ram_addr_t alloc_initrd_memory(struct loongarch_boot_info *info,
> static int64_t load_kernel_info(struct loongarch_boot_info *info)
> {
> uint64_t kernel_entry, kernel_low, kernel_high, initrd_offset = 0;
> - ssize_t kernel_size, initrd_size;
> + ssize_t kernel_size;
>
> kernel_size = load_elf(info->kernel_filename, NULL,
> cpu_loongarch_virt_to_phys, NULL,
> @@ -328,7 +328,8 @@ static int64_t load_kernel_info(struct loongarch_boot_info *info)
> }
>
> if (info->initrd_filename) {
> - initrd_size = get_image_size(info->initrd_filename);
> + ssize_t initrd_size = get_image_size(info->initrd_filename);
> +
> if (initrd_size > 0) {
> initrd_offset = ROUND_UP(kernel_high + 4 * kernel_size, 64 * KiB);
> initrd_offset = alloc_initrd_memory(info, initrd_offset,
> @@ -337,7 +338,7 @@ static int64_t load_kernel_info(struct loongarch_boot_info *info)
> initrd_offset, initrd_size);
> }
>
> - if (initrd_size == (target_ulong)-1) {
> + if (initrd_size == -1) {
> error_report("could not load initial ram disk '%s'",
> info->initrd_filename);
> exit(1);
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 2/4] target/loongarch: Remove target_ulong use in gen_goto_tb()
2025-10-09 20:19 ` [PATCH 2/4] target/loongarch: Remove target_ulong use in gen_goto_tb() Philippe Mathieu-Daudé
2025-10-09 21:46 ` Richard Henderson
@ 2025-10-14 9:13 ` gaosong
1 sibling, 0 replies; 14+ messages in thread
From: gaosong @ 2025-10-14 9:13 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel
Cc: Bibo Mao, Pierrick Bouvier, Anton Johansson, Jiaxun Yang
在 2025/10/10 上午4:19, Philippe Mathieu-Daudé 写道:
> translator_use_goto_tb() expects a vaddr type since commit
> b1c09220b4c ("accel/tcg: Replace target_ulong with vaddr in
> translator*()").
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> target/loongarch/tcg/translate.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
Signed-off-by: Song Gao <gaosong@loongson.cn>
Thanks.
Song Gao
> diff --git a/target/loongarch/tcg/translate.c b/target/loongarch/tcg/translate.c
> index 53a0b4c3ce9..e30b64c0e05 100644
> --- a/target/loongarch/tcg/translate.c
> +++ b/target/loongarch/tcg/translate.c
> @@ -99,7 +99,7 @@ void generate_exception(DisasContext *ctx, int excp)
> ctx->base.is_jmp = DISAS_NORETURN;
> }
>
> -static inline void gen_goto_tb(DisasContext *ctx, int n, target_ulong dest)
> +static inline void gen_goto_tb(DisasContext *ctx, int n, vaddr dest)
> {
> if (ctx->va32) {
> dest = (uint32_t) dest;
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 3/4] target/loongarch: Remove target_ulong use in gdb_write_register handler
2025-10-09 20:19 ` [PATCH 3/4] target/loongarch: Remove target_ulong use in gdb_write_register handler Philippe Mathieu-Daudé
2025-10-09 21:47 ` Richard Henderson
@ 2025-10-14 9:17 ` gaosong
1 sibling, 0 replies; 14+ messages in thread
From: gaosong @ 2025-10-14 9:17 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel
Cc: Bibo Mao, Pierrick Bouvier, Anton Johansson, Jiaxun Yang
在 2025/10/10 上午4:19, Philippe Mathieu-Daudé 写道:
> ldq_le_p() returns a uint64_t type, big enough to also hold
> ldl_le_p() return value. If we were building for a 32-bit
> LoongArch target, ldq_le_p() would not fit in target_ulong.
> Better stick to plain uint64_t.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> target/loongarch/gdbstub.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
Signed-off-by: Song Gao <gaosong@loongson.cn>
Thanks.
Song Gao
> diff --git a/target/loongarch/gdbstub.c b/target/loongarch/gdbstub.c
> index 471eda28c73..23a5eecc20b 100644
> --- a/target/loongarch/gdbstub.c
> +++ b/target/loongarch/gdbstub.c
> @@ -62,7 +62,7 @@ int loongarch_cpu_gdb_read_register(CPUState *cs, GByteArray *mem_buf, int n)
> int loongarch_cpu_gdb_write_register(CPUState *cs, uint8_t *mem_buf, int n)
> {
> CPULoongArchState *env = cpu_env(cs);
> - target_ulong tmp;
> + uint64_t tmp;
> int length = 0;
>
> if (n < 0 || n > 34) {
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 4/4] target/loongarch: Do not use target_ulong type for LDDIR level
2025-10-09 20:19 ` [PATCH 4/4] target/loongarch: Do not use target_ulong type for LDDIR level Philippe Mathieu-Daudé
2025-10-09 21:50 ` Richard Henderson
@ 2025-10-14 9:18 ` gaosong
1 sibling, 0 replies; 14+ messages in thread
From: gaosong @ 2025-10-14 9:18 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel
Cc: Bibo Mao, Pierrick Bouvier, Anton Johansson, Jiaxun Yang
在 2025/10/10 上午4:19, Philippe Mathieu-Daudé 写道:
> The LDDIR level page table is a 5-bit immediate. Using the
> uint32_t type for it is sufficient. Avoid the target_ulong type.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> target/loongarch/cpu-mmu.h | 2 +-
> target/loongarch/tcg/helper.h | 2 +-
> target/loongarch/cpu_helper.c | 2 +-
> target/loongarch/tcg/tlb_helper.c | 4 ++--
> target/loongarch/tcg/insn_trans/trans_privileged.c.inc | 2 +-
> 5 files changed, 6 insertions(+), 6 deletions(-)
Signed-off-by: Song Gao <gaosong@loongson.cn>
Thanks.
Song Gao
> diff --git a/target/loongarch/cpu-mmu.h b/target/loongarch/cpu-mmu.h
> index 0068d22efcb..dbc69c7c0f2 100644
> --- a/target/loongarch/cpu-mmu.h
> +++ b/target/loongarch/cpu-mmu.h
> @@ -34,7 +34,7 @@ TLBRet get_physical_address(CPULoongArchState *env, MMUContext *context,
> MMUAccessType access_type, int mmu_idx,
> int is_debug);
> void get_dir_base_width(CPULoongArchState *env, uint64_t *dir_base,
> - uint64_t *dir_width, target_ulong level);
> + uint64_t *dir_width, unsigned int level);
> hwaddr loongarch_cpu_get_phys_page_debug(CPUState *cpu, vaddr addr);
>
> #endif /* LOONGARCH_CPU_MMU_H */
> diff --git a/target/loongarch/tcg/helper.h b/target/loongarch/tcg/helper.h
> index db57dbfc167..7e508c5a7b9 100644
> --- a/target/loongarch/tcg/helper.h
> +++ b/target/loongarch/tcg/helper.h
> @@ -129,7 +129,7 @@ DEF_HELPER_2(invtlb_all_asid, void, env, tl)
> DEF_HELPER_3(invtlb_page_asid, void, env, tl, tl)
> DEF_HELPER_3(invtlb_page_asid_or_g, void, env, tl, tl)
>
> -DEF_HELPER_4(lddir, tl, env, tl, tl, i32)
> +DEF_HELPER_4(lddir, tl, env, tl, i32, i32)
> DEF_HELPER_4(ldpte, void, env, tl, tl, i32)
> DEF_HELPER_1(ertn, void, env)
> DEF_HELPER_1(idle, void, env)
> diff --git a/target/loongarch/cpu_helper.c b/target/loongarch/cpu_helper.c
> index 4a9db3ea4c1..867e7c88670 100644
> --- a/target/loongarch/cpu_helper.c
> +++ b/target/loongarch/cpu_helper.c
> @@ -17,7 +17,7 @@
> #include "tcg/tcg_loongarch.h"
>
> void get_dir_base_width(CPULoongArchState *env, uint64_t *dir_base,
> - uint64_t *dir_width, target_ulong level)
> + uint64_t *dir_width, unsigned int level)
> {
> switch (level) {
> case 1:
> diff --git a/target/loongarch/tcg/tlb_helper.c b/target/loongarch/tcg/tlb_helper.c
> index 8cfce48a297..f85b68fa53d 100644
> --- a/target/loongarch/tcg/tlb_helper.c
> +++ b/target/loongarch/tcg/tlb_helper.c
> @@ -595,7 +595,7 @@ bool loongarch_cpu_tlb_fill(CPUState *cs, vaddr address, int size,
> }
>
> target_ulong helper_lddir(CPULoongArchState *env, target_ulong base,
> - target_ulong level, uint32_t mem_idx)
> + uint32_t level, uint32_t mem_idx)
> {
> CPUState *cs = env_cpu(env);
> target_ulong badvaddr, index, phys;
> @@ -603,7 +603,7 @@ target_ulong helper_lddir(CPULoongArchState *env, target_ulong base,
>
> if (unlikely((level == 0) || (level > 4))) {
> qemu_log_mask(LOG_GUEST_ERROR,
> - "Attepted LDDIR with level %"PRId64"\n", level);
> + "Attepted LDDIR with level %u\n", level);
> return base;
> }
>
> diff --git a/target/loongarch/tcg/insn_trans/trans_privileged.c.inc b/target/loongarch/tcg/insn_trans/trans_privileged.c.inc
> index a407ab51b74..64e53a44606 100644
> --- a/target/loongarch/tcg/insn_trans/trans_privileged.c.inc
> +++ b/target/loongarch/tcg/insn_trans/trans_privileged.c.inc
> @@ -380,7 +380,7 @@ static bool trans_lddir(DisasContext *ctx, arg_lddir *a)
> if (check_plv(ctx)) {
> return false;
> }
> - gen_helper_lddir(dest, tcg_env, src, tcg_constant_tl(a->imm), mem_idx);
> + gen_helper_lddir(dest, tcg_env, src, tcg_constant_i32(a->imm), mem_idx);
> return true;
> }
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 0/4] target/loongarch: Remove some unnecessary target_ulong uses
2025-10-09 20:19 [PATCH 0/4] target/loongarch: Remove some unnecessary target_ulong uses Philippe Mathieu-Daudé
` (3 preceding siblings ...)
2025-10-09 20:19 ` [PATCH 4/4] target/loongarch: Do not use target_ulong type for LDDIR level Philippe Mathieu-Daudé
@ 2025-10-14 10:00 ` gaosong
4 siblings, 0 replies; 14+ messages in thread
From: gaosong @ 2025-10-14 10:00 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel
Cc: Bibo Mao, Pierrick Bouvier, Anton Johansson, Jiaxun Yang
在 2025/10/10 上午4:19, Philippe Mathieu-Daudé 写道:
> Remove few invalid target_ulong uses in LoongArch frontend.
>
> Philippe Mathieu-Daudé (4):
> hw/loongarch/boot: Remove unnecessary cast to target_ulong
> target/loongarch: Remove target_ulong use in gen_goto_tb()
> target/loongarch: Remove target_ulong use in gdb_write_register
> handler
> target/loongarch: Do not use target_ulong type for LDDIR level
>
> target/loongarch/cpu-mmu.h | 2 +-
> target/loongarch/tcg/helper.h | 2 +-
> hw/loongarch/boot.c | 7 ++++---
> target/loongarch/cpu_helper.c | 2 +-
> target/loongarch/gdbstub.c | 2 +-
> target/loongarch/tcg/tlb_helper.c | 4 ++--
> target/loongarch/tcg/translate.c | 2 +-
> target/loongarch/tcg/insn_trans/trans_privileged.c.inc | 2 +-
> 8 files changed, 12 insertions(+), 11 deletions(-)
>
Sorry for the wrong 'sig
Reviewed-by: Song Gao <gaosong@loongson.cn>
Thanks.
Song Gao
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2025-10-14 10:01 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-09 20:19 [PATCH 0/4] target/loongarch: Remove some unnecessary target_ulong uses Philippe Mathieu-Daudé
2025-10-09 20:19 ` [PATCH 1/4] hw/loongarch/boot: Remove unnecessary cast to target_ulong Philippe Mathieu-Daudé
2025-10-09 21:46 ` Richard Henderson
2025-10-14 9:12 ` gaosong
2025-10-09 20:19 ` [PATCH 2/4] target/loongarch: Remove target_ulong use in gen_goto_tb() Philippe Mathieu-Daudé
2025-10-09 21:46 ` Richard Henderson
2025-10-14 9:13 ` gaosong
2025-10-09 20:19 ` [PATCH 3/4] target/loongarch: Remove target_ulong use in gdb_write_register handler Philippe Mathieu-Daudé
2025-10-09 21:47 ` Richard Henderson
2025-10-14 9:17 ` gaosong
2025-10-09 20:19 ` [PATCH 4/4] target/loongarch: Do not use target_ulong type for LDDIR level Philippe Mathieu-Daudé
2025-10-09 21:50 ` Richard Henderson
2025-10-14 9:18 ` gaosong
2025-10-14 10:00 ` [PATCH 0/4] target/loongarch: Remove some unnecessary target_ulong uses gaosong
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).