summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2018-02-04 13:22:46 -0800
committerMax Filippov <jcmvbkbc@gmail.com>2018-03-13 11:30:21 -0700
commitb9317a2a69ac78f79ee4965037c8eaa407ed0724 (patch)
treebe67a2bf81f1425464cb3670973b9850ded27ce6
parentb55b1afda942306e4e40420aced1524bd83ba16d (diff)
downloadfocaccia-qemu-b9317a2a69ac78f79ee4965037c8eaa407ed0724.tar.gz
focaccia-qemu-b9317a2a69ac78f79ee4965037c8eaa407ed0724.zip
target/xtensa: mark register windows in the dump
Add arrows that mark beginning of register windows and position of the
current window in the windowed register file.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Diffstat (limited to '')
-rw-r--r--target/xtensa/translate.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/target/xtensa/translate.c b/target/xtensa/translate.c
index 3ad86d4508..5969d7c3cd 100644
--- a/target/xtensa/translate.c
+++ b/target/xtensa/translate.c
@@ -1219,8 +1219,13 @@ void xtensa_cpu_dump_state(CPUState *cs, FILE *f,
     cpu_fprintf(f, "\n");
 
     for (i = 0; i < env->config->nareg; ++i) {
-        cpu_fprintf(f, "AR%02d=%08x%c", i, env->phys_regs[i],
-                (i % 4) == 3 ? '\n' : ' ');
+        cpu_fprintf(f, "AR%02d=%08x ", i, env->phys_regs[i]);
+        if (i % 4 == 3) {
+            bool ws = (env->sregs[WINDOW_START] & (1 << (i / 4))) != 0;
+            bool cw = env->sregs[WINDOW_BASE] == i / 4;
+
+            cpu_fprintf(f, "%c%c\n", ws ? '<' : ' ', cw ? '=' : ' ');
+        }
     }
 
     if (xtensa_option_enabled(env->config, XTENSA_OPTION_FP_COPROCESSOR)) {