blob: 7990ab72aa0c2026dfe554ca4024289e75244532 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
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();
}
}
|