aboutsummaryrefslogtreecommitdiff
path: root/ARM.h
diff options
context:
space:
mode:
Diffstat (limited to 'ARM.h')
-rw-r--r--ARM.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/ARM.h b/ARM.h
new file mode 100644
index 0000000..024ecb9
--- /dev/null
+++ b/ARM.h
@@ -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