qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH v2 10/11] target/microblaze: convert gdbstub to new helper


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH v2 10/11] target/microblaze: convert gdbstub to new helper
Date: Mon, 24 Mar 2025 17:45:18 +0100
User-agent: Mozilla Thunderbird

On 24/3/25 11:21, Alex Bennée wrote:
This is a pretty simple conversion given a single set of registers and
an existing helper to probe endianess.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

---
v2
   - use mb_cpu_is_big_endian
   - use explicit MO_32 size
   - handle differing size of env->ear between user/system
---
  target/microblaze/gdbstub.c | 49 +++++++++++++++++--------------------
  1 file changed, 22 insertions(+), 27 deletions(-)


@@ -50,62 +50,57 @@ int mb_cpu_gdb_read_register(CPUState *cs, GByteArray 
*mem_buf, int n)
  {
      MicroBlazeCPU *cpu = MICROBLAZE_CPU(cs);
      CPUMBState *env = &cpu->env;
-    uint32_t val;
+    MemOp mo = mb_cpu_is_big_endian(cs) ? MO_BE : MO_LE;
+    uint32_t msr;
switch (n) {
      case 1 ... 31:
-        val = env->regs[n];
-        break;
+        return gdb_get_reg32_value(mo | MO_32, mem_buf, &env->regs[n]);
      case GDB_PC:
-        val = env->pc;
-        break;
+        return gdb_get_reg32_value(mo | MO_32, mem_buf, &env->pc);
      case GDB_MSR:
-        val = mb_cpu_read_msr(env);
-        break;
+        msr = mb_cpu_read_msr(env);
+        return gdb_get_reg32_value(mo | MO_32, mem_buf, &msr);
      case GDB_EAR:
-        val = env->ear;
-        break;
+#if TARGET_LONG_BITS == 64

Not necessary if basing on top of:
https://lore.kernel.org/qemu-devel/20250212220155.1147144-5-richard.henderson@linaro.org/

+        return gdb_get_reg64_value(mo | MO_64, mem_buf, &env->ear);
+#else
+        return gdb_get_reg32_value(mo | MO_32, mem_buf, &env->ear);
+#endif




reply via email to

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