diff options
author | Daniel Jacobowitz <drow@false.org> | 2007-07-12 19:59:00 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2007-07-12 19:59:00 +0000 |
commit | 0d37add96298857bfc56467b9cb81e1d38c88b41 (patch) | |
tree | 75550f645baa2c72eefb31869611ce45da80b62e | |
parent | ae8772e6ec3af7eea21b28642ad09cb7ce4c348b (diff) | |
download | gdb-0d37add96298857bfc56467b9cb81e1d38c88b41.zip gdb-0d37add96298857bfc56467b9cb81e1d38c88b41.tar.gz gdb-0d37add96298857bfc56467b9cb81e1d38c88b41.tar.bz2 |
* configure.srv: Set srv_linux_regsets for sh*-*-linux*.
* linux-sh-low.c (sh_fill_gregset, target_regsets): New.
-rw-r--r-- | gdb/gdbserver/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/gdbserver/configure.srv | 1 | ||||
-rw-r--r-- | gdb/gdbserver/linux-sh-low.c | 17 |
3 files changed, 23 insertions, 0 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 76561ff..ee41170 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,8 @@ +2007-07-12 Daniel Jacobowitz <dan@codesourcery.com> + + * configure.srv: Set srv_linux_regsets for sh*-*-linux*. + * linux-sh-low.c (sh_fill_gregset, target_regsets): New. + 2007-07-08 Pedro Alves <pedro_alves@portugalmail.pt> * win32-low.c (handle_output_debug_string): Ignore event if not diff --git a/gdb/gdbserver/configure.srv b/gdb/gdbserver/configure.srv index ff14adc..f62d276 100644 --- a/gdb/gdbserver/configure.srv +++ b/gdb/gdbserver/configure.srv @@ -126,6 +126,7 @@ case "${target}" in sh*-*-linux*) srv_regobj=reg-sh.o srv_tgtobj="linux-low.o linux-sh-low.o" srv_linux_usrregs=yes + srv_linux_regsets=yes srv_linux_thread_db=yes ;; spu*-*-*) srv_regobj=reg-spu.o diff --git a/gdb/gdbserver/linux-sh-low.c b/gdb/gdbserver/linux-sh-low.c index 8eef9ba..8b9f1f2 100644 --- a/gdb/gdbserver/linux-sh-low.c +++ b/gdb/gdbserver/linux-sh-low.c @@ -90,6 +90,23 @@ sh_breakpoint_at (CORE_ADDR where) return 0; } +/* Provide only a fill function for the general register set. ps_lgetregs + will use this for NPTL support. */ + +static void sh_fill_gregset (void *buf) +{ + int i; + + for (i = 0; i < 23; i++) + if (sh_regmap[i] != -1) + collect_register (i, (char *) buf + sh_regmap[i]); +} + +struct regset_info target_regsets[] = { + { 0, 0, 0, GENERAL_REGS, sh_fill_gregset, NULL }, + { 0, 0, -1, -1, NULL, NULL } +}; + struct linux_target_ops the_low_target = { sh_num_regs, sh_regmap, |