aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@gnu.org>2003-08-10 14:05:47 +0000
committerMark Kettenis <kettenis@gnu.org>2003-08-10 14:05:47 +0000
commit87232496c6542210f59c3de7ffec559bcb187cb5 (patch)
tree72f3d4f134709594d3578ba1694de137e653f7df
parentc9b9de0b070e8f0beb4c082dd4d5bc909996aa2d (diff)
downloadgdb-87232496c6542210f59c3de7ffec559bcb187cb5.zip
gdb-87232496c6542210f59c3de7ffec559bcb187cb5.tar.gz
gdb-87232496c6542210f59c3de7ffec559bcb187cb5.tar.bz2
* sol-thread.c (sol_thread_store_registers): Use regcache_collect
and supply_register instead of manipulating the register buffer directly. From Peter Schauer (Peter.Schauer@regent.e-technik.tu-muenchen.de):
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/sol-thread.c13
2 files changed, 11 insertions, 7 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 4b79aff..e1f3b11 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,6 +1,11 @@
2003-08-10 Mark Kettenis <kettenis@gnu.org>
From Peter Schauer (Peter.Schauer@regent.e-technik.tu-muenchen.de):
+ * sol-thread.c (sol_thread_store_registers): Use regcache_collect
+ and supply_register instead of manipulating the register buffer
+ directly.
+
+ From Peter Schauer (Peter.Schauer@regent.e-technik.tu-muenchen.de):
* config/i386/nm-i386sol2.h
(TARGET_REGION_SIZE_OK_FOR_HW_WATCHPOINT): Define to one.
diff --git a/gdb/sol-thread.c b/gdb/sol-thread.c
index 8e2c4ad..a96e8cb 100644
--- a/gdb/sol-thread.c
+++ b/gdb/sol-thread.c
@@ -646,10 +646,10 @@ sol_thread_store_registers (int regno)
if (regno != -1)
{ /* Not writing all the regs */
- /* save new register value */
- char* old_value = (char*) alloca (DEPRECATED_REGISTER_SIZE);
- memcpy (old_value, &deprecated_registers[REGISTER_BYTE (regno)],
- DEPRECATED_REGISTER_SIZE);
+ char old_value[MAX_REGISTER_SIZE];
+
+ /* Save new register value. */
+ regcache_collect (regno, old_value);
val = p_td_thr_getgregs (&thandle, gregset);
if (val != TD_OK)
@@ -660,9 +660,8 @@ sol_thread_store_registers (int regno)
error ("sol_thread_store_registers: td_thr_getfpregs %s",
td_err_string (val));
- /* restore new register value */
- memcpy (&deprecated_registers[REGISTER_BYTE (regno)], old_value,
- DEPRECATED_REGISTER_SIZE);
+ /* Restore new register value. */
+ supply_register (regno, old_value);
#if 0
/* thread_db doesn't seem to handle this right */