[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 12/53] target/hexagon: convert to use format_state instead of
From: |
Daniel P . Berrangé |
Subject: |
[PATCH v2 12/53] target/hexagon: convert to use format_state instead of dump_state |
Date: |
Tue, 14 Sep 2021 15:20:01 +0100 |
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
target/hexagon/cpu.c | 65 ++++++++++++++++++++------------------------
1 file changed, 29 insertions(+), 36 deletions(-)
diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c
index 14c628db7a..7802186ad7 100644
--- a/target/hexagon/cpu.c
+++ b/target/hexagon/cpu.c
@@ -98,7 +98,7 @@ static target_ulong read_p3_0(CPUHexagonState *env)
return control_reg;
}
-static void print_reg(FILE *f, CPUHexagonState *env, int regnum)
+static void format_reg(GString *buf, CPUHexagonState *env, int regnum)
{
target_ulong value;
@@ -109,13 +109,14 @@ static void print_reg(FILE *f, CPUHexagonState *env, int
regnum)
: env->gpr[regnum];
}
- qemu_fprintf(f, " %s = 0x" TARGET_FMT_lx "\n",
- hexagon_regnames[regnum], value);
+ g_string_append_printf(buf, " %s = 0x" TARGET_FMT_lx "\n",
+ hexagon_regnames[regnum], value);
}
-static void hexagon_dump(CPUHexagonState *env, FILE *f)
+static void hexagon_format_state(CPUState *cs, GString *buf, int flags)
{
- HexagonCPU *cpu = env_archcpu(env);
+ HexagonCPU *cpu = HEXAGON_CPU(cs);
+ CPUHexagonState *env = &cpu->env;
if (cpu->lldb_compat) {
/*
@@ -128,45 +129,37 @@ static void hexagon_dump(CPUHexagonState *env, FILE *f)
env->last_pc_dumped = env->gpr[HEX_REG_PC];
}
- qemu_fprintf(f, "General Purpose Registers = {\n");
+ g_string_append_printf(buf, "General Purpose Registers = {\n");
for (int i = 0; i < 32; i++) {
- print_reg(f, env, i);
+ format_reg(buf, env, i);
}
- print_reg(f, env, HEX_REG_SA0);
- print_reg(f, env, HEX_REG_LC0);
- print_reg(f, env, HEX_REG_SA1);
- print_reg(f, env, HEX_REG_LC1);
- print_reg(f, env, HEX_REG_M0);
- print_reg(f, env, HEX_REG_M1);
- print_reg(f, env, HEX_REG_USR);
- print_reg(f, env, HEX_REG_P3_0);
- print_reg(f, env, HEX_REG_GP);
- print_reg(f, env, HEX_REG_UGP);
- print_reg(f, env, HEX_REG_PC);
+ format_reg(buf, env, HEX_REG_SA0);
+ format_reg(buf, env, HEX_REG_LC0);
+ format_reg(buf, env, HEX_REG_SA1);
+ format_reg(buf, env, HEX_REG_LC1);
+ format_reg(buf, env, HEX_REG_M0);
+ format_reg(buf, env, HEX_REG_M1);
+ format_reg(buf, env, HEX_REG_USR);
+ format_reg(buf, env, HEX_REG_P3_0);
+ format_reg(buf, env, HEX_REG_GP);
+ format_reg(buf, env, HEX_REG_UGP);
+ format_reg(buf, env, HEX_REG_PC);
#ifdef CONFIG_USER_ONLY
/*
* Not modelled in user mode, print junk to minimize the diff's
* with LLDB output
*/
- qemu_fprintf(f, " cause = 0x000000db\n");
- qemu_fprintf(f, " badva = 0x00000000\n");
- qemu_fprintf(f, " cs0 = 0x00000000\n");
- qemu_fprintf(f, " cs1 = 0x00000000\n");
+ g_string_append_printf(buf, " cause = 0x000000db\n");
+ g_string_append_printf(buf, " badva = 0x00000000\n");
+ g_string_append_printf(buf, " cs0 = 0x00000000\n");
+ g_string_append_printf(buf, " cs1 = 0x00000000\n");
#else
- print_reg(f, env, HEX_REG_CAUSE);
- print_reg(f, env, HEX_REG_BADVA);
- print_reg(f, env, HEX_REG_CS0);
- print_reg(f, env, HEX_REG_CS1);
+ format_reg(buf, env, HEX_REG_CAUSE);
+ format_reg(buf, env, HEX_REG_BADVA);
+ format_reg(buf, env, HEX_REG_CS0);
+ format_reg(buf, env, HEX_REG_CS1);
#endif
- qemu_fprintf(f, "}\n");
-}
-
-static void hexagon_dump_state(CPUState *cs, FILE *f, int flags)
-{
- HexagonCPU *cpu = HEXAGON_CPU(cs);
- CPUHexagonState *env = &cpu->env;
-
- hexagon_dump(env, f);
+ g_string_append_printf(buf, "}\n");
}
static void hexagon_cpu_set_pc(CPUState *cs, vaddr value)
@@ -283,7 +276,7 @@ static void hexagon_cpu_class_init(ObjectClass *c, void
*data)
cc->class_by_name = hexagon_cpu_class_by_name;
cc->has_work = hexagon_cpu_has_work;
- cc->dump_state = hexagon_dump_state;
+ cc->format_state = hexagon_format_state;
cc->set_pc = hexagon_cpu_set_pc;
cc->gdb_read_register = hexagon_gdb_read_register;
cc->gdb_write_register = hexagon_gdb_write_register;
--
2.31.1
- [PATCH v2 08/53] target/arm: convert to use format_state instead of dump_state, (continued)
- [PATCH v2 10/53] target/cris: convert to use format_state instead of dump_state, Daniel P . Berrangé, 2021/09/14
- [PATCH v2 11/53] target/hexagon: delete unused hexagon_debug() method, Daniel P . Berrangé, 2021/09/14
- [PATCH v2 12/53] target/hexagon: convert to use format_state instead of dump_state,
Daniel P . Berrangé <=
- [PATCH v2 13/53] target/hppa: convert to use format_state instead of dump_state, Daniel P . Berrangé, 2021/09/14
- [PATCH v2 14/53] target/i386: convert to use format_state instead of dump_state, Daniel P . Berrangé, 2021/09/14
- [PATCH v2 15/53] target/m68k: convert to use format_state instead of dump_state, Daniel P . Berrangé, 2021/09/14
- [PATCH v2 16/53] target/microblaze: convert to use format_state instead of dump_state, Daniel P . Berrangé, 2021/09/14