|
@@ -76,24 +76,28 @@
|
|
|
#define R15MODE (state->Reg[15] & R15MODEBITS)
|
|
#define R15MODE (state->Reg[15] & R15MODEBITS)
|
|
|
|
|
|
|
|
// Different ways to start the next instruction.
|
|
// Different ways to start the next instruction.
|
|
|
-#define SEQ 0
|
|
|
|
|
-#define NONSEQ 1
|
|
|
|
|
-#define PCINCEDSEQ 2
|
|
|
|
|
-#define PCINCEDNONSEQ 3
|
|
|
|
|
-#define PRIMEPIPE 4
|
|
|
|
|
-#define RESUME 8
|
|
|
|
|
|
|
+enum {
|
|
|
|
|
+ SEQ = 0,
|
|
|
|
|
+ NONSEQ = 1,
|
|
|
|
|
+ PCINCEDSEQ = 2,
|
|
|
|
|
+ PCINCEDNONSEQ = 3,
|
|
|
|
|
+ PRIMEPIPE = 4,
|
|
|
|
|
+ RESUME = 8
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+// Values for Emulate.
|
|
|
|
|
+enum {
|
|
|
|
|
+ STOP = 0, // Stop
|
|
|
|
|
+ CHANGEMODE = 1, // Change mode
|
|
|
|
|
+ ONCE = 2, // Execute just one interation
|
|
|
|
|
+ RUN = 3 // Continuous execution
|
|
|
|
|
+};
|
|
|
|
|
|
|
|
#define FLUSHPIPE state->NextInstr |= PRIMEPIPE
|
|
#define FLUSHPIPE state->NextInstr |= PRIMEPIPE
|
|
|
|
|
|
|
|
// Macro to rotate n right by b bits.
|
|
// Macro to rotate n right by b bits.
|
|
|
#define ROTATER(n, b) (((n) >> (b)) | ((n) << (32 - (b))))
|
|
#define ROTATER(n, b) (((n) >> (b)) | ((n) << (32 - (b))))
|
|
|
|
|
|
|
|
-// Values for Emulate.
|
|
|
|
|
-#define STOP 0 // stop
|
|
|
|
|
-#define CHANGEMODE 1 // change mode
|
|
|
|
|
-#define ONCE 2 // execute just one interation
|
|
|
|
|
-#define RUN 3 // continuous execution
|
|
|
|
|
-
|
|
|
|
|
// Stuff that is shared across modes.
|
|
// Stuff that is shared across modes.
|
|
|
extern unsigned ARMul_MultTable[]; // Number of I cycles for a mult.
|
|
extern unsigned ARMul_MultTable[]; // Number of I cycles for a mult.
|
|
|
extern ARMword ARMul_ImmedTable[]; // Immediate DP LHS values.
|
|
extern ARMword ARMul_ImmedTable[]; // Immediate DP LHS values.
|