diff options
author | Andrey Volkov <avolkov@transas.com> | 2002-05-17 19:19:24 +0000 |
---|---|---|
committer | Andrey Volkov <avolkov@transas.com> | 2002-05-17 19:19:24 +0000 |
commit | fc9746026442f6bba46e4b76707f3f52a9f03c40 (patch) | |
tree | 573ad6cc6955232786db214cb13b7b4a19bf4905 /gdb/h8300-tdep.c | |
parent | a8cdafbd4e8dbf81a28d98de6a046bd9bc5cc097 (diff) | |
download | fsf-binutils-gdb-fc9746026442f6bba46e4b76707f3f52a9f03c40.zip fsf-binutils-gdb-fc9746026442f6bba46e4b76707f3f52a9f03c40.tar.gz fsf-binutils-gdb-fc9746026442f6bba46e4b76707f3f52a9f03c40.tar.bz2 |
h8300: Add support of EXR register
Diffstat (limited to 'gdb/h8300-tdep.c')
-rw-r--r-- | gdb/h8300-tdep.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/gdb/h8300-tdep.c b/gdb/h8300-tdep.c index c642386..c90e8c6 100644 --- a/gdb/h8300-tdep.c +++ b/gdb/h8300-tdep.c @@ -39,8 +39,8 @@ extern int h8300hmode, h8300smode; -#undef NUM_REGS -#define NUM_REGS 11 +#undef NUM_REGS +#define NUM_REGS (h8300smode?12:11) #define UNSIGNED_SHORT(X) ((X) & 0xffff) @@ -62,7 +62,7 @@ static char *original_register_names[] = REGISTER_NAMES; static char *h8300h_register_names[] = {"er0", "er1", "er2", "er3", "er4", "er5", "er6", - "sp", "ccr", "pc", "cycles", "tick", "inst"}; + "sp", "ccr","pc", "cycles", "exr", "tick", "inst"}; char **h8300_register_names = original_register_names; @@ -871,6 +871,20 @@ h8300_print_register_hook (int regno) if ((Z | (N ^ V)) == 1) printf_unfiltered ("<= "); } + + if (regno == EXR_REGNUM && h8300smode) + { + /* EXR register */ + unsigned char b[REGISTER_SIZE]; + unsigned char l; + read_relative_register_raw_bytes (regno, b); + l = b[REGISTER_VIRTUAL_SIZE (EXR_REGNUM) - 1]; + printf_unfiltered ("\t"); + printf_unfiltered ("T-%d - - - ", (l & 0x80) != 0); + printf_unfiltered ("I2-%d ", (l & 4) != 0); + printf_unfiltered ("I1-%d ", (l & 2) != 0); + printf_unfiltered ("I0-%d", (l & 1) != 0); + } } void |