forked from MeloNX/MeloNX
* Implement a new JIT for Arm devices * Auto-format * Make a lot of Assembler members read-only * More read-only * Fix more warnings * ObjectDisposedException.ThrowIf * New JIT cache for platforms that enforce W^X, currently unused * Remove unused using * Fix assert * Pass memory manager type around * Safe memory manager mode support + other improvements * Actual safe memory manager mode masking support * PR feedback
33 lines
1.0 KiB
C#
33 lines
1.0 KiB
C#
using ARMeilleure.Common;
|
|
using ARMeilleure.Memory;
|
|
using Ryujinx.Cpu.LightningJit.Arm32;
|
|
using Ryujinx.Cpu.LightningJit.Arm64;
|
|
using Ryujinx.Cpu.LightningJit.State;
|
|
using System;
|
|
using System.Runtime.InteropServices;
|
|
|
|
namespace Ryujinx.Cpu.LightningJit
|
|
{
|
|
class AarchCompiler
|
|
{
|
|
public static CompiledFunction Compile(
|
|
CpuPreset cpuPreset,
|
|
IMemoryManager memoryManager,
|
|
ulong address,
|
|
AddressTable<ulong> funcTable,
|
|
IntPtr dispatchStubPtr,
|
|
ExecutionMode executionMode,
|
|
Architecture targetArch)
|
|
{
|
|
if (executionMode == ExecutionMode.Aarch64)
|
|
{
|
|
return A64Compiler.Compile(cpuPreset, memoryManager, address, funcTable, dispatchStubPtr, targetArch);
|
|
}
|
|
else
|
|
{
|
|
return A32Compiler.Compile(cpuPreset, memoryManager, address, funcTable, dispatchStubPtr, executionMode == ExecutionMode.Aarch32Thumb, targetArch);
|
|
}
|
|
}
|
|
}
|
|
}
|