Implement JIT Arm64 backend (#4114)

* Implement JIT Arm64 backend

* PPTC version bump

* Address some feedback from Arm64 JIT PR

* Address even more PR feedback

* Remove unused IsPageAligned function

* Sync Qc flag before calls

* Fix comment and remove unused enum

* Address riperiperi PR feedback

* Delete Breakpoint IR instruction that was only implemented for Arm64
This commit is contained in:
gdkchan 2023-01-10 19:16:59 -03:00 committed by GitHub
parent d16288a2a8
commit 5e0f8e8738
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
61 changed files with 10266 additions and 642 deletions

View file

@ -4,7 +4,7 @@ namespace Ryujinx.Memory
{
public static class MemoryManagement
{
public static IntPtr Allocate(ulong size)
public static IntPtr Allocate(ulong size, bool forJit)
{
if (OperatingSystem.IsWindows())
{
@ -12,7 +12,7 @@ namespace Ryujinx.Memory
}
else if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS())
{
return MemoryManagementUnix.Allocate(size);
return MemoryManagementUnix.Allocate(size, forJit);
}
else
{
@ -20,7 +20,7 @@ namespace Ryujinx.Memory
}
}
public static IntPtr Reserve(ulong size, bool viewCompatible)
public static IntPtr Reserve(ulong size, bool forJit, bool viewCompatible)
{
if (OperatingSystem.IsWindows())
{
@ -28,7 +28,7 @@ namespace Ryujinx.Memory
}
else if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS())
{
return MemoryManagementUnix.Reserve(size);
return MemoryManagementUnix.Reserve(size, forJit);
}
else
{
@ -36,7 +36,7 @@ namespace Ryujinx.Memory
}
}
public static bool Commit(IntPtr address, ulong size)
public static bool Commit(IntPtr address, ulong size, bool forJit)
{
if (OperatingSystem.IsWindows())
{
@ -44,7 +44,7 @@ namespace Ryujinx.Memory
}
else if (OperatingSystem.IsLinux() || OperatingSystem.IsMacOS())
{
return MemoryManagementUnix.Commit(address, size);
return MemoryManagementUnix.Commit(address, size, forJit);
}
else
{