From: Zhao Liu <[email protected]> Dump EGPRs when guest supports APX.
Suggested-by: Paolo Bonzini <[email protected]> Tested-by: Xudong Hao <[email protected]> Signed-off-by: Zhao Liu <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Paolo Bonzini <[email protected]> --- target/i386/cpu-dump.c | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/target/i386/cpu-dump.c b/target/i386/cpu-dump.c index 67bf31e0caa..ed8fd363c6b 100644 --- a/target/i386/cpu-dump.c +++ b/target/i386/cpu-dump.c @@ -354,8 +354,7 @@ void x86_cpu_dump_state(CPUState *cs, FILE *f, int flags) qemu_fprintf(f, "RAX=%016" PRIx64 " RBX=%016" PRIx64 " RCX=%016" PRIx64 " RDX=%016" PRIx64 "\n" "RSI=%016" PRIx64 " RDI=%016" PRIx64 " RBP=%016" PRIx64 " RSP=%016" PRIx64 "\n" "R8 =%016" PRIx64 " R9 =%016" PRIx64 " R10=%016" PRIx64 " R11=%016" PRIx64 "\n" - "R12=%016" PRIx64 " R13=%016" PRIx64 " R14=%016" PRIx64 " R15=%016" PRIx64 "\n" - "RIP=%016" PRIx64 " RFL=%08x [%c%c%c%c%c%c%c] CPL=%d II=%d A20=%d SMM=%d HLT=%d\n", + "R12=%016" PRIx64 " R13=%016" PRIx64 " R14=%016" PRIx64 " R15=%016" PRIx64 "\n", env->regs[R_EAX], env->regs[R_EBX], env->regs[R_ECX], @@ -371,7 +370,32 @@ void x86_cpu_dump_state(CPUState *cs, FILE *f, int flags) env->regs[12], env->regs[13], env->regs[14], - env->regs[15], + env->regs[15]); + + if (env->features[FEAT_7_1_EDX] & CPUID_7_1_EDX_APXF) { + qemu_fprintf(f, "R16=%016" PRIx64 " R17=%016" PRIx64 " R18=%016" PRIx64 " R19=%016" PRIx64 "\n" + "R20=%016" PRIx64 " R21=%016" PRIx64 " R22=%016" PRIx64 " R23=%016" PRIx64 "\n" + "R24=%016" PRIx64 " R25=%016" PRIx64 " R26=%016" PRIx64 " R27=%016" PRIx64 "\n" + "R28=%016" PRIx64 " R29=%016" PRIx64 " R30=%016" PRIx64 " R31=%016" PRIx64 "\n", + env->regs[16], + env->regs[17], + env->regs[18], + env->regs[19], + env->regs[20], + env->regs[21], + env->regs[22], + env->regs[23], + env->regs[24], + env->regs[25], + env->regs[26], + env->regs[27], + env->regs[28], + env->regs[29], + env->regs[30], + env->regs[31]); + } + + qemu_fprintf(f, "RIP=%016" PRIx64 " RFL=%08x [%c%c%c%c%c%c%c] CPL=%d II=%d A20=%d SMM=%d HLT=%d\n", env->eip, eflags, eflags & DF_MASK ? 'D' : '-', eflags & CC_O ? 'O' : '-', -- 2.52.0
