BizHawk/BizHawk.Emulation/CPUs/ARM/ARM.CP.cs

60 lines
1.2 KiB
C#

using System;
namespace BizHawk.Emulation.CPUs.ARM
{
partial class ARM
{
public ARM.CP15 cp15;
public uint cp15_MRC(uint opc1, uint t, uint crn, uint crm, uint opc2)
{
if (t == 15) unpredictable = true;
switch (crn)
{
case 13:
switch (opc2)
{
case 0: return cp15.FCSEIDR;
case 1: return cp15.CONTEXTIDR;
case 2: return cp15.TPIDRURW;
case 3: return cp15.TPIDRURO;
case 4: return cp15.TPIDRPRW;
}
break;
}
//unhandled...
unpredictable = true;
return 0;
}
public string cp15_Describe(uint opc1, uint t, uint crn, uint crm, uint opc2)
{
switch (crn)
{
case 13:
switch (opc2)
{
case 0: return "CP15.FCSEIDR: FCSE PID";
case 1: return "CP15.CONTEXTIDR: Context ID";
case 2: return "CP15.TPIDRURW: User RW Thread ID";
case 3: return "CP15.TPIDRURW: User RO Thread ID";
case 4: return "CP15.TPIDRURW: Priv. Only Thread ID";
}
break;
}
return "unknown";
}
public class CP15
{
//c13
public uint FCSEIDR;
public uint CONTEXTIDR;
public uint TPIDRURW, TPIDRURO, TPIDRPRW;
}
}
}