diff options
author | Laurent Vivier <laurent@vivier.eu> | 2017-12-21 09:30:57 +0100 |
---|---|---|
committer | Laurent Vivier <laurent@vivier.eu> | 2017-12-21 20:11:28 +0100 |
commit | cea066821c75a533536bcbc6d79db07f2e0432f4 (patch) | |
tree | 5958b48c27e39cb92216d6a0a497881acf28c31c /target/m68k/monitor.c | |
parent | 5f63f6ab50b7c70bb8af8e0bd515ea14129c7aaa (diff) | |
download | qemu-cea066821c75a533536bcbc6d79db07f2e0432f4.zip qemu-cea066821c75a533536bcbc6d79db07f2e0432f4.tar.gz qemu-cea066821c75a533536bcbc6d79db07f2e0432f4.tar.bz2 |
target/m68k: add monitor.c
This allows to use registers content in the monitor.
Example:
BEFORE:
(qemu) print $d0
unknown register
AFTER:
(qemu) print $d0
0
(qemu) print $sr
0x2000
(qemu) x/10i $pc
0x40010a2a: movew %sr,%d0
0x40010a2c: oril #1792,%d0
0x40010a32: movew %d0,%sr
0x40010a34: movel %a0@,%d0
0x40010a36: btst #3,%d0
0x40010a3a: beqs 0x40010a26
0x40010a3c: movew %sr,%d0
0x40010a3e: andil #63743,%d0
0x40010a44: movew %d0,%sr
0x40010a46: rts
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Thomas Huth <huth@tuxfamily.org>
Message-Id: <20171221083057.17942-1-laurent@vivier.eu>
Diffstat (limited to 'target/m68k/monitor.c')
-rw-r--r-- | target/m68k/monitor.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/target/m68k/monitor.c b/target/m68k/monitor.c new file mode 100644 index 0000000..5605323 --- /dev/null +++ b/target/m68k/monitor.c @@ -0,0 +1,39 @@ +/* + * QEMU monitor for m68k + * + * This work is licensed under the terms of the GNU GPL, version 2 or + * later. See the COPYING file in the top-level directory. + */ + +#include "qemu/osdep.h" +#include "cpu.h" +#include "monitor/hmp-target.h" + +static const MonitorDef monitor_defs[] = { + { "d0", offsetof(CPUM68KState, dregs[0]) }, + { "d1", offsetof(CPUM68KState, dregs[1]) }, + { "d2", offsetof(CPUM68KState, dregs[2]) }, + { "d3", offsetof(CPUM68KState, dregs[3]) }, + { "d4", offsetof(CPUM68KState, dregs[4]) }, + { "d5", offsetof(CPUM68KState, dregs[5]) }, + { "d6", offsetof(CPUM68KState, dregs[6]) }, + { "d7", offsetof(CPUM68KState, dregs[7]) }, + { "a0", offsetof(CPUM68KState, aregs[0]) }, + { "a1", offsetof(CPUM68KState, aregs[1]) }, + { "a2", offsetof(CPUM68KState, aregs[2]) }, + { "a3", offsetof(CPUM68KState, aregs[3]) }, + { "a4", offsetof(CPUM68KState, aregs[4]) }, + { "a5", offsetof(CPUM68KState, aregs[5]) }, + { "a6", offsetof(CPUM68KState, aregs[6]) }, + { "a7", offsetof(CPUM68KState, aregs[7]) }, + { "pc", offsetof(CPUM68KState, pc) }, + { "sr", offsetof(CPUM68KState, sr) }, + { "ssp", offsetof(CPUM68KState, sp[0]) }, + { "usp", offsetof(CPUM68KState, sp[1]) }, + { NULL }, +}; + +const MonitorDef *target_monitor_defs(void) +{ + return monitor_defs; +} |