mirror of
https://github.com/Ryujinx/Ryujinx.git
synced 2025-07-01 14:50:47 -07:00
Optimize address translation and write tracking on the MMU (#571)
* Implement faster address translation and write tracking on the MMU * Rename MemoryAlloc to MemoryManagement, and other nits * Support multi-level page tables * Fix typo * Reword comment a bit * Support scalar vector loads/stores on the memory fast path, and minor fixes * Add missing cast * Alignment * Fix VirtualFree function signature * Change MemoryProtection enum to uint aswell for consistency
This commit is contained in:
@ -95,7 +95,7 @@ namespace ChocolArm64.Memory
|
||||
|
||||
int cpuId = getCpuId();
|
||||
|
||||
MemoryAlloc.Free(funcPtr);
|
||||
MemoryManagement.Free(funcPtr);
|
||||
|
||||
return (cpuId & (1 << 13)) != 0;
|
||||
}
|
||||
@ -104,7 +104,7 @@ namespace ChocolArm64.Memory
|
||||
{
|
||||
ulong codeLength = (ulong)code.Length;
|
||||
|
||||
IntPtr funcPtr = MemoryAlloc.Allocate(codeLength);
|
||||
IntPtr funcPtr = MemoryManagement.Allocate(codeLength);
|
||||
|
||||
unsafe
|
||||
{
|
||||
@ -118,7 +118,7 @@ namespace ChocolArm64.Memory
|
||||
}
|
||||
}
|
||||
|
||||
MemoryAlloc.Reprotect(funcPtr, codeLength, MemoryProtection.Execute);
|
||||
MemoryManagement.Reprotect(funcPtr, codeLength, MemoryProtection.Execute);
|
||||
|
||||
return funcPtr;
|
||||
}
|
||||
|
Reference in New Issue
Block a user