mirror of
https://github.com/azahar-emu/dynarmic
synced 2025-11-07 15:40:00 +01:00
{a32,a64}_interface: Clear exclusive state during an exceptional exit
This is normally done by the ERET instruction during a service call.
This commit is contained in:
parent
c788bcdf17
commit
9ab83180db
@ -90,6 +90,7 @@ struct Jit::Impl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ExceptionalExit() {
|
void ExceptionalExit() {
|
||||||
|
ClearExclusiveState();
|
||||||
if (!conf.wall_clock_cntpct) {
|
if (!conf.wall_clock_cntpct) {
|
||||||
const s64 ticks = jit_state.cycles_to_run - jit_state.cycles_remaining;
|
const s64 ticks = jit_state.cycles_to_run - jit_state.cycles_remaining;
|
||||||
conf.callbacks->AddTicks(ticks);
|
conf.callbacks->AddTicks(ticks);
|
||||||
|
|||||||
@ -88,6 +88,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ExceptionalExit() {
|
void ExceptionalExit() {
|
||||||
|
ClearExclusiveState();
|
||||||
if (!conf.wall_clock_cntpct) {
|
if (!conf.wall_clock_cntpct) {
|
||||||
const s64 ticks = jit_state.cycles_to_run - jit_state.cycles_remaining;
|
const s64 ticks = jit_state.cycles_to_run - jit_state.cycles_remaining;
|
||||||
conf.callbacks->AddTicks(ticks);
|
conf.callbacks->AddTicks(ticks);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user