summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/sharc/sharcdsm.h
blob: 60c6fb5c0758189e17ff626d49645b32d1f5434e (plain) (blame)
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
// license:???
// copyright-holders:Ville Linde
static const char ureg_names[256][16] =
{
	"R0",       "R1",       "R2",       "R3",       "R4",       "R5",       "R6",       "R7",
	"R8",       "R9",       "R10",      "R11",      "R12",      "R13",      "R14",      "R15",
	"I0",       "I1",       "I2",       "I3",       "I4",       "I5",       "I6",       "I7",
	"I8",       "I9",       "I10",      "I11",      "I12",      "I13",      "I14",      "I15",
	"M0",       "M1",       "M2",       "M3",       "M4",       "M5",       "M6",       "M7",
	"M8",       "M9",       "M10",      "M11",      "M12",      "M13",      "M14",      "M15",
	"L0",       "L1",       "L2",       "L3",       "L4",       "L5",       "L6",       "L7",
	"L8",       "L9",       "L10",      "L11",      "L12",      "L13",      "L14",      "L15",
	"B0",       "B1",       "B2",       "B3",       "B4",       "B5",       "B6",       "B7",
	"B8",       "B9",       "B10",      "B11",      "B12",      "B13",      "B14",      "B15",
	"???",      "???",      "???",      "???",      "???",      "???",      "???",      "???",
	"???",      "???",      "???",      "???",      "???",      "???",      "???",      "???",
	"FADDR",    "DADDR",    "???",      "PC",       "PCSTK",    "PCSTKP",   "LADDR",    "CURLCNTR",
	"LCNTR",    "???",      "???",      "???",      "???",      "???",      "???",      "???",
	"USTAT1",   "USTAT2",   "???",      "???",      "???",      "???",      "???",      "???",
	"???",      "IRPTL",    "MODE2",    "MODE1",    "ASTAT",    "IMASK",    "STKY",     "IMASKP",
	"???",      "???",      "???",      "???",      "???",      "???",      "???",      "???",
	"???",      "???",      "???",      "???",      "???",      "???",      "???",      "???",
	"???",      "???",      "???",      "???",      "???",      "???",      "???",      "???",
	"???",      "???",      "???",      "???",      "???",      "???",      "???",      "???",
	"???",      "???",      "???",      "???",      "???",      "???",      "???",      "???",
	"???",      "???",      "???",      "???",      "???",      "???",      "???",      "???",
	"???",      "???",      "???",      "???",      "???",      "???",      "???",      "???",
	"???",      "???",      "???",      "???",      "???",      "???",      "???",      "???",
	"???",      "???",      "???",      "???",      "???",      "???",      "???",      "???",
	"???",      "???",      "???",      "???",      "???",      "???",      "???",      "???",
	"???",      "???",      "???",      "???",      "???",      "???",      "???",      "???",
	"???",      "???",      "???",      "PX",       "PX1",      "PX2",      "TPERIOD",  "TCOUNT",
	"???",      "???",      "???",      "???",      "???",      "???",      "???",      "???",
	"???",      "???",      "???",      "???",      "???",      "???",      "???",      "???",
	"???",      "???",      "???",      "???",      "???",      "???",      "???",      "???",
	"???",      "???",      "???",      "???",      "???",      "???",      "???",      "???"
};

static const char bopnames[8][8] =
{
	"SET",      "CLEAR",    "TOGGLE",   "???",      "TEST",     "XOR",      "???",      "???"
};

static const char condition_codes_if[32][32] =
{
	"EQ",           "LT",           "LE",           "AC",
	"AV",           "MV",           "MS",           "SV",
	"SZ",           "FLAG0_IN",     "FLAG1_IN",     "FLAG2_IN",
	"FLAG3_IN",     "TF",           "BM",           "NOT LCE",
	"NE",           "GE",           "GT",           "NOT AC",
	"NOT AV",       "NOT MV",       "NOT MS",       "NOT SV",
	"NOT SZ",       "NOT FLAG0_IN", "NOT FLAG1_IN", "NOT FLAG2_IN",
	"NOT FLAG3_IN", "NOT TF",       "NBM",          ""
};

static const char condition_codes_do[32][32] =
{
	"EQ",           "LT",           "LE",           "AC",
	"AV",           "MV",           "MS",           "SV",
	"SZ",           "FLAG0_IN",     "FLAG1_IN",     "FLAG2_IN",
	"FLAG3_IN",     "TF",           "BM",           "LCE",
	"NE",           "GE",           "GT",           "NOT AC",
	"NOT AV",       "NOT MV",       "NOT MS",       "NOT SV",
	"NOT SZ",       "NOT FLAG0_IN", "NOT FLAG1_IN", "NOT FLAG2_IN",
	"NOT FLAG3_IN", "NOT TF",       "NBM",          "FOREVER"
};

static const char mr_regnames[16][8] =
{
	"MR0F", "MR1F", "MR2F", "MR0B", "MR1B", "MR2B", "???",  "???",
	"???",  "???",  "???",  "???",  "???",  "???",  "???",  "???"
};

struct SHARC_DASM_OP
{
	UINT32 op_mask;
	UINT32 op_bits;
	UINT32 (* handler)(UINT32, UINT64);
};