aboutsummaryrefslogtreecommitdiff
path: root/gdb/h8300-tdep.c
diff options
context:
space:
mode:
authorAndrey Volkov <avolkov@transas.com>2002-05-17 19:19:24 +0000
committerAndrey Volkov <avolkov@transas.com>2002-05-17 19:19:24 +0000
commitfc9746026442f6bba46e4b76707f3f52a9f03c40 (patch)
tree573ad6cc6955232786db214cb13b7b4a19bf4905 /gdb/h8300-tdep.c
parenta8cdafbd4e8dbf81a28d98de6a046bd9bc5cc097 (diff)
downloadfsf-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.c20
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