ARMeilleure: Move TPIDR_EL0 and TPIDRRO_EL0 to NativeContext (#4661)
* ARMeilleure: Move TPIDR_EL0 and TPIDRRO_EL0 to NativeContext Some games access these system registers several tens of thousands of times in a second from many different threads. While this isn't really crippling, it is a lot of wasted time spent in a reverse pinvoke transition. Example games are Pokemon Scarlet/Violet and BOTW. These games have a lot of different potential bottlenecks so it's unlikely you will see a consistent improvement, but it definitely disappears from the cpu profile. * Remove unreachable code. * Add ulong conversion for offsets * Nit
This commit is contained in:
parent
915d6d044c
commit
9ef94c8292
7 changed files with 101 additions and 58 deletions
|
@ -27,8 +27,17 @@ namespace ARMeilleure.State
|
|||
// Since EL2 isn't implemented, CNTVOFF_EL2 = 0
|
||||
public ulong CntvctEl0 => CntpctEl0;
|
||||
|
||||
public long TpidrEl0 { get; set; }
|
||||
public long TpidrroEl0 { get; set; }
|
||||
public long TpidrEl0
|
||||
{
|
||||
get => _nativeContext.GetTpidrEl0();
|
||||
set => _nativeContext.SetTpidrEl0(value);
|
||||
}
|
||||
|
||||
public long TpidrroEl0
|
||||
{
|
||||
get => _nativeContext.GetTpidrroEl0();
|
||||
set => _nativeContext.SetTpidrroEl0(value);
|
||||
}
|
||||
|
||||
public uint Pstate
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue