diff options
author | merry <git@mary.rs> | 2022-03-11 02:16:32 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-11 03:16:32 +0100 |
commit | bb2f9df0a1d5e7cbd333c39cd485a42a19a772dc (patch) | |
tree | 4f33eed9a64cd7b001dec68d344eae852a370c06 /Ryujinx.HLE/HOS/Kernel/Threading/KThread.cs | |
parent | 54bfaa125d9b6ae1be53ec431d40326fba51d0de (diff) |
KThread: Fix GetPsr mask (#3180)1.1.65
* ExecutionContext: GetPstate / SetPstate
* Put it in NativeContext
* KThread: Fix GetPsr mask
* ExecutionContext: Turn methods into Pstate property
* Address nit
Diffstat (limited to 'Ryujinx.HLE/HOS/Kernel/Threading/KThread.cs')
-rw-r--r-- | Ryujinx.HLE/HOS/Kernel/Threading/KThread.cs | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/Ryujinx.HLE/HOS/Kernel/Threading/KThread.cs b/Ryujinx.HLE/HOS/Kernel/Threading/KThread.cs index 60f5e1a8..ee701a69 100644 --- a/Ryujinx.HLE/HOS/Kernel/Threading/KThread.cs +++ b/Ryujinx.HLE/HOS/Kernel/Threading/KThread.cs @@ -658,10 +658,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading private static uint GetPsr(ARMeilleure.State.ExecutionContext context) { - return (context.GetPstateFlag(ARMeilleure.State.PState.NFlag) ? (1U << (int)ARMeilleure.State.PState.NFlag) : 0U) | - (context.GetPstateFlag(ARMeilleure.State.PState.ZFlag) ? (1U << (int)ARMeilleure.State.PState.ZFlag) : 0U) | - (context.GetPstateFlag(ARMeilleure.State.PState.CFlag) ? (1U << (int)ARMeilleure.State.PState.CFlag) : 0U) | - (context.GetPstateFlag(ARMeilleure.State.PState.VFlag) ? (1U << (int)ARMeilleure.State.PState.VFlag) : 0U); + return context.Pstate & 0xFF0FFE20; } private ThreadContext GetCurrentContext() @@ -1371,7 +1368,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading PreferredCore = _originalPreferredCore; AffinityMask = _originalAffinityMask; - + if (AffinityMask != affinityMask) { if ((AffinityMask & 1UL << ActiveCore) != 0) |