target/ppc: Fix GDB SPR regnum indexing
authorNicholas Piggin <npiggin@gmail.com>
Thu, 7 Mar 2024 15:19:30 +0000 (01:19 +1000)
committerNicholas Piggin <npiggin@gmail.com>
Tue, 12 Mar 2024 16:47:04 +0000 (02:47 +1000)
Fix an off by one bug.

Fixes: 1b53948ff8f70 ("target/ppc: Use GDBFeature for dynamic XML")
Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
target/ppc/gdbstub.c

index 122ea9d0c0097422bafb6a2d3ba2e91b4237f26b..80a2e7990b6cd853b805ba446d7c6fba7deb41c4 100644 (file)
@@ -324,6 +324,9 @@ static void gdb_gen_spr_feature(CPUState *cs)
             continue;
         }
 
+        gdb_feature_builder_append_reg(&builder, g_ascii_strdown(spr->name, -1),
+                                       TARGET_LONG_BITS, num_regs,
+                                       "int", "spr");
         /*
          * GDB identifies registers based on the order they are
          * presented in the XML. These ids will not match QEMU's
@@ -334,10 +337,6 @@ static void gdb_gen_spr_feature(CPUState *cs)
          */
         spr->gdb_id = num_regs;
         num_regs++;
-
-        gdb_feature_builder_append_reg(&builder, g_ascii_strdown(spr->name, -1),
-                                       TARGET_LONG_BITS, num_regs,
-                                       "int", "spr");
     }
 
     gdb_feature_builder_end(&builder);