summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2018-08-16 10:33:04 -0700
committerMax Filippov <jcmvbkbc@gmail.com>2018-08-19 17:14:25 -0700
commit2becc8fd7e6cbb69015ab7a2cbd21bba5a5ffbb9 (patch)
tree8f5a740a159d7557bf83350bfa655e9d2c559d5f
parent0abaa41d936becd914a16ee1fe2a981d96d19428 (diff)
downloadfocaccia-qemu-2becc8fd7e6cbb69015ab7a2cbd21bba5a5ffbb9.tar.gz
focaccia-qemu-2becc8fd7e6cbb69015ab7a2cbd21bba5a5ffbb9.zip
target/xtensa: fix gdbstub register counts
This fixes communication with gdb in the presence of type-5 (TIE state
mapped on user registers) and type-7 (special case of masked registers)
registers in the xtensa core config.

Cc: qemu-stable@nongnu.org
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
-rw-r--r--target/xtensa/helper.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/target/xtensa/helper.c b/target/xtensa/helper.c
index c9a6132700..efb3cef128 100644
--- a/target/xtensa/helper.c
+++ b/target/xtensa/helper.c
@@ -100,7 +100,9 @@ void xtensa_finalize_config(XtensaConfig *config)
         unsigned n_core_regs = 0;
 
         for (i = 0; config->gdb_regmap.reg[i].targno >= 0; ++i) {
-            if (config->gdb_regmap.reg[i].type != 6) {
+            if (config->gdb_regmap.reg[i].type != 5 &&
+                config->gdb_regmap.reg[i].type != 6 &&
+                config->gdb_regmap.reg[i].type != 7) {
                 ++n_regs;
                 if ((config->gdb_regmap.reg[i].flags & 0x1) == 0) {
                     ++n_core_regs;