aboutsummaryrefslogtreecommitdiff
path: root/source/arm_dynarec/opdef.h
blob: 80606d8961667754dfa203cf152630152a5b27f8 (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
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
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
OP (A8, XF(Register),        XF(MOV),    Y,    A,    NZ,   0,    OFNone);
OP (AA, XF(Register),        XF(MOV),    X,    A,    NZ,   0,    OFNone);
OP (BA, XF(Register),        XF(MOV),    X,    S,    NZ,   0,    OFNone);
OP (98, MF(Register),        MF(MOV),    A,    Y,    NZ,   0,    OFNone);
OP (8A, MF(Register),        MF(MOV),    A,    X,    NZ,   0,    OFNone);
OP (9A, EF(Register),        EF(MOVSP),  S,    X,    0,    0,    OFNone);
OP (9B, XF(Register),        XF(MOV),    Y,    X,    NZ,   0,    OFNone);
OP (BB, XF(Register),        XF(MOV),    X,    Y,    NZ,   0,    OFNone);
OP (7B, NF16(Register),      NF16(MOV),  A,    D,    NZ,   0,    OFNone);
OP (5B, NF16(Register),      NF16(MOV),  D,    A,    NZ,   0,    OFNone);
OP (3B, NF16(Register),      NF16(MOV),  A,    S,    NZ,   0,    OFNone);
OP (1B, EF(Register),        EF(MOVSP),  S,    A,    0,    0,    OFNone);

OP (A9, MF(Immediate),       MF(LD),     A,    NULL, NZ,   0,    OFNone);
OP (A5, MF(ZeroPage),        MF(LD),     A,    NULL, NZ,   0,    OFNone);
OP (B5, MF(ZeroPage),        MF(LD),     A,    X,    NZ,   0,    OFNone);
OP (A3, MF(ZeroPage),        MF(LD),     A,    S,    NZ,   0,    OFNone);
OP (AD, MF(Absolute),        MF(LD),     A,    NULL, NZ,   0,    OFNone);
OP (BD, MF(Absolute),        MF(LD),     A,    X,    NZ,   0,    OFNone);
OP (B9, MF(Absolute),        MF(LD),     A,    Y,    NZ,   0,    OFNone);
OP (AF, MF(Long),            MF(LD),     A,    NULL, NZ,   0,    OFNone);
OP (BF, MF(Long),            MF(LD),     A,    X,    NZ,   0,    OFNone);
OP (B2, MF(Indirect),        MF(LD),     A,    NULL, NZ,   0,    OFNone);
OP (A1, MF(IndirectX),       MF(LD),     A,    X,    NZ,   0,    OFNone);
OP (B1, MF(IndirectY),       MF(LD),     A,    Y,    NZ,   0,    OFNone);
OP (B3, MF(IndirectS),       MF(LD),     A,    Y,    NZ,   0,    OFNone);
OP (A7, MF(IndirectFar),     MF(LD),     A,    NULL, NZ,   0,    OFNone);
OP (B7, MF(IndirectFar),     MF(LD),     A,    Y,    NZ,   0,    OFNone);
OP (A2, XF(Immediate),       XF(LD),     X,    NULL, NZ,   0,    OFNone);
OP (A6, XF(ZeroPage),        XF(LD),     X,    NULL, NZ,   0,    OFNone);
OP (B6, XF(ZeroPage),        XF(LD),     X,    Y,    NZ,   0,    OFNone);
OP (AE, XF(Absolute),        XF(LD),     X,    NULL, NZ,   0,    OFNone);
OP (BE, XF(Absolute),        XF(LD),     X,    Y,    NZ,   0,    OFNone);
OP (A0, XF(Immediate),       XF(LD),     Y,    NULL, NZ,   0,    OFNone);
OP (A4, XF(ZeroPage),        XF(LD),     Y,    NULL, NZ,   0,    OFNone);
OP (B4, XF(ZeroPage),        XF(LD),     Y,    X,    NZ,   0,    OFNone);
OP (AC, XF(Absolute),        XF(LD),     Y,    NULL, NZ,   0,    OFNone);
OP (BC, XF(Absolute),        XF(LD),     Y,    X,    NZ,   0,    OFNone);

OP (64, MF(ZeroPage),        MF(ST),     Z,    NULL, 0,    0,    OFNone);
OP (74, MF(ZeroPage),        MF(ST),     Z,    X,    0,    0,    OFNone);
OP (9C, MF(Absolute),        MF(ST),     Z,    NULL, 0,    0,    OFNone);
OP (9E, MF(Absolute),        MF(ST),     Z,    X,    0,    0,    OFNone);
OP (85, MF(ZeroPage),        MF(ST),     A,    NULL, 0,    0,    OFNone);
OP (95, MF(ZeroPage),        MF(ST),     A,    X,    0,    0,    OFNone);
OP (83, MF(ZeroPage),        MF(ST),     A,    S,    0,    0,    OFNone);
OP (8D, MF(Absolute),        MF(ST),     A,    NULL, 0,    0,    OFNone);
OP (9D, MF(Absolute),        MF(ST),     A,    X,    0,    0,    OFNone);
OP (99, MF(Absolute),        MF(ST),     A,    Y,    0,    0,    OFNone);
OP (8F, MF(Long),            MF(ST),     A,    NULL, 0,    0,    OFNone);
OP (9F, MF(Long),            MF(ST),     A,    X,    0,    0,    OFNone);
OP (81, MF(IndirectX),       MF(ST),     A,    X,    0,    0,    OFNone);
OP (91, MF(IndirectY),       MF(ST),     A,    Y,    0,    0,    OFNone);
OP (92, MF(Indirect),        MF(ST),     A,    NULL, 0,    0,    OFNone);
OP (93, MF(IndirectS),       MF(ST),     A,    Y,    0,    0,    OFNone);
OP (87, MF(IndirectFar),     MF(ST),     A,    NULL, 0,    0,    OFNone);
OP (97, MF(IndirectFar),     MF(ST),     A,    Y,    0,    0,    OFNone);
OP (86, XF(ZeroPage),        XF(ST),     X,    NULL, 0,    0,    OFNone);
OP (96, XF(ZeroPage),        XF(ST),     X,    Y,    0,    0,    OFNone);
OP (8E, XF(Absolute),        XF(ST),     X,    NULL, 0,    0,    OFNone);
OP (84, XF(ZeroPage),        XF(ST),     Y,    NULL, 0,    0,    OFNone);
OP (94, XF(ZeroPage),        XF(ST),     Y,    X,    0,    0,    OFNone);
OP (8C, XF(Absolute),        XF(ST),     Y,    NULL, 0,    0,    OFNone);

OP (48, MF(Register),        MF(PUSH),   A,    NULL, 0,    0,    OFNone);
OP (DA, XF(Register),        XF(PUSH),   X,    NULL, 0,    0,    OFNone);
OP (5A, XF(Register),        XF(PUSH),   Y,    NULL, 0,    0,    OFNone);
OP (08, NF8(Register),       NF8(PUSH),  P,    NULL, 0,    NZCV, OFNone);
OP (8B, NF8(Register),       NF8(PUSH),  DB,   NULL, 0,    0,    OFNone);
OP (4B, NF8(Register),       NF8(PUSH),  PB,   NULL, 0,    0,    OFNone);
OP (0B, NF16(Register),      NF16(PUSH), D,    NULL, 0,    0,    OFNone);
OP (D4, NF16(ZeroPage),      NF16(PUSH), NULL, NULL, 0,    0,    OFNone);
OP (F4, NF16(Immediate),     NF(PEA),    NULL, NULL, 0,    0,    OFNone);
OP (62, NF16(Immediate),     NF(PER),    NULL, NULL, 0,    0,    OFNone);
OP (68, MF(Register),        MF(POP),    A,    NULL, NZ,   0,    OFNone);
OP (FA, XF(Register),        XF(POP),    X,    NULL, NZ,   0,    OFNone);
OP (7A, XF(Register),        XF(POP),    Y,    NULL, NZ,   0,    OFNone);
OP (2B, NF16(Register),      NF16(POP),  D,    NULL, NZ,   0,    OFNone);
OP (AB, NF8(Register),       NF8(POP),   DB,   NULL, NZ,   0,    OFNone);
OP (28, NF8(Register),       NF8(POP),   P,    NULL, NZCV, 0,    OFBreak | OFSectionUpdate);

OP (44, NF16(Immediate),     NF(MVP),    NULL, NULL, 0,    NZCV, OFBreak);
OP (54, NF16(Immediate),     NF(MVN),    NULL, NULL, 0,    NZCV, OFBreak);

OP (09, MF(Immediate),       MF(OR),     A,    NULL, NZ,   0,    OFNone);
OP (05, MF(ZeroPage),        MF(OR),     A,    NULL, NZ,   0,    OFNone);
OP (15, MF(ZeroPage),        MF(OR),     A,    X,    NZ,   0,    OFNone);
OP (0D, MF(Absolute),        MF(OR),     A,    NULL, NZ,   0,    OFNone);
OP (1D, MF(Absolute),        MF(OR),     A,    X,    NZ,   0,    OFNone);
OP (19, MF(Absolute),        MF(OR),     A,    Y,    NZ,   0,    OFNone);
OP (01, MF(IndirectX),       MF(OR),     A,    X,    NZ,   0,    OFNone);
OP (11, MF(IndirectY),       MF(OR),     A,    Y,    NZ,   0,    OFNone);
OP (12, MF(Indirect),        MF(OR),     A,    NULL, NZ,   0,    OFNone);
OP (03, MF(ZeroPage),        MF(OR),     A,    S,    NZ,   0,    OFNone);
OP (13, MF(IndirectS),       MF(OR),     A,    Y,    NZ,   0,    OFNone);
OP (07, MF(IndirectFar),     MF(OR),     A,    NULL, NZ,   0,    OFNone);
OP (17, MF(IndirectFar),     MF(OR),     A,    Y,    NZ,   0,    OFNone);
OP (0F, MF(Long),            MF(OR),     A,    NULL, NZ,   0,    OFNone);
OP (1F, MF(Long),            MF(OR),     A,    X,    NZ,   0,    OFNone);

OP (29, MF(Immediate),       MF(AND),    A,    NULL, NZ,   0,    OFNone);
OP (25, MF(ZeroPage),        MF(AND),    A,    NULL, NZ,   0,    OFNone);
OP (35, MF(ZeroPage),        MF(AND),    A,    X,    NZ,   0,    OFNone);
OP (2D, MF(Absolute),        MF(AND),    A,    NULL, NZ,   0,    OFNone);
OP (3D, MF(Absolute),        MF(AND),    A,    X,    NZ,   0,    OFNone);
OP (39, MF(Absolute),        MF(AND),    A,    Y,    NZ,   0,    OFNone);
OP (21, MF(IndirectX),       MF(AND),    A,    X,    NZ,   0,    OFNone);
OP (31, MF(IndirectY),       MF(AND),    A,    Y,    NZ,   0,    OFNone);
OP (32, MF(Indirect),        MF(AND),    A,    NULL, NZ,   0,    OFNone);
OP (23, MF(ZeroPage),        MF(AND),    A,    S,    NZ,   0,    OFNone);
OP (33, MF(IndirectS),       MF(AND),    A,    Y,    NZ,   0,    OFNone);
OP (27, MF(IndirectFar),     MF(AND),    A,    NULL, NZ,   0,    OFNone);
OP (37, MF(IndirectFar),     MF(AND),    A,    Y,    NZ,   0,    OFNone);
OP (2F, MF(Long),            MF(AND),    A,    NULL, NZ,   0,    OFNone);
OP (3F, MF(Long),            MF(AND),    A,    X,    NZ,   0,    OFNone);

OP (49, MF(Immediate),       MF(EOR),    A,    NULL, NZ,   0,    OFNone);
OP (45, MF(ZeroPage),        MF(EOR),    A,    NULL, NZ,   0,    OFNone);
OP (55, MF(ZeroPage),        MF(EOR),    A,    X,    NZ,   0,    OFNone);
OP (4D, MF(Absolute),        MF(EOR),    A,    NULL, NZ,   0,    OFNone);
OP (5D, MF(Absolute),        MF(EOR),    A,    X,    NZ,   0,    OFNone);
OP (59, MF(Absolute),        MF(EOR),    A,    Y,    NZ,   0,    OFNone);
OP (41, MF(IndirectX),       MF(EOR),    A,    X,    NZ,   0,    OFNone);
OP (51, MF(IndirectY),       MF(EOR),    A,    Y,    NZ,   0,    OFNone);
OP (52, MF(Indirect),        MF(EOR),    A,    NULL, NZ,   0,    OFNone);
OP (43, MF(ZeroPage),        MF(EOR),    A,    S,    NZ,   0,    OFNone);
OP (53, MF(IndirectS),       MF(EOR),    A,    Y,    NZ,   0,    OFNone);
OP (47, MF(IndirectFar),     MF(EOR),    A,    NULL, NZ,   0,    OFNone);
OP (57, MF(IndirectFar),     MF(EOR),    A,    Y,    NZ,   0,    OFNone);
OP (4F, MF(Long),            MF(EOR),    A,    NULL, NZ,   0,    OFNone);
OP (5F, MF(Long),            MF(EOR),    A,    X,    NZ,   0,    OFNone);

OP (69, MF(Immediate),       MF(ADC),    A,    NULL, NZCV, C,    OFNone);
OP (65, MF(ZeroPage),        MF(ADC),    A,    NULL, NZCV, C,    OFNone);
OP (75, MF(ZeroPage),        MF(ADC),    A,    X,    NZCV, C,    OFNone);
OP (6D, MF(Absolute),        MF(ADC),    A,    NULL, NZCV, C,    OFNone);
OP (7D, MF(Absolute),        MF(ADC),    A,    X,    NZCV, C,    OFNone);
OP (79, MF(Absolute),        MF(ADC),    A,    Y,    NZCV, C,    OFNone);
OP (61, MF(IndirectX),       MF(ADC),    A,    X,    NZCV, C,    OFNone);
OP (71, MF(IndirectY),       MF(ADC),    A,    Y,    NZCV, C,    OFNone);
OP (72, MF(Indirect),        MF(ADC),    A,    NULL, NZCV, C,    OFNone);
OP (63, MF(ZeroPage),        MF(ADC),    A,    S,    NZCV, C,    OFNone);
OP (73, MF(IndirectS),       MF(ADC),    A,    Y,    NZCV, C,    OFNone);
OP (67, MF(IndirectFar),     MF(ADC),    A,    NULL, NZCV, C,    OFNone);
OP (77, MF(IndirectFar),     MF(ADC),    A,    Y,    NZCV, C,    OFNone);
OP (6F, MF(Long),            MF(ADC),    A,    NULL, NZCV, C,    OFNone);
OP (7F, MF(Long),            MF(ADC),    A,    X,    NZCV, C,    OFNone);

OP (E9, MF(Immediate),       MF(SBC),    A,    NULL, NZCV, C,    OFNone);
OP (E5, MF(ZeroPage),        MF(SBC),    A,    NULL, NZCV, C,    OFNone);
OP (F5, MF(ZeroPage),        MF(SBC),    A,    X,    NZCV, C,    OFNone);
OP (ED, MF(Absolute),        MF(SBC),    A,    NULL, NZCV, C,    OFNone);
OP (FD, MF(Absolute),        MF(SBC),    A,    X,    NZCV, C,    OFNone);
OP (F9, MF(Absolute),        MF(SBC),    A,    Y,    NZCV, C,    OFNone);
OP (E1, MF(IndirectX),       MF(SBC),    A,    X,    NZCV, C,    OFNone);
OP (F1, MF(IndirectY),       MF(SBC),    A,    Y,    NZCV, C,    OFNone);
OP (F2, MF(Indirect),        MF(SBC),    A,    NULL, NZCV, C,    OFNone);
OP (E3, MF(ZeroPage),        MF(SBC),    A,    S,    NZCV, C,    OFNone);
OP (F3, MF(IndirectS),       MF(SBC),    A,    Y,    NZCV, C,    OFNone);
OP (E7, MF(IndirectFar),     MF(SBC),    A,    NULL, NZCV, C,    OFNone);
OP (F7, MF(IndirectFar),     MF(SBC),    A,    Y,    NZCV, C,    OFNone);
OP (EF, MF(Long),            MF(SBC),    A,    NULL, NZCV, C,    OFNone);
OP (FF, MF(Long),            MF(SBC),    A,    X,    NZCV, C,    OFNone);

OP (C9, MF(Immediate),       MF(CMP),    A,    NULL, NZC,  0,    OFNone);
OP (C5, MF(ZeroPage),        MF(CMP),    A,    NULL, NZC,  0,    OFNone);
OP (D5, MF(ZeroPage),        MF(CMP),    A,    X,    NZC,  0,    OFNone);
OP (CD, MF(Absolute),        MF(CMP),    A,    NULL, NZC,  0,    OFNone);
OP (DD, MF(Absolute),        MF(CMP),    A,    X,    NZC,  0,    OFNone);
OP (D9, MF(Absolute),        MF(CMP),    A,    Y,    NZC,  0,    OFNone);
OP (C1, MF(IndirectX),       MF(CMP),    A,    X,    NZC,  0,    OFNone);
OP (D1, MF(IndirectY),       MF(CMP),    A,    Y,    NZC,  0,    OFNone);
OP (D2, MF(Indirect),        MF(CMP),    A,    NULL, NZC,  0,    OFNone);
OP (C3, MF(ZeroPage),        MF(CMP),    A,    S,    NZC,  0,    OFNone);
OP (D3, MF(IndirectS),       MF(CMP),    A,    Y,    NZC,  0,    OFNone);
OP (C7, MF(IndirectFar),     MF(CMP),    A,    NULL, NZC,  0,    OFNone);
OP (D7, MF(IndirectFar),     MF(CMP),    A,    Y,    NZC,  0,    OFNone);
OP (CF, MF(Long),            MF(CMP),    A,    NULL, NZC,  0,    OFNone);
OP (DF, MF(Long),            MF(CMP),    A,    X,    NZC,  0,    OFNone);

OP (E0, XF(Immediate),       XF(CMP),    X,    NULL, NZC,  0,    OFNone);
OP (E4, XF(ZeroPage),        XF(CMP),    X,    NULL, NZC,  0,    OFNone);
OP (EC, XF(Absolute),        XF(CMP),    X,    NULL, NZC,  0,    OFNone);

OP (C0, XF(Immediate),       XF(CMP),    Y,    NULL, NZC,  0,    OFNone);
OP (C4, XF(ZeroPage),        XF(CMP),    Y,    NULL, NZC,  0,    OFNone);
OP (CC, XF(Absolute),        XF(CMP),    Y,    NULL, NZC,  0,    OFNone);

OP (24, MF(ZeroPage),        MF(BIT),    A,    NULL, NZV,  0,    OFNone);
OP (2C, MF(Absolute),        MF(BIT),    A,    NULL, NZV,  0,    OFNone);
OP (34, MF(ZeroPage),        MF(BIT),    A,    X,    NZV,  0,    OFNone);
OP (3C, MF(Absolute),        MF(BIT),    A,    X,    NZV,  0,    OFNone);
OP (89, MF(Immediate),       MF(BIT),    A,    NULL, Z,    0,    OFNone);

OP (E6, MF(ZeroPage),        MF(INC),    NULL, NULL, NZ,   0,    OFNone);
OP (F6, MF(ZeroPage),        MF(INC),    NULL, X,    NZ,   0,    OFNone);
OP (EE, MF(Absolute),        MF(INC),    NULL, NULL, NZ,   0,    OFNone);
OP (FE, MF(Absolute),        MF(INC),    NULL, X,    NZ,   0,    OFNone);
OP (E8, XF(Register),        XF(INC),    X,    NULL, NZ,   0,    OFNone);
OP (C8, XF(Register),        XF(INC),    Y,    NULL, NZ,   0,    OFNone);
OP (1A, MF(Register),        MF(INC),    A,    NULL, NZ,   0,    OFNone);

OP (C6, MF(ZeroPage),        MF(DEC),    NULL, NULL, NZ,   0,    OFNone);
OP (D6, MF(ZeroPage),        MF(DEC),    NULL, X,    NZ,   0,    OFNone);
OP (CE, MF(Absolute),        MF(DEC),    NULL, NULL, NZ,   0,    OFNone);
OP (DE, MF(Absolute),        MF(DEC),    NULL, X,    NZ,   0,    OFNone);
OP (CA, XF(Register),        XF(DEC),    X,    NULL, NZ,   0,    OFNone);
OP (88, XF(Register),        XF(DEC),    Y,    NULL, NZ,   0,    OFNone);
OP (3A, MF(Register),        MF(DEC),    A,    NULL, NZ,   0,    OFNone);

OP (04, MF(ZeroPage),        MF(TSB),    A,    NULL, Z,    0,    OFNone);
OP (0C, MF(Absolute),        MF(TSB),    A,    NULL, Z,    0,    OFNone);
OP (14, MF(ZeroPage),        MF(TRB),    A,    NULL, Z,    0,    OFNone);
OP (1C, MF(Absolute),        MF(TRB),    A,    NULL, Z,    0,    OFNone);

OP (0A, MF(Register),        MF(ASL),    A,    NULL, NZC,  0,    OFNone);
OP (06, MF(ZeroPage),        MF(ASL),    NULL, NULL, NZC,  0,    OFNone);
OP (16, MF(ZeroPage),        MF(ASL),    NULL, X,    NZC,  0,    OFNone);
OP (0E, MF(Absolute),        MF(ASL),    NULL, NULL, NZC,  0,    OFNone);
OP (1E, MF(Absolute),        MF(ASL),    NULL, X,    NZC,  0,    OFNone);

OP (4A, MF(Register),        MF(LSR),    A,    NULL, NZC,  0,    OFNone);
OP (46, MF(ZeroPage),        MF(LSR),    NULL, NULL, NZC,  0,    OFNone);
OP (56, MF(ZeroPage),        MF(LSR),    NULL, X,    NZC,  0,    OFNone);
OP (4E, MF(Absolute),        MF(LSR),    NULL, NULL, NZC,  0,    OFNone);
OP (5E, MF(Absolute),        MF(LSR),    NULL, X,    NZC,  0,    OFNone);

OP (2A, MF(Register),        MF(ROL),    A,    NULL, NZC,  C,    OFNone);
OP (26, MF(ZeroPage),        MF(ROL),    NULL, NULL, NZC,  C,    OFNone);
OP (36, MF(ZeroPage),        MF(ROL),    NULL, X,    NZC,  C,    OFNone);
OP (2E, MF(Absolute),        MF(ROL),    NULL, NULL, NZC,  C,    OFNone);
OP (3E, MF(Absolute),        MF(ROL),    NULL, X,    NZC,  C,    OFNone);

OP (6A, MF(Register),        MF(ROR),    A,    NULL, NZC,  C,    OFNone);
OP (66, MF(ZeroPage),        MF(ROR),    NULL, NULL, NZC,  C,    OFNone);
OP (76, MF(ZeroPage),        MF(ROR),    NULL, X,    NZC,  C,    OFNone);
OP (6E, MF(Absolute),        MF(ROR),    NULL, NULL, NZC,  C,    OFNone);
OP (7E, MF(Absolute),        MF(ROR),    NULL, X,    NZC,  C,    OFNone);

OP (80, NF8(Immediate),      NF(BRA),    NULL, NULL, 0,    NZCV, OFBreak);
OP (82, NF16(Immediate),     NF(BRL),    NULL, NULL, 0,    NZCV, OFBreak);
OP (4C, NF16(Immediate),     NF(JMP),    NULL, NULL, 0,    NZCV, OFBreak);
OP (5C, NF(Immediate24),     NF(JMP),    NULL, NULL, 0,    NZCV, OFBreak | OFSectionUpdate);
OP (6C, NF16(Absolute),      NF(JMP),    NULL, NULL, 0,    NZCV, OFBreak);
OP (7C, NF16(Absolute),      NF(JMP),    NULL, X,    0,    NZCV, OFBreak);
OP (DC, NF16(Absolute),      NF(JML),    NULL, NULL, 0,    NZCV, OFBreak | OFSectionUpdate);
OP (20, NF16(Immediate),     NF(JSR),    NULL, NULL, 0,    NZCV, OFBreak);
OP (22, NF(Immediate24),     NF(JSL),    NULL, NULL, 0,    NZCV, OFBreak | OFSectionUpdate);
OP (FC, NF16(IndirectX),     NF(JSR),    NULL, X,    0,    NZCV, OFBreak);
OP (40, NF(None),            NF(RTI),    NULL, NULL, NZCV, NZCV, OFBreak | OFSectionUpdate);
OP (6B, NF(None),            NF(RTL),    NULL, NULL, 0,    NZCV, OFBreak | OFSectionUpdate);
OP (60, NF(None),            NF(RTS),    NULL, NULL, 0,    NZCV, OFBreak);

OP (10, NF8(Immediate),      NF(BPL),    NULL, NULL, 0,    NZCV, OFBreak);
OP (30, NF8(Immediate),      NF(BMI),    NULL, NULL, 0,    NZCV, OFBreak);
OP (50, NF8(Immediate),      NF(BVC),    NULL, NULL, 0,    NZCV, OFBreak);
OP (70, NF8(Immediate),      NF(BVS),    NULL, NULL, 0,    NZCV, OFBreak);
OP (90, NF8(Immediate),      NF(BCC),    NULL, NULL, 0,    NZCV, OFBreak);
OP (B0, NF8(Immediate),      NF(BCS),    NULL, NULL, 0,    NZCV, OFBreak);
OP (D0, NF8(Immediate),      NF(BZC),    NULL, NULL, 0,    NZCV, OFBreak);
OP (F0, NF8(Immediate),      NF(BZS),    NULL, NULL, 0,    NZCV, OFBreak);

OP (00, NF(None),            NF(BRK),    NULL, NULL, 0,    NZCV, OFBreak | OFSectionUpdate);
OP (02, NF(None),            NF(COP),    NULL, NULL, 0,    NZCV, OFBreak | OFSectionUpdate);

OP (18, NF(None),            NF(CLC),    NULL, NULL, C,    0,    OFNone);
OP (58, NF(None),            NF(CLI),    NULL, NULL, 0,    0,    OFNone);
OP (D8, NF(None),            NF(CLD),    NULL, NULL, 0,    NZCV, OFBreak | OFSectionUpdate);
OP (B8, NF(None),            NF(CLV),    NULL, NULL, V,    0,    OFNone);
OP (38, NF(None),            NF(SEC),    NULL, NULL, C,    0,    OFNone);
OP (78, NF(None),            NF(SEI),    NULL, NULL, 0,    0,    OFNone);
OP (F8, NF(None),            NF(SED),    NULL, NULL, 0,    NZCV, OFBreak | OFSectionUpdate);
OP (C2, NF8(Immediate),      NF(REP),    NULL, NULL, NZCV, NZCV, OFBreak | OFSectionUpdate);
OP (E2, NF8(Immediate),      NF(SEP),    NULL, NULL, NZCV, NZCV, OFBreak | OFSectionUpdate);
OP (FB, NF(None),            NF(XCE),    NULL, NULL, C,    NZCV, OFBreak | OFSectionUpdate);

OP (DB, NF(None),            NF(STP),    NULL, NULL, 0,    NZCV, OFBreak);
OP (EB, NF(None),            NF(XBA),    NULL, NULL, NZ,   0,    OFNone);
OP (CB, NF(None),            NF(WAI),    NULL, NULL, 0,    NZCV, OFBreak);
OP (42, NF8(Immediate),      NF(WDM),    NULL, NULL, 0,    NZCV, OFBreak); /* Speedhacks, might change PC */
OP (EA, NF(None),            NF(NOP),    NULL, NULL, 0,    0,    OFNone);