|
|
@ -251,10 +251,16 @@ void ARM_Dynarmic_32::SetTPIDR_EL0(u64 value) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void ARM_Dynarmic_32::ChangeProcessorID(std::size_t new_core_id) {
|
|
|
|
void ARM_Dynarmic_32::ChangeProcessorID(std::size_t new_core_id) {
|
|
|
|
|
|
|
|
if (!jit) {
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
jit->ChangeProcessorID(new_core_id);
|
|
|
|
jit->ChangeProcessorID(new_core_id);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void ARM_Dynarmic_32::SaveContext(ThreadContext32& ctx) {
|
|
|
|
void ARM_Dynarmic_32::SaveContext(ThreadContext32& ctx) {
|
|
|
|
|
|
|
|
if (!jit) {
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
Dynarmic::A32::Context context;
|
|
|
|
Dynarmic::A32::Context context;
|
|
|
|
jit->SaveContext(context);
|
|
|
|
jit->SaveContext(context);
|
|
|
|
ctx.cpu_registers = context.Regs();
|
|
|
|
ctx.cpu_registers = context.Regs();
|
|
|
@ -264,6 +270,9 @@ void ARM_Dynarmic_32::SaveContext(ThreadContext32& ctx) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void ARM_Dynarmic_32::LoadContext(const ThreadContext32& ctx) {
|
|
|
|
void ARM_Dynarmic_32::LoadContext(const ThreadContext32& ctx) {
|
|
|
|
|
|
|
|
if (!jit) {
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
Dynarmic::A32::Context context;
|
|
|
|
Dynarmic::A32::Context context;
|
|
|
|
context.Regs() = ctx.cpu_registers;
|
|
|
|
context.Regs() = ctx.cpu_registers;
|
|
|
|
context.ExtRegs() = ctx.extension_registers;
|
|
|
|
context.ExtRegs() = ctx.extension_registers;
|
|
|
@ -273,6 +282,9 @@ void ARM_Dynarmic_32::LoadContext(const ThreadContext32& ctx) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void ARM_Dynarmic_32::PrepareReschedule() {
|
|
|
|
void ARM_Dynarmic_32::PrepareReschedule() {
|
|
|
|
|
|
|
|
if (!jit) {
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
jit->HaltExecution();
|
|
|
|
jit->HaltExecution();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|