diff options
Diffstat (limited to 'ARM.h')
-rw-r--r-- | ARM.h | 40 |
1 files changed, 40 insertions, 0 deletions
@@ -0,0 +1,40 @@ +// ARM shit + +#ifndef ARM_H +#define ARM_H + +#include "types.h" +#include "NDS.h" + +class ARM +{ +public: + ARM(u32 num); + ~ARM(); // destroy shit + + void JumpTo(u32 addr); + s32 Execute(s32 cycles); + + u32 Read32(u32 addr) + { + if (Num) return NDS::ARM7Read32(addr); + else return NDS::ARM9Read32(addr); + } + + + u32 Num; + + u32 R[16]; // heh + u32 CPSR; + u32 R_FIQ[8]; // holding SPSR too + u32 R_SVC[3]; + u32 R_ABT[3]; + u32 R_IRQ[3]; + u32 R_UND[3]; + u32 CurInstr; + u32 NextInstr; + + u32 ExceptionBase; +}; + +#endif // ARM_H |