A32: Allow cleaning up exclusive state from the interface.
This function is normally required for emulating certain OS mechanisms.
This commit is contained in:
parent
df58a429ee
commit
2fa1c1d13c
2 changed files with 11 additions and 0 deletions
|
@ -87,6 +87,9 @@ public:
|
|||
void SaveContext(Context&) const;
|
||||
void LoadContext(const Context&);
|
||||
|
||||
/// Clears exclusive state for this core.
|
||||
void ClearExclusiveState();
|
||||
|
||||
/**
|
||||
* Returns true if Jit::Run was called but hasn't returned yet.
|
||||
* i.e.: We're in a callback.
|
||||
|
|
|
@ -102,6 +102,10 @@ struct Jit::Impl {
|
|||
emitter.ChangeProcessorID(value);
|
||||
}
|
||||
|
||||
void ClearExclusiveState() {
|
||||
jit_state.exclusive_state = 0;
|
||||
}
|
||||
|
||||
std::string Disassemble(const IR::LocationDescriptor& descriptor) {
|
||||
auto block = GetBasicBlock(descriptor);
|
||||
std::string result = fmt::format("address: {}\nsize: {} bytes\n", block.entrypoint, block.size);
|
||||
|
@ -236,6 +240,10 @@ void Jit::ExceptionalExit() {
|
|||
is_executing = false;
|
||||
}
|
||||
|
||||
void Jit::ClearExclusiveState() {
|
||||
impl->ClearExclusiveState();
|
||||
}
|
||||
|
||||
void Jit::ChangeProcessorID(size_t new_processor) {
|
||||
impl->ChangeProcessorID(new_processor);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue