aboutsummaryrefslogtreecommitdiff
path: root/gdb/i386gnu-nat.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/i386gnu-nat.c')
-rw-r--r--gdb/i386gnu-nat.c23
1 files changed, 11 insertions, 12 deletions
diff --git a/gdb/i386gnu-nat.c b/gdb/i386gnu-nat.c
index 3b61997..3547cd5 100644
--- a/gdb/i386gnu-nat.c
+++ b/gdb/i386gnu-nat.c
@@ -66,7 +66,7 @@ static int reg_offset[] =
of the corresponding (pseudo) registers. */
static void
-fetch_fpregs (struct proc *thread)
+fetch_fpregs (struct regcache *regcache, struct proc *thread)
{
mach_msg_type_number_t count = i386_FLOAT_STATE_COUNT;
struct i386_float_state state;
@@ -84,12 +84,12 @@ fetch_fpregs (struct proc *thread)
if (!state.initialized)
{
/* The floating-point state isn't initialized. */
- i387_supply_fsave (current_regcache, -1, NULL);
+ i387_supply_fsave (regcache, -1, NULL);
}
else
{
/* Supply the floating-point registers. */
- i387_supply_fsave (current_regcache, -1, state.hw_state);
+ i387_supply_fsave (regcache, -1, state.hw_state);
}
}
@@ -113,7 +113,7 @@ supply_fpregset (struct regcache *regcache, const gdb_fpregset_t *fpregs)
/* Fetch register REGNO, or all regs if REGNO is -1. */
void
-gnu_fetch_registers (int regno)
+gnu_fetch_registers (struct regcache *regcache, int regno)
{
struct proc *thread;
@@ -145,14 +145,14 @@ gnu_fetch_registers (int regno)
proc_debug (thread, "fetching all register");
for (i = 0; i < I386_NUM_GREGS; i++)
- regcache_raw_supply (current_regcache, i, REG_ADDR (state, i));
+ regcache_raw_supply (regcache, i, REG_ADDR (state, i));
thread->fetched_regs = ~0;
}
else
{
proc_debug (thread, "fetching register %s", REGISTER_NAME (regno));
- regcache_raw_supply (current_regcache, regno,
+ regcache_raw_supply (regcache, regno,
REG_ADDR (state, regno));
thread->fetched_regs |= (1 << regno);
}
@@ -162,7 +162,7 @@ gnu_fetch_registers (int regno)
{
proc_debug (thread, "fetching floating-point registers");
- fetch_fpregs (thread);
+ fetch_fpregs (regcache, thread);
}
}
@@ -170,7 +170,7 @@ gnu_fetch_registers (int regno)
/* Store the whole floating-point state into THREAD using information
from the corresponding (pseudo) registers. */
static void
-store_fpregs (struct proc *thread, int regno)
+store_fpregs (const struct regcache *regcache, struct proc *thread, int regno)
{
mach_msg_type_number_t count = i386_FLOAT_STATE_COUNT;
struct i386_float_state state;
@@ -187,7 +187,7 @@ store_fpregs (struct proc *thread, int regno)
/* FIXME: kettenis/2001-07-15: Is this right? Should we somehow
take into account DEPRECATED_REGISTER_VALID like the old code did? */
- i387_collect_fsave (current_regcache, regno, state.hw_state);
+ i387_collect_fsave (regcache, regno, state.hw_state);
err = thread_set_state (thread->port, i386_FLOAT_STATE,
(thread_state_t) &state, i386_FLOAT_STATE_COUNT);
@@ -201,9 +201,8 @@ store_fpregs (struct proc *thread, int regno)
/* Store at least register REGNO, or all regs if REGNO == -1. */
void
-gnu_store_registers (int regno)
+gnu_store_registers (struct regcache *regcache, int regno)
{
- struct regcache *regcache = current_regcache;
struct proc *thread;
/* Make sure we know about new threads. */
@@ -286,6 +285,6 @@ gnu_store_registers (int regno)
{
proc_debug (thread, "storing floating-point registers");
- store_fpregs (thread, regno);
+ store_fpregs (regcache, thread, regno);
}
}