IHvExecutionContext.cs
1 using ARMeilleure.State; 2 3 namespace Ryujinx.Cpu.AppleHv 4 { 5 interface IHvExecutionContext 6 { 7 ulong Pc { get; set; } 8 ulong ElrEl1 { get; set; } 9 ulong EsrEl1 { get; set; } 10 11 long TpidrEl0 { get; set; } 12 long TpidrroEl0 { get; set; } 13 14 uint Pstate { get; set; } 15 16 uint Fpcr { get; set; } 17 uint Fpsr { get; set; } 18 19 ulong GetX(int index); 20 void SetX(int index, ulong value); 21 22 V128 GetV(int index); 23 void SetV(int index, V128 value); 24 25 public void Load(IHvExecutionContext context) 26 { 27 Pc = context.Pc; 28 ElrEl1 = context.ElrEl1; 29 EsrEl1 = context.EsrEl1; 30 TpidrEl0 = context.TpidrEl0; 31 TpidrroEl0 = context.TpidrroEl0; 32 Pstate = context.Pstate; 33 Fpcr = context.Fpcr; 34 Fpsr = context.Fpsr; 35 36 for (int i = 0; i < 32; i++) 37 { 38 SetX(i, context.GetX(i)); 39 SetV(i, context.GetV(i)); 40 } 41 } 42 } 43 }