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

@ -22,7 +22,8 @@ namespace Ryujinx.Memory
MAP_ANONYMOUS = 4,
MAP_NORESERVE = 8,
MAP_FIXED = 16,
MAP_UNLOCKED = 32
MAP_UNLOCKED = 32,
MAP_JIT_DARWIN = 0x800
}
[Flags]
@ -45,7 +46,6 @@ namespace Ryujinx.Memory
private const int MAP_UNLOCKED_LINUX_GENERIC = 0x80000;
private const int MAP_NORESERVE_DARWIN = 0x40;
private const int MAP_JIT_DARWIN = 0x800;
private const int MAP_ANONYMOUS_DARWIN = 0x1000;
public const int MADV_DONTNEED = 4;
@ -151,10 +151,9 @@ namespace Ryujinx.Memory
}
}
if (OperatingSystem.IsMacOSVersionAtLeast(10, 14))
if (flags.HasFlag(MmapFlags.MAP_JIT_DARWIN) && OperatingSystem.IsMacOSVersionAtLeast(10, 14))
{
// Only to be used with the Hardened Runtime.
// result |= MAP_JIT_DARWIN;
result |= (int)MmapFlags.MAP_JIT_DARWIN;
}
return result;