mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 15:23:53 -06:00
target/arm: Avoid splitting Zregs across lines in dump
Allow the line length to extend to 548 columns. While annoyingly wide, it's still less confusing than the continuations we print. Also, the default VL used by Linux (and max for A64FX) uses only 140 columns. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20230622151201.1578522-2-richard.henderson@linaro.org Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
3dc2afeab2
commit
a9d8407016
1 changed files with 14 additions and 22 deletions
|
@ -955,7 +955,7 @@ static void aarch64_cpu_dump_state(CPUState *cs, FILE *f, int flags)
|
|||
ARMCPU *cpu = ARM_CPU(cs);
|
||||
CPUARMState *env = &cpu->env;
|
||||
uint32_t psr = pstate_read(env);
|
||||
int i;
|
||||
int i, j;
|
||||
int el = arm_current_el(env);
|
||||
const char *ns_status;
|
||||
bool sve;
|
||||
|
@ -1014,7 +1014,7 @@ static void aarch64_cpu_dump_state(CPUState *cs, FILE *f, int flags)
|
|||
}
|
||||
|
||||
if (sve) {
|
||||
int j, zcr_len = sve_vqm1_for_el(env, el);
|
||||
int zcr_len = sve_vqm1_for_el(env, el);
|
||||
|
||||
for (i = 0; i <= FFR_PRED_NUM; i++) {
|
||||
bool eol;
|
||||
|
@ -1054,32 +1054,24 @@ static void aarch64_cpu_dump_state(CPUState *cs, FILE *f, int flags)
|
|||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < 32; i++) {
|
||||
if (zcr_len == 0) {
|
||||
if (zcr_len == 0) {
|
||||
/*
|
||||
* With vl=16, there are only 37 columns per register,
|
||||
* so output two registers per line.
|
||||
*/
|
||||
for (i = 0; i < 32; i++) {
|
||||
qemu_fprintf(f, "Z%02d=%016" PRIx64 ":%016" PRIx64 "%s",
|
||||
i, env->vfp.zregs[i].d[1],
|
||||
env->vfp.zregs[i].d[0], i & 1 ? "\n" : " ");
|
||||
} else if (zcr_len == 1) {
|
||||
qemu_fprintf(f, "Z%02d=%016" PRIx64 ":%016" PRIx64
|
||||
":%016" PRIx64 ":%016" PRIx64 "\n",
|
||||
i, env->vfp.zregs[i].d[3], env->vfp.zregs[i].d[2],
|
||||
env->vfp.zregs[i].d[1], env->vfp.zregs[i].d[0]);
|
||||
} else {
|
||||
}
|
||||
} else {
|
||||
for (i = 0; i < 32; i++) {
|
||||
qemu_fprintf(f, "Z%02d=", i);
|
||||
for (j = zcr_len; j >= 0; j--) {
|
||||
bool odd = (zcr_len - j) % 2 != 0;
|
||||
if (j == zcr_len) {
|
||||
qemu_fprintf(f, "Z%02d[%x-%x]=", i, j, j - 1);
|
||||
} else if (!odd) {
|
||||
if (j > 0) {
|
||||
qemu_fprintf(f, " [%x-%x]=", j, j - 1);
|
||||
} else {
|
||||
qemu_fprintf(f, " [%x]=", j);
|
||||
}
|
||||
}
|
||||
qemu_fprintf(f, "%016" PRIx64 ":%016" PRIx64 "%s",
|
||||
env->vfp.zregs[i].d[j * 2 + 1],
|
||||
env->vfp.zregs[i].d[j * 2],
|
||||
odd || j == 0 ? "\n" : ":");
|
||||
env->vfp.zregs[i].d[j * 2 + 0],
|
||||
j ? ":" : "\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue