aboutsummaryrefslogtreecommitdiff
path: root/source/arm_dynarec/opgen.h
blob: aaa5556f245d3bc8311735461ef299b44f87d14e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/* Macros turn opcode tables into code */

#define F8(F) F##8
#define F16(F) F##16
#define EF(F) 0, F16(F), F16(F)
#define NF(F) 0, F, F
#define NF8(F) 0, F8(F), F8(F)
#define NF16(F) 0, F16(F), F16(F)
#define MF(F) (CheckEmulation() || CheckMemory()), F8(F), F16(F)
#define XF(F) (CheckEmulation() || CheckIndex()), F8(F), F16(F)

#define C (Carry)
#define Z (Zero)
#define V (Overflow)
#define NZ (Negative | Zero)
#define NZC (Negative | Zero | Carry)
#define NZV (Negative | Zero | Overflow)
#define NZCV (Negative | Zero | Carry | Overflow)

switch(opcode = *pc++) {

#include "opdef.h"

default:                                              \
   printf("Invalid opcode : 0x%X\n", opcode);         \
}