mirror of
https://github.com/Ryujinx/Ryujinx.git
synced 2024-08-16 13:48:42 +02:00
* Initial Apple Hypervisor based CPU emulation implementation * Add UseHypervisor Setting * Add basic MacOS support to Avalonia * Fix initialization * Fix GTK build * Fix/silence warnings * Change exceptions to asserts on HvAddressSpaceRange * Replace DllImport with LibraryImport * Fix LibraryImport * Remove unneeded usings * Revert outdated change * Set DiskCacheLoadState when using hypervisor too * Fix HvExecutionContext PC value * Address PR feedback * Use existing entitlements.xml file on distribution folder --------- Co-authored-by: riperiperi <rhy3756547@hotmail.com>
46 lines
1.1 KiB
C#
46 lines
1.1 KiB
C#
using ARMeilleure.State;
|
|
|
|
namespace Ryujinx.Cpu.AppleHv
|
|
{
|
|
public interface IHvExecutionContext
|
|
{
|
|
ulong Pc { get; set; }
|
|
ulong ElrEl1 { get; set; }
|
|
ulong EsrEl1 { get; set; }
|
|
|
|
long TpidrEl0 { get; set; }
|
|
long TpidrroEl0 { get; set; }
|
|
|
|
uint Pstate { get; set; }
|
|
|
|
uint Fpcr { get; set; }
|
|
uint Fpsr { get; set; }
|
|
|
|
ulong GetX(int index);
|
|
void SetX(int index, ulong value);
|
|
|
|
V128 GetV(int index);
|
|
void SetV(int index, V128 value);
|
|
|
|
public void Load(IHvExecutionContext context)
|
|
{
|
|
Pc = context.Pc;
|
|
ElrEl1 = context.ElrEl1;
|
|
EsrEl1 = context.EsrEl1;
|
|
TpidrEl0 = context.TpidrEl0;
|
|
TpidrroEl0 = context.TpidrroEl0;
|
|
Pstate = context.Pstate;
|
|
Fpcr = context.Fpcr;
|
|
Fpsr = context.Fpsr;
|
|
|
|
for (int i = 0; i < 32; i++)
|
|
{
|
|
SetX(i, context.GetX(i));
|
|
SetV(i, context.GetV(i));
|
|
}
|
|
}
|
|
|
|
void RequestInterrupt();
|
|
bool GetAndClearInterruptRequested();
|
|
}
|
|
} |