forked from Mirror/Ryujinx
parent
ff7a933ec0
commit
6416bc1938
3 changed files with 10 additions and 0 deletions
|
@ -40,6 +40,7 @@ namespace ARMeilleure.Instructions
|
||||||
case 0b11_011_1101_0000_011: dlg = new _U64(NativeInterface.GetTpidr); break;
|
case 0b11_011_1101_0000_011: dlg = new _U64(NativeInterface.GetTpidr); break;
|
||||||
case 0b11_011_1110_0000_000: dlg = new _U64(NativeInterface.GetCntfrqEl0); break;
|
case 0b11_011_1110_0000_000: dlg = new _U64(NativeInterface.GetCntfrqEl0); break;
|
||||||
case 0b11_011_1110_0000_001: dlg = new _U64(NativeInterface.GetCntpctEl0); break;
|
case 0b11_011_1110_0000_001: dlg = new _U64(NativeInterface.GetCntpctEl0); break;
|
||||||
|
case 0b11_011_1110_0000_010: dlg = new _U64(NativeInterface.GetCntvctEl0); break;
|
||||||
|
|
||||||
default: throw new NotImplementedException($"Unknown MRS 0x{op.RawOpCode:X8} at 0x{op.Address:X16}.");
|
default: throw new NotImplementedException($"Unknown MRS 0x{op.RawOpCode:X8} at 0x{op.Address:X16}.");
|
||||||
}
|
}
|
||||||
|
|
|
@ -136,6 +136,11 @@ namespace ARMeilleure.Instructions
|
||||||
return GetContext().CntpctEl0;
|
return GetContext().CntpctEl0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static ulong GetCntvctEl0()
|
||||||
|
{
|
||||||
|
return GetContext().CntvctEl0;
|
||||||
|
}
|
||||||
|
|
||||||
public static void SetFpcr(ulong value)
|
public static void SetFpcr(ulong value)
|
||||||
{
|
{
|
||||||
GetContext().Fpcr = (FPCR)value;
|
GetContext().Fpcr = (FPCR)value;
|
||||||
|
|
|
@ -32,6 +32,10 @@ namespace ARMeilleure.State
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CNTVCT_EL0 = CNTPCT_EL0 - CNTVOFF_EL2
|
||||||
|
// Since EL2 isn't implemented, CNTVOFF_EL2 = 0
|
||||||
|
public ulong CntvctEl0 => CntpctEl0;
|
||||||
|
|
||||||
public static TimeSpan ElapsedTime => _tickCounter.Elapsed;
|
public static TimeSpan ElapsedTime => _tickCounter.Elapsed;
|
||||||
|
|
||||||
public long TpidrEl0 { get; set; }
|
public long TpidrEl0 { get; set; }
|
||||||
|
|
Loading…
Reference in a new issue