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>
59 lines
1.2 KiB
C#
59 lines
1.2 KiB
C#
using ARMeilleure.State;
|
|
|
|
namespace Ryujinx.Cpu.AppleHv
|
|
{
|
|
unsafe class HvExecutionContextShadow : IHvExecutionContext
|
|
{
|
|
public ulong Pc { get; set; }
|
|
public ulong ElrEl1 { get; set; }
|
|
public ulong EsrEl1 { get; set; }
|
|
|
|
public long TpidrEl0 { get; set; }
|
|
public long TpidrroEl0 { get; set; }
|
|
|
|
public uint Pstate { get; set; }
|
|
|
|
public uint Fpcr { get; set; }
|
|
public uint Fpsr { get; set; }
|
|
|
|
public bool IsAarch32 { get; set; }
|
|
|
|
private readonly ulong[] _x;
|
|
private readonly V128[] _v;
|
|
|
|
public HvExecutionContextShadow()
|
|
{
|
|
_x = new ulong[32];
|
|
_v = new V128[32];
|
|
}
|
|
|
|
public ulong GetX(int index)
|
|
{
|
|
return _x[index];
|
|
}
|
|
|
|
public void SetX(int index, ulong value)
|
|
{
|
|
_x[index] = value;
|
|
}
|
|
|
|
public V128 GetV(int index)
|
|
{
|
|
return _v[index];
|
|
}
|
|
|
|
public void SetV(int index, V128 value)
|
|
{
|
|
_v[index] = value;
|
|
}
|
|
|
|
public void RequestInterrupt()
|
|
{
|
|
}
|
|
|
|
public bool GetAndClearInterruptRequested()
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
} |