1 //
2 // Copyright (c) 2010-2025 Antmicro
3 //
4 // This file is licensed under the MIT License.
5 // Full license text is available in 'licenses/MIT.txt'.
6 //
7 using Antmicro.Renode.Core;
8 using Antmicro.Renode.Peripherals.CPU;
9 using ELFSharp.ELF;
10 
11 namespace Antmicro.Renode.Peripherals.SystemC
12 {
13     public partial class SystemCCortexMCPU : SystemCCPU
14     {
SystemCCortexMCPU(IMachine machine, string address, int port, string cpuType, Endianess endianess = Endianess.LittleEndian, CpuBitness bitness = CpuBitness.Bits32, int timeSyncPeriodUS = 1000, bool disableTimeoutCheck = false)15         public SystemCCortexMCPU(IMachine machine, string address, int port, string cpuType, Endianess endianess = Endianess.LittleEndian, CpuBitness bitness = CpuBitness.Bits32, int timeSyncPeriodUS = 1000, bool disableTimeoutCheck = false)
16             : base(machine, address, port, cpuType, endianess, bitness, timeSyncPeriodUS, disableTimeoutCheck)
17         {
18             // Intentionally left blank
19         }
20 
21         [Register]
22         public override RegisterValue PC
23         {
24             get => GetRegisterValue32((int)SystemCCortexMRegisters.PC);
25             set => SetRegisterValue32((int)SystemCCortexMRegisters.PC, value);
26         }
27 
28         [Register]
29         public RegisterValue SP
30         {
31             get => GetRegisterValue32((int)SystemCCortexMRegisters.SP);
32             set => SetRegisterValue32((int)SystemCCortexMRegisters.SP, value);
33         }
34 
35         public override string Architecture { get { return "arm-m"; } }
36     }
37 }
38