| 123456789101112131415161718192021222324252627282930313233343536373839 |
- using ARMeilleure.Memory;
- using ARMeilleure.State;
- using ARMeilleure.Translation;
- using Ryujinx.Cpu;
- using Ryujinx.Cpu.Jit;
- namespace Ryujinx.Tests.Cpu
- {
- public class CpuContext
- {
- private readonly Translator _translator;
- public CpuContext(IMemoryManager memory, bool for64Bit)
- {
- _translator = new Translator(new JitMemoryAllocator(), memory, for64Bit);
- memory.UnmapEvent += UnmapHandler;
- }
- private void UnmapHandler(ulong address, ulong size)
- {
- _translator.InvalidateJitCacheRegion(address, size);
- }
- public static ExecutionContext CreateExecutionContext()
- {
- return new ExecutionContext(new JitMemoryAllocator(), new TickSource(19200000));
- }
- public void Execute(ExecutionContext context, ulong address)
- {
- _translator.Execute(context, address);
- }
- public void InvalidateCacheRegion(ulong address, ulong size)
- {
- _translator.InvalidateJitCacheRegion(address, size);
- }
- }
- }
|