hmp: fix info cpus for sparc targets

On sparc targets, info cpus returns this kind of output:

| info cpus
| * CPU #0: pc=0x0000000000424d18pc=0x0000000000424d18npc=0x0000000000424d1c thread_id=19460

pc is printed twice, there is no space between pc, pc and npc.

With this patch, pc is not printed anymore when has_npc is set. In addition
the space is printed before pc/nip/npc/PC instead of after the colon so that
multiple prints are possible. This result on the following kind of input on
sparc targets:

| info cpus
| * CPU #0: pc=0x0000000000424d18 npc=0x0000000000424d1c thread_id=19460

Cc: Luiz Capitulino <lcapitulino@redhat.com>
Cc: Markus Armbruster <armbru@redhat.com>
Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
This commit is contained in:
Aurelien Jarno 2012-10-19 23:19:19 +02:00 committed by Luiz Capitulino
parent a8170e5e97
commit 852bef0e0c

11
hmp.c
View File

@ -245,20 +245,19 @@ void hmp_info_cpus(Monitor *mon)
active = '*';
}
monitor_printf(mon, "%c CPU #%" PRId64 ": ", active, cpu->value->CPU);
monitor_printf(mon, "%c CPU #%" PRId64 ":", active, cpu->value->CPU);
if (cpu->value->has_pc) {
monitor_printf(mon, "pc=0x%016" PRIx64, cpu->value->pc);
monitor_printf(mon, " pc=0x%016" PRIx64, cpu->value->pc);
}
if (cpu->value->has_nip) {
monitor_printf(mon, "nip=0x%016" PRIx64, cpu->value->nip);
monitor_printf(mon, " nip=0x%016" PRIx64, cpu->value->nip);
}
if (cpu->value->has_npc) {
monitor_printf(mon, "pc=0x%016" PRIx64, cpu->value->pc);
monitor_printf(mon, "npc=0x%016" PRIx64, cpu->value->npc);
monitor_printf(mon, " npc=0x%016" PRIx64, cpu->value->npc);
}
if (cpu->value->has_PC) {
monitor_printf(mon, "PC=0x%016" PRIx64, cpu->value->PC);
monitor_printf(mon, " PC=0x%016" PRIx64, cpu->value->PC);
}
if (cpu->value->halted) {