mirror of
https://github.com/citra-emu/citra.git
synced 2024-11-25 11:50:14 +00:00
JitX64: Add accessors for ARMul_State::exclusive_tag and ARMul_State::exclusive_state
This commit is contained in:
parent
b9a852b048
commit
4f012099a0
@ -171,4 +171,18 @@ Gen::OpArg JitX64::MJitStateVFlag() {
|
|||||||
return Gen::MDisp(reg_alloc.JitStateReg(), offsetof(JitState, cpu_state) + offsetof(ARMul_State, VFlag));
|
return Gen::MDisp(reg_alloc.JitStateReg(), offsetof(JitState, cpu_state) + offsetof(ARMul_State, VFlag));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Gen::OpArg JitX64::MJitStateExclusiveTag() {
|
||||||
|
static_assert(std::is_same<decltype(JitState::cpu_state), ARMul_State>::value, "JitState::cpu_state must be ARMul_State");
|
||||||
|
static_assert(std::is_same<decltype(ARMul_State::exclusive_tag), u32>::value, "exclusive_tag must be u32");
|
||||||
|
|
||||||
|
return Gen::MDisp(reg_alloc.JitStateReg(), offsetof(JitState, cpu_state) + offsetof(ARMul_State, exclusive_tag));
|
||||||
|
}
|
||||||
|
|
||||||
|
Gen::OpArg JitX64::MJitStateExclusiveState() {
|
||||||
|
static_assert(std::is_same<decltype(JitState::cpu_state), ARMul_State>::value, "JitState::cpu_state must be ARMul_State");
|
||||||
|
static_assert(std::is_same<decltype(ARMul_State::exclusive_state), bool>::value, "exclusive_state must be bool");
|
||||||
|
|
||||||
|
return Gen::MDisp(reg_alloc.JitStateReg(), offsetof(JitState, cpu_state) + offsetof(ARMul_State, exclusive_state));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -82,6 +82,8 @@ private:
|
|||||||
Gen::OpArg MJitStateCFlag();
|
Gen::OpArg MJitStateCFlag();
|
||||||
Gen::OpArg MJitStateNFlag();
|
Gen::OpArg MJitStateNFlag();
|
||||||
Gen::OpArg MJitStateVFlag();
|
Gen::OpArg MJitStateVFlag();
|
||||||
|
Gen::OpArg MJitStateExclusiveTag();
|
||||||
|
Gen::OpArg MJitStateExclusiveState();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
struct CondManager {
|
struct CondManager {
|
||||||
|
@ -240,7 +240,6 @@ public:
|
|||||||
// process for our purposes), not per ARMul_State (which tracks CPU core state).
|
// process for our purposes), not per ARMul_State (which tracks CPU core state).
|
||||||
std::unordered_map<u32, int> instruction_cache;
|
std::unordered_map<u32, int> instruction_cache;
|
||||||
|
|
||||||
private:
|
|
||||||
void ResetMPCoreCP15Registers();
|
void ResetMPCoreCP15Registers();
|
||||||
|
|
||||||
// Defines a reservation granule of 2 words, which protects the first 2 words starting at the tag.
|
// Defines a reservation granule of 2 words, which protects the first 2 words starting at the tag.
|
||||||
|
Loading…
Reference in New Issue
Block a user