summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/v60/optable.inc
blob: 0f7e0dd96fa600adfed8343c90ce63476d23e900 (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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
const v60_device::am_func v60_device::s_OpCodeTable[256] =
{
	/* 0x00 */ &v60_device::opHALT,
	/* 0x01 */ &v60_device::opLDTASK,
	/* 0x02 */ &v60_device::opSTPR,
	/* 0x03 */ &v60_device::opUNHANDLED,
	/* 0x04 */ &v60_device::opUNHANDLED,
	/* 0x05 */ &v60_device::opUNHANDLED,
	/* 0x06 */ &v60_device::opUNHANDLED,
	/* 0x07 */ &v60_device::opUNHANDLED,
	/* 0x08 */ &v60_device::opRVBIT,
	/* 0x09 */ &v60_device::opMOVB,
	/* 0x0a */ &v60_device::opMOVSBH,
	/* 0x0b */ &v60_device::opMOVZBH,
	/* 0x0c */ &v60_device::opMOVSBW,
	/* 0x0d */ &v60_device::opMOVZBW,
	/* 0x0e */ &v60_device::opUNHANDLED,
	/* 0x0f */ &v60_device::opUNHANDLED,
	/* 0x10 */ &v60_device::opCLRTLBA,
	/* 0x11 */ &v60_device::opUNHANDLED,
	/* 0x12 */ &v60_device::opLDPR,
	/* 0x13 */ &v60_device::opUPDPSWW,
	/* 0x14 */ &v60_device::opUNHANDLED,
	/* 0x15 */ &v60_device::opUNHANDLED,
	/* 0x16 */ &v60_device::opUNHANDLED,
	/* 0x17 */ &v60_device::opUNHANDLED,
	/* 0x18 */ &v60_device::opUNHANDLED,
	/* 0x19 */ &v60_device::opMOVTHB,
	/* 0x1a */ &v60_device::opUNHANDLED,
	/* 0x1b */ &v60_device::opMOVH,
	/* 0x1c */ &v60_device::opMOVSHW,
	/* 0x1d */ &v60_device::opMOVZHW,
	/* 0x1e */ &v60_device::opUNHANDLED,
	/* 0x1f */ &v60_device::opUNHANDLED,
	/* 0x20 */ &v60_device::opINB,
	/* 0x21 */ &v60_device::opOUTB,
	/* 0x22 */ &v60_device::opINH,
	/* 0x23 */ &v60_device::opOUTH,
	/* 0x24 */ &v60_device::opINW,
	/* 0x25 */ &v60_device::opOUTW,
	/* 0x26 */ &v60_device::opUNHANDLED,
	/* 0x27 */ &v60_device::opUNHANDLED,
	/* 0x28 */ &v60_device::opUNHANDLED,
	/* 0x29 */ &v60_device::opMOVTWB,
	/* 0x2a */ &v60_device::opUNHANDLED,
	/* 0x2b */ &v60_device::opMOVTWH,
	/* 0x2c */ &v60_device::opRVBYT,
	/* 0x2d */ &v60_device::opMOVW,
	/* 0x2e */ &v60_device::opUNHANDLED,
	/* 0x2f */ &v60_device::opUNHANDLED,
	/* 0x30 */ &v60_device::opUNHANDLED,
	/* 0x31 */ &v60_device::opUNHANDLED,
	/* 0x32 */ &v60_device::opUNHANDLED,
	/* 0x33 */ &v60_device::opUNHANDLED,
	/* 0x34 */ &v60_device::opUNHANDLED,
	/* 0x35 */ &v60_device::opUNHANDLED,
	/* 0x36 */ &v60_device::opUNHANDLED,
	/* 0x37 */ &v60_device::opUNHANDLED,
	/* 0x38 */ &v60_device::opNOTB,
	/* 0x39 */ &v60_device::opNEGB,
	/* 0x3a */ &v60_device::opNOTH,
	/* 0x3b */ &v60_device::opNEGH,
	/* 0x3c */ &v60_device::opNOTW,
	/* 0x3d */ &v60_device::opNEGW,
	/* 0x3e */ &v60_device::opUNHANDLED,
	/* 0x3f */ &v60_device::opMOVD,
	/* 0x40 */ &v60_device::opMOVEAB,
	/* 0x41 */ &v60_device::opXCHB,
	/* 0x42 */ &v60_device::opMOVEAH,
	/* 0x43 */ &v60_device::opXCHH,
	/* 0x44 */ &v60_device::opMOVEAW,
	/* 0x45 */ &v60_device::opXCHW,
	/* 0x46 */ &v60_device::opUNHANDLED,
	/* 0x47 */ &v60_device::opSETF,
	/* 0x48 */ &v60_device::opBSR,
	/* 0x49 */ &v60_device::opCALL,
	/* 0x4a */ &v60_device::opUPDPSWH,
	/* 0x4b */ &v60_device::opCHLVL,
	/* 0x4c */ &v60_device::opUNHANDLED,
	/* 0x4d */ &v60_device::opCHKAR,
	/* 0x4e */ &v60_device::opCHKAW,
	/* 0x4f */ &v60_device::opCHKAE,
	/* 0x50 */ &v60_device::opREMB,
	/* 0x51 */ &v60_device::opREMUB,
	/* 0x52 */ &v60_device::opREMH,
	/* 0x53 */ &v60_device::opREMUH,
	/* 0x54 */ &v60_device::opREMW,
	/* 0x55 */ &v60_device::opREMUW,
	/* 0x56 */ &v60_device::opUNHANDLED,
	/* 0x57 */ &v60_device::opUNHANDLED,
	/* 0x58 */ &v60_device::op58,
	/* 0x59 */ &v60_device::op59,
	/* 0x5a */ &v60_device::op5A,
	/* 0x5b */ &v60_device::op5B,
	/* 0x5c */ &v60_device::op5C,
	/* 0x5d */ &v60_device::op5D,
	/* 0x5e */ &v60_device::opUNHANDLED,
	/* 0x5f */ &v60_device::op5F,
	/* 0x60 */ &v60_device::opBV8,
	/* 0x61 */ &v60_device::opBNV8,
	/* 0x62 */ &v60_device::opBL8,
	/* 0x63 */ &v60_device::opBNL8,
	/* 0x64 */ &v60_device::opBE8,
	/* 0x65 */ &v60_device::opBNE8,
	/* 0x66 */ &v60_device::opBNH8,
	/* 0x67 */ &v60_device::opBH8,
	/* 0x68 */ &v60_device::opBN8,
	/* 0x69 */ &v60_device::opBP8,
	/* 0x6a */ &v60_device::opBR8,
	/* 0x6b */ &v60_device::opUNHANDLED,
	/* 0x6C */ &v60_device::opBLT8,
	/* 0x6c */ &v60_device::opBGE8,
	/* 0x6e */ &v60_device::opBLE8,
	/* 0x6f */ &v60_device::opBGT8,
	/* 0x70 */ &v60_device::opBV16,
	/* 0x71 */ &v60_device::opBNV16,
	/* 0x72 */ &v60_device::opBL16,
	/* 0x73 */ &v60_device::opBNL16,
	/* 0x74 */ &v60_device::opBE16,
	/* 0x75 */ &v60_device::opBNE16,
	/* 0x76 */ &v60_device::opBNH16,
	/* 0x77 */ &v60_device::opBH16,
	/* 0x78 */ &v60_device::opBN16,
	/* 0x79 */ &v60_device::opBP16,
	/* 0x7a */ &v60_device::opBR16,
	/* 0x7b */ &v60_device::opUNHANDLED,
	/* 0x7c */ &v60_device::opBLT16,
	/* 0x7d */ &v60_device::opBGE16,
	/* 0x7e */ &v60_device::opBLE16,
	/* 0x7f */ &v60_device::opBGT16,
	/* 0x80 */ &v60_device::opADDB,
	/* 0x81 */ &v60_device::opMULB,
	/* 0x82 */ &v60_device::opADDH,
	/* 0x83 */ &v60_device::opMULH,
	/* 0x84 */ &v60_device::opADDW,
	/* 0x85 */ &v60_device::opMULW,
	/* 0x86 */ &v60_device::opMULX,
	/* 0x87 */ &v60_device::opTEST1,
	/* 0x88 */ &v60_device::opORB,
	/* 0x89 */ &v60_device::opROTB,
	/* 0x8a */ &v60_device::opORH,
	/* 0x8b */ &v60_device::opROTH,
	/* 0x8c */ &v60_device::opORW,
	/* 0x8d */ &v60_device::opROTW,
	/* 0x8e */ &v60_device::opUNHANDLED,
	/* 0x8f */ &v60_device::opUNHANDLED,
	/* 0x90 */ &v60_device::opADDCB,
	/* 0x91 */ &v60_device::opMULUB,
	/* 0x92 */ &v60_device::opADDCH,
	/* 0x93 */ &v60_device::opMULUH,
	/* 0x94 */ &v60_device::opADDCW,
	/* 0x95 */ &v60_device::opMULUW,
	/* 0x96 */ &v60_device::opMULUX,
	/* 0x97 */ &v60_device::opSET1,
	/* 0x98 */ &v60_device::opSUBCB,
	/* 0x99 */ &v60_device::opROTCB,
	/* 0x9a */ &v60_device::opSUBCH,
	/* 0x9b */ &v60_device::opROTCH,
	/* 0x9c */ &v60_device::opSUBCW,
	/* 0x9d */ &v60_device::opROTCW,
	/* 0x9e */ &v60_device::opUNHANDLED,
	/* 0x9f */ &v60_device::opUNHANDLED,
	/* 0xa0 */ &v60_device::opANDB,
	/* 0xa1 */ &v60_device::opDIVB,
	/* 0xa2 */ &v60_device::opANDH,
	/* 0xa3 */ &v60_device::opDIVH,
	/* 0xa4 */ &v60_device::opANDW,
	/* 0xa5 */ &v60_device::opDIVW,
	/* 0xa6 */ &v60_device::opDIVX,
	/* 0xa7 */ &v60_device::opCLR1,
	/* 0xa8 */ &v60_device::opSUBB,
	/* 0xa9 */ &v60_device::opSHLB,
	/* 0xaa */ &v60_device::opSUBH,
	/* 0xab */ &v60_device::opSHLH,
	/* 0xac */ &v60_device::opSUBW,
	/* 0xad */ &v60_device::opSHLW,
	/* 0xae */ &v60_device::opUNHANDLED,
	/* 0xaf */ &v60_device::opUNHANDLED,
	/* 0xb0 */ &v60_device::opXORB,
	/* 0xb1 */ &v60_device::opDIVUB,
	/* 0xb2 */ &v60_device::opXORH,
	/* 0xb3 */ &v60_device::opDIVUH,
	/* 0xb4 */ &v60_device::opXORW,
	/* 0xb5 */ &v60_device::opDIVUW,
	/* 0xb6 */ &v60_device::opDIVUX,
	/* 0xb7 */ &v60_device::opNOT1,
	/* 0xb8 */ &v60_device::opCMPB,
	/* 0xb9 */ &v60_device::opSHAB,
	/* 0xba */ &v60_device::opCMPH,
	/* 0xbb */ &v60_device::opSHAH,
	/* 0xbc */ &v60_device::opCMPW,
	/* 0xbd */ &v60_device::opSHAW,
	/* 0xbe */ &v60_device::opUNHANDLED,
	/* 0xbf */ &v60_device::opUNHANDLED,
	/* 0xc0 */ &v60_device::opUNHANDLED,
	/* 0xc1 */ &v60_device::opUNHANDLED,
	/* 0xc2 */ &v60_device::opUNHANDLED,
	/* 0xc3 */ &v60_device::opUNHANDLED,
	/* 0xc4 */ &v60_device::opUNHANDLED,
	/* 0xc5 */ &v60_device::opUNHANDLED,
	/* 0xc6 */ &v60_device::opC6,
	/* 0xc7 */ &v60_device::opC7,
	/* 0xc8 */ &v60_device::opBRK,
	/* 0xc9 */ &v60_device::opBRKV,
	/* 0xca */ &v60_device::opRSR,
	/* 0xcb */ &v60_device::opTRAPFL,
	/* 0xcc */ &v60_device::opDISPOSE,
	/* 0xcd */ &v60_device::opNOP,
	/* 0xce */ &v60_device::opUNHANDLED,
	/* 0xcf */ &v60_device::opUNHANDLED,
	/* 0xd0 */ &v60_device::opDECB_0,
	/* 0xd1 */ &v60_device::opDECB_1,
	/* 0xd2 */ &v60_device::opDECH_0,
	/* 0xd3 */ &v60_device::opDECH_1,
	/* 0xd4 */ &v60_device::opDECW_0,
	/* 0xd5 */ &v60_device::opDECW_1,
	/* 0xd6 */ &v60_device::opJMP_0,
	/* 0xd7 */ &v60_device::opJMP_1,
	/* 0xd8 */ &v60_device::opINCB_0,
	/* 0xd9 */ &v60_device::opINCB_1,
	/* 0xda */ &v60_device::opINCH_0,
	/* 0xdb */ &v60_device::opINCH_1,
	/* 0xdc */ &v60_device::opINCW_0,
	/* 0xdd */ &v60_device::opINCW_1,
	/* 0xde */ &v60_device::opPREPARE_0,
	/* 0xdf */ &v60_device::opPREPARE_1,
	/* 0xe0 */ &v60_device::opTASI_0,
	/* 0xe1 */ &v60_device::opTASI_1,
	/* 0xe2 */ &v60_device::opRET_0,
	/* 0xe3 */ &v60_device::opRET_1,
	/* 0xe4 */ &v60_device::opPOPM_0,
	/* 0xe5 */ &v60_device::opPOPM_1,
	/* 0xe6 */ &v60_device::opPOP_0,
	/* 0xe7 */ &v60_device::opPOP_1,
	/* 0xe8 */ &v60_device::opJSR_0,
	/* 0xe9 */ &v60_device::opJSR_1,
	/* 0xea */ &v60_device::opRETIU_0,
	/* 0xeb */ &v60_device::opRETIU_1,
	/* 0xec */ &v60_device::opPUSHM_0,
	/* 0xed */ &v60_device::opPUSHM_1,
	/* 0xee */ &v60_device::opPUSH_0,
	/* 0xef */ &v60_device::opPUSH_1,
	/* 0xf0 */ &v60_device::opTESTB_0,
	/* 0xf1 */ &v60_device::opTESTB_1,
	/* 0xf2 */ &v60_device::opTESTH_0,
	/* 0xf3 */ &v60_device::opTESTH_1,
	/* 0xf4 */ &v60_device::opTESTW_0,
	/* 0xf5 */ &v60_device::opTESTW_1,
	/* 0xf6 */ &v60_device::opGETPSW_0,
	/* 0xf7 */ &v60_device::opGETPSW_1,
	/* 0xf8 */ &v60_device::opTRAP_0,
	/* 0xf9 */ &v60_device::opTRAP_1,
	/* 0xfa */ &v60_device::opRETIS_0,
	/* 0xfb */ &v60_device::opRETIS_1,
	/* 0xfc */ &v60_device::opSTTASK_0,
	/* 0xfd */ &v60_device::opSTTASK_1,
	/* 0xfe */ &v60_device::opCLRTLB_0,
	/* 0xff */ &v60_device::opCLRTLB_1,
};