A64 Interface: Allow changing processor id.
This commit allows the JIT to be used per guest thread and change it's core when the thread is migrated.
This commit is contained in:
parent
d86a6f2211
commit
2068658a82
3 changed files with 16 additions and 1 deletions
|
@ -105,6 +105,8 @@ public:
|
|||
/// Modify PSTATE
|
||||
void SetPstate(std::uint32_t value);
|
||||
|
||||
void ChangeProcessorID(std::size_t new_processor);
|
||||
|
||||
/// Clears exclusive state for this core.
|
||||
void ClearExclusiveState();
|
||||
|
||||
|
|
|
@ -47,8 +47,12 @@ public:
|
|||
|
||||
void InvalidateCacheRanges(const boost::icl::interval_set<u64>& ranges);
|
||||
|
||||
void ChangeProcessorID(size_t value) {
|
||||
conf.processor_id = value;
|
||||
}
|
||||
|
||||
protected:
|
||||
const A64::UserConfig conf;
|
||||
A64::UserConfig conf;
|
||||
A64::Jit* jit_interface;
|
||||
BlockRangeInformation<u64> block_ranges;
|
||||
|
||||
|
|
|
@ -185,6 +185,11 @@ public:
|
|||
jit_state.SetPstate(value);
|
||||
}
|
||||
|
||||
void ChangeProcessorID(size_t value) {
|
||||
conf.processor_id = value;
|
||||
emitter.ChangeProcessorID(value);
|
||||
}
|
||||
|
||||
void ClearExclusiveState() {
|
||||
jit_state.exclusive_state = 0;
|
||||
}
|
||||
|
@ -379,6 +384,10 @@ void Jit::SetPstate(u32 value) {
|
|||
impl->SetPstate(value);
|
||||
}
|
||||
|
||||
void Jit::ChangeProcessorID(size_t new_processor) {
|
||||
impl->ChangeProcessorID(new_processor);
|
||||
}
|
||||
|
||||
void Jit::ClearExclusiveState() {
|
||||
impl->ClearExclusiveState();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue