@@ -778,8 +778,10 @@ static inline void mips_tc_wake(MIPSCPU *cpu, int tc)
}
}
-static inline void mips_tc_sleep(CPUMIPSState *c, int tc)
+static inline void mips_tc_sleep(MIPSCPU *cpu, int tc)
{
+ CPUMIPSState *c = &cpu->env;
+
/* FIXME: TC reschedule. */
if (!mips_vpe_active(c)) {
mips_vpe_sleep(c);
@@ -1378,7 +1380,7 @@ void helper_mtc0_tchalt (target_ulong arg1)
// TODO: Halt TC / Restart (if allocated+active) TC.
if (env->active_tc.CP0_TCHalt & 1) {
- mips_tc_sleep(env, env->current_tc);
+ mips_tc_sleep(mips_env_get_cpu(env), env->current_tc);
} else {
mips_tc_wake(mips_env_get_cpu(env), env->current_tc);
}
@@ -1397,7 +1399,7 @@ void helper_mttc0_tchalt (target_ulong arg1)
other->tcs[other_tc].CP0_TCHalt = arg1;
if (arg1 & 1) {
- mips_tc_sleep(other, other_tc);
+ mips_tc_sleep(mips_env_get_cpu(other), other_tc);
} else {
mips_tc_wake(mips_env_get_cpu(other), other_tc);
}
Needed for mips_vpe_sleep(). Signed-off-by: Andreas Färber <afaerber@suse.de> --- target-mips/op_helper.c | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-)