|
|
1.1 root 1: #include "sysdeps.h"
2: #include "hatari-glue.h"
3: #include "maccess.h"
4: #include "memory.h"
5: #include "newcpu.h"
6: #include "cputbl.h"
7: #define CPUFUNC(x) x##_ff
8: #ifdef NOFLAGS
9: #include "noflags.h"
10: #endif
11:
12: #if !defined(PART_1) && !defined(PART_2) && !defined(PART_3) && !defined(PART_4) && !defined(PART_5) && !defined(PART_6) && !defined(PART_7) && !defined(PART_8)
13: #define PART_1 1
14: #define PART_2 1
15: #define PART_3 1
16: #define PART_4 1
17: #define PART_5 1
18: #define PART_6 1
19: #define PART_7 1
20: #define PART_8 1
21: #endif
22:
23: #ifdef PART_1
24: unsigned long REGPARAM2 CPUFUNC(op_0_0)(uae_u32 opcode) /* OR */
25: {
26: uae_u32 dstreg = opcode & 7;
27: OpcodeFamily = 1; CurrentInstrCycles = 8;
28: {{ uae_s8 src = get_ibyte(2);
29: { uae_s8 dst = m68k_dreg(regs, dstreg);
30: src |= dst;
31: CLEAR_CZNV;
32: SET_ZFLG (((uae_s8)(src)) == 0);
33: SET_NFLG (((uae_s8)(src)) < 0);
34: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
35: }}}m68k_incpc(4);
36: return 8;
37: }
38: unsigned long REGPARAM2 CPUFUNC(op_10_0)(uae_u32 opcode) /* OR */
39: {
40: uae_u32 dstreg = opcode & 7;
41: OpcodeFamily = 1; CurrentInstrCycles = 16;
42: {{ uae_s8 src = get_ibyte(2);
43: { uaecptr dsta = m68k_areg(regs, dstreg);
44: { uae_s8 dst = get_byte(dsta);
45: src |= dst;
46: CLEAR_CZNV;
47: SET_ZFLG (((uae_s8)(src)) == 0);
48: SET_NFLG (((uae_s8)(src)) < 0);
49: put_byte(dsta,src);
50: }}}}m68k_incpc(4);
51: return 16;
52: }
53: unsigned long REGPARAM2 CPUFUNC(op_18_0)(uae_u32 opcode) /* OR */
54: {
55: uae_u32 dstreg = opcode & 7;
56: OpcodeFamily = 1; CurrentInstrCycles = 16;
57: {{ uae_s8 src = get_ibyte(2);
58: { uaecptr dsta = m68k_areg(regs, dstreg);
59: { uae_s8 dst = get_byte(dsta);
60: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
61: src |= dst;
62: CLEAR_CZNV;
63: SET_ZFLG (((uae_s8)(src)) == 0);
64: SET_NFLG (((uae_s8)(src)) < 0);
65: put_byte(dsta,src);
66: }}}}m68k_incpc(4);
67: return 16;
68: }
69: unsigned long REGPARAM2 CPUFUNC(op_20_0)(uae_u32 opcode) /* OR */
70: {
71: uae_u32 dstreg = opcode & 7;
72: OpcodeFamily = 1; CurrentInstrCycles = 18;
73: {{ uae_s8 src = get_ibyte(2);
74: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
75: { uae_s8 dst = get_byte(dsta);
76: m68k_areg (regs, dstreg) = dsta;
77: src |= dst;
78: CLEAR_CZNV;
79: SET_ZFLG (((uae_s8)(src)) == 0);
80: SET_NFLG (((uae_s8)(src)) < 0);
81: put_byte(dsta,src);
82: }}}}m68k_incpc(4);
83: return 18;
84: }
85: unsigned long REGPARAM2 CPUFUNC(op_28_0)(uae_u32 opcode) /* OR */
86: {
87: uae_u32 dstreg = opcode & 7;
88: OpcodeFamily = 1; CurrentInstrCycles = 20;
89: {{ uae_s8 src = get_ibyte(2);
90: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
91: { uae_s8 dst = get_byte(dsta);
92: src |= dst;
93: CLEAR_CZNV;
94: SET_ZFLG (((uae_s8)(src)) == 0);
95: SET_NFLG (((uae_s8)(src)) < 0);
96: put_byte(dsta,src);
97: }}}}m68k_incpc(6);
98: return 20;
99: }
100: unsigned long REGPARAM2 CPUFUNC(op_30_0)(uae_u32 opcode) /* OR */
101: {
102: uae_u32 dstreg = opcode & 7;
103: OpcodeFamily = 1; CurrentInstrCycles = 22;
104: {{ uae_s8 src = get_ibyte(2);
105: {m68k_incpc(4);
106: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
107: BusCyclePenalty += 2;
108: { uae_s8 dst = get_byte(dsta);
109: src |= dst;
110: CLEAR_CZNV;
111: SET_ZFLG (((uae_s8)(src)) == 0);
112: SET_NFLG (((uae_s8)(src)) < 0);
113: put_byte(dsta,src);
114: }}}}}return 22;
115: }
116: unsigned long REGPARAM2 CPUFUNC(op_38_0)(uae_u32 opcode) /* OR */
117: {
118: OpcodeFamily = 1; CurrentInstrCycles = 20;
119: {{ uae_s8 src = get_ibyte(2);
120: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
121: { uae_s8 dst = get_byte(dsta);
122: src |= dst;
123: CLEAR_CZNV;
124: SET_ZFLG (((uae_s8)(src)) == 0);
125: SET_NFLG (((uae_s8)(src)) < 0);
126: put_byte(dsta,src);
127: }}}}m68k_incpc(6);
128: return 20;
129: }
130: unsigned long REGPARAM2 CPUFUNC(op_39_0)(uae_u32 opcode) /* OR */
131: {
132: OpcodeFamily = 1; CurrentInstrCycles = 24;
133: {{ uae_s8 src = get_ibyte(2);
134: { uaecptr dsta = get_ilong(4);
135: { uae_s8 dst = get_byte(dsta);
136: src |= dst;
137: CLEAR_CZNV;
138: SET_ZFLG (((uae_s8)(src)) == 0);
139: SET_NFLG (((uae_s8)(src)) < 0);
140: put_byte(dsta,src);
141: }}}}m68k_incpc(8);
142: return 24;
143: }
144: unsigned long REGPARAM2 CPUFUNC(op_3c_0)(uae_u32 opcode) /* ORSR */
145: {
146: OpcodeFamily = 4; CurrentInstrCycles = 20;
147: { MakeSR();
148: { uae_s16 src = get_iword(2);
149: src &= 0xFF;
150: regs.sr |= src;
151: MakeFromSR();
152: }}m68k_incpc(4);
153: return 20;
154: }
155: unsigned long REGPARAM2 CPUFUNC(op_40_0)(uae_u32 opcode) /* OR */
156: {
157: uae_u32 dstreg = opcode & 7;
158: OpcodeFamily = 1; CurrentInstrCycles = 8;
159: {{ uae_s16 src = get_iword(2);
160: { uae_s16 dst = m68k_dreg(regs, dstreg);
161: src |= dst;
162: CLEAR_CZNV;
163: SET_ZFLG (((uae_s16)(src)) == 0);
164: SET_NFLG (((uae_s16)(src)) < 0);
165: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
166: }}}m68k_incpc(4);
167: return 8;
168: }
169: unsigned long REGPARAM2 CPUFUNC(op_50_0)(uae_u32 opcode) /* OR */
170: {
171: uae_u32 dstreg = opcode & 7;
172: OpcodeFamily = 1; CurrentInstrCycles = 16;
173: {{ uae_s16 src = get_iword(2);
174: { uaecptr dsta = m68k_areg(regs, dstreg);
175: { uae_s16 dst = get_word(dsta);
176: src |= dst;
177: CLEAR_CZNV;
178: SET_ZFLG (((uae_s16)(src)) == 0);
179: SET_NFLG (((uae_s16)(src)) < 0);
180: put_word(dsta,src);
181: }}}}m68k_incpc(4);
182: return 16;
183: }
184: unsigned long REGPARAM2 CPUFUNC(op_58_0)(uae_u32 opcode) /* OR */
185: {
186: uae_u32 dstreg = opcode & 7;
187: OpcodeFamily = 1; CurrentInstrCycles = 16;
188: {{ uae_s16 src = get_iword(2);
189: { uaecptr dsta = m68k_areg(regs, dstreg);
190: { uae_s16 dst = get_word(dsta);
191: m68k_areg(regs, dstreg) += 2;
192: src |= dst;
193: CLEAR_CZNV;
194: SET_ZFLG (((uae_s16)(src)) == 0);
195: SET_NFLG (((uae_s16)(src)) < 0);
196: put_word(dsta,src);
197: }}}}m68k_incpc(4);
198: return 16;
199: }
200: unsigned long REGPARAM2 CPUFUNC(op_60_0)(uae_u32 opcode) /* OR */
201: {
202: uae_u32 dstreg = opcode & 7;
203: OpcodeFamily = 1; CurrentInstrCycles = 18;
204: {{ uae_s16 src = get_iword(2);
205: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
206: { uae_s16 dst = get_word(dsta);
207: m68k_areg (regs, dstreg) = dsta;
208: src |= dst;
209: CLEAR_CZNV;
210: SET_ZFLG (((uae_s16)(src)) == 0);
211: SET_NFLG (((uae_s16)(src)) < 0);
212: put_word(dsta,src);
213: }}}}m68k_incpc(4);
214: return 18;
215: }
216: unsigned long REGPARAM2 CPUFUNC(op_68_0)(uae_u32 opcode) /* OR */
217: {
218: uae_u32 dstreg = opcode & 7;
219: OpcodeFamily = 1; CurrentInstrCycles = 20;
220: {{ uae_s16 src = get_iword(2);
221: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
222: { uae_s16 dst = get_word(dsta);
223: src |= dst;
224: CLEAR_CZNV;
225: SET_ZFLG (((uae_s16)(src)) == 0);
226: SET_NFLG (((uae_s16)(src)) < 0);
227: put_word(dsta,src);
228: }}}}m68k_incpc(6);
229: return 20;
230: }
231: unsigned long REGPARAM2 CPUFUNC(op_70_0)(uae_u32 opcode) /* OR */
232: {
233: uae_u32 dstreg = opcode & 7;
234: OpcodeFamily = 1; CurrentInstrCycles = 22;
235: {{ uae_s16 src = get_iword(2);
236: {m68k_incpc(4);
237: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
238: BusCyclePenalty += 2;
239: { uae_s16 dst = get_word(dsta);
240: src |= dst;
241: CLEAR_CZNV;
242: SET_ZFLG (((uae_s16)(src)) == 0);
243: SET_NFLG (((uae_s16)(src)) < 0);
244: put_word(dsta,src);
245: }}}}}return 22;
246: }
247: unsigned long REGPARAM2 CPUFUNC(op_78_0)(uae_u32 opcode) /* OR */
248: {
249: OpcodeFamily = 1; CurrentInstrCycles = 20;
250: {{ uae_s16 src = get_iword(2);
251: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
252: { uae_s16 dst = get_word(dsta);
253: src |= dst;
254: CLEAR_CZNV;
255: SET_ZFLG (((uae_s16)(src)) == 0);
256: SET_NFLG (((uae_s16)(src)) < 0);
257: put_word(dsta,src);
258: }}}}m68k_incpc(6);
259: return 20;
260: }
261: unsigned long REGPARAM2 CPUFUNC(op_79_0)(uae_u32 opcode) /* OR */
262: {
263: OpcodeFamily = 1; CurrentInstrCycles = 24;
264: {{ uae_s16 src = get_iword(2);
265: { uaecptr dsta = get_ilong(4);
266: { uae_s16 dst = get_word(dsta);
267: src |= dst;
268: CLEAR_CZNV;
269: SET_ZFLG (((uae_s16)(src)) == 0);
270: SET_NFLG (((uae_s16)(src)) < 0);
271: put_word(dsta,src);
272: }}}}m68k_incpc(8);
273: return 24;
274: }
275: unsigned long REGPARAM2 CPUFUNC(op_7c_0)(uae_u32 opcode) /* ORSR */
276: {
277: OpcodeFamily = 4; CurrentInstrCycles = 20;
278: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel18; }
279: { MakeSR();
280: { uae_s16 src = get_iword(2);
281: regs.sr |= src;
282: MakeFromSR();
283: }}}m68k_incpc(4);
284: endlabel18: ;
285: return 20;
286: }
287: unsigned long REGPARAM2 CPUFUNC(op_80_0)(uae_u32 opcode) /* OR */
288: {
289: uae_u32 dstreg = opcode & 7;
290: OpcodeFamily = 1; CurrentInstrCycles = 16;
291: {{ uae_s32 src = get_ilong(2);
292: { uae_s32 dst = m68k_dreg(regs, dstreg);
293: src |= dst;
294: CLEAR_CZNV;
295: SET_ZFLG (((uae_s32)(src)) == 0);
296: SET_NFLG (((uae_s32)(src)) < 0);
297: m68k_dreg(regs, dstreg) = (src);
298: }}}m68k_incpc(6);
299: return 16;
300: }
301: unsigned long REGPARAM2 CPUFUNC(op_90_0)(uae_u32 opcode) /* OR */
302: {
303: uae_u32 dstreg = opcode & 7;
304: OpcodeFamily = 1; CurrentInstrCycles = 28;
305: {{ uae_s32 src = get_ilong(2);
306: { uaecptr dsta = m68k_areg(regs, dstreg);
307: { uae_s32 dst = get_long(dsta);
308: src |= dst;
309: CLEAR_CZNV;
310: SET_ZFLG (((uae_s32)(src)) == 0);
311: SET_NFLG (((uae_s32)(src)) < 0);
312: put_long(dsta,src);
313: }}}}m68k_incpc(6);
314: return 28;
315: }
316: unsigned long REGPARAM2 CPUFUNC(op_98_0)(uae_u32 opcode) /* OR */
317: {
318: uae_u32 dstreg = opcode & 7;
319: OpcodeFamily = 1; CurrentInstrCycles = 28;
320: {{ uae_s32 src = get_ilong(2);
321: { uaecptr dsta = m68k_areg(regs, dstreg);
322: { uae_s32 dst = get_long(dsta);
323: m68k_areg(regs, dstreg) += 4;
324: src |= dst;
325: CLEAR_CZNV;
326: SET_ZFLG (((uae_s32)(src)) == 0);
327: SET_NFLG (((uae_s32)(src)) < 0);
328: put_long(dsta,src);
329: }}}}m68k_incpc(6);
330: return 28;
331: }
332: unsigned long REGPARAM2 CPUFUNC(op_a0_0)(uae_u32 opcode) /* OR */
333: {
334: uae_u32 dstreg = opcode & 7;
335: OpcodeFamily = 1; CurrentInstrCycles = 30;
336: {{ uae_s32 src = get_ilong(2);
337: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
338: { uae_s32 dst = get_long(dsta);
339: m68k_areg (regs, dstreg) = dsta;
340: src |= dst;
341: CLEAR_CZNV;
342: SET_ZFLG (((uae_s32)(src)) == 0);
343: SET_NFLG (((uae_s32)(src)) < 0);
344: put_long(dsta,src);
345: }}}}m68k_incpc(6);
346: return 30;
347: }
348: unsigned long REGPARAM2 CPUFUNC(op_a8_0)(uae_u32 opcode) /* OR */
349: {
350: uae_u32 dstreg = opcode & 7;
351: OpcodeFamily = 1; CurrentInstrCycles = 32;
352: {{ uae_s32 src = get_ilong(2);
353: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6);
354: { uae_s32 dst = get_long(dsta);
355: src |= dst;
356: CLEAR_CZNV;
357: SET_ZFLG (((uae_s32)(src)) == 0);
358: SET_NFLG (((uae_s32)(src)) < 0);
359: put_long(dsta,src);
360: }}}}m68k_incpc(8);
361: return 32;
362: }
363: unsigned long REGPARAM2 CPUFUNC(op_b0_0)(uae_u32 opcode) /* OR */
364: {
365: uae_u32 dstreg = opcode & 7;
366: OpcodeFamily = 1; CurrentInstrCycles = 34;
367: {{ uae_s32 src = get_ilong(2);
368: {m68k_incpc(6);
369: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
370: BusCyclePenalty += 2;
371: { uae_s32 dst = get_long(dsta);
372: src |= dst;
373: CLEAR_CZNV;
374: SET_ZFLG (((uae_s32)(src)) == 0);
375: SET_NFLG (((uae_s32)(src)) < 0);
376: put_long(dsta,src);
377: }}}}}return 34;
378: }
379: unsigned long REGPARAM2 CPUFUNC(op_b8_0)(uae_u32 opcode) /* OR */
380: {
381: OpcodeFamily = 1; CurrentInstrCycles = 32;
382: {{ uae_s32 src = get_ilong(2);
383: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(6);
384: { uae_s32 dst = get_long(dsta);
385: src |= dst;
386: CLEAR_CZNV;
387: SET_ZFLG (((uae_s32)(src)) == 0);
388: SET_NFLG (((uae_s32)(src)) < 0);
389: put_long(dsta,src);
390: }}}}m68k_incpc(8);
391: return 32;
392: }
393: unsigned long REGPARAM2 CPUFUNC(op_b9_0)(uae_u32 opcode) /* OR */
394: {
395: OpcodeFamily = 1; CurrentInstrCycles = 36;
396: {{ uae_s32 src = get_ilong(2);
397: { uaecptr dsta = get_ilong(6);
398: { uae_s32 dst = get_long(dsta);
399: src |= dst;
400: CLEAR_CZNV;
401: SET_ZFLG (((uae_s32)(src)) == 0);
402: SET_NFLG (((uae_s32)(src)) < 0);
403: put_long(dsta,src);
404: }}}}m68k_incpc(10);
405: return 36;
406: }
407: unsigned long REGPARAM2 CPUFUNC(op_d0_0)(uae_u32 opcode) /* CHK2 */
408: {
409: uae_u32 dstreg = opcode & 7;
410: OpcodeFamily = 81; CurrentInstrCycles = 8;
411: { uaecptr oldpc = m68k_getpc();
412: { uae_s16 extra = get_iword(2);
413: { uaecptr dsta = m68k_areg(regs, dstreg);
414: {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15];
415: lower=(uae_s32)(uae_s8)get_byte(dsta); upper = (uae_s32)(uae_s8)get_byte(dsta+1);
416: if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg;
417: SET_ZFLG (upper == reg || lower == reg);
418: SET_CFLG (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower);
419: m68k_incpc(4);
420: if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel27; }
421: }
422: }}}endlabel27: ;
423: return 8;
424: }
425: unsigned long REGPARAM2 CPUFUNC(op_e8_0)(uae_u32 opcode) /* CHK2 */
426: {
427: uae_u32 dstreg = opcode & 7;
428: OpcodeFamily = 81; CurrentInstrCycles = 12;
429: { uaecptr oldpc = m68k_getpc();
430: { uae_s16 extra = get_iword(2);
431: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
432: {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15];
433: lower=(uae_s32)(uae_s8)get_byte(dsta); upper = (uae_s32)(uae_s8)get_byte(dsta+1);
434: if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg;
435: SET_ZFLG (upper == reg || lower == reg);
436: SET_CFLG (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower);
437: m68k_incpc(6);
438: if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel28; }
439: }
440: }}}endlabel28: ;
441: return 12;
442: }
443: unsigned long REGPARAM2 CPUFUNC(op_f0_0)(uae_u32 opcode) /* CHK2 */
444: {
445: uae_u32 dstreg = opcode & 7;
446: OpcodeFamily = 81; CurrentInstrCycles = 14;
447: { uaecptr oldpc = m68k_getpc();
448: { uae_s16 extra = get_iword(2);
449: {m68k_incpc(4);
450: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
451: BusCyclePenalty += 2;
452: {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15];
453: lower=(uae_s32)(uae_s8)get_byte(dsta); upper = (uae_s32)(uae_s8)get_byte(dsta+1);
454: if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg;
455: SET_ZFLG (upper == reg || lower == reg);
456: SET_CFLG (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower);
457: if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel29; }
458: }
459: }}}}endlabel29: ;
460: return 14;
461: }
462: unsigned long REGPARAM2 CPUFUNC(op_f8_0)(uae_u32 opcode) /* CHK2 */
463: {
464: OpcodeFamily = 81; CurrentInstrCycles = 12;
465: { uaecptr oldpc = m68k_getpc();
466: { uae_s16 extra = get_iword(2);
467: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
468: {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15];
469: lower=(uae_s32)(uae_s8)get_byte(dsta); upper = (uae_s32)(uae_s8)get_byte(dsta+1);
470: if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg;
471: SET_ZFLG (upper == reg || lower == reg);
472: SET_CFLG (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower);
473: m68k_incpc(6);
474: if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel30; }
475: }
476: }}}endlabel30: ;
477: return 12;
478: }
479: unsigned long REGPARAM2 CPUFUNC(op_f9_0)(uae_u32 opcode) /* CHK2 */
480: {
481: OpcodeFamily = 81; CurrentInstrCycles = 16;
482: { uaecptr oldpc = m68k_getpc();
483: { uae_s16 extra = get_iword(2);
484: { uaecptr dsta = get_ilong(4);
485: {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15];
486: lower=(uae_s32)(uae_s8)get_byte(dsta); upper = (uae_s32)(uae_s8)get_byte(dsta+1);
487: if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg;
488: SET_ZFLG (upper == reg || lower == reg);
489: SET_CFLG (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower);
490: m68k_incpc(8);
491: if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel31; }
492: }
493: }}}endlabel31: ;
494: return 16;
495: }
496: unsigned long REGPARAM2 CPUFUNC(op_fa_0)(uae_u32 opcode) /* CHK2 */
497: {
498: uae_u32 dstreg = 2;
499: OpcodeFamily = 81; CurrentInstrCycles = 12;
500: { uaecptr oldpc = m68k_getpc();
501: { uae_s16 extra = get_iword(2);
502: { uaecptr dsta = m68k_getpc () + 4;
503: dsta += (uae_s32)(uae_s16)get_iword(4);
504: {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15];
505: lower=(uae_s32)(uae_s8)get_byte(dsta); upper = (uae_s32)(uae_s8)get_byte(dsta+1);
506: if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg;
507: SET_ZFLG (upper == reg || lower == reg);
508: SET_CFLG (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower);
509: m68k_incpc(6);
510: if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel32; }
511: }
512: }}}endlabel32: ;
513: return 12;
514: }
515: unsigned long REGPARAM2 CPUFUNC(op_fb_0)(uae_u32 opcode) /* CHK2 */
516: {
517: uae_u32 dstreg = 3;
518: OpcodeFamily = 81; CurrentInstrCycles = 14;
519: { uaecptr oldpc = m68k_getpc();
520: { uae_s16 extra = get_iword(2);
521: {m68k_incpc(4);
522: { uaecptr tmppc = m68k_getpc();
523: uaecptr dsta = get_disp_ea_020(tmppc, next_iword());
524: BusCyclePenalty += 2;
525: {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15];
526: lower=(uae_s32)(uae_s8)get_byte(dsta); upper = (uae_s32)(uae_s8)get_byte(dsta+1);
527: if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s8)reg;
528: SET_ZFLG (upper == reg || lower == reg);
529: SET_CFLG (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower);
530: if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel33; }
531: }
532: }}}}endlabel33: ;
533: return 14;
534: }
535: unsigned long REGPARAM2 CPUFUNC(op_100_0)(uae_u32 opcode) /* BTST */
536: {
537: uae_u32 srcreg = ((opcode >> 9) & 7);
538: uae_u32 dstreg = opcode & 7;
539: OpcodeFamily = 21; CurrentInstrCycles = 6;
540: {{ uae_s32 src = m68k_dreg(regs, srcreg);
541: { uae_s32 dst = m68k_dreg(regs, dstreg);
542: src &= 31;
543: SET_ZFLG (1 ^ ((dst >> src) & 1));
544: }}}m68k_incpc(2);
545: return 6;
546: }
547: unsigned long REGPARAM2 CPUFUNC(op_108_0)(uae_u32 opcode) /* MVPMR */
548: {
549: uae_u32 srcreg = (opcode & 7);
550: uae_u32 dstreg = (opcode >> 9) & 7;
551: OpcodeFamily = 29; CurrentInstrCycles = 16;
552: { uaecptr memp = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
553: { uae_u16 val = (get_byte(memp) << 8) + get_byte(memp + 2);
554: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
555: }}m68k_incpc(4);
556: return 16;
557: }
558: unsigned long REGPARAM2 CPUFUNC(op_110_0)(uae_u32 opcode) /* BTST */
559: {
560: uae_u32 srcreg = ((opcode >> 9) & 7);
561: uae_u32 dstreg = opcode & 7;
562: OpcodeFamily = 21; CurrentInstrCycles = 8;
563: {{ uae_s8 src = m68k_dreg(regs, srcreg);
564: { uaecptr dsta = m68k_areg(regs, dstreg);
565: { uae_s8 dst = get_byte(dsta);
566: src &= 7;
567: SET_ZFLG (1 ^ ((dst >> src) & 1));
568: }}}}m68k_incpc(2);
569: return 8;
570: }
571: unsigned long REGPARAM2 CPUFUNC(op_118_0)(uae_u32 opcode) /* BTST */
572: {
573: uae_u32 srcreg = ((opcode >> 9) & 7);
574: uae_u32 dstreg = opcode & 7;
575: OpcodeFamily = 21; CurrentInstrCycles = 8;
576: {{ uae_s8 src = m68k_dreg(regs, srcreg);
577: { uaecptr dsta = m68k_areg(regs, dstreg);
578: { uae_s8 dst = get_byte(dsta);
579: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
580: src &= 7;
581: SET_ZFLG (1 ^ ((dst >> src) & 1));
582: }}}}m68k_incpc(2);
583: return 8;
584: }
585: unsigned long REGPARAM2 CPUFUNC(op_120_0)(uae_u32 opcode) /* BTST */
586: {
587: uae_u32 srcreg = ((opcode >> 9) & 7);
588: uae_u32 dstreg = opcode & 7;
589: OpcodeFamily = 21; CurrentInstrCycles = 10;
590: {{ uae_s8 src = m68k_dreg(regs, srcreg);
591: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
592: { uae_s8 dst = get_byte(dsta);
593: m68k_areg (regs, dstreg) = dsta;
594: src &= 7;
595: SET_ZFLG (1 ^ ((dst >> src) & 1));
596: }}}}m68k_incpc(2);
597: return 10;
598: }
599: unsigned long REGPARAM2 CPUFUNC(op_128_0)(uae_u32 opcode) /* BTST */
600: {
601: uae_u32 srcreg = ((opcode >> 9) & 7);
602: uae_u32 dstreg = opcode & 7;
603: OpcodeFamily = 21; CurrentInstrCycles = 12;
604: {{ uae_s8 src = m68k_dreg(regs, srcreg);
605: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
606: { uae_s8 dst = get_byte(dsta);
607: src &= 7;
608: SET_ZFLG (1 ^ ((dst >> src) & 1));
609: }}}}m68k_incpc(4);
610: return 12;
611: }
612: unsigned long REGPARAM2 CPUFUNC(op_130_0)(uae_u32 opcode) /* BTST */
613: {
614: uae_u32 srcreg = ((opcode >> 9) & 7);
615: uae_u32 dstreg = opcode & 7;
616: OpcodeFamily = 21; CurrentInstrCycles = 14;
617: {{ uae_s8 src = m68k_dreg(regs, srcreg);
618: {m68k_incpc(2);
619: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
620: BusCyclePenalty += 2;
621: { uae_s8 dst = get_byte(dsta);
622: src &= 7;
623: SET_ZFLG (1 ^ ((dst >> src) & 1));
624: }}}}}return 14;
625: }
626: unsigned long REGPARAM2 CPUFUNC(op_138_0)(uae_u32 opcode) /* BTST */
627: {
628: uae_u32 srcreg = ((opcode >> 9) & 7);
629: OpcodeFamily = 21; CurrentInstrCycles = 12;
630: {{ uae_s8 src = m68k_dreg(regs, srcreg);
631: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
632: { uae_s8 dst = get_byte(dsta);
633: src &= 7;
634: SET_ZFLG (1 ^ ((dst >> src) & 1));
635: }}}}m68k_incpc(4);
636: return 12;
637: }
638: unsigned long REGPARAM2 CPUFUNC(op_139_0)(uae_u32 opcode) /* BTST */
639: {
640: uae_u32 srcreg = ((opcode >> 9) & 7);
641: OpcodeFamily = 21; CurrentInstrCycles = 16;
642: {{ uae_s8 src = m68k_dreg(regs, srcreg);
643: { uaecptr dsta = get_ilong(2);
644: { uae_s8 dst = get_byte(dsta);
645: src &= 7;
646: SET_ZFLG (1 ^ ((dst >> src) & 1));
647: }}}}m68k_incpc(6);
648: return 16;
649: }
650: unsigned long REGPARAM2 CPUFUNC(op_13a_0)(uae_u32 opcode) /* BTST */
651: {
652: uae_u32 srcreg = ((opcode >> 9) & 7);
653: uae_u32 dstreg = 2;
654: OpcodeFamily = 21; CurrentInstrCycles = 12;
655: {{ uae_s8 src = m68k_dreg(regs, srcreg);
656: { uaecptr dsta = m68k_getpc () + 2;
657: dsta += (uae_s32)(uae_s16)get_iword(2);
658: { uae_s8 dst = get_byte(dsta);
659: src &= 7;
660: SET_ZFLG (1 ^ ((dst >> src) & 1));
661: }}}}m68k_incpc(4);
662: return 12;
663: }
664: unsigned long REGPARAM2 CPUFUNC(op_13b_0)(uae_u32 opcode) /* BTST */
665: {
666: uae_u32 srcreg = ((opcode >> 9) & 7);
667: uae_u32 dstreg = 3;
668: OpcodeFamily = 21; CurrentInstrCycles = 14;
669: {{ uae_s8 src = m68k_dreg(regs, srcreg);
670: {m68k_incpc(2);
671: { uaecptr tmppc = m68k_getpc();
672: uaecptr dsta = get_disp_ea_020(tmppc, next_iword());
673: BusCyclePenalty += 2;
674: { uae_s8 dst = get_byte(dsta);
675: src &= 7;
676: SET_ZFLG (1 ^ ((dst >> src) & 1));
677: }}}}}return 14;
678: }
679: unsigned long REGPARAM2 CPUFUNC(op_13c_0)(uae_u32 opcode) /* BTST */
680: {
681: uae_u32 srcreg = ((opcode >> 9) & 7);
682: OpcodeFamily = 21; CurrentInstrCycles = 8;
683: {{ uae_s8 src = m68k_dreg(regs, srcreg);
684: { uae_s8 dst = get_ibyte(2);
685: src &= 7;
686: SET_ZFLG (1 ^ ((dst >> src) & 1));
687: }}}m68k_incpc(4);
688: return 8;
689: }
690: unsigned long REGPARAM2 CPUFUNC(op_140_0)(uae_u32 opcode) /* BCHG */
691: {
692: uae_u32 srcreg = ((opcode >> 9) & 7);
693: uae_u32 dstreg = opcode & 7;
694: OpcodeFamily = 22; CurrentInstrCycles = 8;
695: {{ uae_s32 src = m68k_dreg(regs, srcreg);
696: { uae_s32 dst = m68k_dreg(regs, dstreg);
697: src &= 31;
698: dst ^= (1 << src);
699: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
700: m68k_dreg(regs, dstreg) = (dst);
701: }}}m68k_incpc(2);
702: return 8;
703: }
704: unsigned long REGPARAM2 CPUFUNC(op_148_0)(uae_u32 opcode) /* MVPMR */
705: {
706: uae_u32 srcreg = (opcode & 7);
707: uae_u32 dstreg = (opcode >> 9) & 7;
708: OpcodeFamily = 29; CurrentInstrCycles = 24;
709: { uaecptr memp = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
710: { uae_u32 val = (get_byte(memp) << 24) + (get_byte(memp + 2) << 16)
711: + (get_byte(memp + 4) << 8) + get_byte(memp + 6);
712: m68k_dreg(regs, dstreg) = (val);
713: }}m68k_incpc(4);
714: return 24;
715: }
716: unsigned long REGPARAM2 CPUFUNC(op_150_0)(uae_u32 opcode) /* BCHG */
717: {
718: uae_u32 srcreg = ((opcode >> 9) & 7);
719: uae_u32 dstreg = opcode & 7;
720: OpcodeFamily = 22; CurrentInstrCycles = 12;
721: {{ uae_s8 src = m68k_dreg(regs, srcreg);
722: { uaecptr dsta = m68k_areg(regs, dstreg);
723: { uae_s8 dst = get_byte(dsta);
724: src &= 7;
725: dst ^= (1 << src);
726: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
727: put_byte(dsta,dst);
728: }}}}m68k_incpc(2);
729: return 12;
730: }
731: unsigned long REGPARAM2 CPUFUNC(op_158_0)(uae_u32 opcode) /* BCHG */
732: {
733: uae_u32 srcreg = ((opcode >> 9) & 7);
734: uae_u32 dstreg = opcode & 7;
735: OpcodeFamily = 22; CurrentInstrCycles = 12;
736: {{ uae_s8 src = m68k_dreg(regs, srcreg);
737: { uaecptr dsta = m68k_areg(regs, dstreg);
738: { uae_s8 dst = get_byte(dsta);
739: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
740: src &= 7;
741: dst ^= (1 << src);
742: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
743: put_byte(dsta,dst);
744: }}}}m68k_incpc(2);
745: return 12;
746: }
747: unsigned long REGPARAM2 CPUFUNC(op_160_0)(uae_u32 opcode) /* BCHG */
748: {
749: uae_u32 srcreg = ((opcode >> 9) & 7);
750: uae_u32 dstreg = opcode & 7;
751: OpcodeFamily = 22; CurrentInstrCycles = 14;
752: {{ uae_s8 src = m68k_dreg(regs, srcreg);
753: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
754: { uae_s8 dst = get_byte(dsta);
755: m68k_areg (regs, dstreg) = dsta;
756: src &= 7;
757: dst ^= (1 << src);
758: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
759: put_byte(dsta,dst);
760: }}}}m68k_incpc(2);
761: return 14;
762: }
763: unsigned long REGPARAM2 CPUFUNC(op_168_0)(uae_u32 opcode) /* BCHG */
764: {
765: uae_u32 srcreg = ((opcode >> 9) & 7);
766: uae_u32 dstreg = opcode & 7;
767: OpcodeFamily = 22; CurrentInstrCycles = 16;
768: {{ uae_s8 src = m68k_dreg(regs, srcreg);
769: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
770: { uae_s8 dst = get_byte(dsta);
771: src &= 7;
772: dst ^= (1 << src);
773: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
774: put_byte(dsta,dst);
775: }}}}m68k_incpc(4);
776: return 16;
777: }
778: unsigned long REGPARAM2 CPUFUNC(op_170_0)(uae_u32 opcode) /* BCHG */
779: {
780: uae_u32 srcreg = ((opcode >> 9) & 7);
781: uae_u32 dstreg = opcode & 7;
782: OpcodeFamily = 22; CurrentInstrCycles = 18;
783: {{ uae_s8 src = m68k_dreg(regs, srcreg);
784: {m68k_incpc(2);
785: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
786: BusCyclePenalty += 2;
787: { uae_s8 dst = get_byte(dsta);
788: src &= 7;
789: dst ^= (1 << src);
790: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
791: put_byte(dsta,dst);
792: }}}}}return 18;
793: }
794: unsigned long REGPARAM2 CPUFUNC(op_178_0)(uae_u32 opcode) /* BCHG */
795: {
796: uae_u32 srcreg = ((opcode >> 9) & 7);
797: OpcodeFamily = 22; CurrentInstrCycles = 16;
798: {{ uae_s8 src = m68k_dreg(regs, srcreg);
799: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
800: { uae_s8 dst = get_byte(dsta);
801: src &= 7;
802: dst ^= (1 << src);
803: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
804: put_byte(dsta,dst);
805: }}}}m68k_incpc(4);
806: return 16;
807: }
808: unsigned long REGPARAM2 CPUFUNC(op_179_0)(uae_u32 opcode) /* BCHG */
809: {
810: uae_u32 srcreg = ((opcode >> 9) & 7);
811: OpcodeFamily = 22; CurrentInstrCycles = 20;
812: {{ uae_s8 src = m68k_dreg(regs, srcreg);
813: { uaecptr dsta = get_ilong(2);
814: { uae_s8 dst = get_byte(dsta);
815: src &= 7;
816: dst ^= (1 << src);
817: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
818: put_byte(dsta,dst);
819: }}}}m68k_incpc(6);
820: return 20;
821: }
822: unsigned long REGPARAM2 CPUFUNC(op_17a_0)(uae_u32 opcode) /* BCHG */
823: {
824: uae_u32 srcreg = ((opcode >> 9) & 7);
825: uae_u32 dstreg = 2;
826: OpcodeFamily = 22; CurrentInstrCycles = 16;
827: {{ uae_s8 src = m68k_dreg(regs, srcreg);
828: { uaecptr dsta = m68k_getpc () + 2;
829: dsta += (uae_s32)(uae_s16)get_iword(2);
830: { uae_s8 dst = get_byte(dsta);
831: src &= 7;
832: dst ^= (1 << src);
833: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
834: put_byte(dsta,dst);
835: }}}}m68k_incpc(4);
836: return 16;
837: }
838: unsigned long REGPARAM2 CPUFUNC(op_17b_0)(uae_u32 opcode) /* BCHG */
839: {
840: uae_u32 srcreg = ((opcode >> 9) & 7);
841: uae_u32 dstreg = 3;
842: OpcodeFamily = 22; CurrentInstrCycles = 18;
843: {{ uae_s8 src = m68k_dreg(regs, srcreg);
844: {m68k_incpc(2);
845: { uaecptr tmppc = m68k_getpc();
846: uaecptr dsta = get_disp_ea_020(tmppc, next_iword());
847: BusCyclePenalty += 2;
848: { uae_s8 dst = get_byte(dsta);
849: src &= 7;
850: dst ^= (1 << src);
851: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
852: put_byte(dsta,dst);
853: }}}}}return 18;
854: }
855: unsigned long REGPARAM2 CPUFUNC(op_180_0)(uae_u32 opcode) /* BCLR */
856: {
857: uae_u32 srcreg = ((opcode >> 9) & 7);
858: uae_u32 dstreg = opcode & 7;
859: OpcodeFamily = 23; CurrentInstrCycles = 10;
860: {{ uae_s32 src = m68k_dreg(regs, srcreg);
861: { uae_s32 dst = m68k_dreg(regs, dstreg);
862: src &= 31;
863: SET_ZFLG (1 ^ ((dst >> src) & 1));
864: dst &= ~(1 << src);
865: m68k_dreg(regs, dstreg) = (dst);
866: if ( src < 16 ) { m68k_incpc(2); return 8; }
867: }}}m68k_incpc(2);
868: return 10;
869: }
870: unsigned long REGPARAM2 CPUFUNC(op_188_0)(uae_u32 opcode) /* MVPRM */
871: {
872: uae_u32 srcreg = ((opcode >> 9) & 7);
873: uae_u32 dstreg = opcode & 7;
874: OpcodeFamily = 28; CurrentInstrCycles = 16;
875: {{ uae_s16 src = m68k_dreg(regs, srcreg);
876: uaecptr memp = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
877: put_byte(memp, src >> 8); put_byte(memp + 2, src);
878: }}m68k_incpc(4);
879: return 16;
880: }
881: unsigned long REGPARAM2 CPUFUNC(op_190_0)(uae_u32 opcode) /* BCLR */
882: {
883: uae_u32 srcreg = ((opcode >> 9) & 7);
884: uae_u32 dstreg = opcode & 7;
885: OpcodeFamily = 23; CurrentInstrCycles = 12;
886: {{ uae_s8 src = m68k_dreg(regs, srcreg);
887: { uaecptr dsta = m68k_areg(regs, dstreg);
888: { uae_s8 dst = get_byte(dsta);
889: src &= 7;
890: SET_ZFLG (1 ^ ((dst >> src) & 1));
891: dst &= ~(1 << src);
892: put_byte(dsta,dst);
893: }}}}m68k_incpc(2);
894: return 12;
895: }
896: unsigned long REGPARAM2 CPUFUNC(op_198_0)(uae_u32 opcode) /* BCLR */
897: {
898: uae_u32 srcreg = ((opcode >> 9) & 7);
899: uae_u32 dstreg = opcode & 7;
900: OpcodeFamily = 23; CurrentInstrCycles = 12;
901: {{ uae_s8 src = m68k_dreg(regs, srcreg);
902: { uaecptr dsta = m68k_areg(regs, dstreg);
903: { uae_s8 dst = get_byte(dsta);
904: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
905: src &= 7;
906: SET_ZFLG (1 ^ ((dst >> src) & 1));
907: dst &= ~(1 << src);
908: put_byte(dsta,dst);
909: }}}}m68k_incpc(2);
910: return 12;
911: }
912: unsigned long REGPARAM2 CPUFUNC(op_1a0_0)(uae_u32 opcode) /* BCLR */
913: {
914: uae_u32 srcreg = ((opcode >> 9) & 7);
915: uae_u32 dstreg = opcode & 7;
916: OpcodeFamily = 23; CurrentInstrCycles = 14;
917: {{ uae_s8 src = m68k_dreg(regs, srcreg);
918: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
919: { uae_s8 dst = get_byte(dsta);
920: m68k_areg (regs, dstreg) = dsta;
921: src &= 7;
922: SET_ZFLG (1 ^ ((dst >> src) & 1));
923: dst &= ~(1 << src);
924: put_byte(dsta,dst);
925: }}}}m68k_incpc(2);
926: return 14;
927: }
928: unsigned long REGPARAM2 CPUFUNC(op_1a8_0)(uae_u32 opcode) /* BCLR */
929: {
930: uae_u32 srcreg = ((opcode >> 9) & 7);
931: uae_u32 dstreg = opcode & 7;
932: OpcodeFamily = 23; CurrentInstrCycles = 16;
933: {{ uae_s8 src = m68k_dreg(regs, srcreg);
934: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
935: { uae_s8 dst = get_byte(dsta);
936: src &= 7;
937: SET_ZFLG (1 ^ ((dst >> src) & 1));
938: dst &= ~(1 << src);
939: put_byte(dsta,dst);
940: }}}}m68k_incpc(4);
941: return 16;
942: }
943: unsigned long REGPARAM2 CPUFUNC(op_1b0_0)(uae_u32 opcode) /* BCLR */
944: {
945: uae_u32 srcreg = ((opcode >> 9) & 7);
946: uae_u32 dstreg = opcode & 7;
947: OpcodeFamily = 23; CurrentInstrCycles = 18;
948: {{ uae_s8 src = m68k_dreg(regs, srcreg);
949: {m68k_incpc(2);
950: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
951: BusCyclePenalty += 2;
952: { uae_s8 dst = get_byte(dsta);
953: src &= 7;
954: SET_ZFLG (1 ^ ((dst >> src) & 1));
955: dst &= ~(1 << src);
956: put_byte(dsta,dst);
957: }}}}}return 18;
958: }
959: unsigned long REGPARAM2 CPUFUNC(op_1b8_0)(uae_u32 opcode) /* BCLR */
960: {
961: uae_u32 srcreg = ((opcode >> 9) & 7);
962: OpcodeFamily = 23; CurrentInstrCycles = 16;
963: {{ uae_s8 src = m68k_dreg(regs, srcreg);
964: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
965: { uae_s8 dst = get_byte(dsta);
966: src &= 7;
967: SET_ZFLG (1 ^ ((dst >> src) & 1));
968: dst &= ~(1 << src);
969: put_byte(dsta,dst);
970: }}}}m68k_incpc(4);
971: return 16;
972: }
973: unsigned long REGPARAM2 CPUFUNC(op_1b9_0)(uae_u32 opcode) /* BCLR */
974: {
975: uae_u32 srcreg = ((opcode >> 9) & 7);
976: OpcodeFamily = 23; CurrentInstrCycles = 20;
977: {{ uae_s8 src = m68k_dreg(regs, srcreg);
978: { uaecptr dsta = get_ilong(2);
979: { uae_s8 dst = get_byte(dsta);
980: src &= 7;
981: SET_ZFLG (1 ^ ((dst >> src) & 1));
982: dst &= ~(1 << src);
983: put_byte(dsta,dst);
984: }}}}m68k_incpc(6);
985: return 20;
986: }
987: unsigned long REGPARAM2 CPUFUNC(op_1ba_0)(uae_u32 opcode) /* BCLR */
988: {
989: uae_u32 srcreg = ((opcode >> 9) & 7);
990: uae_u32 dstreg = 2;
991: OpcodeFamily = 23; CurrentInstrCycles = 16;
992: {{ uae_s8 src = m68k_dreg(regs, srcreg);
993: { uaecptr dsta = m68k_getpc () + 2;
994: dsta += (uae_s32)(uae_s16)get_iword(2);
995: { uae_s8 dst = get_byte(dsta);
996: src &= 7;
997: SET_ZFLG (1 ^ ((dst >> src) & 1));
998: dst &= ~(1 << src);
999: put_byte(dsta,dst);
1000: }}}}m68k_incpc(4);
1001: return 16;
1002: }
1003: unsigned long REGPARAM2 CPUFUNC(op_1bb_0)(uae_u32 opcode) /* BCLR */
1004: {
1005: uae_u32 srcreg = ((opcode >> 9) & 7);
1006: uae_u32 dstreg = 3;
1007: OpcodeFamily = 23; CurrentInstrCycles = 18;
1008: {{ uae_s8 src = m68k_dreg(regs, srcreg);
1009: {m68k_incpc(2);
1010: { uaecptr tmppc = m68k_getpc();
1011: uaecptr dsta = get_disp_ea_020(tmppc, next_iword());
1012: BusCyclePenalty += 2;
1013: { uae_s8 dst = get_byte(dsta);
1014: src &= 7;
1015: SET_ZFLG (1 ^ ((dst >> src) & 1));
1016: dst &= ~(1 << src);
1017: put_byte(dsta,dst);
1018: }}}}}return 18;
1019: }
1020: unsigned long REGPARAM2 CPUFUNC(op_1c0_0)(uae_u32 opcode) /* BSET */
1021: {
1022: uae_u32 srcreg = ((opcode >> 9) & 7);
1023: uae_u32 dstreg = opcode & 7;
1024: OpcodeFamily = 24; CurrentInstrCycles = 8;
1025: {{ uae_s32 src = m68k_dreg(regs, srcreg);
1026: { uae_s32 dst = m68k_dreg(regs, dstreg);
1027: src &= 31;
1028: SET_ZFLG (1 ^ ((dst >> src) & 1));
1029: dst |= (1 << src);
1030: m68k_dreg(regs, dstreg) = (dst);
1031: }}}m68k_incpc(2);
1032: return 8;
1033: }
1034: unsigned long REGPARAM2 CPUFUNC(op_1c8_0)(uae_u32 opcode) /* MVPRM */
1035: {
1036: uae_u32 srcreg = ((opcode >> 9) & 7);
1037: uae_u32 dstreg = opcode & 7;
1038: OpcodeFamily = 28; CurrentInstrCycles = 24;
1039: {{ uae_s32 src = m68k_dreg(regs, srcreg);
1040: uaecptr memp = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
1041: put_byte(memp, src >> 24); put_byte(memp + 2, src >> 16);
1042: put_byte(memp + 4, src >> 8); put_byte(memp + 6, src);
1043: }}m68k_incpc(4);
1044: return 24;
1045: }
1046: unsigned long REGPARAM2 CPUFUNC(op_1d0_0)(uae_u32 opcode) /* BSET */
1047: {
1048: uae_u32 srcreg = ((opcode >> 9) & 7);
1049: uae_u32 dstreg = opcode & 7;
1050: OpcodeFamily = 24; CurrentInstrCycles = 12;
1051: {{ uae_s8 src = m68k_dreg(regs, srcreg);
1052: { uaecptr dsta = m68k_areg(regs, dstreg);
1053: { uae_s8 dst = get_byte(dsta);
1054: src &= 7;
1055: SET_ZFLG (1 ^ ((dst >> src) & 1));
1056: dst |= (1 << src);
1057: put_byte(dsta,dst);
1058: }}}}m68k_incpc(2);
1059: return 12;
1060: }
1061: unsigned long REGPARAM2 CPUFUNC(op_1d8_0)(uae_u32 opcode) /* BSET */
1062: {
1063: uae_u32 srcreg = ((opcode >> 9) & 7);
1064: uae_u32 dstreg = opcode & 7;
1065: OpcodeFamily = 24; CurrentInstrCycles = 12;
1066: {{ uae_s8 src = m68k_dreg(regs, srcreg);
1067: { uaecptr dsta = m68k_areg(regs, dstreg);
1068: { uae_s8 dst = get_byte(dsta);
1069: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
1070: src &= 7;
1071: SET_ZFLG (1 ^ ((dst >> src) & 1));
1072: dst |= (1 << src);
1073: put_byte(dsta,dst);
1074: }}}}m68k_incpc(2);
1075: return 12;
1076: }
1077: unsigned long REGPARAM2 CPUFUNC(op_1e0_0)(uae_u32 opcode) /* BSET */
1078: {
1079: uae_u32 srcreg = ((opcode >> 9) & 7);
1080: uae_u32 dstreg = opcode & 7;
1081: OpcodeFamily = 24; CurrentInstrCycles = 14;
1082: {{ uae_s8 src = m68k_dreg(regs, srcreg);
1083: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
1084: { uae_s8 dst = get_byte(dsta);
1085: m68k_areg (regs, dstreg) = dsta;
1086: src &= 7;
1087: SET_ZFLG (1 ^ ((dst >> src) & 1));
1088: dst |= (1 << src);
1089: put_byte(dsta,dst);
1090: }}}}m68k_incpc(2);
1091: return 14;
1092: }
1093: unsigned long REGPARAM2 CPUFUNC(op_1e8_0)(uae_u32 opcode) /* BSET */
1094: {
1095: uae_u32 srcreg = ((opcode >> 9) & 7);
1096: uae_u32 dstreg = opcode & 7;
1097: OpcodeFamily = 24; CurrentInstrCycles = 16;
1098: {{ uae_s8 src = m68k_dreg(regs, srcreg);
1099: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
1100: { uae_s8 dst = get_byte(dsta);
1101: src &= 7;
1102: SET_ZFLG (1 ^ ((dst >> src) & 1));
1103: dst |= (1 << src);
1104: put_byte(dsta,dst);
1105: }}}}m68k_incpc(4);
1106: return 16;
1107: }
1108: unsigned long REGPARAM2 CPUFUNC(op_1f0_0)(uae_u32 opcode) /* BSET */
1109: {
1110: uae_u32 srcreg = ((opcode >> 9) & 7);
1111: uae_u32 dstreg = opcode & 7;
1112: OpcodeFamily = 24; CurrentInstrCycles = 18;
1113: {{ uae_s8 src = m68k_dreg(regs, srcreg);
1114: {m68k_incpc(2);
1115: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
1116: BusCyclePenalty += 2;
1117: { uae_s8 dst = get_byte(dsta);
1118: src &= 7;
1119: SET_ZFLG (1 ^ ((dst >> src) & 1));
1120: dst |= (1 << src);
1121: put_byte(dsta,dst);
1122: }}}}}return 18;
1123: }
1124: unsigned long REGPARAM2 CPUFUNC(op_1f8_0)(uae_u32 opcode) /* BSET */
1125: {
1126: uae_u32 srcreg = ((opcode >> 9) & 7);
1127: OpcodeFamily = 24; CurrentInstrCycles = 16;
1128: {{ uae_s8 src = m68k_dreg(regs, srcreg);
1129: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
1130: { uae_s8 dst = get_byte(dsta);
1131: src &= 7;
1132: SET_ZFLG (1 ^ ((dst >> src) & 1));
1133: dst |= (1 << src);
1134: put_byte(dsta,dst);
1135: }}}}m68k_incpc(4);
1136: return 16;
1137: }
1138: unsigned long REGPARAM2 CPUFUNC(op_1f9_0)(uae_u32 opcode) /* BSET */
1139: {
1140: uae_u32 srcreg = ((opcode >> 9) & 7);
1141: OpcodeFamily = 24; CurrentInstrCycles = 20;
1142: {{ uae_s8 src = m68k_dreg(regs, srcreg);
1143: { uaecptr dsta = get_ilong(2);
1144: { uae_s8 dst = get_byte(dsta);
1145: src &= 7;
1146: SET_ZFLG (1 ^ ((dst >> src) & 1));
1147: dst |= (1 << src);
1148: put_byte(dsta,dst);
1149: }}}}m68k_incpc(6);
1150: return 20;
1151: }
1152: unsigned long REGPARAM2 CPUFUNC(op_1fa_0)(uae_u32 opcode) /* BSET */
1153: {
1154: uae_u32 srcreg = ((opcode >> 9) & 7);
1155: uae_u32 dstreg = 2;
1156: OpcodeFamily = 24; CurrentInstrCycles = 16;
1157: {{ uae_s8 src = m68k_dreg(regs, srcreg);
1158: { uaecptr dsta = m68k_getpc () + 2;
1159: dsta += (uae_s32)(uae_s16)get_iword(2);
1160: { uae_s8 dst = get_byte(dsta);
1161: src &= 7;
1162: SET_ZFLG (1 ^ ((dst >> src) & 1));
1163: dst |= (1 << src);
1164: put_byte(dsta,dst);
1165: }}}}m68k_incpc(4);
1166: return 16;
1167: }
1168: unsigned long REGPARAM2 CPUFUNC(op_1fb_0)(uae_u32 opcode) /* BSET */
1169: {
1170: uae_u32 srcreg = ((opcode >> 9) & 7);
1171: uae_u32 dstreg = 3;
1172: OpcodeFamily = 24; CurrentInstrCycles = 18;
1173: {{ uae_s8 src = m68k_dreg(regs, srcreg);
1174: {m68k_incpc(2);
1175: { uaecptr tmppc = m68k_getpc();
1176: uaecptr dsta = get_disp_ea_020(tmppc, next_iword());
1177: BusCyclePenalty += 2;
1178: { uae_s8 dst = get_byte(dsta);
1179: src &= 7;
1180: SET_ZFLG (1 ^ ((dst >> src) & 1));
1181: dst |= (1 << src);
1182: put_byte(dsta,dst);
1183: }}}}}return 18;
1184: }
1185: unsigned long REGPARAM2 CPUFUNC(op_200_0)(uae_u32 opcode) /* AND */
1186: {
1187: uae_u32 dstreg = opcode & 7;
1188: OpcodeFamily = 2; CurrentInstrCycles = 8;
1189: {{ uae_s8 src = get_ibyte(2);
1190: { uae_s8 dst = m68k_dreg(regs, dstreg);
1191: src &= dst;
1192: CLEAR_CZNV;
1193: SET_ZFLG (((uae_s8)(src)) == 0);
1194: SET_NFLG (((uae_s8)(src)) < 0);
1195: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
1196: }}}m68k_incpc(4);
1197: return 8;
1198: }
1199: unsigned long REGPARAM2 CPUFUNC(op_210_0)(uae_u32 opcode) /* AND */
1200: {
1201: uae_u32 dstreg = opcode & 7;
1202: OpcodeFamily = 2; CurrentInstrCycles = 16;
1203: {{ uae_s8 src = get_ibyte(2);
1204: { uaecptr dsta = m68k_areg(regs, dstreg);
1205: { uae_s8 dst = get_byte(dsta);
1206: src &= dst;
1207: CLEAR_CZNV;
1208: SET_ZFLG (((uae_s8)(src)) == 0);
1209: SET_NFLG (((uae_s8)(src)) < 0);
1210: put_byte(dsta,src);
1211: }}}}m68k_incpc(4);
1212: return 16;
1213: }
1214: unsigned long REGPARAM2 CPUFUNC(op_218_0)(uae_u32 opcode) /* AND */
1215: {
1216: uae_u32 dstreg = opcode & 7;
1217: OpcodeFamily = 2; CurrentInstrCycles = 16;
1218: {{ uae_s8 src = get_ibyte(2);
1219: { uaecptr dsta = m68k_areg(regs, dstreg);
1220: { uae_s8 dst = get_byte(dsta);
1221: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
1222: src &= dst;
1223: CLEAR_CZNV;
1224: SET_ZFLG (((uae_s8)(src)) == 0);
1225: SET_NFLG (((uae_s8)(src)) < 0);
1226: put_byte(dsta,src);
1227: }}}}m68k_incpc(4);
1228: return 16;
1229: }
1230: unsigned long REGPARAM2 CPUFUNC(op_220_0)(uae_u32 opcode) /* AND */
1231: {
1232: uae_u32 dstreg = opcode & 7;
1233: OpcodeFamily = 2; CurrentInstrCycles = 18;
1234: {{ uae_s8 src = get_ibyte(2);
1235: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
1236: { uae_s8 dst = get_byte(dsta);
1237: m68k_areg (regs, dstreg) = dsta;
1238: src &= dst;
1239: CLEAR_CZNV;
1240: SET_ZFLG (((uae_s8)(src)) == 0);
1241: SET_NFLG (((uae_s8)(src)) < 0);
1242: put_byte(dsta,src);
1243: }}}}m68k_incpc(4);
1244: return 18;
1245: }
1246: unsigned long REGPARAM2 CPUFUNC(op_228_0)(uae_u32 opcode) /* AND */
1247: {
1248: uae_u32 dstreg = opcode & 7;
1249: OpcodeFamily = 2; CurrentInstrCycles = 20;
1250: {{ uae_s8 src = get_ibyte(2);
1251: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
1252: { uae_s8 dst = get_byte(dsta);
1253: src &= dst;
1254: CLEAR_CZNV;
1255: SET_ZFLG (((uae_s8)(src)) == 0);
1256: SET_NFLG (((uae_s8)(src)) < 0);
1257: put_byte(dsta,src);
1258: }}}}m68k_incpc(6);
1259: return 20;
1260: }
1261: unsigned long REGPARAM2 CPUFUNC(op_230_0)(uae_u32 opcode) /* AND */
1262: {
1263: uae_u32 dstreg = opcode & 7;
1264: OpcodeFamily = 2; CurrentInstrCycles = 22;
1265: {{ uae_s8 src = get_ibyte(2);
1266: {m68k_incpc(4);
1267: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
1268: BusCyclePenalty += 2;
1269: { uae_s8 dst = get_byte(dsta);
1270: src &= dst;
1271: CLEAR_CZNV;
1272: SET_ZFLG (((uae_s8)(src)) == 0);
1273: SET_NFLG (((uae_s8)(src)) < 0);
1274: put_byte(dsta,src);
1275: }}}}}return 22;
1276: }
1277: unsigned long REGPARAM2 CPUFUNC(op_238_0)(uae_u32 opcode) /* AND */
1278: {
1279: OpcodeFamily = 2; CurrentInstrCycles = 20;
1280: {{ uae_s8 src = get_ibyte(2);
1281: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
1282: { uae_s8 dst = get_byte(dsta);
1283: src &= dst;
1284: CLEAR_CZNV;
1285: SET_ZFLG (((uae_s8)(src)) == 0);
1286: SET_NFLG (((uae_s8)(src)) < 0);
1287: put_byte(dsta,src);
1288: }}}}m68k_incpc(6);
1289: return 20;
1290: }
1291: unsigned long REGPARAM2 CPUFUNC(op_239_0)(uae_u32 opcode) /* AND */
1292: {
1293: OpcodeFamily = 2; CurrentInstrCycles = 24;
1294: {{ uae_s8 src = get_ibyte(2);
1295: { uaecptr dsta = get_ilong(4);
1296: { uae_s8 dst = get_byte(dsta);
1297: src &= dst;
1298: CLEAR_CZNV;
1299: SET_ZFLG (((uae_s8)(src)) == 0);
1300: SET_NFLG (((uae_s8)(src)) < 0);
1301: put_byte(dsta,src);
1302: }}}}m68k_incpc(8);
1303: return 24;
1304: }
1305: unsigned long REGPARAM2 CPUFUNC(op_23c_0)(uae_u32 opcode) /* ANDSR */
1306: {
1307: OpcodeFamily = 5; CurrentInstrCycles = 20;
1308: { MakeSR();
1309: { uae_s16 src = get_iword(2);
1310: src |= 0xFF00;
1311: regs.sr &= src;
1312: MakeFromSR();
1313: }}m68k_incpc(4);
1314: return 20;
1315: }
1316: unsigned long REGPARAM2 CPUFUNC(op_240_0)(uae_u32 opcode) /* AND */
1317: {
1318: uae_u32 dstreg = opcode & 7;
1319: OpcodeFamily = 2; CurrentInstrCycles = 8;
1320: {{ uae_s16 src = get_iword(2);
1321: { uae_s16 dst = m68k_dreg(regs, dstreg);
1322: src &= dst;
1323: CLEAR_CZNV;
1324: SET_ZFLG (((uae_s16)(src)) == 0);
1325: SET_NFLG (((uae_s16)(src)) < 0);
1326: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
1327: }}}m68k_incpc(4);
1328: return 8;
1329: }
1330: unsigned long REGPARAM2 CPUFUNC(op_250_0)(uae_u32 opcode) /* AND */
1331: {
1332: uae_u32 dstreg = opcode & 7;
1333: OpcodeFamily = 2; CurrentInstrCycles = 16;
1334: {{ uae_s16 src = get_iword(2);
1335: { uaecptr dsta = m68k_areg(regs, dstreg);
1336: { uae_s16 dst = get_word(dsta);
1337: src &= dst;
1338: CLEAR_CZNV;
1339: SET_ZFLG (((uae_s16)(src)) == 0);
1340: SET_NFLG (((uae_s16)(src)) < 0);
1341: put_word(dsta,src);
1342: }}}}m68k_incpc(4);
1343: return 16;
1344: }
1345: unsigned long REGPARAM2 CPUFUNC(op_258_0)(uae_u32 opcode) /* AND */
1346: {
1347: uae_u32 dstreg = opcode & 7;
1348: OpcodeFamily = 2; CurrentInstrCycles = 16;
1349: {{ uae_s16 src = get_iword(2);
1350: { uaecptr dsta = m68k_areg(regs, dstreg);
1351: { uae_s16 dst = get_word(dsta);
1352: m68k_areg(regs, dstreg) += 2;
1353: src &= dst;
1354: CLEAR_CZNV;
1355: SET_ZFLG (((uae_s16)(src)) == 0);
1356: SET_NFLG (((uae_s16)(src)) < 0);
1357: put_word(dsta,src);
1358: }}}}m68k_incpc(4);
1359: return 16;
1360: }
1361: unsigned long REGPARAM2 CPUFUNC(op_260_0)(uae_u32 opcode) /* AND */
1362: {
1363: uae_u32 dstreg = opcode & 7;
1364: OpcodeFamily = 2; CurrentInstrCycles = 18;
1365: {{ uae_s16 src = get_iword(2);
1366: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
1367: { uae_s16 dst = get_word(dsta);
1368: m68k_areg (regs, dstreg) = dsta;
1369: src &= dst;
1370: CLEAR_CZNV;
1371: SET_ZFLG (((uae_s16)(src)) == 0);
1372: SET_NFLG (((uae_s16)(src)) < 0);
1373: put_word(dsta,src);
1374: }}}}m68k_incpc(4);
1375: return 18;
1376: }
1377: unsigned long REGPARAM2 CPUFUNC(op_268_0)(uae_u32 opcode) /* AND */
1378: {
1379: uae_u32 dstreg = opcode & 7;
1380: OpcodeFamily = 2; CurrentInstrCycles = 20;
1381: {{ uae_s16 src = get_iword(2);
1382: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
1383: { uae_s16 dst = get_word(dsta);
1384: src &= dst;
1385: CLEAR_CZNV;
1386: SET_ZFLG (((uae_s16)(src)) == 0);
1387: SET_NFLG (((uae_s16)(src)) < 0);
1388: put_word(dsta,src);
1389: }}}}m68k_incpc(6);
1390: return 20;
1391: }
1392: unsigned long REGPARAM2 CPUFUNC(op_270_0)(uae_u32 opcode) /* AND */
1393: {
1394: uae_u32 dstreg = opcode & 7;
1395: OpcodeFamily = 2; CurrentInstrCycles = 22;
1396: {{ uae_s16 src = get_iword(2);
1397: {m68k_incpc(4);
1398: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
1399: BusCyclePenalty += 2;
1400: { uae_s16 dst = get_word(dsta);
1401: src &= dst;
1402: CLEAR_CZNV;
1403: SET_ZFLG (((uae_s16)(src)) == 0);
1404: SET_NFLG (((uae_s16)(src)) < 0);
1405: put_word(dsta,src);
1406: }}}}}return 22;
1407: }
1408: unsigned long REGPARAM2 CPUFUNC(op_278_0)(uae_u32 opcode) /* AND */
1409: {
1410: OpcodeFamily = 2; CurrentInstrCycles = 20;
1411: {{ uae_s16 src = get_iword(2);
1412: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
1413: { uae_s16 dst = get_word(dsta);
1414: src &= dst;
1415: CLEAR_CZNV;
1416: SET_ZFLG (((uae_s16)(src)) == 0);
1417: SET_NFLG (((uae_s16)(src)) < 0);
1418: put_word(dsta,src);
1419: }}}}m68k_incpc(6);
1420: return 20;
1421: }
1422: unsigned long REGPARAM2 CPUFUNC(op_279_0)(uae_u32 opcode) /* AND */
1423: {
1424: OpcodeFamily = 2; CurrentInstrCycles = 24;
1425: {{ uae_s16 src = get_iword(2);
1426: { uaecptr dsta = get_ilong(4);
1427: { uae_s16 dst = get_word(dsta);
1428: src &= dst;
1429: CLEAR_CZNV;
1430: SET_ZFLG (((uae_s16)(src)) == 0);
1431: SET_NFLG (((uae_s16)(src)) < 0);
1432: put_word(dsta,src);
1433: }}}}m68k_incpc(8);
1434: return 24;
1435: }
1436: unsigned long REGPARAM2 CPUFUNC(op_27c_0)(uae_u32 opcode) /* ANDSR */
1437: {
1438: OpcodeFamily = 5; CurrentInstrCycles = 20;
1439: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel96; }
1440: { MakeSR();
1441: { uae_s16 src = get_iword(2);
1442: regs.sr &= src;
1443: MakeFromSR();
1444: }}}m68k_incpc(4);
1445: endlabel96: ;
1446: return 20;
1447: }
1448: unsigned long REGPARAM2 CPUFUNC(op_280_0)(uae_u32 opcode) /* AND */
1449: {
1450: uae_u32 dstreg = opcode & 7;
1451: OpcodeFamily = 2; CurrentInstrCycles = 16;
1452: {{ uae_s32 src = get_ilong(2);
1453: { uae_s32 dst = m68k_dreg(regs, dstreg);
1454: src &= dst;
1455: CLEAR_CZNV;
1456: SET_ZFLG (((uae_s32)(src)) == 0);
1457: SET_NFLG (((uae_s32)(src)) < 0);
1458: m68k_dreg(regs, dstreg) = (src);
1459: }}}m68k_incpc(6);
1460: return 16;
1461: }
1462: unsigned long REGPARAM2 CPUFUNC(op_290_0)(uae_u32 opcode) /* AND */
1463: {
1464: uae_u32 dstreg = opcode & 7;
1465: OpcodeFamily = 2; CurrentInstrCycles = 28;
1466: {{ uae_s32 src = get_ilong(2);
1467: { uaecptr dsta = m68k_areg(regs, dstreg);
1468: { uae_s32 dst = get_long(dsta);
1469: src &= dst;
1470: CLEAR_CZNV;
1471: SET_ZFLG (((uae_s32)(src)) == 0);
1472: SET_NFLG (((uae_s32)(src)) < 0);
1473: put_long(dsta,src);
1474: }}}}m68k_incpc(6);
1475: return 28;
1476: }
1477: unsigned long REGPARAM2 CPUFUNC(op_298_0)(uae_u32 opcode) /* AND */
1478: {
1479: uae_u32 dstreg = opcode & 7;
1480: OpcodeFamily = 2; CurrentInstrCycles = 28;
1481: {{ uae_s32 src = get_ilong(2);
1482: { uaecptr dsta = m68k_areg(regs, dstreg);
1483: { uae_s32 dst = get_long(dsta);
1484: m68k_areg(regs, dstreg) += 4;
1485: src &= dst;
1486: CLEAR_CZNV;
1487: SET_ZFLG (((uae_s32)(src)) == 0);
1488: SET_NFLG (((uae_s32)(src)) < 0);
1489: put_long(dsta,src);
1490: }}}}m68k_incpc(6);
1491: return 28;
1492: }
1493: unsigned long REGPARAM2 CPUFUNC(op_2a0_0)(uae_u32 opcode) /* AND */
1494: {
1495: uae_u32 dstreg = opcode & 7;
1496: OpcodeFamily = 2; CurrentInstrCycles = 30;
1497: {{ uae_s32 src = get_ilong(2);
1498: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
1499: { uae_s32 dst = get_long(dsta);
1500: m68k_areg (regs, dstreg) = dsta;
1501: src &= dst;
1502: CLEAR_CZNV;
1503: SET_ZFLG (((uae_s32)(src)) == 0);
1504: SET_NFLG (((uae_s32)(src)) < 0);
1505: put_long(dsta,src);
1506: }}}}m68k_incpc(6);
1507: return 30;
1508: }
1509: unsigned long REGPARAM2 CPUFUNC(op_2a8_0)(uae_u32 opcode) /* AND */
1510: {
1511: uae_u32 dstreg = opcode & 7;
1512: OpcodeFamily = 2; CurrentInstrCycles = 32;
1513: {{ uae_s32 src = get_ilong(2);
1514: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6);
1515: { uae_s32 dst = get_long(dsta);
1516: src &= dst;
1517: CLEAR_CZNV;
1518: SET_ZFLG (((uae_s32)(src)) == 0);
1519: SET_NFLG (((uae_s32)(src)) < 0);
1520: put_long(dsta,src);
1521: }}}}m68k_incpc(8);
1522: return 32;
1523: }
1524: unsigned long REGPARAM2 CPUFUNC(op_2b0_0)(uae_u32 opcode) /* AND */
1525: {
1526: uae_u32 dstreg = opcode & 7;
1527: OpcodeFamily = 2; CurrentInstrCycles = 34;
1528: {{ uae_s32 src = get_ilong(2);
1529: {m68k_incpc(6);
1530: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
1531: BusCyclePenalty += 2;
1532: { uae_s32 dst = get_long(dsta);
1533: src &= dst;
1534: CLEAR_CZNV;
1535: SET_ZFLG (((uae_s32)(src)) == 0);
1536: SET_NFLG (((uae_s32)(src)) < 0);
1537: put_long(dsta,src);
1538: }}}}}return 34;
1539: }
1540: unsigned long REGPARAM2 CPUFUNC(op_2b8_0)(uae_u32 opcode) /* AND */
1541: {
1542: OpcodeFamily = 2; CurrentInstrCycles = 32;
1543: {{ uae_s32 src = get_ilong(2);
1544: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(6);
1545: { uae_s32 dst = get_long(dsta);
1546: src &= dst;
1547: CLEAR_CZNV;
1548: SET_ZFLG (((uae_s32)(src)) == 0);
1549: SET_NFLG (((uae_s32)(src)) < 0);
1550: put_long(dsta,src);
1551: }}}}m68k_incpc(8);
1552: return 32;
1553: }
1554: unsigned long REGPARAM2 CPUFUNC(op_2b9_0)(uae_u32 opcode) /* AND */
1555: {
1556: OpcodeFamily = 2; CurrentInstrCycles = 36;
1557: {{ uae_s32 src = get_ilong(2);
1558: { uaecptr dsta = get_ilong(6);
1559: { uae_s32 dst = get_long(dsta);
1560: src &= dst;
1561: CLEAR_CZNV;
1562: SET_ZFLG (((uae_s32)(src)) == 0);
1563: SET_NFLG (((uae_s32)(src)) < 0);
1564: put_long(dsta,src);
1565: }}}}m68k_incpc(10);
1566: return 36;
1567: }
1568: unsigned long REGPARAM2 CPUFUNC(op_2d0_0)(uae_u32 opcode) /* CHK2 */
1569: {
1570: uae_u32 dstreg = opcode & 7;
1571: OpcodeFamily = 81; CurrentInstrCycles = 8;
1572: { uaecptr oldpc = m68k_getpc();
1573: { uae_s16 extra = get_iword(2);
1574: { uaecptr dsta = m68k_areg(regs, dstreg);
1575: {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15];
1576: lower=(uae_s32)(uae_s16)get_word(dsta); upper = (uae_s32)(uae_s16)get_word(dsta+2);
1577: if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg;
1578: SET_ZFLG (upper == reg || lower == reg);
1579: SET_CFLG (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower);
1580: m68k_incpc(4);
1581: if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel105; }
1582: }
1583: }}}endlabel105: ;
1584: return 8;
1585: }
1586: unsigned long REGPARAM2 CPUFUNC(op_2e8_0)(uae_u32 opcode) /* CHK2 */
1587: {
1588: uae_u32 dstreg = opcode & 7;
1589: OpcodeFamily = 81; CurrentInstrCycles = 12;
1590: { uaecptr oldpc = m68k_getpc();
1591: { uae_s16 extra = get_iword(2);
1592: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
1593: {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15];
1594: lower=(uae_s32)(uae_s16)get_word(dsta); upper = (uae_s32)(uae_s16)get_word(dsta+2);
1595: if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg;
1596: SET_ZFLG (upper == reg || lower == reg);
1597: SET_CFLG (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower);
1598: m68k_incpc(6);
1599: if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel106; }
1600: }
1601: }}}endlabel106: ;
1602: return 12;
1603: }
1604: unsigned long REGPARAM2 CPUFUNC(op_2f0_0)(uae_u32 opcode) /* CHK2 */
1605: {
1606: uae_u32 dstreg = opcode & 7;
1607: OpcodeFamily = 81; CurrentInstrCycles = 14;
1608: { uaecptr oldpc = m68k_getpc();
1609: { uae_s16 extra = get_iword(2);
1610: {m68k_incpc(4);
1611: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
1612: BusCyclePenalty += 2;
1613: {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15];
1614: lower=(uae_s32)(uae_s16)get_word(dsta); upper = (uae_s32)(uae_s16)get_word(dsta+2);
1615: if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg;
1616: SET_ZFLG (upper == reg || lower == reg);
1617: SET_CFLG (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower);
1618: if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel107; }
1619: }
1620: }}}}endlabel107: ;
1621: return 14;
1622: }
1623: unsigned long REGPARAM2 CPUFUNC(op_2f8_0)(uae_u32 opcode) /* CHK2 */
1624: {
1625: OpcodeFamily = 81; CurrentInstrCycles = 12;
1626: { uaecptr oldpc = m68k_getpc();
1627: { uae_s16 extra = get_iword(2);
1628: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
1629: {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15];
1630: lower=(uae_s32)(uae_s16)get_word(dsta); upper = (uae_s32)(uae_s16)get_word(dsta+2);
1631: if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg;
1632: SET_ZFLG (upper == reg || lower == reg);
1633: SET_CFLG (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower);
1634: m68k_incpc(6);
1635: if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel108; }
1636: }
1637: }}}endlabel108: ;
1638: return 12;
1639: }
1640: unsigned long REGPARAM2 CPUFUNC(op_2f9_0)(uae_u32 opcode) /* CHK2 */
1641: {
1642: OpcodeFamily = 81; CurrentInstrCycles = 16;
1643: { uaecptr oldpc = m68k_getpc();
1644: { uae_s16 extra = get_iword(2);
1645: { uaecptr dsta = get_ilong(4);
1646: {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15];
1647: lower=(uae_s32)(uae_s16)get_word(dsta); upper = (uae_s32)(uae_s16)get_word(dsta+2);
1648: if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg;
1649: SET_ZFLG (upper == reg || lower == reg);
1650: SET_CFLG (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower);
1651: m68k_incpc(8);
1652: if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel109; }
1653: }
1654: }}}endlabel109: ;
1655: return 16;
1656: }
1657: unsigned long REGPARAM2 CPUFUNC(op_2fa_0)(uae_u32 opcode) /* CHK2 */
1658: {
1659: uae_u32 dstreg = 2;
1660: OpcodeFamily = 81; CurrentInstrCycles = 12;
1661: { uaecptr oldpc = m68k_getpc();
1662: { uae_s16 extra = get_iword(2);
1663: { uaecptr dsta = m68k_getpc () + 4;
1664: dsta += (uae_s32)(uae_s16)get_iword(4);
1665: {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15];
1666: lower=(uae_s32)(uae_s16)get_word(dsta); upper = (uae_s32)(uae_s16)get_word(dsta+2);
1667: if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg;
1668: SET_ZFLG (upper == reg || lower == reg);
1669: SET_CFLG (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower);
1670: m68k_incpc(6);
1671: if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel110; }
1672: }
1673: }}}endlabel110: ;
1674: return 12;
1675: }
1676: unsigned long REGPARAM2 CPUFUNC(op_2fb_0)(uae_u32 opcode) /* CHK2 */
1677: {
1678: uae_u32 dstreg = 3;
1679: OpcodeFamily = 81; CurrentInstrCycles = 14;
1680: { uaecptr oldpc = m68k_getpc();
1681: { uae_s16 extra = get_iword(2);
1682: {m68k_incpc(4);
1683: { uaecptr tmppc = m68k_getpc();
1684: uaecptr dsta = get_disp_ea_020(tmppc, next_iword());
1685: BusCyclePenalty += 2;
1686: {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15];
1687: lower=(uae_s32)(uae_s16)get_word(dsta); upper = (uae_s32)(uae_s16)get_word(dsta+2);
1688: if ((extra & 0x8000) == 0) reg = (uae_s32)(uae_s16)reg;
1689: SET_ZFLG (upper == reg || lower == reg);
1690: SET_CFLG (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower);
1691: if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel111; }
1692: }
1693: }}}}endlabel111: ;
1694: return 14;
1695: }
1696: unsigned long REGPARAM2 CPUFUNC(op_400_0)(uae_u32 opcode) /* SUB */
1697: {
1698: uae_u32 dstreg = opcode & 7;
1699: OpcodeFamily = 7; CurrentInstrCycles = 8;
1700: {{ uae_s8 src = get_ibyte(2);
1701: { uae_s8 dst = m68k_dreg(regs, dstreg);
1702: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
1703: { int flgs = ((uae_s8)(src)) < 0;
1704: int flgo = ((uae_s8)(dst)) < 0;
1705: int flgn = ((uae_s8)(newv)) < 0;
1706: SET_ZFLG (((uae_s8)(newv)) == 0);
1707: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
1708: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
1709: COPY_CARRY;
1710: SET_NFLG (flgn != 0);
1711: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
1712: }}}}}}m68k_incpc(4);
1713: return 8;
1714: }
1715: unsigned long REGPARAM2 CPUFUNC(op_410_0)(uae_u32 opcode) /* SUB */
1716: {
1717: uae_u32 dstreg = opcode & 7;
1718: OpcodeFamily = 7; CurrentInstrCycles = 16;
1719: {{ uae_s8 src = get_ibyte(2);
1720: { uaecptr dsta = m68k_areg(regs, dstreg);
1721: { uae_s8 dst = get_byte(dsta);
1722: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
1723: { int flgs = ((uae_s8)(src)) < 0;
1724: int flgo = ((uae_s8)(dst)) < 0;
1725: int flgn = ((uae_s8)(newv)) < 0;
1726: SET_ZFLG (((uae_s8)(newv)) == 0);
1727: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
1728: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
1729: COPY_CARRY;
1730: SET_NFLG (flgn != 0);
1731: put_byte(dsta,newv);
1732: }}}}}}}m68k_incpc(4);
1733: return 16;
1734: }
1735: unsigned long REGPARAM2 CPUFUNC(op_418_0)(uae_u32 opcode) /* SUB */
1736: {
1737: uae_u32 dstreg = opcode & 7;
1738: OpcodeFamily = 7; CurrentInstrCycles = 16;
1739: {{ uae_s8 src = get_ibyte(2);
1740: { uaecptr dsta = m68k_areg(regs, dstreg);
1741: { uae_s8 dst = get_byte(dsta);
1742: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
1743: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
1744: { int flgs = ((uae_s8)(src)) < 0;
1745: int flgo = ((uae_s8)(dst)) < 0;
1746: int flgn = ((uae_s8)(newv)) < 0;
1747: SET_ZFLG (((uae_s8)(newv)) == 0);
1748: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
1749: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
1750: COPY_CARRY;
1751: SET_NFLG (flgn != 0);
1752: put_byte(dsta,newv);
1753: }}}}}}}m68k_incpc(4);
1754: return 16;
1755: }
1756: unsigned long REGPARAM2 CPUFUNC(op_420_0)(uae_u32 opcode) /* SUB */
1757: {
1758: uae_u32 dstreg = opcode & 7;
1759: OpcodeFamily = 7; CurrentInstrCycles = 18;
1760: {{ uae_s8 src = get_ibyte(2);
1761: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
1762: { uae_s8 dst = get_byte(dsta);
1763: m68k_areg (regs, dstreg) = dsta;
1764: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
1765: { int flgs = ((uae_s8)(src)) < 0;
1766: int flgo = ((uae_s8)(dst)) < 0;
1767: int flgn = ((uae_s8)(newv)) < 0;
1768: SET_ZFLG (((uae_s8)(newv)) == 0);
1769: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
1770: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
1771: COPY_CARRY;
1772: SET_NFLG (flgn != 0);
1773: put_byte(dsta,newv);
1774: }}}}}}}m68k_incpc(4);
1775: return 18;
1776: }
1777: unsigned long REGPARAM2 CPUFUNC(op_428_0)(uae_u32 opcode) /* SUB */
1778: {
1779: uae_u32 dstreg = opcode & 7;
1780: OpcodeFamily = 7; CurrentInstrCycles = 20;
1781: {{ uae_s8 src = get_ibyte(2);
1782: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
1783: { uae_s8 dst = get_byte(dsta);
1784: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
1785: { int flgs = ((uae_s8)(src)) < 0;
1786: int flgo = ((uae_s8)(dst)) < 0;
1787: int flgn = ((uae_s8)(newv)) < 0;
1788: SET_ZFLG (((uae_s8)(newv)) == 0);
1789: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
1790: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
1791: COPY_CARRY;
1792: SET_NFLG (flgn != 0);
1793: put_byte(dsta,newv);
1794: }}}}}}}m68k_incpc(6);
1795: return 20;
1796: }
1797: unsigned long REGPARAM2 CPUFUNC(op_430_0)(uae_u32 opcode) /* SUB */
1798: {
1799: uae_u32 dstreg = opcode & 7;
1800: OpcodeFamily = 7; CurrentInstrCycles = 22;
1801: {{ uae_s8 src = get_ibyte(2);
1802: {m68k_incpc(4);
1803: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
1804: BusCyclePenalty += 2;
1805: { uae_s8 dst = get_byte(dsta);
1806: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
1807: { int flgs = ((uae_s8)(src)) < 0;
1808: int flgo = ((uae_s8)(dst)) < 0;
1809: int flgn = ((uae_s8)(newv)) < 0;
1810: SET_ZFLG (((uae_s8)(newv)) == 0);
1811: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
1812: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
1813: COPY_CARRY;
1814: SET_NFLG (flgn != 0);
1815: put_byte(dsta,newv);
1816: }}}}}}}}return 22;
1817: }
1818: unsigned long REGPARAM2 CPUFUNC(op_438_0)(uae_u32 opcode) /* SUB */
1819: {
1820: OpcodeFamily = 7; CurrentInstrCycles = 20;
1821: {{ uae_s8 src = get_ibyte(2);
1822: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
1823: { uae_s8 dst = get_byte(dsta);
1824: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
1825: { int flgs = ((uae_s8)(src)) < 0;
1826: int flgo = ((uae_s8)(dst)) < 0;
1827: int flgn = ((uae_s8)(newv)) < 0;
1828: SET_ZFLG (((uae_s8)(newv)) == 0);
1829: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
1830: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
1831: COPY_CARRY;
1832: SET_NFLG (flgn != 0);
1833: put_byte(dsta,newv);
1834: }}}}}}}m68k_incpc(6);
1835: return 20;
1836: }
1837: unsigned long REGPARAM2 CPUFUNC(op_439_0)(uae_u32 opcode) /* SUB */
1838: {
1839: OpcodeFamily = 7; CurrentInstrCycles = 24;
1840: {{ uae_s8 src = get_ibyte(2);
1841: { uaecptr dsta = get_ilong(4);
1842: { uae_s8 dst = get_byte(dsta);
1843: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
1844: { int flgs = ((uae_s8)(src)) < 0;
1845: int flgo = ((uae_s8)(dst)) < 0;
1846: int flgn = ((uae_s8)(newv)) < 0;
1847: SET_ZFLG (((uae_s8)(newv)) == 0);
1848: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
1849: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
1850: COPY_CARRY;
1851: SET_NFLG (flgn != 0);
1852: put_byte(dsta,newv);
1853: }}}}}}}m68k_incpc(8);
1854: return 24;
1855: }
1856: unsigned long REGPARAM2 CPUFUNC(op_440_0)(uae_u32 opcode) /* SUB */
1857: {
1858: uae_u32 dstreg = opcode & 7;
1859: OpcodeFamily = 7; CurrentInstrCycles = 8;
1860: {{ uae_s16 src = get_iword(2);
1861: { uae_s16 dst = m68k_dreg(regs, dstreg);
1862: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
1863: { int flgs = ((uae_s16)(src)) < 0;
1864: int flgo = ((uae_s16)(dst)) < 0;
1865: int flgn = ((uae_s16)(newv)) < 0;
1866: SET_ZFLG (((uae_s16)(newv)) == 0);
1867: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
1868: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
1869: COPY_CARRY;
1870: SET_NFLG (flgn != 0);
1871: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
1872: }}}}}}m68k_incpc(4);
1873: return 8;
1874: }
1875: unsigned long REGPARAM2 CPUFUNC(op_450_0)(uae_u32 opcode) /* SUB */
1876: {
1877: uae_u32 dstreg = opcode & 7;
1878: OpcodeFamily = 7; CurrentInstrCycles = 16;
1879: {{ uae_s16 src = get_iword(2);
1880: { uaecptr dsta = m68k_areg(regs, dstreg);
1881: { uae_s16 dst = get_word(dsta);
1882: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
1883: { int flgs = ((uae_s16)(src)) < 0;
1884: int flgo = ((uae_s16)(dst)) < 0;
1885: int flgn = ((uae_s16)(newv)) < 0;
1886: SET_ZFLG (((uae_s16)(newv)) == 0);
1887: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
1888: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
1889: COPY_CARRY;
1890: SET_NFLG (flgn != 0);
1891: put_word(dsta,newv);
1892: }}}}}}}m68k_incpc(4);
1893: return 16;
1894: }
1895: unsigned long REGPARAM2 CPUFUNC(op_458_0)(uae_u32 opcode) /* SUB */
1896: {
1897: uae_u32 dstreg = opcode & 7;
1898: OpcodeFamily = 7; CurrentInstrCycles = 16;
1899: {{ uae_s16 src = get_iword(2);
1900: { uaecptr dsta = m68k_areg(regs, dstreg);
1901: { uae_s16 dst = get_word(dsta);
1902: m68k_areg(regs, dstreg) += 2;
1903: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
1904: { int flgs = ((uae_s16)(src)) < 0;
1905: int flgo = ((uae_s16)(dst)) < 0;
1906: int flgn = ((uae_s16)(newv)) < 0;
1907: SET_ZFLG (((uae_s16)(newv)) == 0);
1908: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
1909: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
1910: COPY_CARRY;
1911: SET_NFLG (flgn != 0);
1912: put_word(dsta,newv);
1913: }}}}}}}m68k_incpc(4);
1914: return 16;
1915: }
1916: unsigned long REGPARAM2 CPUFUNC(op_460_0)(uae_u32 opcode) /* SUB */
1917: {
1918: uae_u32 dstreg = opcode & 7;
1919: OpcodeFamily = 7; CurrentInstrCycles = 18;
1920: {{ uae_s16 src = get_iword(2);
1921: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
1922: { uae_s16 dst = get_word(dsta);
1923: m68k_areg (regs, dstreg) = dsta;
1924: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
1925: { int flgs = ((uae_s16)(src)) < 0;
1926: int flgo = ((uae_s16)(dst)) < 0;
1927: int flgn = ((uae_s16)(newv)) < 0;
1928: SET_ZFLG (((uae_s16)(newv)) == 0);
1929: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
1930: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
1931: COPY_CARRY;
1932: SET_NFLG (flgn != 0);
1933: put_word(dsta,newv);
1934: }}}}}}}m68k_incpc(4);
1935: return 18;
1936: }
1937: unsigned long REGPARAM2 CPUFUNC(op_468_0)(uae_u32 opcode) /* SUB */
1938: {
1939: uae_u32 dstreg = opcode & 7;
1940: OpcodeFamily = 7; CurrentInstrCycles = 20;
1941: {{ uae_s16 src = get_iword(2);
1942: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
1943: { uae_s16 dst = get_word(dsta);
1944: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
1945: { int flgs = ((uae_s16)(src)) < 0;
1946: int flgo = ((uae_s16)(dst)) < 0;
1947: int flgn = ((uae_s16)(newv)) < 0;
1948: SET_ZFLG (((uae_s16)(newv)) == 0);
1949: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
1950: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
1951: COPY_CARRY;
1952: SET_NFLG (flgn != 0);
1953: put_word(dsta,newv);
1954: }}}}}}}m68k_incpc(6);
1955: return 20;
1956: }
1957: unsigned long REGPARAM2 CPUFUNC(op_470_0)(uae_u32 opcode) /* SUB */
1958: {
1959: uae_u32 dstreg = opcode & 7;
1960: OpcodeFamily = 7; CurrentInstrCycles = 22;
1961: {{ uae_s16 src = get_iword(2);
1962: {m68k_incpc(4);
1963: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
1964: BusCyclePenalty += 2;
1965: { uae_s16 dst = get_word(dsta);
1966: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
1967: { int flgs = ((uae_s16)(src)) < 0;
1968: int flgo = ((uae_s16)(dst)) < 0;
1969: int flgn = ((uae_s16)(newv)) < 0;
1970: SET_ZFLG (((uae_s16)(newv)) == 0);
1971: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
1972: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
1973: COPY_CARRY;
1974: SET_NFLG (flgn != 0);
1975: put_word(dsta,newv);
1976: }}}}}}}}return 22;
1977: }
1978: unsigned long REGPARAM2 CPUFUNC(op_478_0)(uae_u32 opcode) /* SUB */
1979: {
1980: OpcodeFamily = 7; CurrentInstrCycles = 20;
1981: {{ uae_s16 src = get_iword(2);
1982: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
1983: { uae_s16 dst = get_word(dsta);
1984: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
1985: { int flgs = ((uae_s16)(src)) < 0;
1986: int flgo = ((uae_s16)(dst)) < 0;
1987: int flgn = ((uae_s16)(newv)) < 0;
1988: SET_ZFLG (((uae_s16)(newv)) == 0);
1989: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
1990: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
1991: COPY_CARRY;
1992: SET_NFLG (flgn != 0);
1993: put_word(dsta,newv);
1994: }}}}}}}m68k_incpc(6);
1995: return 20;
1996: }
1997: unsigned long REGPARAM2 CPUFUNC(op_479_0)(uae_u32 opcode) /* SUB */
1998: {
1999: OpcodeFamily = 7; CurrentInstrCycles = 24;
2000: {{ uae_s16 src = get_iword(2);
2001: { uaecptr dsta = get_ilong(4);
2002: { uae_s16 dst = get_word(dsta);
2003: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
2004: { int flgs = ((uae_s16)(src)) < 0;
2005: int flgo = ((uae_s16)(dst)) < 0;
2006: int flgn = ((uae_s16)(newv)) < 0;
2007: SET_ZFLG (((uae_s16)(newv)) == 0);
2008: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
2009: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
2010: COPY_CARRY;
2011: SET_NFLG (flgn != 0);
2012: put_word(dsta,newv);
2013: }}}}}}}m68k_incpc(8);
2014: return 24;
2015: }
2016: unsigned long REGPARAM2 CPUFUNC(op_480_0)(uae_u32 opcode) /* SUB */
2017: {
2018: uae_u32 dstreg = opcode & 7;
2019: OpcodeFamily = 7; CurrentInstrCycles = 16;
2020: {{ uae_s32 src = get_ilong(2);
2021: { uae_s32 dst = m68k_dreg(regs, dstreg);
2022: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
2023: { int flgs = ((uae_s32)(src)) < 0;
2024: int flgo = ((uae_s32)(dst)) < 0;
2025: int flgn = ((uae_s32)(newv)) < 0;
2026: SET_ZFLG (((uae_s32)(newv)) == 0);
2027: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
2028: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
2029: COPY_CARRY;
2030: SET_NFLG (flgn != 0);
2031: m68k_dreg(regs, dstreg) = (newv);
2032: }}}}}}m68k_incpc(6);
2033: return 16;
2034: }
2035: unsigned long REGPARAM2 CPUFUNC(op_490_0)(uae_u32 opcode) /* SUB */
2036: {
2037: uae_u32 dstreg = opcode & 7;
2038: OpcodeFamily = 7; CurrentInstrCycles = 28;
2039: {{ uae_s32 src = get_ilong(2);
2040: { uaecptr dsta = m68k_areg(regs, dstreg);
2041: { uae_s32 dst = get_long(dsta);
2042: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
2043: { int flgs = ((uae_s32)(src)) < 0;
2044: int flgo = ((uae_s32)(dst)) < 0;
2045: int flgn = ((uae_s32)(newv)) < 0;
2046: SET_ZFLG (((uae_s32)(newv)) == 0);
2047: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
2048: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
2049: COPY_CARRY;
2050: SET_NFLG (flgn != 0);
2051: put_long(dsta,newv);
2052: }}}}}}}m68k_incpc(6);
2053: return 28;
2054: }
2055: unsigned long REGPARAM2 CPUFUNC(op_498_0)(uae_u32 opcode) /* SUB */
2056: {
2057: uae_u32 dstreg = opcode & 7;
2058: OpcodeFamily = 7; CurrentInstrCycles = 28;
2059: {{ uae_s32 src = get_ilong(2);
2060: { uaecptr dsta = m68k_areg(regs, dstreg);
2061: { uae_s32 dst = get_long(dsta);
2062: m68k_areg(regs, dstreg) += 4;
2063: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
2064: { int flgs = ((uae_s32)(src)) < 0;
2065: int flgo = ((uae_s32)(dst)) < 0;
2066: int flgn = ((uae_s32)(newv)) < 0;
2067: SET_ZFLG (((uae_s32)(newv)) == 0);
2068: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
2069: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
2070: COPY_CARRY;
2071: SET_NFLG (flgn != 0);
2072: put_long(dsta,newv);
2073: }}}}}}}m68k_incpc(6);
2074: return 28;
2075: }
2076: unsigned long REGPARAM2 CPUFUNC(op_4a0_0)(uae_u32 opcode) /* SUB */
2077: {
2078: uae_u32 dstreg = opcode & 7;
2079: OpcodeFamily = 7; CurrentInstrCycles = 30;
2080: {{ uae_s32 src = get_ilong(2);
2081: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
2082: { uae_s32 dst = get_long(dsta);
2083: m68k_areg (regs, dstreg) = dsta;
2084: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
2085: { int flgs = ((uae_s32)(src)) < 0;
2086: int flgo = ((uae_s32)(dst)) < 0;
2087: int flgn = ((uae_s32)(newv)) < 0;
2088: SET_ZFLG (((uae_s32)(newv)) == 0);
2089: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
2090: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
2091: COPY_CARRY;
2092: SET_NFLG (flgn != 0);
2093: put_long(dsta,newv);
2094: }}}}}}}m68k_incpc(6);
2095: return 30;
2096: }
2097: unsigned long REGPARAM2 CPUFUNC(op_4a8_0)(uae_u32 opcode) /* SUB */
2098: {
2099: uae_u32 dstreg = opcode & 7;
2100: OpcodeFamily = 7; CurrentInstrCycles = 32;
2101: {{ uae_s32 src = get_ilong(2);
2102: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6);
2103: { uae_s32 dst = get_long(dsta);
2104: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
2105: { int flgs = ((uae_s32)(src)) < 0;
2106: int flgo = ((uae_s32)(dst)) < 0;
2107: int flgn = ((uae_s32)(newv)) < 0;
2108: SET_ZFLG (((uae_s32)(newv)) == 0);
2109: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
2110: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
2111: COPY_CARRY;
2112: SET_NFLG (flgn != 0);
2113: put_long(dsta,newv);
2114: }}}}}}}m68k_incpc(8);
2115: return 32;
2116: }
2117: unsigned long REGPARAM2 CPUFUNC(op_4b0_0)(uae_u32 opcode) /* SUB */
2118: {
2119: uae_u32 dstreg = opcode & 7;
2120: OpcodeFamily = 7; CurrentInstrCycles = 34;
2121: {{ uae_s32 src = get_ilong(2);
2122: {m68k_incpc(6);
2123: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
2124: BusCyclePenalty += 2;
2125: { uae_s32 dst = get_long(dsta);
2126: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
2127: { int flgs = ((uae_s32)(src)) < 0;
2128: int flgo = ((uae_s32)(dst)) < 0;
2129: int flgn = ((uae_s32)(newv)) < 0;
2130: SET_ZFLG (((uae_s32)(newv)) == 0);
2131: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
2132: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
2133: COPY_CARRY;
2134: SET_NFLG (flgn != 0);
2135: put_long(dsta,newv);
2136: }}}}}}}}return 34;
2137: }
2138: unsigned long REGPARAM2 CPUFUNC(op_4b8_0)(uae_u32 opcode) /* SUB */
2139: {
2140: OpcodeFamily = 7; CurrentInstrCycles = 32;
2141: {{ uae_s32 src = get_ilong(2);
2142: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(6);
2143: { uae_s32 dst = get_long(dsta);
2144: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
2145: { int flgs = ((uae_s32)(src)) < 0;
2146: int flgo = ((uae_s32)(dst)) < 0;
2147: int flgn = ((uae_s32)(newv)) < 0;
2148: SET_ZFLG (((uae_s32)(newv)) == 0);
2149: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
2150: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
2151: COPY_CARRY;
2152: SET_NFLG (flgn != 0);
2153: put_long(dsta,newv);
2154: }}}}}}}m68k_incpc(8);
2155: return 32;
2156: }
2157: unsigned long REGPARAM2 CPUFUNC(op_4b9_0)(uae_u32 opcode) /* SUB */
2158: {
2159: OpcodeFamily = 7; CurrentInstrCycles = 36;
2160: {{ uae_s32 src = get_ilong(2);
2161: { uaecptr dsta = get_ilong(6);
2162: { uae_s32 dst = get_long(dsta);
2163: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
2164: { int flgs = ((uae_s32)(src)) < 0;
2165: int flgo = ((uae_s32)(dst)) < 0;
2166: int flgn = ((uae_s32)(newv)) < 0;
2167: SET_ZFLG (((uae_s32)(newv)) == 0);
2168: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
2169: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
2170: COPY_CARRY;
2171: SET_NFLG (flgn != 0);
2172: put_long(dsta,newv);
2173: }}}}}}}m68k_incpc(10);
2174: return 36;
2175: }
2176: unsigned long REGPARAM2 CPUFUNC(op_4d0_0)(uae_u32 opcode) /* CHK2 */
2177: {
2178: uae_u32 dstreg = opcode & 7;
2179: OpcodeFamily = 81; CurrentInstrCycles = 8;
2180: { uaecptr oldpc = m68k_getpc();
2181: { uae_s16 extra = get_iword(2);
2182: { uaecptr dsta = m68k_areg(regs, dstreg);
2183: {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15];
2184: lower=get_long(dsta); upper = get_long(dsta+4);
2185: SET_ZFLG (upper == reg || lower == reg);
2186: SET_CFLG (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower);
2187: m68k_incpc(4);
2188: if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel136; }
2189: }
2190: }}}endlabel136: ;
2191: return 8;
2192: }
2193: unsigned long REGPARAM2 CPUFUNC(op_4e8_0)(uae_u32 opcode) /* CHK2 */
2194: {
2195: uae_u32 dstreg = opcode & 7;
2196: OpcodeFamily = 81; CurrentInstrCycles = 12;
2197: { uaecptr oldpc = m68k_getpc();
2198: { uae_s16 extra = get_iword(2);
2199: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
2200: {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15];
2201: lower=get_long(dsta); upper = get_long(dsta+4);
2202: SET_ZFLG (upper == reg || lower == reg);
2203: SET_CFLG (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower);
2204: m68k_incpc(6);
2205: if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel137; }
2206: }
2207: }}}endlabel137: ;
2208: return 12;
2209: }
2210: unsigned long REGPARAM2 CPUFUNC(op_4f0_0)(uae_u32 opcode) /* CHK2 */
2211: {
2212: uae_u32 dstreg = opcode & 7;
2213: OpcodeFamily = 81; CurrentInstrCycles = 14;
2214: { uaecptr oldpc = m68k_getpc();
2215: { uae_s16 extra = get_iword(2);
2216: {m68k_incpc(4);
2217: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
2218: BusCyclePenalty += 2;
2219: {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15];
2220: lower=get_long(dsta); upper = get_long(dsta+4);
2221: SET_ZFLG (upper == reg || lower == reg);
2222: SET_CFLG (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower);
2223: if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel138; }
2224: }
2225: }}}}endlabel138: ;
2226: return 14;
2227: }
2228: unsigned long REGPARAM2 CPUFUNC(op_4f8_0)(uae_u32 opcode) /* CHK2 */
2229: {
2230: OpcodeFamily = 81; CurrentInstrCycles = 12;
2231: { uaecptr oldpc = m68k_getpc();
2232: { uae_s16 extra = get_iword(2);
2233: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
2234: {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15];
2235: lower=get_long(dsta); upper = get_long(dsta+4);
2236: SET_ZFLG (upper == reg || lower == reg);
2237: SET_CFLG (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower);
2238: m68k_incpc(6);
2239: if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel139; }
2240: }
2241: }}}endlabel139: ;
2242: return 12;
2243: }
2244: unsigned long REGPARAM2 CPUFUNC(op_4f9_0)(uae_u32 opcode) /* CHK2 */
2245: {
2246: OpcodeFamily = 81; CurrentInstrCycles = 16;
2247: { uaecptr oldpc = m68k_getpc();
2248: { uae_s16 extra = get_iword(2);
2249: { uaecptr dsta = get_ilong(4);
2250: {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15];
2251: lower=get_long(dsta); upper = get_long(dsta+4);
2252: SET_ZFLG (upper == reg || lower == reg);
2253: SET_CFLG (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower);
2254: m68k_incpc(8);
2255: if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel140; }
2256: }
2257: }}}endlabel140: ;
2258: return 16;
2259: }
2260: unsigned long REGPARAM2 CPUFUNC(op_4fa_0)(uae_u32 opcode) /* CHK2 */
2261: {
2262: uae_u32 dstreg = 2;
2263: OpcodeFamily = 81; CurrentInstrCycles = 12;
2264: { uaecptr oldpc = m68k_getpc();
2265: { uae_s16 extra = get_iword(2);
2266: { uaecptr dsta = m68k_getpc () + 4;
2267: dsta += (uae_s32)(uae_s16)get_iword(4);
2268: {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15];
2269: lower=get_long(dsta); upper = get_long(dsta+4);
2270: SET_ZFLG (upper == reg || lower == reg);
2271: SET_CFLG (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower);
2272: m68k_incpc(6);
2273: if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel141; }
2274: }
2275: }}}endlabel141: ;
2276: return 12;
2277: }
2278: unsigned long REGPARAM2 CPUFUNC(op_4fb_0)(uae_u32 opcode) /* CHK2 */
2279: {
2280: uae_u32 dstreg = 3;
2281: OpcodeFamily = 81; CurrentInstrCycles = 14;
2282: { uaecptr oldpc = m68k_getpc();
2283: { uae_s16 extra = get_iword(2);
2284: {m68k_incpc(4);
2285: { uaecptr tmppc = m68k_getpc();
2286: uaecptr dsta = get_disp_ea_020(tmppc, next_iword());
2287: BusCyclePenalty += 2;
2288: {uae_s32 upper,lower,reg = regs.regs[(extra >> 12) & 15];
2289: lower=get_long(dsta); upper = get_long(dsta+4);
2290: SET_ZFLG (upper == reg || lower == reg);
2291: SET_CFLG (lower <= upper ? reg < lower || reg > upper : reg > upper || reg < lower);
2292: if ((extra & 0x800) && GET_CFLG) { Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel142; }
2293: }
2294: }}}}endlabel142: ;
2295: return 14;
2296: }
2297: unsigned long REGPARAM2 CPUFUNC(op_600_0)(uae_u32 opcode) /* ADD */
2298: {
2299: uae_u32 dstreg = opcode & 7;
2300: OpcodeFamily = 11; CurrentInstrCycles = 8;
2301: {{ uae_s8 src = get_ibyte(2);
2302: { uae_s8 dst = m68k_dreg(regs, dstreg);
2303: { refill_prefetch (m68k_getpc(), 2);
2304: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
2305: { int flgs = ((uae_s8)(src)) < 0;
2306: int flgo = ((uae_s8)(dst)) < 0;
2307: int flgn = ((uae_s8)(newv)) < 0;
2308: SET_ZFLG (((uae_s8)(newv)) == 0);
2309: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
2310: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
2311: COPY_CARRY;
2312: SET_NFLG (flgn != 0);
2313: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
2314: }}}}}}m68k_incpc(4);
2315: return 8;
2316: }
2317: unsigned long REGPARAM2 CPUFUNC(op_610_0)(uae_u32 opcode) /* ADD */
2318: {
2319: uae_u32 dstreg = opcode & 7;
2320: OpcodeFamily = 11; CurrentInstrCycles = 16;
2321: {{ uae_s8 src = get_ibyte(2);
2322: { uaecptr dsta = m68k_areg(regs, dstreg);
2323: { uae_s8 dst = get_byte(dsta);
2324: { refill_prefetch (m68k_getpc(), 2);
2325: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
2326: { int flgs = ((uae_s8)(src)) < 0;
2327: int flgo = ((uae_s8)(dst)) < 0;
2328: int flgn = ((uae_s8)(newv)) < 0;
2329: SET_ZFLG (((uae_s8)(newv)) == 0);
2330: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
2331: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
2332: COPY_CARRY;
2333: SET_NFLG (flgn != 0);
2334: put_byte(dsta,newv);
2335: }}}}}}}m68k_incpc(4);
2336: return 16;
2337: }
2338: unsigned long REGPARAM2 CPUFUNC(op_618_0)(uae_u32 opcode) /* ADD */
2339: {
2340: uae_u32 dstreg = opcode & 7;
2341: OpcodeFamily = 11; CurrentInstrCycles = 16;
2342: {{ uae_s8 src = get_ibyte(2);
2343: { uaecptr dsta = m68k_areg(regs, dstreg);
2344: { uae_s8 dst = get_byte(dsta);
2345: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
2346: { refill_prefetch (m68k_getpc(), 2);
2347: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
2348: { int flgs = ((uae_s8)(src)) < 0;
2349: int flgo = ((uae_s8)(dst)) < 0;
2350: int flgn = ((uae_s8)(newv)) < 0;
2351: SET_ZFLG (((uae_s8)(newv)) == 0);
2352: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
2353: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
2354: COPY_CARRY;
2355: SET_NFLG (flgn != 0);
2356: put_byte(dsta,newv);
2357: }}}}}}}m68k_incpc(4);
2358: return 16;
2359: }
2360: unsigned long REGPARAM2 CPUFUNC(op_620_0)(uae_u32 opcode) /* ADD */
2361: {
2362: uae_u32 dstreg = opcode & 7;
2363: OpcodeFamily = 11; CurrentInstrCycles = 18;
2364: {{ uae_s8 src = get_ibyte(2);
2365: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
2366: { uae_s8 dst = get_byte(dsta);
2367: m68k_areg (regs, dstreg) = dsta;
2368: { refill_prefetch (m68k_getpc(), 2);
2369: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
2370: { int flgs = ((uae_s8)(src)) < 0;
2371: int flgo = ((uae_s8)(dst)) < 0;
2372: int flgn = ((uae_s8)(newv)) < 0;
2373: SET_ZFLG (((uae_s8)(newv)) == 0);
2374: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
2375: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
2376: COPY_CARRY;
2377: SET_NFLG (flgn != 0);
2378: put_byte(dsta,newv);
2379: }}}}}}}m68k_incpc(4);
2380: return 18;
2381: }
2382: unsigned long REGPARAM2 CPUFUNC(op_628_0)(uae_u32 opcode) /* ADD */
2383: {
2384: uae_u32 dstreg = opcode & 7;
2385: OpcodeFamily = 11; CurrentInstrCycles = 20;
2386: {{ uae_s8 src = get_ibyte(2);
2387: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
2388: { uae_s8 dst = get_byte(dsta);
2389: { refill_prefetch (m68k_getpc(), 2);
2390: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
2391: { int flgs = ((uae_s8)(src)) < 0;
2392: int flgo = ((uae_s8)(dst)) < 0;
2393: int flgn = ((uae_s8)(newv)) < 0;
2394: SET_ZFLG (((uae_s8)(newv)) == 0);
2395: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
2396: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
2397: COPY_CARRY;
2398: SET_NFLG (flgn != 0);
2399: put_byte(dsta,newv);
2400: }}}}}}}m68k_incpc(6);
2401: return 20;
2402: }
2403: unsigned long REGPARAM2 CPUFUNC(op_630_0)(uae_u32 opcode) /* ADD */
2404: {
2405: uae_u32 dstreg = opcode & 7;
2406: OpcodeFamily = 11; CurrentInstrCycles = 22;
2407: {{ uae_s8 src = get_ibyte(2);
2408: {m68k_incpc(4);
2409: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
2410: BusCyclePenalty += 2;
2411: { uae_s8 dst = get_byte(dsta);
2412: { refill_prefetch (m68k_getpc(), 2);
2413: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
2414: { int flgs = ((uae_s8)(src)) < 0;
2415: int flgo = ((uae_s8)(dst)) < 0;
2416: int flgn = ((uae_s8)(newv)) < 0;
2417: SET_ZFLG (((uae_s8)(newv)) == 0);
2418: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
2419: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
2420: COPY_CARRY;
2421: SET_NFLG (flgn != 0);
2422: put_byte(dsta,newv);
2423: }}}}}}}}return 22;
2424: }
2425: unsigned long REGPARAM2 CPUFUNC(op_638_0)(uae_u32 opcode) /* ADD */
2426: {
2427: OpcodeFamily = 11; CurrentInstrCycles = 20;
2428: {{ uae_s8 src = get_ibyte(2);
2429: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
2430: { uae_s8 dst = get_byte(dsta);
2431: { refill_prefetch (m68k_getpc(), 2);
2432: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
2433: { int flgs = ((uae_s8)(src)) < 0;
2434: int flgo = ((uae_s8)(dst)) < 0;
2435: int flgn = ((uae_s8)(newv)) < 0;
2436: SET_ZFLG (((uae_s8)(newv)) == 0);
2437: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
2438: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
2439: COPY_CARRY;
2440: SET_NFLG (flgn != 0);
2441: put_byte(dsta,newv);
2442: }}}}}}}m68k_incpc(6);
2443: return 20;
2444: }
2445: unsigned long REGPARAM2 CPUFUNC(op_639_0)(uae_u32 opcode) /* ADD */
2446: {
2447: OpcodeFamily = 11; CurrentInstrCycles = 24;
2448: {{ uae_s8 src = get_ibyte(2);
2449: { uaecptr dsta = get_ilong(4);
2450: { uae_s8 dst = get_byte(dsta);
2451: { refill_prefetch (m68k_getpc(), 2);
2452: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
2453: { int flgs = ((uae_s8)(src)) < 0;
2454: int flgo = ((uae_s8)(dst)) < 0;
2455: int flgn = ((uae_s8)(newv)) < 0;
2456: SET_ZFLG (((uae_s8)(newv)) == 0);
2457: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
2458: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
2459: COPY_CARRY;
2460: SET_NFLG (flgn != 0);
2461: put_byte(dsta,newv);
2462: }}}}}}}m68k_incpc(8);
2463: return 24;
2464: }
2465: unsigned long REGPARAM2 CPUFUNC(op_640_0)(uae_u32 opcode) /* ADD */
2466: {
2467: uae_u32 dstreg = opcode & 7;
2468: OpcodeFamily = 11; CurrentInstrCycles = 8;
2469: {{ uae_s16 src = get_iword(2);
2470: { uae_s16 dst = m68k_dreg(regs, dstreg);
2471: { refill_prefetch (m68k_getpc(), 2);
2472: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
2473: { int flgs = ((uae_s16)(src)) < 0;
2474: int flgo = ((uae_s16)(dst)) < 0;
2475: int flgn = ((uae_s16)(newv)) < 0;
2476: SET_ZFLG (((uae_s16)(newv)) == 0);
2477: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
2478: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
2479: COPY_CARRY;
2480: SET_NFLG (flgn != 0);
2481: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
2482: }}}}}}m68k_incpc(4);
2483: return 8;
2484: }
2485: unsigned long REGPARAM2 CPUFUNC(op_650_0)(uae_u32 opcode) /* ADD */
2486: {
2487: uae_u32 dstreg = opcode & 7;
2488: OpcodeFamily = 11; CurrentInstrCycles = 16;
2489: {{ uae_s16 src = get_iword(2);
2490: { uaecptr dsta = m68k_areg(regs, dstreg);
2491: { uae_s16 dst = get_word(dsta);
2492: { refill_prefetch (m68k_getpc(), 2);
2493: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
2494: { int flgs = ((uae_s16)(src)) < 0;
2495: int flgo = ((uae_s16)(dst)) < 0;
2496: int flgn = ((uae_s16)(newv)) < 0;
2497: SET_ZFLG (((uae_s16)(newv)) == 0);
2498: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
2499: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
2500: COPY_CARRY;
2501: SET_NFLG (flgn != 0);
2502: put_word(dsta,newv);
2503: }}}}}}}m68k_incpc(4);
2504: return 16;
2505: }
2506: unsigned long REGPARAM2 CPUFUNC(op_658_0)(uae_u32 opcode) /* ADD */
2507: {
2508: uae_u32 dstreg = opcode & 7;
2509: OpcodeFamily = 11; CurrentInstrCycles = 16;
2510: {{ uae_s16 src = get_iword(2);
2511: { uaecptr dsta = m68k_areg(regs, dstreg);
2512: { uae_s16 dst = get_word(dsta);
2513: m68k_areg(regs, dstreg) += 2;
2514: { refill_prefetch (m68k_getpc(), 2);
2515: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
2516: { int flgs = ((uae_s16)(src)) < 0;
2517: int flgo = ((uae_s16)(dst)) < 0;
2518: int flgn = ((uae_s16)(newv)) < 0;
2519: SET_ZFLG (((uae_s16)(newv)) == 0);
2520: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
2521: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
2522: COPY_CARRY;
2523: SET_NFLG (flgn != 0);
2524: put_word(dsta,newv);
2525: }}}}}}}m68k_incpc(4);
2526: return 16;
2527: }
2528: unsigned long REGPARAM2 CPUFUNC(op_660_0)(uae_u32 opcode) /* ADD */
2529: {
2530: uae_u32 dstreg = opcode & 7;
2531: OpcodeFamily = 11; CurrentInstrCycles = 18;
2532: {{ uae_s16 src = get_iword(2);
2533: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
2534: { uae_s16 dst = get_word(dsta);
2535: m68k_areg (regs, dstreg) = dsta;
2536: { refill_prefetch (m68k_getpc(), 2);
2537: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
2538: { int flgs = ((uae_s16)(src)) < 0;
2539: int flgo = ((uae_s16)(dst)) < 0;
2540: int flgn = ((uae_s16)(newv)) < 0;
2541: SET_ZFLG (((uae_s16)(newv)) == 0);
2542: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
2543: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
2544: COPY_CARRY;
2545: SET_NFLG (flgn != 0);
2546: put_word(dsta,newv);
2547: }}}}}}}m68k_incpc(4);
2548: return 18;
2549: }
2550: unsigned long REGPARAM2 CPUFUNC(op_668_0)(uae_u32 opcode) /* ADD */
2551: {
2552: uae_u32 dstreg = opcode & 7;
2553: OpcodeFamily = 11; CurrentInstrCycles = 20;
2554: {{ uae_s16 src = get_iword(2);
2555: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
2556: { uae_s16 dst = get_word(dsta);
2557: { refill_prefetch (m68k_getpc(), 2);
2558: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
2559: { int flgs = ((uae_s16)(src)) < 0;
2560: int flgo = ((uae_s16)(dst)) < 0;
2561: int flgn = ((uae_s16)(newv)) < 0;
2562: SET_ZFLG (((uae_s16)(newv)) == 0);
2563: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
2564: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
2565: COPY_CARRY;
2566: SET_NFLG (flgn != 0);
2567: put_word(dsta,newv);
2568: }}}}}}}m68k_incpc(6);
2569: return 20;
2570: }
2571: unsigned long REGPARAM2 CPUFUNC(op_670_0)(uae_u32 opcode) /* ADD */
2572: {
2573: uae_u32 dstreg = opcode & 7;
2574: OpcodeFamily = 11; CurrentInstrCycles = 22;
2575: {{ uae_s16 src = get_iword(2);
2576: {m68k_incpc(4);
2577: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
2578: BusCyclePenalty += 2;
2579: { uae_s16 dst = get_word(dsta);
2580: { refill_prefetch (m68k_getpc(), 2);
2581: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
2582: { int flgs = ((uae_s16)(src)) < 0;
2583: int flgo = ((uae_s16)(dst)) < 0;
2584: int flgn = ((uae_s16)(newv)) < 0;
2585: SET_ZFLG (((uae_s16)(newv)) == 0);
2586: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
2587: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
2588: COPY_CARRY;
2589: SET_NFLG (flgn != 0);
2590: put_word(dsta,newv);
2591: }}}}}}}}return 22;
2592: }
2593: unsigned long REGPARAM2 CPUFUNC(op_678_0)(uae_u32 opcode) /* ADD */
2594: {
2595: OpcodeFamily = 11; CurrentInstrCycles = 20;
2596: {{ uae_s16 src = get_iword(2);
2597: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
2598: { uae_s16 dst = get_word(dsta);
2599: { refill_prefetch (m68k_getpc(), 2);
2600: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
2601: { int flgs = ((uae_s16)(src)) < 0;
2602: int flgo = ((uae_s16)(dst)) < 0;
2603: int flgn = ((uae_s16)(newv)) < 0;
2604: SET_ZFLG (((uae_s16)(newv)) == 0);
2605: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
2606: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
2607: COPY_CARRY;
2608: SET_NFLG (flgn != 0);
2609: put_word(dsta,newv);
2610: }}}}}}}m68k_incpc(6);
2611: return 20;
2612: }
2613: unsigned long REGPARAM2 CPUFUNC(op_679_0)(uae_u32 opcode) /* ADD */
2614: {
2615: OpcodeFamily = 11; CurrentInstrCycles = 24;
2616: {{ uae_s16 src = get_iword(2);
2617: { uaecptr dsta = get_ilong(4);
2618: { uae_s16 dst = get_word(dsta);
2619: { refill_prefetch (m68k_getpc(), 2);
2620: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
2621: { int flgs = ((uae_s16)(src)) < 0;
2622: int flgo = ((uae_s16)(dst)) < 0;
2623: int flgn = ((uae_s16)(newv)) < 0;
2624: SET_ZFLG (((uae_s16)(newv)) == 0);
2625: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
2626: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
2627: COPY_CARRY;
2628: SET_NFLG (flgn != 0);
2629: put_word(dsta,newv);
2630: }}}}}}}m68k_incpc(8);
2631: return 24;
2632: }
2633: unsigned long REGPARAM2 CPUFUNC(op_680_0)(uae_u32 opcode) /* ADD */
2634: {
2635: uae_u32 dstreg = opcode & 7;
2636: OpcodeFamily = 11; CurrentInstrCycles = 16;
2637: {{ uae_s32 src = get_ilong(2);
2638: { uae_s32 dst = m68k_dreg(regs, dstreg);
2639: { refill_prefetch (m68k_getpc(), 2);
2640: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
2641: { int flgs = ((uae_s32)(src)) < 0;
2642: int flgo = ((uae_s32)(dst)) < 0;
2643: int flgn = ((uae_s32)(newv)) < 0;
2644: SET_ZFLG (((uae_s32)(newv)) == 0);
2645: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
2646: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
2647: COPY_CARRY;
2648: SET_NFLG (flgn != 0);
2649: m68k_dreg(regs, dstreg) = (newv);
2650: }}}}}}m68k_incpc(6);
2651: return 16;
2652: }
2653: unsigned long REGPARAM2 CPUFUNC(op_690_0)(uae_u32 opcode) /* ADD */
2654: {
2655: uae_u32 dstreg = opcode & 7;
2656: OpcodeFamily = 11; CurrentInstrCycles = 28;
2657: {{ uae_s32 src = get_ilong(2);
2658: { uaecptr dsta = m68k_areg(regs, dstreg);
2659: { uae_s32 dst = get_long(dsta);
2660: { refill_prefetch (m68k_getpc(), 2);
2661: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
2662: { int flgs = ((uae_s32)(src)) < 0;
2663: int flgo = ((uae_s32)(dst)) < 0;
2664: int flgn = ((uae_s32)(newv)) < 0;
2665: SET_ZFLG (((uae_s32)(newv)) == 0);
2666: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
2667: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
2668: COPY_CARRY;
2669: SET_NFLG (flgn != 0);
2670: put_long(dsta,newv);
2671: }}}}}}}m68k_incpc(6);
2672: return 28;
2673: }
2674: unsigned long REGPARAM2 CPUFUNC(op_698_0)(uae_u32 opcode) /* ADD */
2675: {
2676: uae_u32 dstreg = opcode & 7;
2677: OpcodeFamily = 11; CurrentInstrCycles = 28;
2678: {{ uae_s32 src = get_ilong(2);
2679: { uaecptr dsta = m68k_areg(regs, dstreg);
2680: { uae_s32 dst = get_long(dsta);
2681: m68k_areg(regs, dstreg) += 4;
2682: { refill_prefetch (m68k_getpc(), 2);
2683: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
2684: { int flgs = ((uae_s32)(src)) < 0;
2685: int flgo = ((uae_s32)(dst)) < 0;
2686: int flgn = ((uae_s32)(newv)) < 0;
2687: SET_ZFLG (((uae_s32)(newv)) == 0);
2688: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
2689: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
2690: COPY_CARRY;
2691: SET_NFLG (flgn != 0);
2692: put_long(dsta,newv);
2693: }}}}}}}m68k_incpc(6);
2694: return 28;
2695: }
2696: unsigned long REGPARAM2 CPUFUNC(op_6a0_0)(uae_u32 opcode) /* ADD */
2697: {
2698: uae_u32 dstreg = opcode & 7;
2699: OpcodeFamily = 11; CurrentInstrCycles = 30;
2700: {{ uae_s32 src = get_ilong(2);
2701: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
2702: { uae_s32 dst = get_long(dsta);
2703: m68k_areg (regs, dstreg) = dsta;
2704: { refill_prefetch (m68k_getpc(), 2);
2705: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
2706: { int flgs = ((uae_s32)(src)) < 0;
2707: int flgo = ((uae_s32)(dst)) < 0;
2708: int flgn = ((uae_s32)(newv)) < 0;
2709: SET_ZFLG (((uae_s32)(newv)) == 0);
2710: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
2711: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
2712: COPY_CARRY;
2713: SET_NFLG (flgn != 0);
2714: put_long(dsta,newv);
2715: }}}}}}}m68k_incpc(6);
2716: return 30;
2717: }
2718: unsigned long REGPARAM2 CPUFUNC(op_6a8_0)(uae_u32 opcode) /* ADD */
2719: {
2720: uae_u32 dstreg = opcode & 7;
2721: OpcodeFamily = 11; CurrentInstrCycles = 32;
2722: {{ uae_s32 src = get_ilong(2);
2723: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6);
2724: { uae_s32 dst = get_long(dsta);
2725: { refill_prefetch (m68k_getpc(), 2);
2726: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
2727: { int flgs = ((uae_s32)(src)) < 0;
2728: int flgo = ((uae_s32)(dst)) < 0;
2729: int flgn = ((uae_s32)(newv)) < 0;
2730: SET_ZFLG (((uae_s32)(newv)) == 0);
2731: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
2732: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
2733: COPY_CARRY;
2734: SET_NFLG (flgn != 0);
2735: put_long(dsta,newv);
2736: }}}}}}}m68k_incpc(8);
2737: return 32;
2738: }
2739: unsigned long REGPARAM2 CPUFUNC(op_6b0_0)(uae_u32 opcode) /* ADD */
2740: {
2741: uae_u32 dstreg = opcode & 7;
2742: OpcodeFamily = 11; CurrentInstrCycles = 34;
2743: {{ uae_s32 src = get_ilong(2);
2744: {m68k_incpc(6);
2745: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
2746: BusCyclePenalty += 2;
2747: { uae_s32 dst = get_long(dsta);
2748: { refill_prefetch (m68k_getpc(), 2);
2749: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
2750: { int flgs = ((uae_s32)(src)) < 0;
2751: int flgo = ((uae_s32)(dst)) < 0;
2752: int flgn = ((uae_s32)(newv)) < 0;
2753: SET_ZFLG (((uae_s32)(newv)) == 0);
2754: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
2755: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
2756: COPY_CARRY;
2757: SET_NFLG (flgn != 0);
2758: put_long(dsta,newv);
2759: }}}}}}}}return 34;
2760: }
2761: unsigned long REGPARAM2 CPUFUNC(op_6b8_0)(uae_u32 opcode) /* ADD */
2762: {
2763: OpcodeFamily = 11; CurrentInstrCycles = 32;
2764: {{ uae_s32 src = get_ilong(2);
2765: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(6);
2766: { uae_s32 dst = get_long(dsta);
2767: { refill_prefetch (m68k_getpc(), 2);
2768: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
2769: { int flgs = ((uae_s32)(src)) < 0;
2770: int flgo = ((uae_s32)(dst)) < 0;
2771: int flgn = ((uae_s32)(newv)) < 0;
2772: SET_ZFLG (((uae_s32)(newv)) == 0);
2773: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
2774: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
2775: COPY_CARRY;
2776: SET_NFLG (flgn != 0);
2777: put_long(dsta,newv);
2778: }}}}}}}m68k_incpc(8);
2779: return 32;
2780: }
2781: unsigned long REGPARAM2 CPUFUNC(op_6b9_0)(uae_u32 opcode) /* ADD */
2782: {
2783: OpcodeFamily = 11; CurrentInstrCycles = 36;
2784: {{ uae_s32 src = get_ilong(2);
2785: { uaecptr dsta = get_ilong(6);
2786: { uae_s32 dst = get_long(dsta);
2787: { refill_prefetch (m68k_getpc(), 2);
2788: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
2789: { int flgs = ((uae_s32)(src)) < 0;
2790: int flgo = ((uae_s32)(dst)) < 0;
2791: int flgn = ((uae_s32)(newv)) < 0;
2792: SET_ZFLG (((uae_s32)(newv)) == 0);
2793: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
2794: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
2795: COPY_CARRY;
2796: SET_NFLG (flgn != 0);
2797: put_long(dsta,newv);
2798: }}}}}}}m68k_incpc(10);
2799: return 36;
2800: }
2801: unsigned long REGPARAM2 CPUFUNC(op_6c0_0)(uae_u32 opcode) /* RTM */
2802: {
2803: uae_u32 srcreg = (opcode & 7);
2804: OpcodeFamily = 101; CurrentInstrCycles = 4;
2805: {m68k_incpc(2);
2806: op_illg(opcode);
2807: }return 4;
2808: }
2809: unsigned long REGPARAM2 CPUFUNC(op_6c8_0)(uae_u32 opcode) /* RTM */
2810: {
2811: uae_u32 srcreg = (opcode & 7);
2812: OpcodeFamily = 101; CurrentInstrCycles = 4;
2813: {m68k_incpc(2);
2814: op_illg(opcode);
2815: }return 4;
2816: }
2817: unsigned long REGPARAM2 CPUFUNC(op_6d0_0)(uae_u32 opcode) /* CALLM */
2818: {
2819: uae_u32 srcreg = (opcode & 7);
2820: OpcodeFamily = 100; CurrentInstrCycles = 4;
2821: {m68k_incpc(2);
2822: op_illg(opcode);
2823: }return 4;
2824: }
2825: unsigned long REGPARAM2 CPUFUNC(op_6e8_0)(uae_u32 opcode) /* CALLM */
2826: {
2827: uae_u32 srcreg = (opcode & 7);
2828: OpcodeFamily = 100; CurrentInstrCycles = 4;
2829: {m68k_incpc(2);
2830: op_illg(opcode);
2831: }return 4;
2832: }
2833: unsigned long REGPARAM2 CPUFUNC(op_6f0_0)(uae_u32 opcode) /* CALLM */
2834: {
2835: uae_u32 srcreg = (opcode & 7);
2836: OpcodeFamily = 100; CurrentInstrCycles = 4;
2837: {m68k_incpc(2);
2838: op_illg(opcode);
2839: }return 4;
2840: }
2841: unsigned long REGPARAM2 CPUFUNC(op_6f8_0)(uae_u32 opcode) /* CALLM */
2842: {
2843: OpcodeFamily = 100; CurrentInstrCycles = 4;
2844: {m68k_incpc(2);
2845: op_illg(opcode);
2846: }return 4;
2847: }
2848: unsigned long REGPARAM2 CPUFUNC(op_6f9_0)(uae_u32 opcode) /* CALLM */
2849: {
2850: OpcodeFamily = 100; CurrentInstrCycles = 4;
2851: {m68k_incpc(2);
2852: op_illg(opcode);
2853: }return 4;
2854: }
2855: unsigned long REGPARAM2 CPUFUNC(op_6fa_0)(uae_u32 opcode) /* CALLM */
2856: {
2857: OpcodeFamily = 100; CurrentInstrCycles = 4;
2858: {m68k_incpc(2);
2859: op_illg(opcode);
2860: }return 4;
2861: }
2862: unsigned long REGPARAM2 CPUFUNC(op_6fb_0)(uae_u32 opcode) /* CALLM */
2863: {
2864: OpcodeFamily = 100; CurrentInstrCycles = 4;
2865: {m68k_incpc(2);
2866: op_illg(opcode);
2867: }return 4;
2868: }
2869: unsigned long REGPARAM2 CPUFUNC(op_800_0)(uae_u32 opcode) /* BTST */
2870: {
2871: uae_u32 dstreg = opcode & 7;
2872: OpcodeFamily = 21; CurrentInstrCycles = 10;
2873: {{ uae_s16 src = get_iword(2);
2874: { uae_s32 dst = m68k_dreg(regs, dstreg);
2875: src &= 31;
2876: SET_ZFLG (1 ^ ((dst >> src) & 1));
2877: }}}m68k_incpc(4);
2878: return 10;
2879: }
2880: unsigned long REGPARAM2 CPUFUNC(op_810_0)(uae_u32 opcode) /* BTST */
2881: {
2882: uae_u32 dstreg = opcode & 7;
2883: OpcodeFamily = 21; CurrentInstrCycles = 12;
2884: {{ uae_s16 src = get_iword(2);
2885: { uaecptr dsta = m68k_areg(regs, dstreg);
2886: { uae_s8 dst = get_byte(dsta);
2887: src &= 7;
2888: SET_ZFLG (1 ^ ((dst >> src) & 1));
2889: }}}}m68k_incpc(4);
2890: return 12;
2891: }
2892: unsigned long REGPARAM2 CPUFUNC(op_818_0)(uae_u32 opcode) /* BTST */
2893: {
2894: uae_u32 dstreg = opcode & 7;
2895: OpcodeFamily = 21; CurrentInstrCycles = 12;
2896: {{ uae_s16 src = get_iword(2);
2897: { uaecptr dsta = m68k_areg(regs, dstreg);
2898: { uae_s8 dst = get_byte(dsta);
2899: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
2900: src &= 7;
2901: SET_ZFLG (1 ^ ((dst >> src) & 1));
2902: }}}}m68k_incpc(4);
2903: return 12;
2904: }
2905: unsigned long REGPARAM2 CPUFUNC(op_820_0)(uae_u32 opcode) /* BTST */
2906: {
2907: uae_u32 dstreg = opcode & 7;
2908: OpcodeFamily = 21; CurrentInstrCycles = 14;
2909: {{ uae_s16 src = get_iword(2);
2910: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
2911: { uae_s8 dst = get_byte(dsta);
2912: m68k_areg (regs, dstreg) = dsta;
2913: src &= 7;
2914: SET_ZFLG (1 ^ ((dst >> src) & 1));
2915: }}}}m68k_incpc(4);
2916: return 14;
2917: }
2918: unsigned long REGPARAM2 CPUFUNC(op_828_0)(uae_u32 opcode) /* BTST */
2919: {
2920: uae_u32 dstreg = opcode & 7;
2921: OpcodeFamily = 21; CurrentInstrCycles = 16;
2922: {{ uae_s16 src = get_iword(2);
2923: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
2924: { uae_s8 dst = get_byte(dsta);
2925: src &= 7;
2926: SET_ZFLG (1 ^ ((dst >> src) & 1));
2927: }}}}m68k_incpc(6);
2928: return 16;
2929: }
2930: unsigned long REGPARAM2 CPUFUNC(op_830_0)(uae_u32 opcode) /* BTST */
2931: {
2932: uae_u32 dstreg = opcode & 7;
2933: OpcodeFamily = 21; CurrentInstrCycles = 18;
2934: {{ uae_s16 src = get_iword(2);
2935: {m68k_incpc(4);
2936: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
2937: BusCyclePenalty += 2;
2938: { uae_s8 dst = get_byte(dsta);
2939: src &= 7;
2940: SET_ZFLG (1 ^ ((dst >> src) & 1));
2941: }}}}}return 18;
2942: }
2943: unsigned long REGPARAM2 CPUFUNC(op_838_0)(uae_u32 opcode) /* BTST */
2944: {
2945: OpcodeFamily = 21; CurrentInstrCycles = 16;
2946: {{ uae_s16 src = get_iword(2);
2947: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
2948: { uae_s8 dst = get_byte(dsta);
2949: src &= 7;
2950: SET_ZFLG (1 ^ ((dst >> src) & 1));
2951: }}}}m68k_incpc(6);
2952: return 16;
2953: }
2954: unsigned long REGPARAM2 CPUFUNC(op_839_0)(uae_u32 opcode) /* BTST */
2955: {
2956: OpcodeFamily = 21; CurrentInstrCycles = 20;
2957: {{ uae_s16 src = get_iword(2);
2958: { uaecptr dsta = get_ilong(4);
2959: { uae_s8 dst = get_byte(dsta);
2960: src &= 7;
2961: SET_ZFLG (1 ^ ((dst >> src) & 1));
2962: }}}}m68k_incpc(8);
2963: return 20;
2964: }
2965: unsigned long REGPARAM2 CPUFUNC(op_83a_0)(uae_u32 opcode) /* BTST */
2966: {
2967: uae_u32 dstreg = 2;
2968: OpcodeFamily = 21; CurrentInstrCycles = 16;
2969: {{ uae_s16 src = get_iword(2);
2970: { uaecptr dsta = m68k_getpc () + 4;
2971: dsta += (uae_s32)(uae_s16)get_iword(4);
2972: { uae_s8 dst = get_byte(dsta);
2973: src &= 7;
2974: SET_ZFLG (1 ^ ((dst >> src) & 1));
2975: }}}}m68k_incpc(6);
2976: return 16;
2977: }
2978: unsigned long REGPARAM2 CPUFUNC(op_83b_0)(uae_u32 opcode) /* BTST */
2979: {
2980: uae_u32 dstreg = 3;
2981: OpcodeFamily = 21; CurrentInstrCycles = 18;
2982: {{ uae_s16 src = get_iword(2);
2983: {m68k_incpc(4);
2984: { uaecptr tmppc = m68k_getpc();
2985: uaecptr dsta = get_disp_ea_020(tmppc, next_iword());
2986: BusCyclePenalty += 2;
2987: { uae_s8 dst = get_byte(dsta);
2988: src &= 7;
2989: SET_ZFLG (1 ^ ((dst >> src) & 1));
2990: }}}}}return 18;
2991: }
2992: unsigned long REGPARAM2 CPUFUNC(op_83c_0)(uae_u32 opcode) /* BTST */
2993: {
2994: OpcodeFamily = 21; CurrentInstrCycles = 12;
2995: {{ uae_s16 src = get_iword(2);
2996: { uae_s8 dst = get_ibyte(4);
2997: src &= 7;
2998: SET_ZFLG (1 ^ ((dst >> src) & 1));
2999: }}}m68k_incpc(6);
3000: return 12;
3001: }
3002: unsigned long REGPARAM2 CPUFUNC(op_840_0)(uae_u32 opcode) /* BCHG */
3003: {
3004: uae_u32 dstreg = opcode & 7;
3005: OpcodeFamily = 22; CurrentInstrCycles = 12;
3006: {{ uae_s16 src = get_iword(2);
3007: { uae_s32 dst = m68k_dreg(regs, dstreg);
3008: src &= 31;
3009: dst ^= (1 << src);
3010: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
3011: m68k_dreg(regs, dstreg) = (dst);
3012: }}}m68k_incpc(4);
3013: return 12;
3014: }
3015: unsigned long REGPARAM2 CPUFUNC(op_850_0)(uae_u32 opcode) /* BCHG */
3016: {
3017: uae_u32 dstreg = opcode & 7;
3018: OpcodeFamily = 22; CurrentInstrCycles = 16;
3019: {{ uae_s16 src = get_iword(2);
3020: { uaecptr dsta = m68k_areg(regs, dstreg);
3021: { uae_s8 dst = get_byte(dsta);
3022: src &= 7;
3023: dst ^= (1 << src);
3024: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
3025: put_byte(dsta,dst);
3026: }}}}m68k_incpc(4);
3027: return 16;
3028: }
3029: unsigned long REGPARAM2 CPUFUNC(op_858_0)(uae_u32 opcode) /* BCHG */
3030: {
3031: uae_u32 dstreg = opcode & 7;
3032: OpcodeFamily = 22; CurrentInstrCycles = 16;
3033: {{ uae_s16 src = get_iword(2);
3034: { uaecptr dsta = m68k_areg(regs, dstreg);
3035: { uae_s8 dst = get_byte(dsta);
3036: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
3037: src &= 7;
3038: dst ^= (1 << src);
3039: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
3040: put_byte(dsta,dst);
3041: }}}}m68k_incpc(4);
3042: return 16;
3043: }
3044: unsigned long REGPARAM2 CPUFUNC(op_860_0)(uae_u32 opcode) /* BCHG */
3045: {
3046: uae_u32 dstreg = opcode & 7;
3047: OpcodeFamily = 22; CurrentInstrCycles = 18;
3048: {{ uae_s16 src = get_iword(2);
3049: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
3050: { uae_s8 dst = get_byte(dsta);
3051: m68k_areg (regs, dstreg) = dsta;
3052: src &= 7;
3053: dst ^= (1 << src);
3054: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
3055: put_byte(dsta,dst);
3056: }}}}m68k_incpc(4);
3057: return 18;
3058: }
3059: unsigned long REGPARAM2 CPUFUNC(op_868_0)(uae_u32 opcode) /* BCHG */
3060: {
3061: uae_u32 dstreg = opcode & 7;
3062: OpcodeFamily = 22; CurrentInstrCycles = 20;
3063: {{ uae_s16 src = get_iword(2);
3064: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
3065: { uae_s8 dst = get_byte(dsta);
3066: src &= 7;
3067: dst ^= (1 << src);
3068: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
3069: put_byte(dsta,dst);
3070: }}}}m68k_incpc(6);
3071: return 20;
3072: }
3073: unsigned long REGPARAM2 CPUFUNC(op_870_0)(uae_u32 opcode) /* BCHG */
3074: {
3075: uae_u32 dstreg = opcode & 7;
3076: OpcodeFamily = 22; CurrentInstrCycles = 22;
3077: {{ uae_s16 src = get_iword(2);
3078: {m68k_incpc(4);
3079: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
3080: BusCyclePenalty += 2;
3081: { uae_s8 dst = get_byte(dsta);
3082: src &= 7;
3083: dst ^= (1 << src);
3084: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
3085: put_byte(dsta,dst);
3086: }}}}}return 22;
3087: }
3088: unsigned long REGPARAM2 CPUFUNC(op_878_0)(uae_u32 opcode) /* BCHG */
3089: {
3090: OpcodeFamily = 22; CurrentInstrCycles = 20;
3091: {{ uae_s16 src = get_iword(2);
3092: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
3093: { uae_s8 dst = get_byte(dsta);
3094: src &= 7;
3095: dst ^= (1 << src);
3096: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
3097: put_byte(dsta,dst);
3098: }}}}m68k_incpc(6);
3099: return 20;
3100: }
3101: unsigned long REGPARAM2 CPUFUNC(op_879_0)(uae_u32 opcode) /* BCHG */
3102: {
3103: OpcodeFamily = 22; CurrentInstrCycles = 24;
3104: {{ uae_s16 src = get_iword(2);
3105: { uaecptr dsta = get_ilong(4);
3106: { uae_s8 dst = get_byte(dsta);
3107: src &= 7;
3108: dst ^= (1 << src);
3109: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
3110: put_byte(dsta,dst);
3111: }}}}m68k_incpc(8);
3112: return 24;
3113: }
3114: unsigned long REGPARAM2 CPUFUNC(op_87a_0)(uae_u32 opcode) /* BCHG */
3115: {
3116: uae_u32 dstreg = 2;
3117: OpcodeFamily = 22; CurrentInstrCycles = 20;
3118: {{ uae_s16 src = get_iword(2);
3119: { uaecptr dsta = m68k_getpc () + 4;
3120: dsta += (uae_s32)(uae_s16)get_iword(4);
3121: { uae_s8 dst = get_byte(dsta);
3122: src &= 7;
3123: dst ^= (1 << src);
3124: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
3125: put_byte(dsta,dst);
3126: }}}}m68k_incpc(6);
3127: return 20;
3128: }
3129: unsigned long REGPARAM2 CPUFUNC(op_87b_0)(uae_u32 opcode) /* BCHG */
3130: {
3131: uae_u32 dstreg = 3;
3132: OpcodeFamily = 22; CurrentInstrCycles = 22;
3133: {{ uae_s16 src = get_iword(2);
3134: {m68k_incpc(4);
3135: { uaecptr tmppc = m68k_getpc();
3136: uaecptr dsta = get_disp_ea_020(tmppc, next_iword());
3137: BusCyclePenalty += 2;
3138: { uae_s8 dst = get_byte(dsta);
3139: src &= 7;
3140: dst ^= (1 << src);
3141: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
3142: put_byte(dsta,dst);
3143: }}}}}return 22;
3144: }
3145: unsigned long REGPARAM2 CPUFUNC(op_880_0)(uae_u32 opcode) /* BCLR */
3146: {
3147: uae_u32 dstreg = opcode & 7;
3148: OpcodeFamily = 23; CurrentInstrCycles = 14;
3149: {{ uae_s16 src = get_iword(2);
3150: { uae_s32 dst = m68k_dreg(regs, dstreg);
3151: src &= 31;
3152: SET_ZFLG (1 ^ ((dst >> src) & 1));
3153: dst &= ~(1 << src);
3154: m68k_dreg(regs, dstreg) = (dst);
3155: if ( src < 16 ) { m68k_incpc(4); return 12; }
3156: }}}m68k_incpc(4);
3157: return 14;
3158: }
3159: unsigned long REGPARAM2 CPUFUNC(op_890_0)(uae_u32 opcode) /* BCLR */
3160: {
3161: uae_u32 dstreg = opcode & 7;
3162: OpcodeFamily = 23; CurrentInstrCycles = 16;
3163: {{ uae_s16 src = get_iword(2);
3164: { uaecptr dsta = m68k_areg(regs, dstreg);
3165: { uae_s8 dst = get_byte(dsta);
3166: src &= 7;
3167: SET_ZFLG (1 ^ ((dst >> src) & 1));
3168: dst &= ~(1 << src);
3169: put_byte(dsta,dst);
3170: }}}}m68k_incpc(4);
3171: return 16;
3172: }
3173: unsigned long REGPARAM2 CPUFUNC(op_898_0)(uae_u32 opcode) /* BCLR */
3174: {
3175: uae_u32 dstreg = opcode & 7;
3176: OpcodeFamily = 23; CurrentInstrCycles = 16;
3177: {{ uae_s16 src = get_iword(2);
3178: { uaecptr dsta = m68k_areg(regs, dstreg);
3179: { uae_s8 dst = get_byte(dsta);
3180: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
3181: src &= 7;
3182: SET_ZFLG (1 ^ ((dst >> src) & 1));
3183: dst &= ~(1 << src);
3184: put_byte(dsta,dst);
3185: }}}}m68k_incpc(4);
3186: return 16;
3187: }
3188: unsigned long REGPARAM2 CPUFUNC(op_8a0_0)(uae_u32 opcode) /* BCLR */
3189: {
3190: uae_u32 dstreg = opcode & 7;
3191: OpcodeFamily = 23; CurrentInstrCycles = 18;
3192: {{ uae_s16 src = get_iword(2);
3193: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
3194: { uae_s8 dst = get_byte(dsta);
3195: m68k_areg (regs, dstreg) = dsta;
3196: src &= 7;
3197: SET_ZFLG (1 ^ ((dst >> src) & 1));
3198: dst &= ~(1 << src);
3199: put_byte(dsta,dst);
3200: }}}}m68k_incpc(4);
3201: return 18;
3202: }
3203: unsigned long REGPARAM2 CPUFUNC(op_8a8_0)(uae_u32 opcode) /* BCLR */
3204: {
3205: uae_u32 dstreg = opcode & 7;
3206: OpcodeFamily = 23; CurrentInstrCycles = 20;
3207: {{ uae_s16 src = get_iword(2);
3208: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
3209: { uae_s8 dst = get_byte(dsta);
3210: src &= 7;
3211: SET_ZFLG (1 ^ ((dst >> src) & 1));
3212: dst &= ~(1 << src);
3213: put_byte(dsta,dst);
3214: }}}}m68k_incpc(6);
3215: return 20;
3216: }
3217: unsigned long REGPARAM2 CPUFUNC(op_8b0_0)(uae_u32 opcode) /* BCLR */
3218: {
3219: uae_u32 dstreg = opcode & 7;
3220: OpcodeFamily = 23; CurrentInstrCycles = 22;
3221: {{ uae_s16 src = get_iword(2);
3222: {m68k_incpc(4);
3223: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
3224: BusCyclePenalty += 2;
3225: { uae_s8 dst = get_byte(dsta);
3226: src &= 7;
3227: SET_ZFLG (1 ^ ((dst >> src) & 1));
3228: dst &= ~(1 << src);
3229: put_byte(dsta,dst);
3230: }}}}}return 22;
3231: }
3232: unsigned long REGPARAM2 CPUFUNC(op_8b8_0)(uae_u32 opcode) /* BCLR */
3233: {
3234: OpcodeFamily = 23; CurrentInstrCycles = 20;
3235: {{ uae_s16 src = get_iword(2);
3236: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
3237: { uae_s8 dst = get_byte(dsta);
3238: src &= 7;
3239: SET_ZFLG (1 ^ ((dst >> src) & 1));
3240: dst &= ~(1 << src);
3241: put_byte(dsta,dst);
3242: }}}}m68k_incpc(6);
3243: return 20;
3244: }
3245: unsigned long REGPARAM2 CPUFUNC(op_8b9_0)(uae_u32 opcode) /* BCLR */
3246: {
3247: OpcodeFamily = 23; CurrentInstrCycles = 24;
3248: {{ uae_s16 src = get_iword(2);
3249: { uaecptr dsta = get_ilong(4);
3250: { uae_s8 dst = get_byte(dsta);
3251: src &= 7;
3252: SET_ZFLG (1 ^ ((dst >> src) & 1));
3253: dst &= ~(1 << src);
3254: put_byte(dsta,dst);
3255: }}}}m68k_incpc(8);
3256: return 24;
3257: }
3258: unsigned long REGPARAM2 CPUFUNC(op_8ba_0)(uae_u32 opcode) /* BCLR */
3259: {
3260: uae_u32 dstreg = 2;
3261: OpcodeFamily = 23; CurrentInstrCycles = 20;
3262: {{ uae_s16 src = get_iword(2);
3263: { uaecptr dsta = m68k_getpc () + 4;
3264: dsta += (uae_s32)(uae_s16)get_iword(4);
3265: { uae_s8 dst = get_byte(dsta);
3266: src &= 7;
3267: SET_ZFLG (1 ^ ((dst >> src) & 1));
3268: dst &= ~(1 << src);
3269: put_byte(dsta,dst);
3270: }}}}m68k_incpc(6);
3271: return 20;
3272: }
3273: unsigned long REGPARAM2 CPUFUNC(op_8bb_0)(uae_u32 opcode) /* BCLR */
3274: {
3275: uae_u32 dstreg = 3;
3276: OpcodeFamily = 23; CurrentInstrCycles = 22;
3277: {{ uae_s16 src = get_iword(2);
3278: {m68k_incpc(4);
3279: { uaecptr tmppc = m68k_getpc();
3280: uaecptr dsta = get_disp_ea_020(tmppc, next_iword());
3281: BusCyclePenalty += 2;
3282: { uae_s8 dst = get_byte(dsta);
3283: src &= 7;
3284: SET_ZFLG (1 ^ ((dst >> src) & 1));
3285: dst &= ~(1 << src);
3286: put_byte(dsta,dst);
3287: }}}}}return 22;
3288: }
3289: unsigned long REGPARAM2 CPUFUNC(op_8c0_0)(uae_u32 opcode) /* BSET */
3290: {
3291: uae_u32 dstreg = opcode & 7;
3292: OpcodeFamily = 24; CurrentInstrCycles = 12;
3293: {{ uae_s16 src = get_iword(2);
3294: { uae_s32 dst = m68k_dreg(regs, dstreg);
3295: src &= 31;
3296: SET_ZFLG (1 ^ ((dst >> src) & 1));
3297: dst |= (1 << src);
3298: m68k_dreg(regs, dstreg) = (dst);
3299: }}}m68k_incpc(4);
3300: return 12;
3301: }
3302: unsigned long REGPARAM2 CPUFUNC(op_8d0_0)(uae_u32 opcode) /* BSET */
3303: {
3304: uae_u32 dstreg = opcode & 7;
3305: OpcodeFamily = 24; CurrentInstrCycles = 16;
3306: {{ uae_s16 src = get_iword(2);
3307: { uaecptr dsta = m68k_areg(regs, dstreg);
3308: { uae_s8 dst = get_byte(dsta);
3309: src &= 7;
3310: SET_ZFLG (1 ^ ((dst >> src) & 1));
3311: dst |= (1 << src);
3312: put_byte(dsta,dst);
3313: }}}}m68k_incpc(4);
3314: return 16;
3315: }
3316: unsigned long REGPARAM2 CPUFUNC(op_8d8_0)(uae_u32 opcode) /* BSET */
3317: {
3318: uae_u32 dstreg = opcode & 7;
3319: OpcodeFamily = 24; CurrentInstrCycles = 16;
3320: {{ uae_s16 src = get_iword(2);
3321: { uaecptr dsta = m68k_areg(regs, dstreg);
3322: { uae_s8 dst = get_byte(dsta);
3323: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
3324: src &= 7;
3325: SET_ZFLG (1 ^ ((dst >> src) & 1));
3326: dst |= (1 << src);
3327: put_byte(dsta,dst);
3328: }}}}m68k_incpc(4);
3329: return 16;
3330: }
3331: unsigned long REGPARAM2 CPUFUNC(op_8e0_0)(uae_u32 opcode) /* BSET */
3332: {
3333: uae_u32 dstreg = opcode & 7;
3334: OpcodeFamily = 24; CurrentInstrCycles = 18;
3335: {{ uae_s16 src = get_iword(2);
3336: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
3337: { uae_s8 dst = get_byte(dsta);
3338: m68k_areg (regs, dstreg) = dsta;
3339: src &= 7;
3340: SET_ZFLG (1 ^ ((dst >> src) & 1));
3341: dst |= (1 << src);
3342: put_byte(dsta,dst);
3343: }}}}m68k_incpc(4);
3344: return 18;
3345: }
3346: unsigned long REGPARAM2 CPUFUNC(op_8e8_0)(uae_u32 opcode) /* BSET */
3347: {
3348: uae_u32 dstreg = opcode & 7;
3349: OpcodeFamily = 24; CurrentInstrCycles = 20;
3350: {{ uae_s16 src = get_iword(2);
3351: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
3352: { uae_s8 dst = get_byte(dsta);
3353: src &= 7;
3354: SET_ZFLG (1 ^ ((dst >> src) & 1));
3355: dst |= (1 << src);
3356: put_byte(dsta,dst);
3357: }}}}m68k_incpc(6);
3358: return 20;
3359: }
3360: unsigned long REGPARAM2 CPUFUNC(op_8f0_0)(uae_u32 opcode) /* BSET */
3361: {
3362: uae_u32 dstreg = opcode & 7;
3363: OpcodeFamily = 24; CurrentInstrCycles = 22;
3364: {{ uae_s16 src = get_iword(2);
3365: {m68k_incpc(4);
3366: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
3367: BusCyclePenalty += 2;
3368: { uae_s8 dst = get_byte(dsta);
3369: src &= 7;
3370: SET_ZFLG (1 ^ ((dst >> src) & 1));
3371: dst |= (1 << src);
3372: put_byte(dsta,dst);
3373: }}}}}return 22;
3374: }
3375: unsigned long REGPARAM2 CPUFUNC(op_8f8_0)(uae_u32 opcode) /* BSET */
3376: {
3377: OpcodeFamily = 24; CurrentInstrCycles = 20;
3378: {{ uae_s16 src = get_iword(2);
3379: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
3380: { uae_s8 dst = get_byte(dsta);
3381: src &= 7;
3382: SET_ZFLG (1 ^ ((dst >> src) & 1));
3383: dst |= (1 << src);
3384: put_byte(dsta,dst);
3385: }}}}m68k_incpc(6);
3386: return 20;
3387: }
3388: unsigned long REGPARAM2 CPUFUNC(op_8f9_0)(uae_u32 opcode) /* BSET */
3389: {
3390: OpcodeFamily = 24; CurrentInstrCycles = 24;
3391: {{ uae_s16 src = get_iword(2);
3392: { uaecptr dsta = get_ilong(4);
3393: { uae_s8 dst = get_byte(dsta);
3394: src &= 7;
3395: SET_ZFLG (1 ^ ((dst >> src) & 1));
3396: dst |= (1 << src);
3397: put_byte(dsta,dst);
3398: }}}}m68k_incpc(8);
3399: return 24;
3400: }
3401: unsigned long REGPARAM2 CPUFUNC(op_8fa_0)(uae_u32 opcode) /* BSET */
3402: {
3403: uae_u32 dstreg = 2;
3404: OpcodeFamily = 24; CurrentInstrCycles = 20;
3405: {{ uae_s16 src = get_iword(2);
3406: { uaecptr dsta = m68k_getpc () + 4;
3407: dsta += (uae_s32)(uae_s16)get_iword(4);
3408: { uae_s8 dst = get_byte(dsta);
3409: src &= 7;
3410: SET_ZFLG (1 ^ ((dst >> src) & 1));
3411: dst |= (1 << src);
3412: put_byte(dsta,dst);
3413: }}}}m68k_incpc(6);
3414: return 20;
3415: }
3416: unsigned long REGPARAM2 CPUFUNC(op_8fb_0)(uae_u32 opcode) /* BSET */
3417: {
3418: uae_u32 dstreg = 3;
3419: OpcodeFamily = 24; CurrentInstrCycles = 22;
3420: {{ uae_s16 src = get_iword(2);
3421: {m68k_incpc(4);
3422: { uaecptr tmppc = m68k_getpc();
3423: uaecptr dsta = get_disp_ea_020(tmppc, next_iword());
3424: BusCyclePenalty += 2;
3425: { uae_s8 dst = get_byte(dsta);
3426: src &= 7;
3427: SET_ZFLG (1 ^ ((dst >> src) & 1));
3428: dst |= (1 << src);
3429: put_byte(dsta,dst);
3430: }}}}}return 22;
3431: }
3432: unsigned long REGPARAM2 CPUFUNC(op_a00_0)(uae_u32 opcode) /* EOR */
3433: {
3434: uae_u32 dstreg = opcode & 7;
3435: OpcodeFamily = 3; CurrentInstrCycles = 8;
3436: {{ uae_s8 src = get_ibyte(2);
3437: { uae_s8 dst = m68k_dreg(regs, dstreg);
3438: src ^= dst;
3439: CLEAR_CZNV;
3440: SET_ZFLG (((uae_s8)(src)) == 0);
3441: SET_NFLG (((uae_s8)(src)) < 0);
3442: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
3443: }}}m68k_incpc(4);
3444: return 8;
3445: }
3446: unsigned long REGPARAM2 CPUFUNC(op_a10_0)(uae_u32 opcode) /* EOR */
3447: {
3448: uae_u32 dstreg = opcode & 7;
3449: OpcodeFamily = 3; CurrentInstrCycles = 16;
3450: {{ uae_s8 src = get_ibyte(2);
3451: { uaecptr dsta = m68k_areg(regs, dstreg);
3452: { uae_s8 dst = get_byte(dsta);
3453: src ^= dst;
3454: CLEAR_CZNV;
3455: SET_ZFLG (((uae_s8)(src)) == 0);
3456: SET_NFLG (((uae_s8)(src)) < 0);
3457: put_byte(dsta,src);
3458: }}}}m68k_incpc(4);
3459: return 16;
3460: }
3461: unsigned long REGPARAM2 CPUFUNC(op_a18_0)(uae_u32 opcode) /* EOR */
3462: {
3463: uae_u32 dstreg = opcode & 7;
3464: OpcodeFamily = 3; CurrentInstrCycles = 16;
3465: {{ uae_s8 src = get_ibyte(2);
3466: { uaecptr dsta = m68k_areg(regs, dstreg);
3467: { uae_s8 dst = get_byte(dsta);
3468: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
3469: src ^= dst;
3470: CLEAR_CZNV;
3471: SET_ZFLG (((uae_s8)(src)) == 0);
3472: SET_NFLG (((uae_s8)(src)) < 0);
3473: put_byte(dsta,src);
3474: }}}}m68k_incpc(4);
3475: return 16;
3476: }
3477: unsigned long REGPARAM2 CPUFUNC(op_a20_0)(uae_u32 opcode) /* EOR */
3478: {
3479: uae_u32 dstreg = opcode & 7;
3480: OpcodeFamily = 3; CurrentInstrCycles = 18;
3481: {{ uae_s8 src = get_ibyte(2);
3482: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
3483: { uae_s8 dst = get_byte(dsta);
3484: m68k_areg (regs, dstreg) = dsta;
3485: src ^= dst;
3486: CLEAR_CZNV;
3487: SET_ZFLG (((uae_s8)(src)) == 0);
3488: SET_NFLG (((uae_s8)(src)) < 0);
3489: put_byte(dsta,src);
3490: }}}}m68k_incpc(4);
3491: return 18;
3492: }
3493: unsigned long REGPARAM2 CPUFUNC(op_a28_0)(uae_u32 opcode) /* EOR */
3494: {
3495: uae_u32 dstreg = opcode & 7;
3496: OpcodeFamily = 3; CurrentInstrCycles = 20;
3497: {{ uae_s8 src = get_ibyte(2);
3498: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
3499: { uae_s8 dst = get_byte(dsta);
3500: src ^= dst;
3501: CLEAR_CZNV;
3502: SET_ZFLG (((uae_s8)(src)) == 0);
3503: SET_NFLG (((uae_s8)(src)) < 0);
3504: put_byte(dsta,src);
3505: }}}}m68k_incpc(6);
3506: return 20;
3507: }
3508: unsigned long REGPARAM2 CPUFUNC(op_a30_0)(uae_u32 opcode) /* EOR */
3509: {
3510: uae_u32 dstreg = opcode & 7;
3511: OpcodeFamily = 3; CurrentInstrCycles = 22;
3512: {{ uae_s8 src = get_ibyte(2);
3513: {m68k_incpc(4);
3514: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
3515: BusCyclePenalty += 2;
3516: { uae_s8 dst = get_byte(dsta);
3517: src ^= dst;
3518: CLEAR_CZNV;
3519: SET_ZFLG (((uae_s8)(src)) == 0);
3520: SET_NFLG (((uae_s8)(src)) < 0);
3521: put_byte(dsta,src);
3522: }}}}}return 22;
3523: }
3524: unsigned long REGPARAM2 CPUFUNC(op_a38_0)(uae_u32 opcode) /* EOR */
3525: {
3526: OpcodeFamily = 3; CurrentInstrCycles = 20;
3527: {{ uae_s8 src = get_ibyte(2);
3528: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
3529: { uae_s8 dst = get_byte(dsta);
3530: src ^= dst;
3531: CLEAR_CZNV;
3532: SET_ZFLG (((uae_s8)(src)) == 0);
3533: SET_NFLG (((uae_s8)(src)) < 0);
3534: put_byte(dsta,src);
3535: }}}}m68k_incpc(6);
3536: return 20;
3537: }
3538: unsigned long REGPARAM2 CPUFUNC(op_a39_0)(uae_u32 opcode) /* EOR */
3539: {
3540: OpcodeFamily = 3; CurrentInstrCycles = 24;
3541: {{ uae_s8 src = get_ibyte(2);
3542: { uaecptr dsta = get_ilong(4);
3543: { uae_s8 dst = get_byte(dsta);
3544: src ^= dst;
3545: CLEAR_CZNV;
3546: SET_ZFLG (((uae_s8)(src)) == 0);
3547: SET_NFLG (((uae_s8)(src)) < 0);
3548: put_byte(dsta,src);
3549: }}}}m68k_incpc(8);
3550: return 24;
3551: }
3552: unsigned long REGPARAM2 CPUFUNC(op_a3c_0)(uae_u32 opcode) /* EORSR */
3553: {
3554: OpcodeFamily = 6; CurrentInstrCycles = 20;
3555: { MakeSR();
3556: { uae_s16 src = get_iword(2);
3557: src &= 0xFF;
3558: regs.sr ^= src;
3559: MakeFromSR();
3560: }}m68k_incpc(4);
3561: return 20;
3562: }
3563: unsigned long REGPARAM2 CPUFUNC(op_a40_0)(uae_u32 opcode) /* EOR */
3564: {
3565: uae_u32 dstreg = opcode & 7;
3566: OpcodeFamily = 3; CurrentInstrCycles = 8;
3567: {{ uae_s16 src = get_iword(2);
3568: { uae_s16 dst = m68k_dreg(regs, dstreg);
3569: src ^= dst;
3570: CLEAR_CZNV;
3571: SET_ZFLG (((uae_s16)(src)) == 0);
3572: SET_NFLG (((uae_s16)(src)) < 0);
3573: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
3574: }}}m68k_incpc(4);
3575: return 8;
3576: }
3577: unsigned long REGPARAM2 CPUFUNC(op_a50_0)(uae_u32 opcode) /* EOR */
3578: {
3579: uae_u32 dstreg = opcode & 7;
3580: OpcodeFamily = 3; CurrentInstrCycles = 16;
3581: {{ uae_s16 src = get_iword(2);
3582: { uaecptr dsta = m68k_areg(regs, dstreg);
3583: { uae_s16 dst = get_word(dsta);
3584: src ^= dst;
3585: CLEAR_CZNV;
3586: SET_ZFLG (((uae_s16)(src)) == 0);
3587: SET_NFLG (((uae_s16)(src)) < 0);
3588: put_word(dsta,src);
3589: }}}}m68k_incpc(4);
3590: return 16;
3591: }
3592: unsigned long REGPARAM2 CPUFUNC(op_a58_0)(uae_u32 opcode) /* EOR */
3593: {
3594: uae_u32 dstreg = opcode & 7;
3595: OpcodeFamily = 3; CurrentInstrCycles = 16;
3596: {{ uae_s16 src = get_iword(2);
3597: { uaecptr dsta = m68k_areg(regs, dstreg);
3598: { uae_s16 dst = get_word(dsta);
3599: m68k_areg(regs, dstreg) += 2;
3600: src ^= dst;
3601: CLEAR_CZNV;
3602: SET_ZFLG (((uae_s16)(src)) == 0);
3603: SET_NFLG (((uae_s16)(src)) < 0);
3604: put_word(dsta,src);
3605: }}}}m68k_incpc(4);
3606: return 16;
3607: }
3608: unsigned long REGPARAM2 CPUFUNC(op_a60_0)(uae_u32 opcode) /* EOR */
3609: {
3610: uae_u32 dstreg = opcode & 7;
3611: OpcodeFamily = 3; CurrentInstrCycles = 18;
3612: {{ uae_s16 src = get_iword(2);
3613: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
3614: { uae_s16 dst = get_word(dsta);
3615: m68k_areg (regs, dstreg) = dsta;
3616: src ^= dst;
3617: CLEAR_CZNV;
3618: SET_ZFLG (((uae_s16)(src)) == 0);
3619: SET_NFLG (((uae_s16)(src)) < 0);
3620: put_word(dsta,src);
3621: }}}}m68k_incpc(4);
3622: return 18;
3623: }
3624: unsigned long REGPARAM2 CPUFUNC(op_a68_0)(uae_u32 opcode) /* EOR */
3625: {
3626: uae_u32 dstreg = opcode & 7;
3627: OpcodeFamily = 3; CurrentInstrCycles = 20;
3628: {{ uae_s16 src = get_iword(2);
3629: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
3630: { uae_s16 dst = get_word(dsta);
3631: src ^= dst;
3632: CLEAR_CZNV;
3633: SET_ZFLG (((uae_s16)(src)) == 0);
3634: SET_NFLG (((uae_s16)(src)) < 0);
3635: put_word(dsta,src);
3636: }}}}m68k_incpc(6);
3637: return 20;
3638: }
3639: unsigned long REGPARAM2 CPUFUNC(op_a70_0)(uae_u32 opcode) /* EOR */
3640: {
3641: uae_u32 dstreg = opcode & 7;
3642: OpcodeFamily = 3; CurrentInstrCycles = 22;
3643: {{ uae_s16 src = get_iword(2);
3644: {m68k_incpc(4);
3645: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
3646: BusCyclePenalty += 2;
3647: { uae_s16 dst = get_word(dsta);
3648: src ^= dst;
3649: CLEAR_CZNV;
3650: SET_ZFLG (((uae_s16)(src)) == 0);
3651: SET_NFLG (((uae_s16)(src)) < 0);
3652: put_word(dsta,src);
3653: }}}}}return 22;
3654: }
3655: unsigned long REGPARAM2 CPUFUNC(op_a78_0)(uae_u32 opcode) /* EOR */
3656: {
3657: OpcodeFamily = 3; CurrentInstrCycles = 20;
3658: {{ uae_s16 src = get_iword(2);
3659: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
3660: { uae_s16 dst = get_word(dsta);
3661: src ^= dst;
3662: CLEAR_CZNV;
3663: SET_ZFLG (((uae_s16)(src)) == 0);
3664: SET_NFLG (((uae_s16)(src)) < 0);
3665: put_word(dsta,src);
3666: }}}}m68k_incpc(6);
3667: return 20;
3668: }
3669: unsigned long REGPARAM2 CPUFUNC(op_a79_0)(uae_u32 opcode) /* EOR */
3670: {
3671: OpcodeFamily = 3; CurrentInstrCycles = 24;
3672: {{ uae_s16 src = get_iword(2);
3673: { uaecptr dsta = get_ilong(4);
3674: { uae_s16 dst = get_word(dsta);
3675: src ^= dst;
3676: CLEAR_CZNV;
3677: SET_ZFLG (((uae_s16)(src)) == 0);
3678: SET_NFLG (((uae_s16)(src)) < 0);
3679: put_word(dsta,src);
3680: }}}}m68k_incpc(8);
3681: return 24;
3682: }
3683: unsigned long REGPARAM2 CPUFUNC(op_a7c_0)(uae_u32 opcode) /* EORSR */
3684: {
3685: OpcodeFamily = 6; CurrentInstrCycles = 20;
3686: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel234; }
3687: { MakeSR();
3688: { uae_s16 src = get_iword(2);
3689: regs.sr ^= src;
3690: MakeFromSR();
3691: }}}m68k_incpc(4);
3692: endlabel234: ;
3693: return 20;
3694: }
3695: #endif
3696:
3697: #ifdef PART_2
3698: unsigned long REGPARAM2 CPUFUNC(op_a80_0)(uae_u32 opcode) /* EOR */
3699: {
3700: uae_u32 dstreg = opcode & 7;
3701: OpcodeFamily = 3; CurrentInstrCycles = 16;
3702: {{ uae_s32 src = get_ilong(2);
3703: { uae_s32 dst = m68k_dreg(regs, dstreg);
3704: src ^= dst;
3705: CLEAR_CZNV;
3706: SET_ZFLG (((uae_s32)(src)) == 0);
3707: SET_NFLG (((uae_s32)(src)) < 0);
3708: m68k_dreg(regs, dstreg) = (src);
3709: }}}m68k_incpc(6);
3710: return 16;
3711: }
3712: unsigned long REGPARAM2 CPUFUNC(op_a90_0)(uae_u32 opcode) /* EOR */
3713: {
3714: uae_u32 dstreg = opcode & 7;
3715: OpcodeFamily = 3; CurrentInstrCycles = 28;
3716: {{ uae_s32 src = get_ilong(2);
3717: { uaecptr dsta = m68k_areg(regs, dstreg);
3718: { uae_s32 dst = get_long(dsta);
3719: src ^= dst;
3720: CLEAR_CZNV;
3721: SET_ZFLG (((uae_s32)(src)) == 0);
3722: SET_NFLG (((uae_s32)(src)) < 0);
3723: put_long(dsta,src);
3724: }}}}m68k_incpc(6);
3725: return 28;
3726: }
3727: unsigned long REGPARAM2 CPUFUNC(op_a98_0)(uae_u32 opcode) /* EOR */
3728: {
3729: uae_u32 dstreg = opcode & 7;
3730: OpcodeFamily = 3; CurrentInstrCycles = 28;
3731: {{ uae_s32 src = get_ilong(2);
3732: { uaecptr dsta = m68k_areg(regs, dstreg);
3733: { uae_s32 dst = get_long(dsta);
3734: m68k_areg(regs, dstreg) += 4;
3735: src ^= dst;
3736: CLEAR_CZNV;
3737: SET_ZFLG (((uae_s32)(src)) == 0);
3738: SET_NFLG (((uae_s32)(src)) < 0);
3739: put_long(dsta,src);
3740: }}}}m68k_incpc(6);
3741: return 28;
3742: }
3743: unsigned long REGPARAM2 CPUFUNC(op_aa0_0)(uae_u32 opcode) /* EOR */
3744: {
3745: uae_u32 dstreg = opcode & 7;
3746: OpcodeFamily = 3; CurrentInstrCycles = 30;
3747: {{ uae_s32 src = get_ilong(2);
3748: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
3749: { uae_s32 dst = get_long(dsta);
3750: m68k_areg (regs, dstreg) = dsta;
3751: src ^= dst;
3752: CLEAR_CZNV;
3753: SET_ZFLG (((uae_s32)(src)) == 0);
3754: SET_NFLG (((uae_s32)(src)) < 0);
3755: put_long(dsta,src);
3756: }}}}m68k_incpc(6);
3757: return 30;
3758: }
3759: unsigned long REGPARAM2 CPUFUNC(op_aa8_0)(uae_u32 opcode) /* EOR */
3760: {
3761: uae_u32 dstreg = opcode & 7;
3762: OpcodeFamily = 3; CurrentInstrCycles = 32;
3763: {{ uae_s32 src = get_ilong(2);
3764: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6);
3765: { uae_s32 dst = get_long(dsta);
3766: src ^= dst;
3767: CLEAR_CZNV;
3768: SET_ZFLG (((uae_s32)(src)) == 0);
3769: SET_NFLG (((uae_s32)(src)) < 0);
3770: put_long(dsta,src);
3771: }}}}m68k_incpc(8);
3772: return 32;
3773: }
3774: unsigned long REGPARAM2 CPUFUNC(op_ab0_0)(uae_u32 opcode) /* EOR */
3775: {
3776: uae_u32 dstreg = opcode & 7;
3777: OpcodeFamily = 3; CurrentInstrCycles = 34;
3778: {{ uae_s32 src = get_ilong(2);
3779: {m68k_incpc(6);
3780: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
3781: BusCyclePenalty += 2;
3782: { uae_s32 dst = get_long(dsta);
3783: src ^= dst;
3784: CLEAR_CZNV;
3785: SET_ZFLG (((uae_s32)(src)) == 0);
3786: SET_NFLG (((uae_s32)(src)) < 0);
3787: put_long(dsta,src);
3788: }}}}}return 34;
3789: }
3790: unsigned long REGPARAM2 CPUFUNC(op_ab8_0)(uae_u32 opcode) /* EOR */
3791: {
3792: OpcodeFamily = 3; CurrentInstrCycles = 32;
3793: {{ uae_s32 src = get_ilong(2);
3794: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(6);
3795: { uae_s32 dst = get_long(dsta);
3796: src ^= dst;
3797: CLEAR_CZNV;
3798: SET_ZFLG (((uae_s32)(src)) == 0);
3799: SET_NFLG (((uae_s32)(src)) < 0);
3800: put_long(dsta,src);
3801: }}}}m68k_incpc(8);
3802: return 32;
3803: }
3804: unsigned long REGPARAM2 CPUFUNC(op_ab9_0)(uae_u32 opcode) /* EOR */
3805: {
3806: OpcodeFamily = 3; CurrentInstrCycles = 36;
3807: {{ uae_s32 src = get_ilong(2);
3808: { uaecptr dsta = get_ilong(6);
3809: { uae_s32 dst = get_long(dsta);
3810: src ^= dst;
3811: CLEAR_CZNV;
3812: SET_ZFLG (((uae_s32)(src)) == 0);
3813: SET_NFLG (((uae_s32)(src)) < 0);
3814: put_long(dsta,src);
3815: }}}}m68k_incpc(10);
3816: return 36;
3817: }
3818: unsigned long REGPARAM2 CPUFUNC(op_ad0_0)(uae_u32 opcode) /* CAS */
3819: {
3820: uae_u32 dstreg = opcode & 7;
3821: OpcodeFamily = 84; CurrentInstrCycles = 16;
3822: {{ uae_s16 src = get_iword(2);
3823: { uaecptr dsta = m68k_areg(regs, dstreg);
3824: { uae_s8 dst = get_byte(dsta);
3825: { int ru = (src >> 6) & 7;
3826: int rc = src & 7;
3827: {uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(m68k_dreg(regs, rc)));
3828: { int flgs = ((uae_s8)(m68k_dreg(regs, rc))) < 0;
3829: int flgo = ((uae_s8)(dst)) < 0;
3830: int flgn = ((uae_s8)(newv)) < 0;
3831: SET_ZFLG (((uae_s8)(newv)) == 0);
3832: SET_VFLG ((flgs != flgo) && (flgn != flgo));
3833: SET_CFLG (((uae_u8)(m68k_dreg(regs, rc))) > ((uae_u8)(dst)));
3834: SET_NFLG (flgn != 0);
3835: if (GET_ZFLG){ put_byte(dsta,(m68k_dreg(regs, ru)));
3836: }else{m68k_dreg(regs, rc) = dst;
3837: }}}}}}}}m68k_incpc(4);
3838: return 16;
3839: }
3840: unsigned long REGPARAM2 CPUFUNC(op_ad8_0)(uae_u32 opcode) /* CAS */
3841: {
3842: uae_u32 dstreg = opcode & 7;
3843: OpcodeFamily = 84; CurrentInstrCycles = 16;
3844: {{ uae_s16 src = get_iword(2);
3845: { uaecptr dsta = m68k_areg(regs, dstreg);
3846: { uae_s8 dst = get_byte(dsta);
3847: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
3848: { int ru = (src >> 6) & 7;
3849: int rc = src & 7;
3850: {uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(m68k_dreg(regs, rc)));
3851: { int flgs = ((uae_s8)(m68k_dreg(regs, rc))) < 0;
3852: int flgo = ((uae_s8)(dst)) < 0;
3853: int flgn = ((uae_s8)(newv)) < 0;
3854: SET_ZFLG (((uae_s8)(newv)) == 0);
3855: SET_VFLG ((flgs != flgo) && (flgn != flgo));
3856: SET_CFLG (((uae_u8)(m68k_dreg(regs, rc))) > ((uae_u8)(dst)));
3857: SET_NFLG (flgn != 0);
3858: if (GET_ZFLG){ put_byte(dsta,(m68k_dreg(regs, ru)));
3859: }else{m68k_dreg(regs, rc) = dst;
3860: }}}}}}}}m68k_incpc(4);
3861: return 16;
3862: }
3863: unsigned long REGPARAM2 CPUFUNC(op_ae0_0)(uae_u32 opcode) /* CAS */
3864: {
3865: uae_u32 dstreg = opcode & 7;
3866: OpcodeFamily = 84; CurrentInstrCycles = 18;
3867: {{ uae_s16 src = get_iword(2);
3868: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
3869: { uae_s8 dst = get_byte(dsta);
3870: m68k_areg (regs, dstreg) = dsta;
3871: { int ru = (src >> 6) & 7;
3872: int rc = src & 7;
3873: {uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(m68k_dreg(regs, rc)));
3874: { int flgs = ((uae_s8)(m68k_dreg(regs, rc))) < 0;
3875: int flgo = ((uae_s8)(dst)) < 0;
3876: int flgn = ((uae_s8)(newv)) < 0;
3877: SET_ZFLG (((uae_s8)(newv)) == 0);
3878: SET_VFLG ((flgs != flgo) && (flgn != flgo));
3879: SET_CFLG (((uae_u8)(m68k_dreg(regs, rc))) > ((uae_u8)(dst)));
3880: SET_NFLG (flgn != 0);
3881: if (GET_ZFLG){ put_byte(dsta,(m68k_dreg(regs, ru)));
3882: }else{m68k_dreg(regs, rc) = dst;
3883: }}}}}}}}m68k_incpc(4);
3884: return 18;
3885: }
3886: unsigned long REGPARAM2 CPUFUNC(op_ae8_0)(uae_u32 opcode) /* CAS */
3887: {
3888: uae_u32 dstreg = opcode & 7;
3889: OpcodeFamily = 84; CurrentInstrCycles = 20;
3890: {{ uae_s16 src = get_iword(2);
3891: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
3892: { uae_s8 dst = get_byte(dsta);
3893: { int ru = (src >> 6) & 7;
3894: int rc = src & 7;
3895: {uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(m68k_dreg(regs, rc)));
3896: { int flgs = ((uae_s8)(m68k_dreg(regs, rc))) < 0;
3897: int flgo = ((uae_s8)(dst)) < 0;
3898: int flgn = ((uae_s8)(newv)) < 0;
3899: SET_ZFLG (((uae_s8)(newv)) == 0);
3900: SET_VFLG ((flgs != flgo) && (flgn != flgo));
3901: SET_CFLG (((uae_u8)(m68k_dreg(regs, rc))) > ((uae_u8)(dst)));
3902: SET_NFLG (flgn != 0);
3903: if (GET_ZFLG){ put_byte(dsta,(m68k_dreg(regs, ru)));
3904: }else{m68k_dreg(regs, rc) = dst;
3905: }}}}}}}}m68k_incpc(6);
3906: return 20;
3907: }
3908: unsigned long REGPARAM2 CPUFUNC(op_af0_0)(uae_u32 opcode) /* CAS */
3909: {
3910: uae_u32 dstreg = opcode & 7;
3911: OpcodeFamily = 84; CurrentInstrCycles = 22;
3912: {{ uae_s16 src = get_iword(2);
3913: {m68k_incpc(4);
3914: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
3915: BusCyclePenalty += 2;
3916: { uae_s8 dst = get_byte(dsta);
3917: { int ru = (src >> 6) & 7;
3918: int rc = src & 7;
3919: {uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(m68k_dreg(regs, rc)));
3920: { int flgs = ((uae_s8)(m68k_dreg(regs, rc))) < 0;
3921: int flgo = ((uae_s8)(dst)) < 0;
3922: int flgn = ((uae_s8)(newv)) < 0;
3923: SET_ZFLG (((uae_s8)(newv)) == 0);
3924: SET_VFLG ((flgs != flgo) && (flgn != flgo));
3925: SET_CFLG (((uae_u8)(m68k_dreg(regs, rc))) > ((uae_u8)(dst)));
3926: SET_NFLG (flgn != 0);
3927: if (GET_ZFLG){ put_byte(dsta,(m68k_dreg(regs, ru)));
3928: }else{m68k_dreg(regs, rc) = dst;
3929: }}}}}}}}}return 22;
3930: }
3931: unsigned long REGPARAM2 CPUFUNC(op_af8_0)(uae_u32 opcode) /* CAS */
3932: {
3933: OpcodeFamily = 84; CurrentInstrCycles = 20;
3934: {{ uae_s16 src = get_iword(2);
3935: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
3936: { uae_s8 dst = get_byte(dsta);
3937: { int ru = (src >> 6) & 7;
3938: int rc = src & 7;
3939: {uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(m68k_dreg(regs, rc)));
3940: { int flgs = ((uae_s8)(m68k_dreg(regs, rc))) < 0;
3941: int flgo = ((uae_s8)(dst)) < 0;
3942: int flgn = ((uae_s8)(newv)) < 0;
3943: SET_ZFLG (((uae_s8)(newv)) == 0);
3944: SET_VFLG ((flgs != flgo) && (flgn != flgo));
3945: SET_CFLG (((uae_u8)(m68k_dreg(regs, rc))) > ((uae_u8)(dst)));
3946: SET_NFLG (flgn != 0);
3947: if (GET_ZFLG){ put_byte(dsta,(m68k_dreg(regs, ru)));
3948: }else{m68k_dreg(regs, rc) = dst;
3949: }}}}}}}}m68k_incpc(6);
3950: return 20;
3951: }
3952: unsigned long REGPARAM2 CPUFUNC(op_af9_0)(uae_u32 opcode) /* CAS */
3953: {
3954: OpcodeFamily = 84; CurrentInstrCycles = 24;
3955: {{ uae_s16 src = get_iword(2);
3956: { uaecptr dsta = get_ilong(4);
3957: { uae_s8 dst = get_byte(dsta);
3958: { int ru = (src >> 6) & 7;
3959: int rc = src & 7;
3960: {uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(m68k_dreg(regs, rc)));
3961: { int flgs = ((uae_s8)(m68k_dreg(regs, rc))) < 0;
3962: int flgo = ((uae_s8)(dst)) < 0;
3963: int flgn = ((uae_s8)(newv)) < 0;
3964: SET_ZFLG (((uae_s8)(newv)) == 0);
3965: SET_VFLG ((flgs != flgo) && (flgn != flgo));
3966: SET_CFLG (((uae_u8)(m68k_dreg(regs, rc))) > ((uae_u8)(dst)));
3967: SET_NFLG (flgn != 0);
3968: if (GET_ZFLG){ put_byte(dsta,(m68k_dreg(regs, ru)));
3969: }else{m68k_dreg(regs, rc) = dst;
3970: }}}}}}}}m68k_incpc(8);
3971: return 24;
3972: }
3973: unsigned long REGPARAM2 CPUFUNC(op_c00_0)(uae_u32 opcode) /* CMP */
3974: {
3975: uae_u32 dstreg = opcode & 7;
3976: OpcodeFamily = 25; CurrentInstrCycles = 8;
3977: {{ uae_s8 src = get_ibyte(2);
3978: { uae_s8 dst = m68k_dreg(regs, dstreg);
3979: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
3980: { int flgs = ((uae_s8)(src)) < 0;
3981: int flgo = ((uae_s8)(dst)) < 0;
3982: int flgn = ((uae_s8)(newv)) < 0;
3983: SET_ZFLG (((uae_s8)(newv)) == 0);
3984: SET_VFLG ((flgs != flgo) && (flgn != flgo));
3985: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
3986: SET_NFLG (flgn != 0);
3987: }}}}}}m68k_incpc(4);
3988: return 8;
3989: }
3990: unsigned long REGPARAM2 CPUFUNC(op_c10_0)(uae_u32 opcode) /* CMP */
3991: {
3992: uae_u32 dstreg = opcode & 7;
3993: OpcodeFamily = 25; CurrentInstrCycles = 12;
3994: {{ uae_s8 src = get_ibyte(2);
3995: { uaecptr dsta = m68k_areg(regs, dstreg);
3996: { uae_s8 dst = get_byte(dsta);
3997: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
3998: { int flgs = ((uae_s8)(src)) < 0;
3999: int flgo = ((uae_s8)(dst)) < 0;
4000: int flgn = ((uae_s8)(newv)) < 0;
4001: SET_ZFLG (((uae_s8)(newv)) == 0);
4002: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4003: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
4004: SET_NFLG (flgn != 0);
4005: }}}}}}}m68k_incpc(4);
4006: return 12;
4007: }
4008: unsigned long REGPARAM2 CPUFUNC(op_c18_0)(uae_u32 opcode) /* CMP */
4009: {
4010: uae_u32 dstreg = opcode & 7;
4011: OpcodeFamily = 25; CurrentInstrCycles = 12;
4012: {{ uae_s8 src = get_ibyte(2);
4013: { uaecptr dsta = m68k_areg(regs, dstreg);
4014: { uae_s8 dst = get_byte(dsta);
4015: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
4016: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
4017: { int flgs = ((uae_s8)(src)) < 0;
4018: int flgo = ((uae_s8)(dst)) < 0;
4019: int flgn = ((uae_s8)(newv)) < 0;
4020: SET_ZFLG (((uae_s8)(newv)) == 0);
4021: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4022: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
4023: SET_NFLG (flgn != 0);
4024: }}}}}}}m68k_incpc(4);
4025: return 12;
4026: }
4027: unsigned long REGPARAM2 CPUFUNC(op_c20_0)(uae_u32 opcode) /* CMP */
4028: {
4029: uae_u32 dstreg = opcode & 7;
4030: OpcodeFamily = 25; CurrentInstrCycles = 14;
4031: {{ uae_s8 src = get_ibyte(2);
4032: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
4033: { uae_s8 dst = get_byte(dsta);
4034: m68k_areg (regs, dstreg) = dsta;
4035: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
4036: { int flgs = ((uae_s8)(src)) < 0;
4037: int flgo = ((uae_s8)(dst)) < 0;
4038: int flgn = ((uae_s8)(newv)) < 0;
4039: SET_ZFLG (((uae_s8)(newv)) == 0);
4040: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4041: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
4042: SET_NFLG (flgn != 0);
4043: }}}}}}}m68k_incpc(4);
4044: return 14;
4045: }
4046: unsigned long REGPARAM2 CPUFUNC(op_c28_0)(uae_u32 opcode) /* CMP */
4047: {
4048: uae_u32 dstreg = opcode & 7;
4049: OpcodeFamily = 25; CurrentInstrCycles = 16;
4050: {{ uae_s8 src = get_ibyte(2);
4051: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
4052: { uae_s8 dst = get_byte(dsta);
4053: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
4054: { int flgs = ((uae_s8)(src)) < 0;
4055: int flgo = ((uae_s8)(dst)) < 0;
4056: int flgn = ((uae_s8)(newv)) < 0;
4057: SET_ZFLG (((uae_s8)(newv)) == 0);
4058: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4059: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
4060: SET_NFLG (flgn != 0);
4061: }}}}}}}m68k_incpc(6);
4062: return 16;
4063: }
4064: unsigned long REGPARAM2 CPUFUNC(op_c30_0)(uae_u32 opcode) /* CMP */
4065: {
4066: uae_u32 dstreg = opcode & 7;
4067: OpcodeFamily = 25; CurrentInstrCycles = 18;
4068: {{ uae_s8 src = get_ibyte(2);
4069: {m68k_incpc(4);
4070: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
4071: BusCyclePenalty += 2;
4072: { uae_s8 dst = get_byte(dsta);
4073: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
4074: { int flgs = ((uae_s8)(src)) < 0;
4075: int flgo = ((uae_s8)(dst)) < 0;
4076: int flgn = ((uae_s8)(newv)) < 0;
4077: SET_ZFLG (((uae_s8)(newv)) == 0);
4078: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4079: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
4080: SET_NFLG (flgn != 0);
4081: }}}}}}}}return 18;
4082: }
4083: unsigned long REGPARAM2 CPUFUNC(op_c38_0)(uae_u32 opcode) /* CMP */
4084: {
4085: OpcodeFamily = 25; CurrentInstrCycles = 16;
4086: {{ uae_s8 src = get_ibyte(2);
4087: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
4088: { uae_s8 dst = get_byte(dsta);
4089: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
4090: { int flgs = ((uae_s8)(src)) < 0;
4091: int flgo = ((uae_s8)(dst)) < 0;
4092: int flgn = ((uae_s8)(newv)) < 0;
4093: SET_ZFLG (((uae_s8)(newv)) == 0);
4094: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4095: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
4096: SET_NFLG (flgn != 0);
4097: }}}}}}}m68k_incpc(6);
4098: return 16;
4099: }
4100: unsigned long REGPARAM2 CPUFUNC(op_c39_0)(uae_u32 opcode) /* CMP */
4101: {
4102: OpcodeFamily = 25; CurrentInstrCycles = 20;
4103: {{ uae_s8 src = get_ibyte(2);
4104: { uaecptr dsta = get_ilong(4);
4105: { uae_s8 dst = get_byte(dsta);
4106: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
4107: { int flgs = ((uae_s8)(src)) < 0;
4108: int flgo = ((uae_s8)(dst)) < 0;
4109: int flgn = ((uae_s8)(newv)) < 0;
4110: SET_ZFLG (((uae_s8)(newv)) == 0);
4111: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4112: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
4113: SET_NFLG (flgn != 0);
4114: }}}}}}}m68k_incpc(8);
4115: return 20;
4116: }
4117: unsigned long REGPARAM2 CPUFUNC(op_c3a_0)(uae_u32 opcode) /* CMP */
4118: {
4119: uae_u32 dstreg = 2;
4120: OpcodeFamily = 25; CurrentInstrCycles = 16;
4121: {{ uae_s8 src = get_ibyte(2);
4122: { uaecptr dsta = m68k_getpc () + 4;
4123: dsta += (uae_s32)(uae_s16)get_iword(4);
4124: { uae_s8 dst = get_byte(dsta);
4125: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
4126: { int flgs = ((uae_s8)(src)) < 0;
4127: int flgo = ((uae_s8)(dst)) < 0;
4128: int flgn = ((uae_s8)(newv)) < 0;
4129: SET_ZFLG (((uae_s8)(newv)) == 0);
4130: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4131: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
4132: SET_NFLG (flgn != 0);
4133: }}}}}}}m68k_incpc(6);
4134: return 16;
4135: }
4136: unsigned long REGPARAM2 CPUFUNC(op_c3b_0)(uae_u32 opcode) /* CMP */
4137: {
4138: uae_u32 dstreg = 3;
4139: OpcodeFamily = 25; CurrentInstrCycles = 18;
4140: {{ uae_s8 src = get_ibyte(2);
4141: {m68k_incpc(4);
4142: { uaecptr tmppc = m68k_getpc();
4143: uaecptr dsta = get_disp_ea_020(tmppc, next_iword());
4144: BusCyclePenalty += 2;
4145: { uae_s8 dst = get_byte(dsta);
4146: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
4147: { int flgs = ((uae_s8)(src)) < 0;
4148: int flgo = ((uae_s8)(dst)) < 0;
4149: int flgn = ((uae_s8)(newv)) < 0;
4150: SET_ZFLG (((uae_s8)(newv)) == 0);
4151: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4152: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
4153: SET_NFLG (flgn != 0);
4154: }}}}}}}}return 18;
4155: }
4156: unsigned long REGPARAM2 CPUFUNC(op_c40_0)(uae_u32 opcode) /* CMP */
4157: {
4158: uae_u32 dstreg = opcode & 7;
4159: OpcodeFamily = 25; CurrentInstrCycles = 8;
4160: {{ uae_s16 src = get_iword(2);
4161: { uae_s16 dst = m68k_dreg(regs, dstreg);
4162: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
4163: { int flgs = ((uae_s16)(src)) < 0;
4164: int flgo = ((uae_s16)(dst)) < 0;
4165: int flgn = ((uae_s16)(newv)) < 0;
4166: SET_ZFLG (((uae_s16)(newv)) == 0);
4167: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4168: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
4169: SET_NFLG (flgn != 0);
4170: }}}}}}m68k_incpc(4);
4171: return 8;
4172: }
4173: unsigned long REGPARAM2 CPUFUNC(op_c50_0)(uae_u32 opcode) /* CMP */
4174: {
4175: uae_u32 dstreg = opcode & 7;
4176: OpcodeFamily = 25; CurrentInstrCycles = 12;
4177: {{ uae_s16 src = get_iword(2);
4178: { uaecptr dsta = m68k_areg(regs, dstreg);
4179: { uae_s16 dst = get_word(dsta);
4180: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
4181: { int flgs = ((uae_s16)(src)) < 0;
4182: int flgo = ((uae_s16)(dst)) < 0;
4183: int flgn = ((uae_s16)(newv)) < 0;
4184: SET_ZFLG (((uae_s16)(newv)) == 0);
4185: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4186: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
4187: SET_NFLG (flgn != 0);
4188: }}}}}}}m68k_incpc(4);
4189: return 12;
4190: }
4191: unsigned long REGPARAM2 CPUFUNC(op_c58_0)(uae_u32 opcode) /* CMP */
4192: {
4193: uae_u32 dstreg = opcode & 7;
4194: OpcodeFamily = 25; CurrentInstrCycles = 12;
4195: {{ uae_s16 src = get_iword(2);
4196: { uaecptr dsta = m68k_areg(regs, dstreg);
4197: { uae_s16 dst = get_word(dsta);
4198: m68k_areg(regs, dstreg) += 2;
4199: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
4200: { int flgs = ((uae_s16)(src)) < 0;
4201: int flgo = ((uae_s16)(dst)) < 0;
4202: int flgn = ((uae_s16)(newv)) < 0;
4203: SET_ZFLG (((uae_s16)(newv)) == 0);
4204: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4205: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
4206: SET_NFLG (flgn != 0);
4207: }}}}}}}m68k_incpc(4);
4208: return 12;
4209: }
4210: unsigned long REGPARAM2 CPUFUNC(op_c60_0)(uae_u32 opcode) /* CMP */
4211: {
4212: uae_u32 dstreg = opcode & 7;
4213: OpcodeFamily = 25; CurrentInstrCycles = 14;
4214: {{ uae_s16 src = get_iword(2);
4215: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
4216: { uae_s16 dst = get_word(dsta);
4217: m68k_areg (regs, dstreg) = dsta;
4218: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
4219: { int flgs = ((uae_s16)(src)) < 0;
4220: int flgo = ((uae_s16)(dst)) < 0;
4221: int flgn = ((uae_s16)(newv)) < 0;
4222: SET_ZFLG (((uae_s16)(newv)) == 0);
4223: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4224: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
4225: SET_NFLG (flgn != 0);
4226: }}}}}}}m68k_incpc(4);
4227: return 14;
4228: }
4229: unsigned long REGPARAM2 CPUFUNC(op_c68_0)(uae_u32 opcode) /* CMP */
4230: {
4231: uae_u32 dstreg = opcode & 7;
4232: OpcodeFamily = 25; CurrentInstrCycles = 16;
4233: {{ uae_s16 src = get_iword(2);
4234: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
4235: { uae_s16 dst = get_word(dsta);
4236: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
4237: { int flgs = ((uae_s16)(src)) < 0;
4238: int flgo = ((uae_s16)(dst)) < 0;
4239: int flgn = ((uae_s16)(newv)) < 0;
4240: SET_ZFLG (((uae_s16)(newv)) == 0);
4241: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4242: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
4243: SET_NFLG (flgn != 0);
4244: }}}}}}}m68k_incpc(6);
4245: return 16;
4246: }
4247: unsigned long REGPARAM2 CPUFUNC(op_c70_0)(uae_u32 opcode) /* CMP */
4248: {
4249: uae_u32 dstreg = opcode & 7;
4250: OpcodeFamily = 25; CurrentInstrCycles = 18;
4251: {{ uae_s16 src = get_iword(2);
4252: {m68k_incpc(4);
4253: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
4254: BusCyclePenalty += 2;
4255: { uae_s16 dst = get_word(dsta);
4256: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
4257: { int flgs = ((uae_s16)(src)) < 0;
4258: int flgo = ((uae_s16)(dst)) < 0;
4259: int flgn = ((uae_s16)(newv)) < 0;
4260: SET_ZFLG (((uae_s16)(newv)) == 0);
4261: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4262: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
4263: SET_NFLG (flgn != 0);
4264: }}}}}}}}return 18;
4265: }
4266: unsigned long REGPARAM2 CPUFUNC(op_c78_0)(uae_u32 opcode) /* CMP */
4267: {
4268: OpcodeFamily = 25; CurrentInstrCycles = 16;
4269: {{ uae_s16 src = get_iword(2);
4270: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
4271: { uae_s16 dst = get_word(dsta);
4272: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
4273: { int flgs = ((uae_s16)(src)) < 0;
4274: int flgo = ((uae_s16)(dst)) < 0;
4275: int flgn = ((uae_s16)(newv)) < 0;
4276: SET_ZFLG (((uae_s16)(newv)) == 0);
4277: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4278: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
4279: SET_NFLG (flgn != 0);
4280: }}}}}}}m68k_incpc(6);
4281: return 16;
4282: }
4283: unsigned long REGPARAM2 CPUFUNC(op_c79_0)(uae_u32 opcode) /* CMP */
4284: {
4285: OpcodeFamily = 25; CurrentInstrCycles = 20;
4286: {{ uae_s16 src = get_iword(2);
4287: { uaecptr dsta = get_ilong(4);
4288: { uae_s16 dst = get_word(dsta);
4289: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
4290: { int flgs = ((uae_s16)(src)) < 0;
4291: int flgo = ((uae_s16)(dst)) < 0;
4292: int flgn = ((uae_s16)(newv)) < 0;
4293: SET_ZFLG (((uae_s16)(newv)) == 0);
4294: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4295: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
4296: SET_NFLG (flgn != 0);
4297: }}}}}}}m68k_incpc(8);
4298: return 20;
4299: }
4300: unsigned long REGPARAM2 CPUFUNC(op_c7a_0)(uae_u32 opcode) /* CMP */
4301: {
4302: uae_u32 dstreg = 2;
4303: OpcodeFamily = 25; CurrentInstrCycles = 16;
4304: {{ uae_s16 src = get_iword(2);
4305: { uaecptr dsta = m68k_getpc () + 4;
4306: dsta += (uae_s32)(uae_s16)get_iword(4);
4307: { uae_s16 dst = get_word(dsta);
4308: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
4309: { int flgs = ((uae_s16)(src)) < 0;
4310: int flgo = ((uae_s16)(dst)) < 0;
4311: int flgn = ((uae_s16)(newv)) < 0;
4312: SET_ZFLG (((uae_s16)(newv)) == 0);
4313: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4314: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
4315: SET_NFLG (flgn != 0);
4316: }}}}}}}m68k_incpc(6);
4317: return 16;
4318: }
4319: unsigned long REGPARAM2 CPUFUNC(op_c7b_0)(uae_u32 opcode) /* CMP */
4320: {
4321: uae_u32 dstreg = 3;
4322: OpcodeFamily = 25; CurrentInstrCycles = 18;
4323: {{ uae_s16 src = get_iword(2);
4324: {m68k_incpc(4);
4325: { uaecptr tmppc = m68k_getpc();
4326: uaecptr dsta = get_disp_ea_020(tmppc, next_iword());
4327: BusCyclePenalty += 2;
4328: { uae_s16 dst = get_word(dsta);
4329: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
4330: { int flgs = ((uae_s16)(src)) < 0;
4331: int flgo = ((uae_s16)(dst)) < 0;
4332: int flgn = ((uae_s16)(newv)) < 0;
4333: SET_ZFLG (((uae_s16)(newv)) == 0);
4334: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4335: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
4336: SET_NFLG (flgn != 0);
4337: }}}}}}}}return 18;
4338: }
4339: unsigned long REGPARAM2 CPUFUNC(op_c80_0)(uae_u32 opcode) /* CMP */
4340: {
4341: uae_u32 dstreg = opcode & 7;
4342: OpcodeFamily = 25; CurrentInstrCycles = 14;
4343: {{ uae_s32 src = get_ilong(2);
4344: { uae_s32 dst = m68k_dreg(regs, dstreg);
4345: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
4346: { int flgs = ((uae_s32)(src)) < 0;
4347: int flgo = ((uae_s32)(dst)) < 0;
4348: int flgn = ((uae_s32)(newv)) < 0;
4349: SET_ZFLG (((uae_s32)(newv)) == 0);
4350: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4351: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
4352: SET_NFLG (flgn != 0);
4353: }}}}}}m68k_incpc(6);
4354: return 14;
4355: }
4356: unsigned long REGPARAM2 CPUFUNC(op_c90_0)(uae_u32 opcode) /* CMP */
4357: {
4358: uae_u32 dstreg = opcode & 7;
4359: OpcodeFamily = 25; CurrentInstrCycles = 20;
4360: {{ uae_s32 src = get_ilong(2);
4361: { uaecptr dsta = m68k_areg(regs, dstreg);
4362: { uae_s32 dst = get_long(dsta);
4363: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
4364: { int flgs = ((uae_s32)(src)) < 0;
4365: int flgo = ((uae_s32)(dst)) < 0;
4366: int flgn = ((uae_s32)(newv)) < 0;
4367: SET_ZFLG (((uae_s32)(newv)) == 0);
4368: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4369: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
4370: SET_NFLG (flgn != 0);
4371: }}}}}}}m68k_incpc(6);
4372: return 20;
4373: }
4374: unsigned long REGPARAM2 CPUFUNC(op_c98_0)(uae_u32 opcode) /* CMP */
4375: {
4376: uae_u32 dstreg = opcode & 7;
4377: OpcodeFamily = 25; CurrentInstrCycles = 20;
4378: {{ uae_s32 src = get_ilong(2);
4379: { uaecptr dsta = m68k_areg(regs, dstreg);
4380: { uae_s32 dst = get_long(dsta);
4381: m68k_areg(regs, dstreg) += 4;
4382: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
4383: { int flgs = ((uae_s32)(src)) < 0;
4384: int flgo = ((uae_s32)(dst)) < 0;
4385: int flgn = ((uae_s32)(newv)) < 0;
4386: SET_ZFLG (((uae_s32)(newv)) == 0);
4387: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4388: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
4389: SET_NFLG (flgn != 0);
4390: }}}}}}}m68k_incpc(6);
4391: return 20;
4392: }
4393: unsigned long REGPARAM2 CPUFUNC(op_ca0_0)(uae_u32 opcode) /* CMP */
4394: {
4395: uae_u32 dstreg = opcode & 7;
4396: OpcodeFamily = 25; CurrentInstrCycles = 22;
4397: {{ uae_s32 src = get_ilong(2);
4398: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
4399: { uae_s32 dst = get_long(dsta);
4400: m68k_areg (regs, dstreg) = dsta;
4401: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
4402: { int flgs = ((uae_s32)(src)) < 0;
4403: int flgo = ((uae_s32)(dst)) < 0;
4404: int flgn = ((uae_s32)(newv)) < 0;
4405: SET_ZFLG (((uae_s32)(newv)) == 0);
4406: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4407: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
4408: SET_NFLG (flgn != 0);
4409: }}}}}}}m68k_incpc(6);
4410: return 22;
4411: }
4412: unsigned long REGPARAM2 CPUFUNC(op_ca8_0)(uae_u32 opcode) /* CMP */
4413: {
4414: uae_u32 dstreg = opcode & 7;
4415: OpcodeFamily = 25; CurrentInstrCycles = 24;
4416: {{ uae_s32 src = get_ilong(2);
4417: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6);
4418: { uae_s32 dst = get_long(dsta);
4419: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
4420: { int flgs = ((uae_s32)(src)) < 0;
4421: int flgo = ((uae_s32)(dst)) < 0;
4422: int flgn = ((uae_s32)(newv)) < 0;
4423: SET_ZFLG (((uae_s32)(newv)) == 0);
4424: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4425: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
4426: SET_NFLG (flgn != 0);
4427: }}}}}}}m68k_incpc(8);
4428: return 24;
4429: }
4430: unsigned long REGPARAM2 CPUFUNC(op_cb0_0)(uae_u32 opcode) /* CMP */
4431: {
4432: uae_u32 dstreg = opcode & 7;
4433: OpcodeFamily = 25; CurrentInstrCycles = 26;
4434: {{ uae_s32 src = get_ilong(2);
4435: {m68k_incpc(6);
4436: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
4437: BusCyclePenalty += 2;
4438: { uae_s32 dst = get_long(dsta);
4439: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
4440: { int flgs = ((uae_s32)(src)) < 0;
4441: int flgo = ((uae_s32)(dst)) < 0;
4442: int flgn = ((uae_s32)(newv)) < 0;
4443: SET_ZFLG (((uae_s32)(newv)) == 0);
4444: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4445: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
4446: SET_NFLG (flgn != 0);
4447: }}}}}}}}return 26;
4448: }
4449: unsigned long REGPARAM2 CPUFUNC(op_cb8_0)(uae_u32 opcode) /* CMP */
4450: {
4451: OpcodeFamily = 25; CurrentInstrCycles = 24;
4452: {{ uae_s32 src = get_ilong(2);
4453: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(6);
4454: { uae_s32 dst = get_long(dsta);
4455: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
4456: { int flgs = ((uae_s32)(src)) < 0;
4457: int flgo = ((uae_s32)(dst)) < 0;
4458: int flgn = ((uae_s32)(newv)) < 0;
4459: SET_ZFLG (((uae_s32)(newv)) == 0);
4460: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4461: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
4462: SET_NFLG (flgn != 0);
4463: }}}}}}}m68k_incpc(8);
4464: return 24;
4465: }
4466: unsigned long REGPARAM2 CPUFUNC(op_cb9_0)(uae_u32 opcode) /* CMP */
4467: {
4468: OpcodeFamily = 25; CurrentInstrCycles = 28;
4469: {{ uae_s32 src = get_ilong(2);
4470: { uaecptr dsta = get_ilong(6);
4471: { uae_s32 dst = get_long(dsta);
4472: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
4473: { int flgs = ((uae_s32)(src)) < 0;
4474: int flgo = ((uae_s32)(dst)) < 0;
4475: int flgn = ((uae_s32)(newv)) < 0;
4476: SET_ZFLG (((uae_s32)(newv)) == 0);
4477: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4478: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
4479: SET_NFLG (flgn != 0);
4480: }}}}}}}m68k_incpc(10);
4481: return 28;
4482: }
4483: unsigned long REGPARAM2 CPUFUNC(op_cba_0)(uae_u32 opcode) /* CMP */
4484: {
4485: uae_u32 dstreg = 2;
4486: OpcodeFamily = 25; CurrentInstrCycles = 24;
4487: {{ uae_s32 src = get_ilong(2);
4488: { uaecptr dsta = m68k_getpc () + 6;
4489: dsta += (uae_s32)(uae_s16)get_iword(6);
4490: { uae_s32 dst = get_long(dsta);
4491: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
4492: { int flgs = ((uae_s32)(src)) < 0;
4493: int flgo = ((uae_s32)(dst)) < 0;
4494: int flgn = ((uae_s32)(newv)) < 0;
4495: SET_ZFLG (((uae_s32)(newv)) == 0);
4496: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4497: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
4498: SET_NFLG (flgn != 0);
4499: }}}}}}}m68k_incpc(8);
4500: return 24;
4501: }
4502: unsigned long REGPARAM2 CPUFUNC(op_cbb_0)(uae_u32 opcode) /* CMP */
4503: {
4504: uae_u32 dstreg = 3;
4505: OpcodeFamily = 25; CurrentInstrCycles = 26;
4506: {{ uae_s32 src = get_ilong(2);
4507: {m68k_incpc(6);
4508: { uaecptr tmppc = m68k_getpc();
4509: uaecptr dsta = get_disp_ea_020(tmppc, next_iword());
4510: BusCyclePenalty += 2;
4511: { uae_s32 dst = get_long(dsta);
4512: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
4513: { int flgs = ((uae_s32)(src)) < 0;
4514: int flgo = ((uae_s32)(dst)) < 0;
4515: int flgn = ((uae_s32)(newv)) < 0;
4516: SET_ZFLG (((uae_s32)(newv)) == 0);
4517: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4518: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
4519: SET_NFLG (flgn != 0);
4520: }}}}}}}}return 26;
4521: }
4522: unsigned long REGPARAM2 CPUFUNC(op_cd0_0)(uae_u32 opcode) /* CAS */
4523: {
4524: uae_u32 dstreg = opcode & 7;
4525: OpcodeFamily = 84; CurrentInstrCycles = 16;
4526: {{ uae_s16 src = get_iword(2);
4527: { uaecptr dsta = m68k_areg(regs, dstreg);
4528: { uae_s16 dst = get_word(dsta);
4529: { int ru = (src >> 6) & 7;
4530: int rc = src & 7;
4531: {uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(m68k_dreg(regs, rc)));
4532: { int flgs = ((uae_s16)(m68k_dreg(regs, rc))) < 0;
4533: int flgo = ((uae_s16)(dst)) < 0;
4534: int flgn = ((uae_s16)(newv)) < 0;
4535: SET_ZFLG (((uae_s16)(newv)) == 0);
4536: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4537: SET_CFLG (((uae_u16)(m68k_dreg(regs, rc))) > ((uae_u16)(dst)));
4538: SET_NFLG (flgn != 0);
4539: if (GET_ZFLG){ put_word(dsta,(m68k_dreg(regs, ru)));
4540: }else{m68k_dreg(regs, rc) = dst;
4541: }}}}}}}}m68k_incpc(4);
4542: return 16;
4543: }
4544: unsigned long REGPARAM2 CPUFUNC(op_cd8_0)(uae_u32 opcode) /* CAS */
4545: {
4546: uae_u32 dstreg = opcode & 7;
4547: OpcodeFamily = 84; CurrentInstrCycles = 16;
4548: {{ uae_s16 src = get_iword(2);
4549: { uaecptr dsta = m68k_areg(regs, dstreg);
4550: { uae_s16 dst = get_word(dsta);
4551: m68k_areg(regs, dstreg) += 2;
4552: { int ru = (src >> 6) & 7;
4553: int rc = src & 7;
4554: {uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(m68k_dreg(regs, rc)));
4555: { int flgs = ((uae_s16)(m68k_dreg(regs, rc))) < 0;
4556: int flgo = ((uae_s16)(dst)) < 0;
4557: int flgn = ((uae_s16)(newv)) < 0;
4558: SET_ZFLG (((uae_s16)(newv)) == 0);
4559: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4560: SET_CFLG (((uae_u16)(m68k_dreg(regs, rc))) > ((uae_u16)(dst)));
4561: SET_NFLG (flgn != 0);
4562: if (GET_ZFLG){ put_word(dsta,(m68k_dreg(regs, ru)));
4563: }else{m68k_dreg(regs, rc) = dst;
4564: }}}}}}}}m68k_incpc(4);
4565: return 16;
4566: }
4567: unsigned long REGPARAM2 CPUFUNC(op_ce0_0)(uae_u32 opcode) /* CAS */
4568: {
4569: uae_u32 dstreg = opcode & 7;
4570: OpcodeFamily = 84; CurrentInstrCycles = 18;
4571: {{ uae_s16 src = get_iword(2);
4572: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
4573: { uae_s16 dst = get_word(dsta);
4574: m68k_areg (regs, dstreg) = dsta;
4575: { int ru = (src >> 6) & 7;
4576: int rc = src & 7;
4577: {uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(m68k_dreg(regs, rc)));
4578: { int flgs = ((uae_s16)(m68k_dreg(regs, rc))) < 0;
4579: int flgo = ((uae_s16)(dst)) < 0;
4580: int flgn = ((uae_s16)(newv)) < 0;
4581: SET_ZFLG (((uae_s16)(newv)) == 0);
4582: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4583: SET_CFLG (((uae_u16)(m68k_dreg(regs, rc))) > ((uae_u16)(dst)));
4584: SET_NFLG (flgn != 0);
4585: if (GET_ZFLG){ put_word(dsta,(m68k_dreg(regs, ru)));
4586: }else{m68k_dreg(regs, rc) = dst;
4587: }}}}}}}}m68k_incpc(4);
4588: return 18;
4589: }
4590: unsigned long REGPARAM2 CPUFUNC(op_ce8_0)(uae_u32 opcode) /* CAS */
4591: {
4592: uae_u32 dstreg = opcode & 7;
4593: OpcodeFamily = 84; CurrentInstrCycles = 20;
4594: {{ uae_s16 src = get_iword(2);
4595: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
4596: { uae_s16 dst = get_word(dsta);
4597: { int ru = (src >> 6) & 7;
4598: int rc = src & 7;
4599: {uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(m68k_dreg(regs, rc)));
4600: { int flgs = ((uae_s16)(m68k_dreg(regs, rc))) < 0;
4601: int flgo = ((uae_s16)(dst)) < 0;
4602: int flgn = ((uae_s16)(newv)) < 0;
4603: SET_ZFLG (((uae_s16)(newv)) == 0);
4604: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4605: SET_CFLG (((uae_u16)(m68k_dreg(regs, rc))) > ((uae_u16)(dst)));
4606: SET_NFLG (flgn != 0);
4607: if (GET_ZFLG){ put_word(dsta,(m68k_dreg(regs, ru)));
4608: }else{m68k_dreg(regs, rc) = dst;
4609: }}}}}}}}m68k_incpc(6);
4610: return 20;
4611: }
4612: unsigned long REGPARAM2 CPUFUNC(op_cf0_0)(uae_u32 opcode) /* CAS */
4613: {
4614: uae_u32 dstreg = opcode & 7;
4615: OpcodeFamily = 84; CurrentInstrCycles = 22;
4616: {{ uae_s16 src = get_iword(2);
4617: {m68k_incpc(4);
4618: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
4619: BusCyclePenalty += 2;
4620: { uae_s16 dst = get_word(dsta);
4621: { int ru = (src >> 6) & 7;
4622: int rc = src & 7;
4623: {uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(m68k_dreg(regs, rc)));
4624: { int flgs = ((uae_s16)(m68k_dreg(regs, rc))) < 0;
4625: int flgo = ((uae_s16)(dst)) < 0;
4626: int flgn = ((uae_s16)(newv)) < 0;
4627: SET_ZFLG (((uae_s16)(newv)) == 0);
4628: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4629: SET_CFLG (((uae_u16)(m68k_dreg(regs, rc))) > ((uae_u16)(dst)));
4630: SET_NFLG (flgn != 0);
4631: if (GET_ZFLG){ put_word(dsta,(m68k_dreg(regs, ru)));
4632: }else{m68k_dreg(regs, rc) = dst;
4633: }}}}}}}}}return 22;
4634: }
4635: unsigned long REGPARAM2 CPUFUNC(op_cf8_0)(uae_u32 opcode) /* CAS */
4636: {
4637: OpcodeFamily = 84; CurrentInstrCycles = 20;
4638: {{ uae_s16 src = get_iword(2);
4639: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
4640: { uae_s16 dst = get_word(dsta);
4641: { int ru = (src >> 6) & 7;
4642: int rc = src & 7;
4643: {uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(m68k_dreg(regs, rc)));
4644: { int flgs = ((uae_s16)(m68k_dreg(regs, rc))) < 0;
4645: int flgo = ((uae_s16)(dst)) < 0;
4646: int flgn = ((uae_s16)(newv)) < 0;
4647: SET_ZFLG (((uae_s16)(newv)) == 0);
4648: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4649: SET_CFLG (((uae_u16)(m68k_dreg(regs, rc))) > ((uae_u16)(dst)));
4650: SET_NFLG (flgn != 0);
4651: if (GET_ZFLG){ put_word(dsta,(m68k_dreg(regs, ru)));
4652: }else{m68k_dreg(regs, rc) = dst;
4653: }}}}}}}}m68k_incpc(6);
4654: return 20;
4655: }
4656: unsigned long REGPARAM2 CPUFUNC(op_cf9_0)(uae_u32 opcode) /* CAS */
4657: {
4658: OpcodeFamily = 84; CurrentInstrCycles = 24;
4659: {{ uae_s16 src = get_iword(2);
4660: { uaecptr dsta = get_ilong(4);
4661: { uae_s16 dst = get_word(dsta);
4662: { int ru = (src >> 6) & 7;
4663: int rc = src & 7;
4664: {uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(m68k_dreg(regs, rc)));
4665: { int flgs = ((uae_s16)(m68k_dreg(regs, rc))) < 0;
4666: int flgo = ((uae_s16)(dst)) < 0;
4667: int flgn = ((uae_s16)(newv)) < 0;
4668: SET_ZFLG (((uae_s16)(newv)) == 0);
4669: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4670: SET_CFLG (((uae_u16)(m68k_dreg(regs, rc))) > ((uae_u16)(dst)));
4671: SET_NFLG (flgn != 0);
4672: if (GET_ZFLG){ put_word(dsta,(m68k_dreg(regs, ru)));
4673: }else{m68k_dreg(regs, rc) = dst;
4674: }}}}}}}}m68k_incpc(8);
4675: return 24;
4676: }
4677: unsigned long REGPARAM2 CPUFUNC(op_cfc_0)(uae_u32 opcode) /* CAS2 */
4678: {
4679: OpcodeFamily = 85; CurrentInstrCycles = 12;
4680: {{ uae_s32 extra = get_ilong(2);
4681: uae_u32 rn1 = regs.regs[(extra >> 28) & 15];
4682: uae_u32 rn2 = regs.regs[(extra >> 12) & 15];
4683: uae_u16 dst1 = get_word(rn1), dst2 = get_word(rn2);
4684: {uae_u32 newv = ((uae_s16)(dst1)) - ((uae_s16)(m68k_dreg(regs, (extra >> 16) & 7)));
4685: { int flgs = ((uae_s16)(m68k_dreg(regs, (extra >> 16) & 7))) < 0;
4686: int flgo = ((uae_s16)(dst1)) < 0;
4687: int flgn = ((uae_s16)(newv)) < 0;
4688: SET_ZFLG (((uae_s16)(newv)) == 0);
4689: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4690: SET_CFLG (((uae_u16)(m68k_dreg(regs, (extra >> 16) & 7))) > ((uae_u16)(dst1)));
4691: SET_NFLG (flgn != 0);
4692: if (GET_ZFLG) {
4693: {uae_u32 newv = ((uae_s16)(dst2)) - ((uae_s16)(m68k_dreg(regs, extra & 7)));
4694: { int flgs = ((uae_s16)(m68k_dreg(regs, extra & 7))) < 0;
4695: int flgo = ((uae_s16)(dst2)) < 0;
4696: int flgn = ((uae_s16)(newv)) < 0;
4697: SET_ZFLG (((uae_s16)(newv)) == 0);
4698: SET_VFLG ((flgs != flgo) && (flgn != flgo));
4699: SET_CFLG (((uae_u16)(m68k_dreg(regs, extra & 7))) > ((uae_u16)(dst2)));
4700: SET_NFLG (flgn != 0);
4701: if (GET_ZFLG) {
4702: put_word(rn1, m68k_dreg(regs, (extra >> 22) & 7));
4703: put_word(rn1, m68k_dreg(regs, (extra >> 6) & 7));
4704: }}
4705: }}}} if (! GET_ZFLG) {
4706: m68k_dreg(regs, (extra >> 22) & 7) = (m68k_dreg(regs, (extra >> 22) & 7) & ~0xffff) | (dst1 & 0xffff);
4707: m68k_dreg(regs, (extra >> 6) & 7) = (m68k_dreg(regs, (extra >> 6) & 7) & ~0xffff) | (dst2 & 0xffff);
4708: }
4709: }}m68k_incpc(6);
4710: return 12;
4711: }
4712: unsigned long REGPARAM2 CPUFUNC(op_e10_0)(uae_u32 opcode) /* MOVES */
4713: {
4714: uae_u32 dstreg = opcode & 7;
4715: OpcodeFamily = 103; CurrentInstrCycles = 16;
4716: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel288; }
4717: {{ uae_s16 extra = get_iword(2);
4718: if (extra & 0x800)
4719: { uae_u32 src = regs.regs[(extra >> 12) & 15];
4720: { uaecptr dsta = m68k_areg(regs, dstreg);
4721: put_byte(dsta,src);
4722: }}else{{ uaecptr srca = m68k_areg(regs, dstreg);
4723: { uae_s8 src = get_byte(srca);
4724: if (extra & 0x8000) {
4725: m68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src;
4726: } else {
4727: m68k_dreg(regs, (extra >> 12) & 7) = (m68k_dreg(regs, (extra >> 12) & 7) & ~0xff) | ((src) & 0xff);
4728: }
4729: }}}}}}m68k_incpc(4);
4730: endlabel288: ;
4731: return 16;
4732: }
4733: unsigned long REGPARAM2 CPUFUNC(op_e18_0)(uae_u32 opcode) /* MOVES */
4734: {
4735: uae_u32 dstreg = opcode & 7;
4736: OpcodeFamily = 103; CurrentInstrCycles = 16;
4737: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel289; }
4738: {{ uae_s16 extra = get_iword(2);
4739: if (extra & 0x800)
4740: { uae_u32 src = regs.regs[(extra >> 12) & 15];
4741: { uaecptr dsta = m68k_areg(regs, dstreg);
4742: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
4743: put_byte(dsta,src);
4744: }}else{{ uaecptr srca = m68k_areg(regs, dstreg);
4745: { uae_s8 src = get_byte(srca);
4746: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
4747: if (extra & 0x8000) {
4748: m68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src;
4749: } else {
4750: m68k_dreg(regs, (extra >> 12) & 7) = (m68k_dreg(regs, (extra >> 12) & 7) & ~0xff) | ((src) & 0xff);
4751: }
4752: }}}}}}m68k_incpc(4);
4753: endlabel289: ;
4754: return 16;
4755: }
4756: unsigned long REGPARAM2 CPUFUNC(op_e20_0)(uae_u32 opcode) /* MOVES */
4757: {
4758: uae_u32 dstreg = opcode & 7;
4759: OpcodeFamily = 103; CurrentInstrCycles = 20;
4760: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel290; }
4761: {{ uae_s16 extra = get_iword(2);
4762: if (extra & 0x800)
4763: { uae_u32 src = regs.regs[(extra >> 12) & 15];
4764: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
4765: m68k_areg (regs, dstreg) = dsta;
4766: put_byte(dsta,src);
4767: }}else{{ uaecptr srca = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
4768: { uae_s8 src = get_byte(srca);
4769: m68k_areg (regs, dstreg) = srca;
4770: if (extra & 0x8000) {
4771: m68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src;
4772: } else {
4773: m68k_dreg(regs, (extra >> 12) & 7) = (m68k_dreg(regs, (extra >> 12) & 7) & ~0xff) | ((src) & 0xff);
4774: }
4775: }}}}}}m68k_incpc(4);
4776: endlabel290: ;
4777: return 20;
4778: }
4779: unsigned long REGPARAM2 CPUFUNC(op_e28_0)(uae_u32 opcode) /* MOVES */
4780: {
4781: uae_u32 dstreg = opcode & 7;
4782: OpcodeFamily = 103; CurrentInstrCycles = 24;
4783: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel291; }
4784: {{ uae_s16 extra = get_iword(2);
4785: if (extra & 0x800)
4786: { uae_u32 src = regs.regs[(extra >> 12) & 15];
4787: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
4788: put_byte(dsta,src);
4789: }}else{{ uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6);
4790: { uae_s8 src = get_byte(srca);
4791: if (extra & 0x8000) {
4792: m68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src;
4793: } else {
4794: m68k_dreg(regs, (extra >> 12) & 7) = (m68k_dreg(regs, (extra >> 12) & 7) & ~0xff) | ((src) & 0xff);
4795: }
4796: }}}}}}m68k_incpc(8);
4797: endlabel291: ;
4798: return 24;
4799: }
4800: unsigned long REGPARAM2 CPUFUNC(op_e30_0)(uae_u32 opcode) /* MOVES */
4801: {
4802: uae_u32 dstreg = opcode & 7;
4803: OpcodeFamily = 103; CurrentInstrCycles = 28;
4804: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel292; }
4805: {{ uae_s16 extra = get_iword(2);
4806: if (extra & 0x800)
4807: { uae_u32 src = regs.regs[(extra >> 12) & 15];
4808: {m68k_incpc(4);
4809: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
4810: BusCyclePenalty += 2;
4811: put_byte(dsta,src);
4812: }}}else{{{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
4813: BusCyclePenalty += 2;
4814: { uae_s8 src = get_byte(srca);
4815: if (extra & 0x8000) {
4816: m68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src;
4817: } else {
4818: m68k_dreg(regs, (extra >> 12) & 7) = (m68k_dreg(regs, (extra >> 12) & 7) & ~0xff) | ((src) & 0xff);
4819: }
4820: }}}}}}}endlabel292: ;
4821: return 28;
4822: }
4823: unsigned long REGPARAM2 CPUFUNC(op_e38_0)(uae_u32 opcode) /* MOVES */
4824: {
4825: OpcodeFamily = 103; CurrentInstrCycles = 24;
4826: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel293; }
4827: {{ uae_s16 extra = get_iword(2);
4828: if (extra & 0x800)
4829: { uae_u32 src = regs.regs[(extra >> 12) & 15];
4830: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
4831: put_byte(dsta,src);
4832: }}else{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(6);
4833: { uae_s8 src = get_byte(srca);
4834: if (extra & 0x8000) {
4835: m68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src;
4836: } else {
4837: m68k_dreg(regs, (extra >> 12) & 7) = (m68k_dreg(regs, (extra >> 12) & 7) & ~0xff) | ((src) & 0xff);
4838: }
4839: }}}}}}m68k_incpc(8);
4840: endlabel293: ;
4841: return 24;
4842: }
4843: unsigned long REGPARAM2 CPUFUNC(op_e39_0)(uae_u32 opcode) /* MOVES */
4844: {
4845: OpcodeFamily = 103; CurrentInstrCycles = 32;
4846: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel294; }
4847: {{ uae_s16 extra = get_iword(2);
4848: if (extra & 0x800)
4849: { uae_u32 src = regs.regs[(extra >> 12) & 15];
4850: { uaecptr dsta = get_ilong(4);
4851: put_byte(dsta,src);
4852: }}else{{ uaecptr srca = get_ilong(8);
4853: { uae_s8 src = get_byte(srca);
4854: if (extra & 0x8000) {
4855: m68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s8)src;
4856: } else {
4857: m68k_dreg(regs, (extra >> 12) & 7) = (m68k_dreg(regs, (extra >> 12) & 7) & ~0xff) | ((src) & 0xff);
4858: }
4859: }}}}}}m68k_incpc(12);
4860: endlabel294: ;
4861: return 32;
4862: }
4863: unsigned long REGPARAM2 CPUFUNC(op_e50_0)(uae_u32 opcode) /* MOVES */
4864: {
4865: uae_u32 dstreg = opcode & 7;
4866: OpcodeFamily = 103; CurrentInstrCycles = 16;
4867: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel295; }
4868: {{ uae_s16 extra = get_iword(2);
4869: if (extra & 0x800)
4870: { uae_u32 src = regs.regs[(extra >> 12) & 15];
4871: { uaecptr dsta = m68k_areg(regs, dstreg);
4872: put_word(dsta,src);
4873: }}else{{ uaecptr srca = m68k_areg(regs, dstreg);
4874: { uae_s16 src = get_word(srca);
4875: if (extra & 0x8000) {
4876: m68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src;
4877: } else {
4878: m68k_dreg(regs, (extra >> 12) & 7) = (m68k_dreg(regs, (extra >> 12) & 7) & ~0xffff) | ((src) & 0xffff);
4879: }
4880: }}}}}}m68k_incpc(4);
4881: endlabel295: ;
4882: return 16;
4883: }
4884: unsigned long REGPARAM2 CPUFUNC(op_e58_0)(uae_u32 opcode) /* MOVES */
4885: {
4886: uae_u32 dstreg = opcode & 7;
4887: OpcodeFamily = 103; CurrentInstrCycles = 16;
4888: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel296; }
4889: {{ uae_s16 extra = get_iword(2);
4890: if (extra & 0x800)
4891: { uae_u32 src = regs.regs[(extra >> 12) & 15];
4892: { uaecptr dsta = m68k_areg(regs, dstreg);
4893: m68k_areg(regs, dstreg) += 2;
4894: put_word(dsta,src);
4895: }}else{{ uaecptr srca = m68k_areg(regs, dstreg);
4896: { uae_s16 src = get_word(srca);
4897: m68k_areg(regs, dstreg) += 2;
4898: if (extra & 0x8000) {
4899: m68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src;
4900: } else {
4901: m68k_dreg(regs, (extra >> 12) & 7) = (m68k_dreg(regs, (extra >> 12) & 7) & ~0xffff) | ((src) & 0xffff);
4902: }
4903: }}}}}}m68k_incpc(4);
4904: endlabel296: ;
4905: return 16;
4906: }
4907: unsigned long REGPARAM2 CPUFUNC(op_e60_0)(uae_u32 opcode) /* MOVES */
4908: {
4909: uae_u32 dstreg = opcode & 7;
4910: OpcodeFamily = 103; CurrentInstrCycles = 20;
4911: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel297; }
4912: {{ uae_s16 extra = get_iword(2);
4913: if (extra & 0x800)
4914: { uae_u32 src = regs.regs[(extra >> 12) & 15];
4915: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
4916: m68k_areg (regs, dstreg) = dsta;
4917: put_word(dsta,src);
4918: }}else{{ uaecptr srca = m68k_areg(regs, dstreg) - 2;
4919: { uae_s16 src = get_word(srca);
4920: m68k_areg (regs, dstreg) = srca;
4921: if (extra & 0x8000) {
4922: m68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src;
4923: } else {
4924: m68k_dreg(regs, (extra >> 12) & 7) = (m68k_dreg(regs, (extra >> 12) & 7) & ~0xffff) | ((src) & 0xffff);
4925: }
4926: }}}}}}m68k_incpc(4);
4927: endlabel297: ;
4928: return 20;
4929: }
4930: unsigned long REGPARAM2 CPUFUNC(op_e68_0)(uae_u32 opcode) /* MOVES */
4931: {
4932: uae_u32 dstreg = opcode & 7;
4933: OpcodeFamily = 103; CurrentInstrCycles = 24;
4934: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel298; }
4935: {{ uae_s16 extra = get_iword(2);
4936: if (extra & 0x800)
4937: { uae_u32 src = regs.regs[(extra >> 12) & 15];
4938: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
4939: put_word(dsta,src);
4940: }}else{{ uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6);
4941: { uae_s16 src = get_word(srca);
4942: if (extra & 0x8000) {
4943: m68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src;
4944: } else {
4945: m68k_dreg(regs, (extra >> 12) & 7) = (m68k_dreg(regs, (extra >> 12) & 7) & ~0xffff) | ((src) & 0xffff);
4946: }
4947: }}}}}}m68k_incpc(8);
4948: endlabel298: ;
4949: return 24;
4950: }
4951: unsigned long REGPARAM2 CPUFUNC(op_e70_0)(uae_u32 opcode) /* MOVES */
4952: {
4953: uae_u32 dstreg = opcode & 7;
4954: OpcodeFamily = 103; CurrentInstrCycles = 28;
4955: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel299; }
4956: {{ uae_s16 extra = get_iword(2);
4957: if (extra & 0x800)
4958: { uae_u32 src = regs.regs[(extra >> 12) & 15];
4959: {m68k_incpc(4);
4960: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
4961: BusCyclePenalty += 2;
4962: put_word(dsta,src);
4963: }}}else{{{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
4964: BusCyclePenalty += 2;
4965: { uae_s16 src = get_word(srca);
4966: if (extra & 0x8000) {
4967: m68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src;
4968: } else {
4969: m68k_dreg(regs, (extra >> 12) & 7) = (m68k_dreg(regs, (extra >> 12) & 7) & ~0xffff) | ((src) & 0xffff);
4970: }
4971: }}}}}}}endlabel299: ;
4972: return 28;
4973: }
4974: unsigned long REGPARAM2 CPUFUNC(op_e78_0)(uae_u32 opcode) /* MOVES */
4975: {
4976: OpcodeFamily = 103; CurrentInstrCycles = 24;
4977: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel300; }
4978: {{ uae_s16 extra = get_iword(2);
4979: if (extra & 0x800)
4980: { uae_u32 src = regs.regs[(extra >> 12) & 15];
4981: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
4982: put_word(dsta,src);
4983: }}else{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(6);
4984: { uae_s16 src = get_word(srca);
4985: if (extra & 0x8000) {
4986: m68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src;
4987: } else {
4988: m68k_dreg(regs, (extra >> 12) & 7) = (m68k_dreg(regs, (extra >> 12) & 7) & ~0xffff) | ((src) & 0xffff);
4989: }
4990: }}}}}}m68k_incpc(8);
4991: endlabel300: ;
4992: return 24;
4993: }
4994: unsigned long REGPARAM2 CPUFUNC(op_e79_0)(uae_u32 opcode) /* MOVES */
4995: {
4996: OpcodeFamily = 103; CurrentInstrCycles = 32;
4997: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel301; }
4998: {{ uae_s16 extra = get_iword(2);
4999: if (extra & 0x800)
5000: { uae_u32 src = regs.regs[(extra >> 12) & 15];
5001: { uaecptr dsta = get_ilong(4);
5002: put_word(dsta,src);
5003: }}else{{ uaecptr srca = get_ilong(8);
5004: { uae_s16 src = get_word(srca);
5005: if (extra & 0x8000) {
5006: m68k_areg(regs, (extra >> 12) & 7) = (uae_s32)(uae_s16)src;
5007: } else {
5008: m68k_dreg(regs, (extra >> 12) & 7) = (m68k_dreg(regs, (extra >> 12) & 7) & ~0xffff) | ((src) & 0xffff);
5009: }
5010: }}}}}}m68k_incpc(12);
5011: endlabel301: ;
5012: return 32;
5013: }
5014: unsigned long REGPARAM2 CPUFUNC(op_e90_0)(uae_u32 opcode) /* MOVES */
5015: {
5016: uae_u32 dstreg = opcode & 7;
5017: OpcodeFamily = 103; CurrentInstrCycles = 24;
5018: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel302; }
5019: {{ uae_s16 extra = get_iword(2);
5020: if (extra & 0x800)
5021: { uae_u32 src = regs.regs[(extra >> 12) & 15];
5022: { uaecptr dsta = m68k_areg(regs, dstreg);
5023: put_long(dsta,src);
5024: }}else{{ uaecptr srca = m68k_areg(regs, dstreg);
5025: { uae_s32 src = get_long(srca);
5026: if (extra & 0x8000) {
5027: m68k_areg(regs, (extra >> 12) & 7) = src;
5028: } else {
5029: m68k_dreg(regs, (extra >> 12) & 7) = (src);
5030: }
5031: }}}}}}m68k_incpc(4);
5032: endlabel302: ;
5033: return 24;
5034: }
5035: unsigned long REGPARAM2 CPUFUNC(op_e98_0)(uae_u32 opcode) /* MOVES */
5036: {
5037: uae_u32 dstreg = opcode & 7;
5038: OpcodeFamily = 103; CurrentInstrCycles = 24;
5039: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel303; }
5040: {{ uae_s16 extra = get_iword(2);
5041: if (extra & 0x800)
5042: { uae_u32 src = regs.regs[(extra >> 12) & 15];
5043: { uaecptr dsta = m68k_areg(regs, dstreg);
5044: m68k_areg(regs, dstreg) += 4;
5045: put_long(dsta,src);
5046: }}else{{ uaecptr srca = m68k_areg(regs, dstreg);
5047: { uae_s32 src = get_long(srca);
5048: m68k_areg(regs, dstreg) += 4;
5049: if (extra & 0x8000) {
5050: m68k_areg(regs, (extra >> 12) & 7) = src;
5051: } else {
5052: m68k_dreg(regs, (extra >> 12) & 7) = (src);
5053: }
5054: }}}}}}m68k_incpc(4);
5055: endlabel303: ;
5056: return 24;
5057: }
5058: unsigned long REGPARAM2 CPUFUNC(op_ea0_0)(uae_u32 opcode) /* MOVES */
5059: {
5060: uae_u32 dstreg = opcode & 7;
5061: OpcodeFamily = 103; CurrentInstrCycles = 28;
5062: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel304; }
5063: {{ uae_s16 extra = get_iword(2);
5064: if (extra & 0x800)
5065: { uae_u32 src = regs.regs[(extra >> 12) & 15];
5066: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
5067: m68k_areg (regs, dstreg) = dsta;
5068: put_long(dsta,src);
5069: }}else{{ uaecptr srca = m68k_areg(regs, dstreg) - 4;
5070: { uae_s32 src = get_long(srca);
5071: m68k_areg (regs, dstreg) = srca;
5072: if (extra & 0x8000) {
5073: m68k_areg(regs, (extra >> 12) & 7) = src;
5074: } else {
5075: m68k_dreg(regs, (extra >> 12) & 7) = (src);
5076: }
5077: }}}}}}m68k_incpc(4);
5078: endlabel304: ;
5079: return 28;
5080: }
5081: unsigned long REGPARAM2 CPUFUNC(op_ea8_0)(uae_u32 opcode) /* MOVES */
5082: {
5083: uae_u32 dstreg = opcode & 7;
5084: OpcodeFamily = 103; CurrentInstrCycles = 32;
5085: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel305; }
5086: {{ uae_s16 extra = get_iword(2);
5087: if (extra & 0x800)
5088: { uae_u32 src = regs.regs[(extra >> 12) & 15];
5089: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
5090: put_long(dsta,src);
5091: }}else{{ uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6);
5092: { uae_s32 src = get_long(srca);
5093: if (extra & 0x8000) {
5094: m68k_areg(regs, (extra >> 12) & 7) = src;
5095: } else {
5096: m68k_dreg(regs, (extra >> 12) & 7) = (src);
5097: }
5098: }}}}}}m68k_incpc(8);
5099: endlabel305: ;
5100: return 32;
5101: }
5102: unsigned long REGPARAM2 CPUFUNC(op_eb0_0)(uae_u32 opcode) /* MOVES */
5103: {
5104: uae_u32 dstreg = opcode & 7;
5105: OpcodeFamily = 103; CurrentInstrCycles = 36;
5106: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel306; }
5107: {{ uae_s16 extra = get_iword(2);
5108: if (extra & 0x800)
5109: { uae_u32 src = regs.regs[(extra >> 12) & 15];
5110: {m68k_incpc(4);
5111: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
5112: BusCyclePenalty += 2;
5113: put_long(dsta,src);
5114: }}}else{{{ uaecptr srca = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
5115: BusCyclePenalty += 2;
5116: { uae_s32 src = get_long(srca);
5117: if (extra & 0x8000) {
5118: m68k_areg(regs, (extra >> 12) & 7) = src;
5119: } else {
5120: m68k_dreg(regs, (extra >> 12) & 7) = (src);
5121: }
5122: }}}}}}}endlabel306: ;
5123: return 36;
5124: }
5125: unsigned long REGPARAM2 CPUFUNC(op_eb8_0)(uae_u32 opcode) /* MOVES */
5126: {
5127: OpcodeFamily = 103; CurrentInstrCycles = 32;
5128: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel307; }
5129: {{ uae_s16 extra = get_iword(2);
5130: if (extra & 0x800)
5131: { uae_u32 src = regs.regs[(extra >> 12) & 15];
5132: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
5133: put_long(dsta,src);
5134: }}else{{ uaecptr srca = (uae_s32)(uae_s16)get_iword(6);
5135: { uae_s32 src = get_long(srca);
5136: if (extra & 0x8000) {
5137: m68k_areg(regs, (extra >> 12) & 7) = src;
5138: } else {
5139: m68k_dreg(regs, (extra >> 12) & 7) = (src);
5140: }
5141: }}}}}}m68k_incpc(8);
5142: endlabel307: ;
5143: return 32;
5144: }
5145: unsigned long REGPARAM2 CPUFUNC(op_eb9_0)(uae_u32 opcode) /* MOVES */
5146: {
5147: OpcodeFamily = 103; CurrentInstrCycles = 40;
5148: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel308; }
5149: {{ uae_s16 extra = get_iword(2);
5150: if (extra & 0x800)
5151: { uae_u32 src = regs.regs[(extra >> 12) & 15];
5152: { uaecptr dsta = get_ilong(4);
5153: put_long(dsta,src);
5154: }}else{{ uaecptr srca = get_ilong(8);
5155: { uae_s32 src = get_long(srca);
5156: if (extra & 0x8000) {
5157: m68k_areg(regs, (extra >> 12) & 7) = src;
5158: } else {
5159: m68k_dreg(regs, (extra >> 12) & 7) = (src);
5160: }
5161: }}}}}}m68k_incpc(12);
5162: endlabel308: ;
5163: return 40;
5164: }
5165: unsigned long REGPARAM2 CPUFUNC(op_ed0_0)(uae_u32 opcode) /* CAS */
5166: {
5167: uae_u32 dstreg = opcode & 7;
5168: OpcodeFamily = 84; CurrentInstrCycles = 24;
5169: {{ uae_s16 src = get_iword(2);
5170: { uaecptr dsta = m68k_areg(regs, dstreg);
5171: { uae_s32 dst = get_long(dsta);
5172: { int ru = (src >> 6) & 7;
5173: int rc = src & 7;
5174: {uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(m68k_dreg(regs, rc)));
5175: { int flgs = ((uae_s32)(m68k_dreg(regs, rc))) < 0;
5176: int flgo = ((uae_s32)(dst)) < 0;
5177: int flgn = ((uae_s32)(newv)) < 0;
5178: SET_ZFLG (((uae_s32)(newv)) == 0);
5179: SET_VFLG ((flgs != flgo) && (flgn != flgo));
5180: SET_CFLG (((uae_u32)(m68k_dreg(regs, rc))) > ((uae_u32)(dst)));
5181: SET_NFLG (flgn != 0);
5182: if (GET_ZFLG){ put_long(dsta,(m68k_dreg(regs, ru)));
5183: }else{m68k_dreg(regs, rc) = dst;
5184: }}}}}}}}m68k_incpc(4);
5185: return 24;
5186: }
5187: unsigned long REGPARAM2 CPUFUNC(op_ed8_0)(uae_u32 opcode) /* CAS */
5188: {
5189: uae_u32 dstreg = opcode & 7;
5190: OpcodeFamily = 84; CurrentInstrCycles = 24;
5191: {{ uae_s16 src = get_iword(2);
5192: { uaecptr dsta = m68k_areg(regs, dstreg);
5193: { uae_s32 dst = get_long(dsta);
5194: m68k_areg(regs, dstreg) += 4;
5195: { int ru = (src >> 6) & 7;
5196: int rc = src & 7;
5197: {uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(m68k_dreg(regs, rc)));
5198: { int flgs = ((uae_s32)(m68k_dreg(regs, rc))) < 0;
5199: int flgo = ((uae_s32)(dst)) < 0;
5200: int flgn = ((uae_s32)(newv)) < 0;
5201: SET_ZFLG (((uae_s32)(newv)) == 0);
5202: SET_VFLG ((flgs != flgo) && (flgn != flgo));
5203: SET_CFLG (((uae_u32)(m68k_dreg(regs, rc))) > ((uae_u32)(dst)));
5204: SET_NFLG (flgn != 0);
5205: if (GET_ZFLG){ put_long(dsta,(m68k_dreg(regs, ru)));
5206: }else{m68k_dreg(regs, rc) = dst;
5207: }}}}}}}}m68k_incpc(4);
5208: return 24;
5209: }
5210: unsigned long REGPARAM2 CPUFUNC(op_ee0_0)(uae_u32 opcode) /* CAS */
5211: {
5212: uae_u32 dstreg = opcode & 7;
5213: OpcodeFamily = 84; CurrentInstrCycles = 26;
5214: {{ uae_s16 src = get_iword(2);
5215: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
5216: { uae_s32 dst = get_long(dsta);
5217: m68k_areg (regs, dstreg) = dsta;
5218: { int ru = (src >> 6) & 7;
5219: int rc = src & 7;
5220: {uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(m68k_dreg(regs, rc)));
5221: { int flgs = ((uae_s32)(m68k_dreg(regs, rc))) < 0;
5222: int flgo = ((uae_s32)(dst)) < 0;
5223: int flgn = ((uae_s32)(newv)) < 0;
5224: SET_ZFLG (((uae_s32)(newv)) == 0);
5225: SET_VFLG ((flgs != flgo) && (flgn != flgo));
5226: SET_CFLG (((uae_u32)(m68k_dreg(regs, rc))) > ((uae_u32)(dst)));
5227: SET_NFLG (flgn != 0);
5228: if (GET_ZFLG){ put_long(dsta,(m68k_dreg(regs, ru)));
5229: }else{m68k_dreg(regs, rc) = dst;
5230: }}}}}}}}m68k_incpc(4);
5231: return 26;
5232: }
5233: unsigned long REGPARAM2 CPUFUNC(op_ee8_0)(uae_u32 opcode) /* CAS */
5234: {
5235: uae_u32 dstreg = opcode & 7;
5236: OpcodeFamily = 84; CurrentInstrCycles = 28;
5237: {{ uae_s16 src = get_iword(2);
5238: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
5239: { uae_s32 dst = get_long(dsta);
5240: { int ru = (src >> 6) & 7;
5241: int rc = src & 7;
5242: {uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(m68k_dreg(regs, rc)));
5243: { int flgs = ((uae_s32)(m68k_dreg(regs, rc))) < 0;
5244: int flgo = ((uae_s32)(dst)) < 0;
5245: int flgn = ((uae_s32)(newv)) < 0;
5246: SET_ZFLG (((uae_s32)(newv)) == 0);
5247: SET_VFLG ((flgs != flgo) && (flgn != flgo));
5248: SET_CFLG (((uae_u32)(m68k_dreg(regs, rc))) > ((uae_u32)(dst)));
5249: SET_NFLG (flgn != 0);
5250: if (GET_ZFLG){ put_long(dsta,(m68k_dreg(regs, ru)));
5251: }else{m68k_dreg(regs, rc) = dst;
5252: }}}}}}}}m68k_incpc(6);
5253: return 28;
5254: }
5255: unsigned long REGPARAM2 CPUFUNC(op_ef0_0)(uae_u32 opcode) /* CAS */
5256: {
5257: uae_u32 dstreg = opcode & 7;
5258: OpcodeFamily = 84; CurrentInstrCycles = 30;
5259: {{ uae_s16 src = get_iword(2);
5260: {m68k_incpc(4);
5261: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
5262: BusCyclePenalty += 2;
5263: { uae_s32 dst = get_long(dsta);
5264: { int ru = (src >> 6) & 7;
5265: int rc = src & 7;
5266: {uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(m68k_dreg(regs, rc)));
5267: { int flgs = ((uae_s32)(m68k_dreg(regs, rc))) < 0;
5268: int flgo = ((uae_s32)(dst)) < 0;
5269: int flgn = ((uae_s32)(newv)) < 0;
5270: SET_ZFLG (((uae_s32)(newv)) == 0);
5271: SET_VFLG ((flgs != flgo) && (flgn != flgo));
5272: SET_CFLG (((uae_u32)(m68k_dreg(regs, rc))) > ((uae_u32)(dst)));
5273: SET_NFLG (flgn != 0);
5274: if (GET_ZFLG){ put_long(dsta,(m68k_dreg(regs, ru)));
5275: }else{m68k_dreg(regs, rc) = dst;
5276: }}}}}}}}}return 30;
5277: }
5278: unsigned long REGPARAM2 CPUFUNC(op_ef8_0)(uae_u32 opcode) /* CAS */
5279: {
5280: OpcodeFamily = 84; CurrentInstrCycles = 28;
5281: {{ uae_s16 src = get_iword(2);
5282: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
5283: { uae_s32 dst = get_long(dsta);
5284: { int ru = (src >> 6) & 7;
5285: int rc = src & 7;
5286: {uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(m68k_dreg(regs, rc)));
5287: { int flgs = ((uae_s32)(m68k_dreg(regs, rc))) < 0;
5288: int flgo = ((uae_s32)(dst)) < 0;
5289: int flgn = ((uae_s32)(newv)) < 0;
5290: SET_ZFLG (((uae_s32)(newv)) == 0);
5291: SET_VFLG ((flgs != flgo) && (flgn != flgo));
5292: SET_CFLG (((uae_u32)(m68k_dreg(regs, rc))) > ((uae_u32)(dst)));
5293: SET_NFLG (flgn != 0);
5294: if (GET_ZFLG){ put_long(dsta,(m68k_dreg(regs, ru)));
5295: }else{m68k_dreg(regs, rc) = dst;
5296: }}}}}}}}m68k_incpc(6);
5297: return 28;
5298: }
5299: unsigned long REGPARAM2 CPUFUNC(op_ef9_0)(uae_u32 opcode) /* CAS */
5300: {
5301: OpcodeFamily = 84; CurrentInstrCycles = 32;
5302: {{ uae_s16 src = get_iword(2);
5303: { uaecptr dsta = get_ilong(4);
5304: { uae_s32 dst = get_long(dsta);
5305: { int ru = (src >> 6) & 7;
5306: int rc = src & 7;
5307: {uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(m68k_dreg(regs, rc)));
5308: { int flgs = ((uae_s32)(m68k_dreg(regs, rc))) < 0;
5309: int flgo = ((uae_s32)(dst)) < 0;
5310: int flgn = ((uae_s32)(newv)) < 0;
5311: SET_ZFLG (((uae_s32)(newv)) == 0);
5312: SET_VFLG ((flgs != flgo) && (flgn != flgo));
5313: SET_CFLG (((uae_u32)(m68k_dreg(regs, rc))) > ((uae_u32)(dst)));
5314: SET_NFLG (flgn != 0);
5315: if (GET_ZFLG){ put_long(dsta,(m68k_dreg(regs, ru)));
5316: }else{m68k_dreg(regs, rc) = dst;
5317: }}}}}}}}m68k_incpc(8);
5318: return 32;
5319: }
5320: unsigned long REGPARAM2 CPUFUNC(op_efc_0)(uae_u32 opcode) /* CAS2 */
5321: {
5322: OpcodeFamily = 85; CurrentInstrCycles = 12;
5323: {{ uae_s32 extra = get_ilong(2);
5324: uae_u32 rn1 = regs.regs[(extra >> 28) & 15];
5325: uae_u32 rn2 = regs.regs[(extra >> 12) & 15];
5326: uae_u32 dst1 = get_long(rn1), dst2 = get_long(rn2);
5327: {uae_u32 newv = ((uae_s32)(dst1)) - ((uae_s32)(m68k_dreg(regs, (extra >> 16) & 7)));
5328: { int flgs = ((uae_s32)(m68k_dreg(regs, (extra >> 16) & 7))) < 0;
5329: int flgo = ((uae_s32)(dst1)) < 0;
5330: int flgn = ((uae_s32)(newv)) < 0;
5331: SET_ZFLG (((uae_s32)(newv)) == 0);
5332: SET_VFLG ((flgs != flgo) && (flgn != flgo));
5333: SET_CFLG (((uae_u32)(m68k_dreg(regs, (extra >> 16) & 7))) > ((uae_u32)(dst1)));
5334: SET_NFLG (flgn != 0);
5335: if (GET_ZFLG) {
5336: {uae_u32 newv = ((uae_s32)(dst2)) - ((uae_s32)(m68k_dreg(regs, extra & 7)));
5337: { int flgs = ((uae_s32)(m68k_dreg(regs, extra & 7))) < 0;
5338: int flgo = ((uae_s32)(dst2)) < 0;
5339: int flgn = ((uae_s32)(newv)) < 0;
5340: SET_ZFLG (((uae_s32)(newv)) == 0);
5341: SET_VFLG ((flgs != flgo) && (flgn != flgo));
5342: SET_CFLG (((uae_u32)(m68k_dreg(regs, extra & 7))) > ((uae_u32)(dst2)));
5343: SET_NFLG (flgn != 0);
5344: if (GET_ZFLG) {
5345: put_long(rn1, m68k_dreg(regs, (extra >> 22) & 7));
5346: put_long(rn1, m68k_dreg(regs, (extra >> 6) & 7));
5347: }}
5348: }}}} if (! GET_ZFLG) {
5349: m68k_dreg(regs, (extra >> 22) & 7) = dst1;
5350: m68k_dreg(regs, (extra >> 6) & 7) = dst2;
5351: }
5352: }}m68k_incpc(6);
5353: return 12;
5354: }
5355: unsigned long REGPARAM2 CPUFUNC(op_1000_0)(uae_u32 opcode) /* MOVE */
5356: {
5357: uae_u32 srcreg = (opcode & 7);
5358: uae_u32 dstreg = (opcode >> 9) & 7;
5359: OpcodeFamily = 30; CurrentInstrCycles = 4;
5360: {{ uae_s8 src = m68k_dreg(regs, srcreg);
5361: { CLEAR_CZNV;
5362: SET_ZFLG (((uae_s8)(src)) == 0);
5363: SET_NFLG (((uae_s8)(src)) < 0);
5364: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
5365: }}}m68k_incpc(2);
5366: return 4;
5367: }
5368: unsigned long REGPARAM2 CPUFUNC(op_1008_0)(uae_u32 opcode) /* MOVE */
5369: {
5370: uae_u32 srcreg = (opcode & 7);
5371: uae_u32 dstreg = (opcode >> 9) & 7;
5372: OpcodeFamily = 30; CurrentInstrCycles = 4;
5373: {{ uae_s8 src = m68k_areg(regs, srcreg);
5374: { CLEAR_CZNV;
5375: SET_ZFLG (((uae_s8)(src)) == 0);
5376: SET_NFLG (((uae_s8)(src)) < 0);
5377: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
5378: }}}m68k_incpc(2);
5379: return 4;
5380: }
5381: unsigned long REGPARAM2 CPUFUNC(op_1010_0)(uae_u32 opcode) /* MOVE */
5382: {
5383: uae_u32 srcreg = (opcode & 7);
5384: uae_u32 dstreg = (opcode >> 9) & 7;
5385: OpcodeFamily = 30; CurrentInstrCycles = 8;
5386: {{ uaecptr srca = m68k_areg(regs, srcreg);
5387: { uae_s8 src = get_byte(srca);
5388: { CLEAR_CZNV;
5389: SET_ZFLG (((uae_s8)(src)) == 0);
5390: SET_NFLG (((uae_s8)(src)) < 0);
5391: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
5392: }}}}m68k_incpc(2);
5393: return 8;
5394: }
5395: unsigned long REGPARAM2 CPUFUNC(op_1018_0)(uae_u32 opcode) /* MOVE */
5396: {
5397: uae_u32 srcreg = (opcode & 7);
5398: uae_u32 dstreg = (opcode >> 9) & 7;
5399: OpcodeFamily = 30; CurrentInstrCycles = 8;
5400: {{ uaecptr srca = m68k_areg(regs, srcreg);
5401: { uae_s8 src = get_byte(srca);
5402: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
5403: { CLEAR_CZNV;
5404: SET_ZFLG (((uae_s8)(src)) == 0);
5405: SET_NFLG (((uae_s8)(src)) < 0);
5406: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
5407: }}}}m68k_incpc(2);
5408: return 8;
5409: }
5410: unsigned long REGPARAM2 CPUFUNC(op_1020_0)(uae_u32 opcode) /* MOVE */
5411: {
5412: uae_u32 srcreg = (opcode & 7);
5413: uae_u32 dstreg = (opcode >> 9) & 7;
5414: OpcodeFamily = 30; CurrentInstrCycles = 10;
5415: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
5416: { uae_s8 src = get_byte(srca);
5417: m68k_areg (regs, srcreg) = srca;
5418: { CLEAR_CZNV;
5419: SET_ZFLG (((uae_s8)(src)) == 0);
5420: SET_NFLG (((uae_s8)(src)) < 0);
5421: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
5422: }}}}m68k_incpc(2);
5423: return 10;
5424: }
5425: unsigned long REGPARAM2 CPUFUNC(op_1028_0)(uae_u32 opcode) /* MOVE */
5426: {
5427: uae_u32 srcreg = (opcode & 7);
5428: uae_u32 dstreg = (opcode >> 9) & 7;
5429: OpcodeFamily = 30; CurrentInstrCycles = 12;
5430: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
5431: { uae_s8 src = get_byte(srca);
5432: { CLEAR_CZNV;
5433: SET_ZFLG (((uae_s8)(src)) == 0);
5434: SET_NFLG (((uae_s8)(src)) < 0);
5435: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
5436: }}}}m68k_incpc(4);
5437: return 12;
5438: }
5439: unsigned long REGPARAM2 CPUFUNC(op_1030_0)(uae_u32 opcode) /* MOVE */
5440: {
5441: uae_u32 srcreg = (opcode & 7);
5442: uae_u32 dstreg = (opcode >> 9) & 7;
5443: OpcodeFamily = 30; CurrentInstrCycles = 14;
5444: {{m68k_incpc(2);
5445: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
5446: BusCyclePenalty += 2;
5447: { uae_s8 src = get_byte(srca);
5448: { CLEAR_CZNV;
5449: SET_ZFLG (((uae_s8)(src)) == 0);
5450: SET_NFLG (((uae_s8)(src)) < 0);
5451: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
5452: }}}}}return 14;
5453: }
5454: unsigned long REGPARAM2 CPUFUNC(op_1038_0)(uae_u32 opcode) /* MOVE */
5455: {
5456: uae_u32 dstreg = (opcode >> 9) & 7;
5457: OpcodeFamily = 30; CurrentInstrCycles = 12;
5458: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
5459: { uae_s8 src = get_byte(srca);
5460: { CLEAR_CZNV;
5461: SET_ZFLG (((uae_s8)(src)) == 0);
5462: SET_NFLG (((uae_s8)(src)) < 0);
5463: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
5464: }}}}m68k_incpc(4);
5465: return 12;
5466: }
5467: unsigned long REGPARAM2 CPUFUNC(op_1039_0)(uae_u32 opcode) /* MOVE */
5468: {
5469: uae_u32 dstreg = (opcode >> 9) & 7;
5470: OpcodeFamily = 30; CurrentInstrCycles = 16;
5471: {{ uaecptr srca = get_ilong(2);
5472: { uae_s8 src = get_byte(srca);
5473: { CLEAR_CZNV;
5474: SET_ZFLG (((uae_s8)(src)) == 0);
5475: SET_NFLG (((uae_s8)(src)) < 0);
5476: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
5477: }}}}m68k_incpc(6);
5478: return 16;
5479: }
5480: unsigned long REGPARAM2 CPUFUNC(op_103a_0)(uae_u32 opcode) /* MOVE */
5481: {
5482: uae_u32 dstreg = (opcode >> 9) & 7;
5483: OpcodeFamily = 30; CurrentInstrCycles = 12;
5484: {{ uaecptr srca = m68k_getpc () + 2;
5485: srca += (uae_s32)(uae_s16)get_iword(2);
5486: { uae_s8 src = get_byte(srca);
5487: { CLEAR_CZNV;
5488: SET_ZFLG (((uae_s8)(src)) == 0);
5489: SET_NFLG (((uae_s8)(src)) < 0);
5490: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
5491: }}}}m68k_incpc(4);
5492: return 12;
5493: }
5494: unsigned long REGPARAM2 CPUFUNC(op_103b_0)(uae_u32 opcode) /* MOVE */
5495: {
5496: uae_u32 dstreg = (opcode >> 9) & 7;
5497: OpcodeFamily = 30; CurrentInstrCycles = 14;
5498: {{m68k_incpc(2);
5499: { uaecptr tmppc = m68k_getpc();
5500: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
5501: BusCyclePenalty += 2;
5502: { uae_s8 src = get_byte(srca);
5503: { CLEAR_CZNV;
5504: SET_ZFLG (((uae_s8)(src)) == 0);
5505: SET_NFLG (((uae_s8)(src)) < 0);
5506: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
5507: }}}}}return 14;
5508: }
5509: unsigned long REGPARAM2 CPUFUNC(op_103c_0)(uae_u32 opcode) /* MOVE */
5510: {
5511: uae_u32 dstreg = (opcode >> 9) & 7;
5512: OpcodeFamily = 30; CurrentInstrCycles = 8;
5513: {{ uae_s8 src = get_ibyte(2);
5514: { CLEAR_CZNV;
5515: SET_ZFLG (((uae_s8)(src)) == 0);
5516: SET_NFLG (((uae_s8)(src)) < 0);
5517: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
5518: }}}m68k_incpc(4);
5519: return 8;
5520: }
5521: unsigned long REGPARAM2 CPUFUNC(op_1080_0)(uae_u32 opcode) /* MOVE */
5522: {
5523: uae_u32 srcreg = (opcode & 7);
5524: uae_u32 dstreg = (opcode >> 9) & 7;
5525: OpcodeFamily = 30; CurrentInstrCycles = 8;
5526: {{ uae_s8 src = m68k_dreg(regs, srcreg);
5527: { uaecptr dsta = m68k_areg(regs, dstreg);
5528: CLEAR_CZNV;
5529: SET_ZFLG (((uae_s8)(src)) == 0);
5530: SET_NFLG (((uae_s8)(src)) < 0);
5531: put_byte(dsta,src);
5532: }}}m68k_incpc(2);
5533: return 8;
5534: }
5535: unsigned long REGPARAM2 CPUFUNC(op_1088_0)(uae_u32 opcode) /* MOVE */
5536: {
5537: uae_u32 srcreg = (opcode & 7);
5538: uae_u32 dstreg = (opcode >> 9) & 7;
5539: OpcodeFamily = 30; CurrentInstrCycles = 8;
5540: {{ uae_s8 src = m68k_areg(regs, srcreg);
5541: { uaecptr dsta = m68k_areg(regs, dstreg);
5542: CLEAR_CZNV;
5543: SET_ZFLG (((uae_s8)(src)) == 0);
5544: SET_NFLG (((uae_s8)(src)) < 0);
5545: put_byte(dsta,src);
5546: }}}m68k_incpc(2);
5547: return 8;
5548: }
5549: unsigned long REGPARAM2 CPUFUNC(op_1090_0)(uae_u32 opcode) /* MOVE */
5550: {
5551: uae_u32 srcreg = (opcode & 7);
5552: uae_u32 dstreg = (opcode >> 9) & 7;
5553: OpcodeFamily = 30; CurrentInstrCycles = 12;
5554: {{ uaecptr srca = m68k_areg(regs, srcreg);
5555: { uae_s8 src = get_byte(srca);
5556: { uaecptr dsta = m68k_areg(regs, dstreg);
5557: CLEAR_CZNV;
5558: SET_ZFLG (((uae_s8)(src)) == 0);
5559: SET_NFLG (((uae_s8)(src)) < 0);
5560: put_byte(dsta,src);
5561: }}}}m68k_incpc(2);
5562: return 12;
5563: }
5564: unsigned long REGPARAM2 CPUFUNC(op_1098_0)(uae_u32 opcode) /* MOVE */
5565: {
5566: uae_u32 srcreg = (opcode & 7);
5567: uae_u32 dstreg = (opcode >> 9) & 7;
5568: OpcodeFamily = 30; CurrentInstrCycles = 12;
5569: {{ uaecptr srca = m68k_areg(regs, srcreg);
5570: { uae_s8 src = get_byte(srca);
5571: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
5572: { uaecptr dsta = m68k_areg(regs, dstreg);
5573: CLEAR_CZNV;
5574: SET_ZFLG (((uae_s8)(src)) == 0);
5575: SET_NFLG (((uae_s8)(src)) < 0);
5576: put_byte(dsta,src);
5577: }}}}m68k_incpc(2);
5578: return 12;
5579: }
5580: unsigned long REGPARAM2 CPUFUNC(op_10a0_0)(uae_u32 opcode) /* MOVE */
5581: {
5582: uae_u32 srcreg = (opcode & 7);
5583: uae_u32 dstreg = (opcode >> 9) & 7;
5584: OpcodeFamily = 30; CurrentInstrCycles = 14;
5585: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
5586: { uae_s8 src = get_byte(srca);
5587: m68k_areg (regs, srcreg) = srca;
5588: { uaecptr dsta = m68k_areg(regs, dstreg);
5589: CLEAR_CZNV;
5590: SET_ZFLG (((uae_s8)(src)) == 0);
5591: SET_NFLG (((uae_s8)(src)) < 0);
5592: put_byte(dsta,src);
5593: }}}}m68k_incpc(2);
5594: return 14;
5595: }
5596: unsigned long REGPARAM2 CPUFUNC(op_10a8_0)(uae_u32 opcode) /* MOVE */
5597: {
5598: uae_u32 srcreg = (opcode & 7);
5599: uae_u32 dstreg = (opcode >> 9) & 7;
5600: OpcodeFamily = 30; CurrentInstrCycles = 16;
5601: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
5602: { uae_s8 src = get_byte(srca);
5603: { uaecptr dsta = m68k_areg(regs, dstreg);
5604: CLEAR_CZNV;
5605: SET_ZFLG (((uae_s8)(src)) == 0);
5606: SET_NFLG (((uae_s8)(src)) < 0);
5607: put_byte(dsta,src);
5608: }}}}m68k_incpc(4);
5609: return 16;
5610: }
5611: unsigned long REGPARAM2 CPUFUNC(op_10b0_0)(uae_u32 opcode) /* MOVE */
5612: {
5613: uae_u32 srcreg = (opcode & 7);
5614: uae_u32 dstreg = (opcode >> 9) & 7;
5615: OpcodeFamily = 30; CurrentInstrCycles = 18;
5616: {{m68k_incpc(2);
5617: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
5618: BusCyclePenalty += 2;
5619: { uae_s8 src = get_byte(srca);
5620: { uaecptr dsta = m68k_areg(regs, dstreg);
5621: CLEAR_CZNV;
5622: SET_ZFLG (((uae_s8)(src)) == 0);
5623: SET_NFLG (((uae_s8)(src)) < 0);
5624: put_byte(dsta,src);
5625: }}}}}return 18;
5626: }
5627: unsigned long REGPARAM2 CPUFUNC(op_10b8_0)(uae_u32 opcode) /* MOVE */
5628: {
5629: uae_u32 dstreg = (opcode >> 9) & 7;
5630: OpcodeFamily = 30; CurrentInstrCycles = 16;
5631: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
5632: { uae_s8 src = get_byte(srca);
5633: { uaecptr dsta = m68k_areg(regs, dstreg);
5634: CLEAR_CZNV;
5635: SET_ZFLG (((uae_s8)(src)) == 0);
5636: SET_NFLG (((uae_s8)(src)) < 0);
5637: put_byte(dsta,src);
5638: }}}}m68k_incpc(4);
5639: return 16;
5640: }
5641: unsigned long REGPARAM2 CPUFUNC(op_10b9_0)(uae_u32 opcode) /* MOVE */
5642: {
5643: uae_u32 dstreg = (opcode >> 9) & 7;
5644: OpcodeFamily = 30; CurrentInstrCycles = 20;
5645: {{ uaecptr srca = get_ilong(2);
5646: { uae_s8 src = get_byte(srca);
5647: { uaecptr dsta = m68k_areg(regs, dstreg);
5648: CLEAR_CZNV;
5649: SET_ZFLG (((uae_s8)(src)) == 0);
5650: SET_NFLG (((uae_s8)(src)) < 0);
5651: put_byte(dsta,src);
5652: }}}}m68k_incpc(6);
5653: return 20;
5654: }
5655: unsigned long REGPARAM2 CPUFUNC(op_10ba_0)(uae_u32 opcode) /* MOVE */
5656: {
5657: uae_u32 dstreg = (opcode >> 9) & 7;
5658: OpcodeFamily = 30; CurrentInstrCycles = 16;
5659: {{ uaecptr srca = m68k_getpc () + 2;
5660: srca += (uae_s32)(uae_s16)get_iword(2);
5661: { uae_s8 src = get_byte(srca);
5662: { uaecptr dsta = m68k_areg(regs, dstreg);
5663: CLEAR_CZNV;
5664: SET_ZFLG (((uae_s8)(src)) == 0);
5665: SET_NFLG (((uae_s8)(src)) < 0);
5666: put_byte(dsta,src);
5667: }}}}m68k_incpc(4);
5668: return 16;
5669: }
5670: unsigned long REGPARAM2 CPUFUNC(op_10bb_0)(uae_u32 opcode) /* MOVE */
5671: {
5672: uae_u32 dstreg = (opcode >> 9) & 7;
5673: OpcodeFamily = 30; CurrentInstrCycles = 18;
5674: {{m68k_incpc(2);
5675: { uaecptr tmppc = m68k_getpc();
5676: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
5677: BusCyclePenalty += 2;
5678: { uae_s8 src = get_byte(srca);
5679: { uaecptr dsta = m68k_areg(regs, dstreg);
5680: CLEAR_CZNV;
5681: SET_ZFLG (((uae_s8)(src)) == 0);
5682: SET_NFLG (((uae_s8)(src)) < 0);
5683: put_byte(dsta,src);
5684: }}}}}return 18;
5685: }
5686: unsigned long REGPARAM2 CPUFUNC(op_10bc_0)(uae_u32 opcode) /* MOVE */
5687: {
5688: uae_u32 dstreg = (opcode >> 9) & 7;
5689: OpcodeFamily = 30; CurrentInstrCycles = 12;
5690: {{ uae_s8 src = get_ibyte(2);
5691: { uaecptr dsta = m68k_areg(regs, dstreg);
5692: CLEAR_CZNV;
5693: SET_ZFLG (((uae_s8)(src)) == 0);
5694: SET_NFLG (((uae_s8)(src)) < 0);
5695: put_byte(dsta,src);
5696: }}}m68k_incpc(4);
5697: return 12;
5698: }
5699: unsigned long REGPARAM2 CPUFUNC(op_10c0_0)(uae_u32 opcode) /* MOVE */
5700: {
5701: uae_u32 srcreg = (opcode & 7);
5702: uae_u32 dstreg = (opcode >> 9) & 7;
5703: OpcodeFamily = 30; CurrentInstrCycles = 8;
5704: {{ uae_s8 src = m68k_dreg(regs, srcreg);
5705: { uaecptr dsta = m68k_areg(regs, dstreg);
5706: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
5707: CLEAR_CZNV;
5708: SET_ZFLG (((uae_s8)(src)) == 0);
5709: SET_NFLG (((uae_s8)(src)) < 0);
5710: put_byte(dsta,src);
5711: }}}m68k_incpc(2);
5712: return 8;
5713: }
5714: unsigned long REGPARAM2 CPUFUNC(op_10c8_0)(uae_u32 opcode) /* MOVE */
5715: {
5716: uae_u32 srcreg = (opcode & 7);
5717: uae_u32 dstreg = (opcode >> 9) & 7;
5718: OpcodeFamily = 30; CurrentInstrCycles = 8;
5719: {{ uae_s8 src = m68k_areg(regs, srcreg);
5720: { uaecptr dsta = m68k_areg(regs, dstreg);
5721: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
5722: CLEAR_CZNV;
5723: SET_ZFLG (((uae_s8)(src)) == 0);
5724: SET_NFLG (((uae_s8)(src)) < 0);
5725: put_byte(dsta,src);
5726: }}}m68k_incpc(2);
5727: return 8;
5728: }
5729: unsigned long REGPARAM2 CPUFUNC(op_10d0_0)(uae_u32 opcode) /* MOVE */
5730: {
5731: uae_u32 srcreg = (opcode & 7);
5732: uae_u32 dstreg = (opcode >> 9) & 7;
5733: OpcodeFamily = 30; CurrentInstrCycles = 12;
5734: {{ uaecptr srca = m68k_areg(regs, srcreg);
5735: { uae_s8 src = get_byte(srca);
5736: { uaecptr dsta = m68k_areg(regs, dstreg);
5737: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
5738: CLEAR_CZNV;
5739: SET_ZFLG (((uae_s8)(src)) == 0);
5740: SET_NFLG (((uae_s8)(src)) < 0);
5741: put_byte(dsta,src);
5742: }}}}m68k_incpc(2);
5743: return 12;
5744: }
5745: unsigned long REGPARAM2 CPUFUNC(op_10d8_0)(uae_u32 opcode) /* MOVE */
5746: {
5747: uae_u32 srcreg = (opcode & 7);
5748: uae_u32 dstreg = (opcode >> 9) & 7;
5749: OpcodeFamily = 30; CurrentInstrCycles = 12;
5750: {{ uaecptr srca = m68k_areg(regs, srcreg);
5751: { uae_s8 src = get_byte(srca);
5752: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
5753: { uaecptr dsta = m68k_areg(regs, dstreg);
5754: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
5755: CLEAR_CZNV;
5756: SET_ZFLG (((uae_s8)(src)) == 0);
5757: SET_NFLG (((uae_s8)(src)) < 0);
5758: put_byte(dsta,src);
5759: }}}}m68k_incpc(2);
5760: return 12;
5761: }
5762: unsigned long REGPARAM2 CPUFUNC(op_10e0_0)(uae_u32 opcode) /* MOVE */
5763: {
5764: uae_u32 srcreg = (opcode & 7);
5765: uae_u32 dstreg = (opcode >> 9) & 7;
5766: OpcodeFamily = 30; CurrentInstrCycles = 14;
5767: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
5768: { uae_s8 src = get_byte(srca);
5769: m68k_areg (regs, srcreg) = srca;
5770: { uaecptr dsta = m68k_areg(regs, dstreg);
5771: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
5772: CLEAR_CZNV;
5773: SET_ZFLG (((uae_s8)(src)) == 0);
5774: SET_NFLG (((uae_s8)(src)) < 0);
5775: put_byte(dsta,src);
5776: }}}}m68k_incpc(2);
5777: return 14;
5778: }
5779: unsigned long REGPARAM2 CPUFUNC(op_10e8_0)(uae_u32 opcode) /* MOVE */
5780: {
5781: uae_u32 srcreg = (opcode & 7);
5782: uae_u32 dstreg = (opcode >> 9) & 7;
5783: OpcodeFamily = 30; CurrentInstrCycles = 16;
5784: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
5785: { uae_s8 src = get_byte(srca);
5786: { uaecptr dsta = m68k_areg(regs, dstreg);
5787: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
5788: CLEAR_CZNV;
5789: SET_ZFLG (((uae_s8)(src)) == 0);
5790: SET_NFLG (((uae_s8)(src)) < 0);
5791: put_byte(dsta,src);
5792: }}}}m68k_incpc(4);
5793: return 16;
5794: }
5795: unsigned long REGPARAM2 CPUFUNC(op_10f0_0)(uae_u32 opcode) /* MOVE */
5796: {
5797: uae_u32 srcreg = (opcode & 7);
5798: uae_u32 dstreg = (opcode >> 9) & 7;
5799: OpcodeFamily = 30; CurrentInstrCycles = 18;
5800: {{m68k_incpc(2);
5801: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
5802: BusCyclePenalty += 2;
5803: { uae_s8 src = get_byte(srca);
5804: { uaecptr dsta = m68k_areg(regs, dstreg);
5805: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
5806: CLEAR_CZNV;
5807: SET_ZFLG (((uae_s8)(src)) == 0);
5808: SET_NFLG (((uae_s8)(src)) < 0);
5809: put_byte(dsta,src);
5810: }}}}}return 18;
5811: }
5812: unsigned long REGPARAM2 CPUFUNC(op_10f8_0)(uae_u32 opcode) /* MOVE */
5813: {
5814: uae_u32 dstreg = (opcode >> 9) & 7;
5815: OpcodeFamily = 30; CurrentInstrCycles = 16;
5816: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
5817: { uae_s8 src = get_byte(srca);
5818: { uaecptr dsta = m68k_areg(regs, dstreg);
5819: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
5820: CLEAR_CZNV;
5821: SET_ZFLG (((uae_s8)(src)) == 0);
5822: SET_NFLG (((uae_s8)(src)) < 0);
5823: put_byte(dsta,src);
5824: }}}}m68k_incpc(4);
5825: return 16;
5826: }
5827: unsigned long REGPARAM2 CPUFUNC(op_10f9_0)(uae_u32 opcode) /* MOVE */
5828: {
5829: uae_u32 dstreg = (opcode >> 9) & 7;
5830: OpcodeFamily = 30; CurrentInstrCycles = 20;
5831: {{ uaecptr srca = get_ilong(2);
5832: { uae_s8 src = get_byte(srca);
5833: { uaecptr dsta = m68k_areg(regs, dstreg);
5834: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
5835: CLEAR_CZNV;
5836: SET_ZFLG (((uae_s8)(src)) == 0);
5837: SET_NFLG (((uae_s8)(src)) < 0);
5838: put_byte(dsta,src);
5839: }}}}m68k_incpc(6);
5840: return 20;
5841: }
5842: unsigned long REGPARAM2 CPUFUNC(op_10fa_0)(uae_u32 opcode) /* MOVE */
5843: {
5844: uae_u32 dstreg = (opcode >> 9) & 7;
5845: OpcodeFamily = 30; CurrentInstrCycles = 16;
5846: {{ uaecptr srca = m68k_getpc () + 2;
5847: srca += (uae_s32)(uae_s16)get_iword(2);
5848: { uae_s8 src = get_byte(srca);
5849: { uaecptr dsta = m68k_areg(regs, dstreg);
5850: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
5851: CLEAR_CZNV;
5852: SET_ZFLG (((uae_s8)(src)) == 0);
5853: SET_NFLG (((uae_s8)(src)) < 0);
5854: put_byte(dsta,src);
5855: }}}}m68k_incpc(4);
5856: return 16;
5857: }
5858: unsigned long REGPARAM2 CPUFUNC(op_10fb_0)(uae_u32 opcode) /* MOVE */
5859: {
5860: uae_u32 dstreg = (opcode >> 9) & 7;
5861: OpcodeFamily = 30; CurrentInstrCycles = 18;
5862: {{m68k_incpc(2);
5863: { uaecptr tmppc = m68k_getpc();
5864: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
5865: BusCyclePenalty += 2;
5866: { uae_s8 src = get_byte(srca);
5867: { uaecptr dsta = m68k_areg(regs, dstreg);
5868: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
5869: CLEAR_CZNV;
5870: SET_ZFLG (((uae_s8)(src)) == 0);
5871: SET_NFLG (((uae_s8)(src)) < 0);
5872: put_byte(dsta,src);
5873: }}}}}return 18;
5874: }
5875: unsigned long REGPARAM2 CPUFUNC(op_10fc_0)(uae_u32 opcode) /* MOVE */
5876: {
5877: uae_u32 dstreg = (opcode >> 9) & 7;
5878: OpcodeFamily = 30; CurrentInstrCycles = 12;
5879: {{ uae_s8 src = get_ibyte(2);
5880: { uaecptr dsta = m68k_areg(regs, dstreg);
5881: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
5882: CLEAR_CZNV;
5883: SET_ZFLG (((uae_s8)(src)) == 0);
5884: SET_NFLG (((uae_s8)(src)) < 0);
5885: put_byte(dsta,src);
5886: }}}m68k_incpc(4);
5887: return 12;
5888: }
5889: unsigned long REGPARAM2 CPUFUNC(op_1100_0)(uae_u32 opcode) /* MOVE */
5890: {
5891: uae_u32 srcreg = (opcode & 7);
5892: uae_u32 dstreg = (opcode >> 9) & 7;
5893: OpcodeFamily = 30; CurrentInstrCycles = 8;
5894: {{ uae_s8 src = m68k_dreg(regs, srcreg);
5895: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
5896: m68k_areg (regs, dstreg) = dsta;
5897: CLEAR_CZNV;
5898: SET_ZFLG (((uae_s8)(src)) == 0);
5899: SET_NFLG (((uae_s8)(src)) < 0);
5900: put_byte(dsta,src);
5901: }}}m68k_incpc(2);
5902: return 8;
5903: }
5904: unsigned long REGPARAM2 CPUFUNC(op_1108_0)(uae_u32 opcode) /* MOVE */
5905: {
5906: uae_u32 srcreg = (opcode & 7);
5907: uae_u32 dstreg = (opcode >> 9) & 7;
5908: OpcodeFamily = 30; CurrentInstrCycles = 8;
5909: {{ uae_s8 src = m68k_areg(regs, srcreg);
5910: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
5911: m68k_areg (regs, dstreg) = dsta;
5912: CLEAR_CZNV;
5913: SET_ZFLG (((uae_s8)(src)) == 0);
5914: SET_NFLG (((uae_s8)(src)) < 0);
5915: put_byte(dsta,src);
5916: }}}m68k_incpc(2);
5917: return 8;
5918: }
5919: unsigned long REGPARAM2 CPUFUNC(op_1110_0)(uae_u32 opcode) /* MOVE */
5920: {
5921: uae_u32 srcreg = (opcode & 7);
5922: uae_u32 dstreg = (opcode >> 9) & 7;
5923: OpcodeFamily = 30; CurrentInstrCycles = 12;
5924: {{ uaecptr srca = m68k_areg(regs, srcreg);
5925: { uae_s8 src = get_byte(srca);
5926: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
5927: m68k_areg (regs, dstreg) = dsta;
5928: CLEAR_CZNV;
5929: SET_ZFLG (((uae_s8)(src)) == 0);
5930: SET_NFLG (((uae_s8)(src)) < 0);
5931: put_byte(dsta,src);
5932: }}}}m68k_incpc(2);
5933: return 12;
5934: }
5935: unsigned long REGPARAM2 CPUFUNC(op_1118_0)(uae_u32 opcode) /* MOVE */
5936: {
5937: uae_u32 srcreg = (opcode & 7);
5938: uae_u32 dstreg = (opcode >> 9) & 7;
5939: OpcodeFamily = 30; CurrentInstrCycles = 12;
5940: {{ uaecptr srca = m68k_areg(regs, srcreg);
5941: { uae_s8 src = get_byte(srca);
5942: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
5943: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
5944: m68k_areg (regs, dstreg) = dsta;
5945: CLEAR_CZNV;
5946: SET_ZFLG (((uae_s8)(src)) == 0);
5947: SET_NFLG (((uae_s8)(src)) < 0);
5948: put_byte(dsta,src);
5949: }}}}m68k_incpc(2);
5950: return 12;
5951: }
5952: unsigned long REGPARAM2 CPUFUNC(op_1120_0)(uae_u32 opcode) /* MOVE */
5953: {
5954: uae_u32 srcreg = (opcode & 7);
5955: uae_u32 dstreg = (opcode >> 9) & 7;
5956: OpcodeFamily = 30; CurrentInstrCycles = 14;
5957: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
5958: { uae_s8 src = get_byte(srca);
5959: m68k_areg (regs, srcreg) = srca;
5960: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
5961: m68k_areg (regs, dstreg) = dsta;
5962: CLEAR_CZNV;
5963: SET_ZFLG (((uae_s8)(src)) == 0);
5964: SET_NFLG (((uae_s8)(src)) < 0);
5965: put_byte(dsta,src);
5966: }}}}m68k_incpc(2);
5967: return 14;
5968: }
5969: unsigned long REGPARAM2 CPUFUNC(op_1128_0)(uae_u32 opcode) /* MOVE */
5970: {
5971: uae_u32 srcreg = (opcode & 7);
5972: uae_u32 dstreg = (opcode >> 9) & 7;
5973: OpcodeFamily = 30; CurrentInstrCycles = 16;
5974: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
5975: { uae_s8 src = get_byte(srca);
5976: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
5977: m68k_areg (regs, dstreg) = dsta;
5978: CLEAR_CZNV;
5979: SET_ZFLG (((uae_s8)(src)) == 0);
5980: SET_NFLG (((uae_s8)(src)) < 0);
5981: put_byte(dsta,src);
5982: }}}}m68k_incpc(4);
5983: return 16;
5984: }
5985: unsigned long REGPARAM2 CPUFUNC(op_1130_0)(uae_u32 opcode) /* MOVE */
5986: {
5987: uae_u32 srcreg = (opcode & 7);
5988: uae_u32 dstreg = (opcode >> 9) & 7;
5989: OpcodeFamily = 30; CurrentInstrCycles = 18;
5990: {{m68k_incpc(2);
5991: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
5992: BusCyclePenalty += 2;
5993: { uae_s8 src = get_byte(srca);
5994: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
5995: m68k_areg (regs, dstreg) = dsta;
5996: CLEAR_CZNV;
5997: SET_ZFLG (((uae_s8)(src)) == 0);
5998: SET_NFLG (((uae_s8)(src)) < 0);
5999: put_byte(dsta,src);
6000: }}}}}return 18;
6001: }
6002: unsigned long REGPARAM2 CPUFUNC(op_1138_0)(uae_u32 opcode) /* MOVE */
6003: {
6004: uae_u32 dstreg = (opcode >> 9) & 7;
6005: OpcodeFamily = 30; CurrentInstrCycles = 16;
6006: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
6007: { uae_s8 src = get_byte(srca);
6008: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
6009: m68k_areg (regs, dstreg) = dsta;
6010: CLEAR_CZNV;
6011: SET_ZFLG (((uae_s8)(src)) == 0);
6012: SET_NFLG (((uae_s8)(src)) < 0);
6013: put_byte(dsta,src);
6014: }}}}m68k_incpc(4);
6015: return 16;
6016: }
6017: unsigned long REGPARAM2 CPUFUNC(op_1139_0)(uae_u32 opcode) /* MOVE */
6018: {
6019: uae_u32 dstreg = (opcode >> 9) & 7;
6020: OpcodeFamily = 30; CurrentInstrCycles = 20;
6021: {{ uaecptr srca = get_ilong(2);
6022: { uae_s8 src = get_byte(srca);
6023: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
6024: m68k_areg (regs, dstreg) = dsta;
6025: CLEAR_CZNV;
6026: SET_ZFLG (((uae_s8)(src)) == 0);
6027: SET_NFLG (((uae_s8)(src)) < 0);
6028: put_byte(dsta,src);
6029: }}}}m68k_incpc(6);
6030: return 20;
6031: }
6032: unsigned long REGPARAM2 CPUFUNC(op_113a_0)(uae_u32 opcode) /* MOVE */
6033: {
6034: uae_u32 dstreg = (opcode >> 9) & 7;
6035: OpcodeFamily = 30; CurrentInstrCycles = 16;
6036: {{ uaecptr srca = m68k_getpc () + 2;
6037: srca += (uae_s32)(uae_s16)get_iword(2);
6038: { uae_s8 src = get_byte(srca);
6039: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
6040: m68k_areg (regs, dstreg) = dsta;
6041: CLEAR_CZNV;
6042: SET_ZFLG (((uae_s8)(src)) == 0);
6043: SET_NFLG (((uae_s8)(src)) < 0);
6044: put_byte(dsta,src);
6045: }}}}m68k_incpc(4);
6046: return 16;
6047: }
6048: unsigned long REGPARAM2 CPUFUNC(op_113b_0)(uae_u32 opcode) /* MOVE */
6049: {
6050: uae_u32 dstreg = (opcode >> 9) & 7;
6051: OpcodeFamily = 30; CurrentInstrCycles = 18;
6052: {{m68k_incpc(2);
6053: { uaecptr tmppc = m68k_getpc();
6054: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
6055: BusCyclePenalty += 2;
6056: { uae_s8 src = get_byte(srca);
6057: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
6058: m68k_areg (regs, dstreg) = dsta;
6059: CLEAR_CZNV;
6060: SET_ZFLG (((uae_s8)(src)) == 0);
6061: SET_NFLG (((uae_s8)(src)) < 0);
6062: put_byte(dsta,src);
6063: }}}}}return 18;
6064: }
6065: unsigned long REGPARAM2 CPUFUNC(op_113c_0)(uae_u32 opcode) /* MOVE */
6066: {
6067: uae_u32 dstreg = (opcode >> 9) & 7;
6068: OpcodeFamily = 30; CurrentInstrCycles = 12;
6069: {{ uae_s8 src = get_ibyte(2);
6070: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
6071: m68k_areg (regs, dstreg) = dsta;
6072: CLEAR_CZNV;
6073: SET_ZFLG (((uae_s8)(src)) == 0);
6074: SET_NFLG (((uae_s8)(src)) < 0);
6075: put_byte(dsta,src);
6076: }}}m68k_incpc(4);
6077: return 12;
6078: }
6079: unsigned long REGPARAM2 CPUFUNC(op_1140_0)(uae_u32 opcode) /* MOVE */
6080: {
6081: uae_u32 srcreg = (opcode & 7);
6082: uae_u32 dstreg = (opcode >> 9) & 7;
6083: OpcodeFamily = 30; CurrentInstrCycles = 12;
6084: {{ uae_s8 src = m68k_dreg(regs, srcreg);
6085: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
6086: CLEAR_CZNV;
6087: SET_ZFLG (((uae_s8)(src)) == 0);
6088: SET_NFLG (((uae_s8)(src)) < 0);
6089: put_byte(dsta,src);
6090: }}}m68k_incpc(4);
6091: return 12;
6092: }
6093: unsigned long REGPARAM2 CPUFUNC(op_1148_0)(uae_u32 opcode) /* MOVE */
6094: {
6095: uae_u32 srcreg = (opcode & 7);
6096: uae_u32 dstreg = (opcode >> 9) & 7;
6097: OpcodeFamily = 30; CurrentInstrCycles = 12;
6098: {{ uae_s8 src = m68k_areg(regs, srcreg);
6099: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
6100: CLEAR_CZNV;
6101: SET_ZFLG (((uae_s8)(src)) == 0);
6102: SET_NFLG (((uae_s8)(src)) < 0);
6103: put_byte(dsta,src);
6104: }}}m68k_incpc(4);
6105: return 12;
6106: }
6107: unsigned long REGPARAM2 CPUFUNC(op_1150_0)(uae_u32 opcode) /* MOVE */
6108: {
6109: uae_u32 srcreg = (opcode & 7);
6110: uae_u32 dstreg = (opcode >> 9) & 7;
6111: OpcodeFamily = 30; CurrentInstrCycles = 16;
6112: {{ uaecptr srca = m68k_areg(regs, srcreg);
6113: { uae_s8 src = get_byte(srca);
6114: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
6115: CLEAR_CZNV;
6116: SET_ZFLG (((uae_s8)(src)) == 0);
6117: SET_NFLG (((uae_s8)(src)) < 0);
6118: put_byte(dsta,src);
6119: }}}}m68k_incpc(4);
6120: return 16;
6121: }
6122: unsigned long REGPARAM2 CPUFUNC(op_1158_0)(uae_u32 opcode) /* MOVE */
6123: {
6124: uae_u32 srcreg = (opcode & 7);
6125: uae_u32 dstreg = (opcode >> 9) & 7;
6126: OpcodeFamily = 30; CurrentInstrCycles = 16;
6127: {{ uaecptr srca = m68k_areg(regs, srcreg);
6128: { uae_s8 src = get_byte(srca);
6129: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
6130: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
6131: CLEAR_CZNV;
6132: SET_ZFLG (((uae_s8)(src)) == 0);
6133: SET_NFLG (((uae_s8)(src)) < 0);
6134: put_byte(dsta,src);
6135: }}}}m68k_incpc(4);
6136: return 16;
6137: }
6138: unsigned long REGPARAM2 CPUFUNC(op_1160_0)(uae_u32 opcode) /* MOVE */
6139: {
6140: uae_u32 srcreg = (opcode & 7);
6141: uae_u32 dstreg = (opcode >> 9) & 7;
6142: OpcodeFamily = 30; CurrentInstrCycles = 18;
6143: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
6144: { uae_s8 src = get_byte(srca);
6145: m68k_areg (regs, srcreg) = srca;
6146: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
6147: CLEAR_CZNV;
6148: SET_ZFLG (((uae_s8)(src)) == 0);
6149: SET_NFLG (((uae_s8)(src)) < 0);
6150: put_byte(dsta,src);
6151: }}}}m68k_incpc(4);
6152: return 18;
6153: }
6154: unsigned long REGPARAM2 CPUFUNC(op_1168_0)(uae_u32 opcode) /* MOVE */
6155: {
6156: uae_u32 srcreg = (opcode & 7);
6157: uae_u32 dstreg = (opcode >> 9) & 7;
6158: OpcodeFamily = 30; CurrentInstrCycles = 20;
6159: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
6160: { uae_s8 src = get_byte(srca);
6161: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
6162: CLEAR_CZNV;
6163: SET_ZFLG (((uae_s8)(src)) == 0);
6164: SET_NFLG (((uae_s8)(src)) < 0);
6165: put_byte(dsta,src);
6166: }}}}m68k_incpc(6);
6167: return 20;
6168: }
6169: unsigned long REGPARAM2 CPUFUNC(op_1170_0)(uae_u32 opcode) /* MOVE */
6170: {
6171: uae_u32 srcreg = (opcode & 7);
6172: uae_u32 dstreg = (opcode >> 9) & 7;
6173: OpcodeFamily = 30; CurrentInstrCycles = 22;
6174: {{m68k_incpc(2);
6175: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
6176: BusCyclePenalty += 2;
6177: { uae_s8 src = get_byte(srca);
6178: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(0);
6179: CLEAR_CZNV;
6180: SET_ZFLG (((uae_s8)(src)) == 0);
6181: SET_NFLG (((uae_s8)(src)) < 0);
6182: put_byte(dsta,src);
6183: }}}}}m68k_incpc(2);
6184: return 22;
6185: }
6186: unsigned long REGPARAM2 CPUFUNC(op_1178_0)(uae_u32 opcode) /* MOVE */
6187: {
6188: uae_u32 dstreg = (opcode >> 9) & 7;
6189: OpcodeFamily = 30; CurrentInstrCycles = 20;
6190: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
6191: { uae_s8 src = get_byte(srca);
6192: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
6193: CLEAR_CZNV;
6194: SET_ZFLG (((uae_s8)(src)) == 0);
6195: SET_NFLG (((uae_s8)(src)) < 0);
6196: put_byte(dsta,src);
6197: }}}}m68k_incpc(6);
6198: return 20;
6199: }
6200: unsigned long REGPARAM2 CPUFUNC(op_1179_0)(uae_u32 opcode) /* MOVE */
6201: {
6202: uae_u32 dstreg = (opcode >> 9) & 7;
6203: OpcodeFamily = 30; CurrentInstrCycles = 24;
6204: {{ uaecptr srca = get_ilong(2);
6205: { uae_s8 src = get_byte(srca);
6206: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6);
6207: CLEAR_CZNV;
6208: SET_ZFLG (((uae_s8)(src)) == 0);
6209: SET_NFLG (((uae_s8)(src)) < 0);
6210: put_byte(dsta,src);
6211: }}}}m68k_incpc(8);
6212: return 24;
6213: }
6214: unsigned long REGPARAM2 CPUFUNC(op_117a_0)(uae_u32 opcode) /* MOVE */
6215: {
6216: uae_u32 dstreg = (opcode >> 9) & 7;
6217: OpcodeFamily = 30; CurrentInstrCycles = 20;
6218: {{ uaecptr srca = m68k_getpc () + 2;
6219: srca += (uae_s32)(uae_s16)get_iword(2);
6220: { uae_s8 src = get_byte(srca);
6221: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
6222: CLEAR_CZNV;
6223: SET_ZFLG (((uae_s8)(src)) == 0);
6224: SET_NFLG (((uae_s8)(src)) < 0);
6225: put_byte(dsta,src);
6226: }}}}m68k_incpc(6);
6227: return 20;
6228: }
6229: unsigned long REGPARAM2 CPUFUNC(op_117b_0)(uae_u32 opcode) /* MOVE */
6230: {
6231: uae_u32 dstreg = (opcode >> 9) & 7;
6232: OpcodeFamily = 30; CurrentInstrCycles = 22;
6233: {{m68k_incpc(2);
6234: { uaecptr tmppc = m68k_getpc();
6235: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
6236: BusCyclePenalty += 2;
6237: { uae_s8 src = get_byte(srca);
6238: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(0);
6239: CLEAR_CZNV;
6240: SET_ZFLG (((uae_s8)(src)) == 0);
6241: SET_NFLG (((uae_s8)(src)) < 0);
6242: put_byte(dsta,src);
6243: }}}}}m68k_incpc(2);
6244: return 22;
6245: }
6246: unsigned long REGPARAM2 CPUFUNC(op_117c_0)(uae_u32 opcode) /* MOVE */
6247: {
6248: uae_u32 dstreg = (opcode >> 9) & 7;
6249: OpcodeFamily = 30; CurrentInstrCycles = 16;
6250: {{ uae_s8 src = get_ibyte(2);
6251: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
6252: CLEAR_CZNV;
6253: SET_ZFLG (((uae_s8)(src)) == 0);
6254: SET_NFLG (((uae_s8)(src)) < 0);
6255: put_byte(dsta,src);
6256: }}}m68k_incpc(6);
6257: return 16;
6258: }
6259: unsigned long REGPARAM2 CPUFUNC(op_1180_0)(uae_u32 opcode) /* MOVE */
6260: {
6261: uae_u32 srcreg = (opcode & 7);
6262: uae_u32 dstreg = (opcode >> 9) & 7;
6263: OpcodeFamily = 30; CurrentInstrCycles = 14;
6264: {{ uae_s8 src = m68k_dreg(regs, srcreg);
6265: {m68k_incpc(2);
6266: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
6267: BusCyclePenalty += 2;
6268: CLEAR_CZNV;
6269: SET_ZFLG (((uae_s8)(src)) == 0);
6270: SET_NFLG (((uae_s8)(src)) < 0);
6271: put_byte(dsta,src);
6272: }}}}return 14;
6273: }
6274: unsigned long REGPARAM2 CPUFUNC(op_1188_0)(uae_u32 opcode) /* MOVE */
6275: {
6276: uae_u32 srcreg = (opcode & 7);
6277: uae_u32 dstreg = (opcode >> 9) & 7;
6278: OpcodeFamily = 30; CurrentInstrCycles = 14;
6279: {{ uae_s8 src = m68k_areg(regs, srcreg);
6280: {m68k_incpc(2);
6281: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
6282: BusCyclePenalty += 2;
6283: CLEAR_CZNV;
6284: SET_ZFLG (((uae_s8)(src)) == 0);
6285: SET_NFLG (((uae_s8)(src)) < 0);
6286: put_byte(dsta,src);
6287: }}}}return 14;
6288: }
6289: unsigned long REGPARAM2 CPUFUNC(op_1190_0)(uae_u32 opcode) /* MOVE */
6290: {
6291: uae_u32 srcreg = (opcode & 7);
6292: uae_u32 dstreg = (opcode >> 9) & 7;
6293: OpcodeFamily = 30; CurrentInstrCycles = 18;
6294: {{ uaecptr srca = m68k_areg(regs, srcreg);
6295: { uae_s8 src = get_byte(srca);
6296: {m68k_incpc(2);
6297: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
6298: BusCyclePenalty += 2;
6299: CLEAR_CZNV;
6300: SET_ZFLG (((uae_s8)(src)) == 0);
6301: SET_NFLG (((uae_s8)(src)) < 0);
6302: put_byte(dsta,src);
6303: }}}}}return 18;
6304: }
6305: unsigned long REGPARAM2 CPUFUNC(op_1198_0)(uae_u32 opcode) /* MOVE */
6306: {
6307: uae_u32 srcreg = (opcode & 7);
6308: uae_u32 dstreg = (opcode >> 9) & 7;
6309: OpcodeFamily = 30; CurrentInstrCycles = 18;
6310: {{ uaecptr srca = m68k_areg(regs, srcreg);
6311: { uae_s8 src = get_byte(srca);
6312: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
6313: {m68k_incpc(2);
6314: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
6315: BusCyclePenalty += 2;
6316: CLEAR_CZNV;
6317: SET_ZFLG (((uae_s8)(src)) == 0);
6318: SET_NFLG (((uae_s8)(src)) < 0);
6319: put_byte(dsta,src);
6320: }}}}}return 18;
6321: }
6322: unsigned long REGPARAM2 CPUFUNC(op_11a0_0)(uae_u32 opcode) /* MOVE */
6323: {
6324: uae_u32 srcreg = (opcode & 7);
6325: uae_u32 dstreg = (opcode >> 9) & 7;
6326: OpcodeFamily = 30; CurrentInstrCycles = 20;
6327: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
6328: { uae_s8 src = get_byte(srca);
6329: m68k_areg (regs, srcreg) = srca;
6330: {m68k_incpc(2);
6331: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
6332: BusCyclePenalty += 2;
6333: CLEAR_CZNV;
6334: SET_ZFLG (((uae_s8)(src)) == 0);
6335: SET_NFLG (((uae_s8)(src)) < 0);
6336: put_byte(dsta,src);
6337: }}}}}return 20;
6338: }
6339: unsigned long REGPARAM2 CPUFUNC(op_11a8_0)(uae_u32 opcode) /* MOVE */
6340: {
6341: uae_u32 srcreg = (opcode & 7);
6342: uae_u32 dstreg = (opcode >> 9) & 7;
6343: OpcodeFamily = 30; CurrentInstrCycles = 22;
6344: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
6345: { uae_s8 src = get_byte(srca);
6346: {m68k_incpc(4);
6347: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
6348: BusCyclePenalty += 2;
6349: CLEAR_CZNV;
6350: SET_ZFLG (((uae_s8)(src)) == 0);
6351: SET_NFLG (((uae_s8)(src)) < 0);
6352: put_byte(dsta,src);
6353: }}}}}return 22;
6354: }
6355: unsigned long REGPARAM2 CPUFUNC(op_11b0_0)(uae_u32 opcode) /* MOVE */
6356: {
6357: uae_u32 srcreg = (opcode & 7);
6358: uae_u32 dstreg = (opcode >> 9) & 7;
6359: OpcodeFamily = 30; CurrentInstrCycles = 24;
6360: {{m68k_incpc(2);
6361: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
6362: BusCyclePenalty += 2;
6363: { uae_s8 src = get_byte(srca);
6364: {{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
6365: BusCyclePenalty += 2;
6366: CLEAR_CZNV;
6367: SET_ZFLG (((uae_s8)(src)) == 0);
6368: SET_NFLG (((uae_s8)(src)) < 0);
6369: put_byte(dsta,src);
6370: }}}}}}return 24;
6371: }
6372: unsigned long REGPARAM2 CPUFUNC(op_11b8_0)(uae_u32 opcode) /* MOVE */
6373: {
6374: uae_u32 dstreg = (opcode >> 9) & 7;
6375: OpcodeFamily = 30; CurrentInstrCycles = 22;
6376: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
6377: { uae_s8 src = get_byte(srca);
6378: {m68k_incpc(4);
6379: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
6380: BusCyclePenalty += 2;
6381: CLEAR_CZNV;
6382: SET_ZFLG (((uae_s8)(src)) == 0);
6383: SET_NFLG (((uae_s8)(src)) < 0);
6384: put_byte(dsta,src);
6385: }}}}}return 22;
6386: }
6387: unsigned long REGPARAM2 CPUFUNC(op_11b9_0)(uae_u32 opcode) /* MOVE */
6388: {
6389: uae_u32 dstreg = (opcode >> 9) & 7;
6390: OpcodeFamily = 30; CurrentInstrCycles = 26;
6391: {{ uaecptr srca = get_ilong(2);
6392: { uae_s8 src = get_byte(srca);
6393: {m68k_incpc(6);
6394: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
6395: BusCyclePenalty += 2;
6396: CLEAR_CZNV;
6397: SET_ZFLG (((uae_s8)(src)) == 0);
6398: SET_NFLG (((uae_s8)(src)) < 0);
6399: put_byte(dsta,src);
6400: }}}}}return 26;
6401: }
6402: unsigned long REGPARAM2 CPUFUNC(op_11ba_0)(uae_u32 opcode) /* MOVE */
6403: {
6404: uae_u32 dstreg = (opcode >> 9) & 7;
6405: OpcodeFamily = 30; CurrentInstrCycles = 22;
6406: {{ uaecptr srca = m68k_getpc () + 2;
6407: srca += (uae_s32)(uae_s16)get_iword(2);
6408: { uae_s8 src = get_byte(srca);
6409: {m68k_incpc(4);
6410: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
6411: BusCyclePenalty += 2;
6412: CLEAR_CZNV;
6413: SET_ZFLG (((uae_s8)(src)) == 0);
6414: SET_NFLG (((uae_s8)(src)) < 0);
6415: put_byte(dsta,src);
6416: }}}}}return 22;
6417: }
6418: unsigned long REGPARAM2 CPUFUNC(op_11bb_0)(uae_u32 opcode) /* MOVE */
6419: {
6420: uae_u32 dstreg = (opcode >> 9) & 7;
6421: OpcodeFamily = 30; CurrentInstrCycles = 24;
6422: {{m68k_incpc(2);
6423: { uaecptr tmppc = m68k_getpc();
6424: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
6425: BusCyclePenalty += 2;
6426: { uae_s8 src = get_byte(srca);
6427: {{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
6428: BusCyclePenalty += 2;
6429: CLEAR_CZNV;
6430: SET_ZFLG (((uae_s8)(src)) == 0);
6431: SET_NFLG (((uae_s8)(src)) < 0);
6432: put_byte(dsta,src);
6433: }}}}}}return 24;
6434: }
6435: unsigned long REGPARAM2 CPUFUNC(op_11bc_0)(uae_u32 opcode) /* MOVE */
6436: {
6437: uae_u32 dstreg = (opcode >> 9) & 7;
6438: OpcodeFamily = 30; CurrentInstrCycles = 18;
6439: {{ uae_s8 src = get_ibyte(2);
6440: {m68k_incpc(4);
6441: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
6442: BusCyclePenalty += 2;
6443: CLEAR_CZNV;
6444: SET_ZFLG (((uae_s8)(src)) == 0);
6445: SET_NFLG (((uae_s8)(src)) < 0);
6446: put_byte(dsta,src);
6447: }}}}return 18;
6448: }
6449: unsigned long REGPARAM2 CPUFUNC(op_11c0_0)(uae_u32 opcode) /* MOVE */
6450: {
6451: uae_u32 srcreg = (opcode & 7);
6452: OpcodeFamily = 30; CurrentInstrCycles = 12;
6453: {{ uae_s8 src = m68k_dreg(regs, srcreg);
6454: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
6455: CLEAR_CZNV;
6456: SET_ZFLG (((uae_s8)(src)) == 0);
6457: SET_NFLG (((uae_s8)(src)) < 0);
6458: put_byte(dsta,src);
6459: }}}m68k_incpc(4);
6460: return 12;
6461: }
6462: unsigned long REGPARAM2 CPUFUNC(op_11c8_0)(uae_u32 opcode) /* MOVE */
6463: {
6464: uae_u32 srcreg = (opcode & 7);
6465: OpcodeFamily = 30; CurrentInstrCycles = 12;
6466: {{ uae_s8 src = m68k_areg(regs, srcreg);
6467: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
6468: CLEAR_CZNV;
6469: SET_ZFLG (((uae_s8)(src)) == 0);
6470: SET_NFLG (((uae_s8)(src)) < 0);
6471: put_byte(dsta,src);
6472: }}}m68k_incpc(4);
6473: return 12;
6474: }
6475: unsigned long REGPARAM2 CPUFUNC(op_11d0_0)(uae_u32 opcode) /* MOVE */
6476: {
6477: uae_u32 srcreg = (opcode & 7);
6478: OpcodeFamily = 30; CurrentInstrCycles = 16;
6479: {{ uaecptr srca = m68k_areg(regs, srcreg);
6480: { uae_s8 src = get_byte(srca);
6481: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
6482: CLEAR_CZNV;
6483: SET_ZFLG (((uae_s8)(src)) == 0);
6484: SET_NFLG (((uae_s8)(src)) < 0);
6485: put_byte(dsta,src);
6486: }}}}m68k_incpc(4);
6487: return 16;
6488: }
6489: unsigned long REGPARAM2 CPUFUNC(op_11d8_0)(uae_u32 opcode) /* MOVE */
6490: {
6491: uae_u32 srcreg = (opcode & 7);
6492: OpcodeFamily = 30; CurrentInstrCycles = 16;
6493: {{ uaecptr srca = m68k_areg(regs, srcreg);
6494: { uae_s8 src = get_byte(srca);
6495: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
6496: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
6497: CLEAR_CZNV;
6498: SET_ZFLG (((uae_s8)(src)) == 0);
6499: SET_NFLG (((uae_s8)(src)) < 0);
6500: put_byte(dsta,src);
6501: }}}}m68k_incpc(4);
6502: return 16;
6503: }
6504: unsigned long REGPARAM2 CPUFUNC(op_11e0_0)(uae_u32 opcode) /* MOVE */
6505: {
6506: uae_u32 srcreg = (opcode & 7);
6507: OpcodeFamily = 30; CurrentInstrCycles = 18;
6508: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
6509: { uae_s8 src = get_byte(srca);
6510: m68k_areg (regs, srcreg) = srca;
6511: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
6512: CLEAR_CZNV;
6513: SET_ZFLG (((uae_s8)(src)) == 0);
6514: SET_NFLG (((uae_s8)(src)) < 0);
6515: put_byte(dsta,src);
6516: }}}}m68k_incpc(4);
6517: return 18;
6518: }
6519: unsigned long REGPARAM2 CPUFUNC(op_11e8_0)(uae_u32 opcode) /* MOVE */
6520: {
6521: uae_u32 srcreg = (opcode & 7);
6522: OpcodeFamily = 30; CurrentInstrCycles = 20;
6523: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
6524: { uae_s8 src = get_byte(srca);
6525: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
6526: CLEAR_CZNV;
6527: SET_ZFLG (((uae_s8)(src)) == 0);
6528: SET_NFLG (((uae_s8)(src)) < 0);
6529: put_byte(dsta,src);
6530: }}}}m68k_incpc(6);
6531: return 20;
6532: }
6533: unsigned long REGPARAM2 CPUFUNC(op_11f0_0)(uae_u32 opcode) /* MOVE */
6534: {
6535: uae_u32 srcreg = (opcode & 7);
6536: OpcodeFamily = 30; CurrentInstrCycles = 22;
6537: {{m68k_incpc(2);
6538: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
6539: BusCyclePenalty += 2;
6540: { uae_s8 src = get_byte(srca);
6541: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(0);
6542: CLEAR_CZNV;
6543: SET_ZFLG (((uae_s8)(src)) == 0);
6544: SET_NFLG (((uae_s8)(src)) < 0);
6545: put_byte(dsta,src);
6546: }}}}}m68k_incpc(2);
6547: return 22;
6548: }
6549: unsigned long REGPARAM2 CPUFUNC(op_11f8_0)(uae_u32 opcode) /* MOVE */
6550: {
6551: OpcodeFamily = 30; CurrentInstrCycles = 20;
6552: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
6553: { uae_s8 src = get_byte(srca);
6554: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
6555: CLEAR_CZNV;
6556: SET_ZFLG (((uae_s8)(src)) == 0);
6557: SET_NFLG (((uae_s8)(src)) < 0);
6558: put_byte(dsta,src);
6559: }}}}m68k_incpc(6);
6560: return 20;
6561: }
6562: unsigned long REGPARAM2 CPUFUNC(op_11f9_0)(uae_u32 opcode) /* MOVE */
6563: {
6564: OpcodeFamily = 30; CurrentInstrCycles = 24;
6565: {{ uaecptr srca = get_ilong(2);
6566: { uae_s8 src = get_byte(srca);
6567: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(6);
6568: CLEAR_CZNV;
6569: SET_ZFLG (((uae_s8)(src)) == 0);
6570: SET_NFLG (((uae_s8)(src)) < 0);
6571: put_byte(dsta,src);
6572: }}}}m68k_incpc(8);
6573: return 24;
6574: }
6575: unsigned long REGPARAM2 CPUFUNC(op_11fa_0)(uae_u32 opcode) /* MOVE */
6576: {
6577: OpcodeFamily = 30; CurrentInstrCycles = 20;
6578: {{ uaecptr srca = m68k_getpc () + 2;
6579: srca += (uae_s32)(uae_s16)get_iword(2);
6580: { uae_s8 src = get_byte(srca);
6581: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
6582: CLEAR_CZNV;
6583: SET_ZFLG (((uae_s8)(src)) == 0);
6584: SET_NFLG (((uae_s8)(src)) < 0);
6585: put_byte(dsta,src);
6586: }}}}m68k_incpc(6);
6587: return 20;
6588: }
6589: unsigned long REGPARAM2 CPUFUNC(op_11fb_0)(uae_u32 opcode) /* MOVE */
6590: {
6591: OpcodeFamily = 30; CurrentInstrCycles = 22;
6592: {{m68k_incpc(2);
6593: { uaecptr tmppc = m68k_getpc();
6594: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
6595: BusCyclePenalty += 2;
6596: { uae_s8 src = get_byte(srca);
6597: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(0);
6598: CLEAR_CZNV;
6599: SET_ZFLG (((uae_s8)(src)) == 0);
6600: SET_NFLG (((uae_s8)(src)) < 0);
6601: put_byte(dsta,src);
6602: }}}}}m68k_incpc(2);
6603: return 22;
6604: }
6605: unsigned long REGPARAM2 CPUFUNC(op_11fc_0)(uae_u32 opcode) /* MOVE */
6606: {
6607: OpcodeFamily = 30; CurrentInstrCycles = 16;
6608: {{ uae_s8 src = get_ibyte(2);
6609: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
6610: CLEAR_CZNV;
6611: SET_ZFLG (((uae_s8)(src)) == 0);
6612: SET_NFLG (((uae_s8)(src)) < 0);
6613: put_byte(dsta,src);
6614: }}}m68k_incpc(6);
6615: return 16;
6616: }
6617: unsigned long REGPARAM2 CPUFUNC(op_13c0_0)(uae_u32 opcode) /* MOVE */
6618: {
6619: uae_u32 srcreg = (opcode & 7);
6620: OpcodeFamily = 30; CurrentInstrCycles = 16;
6621: {{ uae_s8 src = m68k_dreg(regs, srcreg);
6622: { uaecptr dsta = get_ilong(2);
6623: CLEAR_CZNV;
6624: SET_ZFLG (((uae_s8)(src)) == 0);
6625: SET_NFLG (((uae_s8)(src)) < 0);
6626: put_byte(dsta,src);
6627: }}}m68k_incpc(6);
6628: return 16;
6629: }
6630: unsigned long REGPARAM2 CPUFUNC(op_13c8_0)(uae_u32 opcode) /* MOVE */
6631: {
6632: uae_u32 srcreg = (opcode & 7);
6633: OpcodeFamily = 30; CurrentInstrCycles = 16;
6634: {{ uae_s8 src = m68k_areg(regs, srcreg);
6635: { uaecptr dsta = get_ilong(2);
6636: CLEAR_CZNV;
6637: SET_ZFLG (((uae_s8)(src)) == 0);
6638: SET_NFLG (((uae_s8)(src)) < 0);
6639: put_byte(dsta,src);
6640: }}}m68k_incpc(6);
6641: return 16;
6642: }
6643: unsigned long REGPARAM2 CPUFUNC(op_13d0_0)(uae_u32 opcode) /* MOVE */
6644: {
6645: uae_u32 srcreg = (opcode & 7);
6646: OpcodeFamily = 30; CurrentInstrCycles = 20;
6647: {{ uaecptr srca = m68k_areg(regs, srcreg);
6648: { uae_s8 src = get_byte(srca);
6649: { uaecptr dsta = get_ilong(2);
6650: CLEAR_CZNV;
6651: SET_ZFLG (((uae_s8)(src)) == 0);
6652: SET_NFLG (((uae_s8)(src)) < 0);
6653: put_byte(dsta,src);
6654: }}}}m68k_incpc(6);
6655: return 20;
6656: }
6657: unsigned long REGPARAM2 CPUFUNC(op_13d8_0)(uae_u32 opcode) /* MOVE */
6658: {
6659: uae_u32 srcreg = (opcode & 7);
6660: OpcodeFamily = 30; CurrentInstrCycles = 20;
6661: {{ uaecptr srca = m68k_areg(regs, srcreg);
6662: { uae_s8 src = get_byte(srca);
6663: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
6664: { uaecptr dsta = get_ilong(2);
6665: CLEAR_CZNV;
6666: SET_ZFLG (((uae_s8)(src)) == 0);
6667: SET_NFLG (((uae_s8)(src)) < 0);
6668: put_byte(dsta,src);
6669: }}}}m68k_incpc(6);
6670: return 20;
6671: }
6672: unsigned long REGPARAM2 CPUFUNC(op_13e0_0)(uae_u32 opcode) /* MOVE */
6673: {
6674: uae_u32 srcreg = (opcode & 7);
6675: OpcodeFamily = 30; CurrentInstrCycles = 22;
6676: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
6677: { uae_s8 src = get_byte(srca);
6678: m68k_areg (regs, srcreg) = srca;
6679: { uaecptr dsta = get_ilong(2);
6680: CLEAR_CZNV;
6681: SET_ZFLG (((uae_s8)(src)) == 0);
6682: SET_NFLG (((uae_s8)(src)) < 0);
6683: put_byte(dsta,src);
6684: }}}}m68k_incpc(6);
6685: return 22;
6686: }
6687: unsigned long REGPARAM2 CPUFUNC(op_13e8_0)(uae_u32 opcode) /* MOVE */
6688: {
6689: uae_u32 srcreg = (opcode & 7);
6690: OpcodeFamily = 30; CurrentInstrCycles = 24;
6691: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
6692: { uae_s8 src = get_byte(srca);
6693: { uaecptr dsta = get_ilong(4);
6694: CLEAR_CZNV;
6695: SET_ZFLG (((uae_s8)(src)) == 0);
6696: SET_NFLG (((uae_s8)(src)) < 0);
6697: put_byte(dsta,src);
6698: }}}}m68k_incpc(8);
6699: return 24;
6700: }
6701: unsigned long REGPARAM2 CPUFUNC(op_13f0_0)(uae_u32 opcode) /* MOVE */
6702: {
6703: uae_u32 srcreg = (opcode & 7);
6704: OpcodeFamily = 30; CurrentInstrCycles = 26;
6705: {{m68k_incpc(2);
6706: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
6707: BusCyclePenalty += 2;
6708: { uae_s8 src = get_byte(srca);
6709: { uaecptr dsta = get_ilong(0);
6710: CLEAR_CZNV;
6711: SET_ZFLG (((uae_s8)(src)) == 0);
6712: SET_NFLG (((uae_s8)(src)) < 0);
6713: put_byte(dsta,src);
6714: }}}}}m68k_incpc(4);
6715: return 26;
6716: }
6717: unsigned long REGPARAM2 CPUFUNC(op_13f8_0)(uae_u32 opcode) /* MOVE */
6718: {
6719: OpcodeFamily = 30; CurrentInstrCycles = 24;
6720: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
6721: { uae_s8 src = get_byte(srca);
6722: { uaecptr dsta = get_ilong(4);
6723: CLEAR_CZNV;
6724: SET_ZFLG (((uae_s8)(src)) == 0);
6725: SET_NFLG (((uae_s8)(src)) < 0);
6726: put_byte(dsta,src);
6727: }}}}m68k_incpc(8);
6728: return 24;
6729: }
6730: unsigned long REGPARAM2 CPUFUNC(op_13f9_0)(uae_u32 opcode) /* MOVE */
6731: {
6732: OpcodeFamily = 30; CurrentInstrCycles = 28;
6733: {{ uaecptr srca = get_ilong(2);
6734: { uae_s8 src = get_byte(srca);
6735: { uaecptr dsta = get_ilong(6);
6736: CLEAR_CZNV;
6737: SET_ZFLG (((uae_s8)(src)) == 0);
6738: SET_NFLG (((uae_s8)(src)) < 0);
6739: put_byte(dsta,src);
6740: }}}}m68k_incpc(10);
6741: return 28;
6742: }
6743: unsigned long REGPARAM2 CPUFUNC(op_13fa_0)(uae_u32 opcode) /* MOVE */
6744: {
6745: OpcodeFamily = 30; CurrentInstrCycles = 24;
6746: {{ uaecptr srca = m68k_getpc () + 2;
6747: srca += (uae_s32)(uae_s16)get_iword(2);
6748: { uae_s8 src = get_byte(srca);
6749: { uaecptr dsta = get_ilong(4);
6750: CLEAR_CZNV;
6751: SET_ZFLG (((uae_s8)(src)) == 0);
6752: SET_NFLG (((uae_s8)(src)) < 0);
6753: put_byte(dsta,src);
6754: }}}}m68k_incpc(8);
6755: return 24;
6756: }
6757: unsigned long REGPARAM2 CPUFUNC(op_13fb_0)(uae_u32 opcode) /* MOVE */
6758: {
6759: OpcodeFamily = 30; CurrentInstrCycles = 26;
6760: {{m68k_incpc(2);
6761: { uaecptr tmppc = m68k_getpc();
6762: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
6763: BusCyclePenalty += 2;
6764: { uae_s8 src = get_byte(srca);
6765: { uaecptr dsta = get_ilong(0);
6766: CLEAR_CZNV;
6767: SET_ZFLG (((uae_s8)(src)) == 0);
6768: SET_NFLG (((uae_s8)(src)) < 0);
6769: put_byte(dsta,src);
6770: }}}}}m68k_incpc(4);
6771: return 26;
6772: }
6773: unsigned long REGPARAM2 CPUFUNC(op_13fc_0)(uae_u32 opcode) /* MOVE */
6774: {
6775: OpcodeFamily = 30; CurrentInstrCycles = 20;
6776: {{ uae_s8 src = get_ibyte(2);
6777: { uaecptr dsta = get_ilong(4);
6778: CLEAR_CZNV;
6779: SET_ZFLG (((uae_s8)(src)) == 0);
6780: SET_NFLG (((uae_s8)(src)) < 0);
6781: put_byte(dsta,src);
6782: }}}m68k_incpc(8);
6783: return 20;
6784: }
6785: unsigned long REGPARAM2 CPUFUNC(op_2000_0)(uae_u32 opcode) /* MOVE */
6786: {
6787: uae_u32 srcreg = (opcode & 7);
6788: uae_u32 dstreg = (opcode >> 9) & 7;
6789: OpcodeFamily = 30; CurrentInstrCycles = 4;
6790: {{ uae_s32 src = m68k_dreg(regs, srcreg);
6791: { CLEAR_CZNV;
6792: SET_ZFLG (((uae_s32)(src)) == 0);
6793: SET_NFLG (((uae_s32)(src)) < 0);
6794: m68k_dreg(regs, dstreg) = (src);
6795: }}}m68k_incpc(2);
6796: return 4;
6797: }
6798: unsigned long REGPARAM2 CPUFUNC(op_2008_0)(uae_u32 opcode) /* MOVE */
6799: {
6800: uae_u32 srcreg = (opcode & 7);
6801: uae_u32 dstreg = (opcode >> 9) & 7;
6802: OpcodeFamily = 30; CurrentInstrCycles = 4;
6803: {{ uae_s32 src = m68k_areg(regs, srcreg);
6804: { CLEAR_CZNV;
6805: SET_ZFLG (((uae_s32)(src)) == 0);
6806: SET_NFLG (((uae_s32)(src)) < 0);
6807: m68k_dreg(regs, dstreg) = (src);
6808: }}}m68k_incpc(2);
6809: return 4;
6810: }
6811: unsigned long REGPARAM2 CPUFUNC(op_2010_0)(uae_u32 opcode) /* MOVE */
6812: {
6813: uae_u32 srcreg = (opcode & 7);
6814: uae_u32 dstreg = (opcode >> 9) & 7;
6815: OpcodeFamily = 30; CurrentInstrCycles = 12;
6816: {{ uaecptr srca = m68k_areg(regs, srcreg);
6817: { uae_s32 src = get_long(srca);
6818: { CLEAR_CZNV;
6819: SET_ZFLG (((uae_s32)(src)) == 0);
6820: SET_NFLG (((uae_s32)(src)) < 0);
6821: m68k_dreg(regs, dstreg) = (src);
6822: }}}}m68k_incpc(2);
6823: return 12;
6824: }
6825: unsigned long REGPARAM2 CPUFUNC(op_2018_0)(uae_u32 opcode) /* MOVE */
6826: {
6827: uae_u32 srcreg = (opcode & 7);
6828: uae_u32 dstreg = (opcode >> 9) & 7;
6829: OpcodeFamily = 30; CurrentInstrCycles = 12;
6830: {{ uaecptr srca = m68k_areg(regs, srcreg);
6831: { uae_s32 src = get_long(srca);
6832: m68k_areg(regs, srcreg) += 4;
6833: { CLEAR_CZNV;
6834: SET_ZFLG (((uae_s32)(src)) == 0);
6835: SET_NFLG (((uae_s32)(src)) < 0);
6836: m68k_dreg(regs, dstreg) = (src);
6837: }}}}m68k_incpc(2);
6838: return 12;
6839: }
6840: unsigned long REGPARAM2 CPUFUNC(op_2020_0)(uae_u32 opcode) /* MOVE */
6841: {
6842: uae_u32 srcreg = (opcode & 7);
6843: uae_u32 dstreg = (opcode >> 9) & 7;
6844: OpcodeFamily = 30; CurrentInstrCycles = 14;
6845: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
6846: { uae_s32 src = get_long(srca);
6847: m68k_areg (regs, srcreg) = srca;
6848: { CLEAR_CZNV;
6849: SET_ZFLG (((uae_s32)(src)) == 0);
6850: SET_NFLG (((uae_s32)(src)) < 0);
6851: m68k_dreg(regs, dstreg) = (src);
6852: }}}}m68k_incpc(2);
6853: return 14;
6854: }
6855: unsigned long REGPARAM2 CPUFUNC(op_2028_0)(uae_u32 opcode) /* MOVE */
6856: {
6857: uae_u32 srcreg = (opcode & 7);
6858: uae_u32 dstreg = (opcode >> 9) & 7;
6859: OpcodeFamily = 30; CurrentInstrCycles = 16;
6860: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
6861: { uae_s32 src = get_long(srca);
6862: { CLEAR_CZNV;
6863: SET_ZFLG (((uae_s32)(src)) == 0);
6864: SET_NFLG (((uae_s32)(src)) < 0);
6865: m68k_dreg(regs, dstreg) = (src);
6866: }}}}m68k_incpc(4);
6867: return 16;
6868: }
6869: unsigned long REGPARAM2 CPUFUNC(op_2030_0)(uae_u32 opcode) /* MOVE */
6870: {
6871: uae_u32 srcreg = (opcode & 7);
6872: uae_u32 dstreg = (opcode >> 9) & 7;
6873: OpcodeFamily = 30; CurrentInstrCycles = 18;
6874: {{m68k_incpc(2);
6875: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
6876: BusCyclePenalty += 2;
6877: { uae_s32 src = get_long(srca);
6878: { CLEAR_CZNV;
6879: SET_ZFLG (((uae_s32)(src)) == 0);
6880: SET_NFLG (((uae_s32)(src)) < 0);
6881: m68k_dreg(regs, dstreg) = (src);
6882: }}}}}return 18;
6883: }
6884: unsigned long REGPARAM2 CPUFUNC(op_2038_0)(uae_u32 opcode) /* MOVE */
6885: {
6886: uae_u32 dstreg = (opcode >> 9) & 7;
6887: OpcodeFamily = 30; CurrentInstrCycles = 16;
6888: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
6889: { uae_s32 src = get_long(srca);
6890: { CLEAR_CZNV;
6891: SET_ZFLG (((uae_s32)(src)) == 0);
6892: SET_NFLG (((uae_s32)(src)) < 0);
6893: m68k_dreg(regs, dstreg) = (src);
6894: }}}}m68k_incpc(4);
6895: return 16;
6896: }
6897: unsigned long REGPARAM2 CPUFUNC(op_2039_0)(uae_u32 opcode) /* MOVE */
6898: {
6899: uae_u32 dstreg = (opcode >> 9) & 7;
6900: OpcodeFamily = 30; CurrentInstrCycles = 20;
6901: {{ uaecptr srca = get_ilong(2);
6902: { uae_s32 src = get_long(srca);
6903: { CLEAR_CZNV;
6904: SET_ZFLG (((uae_s32)(src)) == 0);
6905: SET_NFLG (((uae_s32)(src)) < 0);
6906: m68k_dreg(regs, dstreg) = (src);
6907: }}}}m68k_incpc(6);
6908: return 20;
6909: }
6910: unsigned long REGPARAM2 CPUFUNC(op_203a_0)(uae_u32 opcode) /* MOVE */
6911: {
6912: uae_u32 dstreg = (opcode >> 9) & 7;
6913: OpcodeFamily = 30; CurrentInstrCycles = 16;
6914: {{ uaecptr srca = m68k_getpc () + 2;
6915: srca += (uae_s32)(uae_s16)get_iword(2);
6916: { uae_s32 src = get_long(srca);
6917: { CLEAR_CZNV;
6918: SET_ZFLG (((uae_s32)(src)) == 0);
6919: SET_NFLG (((uae_s32)(src)) < 0);
6920: m68k_dreg(regs, dstreg) = (src);
6921: }}}}m68k_incpc(4);
6922: return 16;
6923: }
6924: unsigned long REGPARAM2 CPUFUNC(op_203b_0)(uae_u32 opcode) /* MOVE */
6925: {
6926: uae_u32 dstreg = (opcode >> 9) & 7;
6927: OpcodeFamily = 30; CurrentInstrCycles = 18;
6928: {{m68k_incpc(2);
6929: { uaecptr tmppc = m68k_getpc();
6930: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
6931: BusCyclePenalty += 2;
6932: { uae_s32 src = get_long(srca);
6933: { CLEAR_CZNV;
6934: SET_ZFLG (((uae_s32)(src)) == 0);
6935: SET_NFLG (((uae_s32)(src)) < 0);
6936: m68k_dreg(regs, dstreg) = (src);
6937: }}}}}return 18;
6938: }
6939: unsigned long REGPARAM2 CPUFUNC(op_203c_0)(uae_u32 opcode) /* MOVE */
6940: {
6941: uae_u32 dstreg = (opcode >> 9) & 7;
6942: OpcodeFamily = 30; CurrentInstrCycles = 12;
6943: {{ uae_s32 src = get_ilong(2);
6944: { CLEAR_CZNV;
6945: SET_ZFLG (((uae_s32)(src)) == 0);
6946: SET_NFLG (((uae_s32)(src)) < 0);
6947: m68k_dreg(regs, dstreg) = (src);
6948: }}}m68k_incpc(6);
6949: return 12;
6950: }
6951: unsigned long REGPARAM2 CPUFUNC(op_2040_0)(uae_u32 opcode) /* MOVEA */
6952: {
6953: uae_u32 srcreg = (opcode & 7);
6954: uae_u32 dstreg = (opcode >> 9) & 7;
6955: OpcodeFamily = 31; CurrentInstrCycles = 4;
6956: {{ uae_s32 src = m68k_dreg(regs, srcreg);
6957: { uae_u32 val = src;
6958: m68k_areg(regs, dstreg) = (val);
6959: }}}m68k_incpc(2);
6960: return 4;
6961: }
6962: unsigned long REGPARAM2 CPUFUNC(op_2048_0)(uae_u32 opcode) /* MOVEA */
6963: {
6964: uae_u32 srcreg = (opcode & 7);
6965: uae_u32 dstreg = (opcode >> 9) & 7;
6966: OpcodeFamily = 31; CurrentInstrCycles = 4;
6967: {{ uae_s32 src = m68k_areg(regs, srcreg);
6968: { uae_u32 val = src;
6969: m68k_areg(regs, dstreg) = (val);
6970: }}}m68k_incpc(2);
6971: return 4;
6972: }
6973: unsigned long REGPARAM2 CPUFUNC(op_2050_0)(uae_u32 opcode) /* MOVEA */
6974: {
6975: uae_u32 srcreg = (opcode & 7);
6976: uae_u32 dstreg = (opcode >> 9) & 7;
6977: OpcodeFamily = 31; CurrentInstrCycles = 12;
6978: {{ uaecptr srca = m68k_areg(regs, srcreg);
6979: { uae_s32 src = get_long(srca);
6980: { uae_u32 val = src;
6981: m68k_areg(regs, dstreg) = (val);
6982: }}}}m68k_incpc(2);
6983: return 12;
6984: }
6985: unsigned long REGPARAM2 CPUFUNC(op_2058_0)(uae_u32 opcode) /* MOVEA */
6986: {
6987: uae_u32 srcreg = (opcode & 7);
6988: uae_u32 dstreg = (opcode >> 9) & 7;
6989: OpcodeFamily = 31; CurrentInstrCycles = 12;
6990: {{ uaecptr srca = m68k_areg(regs, srcreg);
6991: { uae_s32 src = get_long(srca);
6992: m68k_areg(regs, srcreg) += 4;
6993: { uae_u32 val = src;
6994: m68k_areg(regs, dstreg) = (val);
6995: }}}}m68k_incpc(2);
6996: return 12;
6997: }
6998: unsigned long REGPARAM2 CPUFUNC(op_2060_0)(uae_u32 opcode) /* MOVEA */
6999: {
7000: uae_u32 srcreg = (opcode & 7);
7001: uae_u32 dstreg = (opcode >> 9) & 7;
7002: OpcodeFamily = 31; CurrentInstrCycles = 14;
7003: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
7004: { uae_s32 src = get_long(srca);
7005: m68k_areg (regs, srcreg) = srca;
7006: { uae_u32 val = src;
7007: m68k_areg(regs, dstreg) = (val);
7008: }}}}m68k_incpc(2);
7009: return 14;
7010: }
7011: unsigned long REGPARAM2 CPUFUNC(op_2068_0)(uae_u32 opcode) /* MOVEA */
7012: {
7013: uae_u32 srcreg = (opcode & 7);
7014: uae_u32 dstreg = (opcode >> 9) & 7;
7015: OpcodeFamily = 31; CurrentInstrCycles = 16;
7016: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
7017: { uae_s32 src = get_long(srca);
7018: { uae_u32 val = src;
7019: m68k_areg(regs, dstreg) = (val);
7020: }}}}m68k_incpc(4);
7021: return 16;
7022: }
7023: unsigned long REGPARAM2 CPUFUNC(op_2070_0)(uae_u32 opcode) /* MOVEA */
7024: {
7025: uae_u32 srcreg = (opcode & 7);
7026: uae_u32 dstreg = (opcode >> 9) & 7;
7027: OpcodeFamily = 31; CurrentInstrCycles = 18;
7028: {{m68k_incpc(2);
7029: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
7030: BusCyclePenalty += 2;
7031: { uae_s32 src = get_long(srca);
7032: { uae_u32 val = src;
7033: m68k_areg(regs, dstreg) = (val);
7034: }}}}}return 18;
7035: }
7036: unsigned long REGPARAM2 CPUFUNC(op_2078_0)(uae_u32 opcode) /* MOVEA */
7037: {
7038: uae_u32 dstreg = (opcode >> 9) & 7;
7039: OpcodeFamily = 31; CurrentInstrCycles = 16;
7040: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
7041: { uae_s32 src = get_long(srca);
7042: { uae_u32 val = src;
7043: m68k_areg(regs, dstreg) = (val);
7044: }}}}m68k_incpc(4);
7045: return 16;
7046: }
7047: unsigned long REGPARAM2 CPUFUNC(op_2079_0)(uae_u32 opcode) /* MOVEA */
7048: {
7049: uae_u32 dstreg = (opcode >> 9) & 7;
7050: OpcodeFamily = 31; CurrentInstrCycles = 20;
7051: {{ uaecptr srca = get_ilong(2);
7052: { uae_s32 src = get_long(srca);
7053: { uae_u32 val = src;
7054: m68k_areg(regs, dstreg) = (val);
7055: }}}}m68k_incpc(6);
7056: return 20;
7057: }
7058: unsigned long REGPARAM2 CPUFUNC(op_207a_0)(uae_u32 opcode) /* MOVEA */
7059: {
7060: uae_u32 dstreg = (opcode >> 9) & 7;
7061: OpcodeFamily = 31; CurrentInstrCycles = 16;
7062: {{ uaecptr srca = m68k_getpc () + 2;
7063: srca += (uae_s32)(uae_s16)get_iword(2);
7064: { uae_s32 src = get_long(srca);
7065: { uae_u32 val = src;
7066: m68k_areg(regs, dstreg) = (val);
7067: }}}}m68k_incpc(4);
7068: return 16;
7069: }
7070: unsigned long REGPARAM2 CPUFUNC(op_207b_0)(uae_u32 opcode) /* MOVEA */
7071: {
7072: uae_u32 dstreg = (opcode >> 9) & 7;
7073: OpcodeFamily = 31; CurrentInstrCycles = 18;
7074: {{m68k_incpc(2);
7075: { uaecptr tmppc = m68k_getpc();
7076: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
7077: BusCyclePenalty += 2;
7078: { uae_s32 src = get_long(srca);
7079: { uae_u32 val = src;
7080: m68k_areg(regs, dstreg) = (val);
7081: }}}}}return 18;
7082: }
7083: unsigned long REGPARAM2 CPUFUNC(op_207c_0)(uae_u32 opcode) /* MOVEA */
7084: {
7085: uae_u32 dstreg = (opcode >> 9) & 7;
7086: OpcodeFamily = 31; CurrentInstrCycles = 12;
7087: {{ uae_s32 src = get_ilong(2);
7088: { uae_u32 val = src;
7089: m68k_areg(regs, dstreg) = (val);
7090: }}}m68k_incpc(6);
7091: return 12;
7092: }
7093: unsigned long REGPARAM2 CPUFUNC(op_2080_0)(uae_u32 opcode) /* MOVE */
7094: {
7095: uae_u32 srcreg = (opcode & 7);
7096: uae_u32 dstreg = (opcode >> 9) & 7;
7097: OpcodeFamily = 30; CurrentInstrCycles = 12;
7098: {{ uae_s32 src = m68k_dreg(regs, srcreg);
7099: { uaecptr dsta = m68k_areg(regs, dstreg);
7100: CLEAR_CZNV;
7101: SET_ZFLG (((uae_s32)(src)) == 0);
7102: SET_NFLG (((uae_s32)(src)) < 0);
7103: put_long(dsta,src);
7104: }}}m68k_incpc(2);
7105: return 12;
7106: }
7107: unsigned long REGPARAM2 CPUFUNC(op_2088_0)(uae_u32 opcode) /* MOVE */
7108: {
7109: uae_u32 srcreg = (opcode & 7);
7110: uae_u32 dstreg = (opcode >> 9) & 7;
7111: OpcodeFamily = 30; CurrentInstrCycles = 12;
7112: {{ uae_s32 src = m68k_areg(regs, srcreg);
7113: { uaecptr dsta = m68k_areg(regs, dstreg);
7114: CLEAR_CZNV;
7115: SET_ZFLG (((uae_s32)(src)) == 0);
7116: SET_NFLG (((uae_s32)(src)) < 0);
7117: put_long(dsta,src);
7118: }}}m68k_incpc(2);
7119: return 12;
7120: }
7121: unsigned long REGPARAM2 CPUFUNC(op_2090_0)(uae_u32 opcode) /* MOVE */
7122: {
7123: uae_u32 srcreg = (opcode & 7);
7124: uae_u32 dstreg = (opcode >> 9) & 7;
7125: OpcodeFamily = 30; CurrentInstrCycles = 20;
7126: {{ uaecptr srca = m68k_areg(regs, srcreg);
7127: { uae_s32 src = get_long(srca);
7128: { uaecptr dsta = m68k_areg(regs, dstreg);
7129: CLEAR_CZNV;
7130: SET_ZFLG (((uae_s32)(src)) == 0);
7131: SET_NFLG (((uae_s32)(src)) < 0);
7132: put_long(dsta,src);
7133: }}}}m68k_incpc(2);
7134: return 20;
7135: }
7136: unsigned long REGPARAM2 CPUFUNC(op_2098_0)(uae_u32 opcode) /* MOVE */
7137: {
7138: uae_u32 srcreg = (opcode & 7);
7139: uae_u32 dstreg = (opcode >> 9) & 7;
7140: OpcodeFamily = 30; CurrentInstrCycles = 20;
7141: {{ uaecptr srca = m68k_areg(regs, srcreg);
7142: { uae_s32 src = get_long(srca);
7143: m68k_areg(regs, srcreg) += 4;
7144: { uaecptr dsta = m68k_areg(regs, dstreg);
7145: CLEAR_CZNV;
7146: SET_ZFLG (((uae_s32)(src)) == 0);
7147: SET_NFLG (((uae_s32)(src)) < 0);
7148: put_long(dsta,src);
7149: }}}}m68k_incpc(2);
7150: return 20;
7151: }
7152: unsigned long REGPARAM2 CPUFUNC(op_20a0_0)(uae_u32 opcode) /* MOVE */
7153: {
7154: uae_u32 srcreg = (opcode & 7);
7155: uae_u32 dstreg = (opcode >> 9) & 7;
7156: OpcodeFamily = 30; CurrentInstrCycles = 22;
7157: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
7158: { uae_s32 src = get_long(srca);
7159: m68k_areg (regs, srcreg) = srca;
7160: { uaecptr dsta = m68k_areg(regs, dstreg);
7161: CLEAR_CZNV;
7162: SET_ZFLG (((uae_s32)(src)) == 0);
7163: SET_NFLG (((uae_s32)(src)) < 0);
7164: put_long(dsta,src);
7165: }}}}m68k_incpc(2);
7166: return 22;
7167: }
7168: unsigned long REGPARAM2 CPUFUNC(op_20a8_0)(uae_u32 opcode) /* MOVE */
7169: {
7170: uae_u32 srcreg = (opcode & 7);
7171: uae_u32 dstreg = (opcode >> 9) & 7;
7172: OpcodeFamily = 30; CurrentInstrCycles = 24;
7173: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
7174: { uae_s32 src = get_long(srca);
7175: { uaecptr dsta = m68k_areg(regs, dstreg);
7176: CLEAR_CZNV;
7177: SET_ZFLG (((uae_s32)(src)) == 0);
7178: SET_NFLG (((uae_s32)(src)) < 0);
7179: put_long(dsta,src);
7180: }}}}m68k_incpc(4);
7181: return 24;
7182: }
7183: unsigned long REGPARAM2 CPUFUNC(op_20b0_0)(uae_u32 opcode) /* MOVE */
7184: {
7185: uae_u32 srcreg = (opcode & 7);
7186: uae_u32 dstreg = (opcode >> 9) & 7;
7187: OpcodeFamily = 30; CurrentInstrCycles = 26;
7188: {{m68k_incpc(2);
7189: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
7190: BusCyclePenalty += 2;
7191: { uae_s32 src = get_long(srca);
7192: { uaecptr dsta = m68k_areg(regs, dstreg);
7193: CLEAR_CZNV;
7194: SET_ZFLG (((uae_s32)(src)) == 0);
7195: SET_NFLG (((uae_s32)(src)) < 0);
7196: put_long(dsta,src);
7197: }}}}}return 26;
7198: }
7199: unsigned long REGPARAM2 CPUFUNC(op_20b8_0)(uae_u32 opcode) /* MOVE */
7200: {
7201: uae_u32 dstreg = (opcode >> 9) & 7;
7202: OpcodeFamily = 30; CurrentInstrCycles = 24;
7203: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
7204: { uae_s32 src = get_long(srca);
7205: { uaecptr dsta = m68k_areg(regs, dstreg);
7206: CLEAR_CZNV;
7207: SET_ZFLG (((uae_s32)(src)) == 0);
7208: SET_NFLG (((uae_s32)(src)) < 0);
7209: put_long(dsta,src);
7210: }}}}m68k_incpc(4);
7211: return 24;
7212: }
7213: unsigned long REGPARAM2 CPUFUNC(op_20b9_0)(uae_u32 opcode) /* MOVE */
7214: {
7215: uae_u32 dstreg = (opcode >> 9) & 7;
7216: OpcodeFamily = 30; CurrentInstrCycles = 28;
7217: {{ uaecptr srca = get_ilong(2);
7218: { uae_s32 src = get_long(srca);
7219: { uaecptr dsta = m68k_areg(regs, dstreg);
7220: CLEAR_CZNV;
7221: SET_ZFLG (((uae_s32)(src)) == 0);
7222: SET_NFLG (((uae_s32)(src)) < 0);
7223: put_long(dsta,src);
7224: }}}}m68k_incpc(6);
7225: return 28;
7226: }
7227: unsigned long REGPARAM2 CPUFUNC(op_20ba_0)(uae_u32 opcode) /* MOVE */
7228: {
7229: uae_u32 dstreg = (opcode >> 9) & 7;
7230: OpcodeFamily = 30; CurrentInstrCycles = 24;
7231: {{ uaecptr srca = m68k_getpc () + 2;
7232: srca += (uae_s32)(uae_s16)get_iword(2);
7233: { uae_s32 src = get_long(srca);
7234: { uaecptr dsta = m68k_areg(regs, dstreg);
7235: CLEAR_CZNV;
7236: SET_ZFLG (((uae_s32)(src)) == 0);
7237: SET_NFLG (((uae_s32)(src)) < 0);
7238: put_long(dsta,src);
7239: }}}}m68k_incpc(4);
7240: return 24;
7241: }
7242: unsigned long REGPARAM2 CPUFUNC(op_20bb_0)(uae_u32 opcode) /* MOVE */
7243: {
7244: uae_u32 dstreg = (opcode >> 9) & 7;
7245: OpcodeFamily = 30; CurrentInstrCycles = 26;
7246: {{m68k_incpc(2);
7247: { uaecptr tmppc = m68k_getpc();
7248: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
7249: BusCyclePenalty += 2;
7250: { uae_s32 src = get_long(srca);
7251: { uaecptr dsta = m68k_areg(regs, dstreg);
7252: CLEAR_CZNV;
7253: SET_ZFLG (((uae_s32)(src)) == 0);
7254: SET_NFLG (((uae_s32)(src)) < 0);
7255: put_long(dsta,src);
7256: }}}}}return 26;
7257: }
7258: unsigned long REGPARAM2 CPUFUNC(op_20bc_0)(uae_u32 opcode) /* MOVE */
7259: {
7260: uae_u32 dstreg = (opcode >> 9) & 7;
7261: OpcodeFamily = 30; CurrentInstrCycles = 20;
7262: {{ uae_s32 src = get_ilong(2);
7263: { uaecptr dsta = m68k_areg(regs, dstreg);
7264: CLEAR_CZNV;
7265: SET_ZFLG (((uae_s32)(src)) == 0);
7266: SET_NFLG (((uae_s32)(src)) < 0);
7267: put_long(dsta,src);
7268: }}}m68k_incpc(6);
7269: return 20;
7270: }
7271: unsigned long REGPARAM2 CPUFUNC(op_20c0_0)(uae_u32 opcode) /* MOVE */
7272: {
7273: uae_u32 srcreg = (opcode & 7);
7274: uae_u32 dstreg = (opcode >> 9) & 7;
7275: OpcodeFamily = 30; CurrentInstrCycles = 12;
7276: {{ uae_s32 src = m68k_dreg(regs, srcreg);
7277: { uaecptr dsta = m68k_areg(regs, dstreg);
7278: m68k_areg(regs, dstreg) += 4;
7279: CLEAR_CZNV;
7280: SET_ZFLG (((uae_s32)(src)) == 0);
7281: SET_NFLG (((uae_s32)(src)) < 0);
7282: put_long(dsta,src);
7283: }}}m68k_incpc(2);
7284: return 12;
7285: }
7286: unsigned long REGPARAM2 CPUFUNC(op_20c8_0)(uae_u32 opcode) /* MOVE */
7287: {
7288: uae_u32 srcreg = (opcode & 7);
7289: uae_u32 dstreg = (opcode >> 9) & 7;
7290: OpcodeFamily = 30; CurrentInstrCycles = 12;
7291: {{ uae_s32 src = m68k_areg(regs, srcreg);
7292: { uaecptr dsta = m68k_areg(regs, dstreg);
7293: m68k_areg(regs, dstreg) += 4;
7294: CLEAR_CZNV;
7295: SET_ZFLG (((uae_s32)(src)) == 0);
7296: SET_NFLG (((uae_s32)(src)) < 0);
7297: put_long(dsta,src);
7298: }}}m68k_incpc(2);
7299: return 12;
7300: }
7301: unsigned long REGPARAM2 CPUFUNC(op_20d0_0)(uae_u32 opcode) /* MOVE */
7302: {
7303: uae_u32 srcreg = (opcode & 7);
7304: uae_u32 dstreg = (opcode >> 9) & 7;
7305: OpcodeFamily = 30; CurrentInstrCycles = 20;
7306: {{ uaecptr srca = m68k_areg(regs, srcreg);
7307: { uae_s32 src = get_long(srca);
7308: { uaecptr dsta = m68k_areg(regs, dstreg);
7309: m68k_areg(regs, dstreg) += 4;
7310: CLEAR_CZNV;
7311: SET_ZFLG (((uae_s32)(src)) == 0);
7312: SET_NFLG (((uae_s32)(src)) < 0);
7313: put_long(dsta,src);
7314: }}}}m68k_incpc(2);
7315: return 20;
7316: }
7317: unsigned long REGPARAM2 CPUFUNC(op_20d8_0)(uae_u32 opcode) /* MOVE */
7318: {
7319: uae_u32 srcreg = (opcode & 7);
7320: uae_u32 dstreg = (opcode >> 9) & 7;
7321: OpcodeFamily = 30; CurrentInstrCycles = 20;
7322: {{ uaecptr srca = m68k_areg(regs, srcreg);
7323: { uae_s32 src = get_long(srca);
7324: m68k_areg(regs, srcreg) += 4;
7325: { uaecptr dsta = m68k_areg(regs, dstreg);
7326: m68k_areg(regs, dstreg) += 4;
7327: CLEAR_CZNV;
7328: SET_ZFLG (((uae_s32)(src)) == 0);
7329: SET_NFLG (((uae_s32)(src)) < 0);
7330: put_long(dsta,src);
7331: }}}}m68k_incpc(2);
7332: return 20;
7333: }
7334: unsigned long REGPARAM2 CPUFUNC(op_20e0_0)(uae_u32 opcode) /* MOVE */
7335: {
7336: uae_u32 srcreg = (opcode & 7);
7337: uae_u32 dstreg = (opcode >> 9) & 7;
7338: OpcodeFamily = 30; CurrentInstrCycles = 22;
7339: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
7340: { uae_s32 src = get_long(srca);
7341: m68k_areg (regs, srcreg) = srca;
7342: { uaecptr dsta = m68k_areg(regs, dstreg);
7343: m68k_areg(regs, dstreg) += 4;
7344: CLEAR_CZNV;
7345: SET_ZFLG (((uae_s32)(src)) == 0);
7346: SET_NFLG (((uae_s32)(src)) < 0);
7347: put_long(dsta,src);
7348: }}}}m68k_incpc(2);
7349: return 22;
7350: }
7351: unsigned long REGPARAM2 CPUFUNC(op_20e8_0)(uae_u32 opcode) /* MOVE */
7352: {
7353: uae_u32 srcreg = (opcode & 7);
7354: uae_u32 dstreg = (opcode >> 9) & 7;
7355: OpcodeFamily = 30; CurrentInstrCycles = 24;
7356: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
7357: { uae_s32 src = get_long(srca);
7358: { uaecptr dsta = m68k_areg(regs, dstreg);
7359: m68k_areg(regs, dstreg) += 4;
7360: CLEAR_CZNV;
7361: SET_ZFLG (((uae_s32)(src)) == 0);
7362: SET_NFLG (((uae_s32)(src)) < 0);
7363: put_long(dsta,src);
7364: }}}}m68k_incpc(4);
7365: return 24;
7366: }
7367: unsigned long REGPARAM2 CPUFUNC(op_20f0_0)(uae_u32 opcode) /* MOVE */
7368: {
7369: uae_u32 srcreg = (opcode & 7);
7370: uae_u32 dstreg = (opcode >> 9) & 7;
7371: OpcodeFamily = 30; CurrentInstrCycles = 26;
7372: {{m68k_incpc(2);
7373: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
7374: BusCyclePenalty += 2;
7375: { uae_s32 src = get_long(srca);
7376: { uaecptr dsta = m68k_areg(regs, dstreg);
7377: m68k_areg(regs, dstreg) += 4;
7378: CLEAR_CZNV;
7379: SET_ZFLG (((uae_s32)(src)) == 0);
7380: SET_NFLG (((uae_s32)(src)) < 0);
7381: put_long(dsta,src);
7382: }}}}}return 26;
7383: }
7384: unsigned long REGPARAM2 CPUFUNC(op_20f8_0)(uae_u32 opcode) /* MOVE */
7385: {
7386: uae_u32 dstreg = (opcode >> 9) & 7;
7387: OpcodeFamily = 30; CurrentInstrCycles = 24;
7388: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
7389: { uae_s32 src = get_long(srca);
7390: { uaecptr dsta = m68k_areg(regs, dstreg);
7391: m68k_areg(regs, dstreg) += 4;
7392: CLEAR_CZNV;
7393: SET_ZFLG (((uae_s32)(src)) == 0);
7394: SET_NFLG (((uae_s32)(src)) < 0);
7395: put_long(dsta,src);
7396: }}}}m68k_incpc(4);
7397: return 24;
7398: }
7399: unsigned long REGPARAM2 CPUFUNC(op_20f9_0)(uae_u32 opcode) /* MOVE */
7400: {
7401: uae_u32 dstreg = (opcode >> 9) & 7;
7402: OpcodeFamily = 30; CurrentInstrCycles = 28;
7403: {{ uaecptr srca = get_ilong(2);
7404: { uae_s32 src = get_long(srca);
7405: { uaecptr dsta = m68k_areg(regs, dstreg);
7406: m68k_areg(regs, dstreg) += 4;
7407: CLEAR_CZNV;
7408: SET_ZFLG (((uae_s32)(src)) == 0);
7409: SET_NFLG (((uae_s32)(src)) < 0);
7410: put_long(dsta,src);
7411: }}}}m68k_incpc(6);
7412: return 28;
7413: }
7414: unsigned long REGPARAM2 CPUFUNC(op_20fa_0)(uae_u32 opcode) /* MOVE */
7415: {
7416: uae_u32 dstreg = (opcode >> 9) & 7;
7417: OpcodeFamily = 30; CurrentInstrCycles = 24;
7418: {{ uaecptr srca = m68k_getpc () + 2;
7419: srca += (uae_s32)(uae_s16)get_iword(2);
7420: { uae_s32 src = get_long(srca);
7421: { uaecptr dsta = m68k_areg(regs, dstreg);
7422: m68k_areg(regs, dstreg) += 4;
7423: CLEAR_CZNV;
7424: SET_ZFLG (((uae_s32)(src)) == 0);
7425: SET_NFLG (((uae_s32)(src)) < 0);
7426: put_long(dsta,src);
7427: }}}}m68k_incpc(4);
7428: return 24;
7429: }
7430: unsigned long REGPARAM2 CPUFUNC(op_20fb_0)(uae_u32 opcode) /* MOVE */
7431: {
7432: uae_u32 dstreg = (opcode >> 9) & 7;
7433: OpcodeFamily = 30; CurrentInstrCycles = 26;
7434: {{m68k_incpc(2);
7435: { uaecptr tmppc = m68k_getpc();
7436: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
7437: BusCyclePenalty += 2;
7438: { uae_s32 src = get_long(srca);
7439: { uaecptr dsta = m68k_areg(regs, dstreg);
7440: m68k_areg(regs, dstreg) += 4;
7441: CLEAR_CZNV;
7442: SET_ZFLG (((uae_s32)(src)) == 0);
7443: SET_NFLG (((uae_s32)(src)) < 0);
7444: put_long(dsta,src);
7445: }}}}}return 26;
7446: }
7447: unsigned long REGPARAM2 CPUFUNC(op_20fc_0)(uae_u32 opcode) /* MOVE */
7448: {
7449: uae_u32 dstreg = (opcode >> 9) & 7;
7450: OpcodeFamily = 30; CurrentInstrCycles = 20;
7451: {{ uae_s32 src = get_ilong(2);
7452: { uaecptr dsta = m68k_areg(regs, dstreg);
7453: m68k_areg(regs, dstreg) += 4;
7454: CLEAR_CZNV;
7455: SET_ZFLG (((uae_s32)(src)) == 0);
7456: SET_NFLG (((uae_s32)(src)) < 0);
7457: put_long(dsta,src);
7458: }}}m68k_incpc(6);
7459: return 20;
7460: }
7461: unsigned long REGPARAM2 CPUFUNC(op_2100_0)(uae_u32 opcode) /* MOVE */
7462: {
7463: uae_u32 srcreg = (opcode & 7);
7464: uae_u32 dstreg = (opcode >> 9) & 7;
7465: OpcodeFamily = 30; CurrentInstrCycles = 12;
7466: {{ uae_s32 src = m68k_dreg(regs, srcreg);
7467: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
7468: m68k_areg (regs, dstreg) = dsta;
7469: CLEAR_CZNV;
7470: SET_ZFLG (((uae_s32)(src)) == 0);
7471: SET_NFLG (((uae_s32)(src)) < 0);
7472: put_long(dsta,src);
7473: }}}m68k_incpc(2);
7474: return 12;
7475: }
7476: unsigned long REGPARAM2 CPUFUNC(op_2108_0)(uae_u32 opcode) /* MOVE */
7477: {
7478: uae_u32 srcreg = (opcode & 7);
7479: uae_u32 dstreg = (opcode >> 9) & 7;
7480: OpcodeFamily = 30; CurrentInstrCycles = 12;
7481: {{ uae_s32 src = m68k_areg(regs, srcreg);
7482: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
7483: m68k_areg (regs, dstreg) = dsta;
7484: CLEAR_CZNV;
7485: SET_ZFLG (((uae_s32)(src)) == 0);
7486: SET_NFLG (((uae_s32)(src)) < 0);
7487: put_long(dsta,src);
7488: }}}m68k_incpc(2);
7489: return 12;
7490: }
7491: unsigned long REGPARAM2 CPUFUNC(op_2110_0)(uae_u32 opcode) /* MOVE */
7492: {
7493: uae_u32 srcreg = (opcode & 7);
7494: uae_u32 dstreg = (opcode >> 9) & 7;
7495: OpcodeFamily = 30; CurrentInstrCycles = 20;
7496: {{ uaecptr srca = m68k_areg(regs, srcreg);
7497: { uae_s32 src = get_long(srca);
7498: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
7499: m68k_areg (regs, dstreg) = dsta;
7500: CLEAR_CZNV;
7501: SET_ZFLG (((uae_s32)(src)) == 0);
7502: SET_NFLG (((uae_s32)(src)) < 0);
7503: put_long(dsta,src);
7504: }}}}m68k_incpc(2);
7505: return 20;
7506: }
7507: unsigned long REGPARAM2 CPUFUNC(op_2118_0)(uae_u32 opcode) /* MOVE */
7508: {
7509: uae_u32 srcreg = (opcode & 7);
7510: uae_u32 dstreg = (opcode >> 9) & 7;
7511: OpcodeFamily = 30; CurrentInstrCycles = 20;
7512: {{ uaecptr srca = m68k_areg(regs, srcreg);
7513: { uae_s32 src = get_long(srca);
7514: m68k_areg(regs, srcreg) += 4;
7515: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
7516: m68k_areg (regs, dstreg) = dsta;
7517: CLEAR_CZNV;
7518: SET_ZFLG (((uae_s32)(src)) == 0);
7519: SET_NFLG (((uae_s32)(src)) < 0);
7520: put_long(dsta,src);
7521: }}}}m68k_incpc(2);
7522: return 20;
7523: }
7524: unsigned long REGPARAM2 CPUFUNC(op_2120_0)(uae_u32 opcode) /* MOVE */
7525: {
7526: uae_u32 srcreg = (opcode & 7);
7527: uae_u32 dstreg = (opcode >> 9) & 7;
7528: OpcodeFamily = 30; CurrentInstrCycles = 22;
7529: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
7530: { uae_s32 src = get_long(srca);
7531: m68k_areg (regs, srcreg) = srca;
7532: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
7533: m68k_areg (regs, dstreg) = dsta;
7534: CLEAR_CZNV;
7535: SET_ZFLG (((uae_s32)(src)) == 0);
7536: SET_NFLG (((uae_s32)(src)) < 0);
7537: put_long(dsta,src);
7538: }}}}m68k_incpc(2);
7539: return 22;
7540: }
7541: unsigned long REGPARAM2 CPUFUNC(op_2128_0)(uae_u32 opcode) /* MOVE */
7542: {
7543: uae_u32 srcreg = (opcode & 7);
7544: uae_u32 dstreg = (opcode >> 9) & 7;
7545: OpcodeFamily = 30; CurrentInstrCycles = 24;
7546: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
7547: { uae_s32 src = get_long(srca);
7548: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
7549: m68k_areg (regs, dstreg) = dsta;
7550: CLEAR_CZNV;
7551: SET_ZFLG (((uae_s32)(src)) == 0);
7552: SET_NFLG (((uae_s32)(src)) < 0);
7553: put_long(dsta,src);
7554: }}}}m68k_incpc(4);
7555: return 24;
7556: }
7557: unsigned long REGPARAM2 CPUFUNC(op_2130_0)(uae_u32 opcode) /* MOVE */
7558: {
7559: uae_u32 srcreg = (opcode & 7);
7560: uae_u32 dstreg = (opcode >> 9) & 7;
7561: OpcodeFamily = 30; CurrentInstrCycles = 26;
7562: {{m68k_incpc(2);
7563: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
7564: BusCyclePenalty += 2;
7565: { uae_s32 src = get_long(srca);
7566: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
7567: m68k_areg (regs, dstreg) = dsta;
7568: CLEAR_CZNV;
7569: SET_ZFLG (((uae_s32)(src)) == 0);
7570: SET_NFLG (((uae_s32)(src)) < 0);
7571: put_long(dsta,src);
7572: }}}}}return 26;
7573: }
7574: unsigned long REGPARAM2 CPUFUNC(op_2138_0)(uae_u32 opcode) /* MOVE */
7575: {
7576: uae_u32 dstreg = (opcode >> 9) & 7;
7577: OpcodeFamily = 30; CurrentInstrCycles = 24;
7578: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
7579: { uae_s32 src = get_long(srca);
7580: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
7581: m68k_areg (regs, dstreg) = dsta;
7582: CLEAR_CZNV;
7583: SET_ZFLG (((uae_s32)(src)) == 0);
7584: SET_NFLG (((uae_s32)(src)) < 0);
7585: put_long(dsta,src);
7586: }}}}m68k_incpc(4);
7587: return 24;
7588: }
7589: #endif
7590:
7591: #ifdef PART_3
7592: unsigned long REGPARAM2 CPUFUNC(op_2139_0)(uae_u32 opcode) /* MOVE */
7593: {
7594: uae_u32 dstreg = (opcode >> 9) & 7;
7595: OpcodeFamily = 30; CurrentInstrCycles = 28;
7596: {{ uaecptr srca = get_ilong(2);
7597: { uae_s32 src = get_long(srca);
7598: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
7599: m68k_areg (regs, dstreg) = dsta;
7600: CLEAR_CZNV;
7601: SET_ZFLG (((uae_s32)(src)) == 0);
7602: SET_NFLG (((uae_s32)(src)) < 0);
7603: put_long(dsta,src);
7604: }}}}m68k_incpc(6);
7605: return 28;
7606: }
7607: unsigned long REGPARAM2 CPUFUNC(op_213a_0)(uae_u32 opcode) /* MOVE */
7608: {
7609: uae_u32 dstreg = (opcode >> 9) & 7;
7610: OpcodeFamily = 30; CurrentInstrCycles = 24;
7611: {{ uaecptr srca = m68k_getpc () + 2;
7612: srca += (uae_s32)(uae_s16)get_iword(2);
7613: { uae_s32 src = get_long(srca);
7614: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
7615: m68k_areg (regs, dstreg) = dsta;
7616: CLEAR_CZNV;
7617: SET_ZFLG (((uae_s32)(src)) == 0);
7618: SET_NFLG (((uae_s32)(src)) < 0);
7619: put_long(dsta,src);
7620: }}}}m68k_incpc(4);
7621: return 24;
7622: }
7623: unsigned long REGPARAM2 CPUFUNC(op_213b_0)(uae_u32 opcode) /* MOVE */
7624: {
7625: uae_u32 dstreg = (opcode >> 9) & 7;
7626: OpcodeFamily = 30; CurrentInstrCycles = 26;
7627: {{m68k_incpc(2);
7628: { uaecptr tmppc = m68k_getpc();
7629: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
7630: BusCyclePenalty += 2;
7631: { uae_s32 src = get_long(srca);
7632: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
7633: m68k_areg (regs, dstreg) = dsta;
7634: CLEAR_CZNV;
7635: SET_ZFLG (((uae_s32)(src)) == 0);
7636: SET_NFLG (((uae_s32)(src)) < 0);
7637: put_long(dsta,src);
7638: }}}}}return 26;
7639: }
7640: unsigned long REGPARAM2 CPUFUNC(op_213c_0)(uae_u32 opcode) /* MOVE */
7641: {
7642: uae_u32 dstreg = (opcode >> 9) & 7;
7643: OpcodeFamily = 30; CurrentInstrCycles = 20;
7644: {{ uae_s32 src = get_ilong(2);
7645: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
7646: m68k_areg (regs, dstreg) = dsta;
7647: CLEAR_CZNV;
7648: SET_ZFLG (((uae_s32)(src)) == 0);
7649: SET_NFLG (((uae_s32)(src)) < 0);
7650: put_long(dsta,src);
7651: }}}m68k_incpc(6);
7652: return 20;
7653: }
7654: unsigned long REGPARAM2 CPUFUNC(op_2140_0)(uae_u32 opcode) /* MOVE */
7655: {
7656: uae_u32 srcreg = (opcode & 7);
7657: uae_u32 dstreg = (opcode >> 9) & 7;
7658: OpcodeFamily = 30; CurrentInstrCycles = 16;
7659: {{ uae_s32 src = m68k_dreg(regs, srcreg);
7660: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
7661: CLEAR_CZNV;
7662: SET_ZFLG (((uae_s32)(src)) == 0);
7663: SET_NFLG (((uae_s32)(src)) < 0);
7664: put_long(dsta,src);
7665: }}}m68k_incpc(4);
7666: return 16;
7667: }
7668: unsigned long REGPARAM2 CPUFUNC(op_2148_0)(uae_u32 opcode) /* MOVE */
7669: {
7670: uae_u32 srcreg = (opcode & 7);
7671: uae_u32 dstreg = (opcode >> 9) & 7;
7672: OpcodeFamily = 30; CurrentInstrCycles = 16;
7673: {{ uae_s32 src = m68k_areg(regs, srcreg);
7674: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
7675: CLEAR_CZNV;
7676: SET_ZFLG (((uae_s32)(src)) == 0);
7677: SET_NFLG (((uae_s32)(src)) < 0);
7678: put_long(dsta,src);
7679: }}}m68k_incpc(4);
7680: return 16;
7681: }
7682: unsigned long REGPARAM2 CPUFUNC(op_2150_0)(uae_u32 opcode) /* MOVE */
7683: {
7684: uae_u32 srcreg = (opcode & 7);
7685: uae_u32 dstreg = (opcode >> 9) & 7;
7686: OpcodeFamily = 30; CurrentInstrCycles = 24;
7687: {{ uaecptr srca = m68k_areg(regs, srcreg);
7688: { uae_s32 src = get_long(srca);
7689: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
7690: CLEAR_CZNV;
7691: SET_ZFLG (((uae_s32)(src)) == 0);
7692: SET_NFLG (((uae_s32)(src)) < 0);
7693: put_long(dsta,src);
7694: }}}}m68k_incpc(4);
7695: return 24;
7696: }
7697: unsigned long REGPARAM2 CPUFUNC(op_2158_0)(uae_u32 opcode) /* MOVE */
7698: {
7699: uae_u32 srcreg = (opcode & 7);
7700: uae_u32 dstreg = (opcode >> 9) & 7;
7701: OpcodeFamily = 30; CurrentInstrCycles = 24;
7702: {{ uaecptr srca = m68k_areg(regs, srcreg);
7703: { uae_s32 src = get_long(srca);
7704: m68k_areg(regs, srcreg) += 4;
7705: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
7706: CLEAR_CZNV;
7707: SET_ZFLG (((uae_s32)(src)) == 0);
7708: SET_NFLG (((uae_s32)(src)) < 0);
7709: put_long(dsta,src);
7710: }}}}m68k_incpc(4);
7711: return 24;
7712: }
7713: unsigned long REGPARAM2 CPUFUNC(op_2160_0)(uae_u32 opcode) /* MOVE */
7714: {
7715: uae_u32 srcreg = (opcode & 7);
7716: uae_u32 dstreg = (opcode >> 9) & 7;
7717: OpcodeFamily = 30; CurrentInstrCycles = 26;
7718: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
7719: { uae_s32 src = get_long(srca);
7720: m68k_areg (regs, srcreg) = srca;
7721: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
7722: CLEAR_CZNV;
7723: SET_ZFLG (((uae_s32)(src)) == 0);
7724: SET_NFLG (((uae_s32)(src)) < 0);
7725: put_long(dsta,src);
7726: }}}}m68k_incpc(4);
7727: return 26;
7728: }
7729: unsigned long REGPARAM2 CPUFUNC(op_2168_0)(uae_u32 opcode) /* MOVE */
7730: {
7731: uae_u32 srcreg = (opcode & 7);
7732: uae_u32 dstreg = (opcode >> 9) & 7;
7733: OpcodeFamily = 30; CurrentInstrCycles = 28;
7734: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
7735: { uae_s32 src = get_long(srca);
7736: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
7737: CLEAR_CZNV;
7738: SET_ZFLG (((uae_s32)(src)) == 0);
7739: SET_NFLG (((uae_s32)(src)) < 0);
7740: put_long(dsta,src);
7741: }}}}m68k_incpc(6);
7742: return 28;
7743: }
7744: unsigned long REGPARAM2 CPUFUNC(op_2170_0)(uae_u32 opcode) /* MOVE */
7745: {
7746: uae_u32 srcreg = (opcode & 7);
7747: uae_u32 dstreg = (opcode >> 9) & 7;
7748: OpcodeFamily = 30; CurrentInstrCycles = 30;
7749: {{m68k_incpc(2);
7750: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
7751: BusCyclePenalty += 2;
7752: { uae_s32 src = get_long(srca);
7753: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(0);
7754: CLEAR_CZNV;
7755: SET_ZFLG (((uae_s32)(src)) == 0);
7756: SET_NFLG (((uae_s32)(src)) < 0);
7757: put_long(dsta,src);
7758: }}}}}m68k_incpc(2);
7759: return 30;
7760: }
7761: unsigned long REGPARAM2 CPUFUNC(op_2178_0)(uae_u32 opcode) /* MOVE */
7762: {
7763: uae_u32 dstreg = (opcode >> 9) & 7;
7764: OpcodeFamily = 30; CurrentInstrCycles = 28;
7765: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
7766: { uae_s32 src = get_long(srca);
7767: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
7768: CLEAR_CZNV;
7769: SET_ZFLG (((uae_s32)(src)) == 0);
7770: SET_NFLG (((uae_s32)(src)) < 0);
7771: put_long(dsta,src);
7772: }}}}m68k_incpc(6);
7773: return 28;
7774: }
7775: unsigned long REGPARAM2 CPUFUNC(op_2179_0)(uae_u32 opcode) /* MOVE */
7776: {
7777: uae_u32 dstreg = (opcode >> 9) & 7;
7778: OpcodeFamily = 30; CurrentInstrCycles = 32;
7779: {{ uaecptr srca = get_ilong(2);
7780: { uae_s32 src = get_long(srca);
7781: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6);
7782: CLEAR_CZNV;
7783: SET_ZFLG (((uae_s32)(src)) == 0);
7784: SET_NFLG (((uae_s32)(src)) < 0);
7785: put_long(dsta,src);
7786: }}}}m68k_incpc(8);
7787: return 32;
7788: }
7789: unsigned long REGPARAM2 CPUFUNC(op_217a_0)(uae_u32 opcode) /* MOVE */
7790: {
7791: uae_u32 dstreg = (opcode >> 9) & 7;
7792: OpcodeFamily = 30; CurrentInstrCycles = 28;
7793: {{ uaecptr srca = m68k_getpc () + 2;
7794: srca += (uae_s32)(uae_s16)get_iword(2);
7795: { uae_s32 src = get_long(srca);
7796: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
7797: CLEAR_CZNV;
7798: SET_ZFLG (((uae_s32)(src)) == 0);
7799: SET_NFLG (((uae_s32)(src)) < 0);
7800: put_long(dsta,src);
7801: }}}}m68k_incpc(6);
7802: return 28;
7803: }
7804: unsigned long REGPARAM2 CPUFUNC(op_217b_0)(uae_u32 opcode) /* MOVE */
7805: {
7806: uae_u32 dstreg = (opcode >> 9) & 7;
7807: OpcodeFamily = 30; CurrentInstrCycles = 30;
7808: {{m68k_incpc(2);
7809: { uaecptr tmppc = m68k_getpc();
7810: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
7811: BusCyclePenalty += 2;
7812: { uae_s32 src = get_long(srca);
7813: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(0);
7814: CLEAR_CZNV;
7815: SET_ZFLG (((uae_s32)(src)) == 0);
7816: SET_NFLG (((uae_s32)(src)) < 0);
7817: put_long(dsta,src);
7818: }}}}}m68k_incpc(2);
7819: return 30;
7820: }
7821: unsigned long REGPARAM2 CPUFUNC(op_217c_0)(uae_u32 opcode) /* MOVE */
7822: {
7823: uae_u32 dstreg = (opcode >> 9) & 7;
7824: OpcodeFamily = 30; CurrentInstrCycles = 24;
7825: {{ uae_s32 src = get_ilong(2);
7826: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6);
7827: CLEAR_CZNV;
7828: SET_ZFLG (((uae_s32)(src)) == 0);
7829: SET_NFLG (((uae_s32)(src)) < 0);
7830: put_long(dsta,src);
7831: }}}m68k_incpc(8);
7832: return 24;
7833: }
7834: unsigned long REGPARAM2 CPUFUNC(op_2180_0)(uae_u32 opcode) /* MOVE */
7835: {
7836: uae_u32 srcreg = (opcode & 7);
7837: uae_u32 dstreg = (opcode >> 9) & 7;
7838: OpcodeFamily = 30; CurrentInstrCycles = 18;
7839: {{ uae_s32 src = m68k_dreg(regs, srcreg);
7840: {m68k_incpc(2);
7841: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
7842: BusCyclePenalty += 2;
7843: CLEAR_CZNV;
7844: SET_ZFLG (((uae_s32)(src)) == 0);
7845: SET_NFLG (((uae_s32)(src)) < 0);
7846: put_long(dsta,src);
7847: }}}}return 18;
7848: }
7849: unsigned long REGPARAM2 CPUFUNC(op_2188_0)(uae_u32 opcode) /* MOVE */
7850: {
7851: uae_u32 srcreg = (opcode & 7);
7852: uae_u32 dstreg = (opcode >> 9) & 7;
7853: OpcodeFamily = 30; CurrentInstrCycles = 18;
7854: {{ uae_s32 src = m68k_areg(regs, srcreg);
7855: {m68k_incpc(2);
7856: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
7857: BusCyclePenalty += 2;
7858: CLEAR_CZNV;
7859: SET_ZFLG (((uae_s32)(src)) == 0);
7860: SET_NFLG (((uae_s32)(src)) < 0);
7861: put_long(dsta,src);
7862: }}}}return 18;
7863: }
7864: unsigned long REGPARAM2 CPUFUNC(op_2190_0)(uae_u32 opcode) /* MOVE */
7865: {
7866: uae_u32 srcreg = (opcode & 7);
7867: uae_u32 dstreg = (opcode >> 9) & 7;
7868: OpcodeFamily = 30; CurrentInstrCycles = 26;
7869: {{ uaecptr srca = m68k_areg(regs, srcreg);
7870: { uae_s32 src = get_long(srca);
7871: {m68k_incpc(2);
7872: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
7873: BusCyclePenalty += 2;
7874: CLEAR_CZNV;
7875: SET_ZFLG (((uae_s32)(src)) == 0);
7876: SET_NFLG (((uae_s32)(src)) < 0);
7877: put_long(dsta,src);
7878: }}}}}return 26;
7879: }
7880: unsigned long REGPARAM2 CPUFUNC(op_2198_0)(uae_u32 opcode) /* MOVE */
7881: {
7882: uae_u32 srcreg = (opcode & 7);
7883: uae_u32 dstreg = (opcode >> 9) & 7;
7884: OpcodeFamily = 30; CurrentInstrCycles = 26;
7885: {{ uaecptr srca = m68k_areg(regs, srcreg);
7886: { uae_s32 src = get_long(srca);
7887: m68k_areg(regs, srcreg) += 4;
7888: {m68k_incpc(2);
7889: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
7890: BusCyclePenalty += 2;
7891: CLEAR_CZNV;
7892: SET_ZFLG (((uae_s32)(src)) == 0);
7893: SET_NFLG (((uae_s32)(src)) < 0);
7894: put_long(dsta,src);
7895: }}}}}return 26;
7896: }
7897: unsigned long REGPARAM2 CPUFUNC(op_21a0_0)(uae_u32 opcode) /* MOVE */
7898: {
7899: uae_u32 srcreg = (opcode & 7);
7900: uae_u32 dstreg = (opcode >> 9) & 7;
7901: OpcodeFamily = 30; CurrentInstrCycles = 28;
7902: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
7903: { uae_s32 src = get_long(srca);
7904: m68k_areg (regs, srcreg) = srca;
7905: {m68k_incpc(2);
7906: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
7907: BusCyclePenalty += 2;
7908: CLEAR_CZNV;
7909: SET_ZFLG (((uae_s32)(src)) == 0);
7910: SET_NFLG (((uae_s32)(src)) < 0);
7911: put_long(dsta,src);
7912: }}}}}return 28;
7913: }
7914: unsigned long REGPARAM2 CPUFUNC(op_21a8_0)(uae_u32 opcode) /* MOVE */
7915: {
7916: uae_u32 srcreg = (opcode & 7);
7917: uae_u32 dstreg = (opcode >> 9) & 7;
7918: OpcodeFamily = 30; CurrentInstrCycles = 30;
7919: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
7920: { uae_s32 src = get_long(srca);
7921: {m68k_incpc(4);
7922: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
7923: BusCyclePenalty += 2;
7924: CLEAR_CZNV;
7925: SET_ZFLG (((uae_s32)(src)) == 0);
7926: SET_NFLG (((uae_s32)(src)) < 0);
7927: put_long(dsta,src);
7928: }}}}}return 30;
7929: }
7930: unsigned long REGPARAM2 CPUFUNC(op_21b0_0)(uae_u32 opcode) /* MOVE */
7931: {
7932: uae_u32 srcreg = (opcode & 7);
7933: uae_u32 dstreg = (opcode >> 9) & 7;
7934: OpcodeFamily = 30; CurrentInstrCycles = 32;
7935: {{m68k_incpc(2);
7936: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
7937: BusCyclePenalty += 2;
7938: { uae_s32 src = get_long(srca);
7939: {{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
7940: BusCyclePenalty += 2;
7941: CLEAR_CZNV;
7942: SET_ZFLG (((uae_s32)(src)) == 0);
7943: SET_NFLG (((uae_s32)(src)) < 0);
7944: put_long(dsta,src);
7945: }}}}}}return 32;
7946: }
7947: unsigned long REGPARAM2 CPUFUNC(op_21b8_0)(uae_u32 opcode) /* MOVE */
7948: {
7949: uae_u32 dstreg = (opcode >> 9) & 7;
7950: OpcodeFamily = 30; CurrentInstrCycles = 30;
7951: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
7952: { uae_s32 src = get_long(srca);
7953: {m68k_incpc(4);
7954: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
7955: BusCyclePenalty += 2;
7956: CLEAR_CZNV;
7957: SET_ZFLG (((uae_s32)(src)) == 0);
7958: SET_NFLG (((uae_s32)(src)) < 0);
7959: put_long(dsta,src);
7960: }}}}}return 30;
7961: }
7962: unsigned long REGPARAM2 CPUFUNC(op_21b9_0)(uae_u32 opcode) /* MOVE */
7963: {
7964: uae_u32 dstreg = (opcode >> 9) & 7;
7965: OpcodeFamily = 30; CurrentInstrCycles = 34;
7966: {{ uaecptr srca = get_ilong(2);
7967: { uae_s32 src = get_long(srca);
7968: {m68k_incpc(6);
7969: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
7970: BusCyclePenalty += 2;
7971: CLEAR_CZNV;
7972: SET_ZFLG (((uae_s32)(src)) == 0);
7973: SET_NFLG (((uae_s32)(src)) < 0);
7974: put_long(dsta,src);
7975: }}}}}return 34;
7976: }
7977: unsigned long REGPARAM2 CPUFUNC(op_21ba_0)(uae_u32 opcode) /* MOVE */
7978: {
7979: uae_u32 dstreg = (opcode >> 9) & 7;
7980: OpcodeFamily = 30; CurrentInstrCycles = 30;
7981: {{ uaecptr srca = m68k_getpc () + 2;
7982: srca += (uae_s32)(uae_s16)get_iword(2);
7983: { uae_s32 src = get_long(srca);
7984: {m68k_incpc(4);
7985: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
7986: BusCyclePenalty += 2;
7987: CLEAR_CZNV;
7988: SET_ZFLG (((uae_s32)(src)) == 0);
7989: SET_NFLG (((uae_s32)(src)) < 0);
7990: put_long(dsta,src);
7991: }}}}}return 30;
7992: }
7993: unsigned long REGPARAM2 CPUFUNC(op_21bb_0)(uae_u32 opcode) /* MOVE */
7994: {
7995: uae_u32 dstreg = (opcode >> 9) & 7;
7996: OpcodeFamily = 30; CurrentInstrCycles = 32;
7997: {{m68k_incpc(2);
7998: { uaecptr tmppc = m68k_getpc();
7999: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
8000: BusCyclePenalty += 2;
8001: { uae_s32 src = get_long(srca);
8002: {{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
8003: BusCyclePenalty += 2;
8004: CLEAR_CZNV;
8005: SET_ZFLG (((uae_s32)(src)) == 0);
8006: SET_NFLG (((uae_s32)(src)) < 0);
8007: put_long(dsta,src);
8008: }}}}}}return 32;
8009: }
8010: unsigned long REGPARAM2 CPUFUNC(op_21bc_0)(uae_u32 opcode) /* MOVE */
8011: {
8012: uae_u32 dstreg = (opcode >> 9) & 7;
8013: OpcodeFamily = 30; CurrentInstrCycles = 26;
8014: {{ uae_s32 src = get_ilong(2);
8015: {m68k_incpc(6);
8016: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
8017: BusCyclePenalty += 2;
8018: CLEAR_CZNV;
8019: SET_ZFLG (((uae_s32)(src)) == 0);
8020: SET_NFLG (((uae_s32)(src)) < 0);
8021: put_long(dsta,src);
8022: }}}}return 26;
8023: }
8024: unsigned long REGPARAM2 CPUFUNC(op_21c0_0)(uae_u32 opcode) /* MOVE */
8025: {
8026: uae_u32 srcreg = (opcode & 7);
8027: OpcodeFamily = 30; CurrentInstrCycles = 16;
8028: {{ uae_s32 src = m68k_dreg(regs, srcreg);
8029: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
8030: CLEAR_CZNV;
8031: SET_ZFLG (((uae_s32)(src)) == 0);
8032: SET_NFLG (((uae_s32)(src)) < 0);
8033: put_long(dsta,src);
8034: }}}m68k_incpc(4);
8035: return 16;
8036: }
8037: unsigned long REGPARAM2 CPUFUNC(op_21c8_0)(uae_u32 opcode) /* MOVE */
8038: {
8039: uae_u32 srcreg = (opcode & 7);
8040: OpcodeFamily = 30; CurrentInstrCycles = 16;
8041: {{ uae_s32 src = m68k_areg(regs, srcreg);
8042: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
8043: CLEAR_CZNV;
8044: SET_ZFLG (((uae_s32)(src)) == 0);
8045: SET_NFLG (((uae_s32)(src)) < 0);
8046: put_long(dsta,src);
8047: }}}m68k_incpc(4);
8048: return 16;
8049: }
8050: unsigned long REGPARAM2 CPUFUNC(op_21d0_0)(uae_u32 opcode) /* MOVE */
8051: {
8052: uae_u32 srcreg = (opcode & 7);
8053: OpcodeFamily = 30; CurrentInstrCycles = 24;
8054: {{ uaecptr srca = m68k_areg(regs, srcreg);
8055: { uae_s32 src = get_long(srca);
8056: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
8057: CLEAR_CZNV;
8058: SET_ZFLG (((uae_s32)(src)) == 0);
8059: SET_NFLG (((uae_s32)(src)) < 0);
8060: put_long(dsta,src);
8061: }}}}m68k_incpc(4);
8062: return 24;
8063: }
8064: unsigned long REGPARAM2 CPUFUNC(op_21d8_0)(uae_u32 opcode) /* MOVE */
8065: {
8066: uae_u32 srcreg = (opcode & 7);
8067: OpcodeFamily = 30; CurrentInstrCycles = 24;
8068: {{ uaecptr srca = m68k_areg(regs, srcreg);
8069: { uae_s32 src = get_long(srca);
8070: m68k_areg(regs, srcreg) += 4;
8071: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
8072: CLEAR_CZNV;
8073: SET_ZFLG (((uae_s32)(src)) == 0);
8074: SET_NFLG (((uae_s32)(src)) < 0);
8075: put_long(dsta,src);
8076: }}}}m68k_incpc(4);
8077: return 24;
8078: }
8079: unsigned long REGPARAM2 CPUFUNC(op_21e0_0)(uae_u32 opcode) /* MOVE */
8080: {
8081: uae_u32 srcreg = (opcode & 7);
8082: OpcodeFamily = 30; CurrentInstrCycles = 26;
8083: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
8084: { uae_s32 src = get_long(srca);
8085: m68k_areg (regs, srcreg) = srca;
8086: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
8087: CLEAR_CZNV;
8088: SET_ZFLG (((uae_s32)(src)) == 0);
8089: SET_NFLG (((uae_s32)(src)) < 0);
8090: put_long(dsta,src);
8091: }}}}m68k_incpc(4);
8092: return 26;
8093: }
8094: unsigned long REGPARAM2 CPUFUNC(op_21e8_0)(uae_u32 opcode) /* MOVE */
8095: {
8096: uae_u32 srcreg = (opcode & 7);
8097: OpcodeFamily = 30; CurrentInstrCycles = 28;
8098: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
8099: { uae_s32 src = get_long(srca);
8100: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
8101: CLEAR_CZNV;
8102: SET_ZFLG (((uae_s32)(src)) == 0);
8103: SET_NFLG (((uae_s32)(src)) < 0);
8104: put_long(dsta,src);
8105: }}}}m68k_incpc(6);
8106: return 28;
8107: }
8108: unsigned long REGPARAM2 CPUFUNC(op_21f0_0)(uae_u32 opcode) /* MOVE */
8109: {
8110: uae_u32 srcreg = (opcode & 7);
8111: OpcodeFamily = 30; CurrentInstrCycles = 30;
8112: {{m68k_incpc(2);
8113: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
8114: BusCyclePenalty += 2;
8115: { uae_s32 src = get_long(srca);
8116: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(0);
8117: CLEAR_CZNV;
8118: SET_ZFLG (((uae_s32)(src)) == 0);
8119: SET_NFLG (((uae_s32)(src)) < 0);
8120: put_long(dsta,src);
8121: }}}}}m68k_incpc(2);
8122: return 30;
8123: }
8124: unsigned long REGPARAM2 CPUFUNC(op_21f8_0)(uae_u32 opcode) /* MOVE */
8125: {
8126: OpcodeFamily = 30; CurrentInstrCycles = 28;
8127: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
8128: { uae_s32 src = get_long(srca);
8129: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
8130: CLEAR_CZNV;
8131: SET_ZFLG (((uae_s32)(src)) == 0);
8132: SET_NFLG (((uae_s32)(src)) < 0);
8133: put_long(dsta,src);
8134: }}}}m68k_incpc(6);
8135: return 28;
8136: }
8137: unsigned long REGPARAM2 CPUFUNC(op_21f9_0)(uae_u32 opcode) /* MOVE */
8138: {
8139: OpcodeFamily = 30; CurrentInstrCycles = 32;
8140: {{ uaecptr srca = get_ilong(2);
8141: { uae_s32 src = get_long(srca);
8142: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(6);
8143: CLEAR_CZNV;
8144: SET_ZFLG (((uae_s32)(src)) == 0);
8145: SET_NFLG (((uae_s32)(src)) < 0);
8146: put_long(dsta,src);
8147: }}}}m68k_incpc(8);
8148: return 32;
8149: }
8150: unsigned long REGPARAM2 CPUFUNC(op_21fa_0)(uae_u32 opcode) /* MOVE */
8151: {
8152: OpcodeFamily = 30; CurrentInstrCycles = 28;
8153: {{ uaecptr srca = m68k_getpc () + 2;
8154: srca += (uae_s32)(uae_s16)get_iword(2);
8155: { uae_s32 src = get_long(srca);
8156: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
8157: CLEAR_CZNV;
8158: SET_ZFLG (((uae_s32)(src)) == 0);
8159: SET_NFLG (((uae_s32)(src)) < 0);
8160: put_long(dsta,src);
8161: }}}}m68k_incpc(6);
8162: return 28;
8163: }
8164: unsigned long REGPARAM2 CPUFUNC(op_21fb_0)(uae_u32 opcode) /* MOVE */
8165: {
8166: OpcodeFamily = 30; CurrentInstrCycles = 30;
8167: {{m68k_incpc(2);
8168: { uaecptr tmppc = m68k_getpc();
8169: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
8170: BusCyclePenalty += 2;
8171: { uae_s32 src = get_long(srca);
8172: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(0);
8173: CLEAR_CZNV;
8174: SET_ZFLG (((uae_s32)(src)) == 0);
8175: SET_NFLG (((uae_s32)(src)) < 0);
8176: put_long(dsta,src);
8177: }}}}}m68k_incpc(2);
8178: return 30;
8179: }
8180: unsigned long REGPARAM2 CPUFUNC(op_21fc_0)(uae_u32 opcode) /* MOVE */
8181: {
8182: OpcodeFamily = 30; CurrentInstrCycles = 24;
8183: {{ uae_s32 src = get_ilong(2);
8184: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(6);
8185: CLEAR_CZNV;
8186: SET_ZFLG (((uae_s32)(src)) == 0);
8187: SET_NFLG (((uae_s32)(src)) < 0);
8188: put_long(dsta,src);
8189: }}}m68k_incpc(8);
8190: return 24;
8191: }
8192: unsigned long REGPARAM2 CPUFUNC(op_23c0_0)(uae_u32 opcode) /* MOVE */
8193: {
8194: uae_u32 srcreg = (opcode & 7);
8195: OpcodeFamily = 30; CurrentInstrCycles = 20;
8196: {{ uae_s32 src = m68k_dreg(regs, srcreg);
8197: { uaecptr dsta = get_ilong(2);
8198: CLEAR_CZNV;
8199: SET_ZFLG (((uae_s32)(src)) == 0);
8200: SET_NFLG (((uae_s32)(src)) < 0);
8201: put_long(dsta,src);
8202: }}}m68k_incpc(6);
8203: return 20;
8204: }
8205: unsigned long REGPARAM2 CPUFUNC(op_23c8_0)(uae_u32 opcode) /* MOVE */
8206: {
8207: uae_u32 srcreg = (opcode & 7);
8208: OpcodeFamily = 30; CurrentInstrCycles = 20;
8209: {{ uae_s32 src = m68k_areg(regs, srcreg);
8210: { uaecptr dsta = get_ilong(2);
8211: CLEAR_CZNV;
8212: SET_ZFLG (((uae_s32)(src)) == 0);
8213: SET_NFLG (((uae_s32)(src)) < 0);
8214: put_long(dsta,src);
8215: }}}m68k_incpc(6);
8216: return 20;
8217: }
8218: unsigned long REGPARAM2 CPUFUNC(op_23d0_0)(uae_u32 opcode) /* MOVE */
8219: {
8220: uae_u32 srcreg = (opcode & 7);
8221: OpcodeFamily = 30; CurrentInstrCycles = 28;
8222: {{ uaecptr srca = m68k_areg(regs, srcreg);
8223: { uae_s32 src = get_long(srca);
8224: { uaecptr dsta = get_ilong(2);
8225: CLEAR_CZNV;
8226: SET_ZFLG (((uae_s32)(src)) == 0);
8227: SET_NFLG (((uae_s32)(src)) < 0);
8228: put_long(dsta,src);
8229: }}}}m68k_incpc(6);
8230: return 28;
8231: }
8232: unsigned long REGPARAM2 CPUFUNC(op_23d8_0)(uae_u32 opcode) /* MOVE */
8233: {
8234: uae_u32 srcreg = (opcode & 7);
8235: OpcodeFamily = 30; CurrentInstrCycles = 28;
8236: {{ uaecptr srca = m68k_areg(regs, srcreg);
8237: { uae_s32 src = get_long(srca);
8238: m68k_areg(regs, srcreg) += 4;
8239: { uaecptr dsta = get_ilong(2);
8240: CLEAR_CZNV;
8241: SET_ZFLG (((uae_s32)(src)) == 0);
8242: SET_NFLG (((uae_s32)(src)) < 0);
8243: put_long(dsta,src);
8244: }}}}m68k_incpc(6);
8245: return 28;
8246: }
8247: unsigned long REGPARAM2 CPUFUNC(op_23e0_0)(uae_u32 opcode) /* MOVE */
8248: {
8249: uae_u32 srcreg = (opcode & 7);
8250: OpcodeFamily = 30; CurrentInstrCycles = 30;
8251: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
8252: { uae_s32 src = get_long(srca);
8253: m68k_areg (regs, srcreg) = srca;
8254: { uaecptr dsta = get_ilong(2);
8255: CLEAR_CZNV;
8256: SET_ZFLG (((uae_s32)(src)) == 0);
8257: SET_NFLG (((uae_s32)(src)) < 0);
8258: put_long(dsta,src);
8259: }}}}m68k_incpc(6);
8260: return 30;
8261: }
8262: unsigned long REGPARAM2 CPUFUNC(op_23e8_0)(uae_u32 opcode) /* MOVE */
8263: {
8264: uae_u32 srcreg = (opcode & 7);
8265: OpcodeFamily = 30; CurrentInstrCycles = 32;
8266: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
8267: { uae_s32 src = get_long(srca);
8268: { uaecptr dsta = get_ilong(4);
8269: CLEAR_CZNV;
8270: SET_ZFLG (((uae_s32)(src)) == 0);
8271: SET_NFLG (((uae_s32)(src)) < 0);
8272: put_long(dsta,src);
8273: }}}}m68k_incpc(8);
8274: return 32;
8275: }
8276: unsigned long REGPARAM2 CPUFUNC(op_23f0_0)(uae_u32 opcode) /* MOVE */
8277: {
8278: uae_u32 srcreg = (opcode & 7);
8279: OpcodeFamily = 30; CurrentInstrCycles = 34;
8280: {{m68k_incpc(2);
8281: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
8282: BusCyclePenalty += 2;
8283: { uae_s32 src = get_long(srca);
8284: { uaecptr dsta = get_ilong(0);
8285: CLEAR_CZNV;
8286: SET_ZFLG (((uae_s32)(src)) == 0);
8287: SET_NFLG (((uae_s32)(src)) < 0);
8288: put_long(dsta,src);
8289: }}}}}m68k_incpc(4);
8290: return 34;
8291: }
8292: unsigned long REGPARAM2 CPUFUNC(op_23f8_0)(uae_u32 opcode) /* MOVE */
8293: {
8294: OpcodeFamily = 30; CurrentInstrCycles = 32;
8295: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
8296: { uae_s32 src = get_long(srca);
8297: { uaecptr dsta = get_ilong(4);
8298: CLEAR_CZNV;
8299: SET_ZFLG (((uae_s32)(src)) == 0);
8300: SET_NFLG (((uae_s32)(src)) < 0);
8301: put_long(dsta,src);
8302: }}}}m68k_incpc(8);
8303: return 32;
8304: }
8305: unsigned long REGPARAM2 CPUFUNC(op_23f9_0)(uae_u32 opcode) /* MOVE */
8306: {
8307: OpcodeFamily = 30; CurrentInstrCycles = 36;
8308: {{ uaecptr srca = get_ilong(2);
8309: { uae_s32 src = get_long(srca);
8310: { uaecptr dsta = get_ilong(6);
8311: CLEAR_CZNV;
8312: SET_ZFLG (((uae_s32)(src)) == 0);
8313: SET_NFLG (((uae_s32)(src)) < 0);
8314: put_long(dsta,src);
8315: }}}}m68k_incpc(10);
8316: return 36;
8317: }
8318: unsigned long REGPARAM2 CPUFUNC(op_23fa_0)(uae_u32 opcode) /* MOVE */
8319: {
8320: OpcodeFamily = 30; CurrentInstrCycles = 32;
8321: {{ uaecptr srca = m68k_getpc () + 2;
8322: srca += (uae_s32)(uae_s16)get_iword(2);
8323: { uae_s32 src = get_long(srca);
8324: { uaecptr dsta = get_ilong(4);
8325: CLEAR_CZNV;
8326: SET_ZFLG (((uae_s32)(src)) == 0);
8327: SET_NFLG (((uae_s32)(src)) < 0);
8328: put_long(dsta,src);
8329: }}}}m68k_incpc(8);
8330: return 32;
8331: }
8332: unsigned long REGPARAM2 CPUFUNC(op_23fb_0)(uae_u32 opcode) /* MOVE */
8333: {
8334: OpcodeFamily = 30; CurrentInstrCycles = 34;
8335: {{m68k_incpc(2);
8336: { uaecptr tmppc = m68k_getpc();
8337: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
8338: BusCyclePenalty += 2;
8339: { uae_s32 src = get_long(srca);
8340: { uaecptr dsta = get_ilong(0);
8341: CLEAR_CZNV;
8342: SET_ZFLG (((uae_s32)(src)) == 0);
8343: SET_NFLG (((uae_s32)(src)) < 0);
8344: put_long(dsta,src);
8345: }}}}}m68k_incpc(4);
8346: return 34;
8347: }
8348: unsigned long REGPARAM2 CPUFUNC(op_23fc_0)(uae_u32 opcode) /* MOVE */
8349: {
8350: OpcodeFamily = 30; CurrentInstrCycles = 28;
8351: {{ uae_s32 src = get_ilong(2);
8352: { uaecptr dsta = get_ilong(6);
8353: CLEAR_CZNV;
8354: SET_ZFLG (((uae_s32)(src)) == 0);
8355: SET_NFLG (((uae_s32)(src)) < 0);
8356: put_long(dsta,src);
8357: }}}m68k_incpc(10);
8358: return 28;
8359: }
8360: unsigned long REGPARAM2 CPUFUNC(op_3000_0)(uae_u32 opcode) /* MOVE */
8361: {
8362: uae_u32 srcreg = (opcode & 7);
8363: uae_u32 dstreg = (opcode >> 9) & 7;
8364: OpcodeFamily = 30; CurrentInstrCycles = 4;
8365: {{ uae_s16 src = m68k_dreg(regs, srcreg);
8366: { CLEAR_CZNV;
8367: SET_ZFLG (((uae_s16)(src)) == 0);
8368: SET_NFLG (((uae_s16)(src)) < 0);
8369: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
8370: }}}m68k_incpc(2);
8371: return 4;
8372: }
8373: unsigned long REGPARAM2 CPUFUNC(op_3008_0)(uae_u32 opcode) /* MOVE */
8374: {
8375: uae_u32 srcreg = (opcode & 7);
8376: uae_u32 dstreg = (opcode >> 9) & 7;
8377: OpcodeFamily = 30; CurrentInstrCycles = 4;
8378: {{ uae_s16 src = m68k_areg(regs, srcreg);
8379: { CLEAR_CZNV;
8380: SET_ZFLG (((uae_s16)(src)) == 0);
8381: SET_NFLG (((uae_s16)(src)) < 0);
8382: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
8383: }}}m68k_incpc(2);
8384: return 4;
8385: }
8386: unsigned long REGPARAM2 CPUFUNC(op_3010_0)(uae_u32 opcode) /* MOVE */
8387: {
8388: uae_u32 srcreg = (opcode & 7);
8389: uae_u32 dstreg = (opcode >> 9) & 7;
8390: OpcodeFamily = 30; CurrentInstrCycles = 8;
8391: {{ uaecptr srca = m68k_areg(regs, srcreg);
8392: { uae_s16 src = get_word(srca);
8393: { CLEAR_CZNV;
8394: SET_ZFLG (((uae_s16)(src)) == 0);
8395: SET_NFLG (((uae_s16)(src)) < 0);
8396: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
8397: }}}}m68k_incpc(2);
8398: return 8;
8399: }
8400: unsigned long REGPARAM2 CPUFUNC(op_3018_0)(uae_u32 opcode) /* MOVE */
8401: {
8402: uae_u32 srcreg = (opcode & 7);
8403: uae_u32 dstreg = (opcode >> 9) & 7;
8404: OpcodeFamily = 30; CurrentInstrCycles = 8;
8405: {{ uaecptr srca = m68k_areg(regs, srcreg);
8406: { uae_s16 src = get_word(srca);
8407: m68k_areg(regs, srcreg) += 2;
8408: { CLEAR_CZNV;
8409: SET_ZFLG (((uae_s16)(src)) == 0);
8410: SET_NFLG (((uae_s16)(src)) < 0);
8411: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
8412: }}}}m68k_incpc(2);
8413: return 8;
8414: }
8415: unsigned long REGPARAM2 CPUFUNC(op_3020_0)(uae_u32 opcode) /* MOVE */
8416: {
8417: uae_u32 srcreg = (opcode & 7);
8418: uae_u32 dstreg = (opcode >> 9) & 7;
8419: OpcodeFamily = 30; CurrentInstrCycles = 10;
8420: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
8421: { uae_s16 src = get_word(srca);
8422: m68k_areg (regs, srcreg) = srca;
8423: { CLEAR_CZNV;
8424: SET_ZFLG (((uae_s16)(src)) == 0);
8425: SET_NFLG (((uae_s16)(src)) < 0);
8426: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
8427: }}}}m68k_incpc(2);
8428: return 10;
8429: }
8430: unsigned long REGPARAM2 CPUFUNC(op_3028_0)(uae_u32 opcode) /* MOVE */
8431: {
8432: uae_u32 srcreg = (opcode & 7);
8433: uae_u32 dstreg = (opcode >> 9) & 7;
8434: OpcodeFamily = 30; CurrentInstrCycles = 12;
8435: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
8436: { uae_s16 src = get_word(srca);
8437: { CLEAR_CZNV;
8438: SET_ZFLG (((uae_s16)(src)) == 0);
8439: SET_NFLG (((uae_s16)(src)) < 0);
8440: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
8441: }}}}m68k_incpc(4);
8442: return 12;
8443: }
8444: unsigned long REGPARAM2 CPUFUNC(op_3030_0)(uae_u32 opcode) /* MOVE */
8445: {
8446: uae_u32 srcreg = (opcode & 7);
8447: uae_u32 dstreg = (opcode >> 9) & 7;
8448: OpcodeFamily = 30; CurrentInstrCycles = 14;
8449: {{m68k_incpc(2);
8450: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
8451: BusCyclePenalty += 2;
8452: { uae_s16 src = get_word(srca);
8453: { CLEAR_CZNV;
8454: SET_ZFLG (((uae_s16)(src)) == 0);
8455: SET_NFLG (((uae_s16)(src)) < 0);
8456: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
8457: }}}}}return 14;
8458: }
8459: unsigned long REGPARAM2 CPUFUNC(op_3038_0)(uae_u32 opcode) /* MOVE */
8460: {
8461: uae_u32 dstreg = (opcode >> 9) & 7;
8462: OpcodeFamily = 30; CurrentInstrCycles = 12;
8463: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
8464: { uae_s16 src = get_word(srca);
8465: { CLEAR_CZNV;
8466: SET_ZFLG (((uae_s16)(src)) == 0);
8467: SET_NFLG (((uae_s16)(src)) < 0);
8468: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
8469: }}}}m68k_incpc(4);
8470: return 12;
8471: }
8472: unsigned long REGPARAM2 CPUFUNC(op_3039_0)(uae_u32 opcode) /* MOVE */
8473: {
8474: uae_u32 dstreg = (opcode >> 9) & 7;
8475: OpcodeFamily = 30; CurrentInstrCycles = 16;
8476: {{ uaecptr srca = get_ilong(2);
8477: { uae_s16 src = get_word(srca);
8478: { CLEAR_CZNV;
8479: SET_ZFLG (((uae_s16)(src)) == 0);
8480: SET_NFLG (((uae_s16)(src)) < 0);
8481: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
8482: }}}}m68k_incpc(6);
8483: return 16;
8484: }
8485: unsigned long REGPARAM2 CPUFUNC(op_303a_0)(uae_u32 opcode) /* MOVE */
8486: {
8487: uae_u32 dstreg = (opcode >> 9) & 7;
8488: OpcodeFamily = 30; CurrentInstrCycles = 12;
8489: {{ uaecptr srca = m68k_getpc () + 2;
8490: srca += (uae_s32)(uae_s16)get_iword(2);
8491: { uae_s16 src = get_word(srca);
8492: { CLEAR_CZNV;
8493: SET_ZFLG (((uae_s16)(src)) == 0);
8494: SET_NFLG (((uae_s16)(src)) < 0);
8495: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
8496: }}}}m68k_incpc(4);
8497: return 12;
8498: }
8499: unsigned long REGPARAM2 CPUFUNC(op_303b_0)(uae_u32 opcode) /* MOVE */
8500: {
8501: uae_u32 dstreg = (opcode >> 9) & 7;
8502: OpcodeFamily = 30; CurrentInstrCycles = 14;
8503: {{m68k_incpc(2);
8504: { uaecptr tmppc = m68k_getpc();
8505: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
8506: BusCyclePenalty += 2;
8507: { uae_s16 src = get_word(srca);
8508: { CLEAR_CZNV;
8509: SET_ZFLG (((uae_s16)(src)) == 0);
8510: SET_NFLG (((uae_s16)(src)) < 0);
8511: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
8512: }}}}}return 14;
8513: }
8514: unsigned long REGPARAM2 CPUFUNC(op_303c_0)(uae_u32 opcode) /* MOVE */
8515: {
8516: uae_u32 dstreg = (opcode >> 9) & 7;
8517: OpcodeFamily = 30; CurrentInstrCycles = 8;
8518: {{ uae_s16 src = get_iword(2);
8519: { CLEAR_CZNV;
8520: SET_ZFLG (((uae_s16)(src)) == 0);
8521: SET_NFLG (((uae_s16)(src)) < 0);
8522: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
8523: }}}m68k_incpc(4);
8524: return 8;
8525: }
8526: unsigned long REGPARAM2 CPUFUNC(op_3040_0)(uae_u32 opcode) /* MOVEA */
8527: {
8528: uae_u32 srcreg = (opcode & 7);
8529: uae_u32 dstreg = (opcode >> 9) & 7;
8530: OpcodeFamily = 31; CurrentInstrCycles = 4;
8531: {{ uae_s16 src = m68k_dreg(regs, srcreg);
8532: { uae_u32 val = (uae_s32)(uae_s16)src;
8533: m68k_areg(regs, dstreg) = (val);
8534: }}}m68k_incpc(2);
8535: return 4;
8536: }
8537: unsigned long REGPARAM2 CPUFUNC(op_3048_0)(uae_u32 opcode) /* MOVEA */
8538: {
8539: uae_u32 srcreg = (opcode & 7);
8540: uae_u32 dstreg = (opcode >> 9) & 7;
8541: OpcodeFamily = 31; CurrentInstrCycles = 4;
8542: {{ uae_s16 src = m68k_areg(regs, srcreg);
8543: { uae_u32 val = (uae_s32)(uae_s16)src;
8544: m68k_areg(regs, dstreg) = (val);
8545: }}}m68k_incpc(2);
8546: return 4;
8547: }
8548: unsigned long REGPARAM2 CPUFUNC(op_3050_0)(uae_u32 opcode) /* MOVEA */
8549: {
8550: uae_u32 srcreg = (opcode & 7);
8551: uae_u32 dstreg = (opcode >> 9) & 7;
8552: OpcodeFamily = 31; CurrentInstrCycles = 8;
8553: {{ uaecptr srca = m68k_areg(regs, srcreg);
8554: { uae_s16 src = get_word(srca);
8555: { uae_u32 val = (uae_s32)(uae_s16)src;
8556: m68k_areg(regs, dstreg) = (val);
8557: }}}}m68k_incpc(2);
8558: return 8;
8559: }
8560: unsigned long REGPARAM2 CPUFUNC(op_3058_0)(uae_u32 opcode) /* MOVEA */
8561: {
8562: uae_u32 srcreg = (opcode & 7);
8563: uae_u32 dstreg = (opcode >> 9) & 7;
8564: OpcodeFamily = 31; CurrentInstrCycles = 8;
8565: {{ uaecptr srca = m68k_areg(regs, srcreg);
8566: { uae_s16 src = get_word(srca);
8567: m68k_areg(regs, srcreg) += 2;
8568: { uae_u32 val = (uae_s32)(uae_s16)src;
8569: m68k_areg(regs, dstreg) = (val);
8570: }}}}m68k_incpc(2);
8571: return 8;
8572: }
8573: unsigned long REGPARAM2 CPUFUNC(op_3060_0)(uae_u32 opcode) /* MOVEA */
8574: {
8575: uae_u32 srcreg = (opcode & 7);
8576: uae_u32 dstreg = (opcode >> 9) & 7;
8577: OpcodeFamily = 31; CurrentInstrCycles = 10;
8578: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
8579: { uae_s16 src = get_word(srca);
8580: m68k_areg (regs, srcreg) = srca;
8581: { uae_u32 val = (uae_s32)(uae_s16)src;
8582: m68k_areg(regs, dstreg) = (val);
8583: }}}}m68k_incpc(2);
8584: return 10;
8585: }
8586: unsigned long REGPARAM2 CPUFUNC(op_3068_0)(uae_u32 opcode) /* MOVEA */
8587: {
8588: uae_u32 srcreg = (opcode & 7);
8589: uae_u32 dstreg = (opcode >> 9) & 7;
8590: OpcodeFamily = 31; CurrentInstrCycles = 12;
8591: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
8592: { uae_s16 src = get_word(srca);
8593: { uae_u32 val = (uae_s32)(uae_s16)src;
8594: m68k_areg(regs, dstreg) = (val);
8595: }}}}m68k_incpc(4);
8596: return 12;
8597: }
8598: unsigned long REGPARAM2 CPUFUNC(op_3070_0)(uae_u32 opcode) /* MOVEA */
8599: {
8600: uae_u32 srcreg = (opcode & 7);
8601: uae_u32 dstreg = (opcode >> 9) & 7;
8602: OpcodeFamily = 31; CurrentInstrCycles = 14;
8603: {{m68k_incpc(2);
8604: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
8605: BusCyclePenalty += 2;
8606: { uae_s16 src = get_word(srca);
8607: { uae_u32 val = (uae_s32)(uae_s16)src;
8608: m68k_areg(regs, dstreg) = (val);
8609: }}}}}return 14;
8610: }
8611: unsigned long REGPARAM2 CPUFUNC(op_3078_0)(uae_u32 opcode) /* MOVEA */
8612: {
8613: uae_u32 dstreg = (opcode >> 9) & 7;
8614: OpcodeFamily = 31; CurrentInstrCycles = 12;
8615: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
8616: { uae_s16 src = get_word(srca);
8617: { uae_u32 val = (uae_s32)(uae_s16)src;
8618: m68k_areg(regs, dstreg) = (val);
8619: }}}}m68k_incpc(4);
8620: return 12;
8621: }
8622: unsigned long REGPARAM2 CPUFUNC(op_3079_0)(uae_u32 opcode) /* MOVEA */
8623: {
8624: uae_u32 dstreg = (opcode >> 9) & 7;
8625: OpcodeFamily = 31; CurrentInstrCycles = 16;
8626: {{ uaecptr srca = get_ilong(2);
8627: { uae_s16 src = get_word(srca);
8628: { uae_u32 val = (uae_s32)(uae_s16)src;
8629: m68k_areg(regs, dstreg) = (val);
8630: }}}}m68k_incpc(6);
8631: return 16;
8632: }
8633: unsigned long REGPARAM2 CPUFUNC(op_307a_0)(uae_u32 opcode) /* MOVEA */
8634: {
8635: uae_u32 dstreg = (opcode >> 9) & 7;
8636: OpcodeFamily = 31; CurrentInstrCycles = 12;
8637: {{ uaecptr srca = m68k_getpc () + 2;
8638: srca += (uae_s32)(uae_s16)get_iword(2);
8639: { uae_s16 src = get_word(srca);
8640: { uae_u32 val = (uae_s32)(uae_s16)src;
8641: m68k_areg(regs, dstreg) = (val);
8642: }}}}m68k_incpc(4);
8643: return 12;
8644: }
8645: unsigned long REGPARAM2 CPUFUNC(op_307b_0)(uae_u32 opcode) /* MOVEA */
8646: {
8647: uae_u32 dstreg = (opcode >> 9) & 7;
8648: OpcodeFamily = 31; CurrentInstrCycles = 14;
8649: {{m68k_incpc(2);
8650: { uaecptr tmppc = m68k_getpc();
8651: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
8652: BusCyclePenalty += 2;
8653: { uae_s16 src = get_word(srca);
8654: { uae_u32 val = (uae_s32)(uae_s16)src;
8655: m68k_areg(regs, dstreg) = (val);
8656: }}}}}return 14;
8657: }
8658: unsigned long REGPARAM2 CPUFUNC(op_307c_0)(uae_u32 opcode) /* MOVEA */
8659: {
8660: uae_u32 dstreg = (opcode >> 9) & 7;
8661: OpcodeFamily = 31; CurrentInstrCycles = 8;
8662: {{ uae_s16 src = get_iword(2);
8663: { uae_u32 val = (uae_s32)(uae_s16)src;
8664: m68k_areg(regs, dstreg) = (val);
8665: }}}m68k_incpc(4);
8666: return 8;
8667: }
8668: unsigned long REGPARAM2 CPUFUNC(op_3080_0)(uae_u32 opcode) /* MOVE */
8669: {
8670: uae_u32 srcreg = (opcode & 7);
8671: uae_u32 dstreg = (opcode >> 9) & 7;
8672: OpcodeFamily = 30; CurrentInstrCycles = 8;
8673: {{ uae_s16 src = m68k_dreg(regs, srcreg);
8674: { uaecptr dsta = m68k_areg(regs, dstreg);
8675: CLEAR_CZNV;
8676: SET_ZFLG (((uae_s16)(src)) == 0);
8677: SET_NFLG (((uae_s16)(src)) < 0);
8678: put_word(dsta,src);
8679: }}}m68k_incpc(2);
8680: return 8;
8681: }
8682: unsigned long REGPARAM2 CPUFUNC(op_3088_0)(uae_u32 opcode) /* MOVE */
8683: {
8684: uae_u32 srcreg = (opcode & 7);
8685: uae_u32 dstreg = (opcode >> 9) & 7;
8686: OpcodeFamily = 30; CurrentInstrCycles = 8;
8687: {{ uae_s16 src = m68k_areg(regs, srcreg);
8688: { uaecptr dsta = m68k_areg(regs, dstreg);
8689: CLEAR_CZNV;
8690: SET_ZFLG (((uae_s16)(src)) == 0);
8691: SET_NFLG (((uae_s16)(src)) < 0);
8692: put_word(dsta,src);
8693: }}}m68k_incpc(2);
8694: return 8;
8695: }
8696: unsigned long REGPARAM2 CPUFUNC(op_3090_0)(uae_u32 opcode) /* MOVE */
8697: {
8698: uae_u32 srcreg = (opcode & 7);
8699: uae_u32 dstreg = (opcode >> 9) & 7;
8700: OpcodeFamily = 30; CurrentInstrCycles = 12;
8701: {{ uaecptr srca = m68k_areg(regs, srcreg);
8702: { uae_s16 src = get_word(srca);
8703: { uaecptr dsta = m68k_areg(regs, dstreg);
8704: CLEAR_CZNV;
8705: SET_ZFLG (((uae_s16)(src)) == 0);
8706: SET_NFLG (((uae_s16)(src)) < 0);
8707: put_word(dsta,src);
8708: }}}}m68k_incpc(2);
8709: return 12;
8710: }
8711: unsigned long REGPARAM2 CPUFUNC(op_3098_0)(uae_u32 opcode) /* MOVE */
8712: {
8713: uae_u32 srcreg = (opcode & 7);
8714: uae_u32 dstreg = (opcode >> 9) & 7;
8715: OpcodeFamily = 30; CurrentInstrCycles = 12;
8716: {{ uaecptr srca = m68k_areg(regs, srcreg);
8717: { uae_s16 src = get_word(srca);
8718: m68k_areg(regs, srcreg) += 2;
8719: { uaecptr dsta = m68k_areg(regs, dstreg);
8720: CLEAR_CZNV;
8721: SET_ZFLG (((uae_s16)(src)) == 0);
8722: SET_NFLG (((uae_s16)(src)) < 0);
8723: put_word(dsta,src);
8724: }}}}m68k_incpc(2);
8725: return 12;
8726: }
8727: unsigned long REGPARAM2 CPUFUNC(op_30a0_0)(uae_u32 opcode) /* MOVE */
8728: {
8729: uae_u32 srcreg = (opcode & 7);
8730: uae_u32 dstreg = (opcode >> 9) & 7;
8731: OpcodeFamily = 30; CurrentInstrCycles = 14;
8732: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
8733: { uae_s16 src = get_word(srca);
8734: m68k_areg (regs, srcreg) = srca;
8735: { uaecptr dsta = m68k_areg(regs, dstreg);
8736: CLEAR_CZNV;
8737: SET_ZFLG (((uae_s16)(src)) == 0);
8738: SET_NFLG (((uae_s16)(src)) < 0);
8739: put_word(dsta,src);
8740: }}}}m68k_incpc(2);
8741: return 14;
8742: }
8743: unsigned long REGPARAM2 CPUFUNC(op_30a8_0)(uae_u32 opcode) /* MOVE */
8744: {
8745: uae_u32 srcreg = (opcode & 7);
8746: uae_u32 dstreg = (opcode >> 9) & 7;
8747: OpcodeFamily = 30; CurrentInstrCycles = 16;
8748: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
8749: { uae_s16 src = get_word(srca);
8750: { uaecptr dsta = m68k_areg(regs, dstreg);
8751: CLEAR_CZNV;
8752: SET_ZFLG (((uae_s16)(src)) == 0);
8753: SET_NFLG (((uae_s16)(src)) < 0);
8754: put_word(dsta,src);
8755: }}}}m68k_incpc(4);
8756: return 16;
8757: }
8758: unsigned long REGPARAM2 CPUFUNC(op_30b0_0)(uae_u32 opcode) /* MOVE */
8759: {
8760: uae_u32 srcreg = (opcode & 7);
8761: uae_u32 dstreg = (opcode >> 9) & 7;
8762: OpcodeFamily = 30; CurrentInstrCycles = 18;
8763: {{m68k_incpc(2);
8764: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
8765: BusCyclePenalty += 2;
8766: { uae_s16 src = get_word(srca);
8767: { uaecptr dsta = m68k_areg(regs, dstreg);
8768: CLEAR_CZNV;
8769: SET_ZFLG (((uae_s16)(src)) == 0);
8770: SET_NFLG (((uae_s16)(src)) < 0);
8771: put_word(dsta,src);
8772: }}}}}return 18;
8773: }
8774: unsigned long REGPARAM2 CPUFUNC(op_30b8_0)(uae_u32 opcode) /* MOVE */
8775: {
8776: uae_u32 dstreg = (opcode >> 9) & 7;
8777: OpcodeFamily = 30; CurrentInstrCycles = 16;
8778: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
8779: { uae_s16 src = get_word(srca);
8780: { uaecptr dsta = m68k_areg(regs, dstreg);
8781: CLEAR_CZNV;
8782: SET_ZFLG (((uae_s16)(src)) == 0);
8783: SET_NFLG (((uae_s16)(src)) < 0);
8784: put_word(dsta,src);
8785: }}}}m68k_incpc(4);
8786: return 16;
8787: }
8788: unsigned long REGPARAM2 CPUFUNC(op_30b9_0)(uae_u32 opcode) /* MOVE */
8789: {
8790: uae_u32 dstreg = (opcode >> 9) & 7;
8791: OpcodeFamily = 30; CurrentInstrCycles = 20;
8792: {{ uaecptr srca = get_ilong(2);
8793: { uae_s16 src = get_word(srca);
8794: { uaecptr dsta = m68k_areg(regs, dstreg);
8795: CLEAR_CZNV;
8796: SET_ZFLG (((uae_s16)(src)) == 0);
8797: SET_NFLG (((uae_s16)(src)) < 0);
8798: put_word(dsta,src);
8799: }}}}m68k_incpc(6);
8800: return 20;
8801: }
8802: unsigned long REGPARAM2 CPUFUNC(op_30ba_0)(uae_u32 opcode) /* MOVE */
8803: {
8804: uae_u32 dstreg = (opcode >> 9) & 7;
8805: OpcodeFamily = 30; CurrentInstrCycles = 16;
8806: {{ uaecptr srca = m68k_getpc () + 2;
8807: srca += (uae_s32)(uae_s16)get_iword(2);
8808: { uae_s16 src = get_word(srca);
8809: { uaecptr dsta = m68k_areg(regs, dstreg);
8810: CLEAR_CZNV;
8811: SET_ZFLG (((uae_s16)(src)) == 0);
8812: SET_NFLG (((uae_s16)(src)) < 0);
8813: put_word(dsta,src);
8814: }}}}m68k_incpc(4);
8815: return 16;
8816: }
8817: unsigned long REGPARAM2 CPUFUNC(op_30bb_0)(uae_u32 opcode) /* MOVE */
8818: {
8819: uae_u32 dstreg = (opcode >> 9) & 7;
8820: OpcodeFamily = 30; CurrentInstrCycles = 18;
8821: {{m68k_incpc(2);
8822: { uaecptr tmppc = m68k_getpc();
8823: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
8824: BusCyclePenalty += 2;
8825: { uae_s16 src = get_word(srca);
8826: { uaecptr dsta = m68k_areg(regs, dstreg);
8827: CLEAR_CZNV;
8828: SET_ZFLG (((uae_s16)(src)) == 0);
8829: SET_NFLG (((uae_s16)(src)) < 0);
8830: put_word(dsta,src);
8831: }}}}}return 18;
8832: }
8833: unsigned long REGPARAM2 CPUFUNC(op_30bc_0)(uae_u32 opcode) /* MOVE */
8834: {
8835: uae_u32 dstreg = (opcode >> 9) & 7;
8836: OpcodeFamily = 30; CurrentInstrCycles = 12;
8837: {{ uae_s16 src = get_iword(2);
8838: { uaecptr dsta = m68k_areg(regs, dstreg);
8839: CLEAR_CZNV;
8840: SET_ZFLG (((uae_s16)(src)) == 0);
8841: SET_NFLG (((uae_s16)(src)) < 0);
8842: put_word(dsta,src);
8843: }}}m68k_incpc(4);
8844: return 12;
8845: }
8846: unsigned long REGPARAM2 CPUFUNC(op_30c0_0)(uae_u32 opcode) /* MOVE */
8847: {
8848: uae_u32 srcreg = (opcode & 7);
8849: uae_u32 dstreg = (opcode >> 9) & 7;
8850: OpcodeFamily = 30; CurrentInstrCycles = 8;
8851: {{ uae_s16 src = m68k_dreg(regs, srcreg);
8852: { uaecptr dsta = m68k_areg(regs, dstreg);
8853: m68k_areg(regs, dstreg) += 2;
8854: CLEAR_CZNV;
8855: SET_ZFLG (((uae_s16)(src)) == 0);
8856: SET_NFLG (((uae_s16)(src)) < 0);
8857: put_word(dsta,src);
8858: }}}m68k_incpc(2);
8859: return 8;
8860: }
8861: unsigned long REGPARAM2 CPUFUNC(op_30c8_0)(uae_u32 opcode) /* MOVE */
8862: {
8863: uae_u32 srcreg = (opcode & 7);
8864: uae_u32 dstreg = (opcode >> 9) & 7;
8865: OpcodeFamily = 30; CurrentInstrCycles = 8;
8866: {{ uae_s16 src = m68k_areg(regs, srcreg);
8867: { uaecptr dsta = m68k_areg(regs, dstreg);
8868: m68k_areg(regs, dstreg) += 2;
8869: CLEAR_CZNV;
8870: SET_ZFLG (((uae_s16)(src)) == 0);
8871: SET_NFLG (((uae_s16)(src)) < 0);
8872: put_word(dsta,src);
8873: }}}m68k_incpc(2);
8874: return 8;
8875: }
8876: unsigned long REGPARAM2 CPUFUNC(op_30d0_0)(uae_u32 opcode) /* MOVE */
8877: {
8878: uae_u32 srcreg = (opcode & 7);
8879: uae_u32 dstreg = (opcode >> 9) & 7;
8880: OpcodeFamily = 30; CurrentInstrCycles = 12;
8881: {{ uaecptr srca = m68k_areg(regs, srcreg);
8882: { uae_s16 src = get_word(srca);
8883: { uaecptr dsta = m68k_areg(regs, dstreg);
8884: m68k_areg(regs, dstreg) += 2;
8885: CLEAR_CZNV;
8886: SET_ZFLG (((uae_s16)(src)) == 0);
8887: SET_NFLG (((uae_s16)(src)) < 0);
8888: put_word(dsta,src);
8889: }}}}m68k_incpc(2);
8890: return 12;
8891: }
8892: unsigned long REGPARAM2 CPUFUNC(op_30d8_0)(uae_u32 opcode) /* MOVE */
8893: {
8894: uae_u32 srcreg = (opcode & 7);
8895: uae_u32 dstreg = (opcode >> 9) & 7;
8896: OpcodeFamily = 30; CurrentInstrCycles = 12;
8897: {{ uaecptr srca = m68k_areg(regs, srcreg);
8898: { uae_s16 src = get_word(srca);
8899: m68k_areg(regs, srcreg) += 2;
8900: { uaecptr dsta = m68k_areg(regs, dstreg);
8901: m68k_areg(regs, dstreg) += 2;
8902: CLEAR_CZNV;
8903: SET_ZFLG (((uae_s16)(src)) == 0);
8904: SET_NFLG (((uae_s16)(src)) < 0);
8905: put_word(dsta,src);
8906: }}}}m68k_incpc(2);
8907: return 12;
8908: }
8909: unsigned long REGPARAM2 CPUFUNC(op_30e0_0)(uae_u32 opcode) /* MOVE */
8910: {
8911: uae_u32 srcreg = (opcode & 7);
8912: uae_u32 dstreg = (opcode >> 9) & 7;
8913: OpcodeFamily = 30; CurrentInstrCycles = 14;
8914: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
8915: { uae_s16 src = get_word(srca);
8916: m68k_areg (regs, srcreg) = srca;
8917: { uaecptr dsta = m68k_areg(regs, dstreg);
8918: m68k_areg(regs, dstreg) += 2;
8919: CLEAR_CZNV;
8920: SET_ZFLG (((uae_s16)(src)) == 0);
8921: SET_NFLG (((uae_s16)(src)) < 0);
8922: put_word(dsta,src);
8923: }}}}m68k_incpc(2);
8924: return 14;
8925: }
8926: unsigned long REGPARAM2 CPUFUNC(op_30e8_0)(uae_u32 opcode) /* MOVE */
8927: {
8928: uae_u32 srcreg = (opcode & 7);
8929: uae_u32 dstreg = (opcode >> 9) & 7;
8930: OpcodeFamily = 30; CurrentInstrCycles = 16;
8931: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
8932: { uae_s16 src = get_word(srca);
8933: { uaecptr dsta = m68k_areg(regs, dstreg);
8934: m68k_areg(regs, dstreg) += 2;
8935: CLEAR_CZNV;
8936: SET_ZFLG (((uae_s16)(src)) == 0);
8937: SET_NFLG (((uae_s16)(src)) < 0);
8938: put_word(dsta,src);
8939: }}}}m68k_incpc(4);
8940: return 16;
8941: }
8942: unsigned long REGPARAM2 CPUFUNC(op_30f0_0)(uae_u32 opcode) /* MOVE */
8943: {
8944: uae_u32 srcreg = (opcode & 7);
8945: uae_u32 dstreg = (opcode >> 9) & 7;
8946: OpcodeFamily = 30; CurrentInstrCycles = 18;
8947: {{m68k_incpc(2);
8948: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
8949: BusCyclePenalty += 2;
8950: { uae_s16 src = get_word(srca);
8951: { uaecptr dsta = m68k_areg(regs, dstreg);
8952: m68k_areg(regs, dstreg) += 2;
8953: CLEAR_CZNV;
8954: SET_ZFLG (((uae_s16)(src)) == 0);
8955: SET_NFLG (((uae_s16)(src)) < 0);
8956: put_word(dsta,src);
8957: }}}}}return 18;
8958: }
8959: unsigned long REGPARAM2 CPUFUNC(op_30f8_0)(uae_u32 opcode) /* MOVE */
8960: {
8961: uae_u32 dstreg = (opcode >> 9) & 7;
8962: OpcodeFamily = 30; CurrentInstrCycles = 16;
8963: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
8964: { uae_s16 src = get_word(srca);
8965: { uaecptr dsta = m68k_areg(regs, dstreg);
8966: m68k_areg(regs, dstreg) += 2;
8967: CLEAR_CZNV;
8968: SET_ZFLG (((uae_s16)(src)) == 0);
8969: SET_NFLG (((uae_s16)(src)) < 0);
8970: put_word(dsta,src);
8971: }}}}m68k_incpc(4);
8972: return 16;
8973: }
8974: unsigned long REGPARAM2 CPUFUNC(op_30f9_0)(uae_u32 opcode) /* MOVE */
8975: {
8976: uae_u32 dstreg = (opcode >> 9) & 7;
8977: OpcodeFamily = 30; CurrentInstrCycles = 20;
8978: {{ uaecptr srca = get_ilong(2);
8979: { uae_s16 src = get_word(srca);
8980: { uaecptr dsta = m68k_areg(regs, dstreg);
8981: m68k_areg(regs, dstreg) += 2;
8982: CLEAR_CZNV;
8983: SET_ZFLG (((uae_s16)(src)) == 0);
8984: SET_NFLG (((uae_s16)(src)) < 0);
8985: put_word(dsta,src);
8986: }}}}m68k_incpc(6);
8987: return 20;
8988: }
8989: unsigned long REGPARAM2 CPUFUNC(op_30fa_0)(uae_u32 opcode) /* MOVE */
8990: {
8991: uae_u32 dstreg = (opcode >> 9) & 7;
8992: OpcodeFamily = 30; CurrentInstrCycles = 16;
8993: {{ uaecptr srca = m68k_getpc () + 2;
8994: srca += (uae_s32)(uae_s16)get_iword(2);
8995: { uae_s16 src = get_word(srca);
8996: { uaecptr dsta = m68k_areg(regs, dstreg);
8997: m68k_areg(regs, dstreg) += 2;
8998: CLEAR_CZNV;
8999: SET_ZFLG (((uae_s16)(src)) == 0);
9000: SET_NFLG (((uae_s16)(src)) < 0);
9001: put_word(dsta,src);
9002: }}}}m68k_incpc(4);
9003: return 16;
9004: }
9005: unsigned long REGPARAM2 CPUFUNC(op_30fb_0)(uae_u32 opcode) /* MOVE */
9006: {
9007: uae_u32 dstreg = (opcode >> 9) & 7;
9008: OpcodeFamily = 30; CurrentInstrCycles = 18;
9009: {{m68k_incpc(2);
9010: { uaecptr tmppc = m68k_getpc();
9011: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
9012: BusCyclePenalty += 2;
9013: { uae_s16 src = get_word(srca);
9014: { uaecptr dsta = m68k_areg(regs, dstreg);
9015: m68k_areg(regs, dstreg) += 2;
9016: CLEAR_CZNV;
9017: SET_ZFLG (((uae_s16)(src)) == 0);
9018: SET_NFLG (((uae_s16)(src)) < 0);
9019: put_word(dsta,src);
9020: }}}}}return 18;
9021: }
9022: unsigned long REGPARAM2 CPUFUNC(op_30fc_0)(uae_u32 opcode) /* MOVE */
9023: {
9024: uae_u32 dstreg = (opcode >> 9) & 7;
9025: OpcodeFamily = 30; CurrentInstrCycles = 12;
9026: {{ uae_s16 src = get_iword(2);
9027: { uaecptr dsta = m68k_areg(regs, dstreg);
9028: m68k_areg(regs, dstreg) += 2;
9029: CLEAR_CZNV;
9030: SET_ZFLG (((uae_s16)(src)) == 0);
9031: SET_NFLG (((uae_s16)(src)) < 0);
9032: put_word(dsta,src);
9033: }}}m68k_incpc(4);
9034: return 12;
9035: }
9036: unsigned long REGPARAM2 CPUFUNC(op_3100_0)(uae_u32 opcode) /* MOVE */
9037: {
9038: uae_u32 srcreg = (opcode & 7);
9039: uae_u32 dstreg = (opcode >> 9) & 7;
9040: OpcodeFamily = 30; CurrentInstrCycles = 8;
9041: {{ uae_s16 src = m68k_dreg(regs, srcreg);
9042: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
9043: m68k_areg (regs, dstreg) = dsta;
9044: CLEAR_CZNV;
9045: SET_ZFLG (((uae_s16)(src)) == 0);
9046: SET_NFLG (((uae_s16)(src)) < 0);
9047: put_word(dsta,src);
9048: }}}m68k_incpc(2);
9049: return 8;
9050: }
9051: unsigned long REGPARAM2 CPUFUNC(op_3108_0)(uae_u32 opcode) /* MOVE */
9052: {
9053: uae_u32 srcreg = (opcode & 7);
9054: uae_u32 dstreg = (opcode >> 9) & 7;
9055: OpcodeFamily = 30; CurrentInstrCycles = 8;
9056: {{ uae_s16 src = m68k_areg(regs, srcreg);
9057: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
9058: m68k_areg (regs, dstreg) = dsta;
9059: CLEAR_CZNV;
9060: SET_ZFLG (((uae_s16)(src)) == 0);
9061: SET_NFLG (((uae_s16)(src)) < 0);
9062: put_word(dsta,src);
9063: }}}m68k_incpc(2);
9064: return 8;
9065: }
9066: unsigned long REGPARAM2 CPUFUNC(op_3110_0)(uae_u32 opcode) /* MOVE */
9067: {
9068: uae_u32 srcreg = (opcode & 7);
9069: uae_u32 dstreg = (opcode >> 9) & 7;
9070: OpcodeFamily = 30; CurrentInstrCycles = 12;
9071: {{ uaecptr srca = m68k_areg(regs, srcreg);
9072: { uae_s16 src = get_word(srca);
9073: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
9074: m68k_areg (regs, dstreg) = dsta;
9075: CLEAR_CZNV;
9076: SET_ZFLG (((uae_s16)(src)) == 0);
9077: SET_NFLG (((uae_s16)(src)) < 0);
9078: put_word(dsta,src);
9079: }}}}m68k_incpc(2);
9080: return 12;
9081: }
9082: unsigned long REGPARAM2 CPUFUNC(op_3118_0)(uae_u32 opcode) /* MOVE */
9083: {
9084: uae_u32 srcreg = (opcode & 7);
9085: uae_u32 dstreg = (opcode >> 9) & 7;
9086: OpcodeFamily = 30; CurrentInstrCycles = 12;
9087: {{ uaecptr srca = m68k_areg(regs, srcreg);
9088: { uae_s16 src = get_word(srca);
9089: m68k_areg(regs, srcreg) += 2;
9090: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
9091: m68k_areg (regs, dstreg) = dsta;
9092: CLEAR_CZNV;
9093: SET_ZFLG (((uae_s16)(src)) == 0);
9094: SET_NFLG (((uae_s16)(src)) < 0);
9095: put_word(dsta,src);
9096: }}}}m68k_incpc(2);
9097: return 12;
9098: }
9099: unsigned long REGPARAM2 CPUFUNC(op_3120_0)(uae_u32 opcode) /* MOVE */
9100: {
9101: uae_u32 srcreg = (opcode & 7);
9102: uae_u32 dstreg = (opcode >> 9) & 7;
9103: OpcodeFamily = 30; CurrentInstrCycles = 14;
9104: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
9105: { uae_s16 src = get_word(srca);
9106: m68k_areg (regs, srcreg) = srca;
9107: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
9108: m68k_areg (regs, dstreg) = dsta;
9109: CLEAR_CZNV;
9110: SET_ZFLG (((uae_s16)(src)) == 0);
9111: SET_NFLG (((uae_s16)(src)) < 0);
9112: put_word(dsta,src);
9113: }}}}m68k_incpc(2);
9114: return 14;
9115: }
9116: unsigned long REGPARAM2 CPUFUNC(op_3128_0)(uae_u32 opcode) /* MOVE */
9117: {
9118: uae_u32 srcreg = (opcode & 7);
9119: uae_u32 dstreg = (opcode >> 9) & 7;
9120: OpcodeFamily = 30; CurrentInstrCycles = 16;
9121: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
9122: { uae_s16 src = get_word(srca);
9123: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
9124: m68k_areg (regs, dstreg) = dsta;
9125: CLEAR_CZNV;
9126: SET_ZFLG (((uae_s16)(src)) == 0);
9127: SET_NFLG (((uae_s16)(src)) < 0);
9128: put_word(dsta,src);
9129: }}}}m68k_incpc(4);
9130: return 16;
9131: }
9132: unsigned long REGPARAM2 CPUFUNC(op_3130_0)(uae_u32 opcode) /* MOVE */
9133: {
9134: uae_u32 srcreg = (opcode & 7);
9135: uae_u32 dstreg = (opcode >> 9) & 7;
9136: OpcodeFamily = 30; CurrentInstrCycles = 18;
9137: {{m68k_incpc(2);
9138: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
9139: BusCyclePenalty += 2;
9140: { uae_s16 src = get_word(srca);
9141: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
9142: m68k_areg (regs, dstreg) = dsta;
9143: CLEAR_CZNV;
9144: SET_ZFLG (((uae_s16)(src)) == 0);
9145: SET_NFLG (((uae_s16)(src)) < 0);
9146: put_word(dsta,src);
9147: }}}}}return 18;
9148: }
9149: unsigned long REGPARAM2 CPUFUNC(op_3138_0)(uae_u32 opcode) /* MOVE */
9150: {
9151: uae_u32 dstreg = (opcode >> 9) & 7;
9152: OpcodeFamily = 30; CurrentInstrCycles = 16;
9153: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
9154: { uae_s16 src = get_word(srca);
9155: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
9156: m68k_areg (regs, dstreg) = dsta;
9157: CLEAR_CZNV;
9158: SET_ZFLG (((uae_s16)(src)) == 0);
9159: SET_NFLG (((uae_s16)(src)) < 0);
9160: put_word(dsta,src);
9161: }}}}m68k_incpc(4);
9162: return 16;
9163: }
9164: unsigned long REGPARAM2 CPUFUNC(op_3139_0)(uae_u32 opcode) /* MOVE */
9165: {
9166: uae_u32 dstreg = (opcode >> 9) & 7;
9167: OpcodeFamily = 30; CurrentInstrCycles = 20;
9168: {{ uaecptr srca = get_ilong(2);
9169: { uae_s16 src = get_word(srca);
9170: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
9171: m68k_areg (regs, dstreg) = dsta;
9172: CLEAR_CZNV;
9173: SET_ZFLG (((uae_s16)(src)) == 0);
9174: SET_NFLG (((uae_s16)(src)) < 0);
9175: put_word(dsta,src);
9176: }}}}m68k_incpc(6);
9177: return 20;
9178: }
9179: unsigned long REGPARAM2 CPUFUNC(op_313a_0)(uae_u32 opcode) /* MOVE */
9180: {
9181: uae_u32 dstreg = (opcode >> 9) & 7;
9182: OpcodeFamily = 30; CurrentInstrCycles = 16;
9183: {{ uaecptr srca = m68k_getpc () + 2;
9184: srca += (uae_s32)(uae_s16)get_iword(2);
9185: { uae_s16 src = get_word(srca);
9186: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
9187: m68k_areg (regs, dstreg) = dsta;
9188: CLEAR_CZNV;
9189: SET_ZFLG (((uae_s16)(src)) == 0);
9190: SET_NFLG (((uae_s16)(src)) < 0);
9191: put_word(dsta,src);
9192: }}}}m68k_incpc(4);
9193: return 16;
9194: }
9195: unsigned long REGPARAM2 CPUFUNC(op_313b_0)(uae_u32 opcode) /* MOVE */
9196: {
9197: uae_u32 dstreg = (opcode >> 9) & 7;
9198: OpcodeFamily = 30; CurrentInstrCycles = 18;
9199: {{m68k_incpc(2);
9200: { uaecptr tmppc = m68k_getpc();
9201: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
9202: BusCyclePenalty += 2;
9203: { uae_s16 src = get_word(srca);
9204: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
9205: m68k_areg (regs, dstreg) = dsta;
9206: CLEAR_CZNV;
9207: SET_ZFLG (((uae_s16)(src)) == 0);
9208: SET_NFLG (((uae_s16)(src)) < 0);
9209: put_word(dsta,src);
9210: }}}}}return 18;
9211: }
9212: unsigned long REGPARAM2 CPUFUNC(op_313c_0)(uae_u32 opcode) /* MOVE */
9213: {
9214: uae_u32 dstreg = (opcode >> 9) & 7;
9215: OpcodeFamily = 30; CurrentInstrCycles = 12;
9216: {{ uae_s16 src = get_iword(2);
9217: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
9218: m68k_areg (regs, dstreg) = dsta;
9219: CLEAR_CZNV;
9220: SET_ZFLG (((uae_s16)(src)) == 0);
9221: SET_NFLG (((uae_s16)(src)) < 0);
9222: put_word(dsta,src);
9223: }}}m68k_incpc(4);
9224: return 12;
9225: }
9226: unsigned long REGPARAM2 CPUFUNC(op_3140_0)(uae_u32 opcode) /* MOVE */
9227: {
9228: uae_u32 srcreg = (opcode & 7);
9229: uae_u32 dstreg = (opcode >> 9) & 7;
9230: OpcodeFamily = 30; CurrentInstrCycles = 12;
9231: {{ uae_s16 src = m68k_dreg(regs, srcreg);
9232: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
9233: CLEAR_CZNV;
9234: SET_ZFLG (((uae_s16)(src)) == 0);
9235: SET_NFLG (((uae_s16)(src)) < 0);
9236: put_word(dsta,src);
9237: }}}m68k_incpc(4);
9238: return 12;
9239: }
9240: unsigned long REGPARAM2 CPUFUNC(op_3148_0)(uae_u32 opcode) /* MOVE */
9241: {
9242: uae_u32 srcreg = (opcode & 7);
9243: uae_u32 dstreg = (opcode >> 9) & 7;
9244: OpcodeFamily = 30; CurrentInstrCycles = 12;
9245: {{ uae_s16 src = m68k_areg(regs, srcreg);
9246: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
9247: CLEAR_CZNV;
9248: SET_ZFLG (((uae_s16)(src)) == 0);
9249: SET_NFLG (((uae_s16)(src)) < 0);
9250: put_word(dsta,src);
9251: }}}m68k_incpc(4);
9252: return 12;
9253: }
9254: unsigned long REGPARAM2 CPUFUNC(op_3150_0)(uae_u32 opcode) /* MOVE */
9255: {
9256: uae_u32 srcreg = (opcode & 7);
9257: uae_u32 dstreg = (opcode >> 9) & 7;
9258: OpcodeFamily = 30; CurrentInstrCycles = 16;
9259: {{ uaecptr srca = m68k_areg(regs, srcreg);
9260: { uae_s16 src = get_word(srca);
9261: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
9262: CLEAR_CZNV;
9263: SET_ZFLG (((uae_s16)(src)) == 0);
9264: SET_NFLG (((uae_s16)(src)) < 0);
9265: put_word(dsta,src);
9266: }}}}m68k_incpc(4);
9267: return 16;
9268: }
9269: unsigned long REGPARAM2 CPUFUNC(op_3158_0)(uae_u32 opcode) /* MOVE */
9270: {
9271: uae_u32 srcreg = (opcode & 7);
9272: uae_u32 dstreg = (opcode >> 9) & 7;
9273: OpcodeFamily = 30; CurrentInstrCycles = 16;
9274: {{ uaecptr srca = m68k_areg(regs, srcreg);
9275: { uae_s16 src = get_word(srca);
9276: m68k_areg(regs, srcreg) += 2;
9277: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
9278: CLEAR_CZNV;
9279: SET_ZFLG (((uae_s16)(src)) == 0);
9280: SET_NFLG (((uae_s16)(src)) < 0);
9281: put_word(dsta,src);
9282: }}}}m68k_incpc(4);
9283: return 16;
9284: }
9285: unsigned long REGPARAM2 CPUFUNC(op_3160_0)(uae_u32 opcode) /* MOVE */
9286: {
9287: uae_u32 srcreg = (opcode & 7);
9288: uae_u32 dstreg = (opcode >> 9) & 7;
9289: OpcodeFamily = 30; CurrentInstrCycles = 18;
9290: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
9291: { uae_s16 src = get_word(srca);
9292: m68k_areg (regs, srcreg) = srca;
9293: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
9294: CLEAR_CZNV;
9295: SET_ZFLG (((uae_s16)(src)) == 0);
9296: SET_NFLG (((uae_s16)(src)) < 0);
9297: put_word(dsta,src);
9298: }}}}m68k_incpc(4);
9299: return 18;
9300: }
9301: unsigned long REGPARAM2 CPUFUNC(op_3168_0)(uae_u32 opcode) /* MOVE */
9302: {
9303: uae_u32 srcreg = (opcode & 7);
9304: uae_u32 dstreg = (opcode >> 9) & 7;
9305: OpcodeFamily = 30; CurrentInstrCycles = 20;
9306: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
9307: { uae_s16 src = get_word(srca);
9308: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
9309: CLEAR_CZNV;
9310: SET_ZFLG (((uae_s16)(src)) == 0);
9311: SET_NFLG (((uae_s16)(src)) < 0);
9312: put_word(dsta,src);
9313: }}}}m68k_incpc(6);
9314: return 20;
9315: }
9316: unsigned long REGPARAM2 CPUFUNC(op_3170_0)(uae_u32 opcode) /* MOVE */
9317: {
9318: uae_u32 srcreg = (opcode & 7);
9319: uae_u32 dstreg = (opcode >> 9) & 7;
9320: OpcodeFamily = 30; CurrentInstrCycles = 22;
9321: {{m68k_incpc(2);
9322: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
9323: BusCyclePenalty += 2;
9324: { uae_s16 src = get_word(srca);
9325: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(0);
9326: CLEAR_CZNV;
9327: SET_ZFLG (((uae_s16)(src)) == 0);
9328: SET_NFLG (((uae_s16)(src)) < 0);
9329: put_word(dsta,src);
9330: }}}}}m68k_incpc(2);
9331: return 22;
9332: }
9333: unsigned long REGPARAM2 CPUFUNC(op_3178_0)(uae_u32 opcode) /* MOVE */
9334: {
9335: uae_u32 dstreg = (opcode >> 9) & 7;
9336: OpcodeFamily = 30; CurrentInstrCycles = 20;
9337: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
9338: { uae_s16 src = get_word(srca);
9339: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
9340: CLEAR_CZNV;
9341: SET_ZFLG (((uae_s16)(src)) == 0);
9342: SET_NFLG (((uae_s16)(src)) < 0);
9343: put_word(dsta,src);
9344: }}}}m68k_incpc(6);
9345: return 20;
9346: }
9347: unsigned long REGPARAM2 CPUFUNC(op_3179_0)(uae_u32 opcode) /* MOVE */
9348: {
9349: uae_u32 dstreg = (opcode >> 9) & 7;
9350: OpcodeFamily = 30; CurrentInstrCycles = 24;
9351: {{ uaecptr srca = get_ilong(2);
9352: { uae_s16 src = get_word(srca);
9353: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(6);
9354: CLEAR_CZNV;
9355: SET_ZFLG (((uae_s16)(src)) == 0);
9356: SET_NFLG (((uae_s16)(src)) < 0);
9357: put_word(dsta,src);
9358: }}}}m68k_incpc(8);
9359: return 24;
9360: }
9361: unsigned long REGPARAM2 CPUFUNC(op_317a_0)(uae_u32 opcode) /* MOVE */
9362: {
9363: uae_u32 dstreg = (opcode >> 9) & 7;
9364: OpcodeFamily = 30; CurrentInstrCycles = 20;
9365: {{ uaecptr srca = m68k_getpc () + 2;
9366: srca += (uae_s32)(uae_s16)get_iword(2);
9367: { uae_s16 src = get_word(srca);
9368: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
9369: CLEAR_CZNV;
9370: SET_ZFLG (((uae_s16)(src)) == 0);
9371: SET_NFLG (((uae_s16)(src)) < 0);
9372: put_word(dsta,src);
9373: }}}}m68k_incpc(6);
9374: return 20;
9375: }
9376: unsigned long REGPARAM2 CPUFUNC(op_317b_0)(uae_u32 opcode) /* MOVE */
9377: {
9378: uae_u32 dstreg = (opcode >> 9) & 7;
9379: OpcodeFamily = 30; CurrentInstrCycles = 22;
9380: {{m68k_incpc(2);
9381: { uaecptr tmppc = m68k_getpc();
9382: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
9383: BusCyclePenalty += 2;
9384: { uae_s16 src = get_word(srca);
9385: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(0);
9386: CLEAR_CZNV;
9387: SET_ZFLG (((uae_s16)(src)) == 0);
9388: SET_NFLG (((uae_s16)(src)) < 0);
9389: put_word(dsta,src);
9390: }}}}}m68k_incpc(2);
9391: return 22;
9392: }
9393: unsigned long REGPARAM2 CPUFUNC(op_317c_0)(uae_u32 opcode) /* MOVE */
9394: {
9395: uae_u32 dstreg = (opcode >> 9) & 7;
9396: OpcodeFamily = 30; CurrentInstrCycles = 16;
9397: {{ uae_s16 src = get_iword(2);
9398: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
9399: CLEAR_CZNV;
9400: SET_ZFLG (((uae_s16)(src)) == 0);
9401: SET_NFLG (((uae_s16)(src)) < 0);
9402: put_word(dsta,src);
9403: }}}m68k_incpc(6);
9404: return 16;
9405: }
9406: unsigned long REGPARAM2 CPUFUNC(op_3180_0)(uae_u32 opcode) /* MOVE */
9407: {
9408: uae_u32 srcreg = (opcode & 7);
9409: uae_u32 dstreg = (opcode >> 9) & 7;
9410: OpcodeFamily = 30; CurrentInstrCycles = 14;
9411: {{ uae_s16 src = m68k_dreg(regs, srcreg);
9412: {m68k_incpc(2);
9413: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
9414: BusCyclePenalty += 2;
9415: CLEAR_CZNV;
9416: SET_ZFLG (((uae_s16)(src)) == 0);
9417: SET_NFLG (((uae_s16)(src)) < 0);
9418: put_word(dsta,src);
9419: }}}}return 14;
9420: }
9421: unsigned long REGPARAM2 CPUFUNC(op_3188_0)(uae_u32 opcode) /* MOVE */
9422: {
9423: uae_u32 srcreg = (opcode & 7);
9424: uae_u32 dstreg = (opcode >> 9) & 7;
9425: OpcodeFamily = 30; CurrentInstrCycles = 14;
9426: {{ uae_s16 src = m68k_areg(regs, srcreg);
9427: {m68k_incpc(2);
9428: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
9429: BusCyclePenalty += 2;
9430: CLEAR_CZNV;
9431: SET_ZFLG (((uae_s16)(src)) == 0);
9432: SET_NFLG (((uae_s16)(src)) < 0);
9433: put_word(dsta,src);
9434: }}}}return 14;
9435: }
9436: unsigned long REGPARAM2 CPUFUNC(op_3190_0)(uae_u32 opcode) /* MOVE */
9437: {
9438: uae_u32 srcreg = (opcode & 7);
9439: uae_u32 dstreg = (opcode >> 9) & 7;
9440: OpcodeFamily = 30; CurrentInstrCycles = 18;
9441: {{ uaecptr srca = m68k_areg(regs, srcreg);
9442: { uae_s16 src = get_word(srca);
9443: {m68k_incpc(2);
9444: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
9445: BusCyclePenalty += 2;
9446: CLEAR_CZNV;
9447: SET_ZFLG (((uae_s16)(src)) == 0);
9448: SET_NFLG (((uae_s16)(src)) < 0);
9449: put_word(dsta,src);
9450: }}}}}return 18;
9451: }
9452: unsigned long REGPARAM2 CPUFUNC(op_3198_0)(uae_u32 opcode) /* MOVE */
9453: {
9454: uae_u32 srcreg = (opcode & 7);
9455: uae_u32 dstreg = (opcode >> 9) & 7;
9456: OpcodeFamily = 30; CurrentInstrCycles = 18;
9457: {{ uaecptr srca = m68k_areg(regs, srcreg);
9458: { uae_s16 src = get_word(srca);
9459: m68k_areg(regs, srcreg) += 2;
9460: {m68k_incpc(2);
9461: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
9462: BusCyclePenalty += 2;
9463: CLEAR_CZNV;
9464: SET_ZFLG (((uae_s16)(src)) == 0);
9465: SET_NFLG (((uae_s16)(src)) < 0);
9466: put_word(dsta,src);
9467: }}}}}return 18;
9468: }
9469: unsigned long REGPARAM2 CPUFUNC(op_31a0_0)(uae_u32 opcode) /* MOVE */
9470: {
9471: uae_u32 srcreg = (opcode & 7);
9472: uae_u32 dstreg = (opcode >> 9) & 7;
9473: OpcodeFamily = 30; CurrentInstrCycles = 20;
9474: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
9475: { uae_s16 src = get_word(srca);
9476: m68k_areg (regs, srcreg) = srca;
9477: {m68k_incpc(2);
9478: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
9479: BusCyclePenalty += 2;
9480: CLEAR_CZNV;
9481: SET_ZFLG (((uae_s16)(src)) == 0);
9482: SET_NFLG (((uae_s16)(src)) < 0);
9483: put_word(dsta,src);
9484: }}}}}return 20;
9485: }
9486: unsigned long REGPARAM2 CPUFUNC(op_31a8_0)(uae_u32 opcode) /* MOVE */
9487: {
9488: uae_u32 srcreg = (opcode & 7);
9489: uae_u32 dstreg = (opcode >> 9) & 7;
9490: OpcodeFamily = 30; CurrentInstrCycles = 22;
9491: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
9492: { uae_s16 src = get_word(srca);
9493: {m68k_incpc(4);
9494: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
9495: BusCyclePenalty += 2;
9496: CLEAR_CZNV;
9497: SET_ZFLG (((uae_s16)(src)) == 0);
9498: SET_NFLG (((uae_s16)(src)) < 0);
9499: put_word(dsta,src);
9500: }}}}}return 22;
9501: }
9502: unsigned long REGPARAM2 CPUFUNC(op_31b0_0)(uae_u32 opcode) /* MOVE */
9503: {
9504: uae_u32 srcreg = (opcode & 7);
9505: uae_u32 dstreg = (opcode >> 9) & 7;
9506: OpcodeFamily = 30; CurrentInstrCycles = 24;
9507: {{m68k_incpc(2);
9508: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
9509: BusCyclePenalty += 2;
9510: { uae_s16 src = get_word(srca);
9511: {{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
9512: BusCyclePenalty += 2;
9513: CLEAR_CZNV;
9514: SET_ZFLG (((uae_s16)(src)) == 0);
9515: SET_NFLG (((uae_s16)(src)) < 0);
9516: put_word(dsta,src);
9517: }}}}}}return 24;
9518: }
9519: unsigned long REGPARAM2 CPUFUNC(op_31b8_0)(uae_u32 opcode) /* MOVE */
9520: {
9521: uae_u32 dstreg = (opcode >> 9) & 7;
9522: OpcodeFamily = 30; CurrentInstrCycles = 22;
9523: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
9524: { uae_s16 src = get_word(srca);
9525: {m68k_incpc(4);
9526: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
9527: BusCyclePenalty += 2;
9528: CLEAR_CZNV;
9529: SET_ZFLG (((uae_s16)(src)) == 0);
9530: SET_NFLG (((uae_s16)(src)) < 0);
9531: put_word(dsta,src);
9532: }}}}}return 22;
9533: }
9534: unsigned long REGPARAM2 CPUFUNC(op_31b9_0)(uae_u32 opcode) /* MOVE */
9535: {
9536: uae_u32 dstreg = (opcode >> 9) & 7;
9537: OpcodeFamily = 30; CurrentInstrCycles = 26;
9538: {{ uaecptr srca = get_ilong(2);
9539: { uae_s16 src = get_word(srca);
9540: {m68k_incpc(6);
9541: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
9542: BusCyclePenalty += 2;
9543: CLEAR_CZNV;
9544: SET_ZFLG (((uae_s16)(src)) == 0);
9545: SET_NFLG (((uae_s16)(src)) < 0);
9546: put_word(dsta,src);
9547: }}}}}return 26;
9548: }
9549: unsigned long REGPARAM2 CPUFUNC(op_31ba_0)(uae_u32 opcode) /* MOVE */
9550: {
9551: uae_u32 dstreg = (opcode >> 9) & 7;
9552: OpcodeFamily = 30; CurrentInstrCycles = 22;
9553: {{ uaecptr srca = m68k_getpc () + 2;
9554: srca += (uae_s32)(uae_s16)get_iword(2);
9555: { uae_s16 src = get_word(srca);
9556: {m68k_incpc(4);
9557: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
9558: BusCyclePenalty += 2;
9559: CLEAR_CZNV;
9560: SET_ZFLG (((uae_s16)(src)) == 0);
9561: SET_NFLG (((uae_s16)(src)) < 0);
9562: put_word(dsta,src);
9563: }}}}}return 22;
9564: }
9565: unsigned long REGPARAM2 CPUFUNC(op_31bb_0)(uae_u32 opcode) /* MOVE */
9566: {
9567: uae_u32 dstreg = (opcode >> 9) & 7;
9568: OpcodeFamily = 30; CurrentInstrCycles = 24;
9569: {{m68k_incpc(2);
9570: { uaecptr tmppc = m68k_getpc();
9571: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
9572: BusCyclePenalty += 2;
9573: { uae_s16 src = get_word(srca);
9574: {{ uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
9575: BusCyclePenalty += 2;
9576: CLEAR_CZNV;
9577: SET_ZFLG (((uae_s16)(src)) == 0);
9578: SET_NFLG (((uae_s16)(src)) < 0);
9579: put_word(dsta,src);
9580: }}}}}}return 24;
9581: }
9582: unsigned long REGPARAM2 CPUFUNC(op_31bc_0)(uae_u32 opcode) /* MOVE */
9583: {
9584: uae_u32 dstreg = (opcode >> 9) & 7;
9585: OpcodeFamily = 30; CurrentInstrCycles = 18;
9586: {{ uae_s16 src = get_iword(2);
9587: {m68k_incpc(4);
9588: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
9589: BusCyclePenalty += 2;
9590: CLEAR_CZNV;
9591: SET_ZFLG (((uae_s16)(src)) == 0);
9592: SET_NFLG (((uae_s16)(src)) < 0);
9593: put_word(dsta,src);
9594: }}}}return 18;
9595: }
9596: unsigned long REGPARAM2 CPUFUNC(op_31c0_0)(uae_u32 opcode) /* MOVE */
9597: {
9598: uae_u32 srcreg = (opcode & 7);
9599: OpcodeFamily = 30; CurrentInstrCycles = 12;
9600: {{ uae_s16 src = m68k_dreg(regs, srcreg);
9601: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
9602: CLEAR_CZNV;
9603: SET_ZFLG (((uae_s16)(src)) == 0);
9604: SET_NFLG (((uae_s16)(src)) < 0);
9605: put_word(dsta,src);
9606: }}}m68k_incpc(4);
9607: return 12;
9608: }
9609: unsigned long REGPARAM2 CPUFUNC(op_31c8_0)(uae_u32 opcode) /* MOVE */
9610: {
9611: uae_u32 srcreg = (opcode & 7);
9612: OpcodeFamily = 30; CurrentInstrCycles = 12;
9613: {{ uae_s16 src = m68k_areg(regs, srcreg);
9614: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
9615: CLEAR_CZNV;
9616: SET_ZFLG (((uae_s16)(src)) == 0);
9617: SET_NFLG (((uae_s16)(src)) < 0);
9618: put_word(dsta,src);
9619: }}}m68k_incpc(4);
9620: return 12;
9621: }
9622: unsigned long REGPARAM2 CPUFUNC(op_31d0_0)(uae_u32 opcode) /* MOVE */
9623: {
9624: uae_u32 srcreg = (opcode & 7);
9625: OpcodeFamily = 30; CurrentInstrCycles = 16;
9626: {{ uaecptr srca = m68k_areg(regs, srcreg);
9627: { uae_s16 src = get_word(srca);
9628: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
9629: CLEAR_CZNV;
9630: SET_ZFLG (((uae_s16)(src)) == 0);
9631: SET_NFLG (((uae_s16)(src)) < 0);
9632: put_word(dsta,src);
9633: }}}}m68k_incpc(4);
9634: return 16;
9635: }
9636: unsigned long REGPARAM2 CPUFUNC(op_31d8_0)(uae_u32 opcode) /* MOVE */
9637: {
9638: uae_u32 srcreg = (opcode & 7);
9639: OpcodeFamily = 30; CurrentInstrCycles = 16;
9640: {{ uaecptr srca = m68k_areg(regs, srcreg);
9641: { uae_s16 src = get_word(srca);
9642: m68k_areg(regs, srcreg) += 2;
9643: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
9644: CLEAR_CZNV;
9645: SET_ZFLG (((uae_s16)(src)) == 0);
9646: SET_NFLG (((uae_s16)(src)) < 0);
9647: put_word(dsta,src);
9648: }}}}m68k_incpc(4);
9649: return 16;
9650: }
9651: unsigned long REGPARAM2 CPUFUNC(op_31e0_0)(uae_u32 opcode) /* MOVE */
9652: {
9653: uae_u32 srcreg = (opcode & 7);
9654: OpcodeFamily = 30; CurrentInstrCycles = 18;
9655: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
9656: { uae_s16 src = get_word(srca);
9657: m68k_areg (regs, srcreg) = srca;
9658: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
9659: CLEAR_CZNV;
9660: SET_ZFLG (((uae_s16)(src)) == 0);
9661: SET_NFLG (((uae_s16)(src)) < 0);
9662: put_word(dsta,src);
9663: }}}}m68k_incpc(4);
9664: return 18;
9665: }
9666: unsigned long REGPARAM2 CPUFUNC(op_31e8_0)(uae_u32 opcode) /* MOVE */
9667: {
9668: uae_u32 srcreg = (opcode & 7);
9669: OpcodeFamily = 30; CurrentInstrCycles = 20;
9670: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
9671: { uae_s16 src = get_word(srca);
9672: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
9673: CLEAR_CZNV;
9674: SET_ZFLG (((uae_s16)(src)) == 0);
9675: SET_NFLG (((uae_s16)(src)) < 0);
9676: put_word(dsta,src);
9677: }}}}m68k_incpc(6);
9678: return 20;
9679: }
9680: unsigned long REGPARAM2 CPUFUNC(op_31f0_0)(uae_u32 opcode) /* MOVE */
9681: {
9682: uae_u32 srcreg = (opcode & 7);
9683: OpcodeFamily = 30; CurrentInstrCycles = 22;
9684: {{m68k_incpc(2);
9685: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
9686: BusCyclePenalty += 2;
9687: { uae_s16 src = get_word(srca);
9688: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(0);
9689: CLEAR_CZNV;
9690: SET_ZFLG (((uae_s16)(src)) == 0);
9691: SET_NFLG (((uae_s16)(src)) < 0);
9692: put_word(dsta,src);
9693: }}}}}m68k_incpc(2);
9694: return 22;
9695: }
9696: unsigned long REGPARAM2 CPUFUNC(op_31f8_0)(uae_u32 opcode) /* MOVE */
9697: {
9698: OpcodeFamily = 30; CurrentInstrCycles = 20;
9699: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
9700: { uae_s16 src = get_word(srca);
9701: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
9702: CLEAR_CZNV;
9703: SET_ZFLG (((uae_s16)(src)) == 0);
9704: SET_NFLG (((uae_s16)(src)) < 0);
9705: put_word(dsta,src);
9706: }}}}m68k_incpc(6);
9707: return 20;
9708: }
9709: unsigned long REGPARAM2 CPUFUNC(op_31f9_0)(uae_u32 opcode) /* MOVE */
9710: {
9711: OpcodeFamily = 30; CurrentInstrCycles = 24;
9712: {{ uaecptr srca = get_ilong(2);
9713: { uae_s16 src = get_word(srca);
9714: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(6);
9715: CLEAR_CZNV;
9716: SET_ZFLG (((uae_s16)(src)) == 0);
9717: SET_NFLG (((uae_s16)(src)) < 0);
9718: put_word(dsta,src);
9719: }}}}m68k_incpc(8);
9720: return 24;
9721: }
9722: unsigned long REGPARAM2 CPUFUNC(op_31fa_0)(uae_u32 opcode) /* MOVE */
9723: {
9724: OpcodeFamily = 30; CurrentInstrCycles = 20;
9725: {{ uaecptr srca = m68k_getpc () + 2;
9726: srca += (uae_s32)(uae_s16)get_iword(2);
9727: { uae_s16 src = get_word(srca);
9728: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
9729: CLEAR_CZNV;
9730: SET_ZFLG (((uae_s16)(src)) == 0);
9731: SET_NFLG (((uae_s16)(src)) < 0);
9732: put_word(dsta,src);
9733: }}}}m68k_incpc(6);
9734: return 20;
9735: }
9736: unsigned long REGPARAM2 CPUFUNC(op_31fb_0)(uae_u32 opcode) /* MOVE */
9737: {
9738: OpcodeFamily = 30; CurrentInstrCycles = 22;
9739: {{m68k_incpc(2);
9740: { uaecptr tmppc = m68k_getpc();
9741: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
9742: BusCyclePenalty += 2;
9743: { uae_s16 src = get_word(srca);
9744: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(0);
9745: CLEAR_CZNV;
9746: SET_ZFLG (((uae_s16)(src)) == 0);
9747: SET_NFLG (((uae_s16)(src)) < 0);
9748: put_word(dsta,src);
9749: }}}}}m68k_incpc(2);
9750: return 22;
9751: }
9752: unsigned long REGPARAM2 CPUFUNC(op_31fc_0)(uae_u32 opcode) /* MOVE */
9753: {
9754: OpcodeFamily = 30; CurrentInstrCycles = 16;
9755: {{ uae_s16 src = get_iword(2);
9756: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
9757: CLEAR_CZNV;
9758: SET_ZFLG (((uae_s16)(src)) == 0);
9759: SET_NFLG (((uae_s16)(src)) < 0);
9760: put_word(dsta,src);
9761: }}}m68k_incpc(6);
9762: return 16;
9763: }
9764: unsigned long REGPARAM2 CPUFUNC(op_33c0_0)(uae_u32 opcode) /* MOVE */
9765: {
9766: uae_u32 srcreg = (opcode & 7);
9767: OpcodeFamily = 30; CurrentInstrCycles = 16;
9768: {{ uae_s16 src = m68k_dreg(regs, srcreg);
9769: { uaecptr dsta = get_ilong(2);
9770: CLEAR_CZNV;
9771: SET_ZFLG (((uae_s16)(src)) == 0);
9772: SET_NFLG (((uae_s16)(src)) < 0);
9773: put_word(dsta,src);
9774: }}}m68k_incpc(6);
9775: return 16;
9776: }
9777: unsigned long REGPARAM2 CPUFUNC(op_33c8_0)(uae_u32 opcode) /* MOVE */
9778: {
9779: uae_u32 srcreg = (opcode & 7);
9780: OpcodeFamily = 30; CurrentInstrCycles = 16;
9781: {{ uae_s16 src = m68k_areg(regs, srcreg);
9782: { uaecptr dsta = get_ilong(2);
9783: CLEAR_CZNV;
9784: SET_ZFLG (((uae_s16)(src)) == 0);
9785: SET_NFLG (((uae_s16)(src)) < 0);
9786: put_word(dsta,src);
9787: }}}m68k_incpc(6);
9788: return 16;
9789: }
9790: unsigned long REGPARAM2 CPUFUNC(op_33d0_0)(uae_u32 opcode) /* MOVE */
9791: {
9792: uae_u32 srcreg = (opcode & 7);
9793: OpcodeFamily = 30; CurrentInstrCycles = 20;
9794: {{ uaecptr srca = m68k_areg(regs, srcreg);
9795: { uae_s16 src = get_word(srca);
9796: { uaecptr dsta = get_ilong(2);
9797: CLEAR_CZNV;
9798: SET_ZFLG (((uae_s16)(src)) == 0);
9799: SET_NFLG (((uae_s16)(src)) < 0);
9800: put_word(dsta,src);
9801: }}}}m68k_incpc(6);
9802: return 20;
9803: }
9804: unsigned long REGPARAM2 CPUFUNC(op_33d8_0)(uae_u32 opcode) /* MOVE */
9805: {
9806: uae_u32 srcreg = (opcode & 7);
9807: OpcodeFamily = 30; CurrentInstrCycles = 20;
9808: {{ uaecptr srca = m68k_areg(regs, srcreg);
9809: { uae_s16 src = get_word(srca);
9810: m68k_areg(regs, srcreg) += 2;
9811: { uaecptr dsta = get_ilong(2);
9812: CLEAR_CZNV;
9813: SET_ZFLG (((uae_s16)(src)) == 0);
9814: SET_NFLG (((uae_s16)(src)) < 0);
9815: put_word(dsta,src);
9816: }}}}m68k_incpc(6);
9817: return 20;
9818: }
9819: unsigned long REGPARAM2 CPUFUNC(op_33e0_0)(uae_u32 opcode) /* MOVE */
9820: {
9821: uae_u32 srcreg = (opcode & 7);
9822: OpcodeFamily = 30; CurrentInstrCycles = 22;
9823: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
9824: { uae_s16 src = get_word(srca);
9825: m68k_areg (regs, srcreg) = srca;
9826: { uaecptr dsta = get_ilong(2);
9827: CLEAR_CZNV;
9828: SET_ZFLG (((uae_s16)(src)) == 0);
9829: SET_NFLG (((uae_s16)(src)) < 0);
9830: put_word(dsta,src);
9831: }}}}m68k_incpc(6);
9832: return 22;
9833: }
9834: unsigned long REGPARAM2 CPUFUNC(op_33e8_0)(uae_u32 opcode) /* MOVE */
9835: {
9836: uae_u32 srcreg = (opcode & 7);
9837: OpcodeFamily = 30; CurrentInstrCycles = 24;
9838: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
9839: { uae_s16 src = get_word(srca);
9840: { uaecptr dsta = get_ilong(4);
9841: CLEAR_CZNV;
9842: SET_ZFLG (((uae_s16)(src)) == 0);
9843: SET_NFLG (((uae_s16)(src)) < 0);
9844: put_word(dsta,src);
9845: }}}}m68k_incpc(8);
9846: return 24;
9847: }
9848: unsigned long REGPARAM2 CPUFUNC(op_33f0_0)(uae_u32 opcode) /* MOVE */
9849: {
9850: uae_u32 srcreg = (opcode & 7);
9851: OpcodeFamily = 30; CurrentInstrCycles = 26;
9852: {{m68k_incpc(2);
9853: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
9854: BusCyclePenalty += 2;
9855: { uae_s16 src = get_word(srca);
9856: { uaecptr dsta = get_ilong(0);
9857: CLEAR_CZNV;
9858: SET_ZFLG (((uae_s16)(src)) == 0);
9859: SET_NFLG (((uae_s16)(src)) < 0);
9860: put_word(dsta,src);
9861: }}}}}m68k_incpc(4);
9862: return 26;
9863: }
9864: unsigned long REGPARAM2 CPUFUNC(op_33f8_0)(uae_u32 opcode) /* MOVE */
9865: {
9866: OpcodeFamily = 30; CurrentInstrCycles = 24;
9867: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
9868: { uae_s16 src = get_word(srca);
9869: { uaecptr dsta = get_ilong(4);
9870: CLEAR_CZNV;
9871: SET_ZFLG (((uae_s16)(src)) == 0);
9872: SET_NFLG (((uae_s16)(src)) < 0);
9873: put_word(dsta,src);
9874: }}}}m68k_incpc(8);
9875: return 24;
9876: }
9877: unsigned long REGPARAM2 CPUFUNC(op_33f9_0)(uae_u32 opcode) /* MOVE */
9878: {
9879: OpcodeFamily = 30; CurrentInstrCycles = 28;
9880: {{ uaecptr srca = get_ilong(2);
9881: { uae_s16 src = get_word(srca);
9882: { uaecptr dsta = get_ilong(6);
9883: CLEAR_CZNV;
9884: SET_ZFLG (((uae_s16)(src)) == 0);
9885: SET_NFLG (((uae_s16)(src)) < 0);
9886: put_word(dsta,src);
9887: }}}}m68k_incpc(10);
9888: return 28;
9889: }
9890: unsigned long REGPARAM2 CPUFUNC(op_33fa_0)(uae_u32 opcode) /* MOVE */
9891: {
9892: OpcodeFamily = 30; CurrentInstrCycles = 24;
9893: {{ uaecptr srca = m68k_getpc () + 2;
9894: srca += (uae_s32)(uae_s16)get_iword(2);
9895: { uae_s16 src = get_word(srca);
9896: { uaecptr dsta = get_ilong(4);
9897: CLEAR_CZNV;
9898: SET_ZFLG (((uae_s16)(src)) == 0);
9899: SET_NFLG (((uae_s16)(src)) < 0);
9900: put_word(dsta,src);
9901: }}}}m68k_incpc(8);
9902: return 24;
9903: }
9904: unsigned long REGPARAM2 CPUFUNC(op_33fb_0)(uae_u32 opcode) /* MOVE */
9905: {
9906: OpcodeFamily = 30; CurrentInstrCycles = 26;
9907: {{m68k_incpc(2);
9908: { uaecptr tmppc = m68k_getpc();
9909: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
9910: BusCyclePenalty += 2;
9911: { uae_s16 src = get_word(srca);
9912: { uaecptr dsta = get_ilong(0);
9913: CLEAR_CZNV;
9914: SET_ZFLG (((uae_s16)(src)) == 0);
9915: SET_NFLG (((uae_s16)(src)) < 0);
9916: put_word(dsta,src);
9917: }}}}}m68k_incpc(4);
9918: return 26;
9919: }
9920: unsigned long REGPARAM2 CPUFUNC(op_33fc_0)(uae_u32 opcode) /* MOVE */
9921: {
9922: OpcodeFamily = 30; CurrentInstrCycles = 20;
9923: {{ uae_s16 src = get_iword(2);
9924: { uaecptr dsta = get_ilong(4);
9925: CLEAR_CZNV;
9926: SET_ZFLG (((uae_s16)(src)) == 0);
9927: SET_NFLG (((uae_s16)(src)) < 0);
9928: put_word(dsta,src);
9929: }}}m68k_incpc(8);
9930: return 20;
9931: }
9932: unsigned long REGPARAM2 CPUFUNC(op_4000_0)(uae_u32 opcode) /* NEGX */
9933: {
9934: uae_u32 srcreg = (opcode & 7);
9935: OpcodeFamily = 16; CurrentInstrCycles = 4;
9936: {{ uae_s8 src = m68k_dreg(regs, srcreg);
9937: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
9938: { int flgs = ((uae_s8)(src)) < 0;
9939: int flgo = ((uae_s8)(0)) < 0;
9940: int flgn = ((uae_s8)(newv)) < 0;
9941: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
9942: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
9943: COPY_CARRY;
9944: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
9945: SET_NFLG (((uae_s8)(newv)) < 0);
9946: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((newv) & 0xff);
9947: }}}}m68k_incpc(2);
9948: return 4;
9949: }
9950: unsigned long REGPARAM2 CPUFUNC(op_4010_0)(uae_u32 opcode) /* NEGX */
9951: {
9952: uae_u32 srcreg = (opcode & 7);
9953: OpcodeFamily = 16; CurrentInstrCycles = 12;
9954: {{ uaecptr srca = m68k_areg(regs, srcreg);
9955: { uae_s8 src = get_byte(srca);
9956: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
9957: { int flgs = ((uae_s8)(src)) < 0;
9958: int flgo = ((uae_s8)(0)) < 0;
9959: int flgn = ((uae_s8)(newv)) < 0;
9960: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
9961: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
9962: COPY_CARRY;
9963: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
9964: SET_NFLG (((uae_s8)(newv)) < 0);
9965: put_byte(srca,newv);
9966: }}}}}m68k_incpc(2);
9967: return 12;
9968: }
9969: unsigned long REGPARAM2 CPUFUNC(op_4018_0)(uae_u32 opcode) /* NEGX */
9970: {
9971: uae_u32 srcreg = (opcode & 7);
9972: OpcodeFamily = 16; CurrentInstrCycles = 12;
9973: {{ uaecptr srca = m68k_areg(regs, srcreg);
9974: { uae_s8 src = get_byte(srca);
9975: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
9976: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
9977: { int flgs = ((uae_s8)(src)) < 0;
9978: int flgo = ((uae_s8)(0)) < 0;
9979: int flgn = ((uae_s8)(newv)) < 0;
9980: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
9981: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
9982: COPY_CARRY;
9983: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
9984: SET_NFLG (((uae_s8)(newv)) < 0);
9985: put_byte(srca,newv);
9986: }}}}}m68k_incpc(2);
9987: return 12;
9988: }
9989: unsigned long REGPARAM2 CPUFUNC(op_4020_0)(uae_u32 opcode) /* NEGX */
9990: {
9991: uae_u32 srcreg = (opcode & 7);
9992: OpcodeFamily = 16; CurrentInstrCycles = 14;
9993: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
9994: { uae_s8 src = get_byte(srca);
9995: m68k_areg (regs, srcreg) = srca;
9996: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
9997: { int flgs = ((uae_s8)(src)) < 0;
9998: int flgo = ((uae_s8)(0)) < 0;
9999: int flgn = ((uae_s8)(newv)) < 0;
10000: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
10001: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
10002: COPY_CARRY;
10003: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
10004: SET_NFLG (((uae_s8)(newv)) < 0);
10005: put_byte(srca,newv);
10006: }}}}}m68k_incpc(2);
10007: return 14;
10008: }
10009: unsigned long REGPARAM2 CPUFUNC(op_4028_0)(uae_u32 opcode) /* NEGX */
10010: {
10011: uae_u32 srcreg = (opcode & 7);
10012: OpcodeFamily = 16; CurrentInstrCycles = 16;
10013: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
10014: { uae_s8 src = get_byte(srca);
10015: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
10016: { int flgs = ((uae_s8)(src)) < 0;
10017: int flgo = ((uae_s8)(0)) < 0;
10018: int flgn = ((uae_s8)(newv)) < 0;
10019: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
10020: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
10021: COPY_CARRY;
10022: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
10023: SET_NFLG (((uae_s8)(newv)) < 0);
10024: put_byte(srca,newv);
10025: }}}}}m68k_incpc(4);
10026: return 16;
10027: }
10028: unsigned long REGPARAM2 CPUFUNC(op_4030_0)(uae_u32 opcode) /* NEGX */
10029: {
10030: uae_u32 srcreg = (opcode & 7);
10031: OpcodeFamily = 16; CurrentInstrCycles = 18;
10032: {{m68k_incpc(2);
10033: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
10034: BusCyclePenalty += 2;
10035: { uae_s8 src = get_byte(srca);
10036: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
10037: { int flgs = ((uae_s8)(src)) < 0;
10038: int flgo = ((uae_s8)(0)) < 0;
10039: int flgn = ((uae_s8)(newv)) < 0;
10040: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
10041: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
10042: COPY_CARRY;
10043: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
10044: SET_NFLG (((uae_s8)(newv)) < 0);
10045: put_byte(srca,newv);
10046: }}}}}}return 18;
10047: }
10048: unsigned long REGPARAM2 CPUFUNC(op_4038_0)(uae_u32 opcode) /* NEGX */
10049: {
10050: OpcodeFamily = 16; CurrentInstrCycles = 16;
10051: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
10052: { uae_s8 src = get_byte(srca);
10053: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
10054: { int flgs = ((uae_s8)(src)) < 0;
10055: int flgo = ((uae_s8)(0)) < 0;
10056: int flgn = ((uae_s8)(newv)) < 0;
10057: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
10058: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
10059: COPY_CARRY;
10060: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
10061: SET_NFLG (((uae_s8)(newv)) < 0);
10062: put_byte(srca,newv);
10063: }}}}}m68k_incpc(4);
10064: return 16;
10065: }
10066: unsigned long REGPARAM2 CPUFUNC(op_4039_0)(uae_u32 opcode) /* NEGX */
10067: {
10068: OpcodeFamily = 16; CurrentInstrCycles = 20;
10069: {{ uaecptr srca = get_ilong(2);
10070: { uae_s8 src = get_byte(srca);
10071: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
10072: { int flgs = ((uae_s8)(src)) < 0;
10073: int flgo = ((uae_s8)(0)) < 0;
10074: int flgn = ((uae_s8)(newv)) < 0;
10075: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
10076: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
10077: COPY_CARRY;
10078: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
10079: SET_NFLG (((uae_s8)(newv)) < 0);
10080: put_byte(srca,newv);
10081: }}}}}m68k_incpc(6);
10082: return 20;
10083: }
10084: unsigned long REGPARAM2 CPUFUNC(op_4040_0)(uae_u32 opcode) /* NEGX */
10085: {
10086: uae_u32 srcreg = (opcode & 7);
10087: OpcodeFamily = 16; CurrentInstrCycles = 4;
10088: {{ uae_s16 src = m68k_dreg(regs, srcreg);
10089: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
10090: { int flgs = ((uae_s16)(src)) < 0;
10091: int flgo = ((uae_s16)(0)) < 0;
10092: int flgn = ((uae_s16)(newv)) < 0;
10093: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
10094: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
10095: COPY_CARRY;
10096: SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
10097: SET_NFLG (((uae_s16)(newv)) < 0);
10098: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((newv) & 0xffff);
10099: }}}}m68k_incpc(2);
10100: return 4;
10101: }
10102: unsigned long REGPARAM2 CPUFUNC(op_4050_0)(uae_u32 opcode) /* NEGX */
10103: {
10104: uae_u32 srcreg = (opcode & 7);
10105: OpcodeFamily = 16; CurrentInstrCycles = 12;
10106: {{ uaecptr srca = m68k_areg(regs, srcreg);
10107: { uae_s16 src = get_word(srca);
10108: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
10109: { int flgs = ((uae_s16)(src)) < 0;
10110: int flgo = ((uae_s16)(0)) < 0;
10111: int flgn = ((uae_s16)(newv)) < 0;
10112: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
10113: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
10114: COPY_CARRY;
10115: SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
10116: SET_NFLG (((uae_s16)(newv)) < 0);
10117: put_word(srca,newv);
10118: }}}}}m68k_incpc(2);
10119: return 12;
10120: }
10121: unsigned long REGPARAM2 CPUFUNC(op_4058_0)(uae_u32 opcode) /* NEGX */
10122: {
10123: uae_u32 srcreg = (opcode & 7);
10124: OpcodeFamily = 16; CurrentInstrCycles = 12;
10125: {{ uaecptr srca = m68k_areg(regs, srcreg);
10126: { uae_s16 src = get_word(srca);
10127: m68k_areg(regs, srcreg) += 2;
10128: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
10129: { int flgs = ((uae_s16)(src)) < 0;
10130: int flgo = ((uae_s16)(0)) < 0;
10131: int flgn = ((uae_s16)(newv)) < 0;
10132: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
10133: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
10134: COPY_CARRY;
10135: SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
10136: SET_NFLG (((uae_s16)(newv)) < 0);
10137: put_word(srca,newv);
10138: }}}}}m68k_incpc(2);
10139: return 12;
10140: }
10141: unsigned long REGPARAM2 CPUFUNC(op_4060_0)(uae_u32 opcode) /* NEGX */
10142: {
10143: uae_u32 srcreg = (opcode & 7);
10144: OpcodeFamily = 16; CurrentInstrCycles = 14;
10145: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
10146: { uae_s16 src = get_word(srca);
10147: m68k_areg (regs, srcreg) = srca;
10148: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
10149: { int flgs = ((uae_s16)(src)) < 0;
10150: int flgo = ((uae_s16)(0)) < 0;
10151: int flgn = ((uae_s16)(newv)) < 0;
10152: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
10153: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
10154: COPY_CARRY;
10155: SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
10156: SET_NFLG (((uae_s16)(newv)) < 0);
10157: put_word(srca,newv);
10158: }}}}}m68k_incpc(2);
10159: return 14;
10160: }
10161: unsigned long REGPARAM2 CPUFUNC(op_4068_0)(uae_u32 opcode) /* NEGX */
10162: {
10163: uae_u32 srcreg = (opcode & 7);
10164: OpcodeFamily = 16; CurrentInstrCycles = 16;
10165: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
10166: { uae_s16 src = get_word(srca);
10167: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
10168: { int flgs = ((uae_s16)(src)) < 0;
10169: int flgo = ((uae_s16)(0)) < 0;
10170: int flgn = ((uae_s16)(newv)) < 0;
10171: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
10172: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
10173: COPY_CARRY;
10174: SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
10175: SET_NFLG (((uae_s16)(newv)) < 0);
10176: put_word(srca,newv);
10177: }}}}}m68k_incpc(4);
10178: return 16;
10179: }
10180: unsigned long REGPARAM2 CPUFUNC(op_4070_0)(uae_u32 opcode) /* NEGX */
10181: {
10182: uae_u32 srcreg = (opcode & 7);
10183: OpcodeFamily = 16; CurrentInstrCycles = 18;
10184: {{m68k_incpc(2);
10185: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
10186: BusCyclePenalty += 2;
10187: { uae_s16 src = get_word(srca);
10188: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
10189: { int flgs = ((uae_s16)(src)) < 0;
10190: int flgo = ((uae_s16)(0)) < 0;
10191: int flgn = ((uae_s16)(newv)) < 0;
10192: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
10193: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
10194: COPY_CARRY;
10195: SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
10196: SET_NFLG (((uae_s16)(newv)) < 0);
10197: put_word(srca,newv);
10198: }}}}}}return 18;
10199: }
10200: unsigned long REGPARAM2 CPUFUNC(op_4078_0)(uae_u32 opcode) /* NEGX */
10201: {
10202: OpcodeFamily = 16; CurrentInstrCycles = 16;
10203: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
10204: { uae_s16 src = get_word(srca);
10205: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
10206: { int flgs = ((uae_s16)(src)) < 0;
10207: int flgo = ((uae_s16)(0)) < 0;
10208: int flgn = ((uae_s16)(newv)) < 0;
10209: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
10210: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
10211: COPY_CARRY;
10212: SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
10213: SET_NFLG (((uae_s16)(newv)) < 0);
10214: put_word(srca,newv);
10215: }}}}}m68k_incpc(4);
10216: return 16;
10217: }
10218: unsigned long REGPARAM2 CPUFUNC(op_4079_0)(uae_u32 opcode) /* NEGX */
10219: {
10220: OpcodeFamily = 16; CurrentInstrCycles = 20;
10221: {{ uaecptr srca = get_ilong(2);
10222: { uae_s16 src = get_word(srca);
10223: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
10224: { int flgs = ((uae_s16)(src)) < 0;
10225: int flgo = ((uae_s16)(0)) < 0;
10226: int flgn = ((uae_s16)(newv)) < 0;
10227: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
10228: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
10229: COPY_CARRY;
10230: SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
10231: SET_NFLG (((uae_s16)(newv)) < 0);
10232: put_word(srca,newv);
10233: }}}}}m68k_incpc(6);
10234: return 20;
10235: }
10236: unsigned long REGPARAM2 CPUFUNC(op_4080_0)(uae_u32 opcode) /* NEGX */
10237: {
10238: uae_u32 srcreg = (opcode & 7);
10239: OpcodeFamily = 16; CurrentInstrCycles = 6;
10240: {{ uae_s32 src = m68k_dreg(regs, srcreg);
10241: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
10242: { int flgs = ((uae_s32)(src)) < 0;
10243: int flgo = ((uae_s32)(0)) < 0;
10244: int flgn = ((uae_s32)(newv)) < 0;
10245: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
10246: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
10247: COPY_CARRY;
10248: SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
10249: SET_NFLG (((uae_s32)(newv)) < 0);
10250: m68k_dreg(regs, srcreg) = (newv);
10251: }}}}m68k_incpc(2);
10252: return 6;
10253: }
10254: unsigned long REGPARAM2 CPUFUNC(op_4090_0)(uae_u32 opcode) /* NEGX */
10255: {
10256: uae_u32 srcreg = (opcode & 7);
10257: OpcodeFamily = 16; CurrentInstrCycles = 20;
10258: {{ uaecptr srca = m68k_areg(regs, srcreg);
10259: { uae_s32 src = get_long(srca);
10260: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
10261: { int flgs = ((uae_s32)(src)) < 0;
10262: int flgo = ((uae_s32)(0)) < 0;
10263: int flgn = ((uae_s32)(newv)) < 0;
10264: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
10265: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
10266: COPY_CARRY;
10267: SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
10268: SET_NFLG (((uae_s32)(newv)) < 0);
10269: put_long(srca,newv);
10270: }}}}}m68k_incpc(2);
10271: return 20;
10272: }
10273: unsigned long REGPARAM2 CPUFUNC(op_4098_0)(uae_u32 opcode) /* NEGX */
10274: {
10275: uae_u32 srcreg = (opcode & 7);
10276: OpcodeFamily = 16; CurrentInstrCycles = 20;
10277: {{ uaecptr srca = m68k_areg(regs, srcreg);
10278: { uae_s32 src = get_long(srca);
10279: m68k_areg(regs, srcreg) += 4;
10280: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
10281: { int flgs = ((uae_s32)(src)) < 0;
10282: int flgo = ((uae_s32)(0)) < 0;
10283: int flgn = ((uae_s32)(newv)) < 0;
10284: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
10285: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
10286: COPY_CARRY;
10287: SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
10288: SET_NFLG (((uae_s32)(newv)) < 0);
10289: put_long(srca,newv);
10290: }}}}}m68k_incpc(2);
10291: return 20;
10292: }
10293: unsigned long REGPARAM2 CPUFUNC(op_40a0_0)(uae_u32 opcode) /* NEGX */
10294: {
10295: uae_u32 srcreg = (opcode & 7);
10296: OpcodeFamily = 16; CurrentInstrCycles = 22;
10297: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
10298: { uae_s32 src = get_long(srca);
10299: m68k_areg (regs, srcreg) = srca;
10300: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
10301: { int flgs = ((uae_s32)(src)) < 0;
10302: int flgo = ((uae_s32)(0)) < 0;
10303: int flgn = ((uae_s32)(newv)) < 0;
10304: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
10305: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
10306: COPY_CARRY;
10307: SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
10308: SET_NFLG (((uae_s32)(newv)) < 0);
10309: put_long(srca,newv);
10310: }}}}}m68k_incpc(2);
10311: return 22;
10312: }
10313: unsigned long REGPARAM2 CPUFUNC(op_40a8_0)(uae_u32 opcode) /* NEGX */
10314: {
10315: uae_u32 srcreg = (opcode & 7);
10316: OpcodeFamily = 16; CurrentInstrCycles = 24;
10317: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
10318: { uae_s32 src = get_long(srca);
10319: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
10320: { int flgs = ((uae_s32)(src)) < 0;
10321: int flgo = ((uae_s32)(0)) < 0;
10322: int flgn = ((uae_s32)(newv)) < 0;
10323: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
10324: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
10325: COPY_CARRY;
10326: SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
10327: SET_NFLG (((uae_s32)(newv)) < 0);
10328: put_long(srca,newv);
10329: }}}}}m68k_incpc(4);
10330: return 24;
10331: }
10332: unsigned long REGPARAM2 CPUFUNC(op_40b0_0)(uae_u32 opcode) /* NEGX */
10333: {
10334: uae_u32 srcreg = (opcode & 7);
10335: OpcodeFamily = 16; CurrentInstrCycles = 26;
10336: {{m68k_incpc(2);
10337: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
10338: BusCyclePenalty += 2;
10339: { uae_s32 src = get_long(srca);
10340: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
10341: { int flgs = ((uae_s32)(src)) < 0;
10342: int flgo = ((uae_s32)(0)) < 0;
10343: int flgn = ((uae_s32)(newv)) < 0;
10344: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
10345: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
10346: COPY_CARRY;
10347: SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
10348: SET_NFLG (((uae_s32)(newv)) < 0);
10349: put_long(srca,newv);
10350: }}}}}}return 26;
10351: }
10352: unsigned long REGPARAM2 CPUFUNC(op_40b8_0)(uae_u32 opcode) /* NEGX */
10353: {
10354: OpcodeFamily = 16; CurrentInstrCycles = 24;
10355: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
10356: { uae_s32 src = get_long(srca);
10357: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
10358: { int flgs = ((uae_s32)(src)) < 0;
10359: int flgo = ((uae_s32)(0)) < 0;
10360: int flgn = ((uae_s32)(newv)) < 0;
10361: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
10362: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
10363: COPY_CARRY;
10364: SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
10365: SET_NFLG (((uae_s32)(newv)) < 0);
10366: put_long(srca,newv);
10367: }}}}}m68k_incpc(4);
10368: return 24;
10369: }
10370: unsigned long REGPARAM2 CPUFUNC(op_40b9_0)(uae_u32 opcode) /* NEGX */
10371: {
10372: OpcodeFamily = 16; CurrentInstrCycles = 28;
10373: {{ uaecptr srca = get_ilong(2);
10374: { uae_s32 src = get_long(srca);
10375: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
10376: { int flgs = ((uae_s32)(src)) < 0;
10377: int flgo = ((uae_s32)(0)) < 0;
10378: int flgn = ((uae_s32)(newv)) < 0;
10379: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
10380: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
10381: COPY_CARRY;
10382: SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
10383: SET_NFLG (((uae_s32)(newv)) < 0);
10384: put_long(srca,newv);
10385: }}}}}m68k_incpc(6);
10386: return 28;
10387: }
10388: unsigned long REGPARAM2 CPUFUNC(op_40c0_0)(uae_u32 opcode) /* MVSR2 */
10389: {
10390: uae_u32 srcreg = (opcode & 7);
10391: OpcodeFamily = 32; CurrentInstrCycles = 6;
10392: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel653; }
10393: {{ MakeSR();
10394: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((regs.sr) & 0xffff);
10395: }}}m68k_incpc(2);
10396: endlabel653: ;
10397: return 6;
10398: }
10399: unsigned long REGPARAM2 CPUFUNC(op_40d0_0)(uae_u32 opcode) /* MVSR2 */
10400: {
10401: uae_u32 srcreg = (opcode & 7);
10402: OpcodeFamily = 32; CurrentInstrCycles = 12;
10403: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel654; }
10404: {{ uaecptr srca = m68k_areg(regs, srcreg);
10405: MakeSR();
10406: put_word(srca,regs.sr);
10407: }}}m68k_incpc(2);
10408: endlabel654: ;
10409: return 12;
10410: }
10411: unsigned long REGPARAM2 CPUFUNC(op_40d8_0)(uae_u32 opcode) /* MVSR2 */
10412: {
10413: uae_u32 srcreg = (opcode & 7);
10414: OpcodeFamily = 32; CurrentInstrCycles = 12;
10415: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel655; }
10416: {{ uaecptr srca = m68k_areg(regs, srcreg);
10417: m68k_areg(regs, srcreg) += 2;
10418: MakeSR();
10419: put_word(srca,regs.sr);
10420: }}}m68k_incpc(2);
10421: endlabel655: ;
10422: return 12;
10423: }
10424: unsigned long REGPARAM2 CPUFUNC(op_40e0_0)(uae_u32 opcode) /* MVSR2 */
10425: {
10426: uae_u32 srcreg = (opcode & 7);
10427: OpcodeFamily = 32; CurrentInstrCycles = 14;
10428: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel656; }
10429: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
10430: m68k_areg (regs, srcreg) = srca;
10431: MakeSR();
10432: put_word(srca,regs.sr);
10433: }}}m68k_incpc(2);
10434: endlabel656: ;
10435: return 14;
10436: }
10437: unsigned long REGPARAM2 CPUFUNC(op_40e8_0)(uae_u32 opcode) /* MVSR2 */
10438: {
10439: uae_u32 srcreg = (opcode & 7);
10440: OpcodeFamily = 32; CurrentInstrCycles = 16;
10441: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel657; }
10442: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
10443: MakeSR();
10444: put_word(srca,regs.sr);
10445: }}}m68k_incpc(4);
10446: endlabel657: ;
10447: return 16;
10448: }
10449: unsigned long REGPARAM2 CPUFUNC(op_40f0_0)(uae_u32 opcode) /* MVSR2 */
10450: {
10451: uae_u32 srcreg = (opcode & 7);
10452: OpcodeFamily = 32; CurrentInstrCycles = 18;
10453: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel658; }
10454: {{m68k_incpc(2);
10455: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
10456: BusCyclePenalty += 2;
10457: MakeSR();
10458: put_word(srca,regs.sr);
10459: }}}}endlabel658: ;
10460: return 18;
10461: }
10462: unsigned long REGPARAM2 CPUFUNC(op_40f8_0)(uae_u32 opcode) /* MVSR2 */
10463: {
10464: OpcodeFamily = 32; CurrentInstrCycles = 16;
10465: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel659; }
10466: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
10467: MakeSR();
10468: put_word(srca,regs.sr);
10469: }}}m68k_incpc(4);
10470: endlabel659: ;
10471: return 16;
10472: }
10473: unsigned long REGPARAM2 CPUFUNC(op_40f9_0)(uae_u32 opcode) /* MVSR2 */
10474: {
10475: OpcodeFamily = 32; CurrentInstrCycles = 20;
10476: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel660; }
10477: {{ uaecptr srca = get_ilong(2);
10478: MakeSR();
10479: put_word(srca,regs.sr);
10480: }}}m68k_incpc(6);
10481: endlabel660: ;
10482: return 20;
10483: }
10484: unsigned long REGPARAM2 CPUFUNC(op_4100_0)(uae_u32 opcode) /* CHK */
10485: {
10486: uae_u32 srcreg = (opcode & 7);
10487: uae_u32 dstreg = (opcode >> 9) & 7;
10488: OpcodeFamily = 80; CurrentInstrCycles = 10;
10489: { uaecptr oldpc = m68k_getpc();
10490: { uae_s32 src = m68k_dreg(regs, srcreg);
10491: { uae_s32 dst = m68k_dreg(regs, dstreg);
10492: m68k_incpc(2);
10493: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel661; }
10494: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel661; }
10495: }}}endlabel661: ;
10496: return 10;
10497: }
10498: unsigned long REGPARAM2 CPUFUNC(op_4110_0)(uae_u32 opcode) /* CHK */
10499: {
10500: uae_u32 srcreg = (opcode & 7);
10501: uae_u32 dstreg = (opcode >> 9) & 7;
10502: OpcodeFamily = 80; CurrentInstrCycles = 18;
10503: { uaecptr oldpc = m68k_getpc();
10504: { uaecptr srca = m68k_areg(regs, srcreg);
10505: { uae_s32 src = get_long(srca);
10506: { uae_s32 dst = m68k_dreg(regs, dstreg);
10507: m68k_incpc(2);
10508: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel662; }
10509: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel662; }
10510: }}}}endlabel662: ;
10511: return 18;
10512: }
10513: unsigned long REGPARAM2 CPUFUNC(op_4118_0)(uae_u32 opcode) /* CHK */
10514: {
10515: uae_u32 srcreg = (opcode & 7);
10516: uae_u32 dstreg = (opcode >> 9) & 7;
10517: OpcodeFamily = 80; CurrentInstrCycles = 18;
10518: { uaecptr oldpc = m68k_getpc();
10519: { uaecptr srca = m68k_areg(regs, srcreg);
10520: { uae_s32 src = get_long(srca);
10521: m68k_areg(regs, srcreg) += 4;
10522: { uae_s32 dst = m68k_dreg(regs, dstreg);
10523: m68k_incpc(2);
10524: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel663; }
10525: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel663; }
10526: }}}}endlabel663: ;
10527: return 18;
10528: }
10529: unsigned long REGPARAM2 CPUFUNC(op_4120_0)(uae_u32 opcode) /* CHK */
10530: {
10531: uae_u32 srcreg = (opcode & 7);
10532: uae_u32 dstreg = (opcode >> 9) & 7;
10533: OpcodeFamily = 80; CurrentInstrCycles = 20;
10534: { uaecptr oldpc = m68k_getpc();
10535: { uaecptr srca = m68k_areg(regs, srcreg) - 4;
10536: { uae_s32 src = get_long(srca);
10537: m68k_areg (regs, srcreg) = srca;
10538: { uae_s32 dst = m68k_dreg(regs, dstreg);
10539: m68k_incpc(2);
10540: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel664; }
10541: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel664; }
10542: }}}}endlabel664: ;
10543: return 20;
10544: }
10545: unsigned long REGPARAM2 CPUFUNC(op_4128_0)(uae_u32 opcode) /* CHK */
10546: {
10547: uae_u32 srcreg = (opcode & 7);
10548: uae_u32 dstreg = (opcode >> 9) & 7;
10549: OpcodeFamily = 80; CurrentInstrCycles = 22;
10550: { uaecptr oldpc = m68k_getpc();
10551: { uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
10552: { uae_s32 src = get_long(srca);
10553: { uae_s32 dst = m68k_dreg(regs, dstreg);
10554: m68k_incpc(4);
10555: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel665; }
10556: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel665; }
10557: }}}}endlabel665: ;
10558: return 22;
10559: }
10560: unsigned long REGPARAM2 CPUFUNC(op_4130_0)(uae_u32 opcode) /* CHK */
10561: {
10562: uae_u32 srcreg = (opcode & 7);
10563: uae_u32 dstreg = (opcode >> 9) & 7;
10564: OpcodeFamily = 80; CurrentInstrCycles = 24;
10565: { uaecptr oldpc = m68k_getpc();
10566: {m68k_incpc(2);
10567: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
10568: BusCyclePenalty += 2;
10569: { uae_s32 src = get_long(srca);
10570: { uae_s32 dst = m68k_dreg(regs, dstreg);
10571: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel666; }
10572: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel666; }
10573: }}}}}endlabel666: ;
10574: return 24;
10575: }
10576: unsigned long REGPARAM2 CPUFUNC(op_4138_0)(uae_u32 opcode) /* CHK */
10577: {
10578: uae_u32 dstreg = (opcode >> 9) & 7;
10579: OpcodeFamily = 80; CurrentInstrCycles = 22;
10580: { uaecptr oldpc = m68k_getpc();
10581: { uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
10582: { uae_s32 src = get_long(srca);
10583: { uae_s32 dst = m68k_dreg(regs, dstreg);
10584: m68k_incpc(4);
10585: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel667; }
10586: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel667; }
10587: }}}}endlabel667: ;
10588: return 22;
10589: }
10590: unsigned long REGPARAM2 CPUFUNC(op_4139_0)(uae_u32 opcode) /* CHK */
10591: {
10592: uae_u32 dstreg = (opcode >> 9) & 7;
10593: OpcodeFamily = 80; CurrentInstrCycles = 26;
10594: { uaecptr oldpc = m68k_getpc();
10595: { uaecptr srca = get_ilong(2);
10596: { uae_s32 src = get_long(srca);
10597: { uae_s32 dst = m68k_dreg(regs, dstreg);
10598: m68k_incpc(6);
10599: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel668; }
10600: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel668; }
10601: }}}}endlabel668: ;
10602: return 26;
10603: }
10604: unsigned long REGPARAM2 CPUFUNC(op_413a_0)(uae_u32 opcode) /* CHK */
10605: {
10606: uae_u32 dstreg = (opcode >> 9) & 7;
10607: OpcodeFamily = 80; CurrentInstrCycles = 22;
10608: { uaecptr oldpc = m68k_getpc();
10609: { uaecptr srca = m68k_getpc () + 2;
10610: srca += (uae_s32)(uae_s16)get_iword(2);
10611: { uae_s32 src = get_long(srca);
10612: { uae_s32 dst = m68k_dreg(regs, dstreg);
10613: m68k_incpc(4);
10614: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel669; }
10615: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel669; }
10616: }}}}endlabel669: ;
10617: return 22;
10618: }
10619: unsigned long REGPARAM2 CPUFUNC(op_413b_0)(uae_u32 opcode) /* CHK */
10620: {
10621: uae_u32 dstreg = (opcode >> 9) & 7;
10622: OpcodeFamily = 80; CurrentInstrCycles = 24;
10623: { uaecptr oldpc = m68k_getpc();
10624: {m68k_incpc(2);
10625: { uaecptr tmppc = m68k_getpc();
10626: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
10627: BusCyclePenalty += 2;
10628: { uae_s32 src = get_long(srca);
10629: { uae_s32 dst = m68k_dreg(regs, dstreg);
10630: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel670; }
10631: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel670; }
10632: }}}}}endlabel670: ;
10633: return 24;
10634: }
10635: unsigned long REGPARAM2 CPUFUNC(op_413c_0)(uae_u32 opcode) /* CHK */
10636: {
10637: uae_u32 dstreg = (opcode >> 9) & 7;
10638: OpcodeFamily = 80; CurrentInstrCycles = 18;
10639: { uaecptr oldpc = m68k_getpc();
10640: { uae_s32 src = get_ilong(2);
10641: { uae_s32 dst = m68k_dreg(regs, dstreg);
10642: m68k_incpc(6);
10643: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel671; }
10644: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel671; }
10645: }}}endlabel671: ;
10646: return 18;
10647: }
10648: unsigned long REGPARAM2 CPUFUNC(op_4180_0)(uae_u32 opcode) /* CHK */
10649: {
10650: uae_u32 srcreg = (opcode & 7);
10651: uae_u32 dstreg = (opcode >> 9) & 7;
10652: OpcodeFamily = 80; CurrentInstrCycles = 10;
10653: { uaecptr oldpc = m68k_getpc();
10654: { uae_s16 src = m68k_dreg(regs, srcreg);
10655: { uae_s16 dst = m68k_dreg(regs, dstreg);
10656: m68k_incpc(2);
10657: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel672; }
10658: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel672; }
10659: }}}endlabel672: ;
10660: return 10;
10661: }
10662: unsigned long REGPARAM2 CPUFUNC(op_4190_0)(uae_u32 opcode) /* CHK */
10663: {
10664: uae_u32 srcreg = (opcode & 7);
10665: uae_u32 dstreg = (opcode >> 9) & 7;
10666: OpcodeFamily = 80; CurrentInstrCycles = 14;
10667: { uaecptr oldpc = m68k_getpc();
10668: { uaecptr srca = m68k_areg(regs, srcreg);
10669: { uae_s16 src = get_word(srca);
10670: { uae_s16 dst = m68k_dreg(regs, dstreg);
10671: m68k_incpc(2);
10672: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel673; }
10673: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel673; }
10674: }}}}endlabel673: ;
10675: return 14;
10676: }
10677: unsigned long REGPARAM2 CPUFUNC(op_4198_0)(uae_u32 opcode) /* CHK */
10678: {
10679: uae_u32 srcreg = (opcode & 7);
10680: uae_u32 dstreg = (opcode >> 9) & 7;
10681: OpcodeFamily = 80; CurrentInstrCycles = 14;
10682: { uaecptr oldpc = m68k_getpc();
10683: { uaecptr srca = m68k_areg(regs, srcreg);
10684: { uae_s16 src = get_word(srca);
10685: m68k_areg(regs, srcreg) += 2;
10686: { uae_s16 dst = m68k_dreg(regs, dstreg);
10687: m68k_incpc(2);
10688: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel674; }
10689: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel674; }
10690: }}}}endlabel674: ;
10691: return 14;
10692: }
10693: unsigned long REGPARAM2 CPUFUNC(op_41a0_0)(uae_u32 opcode) /* CHK */
10694: {
10695: uae_u32 srcreg = (opcode & 7);
10696: uae_u32 dstreg = (opcode >> 9) & 7;
10697: OpcodeFamily = 80; CurrentInstrCycles = 16;
10698: { uaecptr oldpc = m68k_getpc();
10699: { uaecptr srca = m68k_areg(regs, srcreg) - 2;
10700: { uae_s16 src = get_word(srca);
10701: m68k_areg (regs, srcreg) = srca;
10702: { uae_s16 dst = m68k_dreg(regs, dstreg);
10703: m68k_incpc(2);
10704: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel675; }
10705: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel675; }
10706: }}}}endlabel675: ;
10707: return 16;
10708: }
10709: unsigned long REGPARAM2 CPUFUNC(op_41a8_0)(uae_u32 opcode) /* CHK */
10710: {
10711: uae_u32 srcreg = (opcode & 7);
10712: uae_u32 dstreg = (opcode >> 9) & 7;
10713: OpcodeFamily = 80; CurrentInstrCycles = 18;
10714: { uaecptr oldpc = m68k_getpc();
10715: { uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
10716: { uae_s16 src = get_word(srca);
10717: { uae_s16 dst = m68k_dreg(regs, dstreg);
10718: m68k_incpc(4);
10719: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel676; }
10720: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel676; }
10721: }}}}endlabel676: ;
10722: return 18;
10723: }
10724: unsigned long REGPARAM2 CPUFUNC(op_41b0_0)(uae_u32 opcode) /* CHK */
10725: {
10726: uae_u32 srcreg = (opcode & 7);
10727: uae_u32 dstreg = (opcode >> 9) & 7;
10728: OpcodeFamily = 80; CurrentInstrCycles = 20;
10729: { uaecptr oldpc = m68k_getpc();
10730: {m68k_incpc(2);
10731: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
10732: BusCyclePenalty += 2;
10733: { uae_s16 src = get_word(srca);
10734: { uae_s16 dst = m68k_dreg(regs, dstreg);
10735: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel677; }
10736: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel677; }
10737: }}}}}endlabel677: ;
10738: return 20;
10739: }
10740: unsigned long REGPARAM2 CPUFUNC(op_41b8_0)(uae_u32 opcode) /* CHK */
10741: {
10742: uae_u32 dstreg = (opcode >> 9) & 7;
10743: OpcodeFamily = 80; CurrentInstrCycles = 18;
10744: { uaecptr oldpc = m68k_getpc();
10745: { uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
10746: { uae_s16 src = get_word(srca);
10747: { uae_s16 dst = m68k_dreg(regs, dstreg);
10748: m68k_incpc(4);
10749: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel678; }
10750: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel678; }
10751: }}}}endlabel678: ;
10752: return 18;
10753: }
10754: unsigned long REGPARAM2 CPUFUNC(op_41b9_0)(uae_u32 opcode) /* CHK */
10755: {
10756: uae_u32 dstreg = (opcode >> 9) & 7;
10757: OpcodeFamily = 80; CurrentInstrCycles = 22;
10758: { uaecptr oldpc = m68k_getpc();
10759: { uaecptr srca = get_ilong(2);
10760: { uae_s16 src = get_word(srca);
10761: { uae_s16 dst = m68k_dreg(regs, dstreg);
10762: m68k_incpc(6);
10763: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel679; }
10764: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel679; }
10765: }}}}endlabel679: ;
10766: return 22;
10767: }
10768: unsigned long REGPARAM2 CPUFUNC(op_41ba_0)(uae_u32 opcode) /* CHK */
10769: {
10770: uae_u32 dstreg = (opcode >> 9) & 7;
10771: OpcodeFamily = 80; CurrentInstrCycles = 18;
10772: { uaecptr oldpc = m68k_getpc();
10773: { uaecptr srca = m68k_getpc () + 2;
10774: srca += (uae_s32)(uae_s16)get_iword(2);
10775: { uae_s16 src = get_word(srca);
10776: { uae_s16 dst = m68k_dreg(regs, dstreg);
10777: m68k_incpc(4);
10778: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel680; }
10779: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel680; }
10780: }}}}endlabel680: ;
10781: return 18;
10782: }
10783: unsigned long REGPARAM2 CPUFUNC(op_41bb_0)(uae_u32 opcode) /* CHK */
10784: {
10785: uae_u32 dstreg = (opcode >> 9) & 7;
10786: OpcodeFamily = 80; CurrentInstrCycles = 20;
10787: { uaecptr oldpc = m68k_getpc();
10788: {m68k_incpc(2);
10789: { uaecptr tmppc = m68k_getpc();
10790: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
10791: BusCyclePenalty += 2;
10792: { uae_s16 src = get_word(srca);
10793: { uae_s16 dst = m68k_dreg(regs, dstreg);
10794: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel681; }
10795: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel681; }
10796: }}}}}endlabel681: ;
10797: return 20;
10798: }
10799: unsigned long REGPARAM2 CPUFUNC(op_41bc_0)(uae_u32 opcode) /* CHK */
10800: {
10801: uae_u32 dstreg = (opcode >> 9) & 7;
10802: OpcodeFamily = 80; CurrentInstrCycles = 14;
10803: { uaecptr oldpc = m68k_getpc();
10804: { uae_s16 src = get_iword(2);
10805: { uae_s16 dst = m68k_dreg(regs, dstreg);
10806: m68k_incpc(4);
10807: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel682; }
10808: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel682; }
10809: }}}endlabel682: ;
10810: return 14;
10811: }
10812: unsigned long REGPARAM2 CPUFUNC(op_41d0_0)(uae_u32 opcode) /* LEA */
10813: {
10814: uae_u32 srcreg = (opcode & 7);
10815: uae_u32 dstreg = (opcode >> 9) & 7;
10816: OpcodeFamily = 56; CurrentInstrCycles = 4;
10817: {{ uaecptr srca = m68k_areg(regs, srcreg);
10818: { m68k_areg(regs, dstreg) = (srca);
10819: }}}m68k_incpc(2);
10820: return 4;
10821: }
10822: unsigned long REGPARAM2 CPUFUNC(op_41e8_0)(uae_u32 opcode) /* LEA */
10823: {
10824: uae_u32 srcreg = (opcode & 7);
10825: uae_u32 dstreg = (opcode >> 9) & 7;
10826: OpcodeFamily = 56; CurrentInstrCycles = 8;
10827: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
10828: { m68k_areg(regs, dstreg) = (srca);
10829: }}}m68k_incpc(4);
10830: return 8;
10831: }
10832: unsigned long REGPARAM2 CPUFUNC(op_41f0_0)(uae_u32 opcode) /* LEA */
10833: {
10834: uae_u32 srcreg = (opcode & 7);
10835: uae_u32 dstreg = (opcode >> 9) & 7;
10836: OpcodeFamily = 56; CurrentInstrCycles = 14;
10837: {{m68k_incpc(2);
10838: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
10839: BusCyclePenalty += 2;
10840: { m68k_areg(regs, dstreg) = (srca);
10841: }}}}return 14;
10842: }
10843: unsigned long REGPARAM2 CPUFUNC(op_41f8_0)(uae_u32 opcode) /* LEA */
10844: {
10845: uae_u32 dstreg = (opcode >> 9) & 7;
10846: OpcodeFamily = 56; CurrentInstrCycles = 8;
10847: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
10848: { m68k_areg(regs, dstreg) = (srca);
10849: }}}m68k_incpc(4);
10850: return 8;
10851: }
10852: unsigned long REGPARAM2 CPUFUNC(op_41f9_0)(uae_u32 opcode) /* LEA */
10853: {
10854: uae_u32 dstreg = (opcode >> 9) & 7;
10855: OpcodeFamily = 56; CurrentInstrCycles = 12;
10856: {{ uaecptr srca = get_ilong(2);
10857: { m68k_areg(regs, dstreg) = (srca);
10858: }}}m68k_incpc(6);
10859: return 12;
10860: }
10861: unsigned long REGPARAM2 CPUFUNC(op_41fa_0)(uae_u32 opcode) /* LEA */
10862: {
10863: uae_u32 dstreg = (opcode >> 9) & 7;
10864: OpcodeFamily = 56; CurrentInstrCycles = 8;
10865: {{ uaecptr srca = m68k_getpc () + 2;
10866: srca += (uae_s32)(uae_s16)get_iword(2);
10867: { m68k_areg(regs, dstreg) = (srca);
10868: }}}m68k_incpc(4);
10869: return 8;
10870: }
10871: unsigned long REGPARAM2 CPUFUNC(op_41fb_0)(uae_u32 opcode) /* LEA */
10872: {
10873: uae_u32 dstreg = (opcode >> 9) & 7;
10874: OpcodeFamily = 56; CurrentInstrCycles = 14;
10875: {{m68k_incpc(2);
10876: { uaecptr tmppc = m68k_getpc();
10877: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
10878: BusCyclePenalty += 2;
10879: { m68k_areg(regs, dstreg) = (srca);
10880: }}}}return 14;
10881: }
10882: unsigned long REGPARAM2 CPUFUNC(op_4200_0)(uae_u32 opcode) /* CLR */
10883: {
10884: uae_u32 srcreg = (opcode & 7);
10885: OpcodeFamily = 18; CurrentInstrCycles = 4;
10886: {{ CLEAR_CZNV;
10887: SET_ZFLG (((uae_s8)(0)) == 0);
10888: SET_NFLG (((uae_s8)(0)) < 0);
10889: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((0) & 0xff);
10890: }}m68k_incpc(2);
10891: return 4;
10892: }
10893: unsigned long REGPARAM2 CPUFUNC(op_4210_0)(uae_u32 opcode) /* CLR */
10894: {
10895: uae_u32 srcreg = (opcode & 7);
10896: OpcodeFamily = 18; CurrentInstrCycles = 12;
10897: {{ uaecptr srca = m68k_areg(regs, srcreg);
10898: uae_s8 src = get_byte(srca);
10899: CLEAR_CZNV;
10900: SET_ZFLG (((uae_s8)(0)) == 0);
10901: SET_NFLG (((uae_s8)(0)) < 0);
10902: put_byte(srca,0);
10903: }}m68k_incpc(2);
10904: return 12;
10905: }
10906: unsigned long REGPARAM2 CPUFUNC(op_4218_0)(uae_u32 opcode) /* CLR */
10907: {
10908: uae_u32 srcreg = (opcode & 7);
10909: OpcodeFamily = 18; CurrentInstrCycles = 12;
10910: {{ uaecptr srca = m68k_areg(regs, srcreg);
10911: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
10912: uae_s8 src = get_byte(srca);
10913: CLEAR_CZNV;
10914: SET_ZFLG (((uae_s8)(0)) == 0);
10915: SET_NFLG (((uae_s8)(0)) < 0);
10916: put_byte(srca,0);
10917: }}m68k_incpc(2);
10918: return 12;
10919: }
10920: unsigned long REGPARAM2 CPUFUNC(op_4220_0)(uae_u32 opcode) /* CLR */
10921: {
10922: uae_u32 srcreg = (opcode & 7);
10923: OpcodeFamily = 18; CurrentInstrCycles = 14;
10924: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
10925: m68k_areg (regs, srcreg) = srca;
10926: uae_s8 src = get_byte(srca);
10927: CLEAR_CZNV;
10928: SET_ZFLG (((uae_s8)(0)) == 0);
10929: SET_NFLG (((uae_s8)(0)) < 0);
10930: put_byte(srca,0);
10931: }}m68k_incpc(2);
10932: return 14;
10933: }
10934: unsigned long REGPARAM2 CPUFUNC(op_4228_0)(uae_u32 opcode) /* CLR */
10935: {
10936: uae_u32 srcreg = (opcode & 7);
10937: OpcodeFamily = 18; CurrentInstrCycles = 16;
10938: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
10939: uae_s8 src = get_byte(srca);
10940: CLEAR_CZNV;
10941: SET_ZFLG (((uae_s8)(0)) == 0);
10942: SET_NFLG (((uae_s8)(0)) < 0);
10943: put_byte(srca,0);
10944: }}m68k_incpc(4);
10945: return 16;
10946: }
10947: unsigned long REGPARAM2 CPUFUNC(op_4230_0)(uae_u32 opcode) /* CLR */
10948: {
10949: uae_u32 srcreg = (opcode & 7);
10950: OpcodeFamily = 18; CurrentInstrCycles = 18;
10951: {{m68k_incpc(2);
10952: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
10953: BusCyclePenalty += 2;
10954: uae_s8 src = get_byte(srca);
10955: CLEAR_CZNV;
10956: SET_ZFLG (((uae_s8)(0)) == 0);
10957: SET_NFLG (((uae_s8)(0)) < 0);
10958: put_byte(srca,0);
10959: }}}return 18;
10960: }
10961: unsigned long REGPARAM2 CPUFUNC(op_4238_0)(uae_u32 opcode) /* CLR */
10962: {
10963: OpcodeFamily = 18; CurrentInstrCycles = 16;
10964: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
10965: uae_s8 src = get_byte(srca);
10966: CLEAR_CZNV;
10967: SET_ZFLG (((uae_s8)(0)) == 0);
10968: SET_NFLG (((uae_s8)(0)) < 0);
10969: put_byte(srca,0);
10970: }}m68k_incpc(4);
10971: return 16;
10972: }
10973: unsigned long REGPARAM2 CPUFUNC(op_4239_0)(uae_u32 opcode) /* CLR */
10974: {
10975: OpcodeFamily = 18; CurrentInstrCycles = 20;
10976: {{ uaecptr srca = get_ilong(2);
10977: uae_s8 src = get_byte(srca);
10978: CLEAR_CZNV;
10979: SET_ZFLG (((uae_s8)(0)) == 0);
10980: SET_NFLG (((uae_s8)(0)) < 0);
10981: put_byte(srca,0);
10982: }}m68k_incpc(6);
10983: return 20;
10984: }
10985: unsigned long REGPARAM2 CPUFUNC(op_4240_0)(uae_u32 opcode) /* CLR */
10986: {
10987: uae_u32 srcreg = (opcode & 7);
10988: OpcodeFamily = 18; CurrentInstrCycles = 4;
10989: {{ CLEAR_CZNV;
10990: SET_ZFLG (((uae_s16)(0)) == 0);
10991: SET_NFLG (((uae_s16)(0)) < 0);
10992: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((0) & 0xffff);
10993: }}m68k_incpc(2);
10994: return 4;
10995: }
10996: unsigned long REGPARAM2 CPUFUNC(op_4250_0)(uae_u32 opcode) /* CLR */
10997: {
10998: uae_u32 srcreg = (opcode & 7);
10999: OpcodeFamily = 18; CurrentInstrCycles = 12;
11000: {{ uaecptr srca = m68k_areg(regs, srcreg);
11001: uae_s16 src = get_word(srca);
11002: CLEAR_CZNV;
11003: SET_ZFLG (((uae_s16)(0)) == 0);
11004: SET_NFLG (((uae_s16)(0)) < 0);
11005: put_word(srca,0);
11006: }}m68k_incpc(2);
11007: return 12;
11008: }
11009: unsigned long REGPARAM2 CPUFUNC(op_4258_0)(uae_u32 opcode) /* CLR */
11010: {
11011: uae_u32 srcreg = (opcode & 7);
11012: OpcodeFamily = 18; CurrentInstrCycles = 12;
11013: {{ uaecptr srca = m68k_areg(regs, srcreg);
11014: m68k_areg(regs, srcreg) += 2;
11015: uae_s16 src = get_word(srca);
11016: CLEAR_CZNV;
11017: SET_ZFLG (((uae_s16)(0)) == 0);
11018: SET_NFLG (((uae_s16)(0)) < 0);
11019: put_word(srca,0);
11020: }}m68k_incpc(2);
11021: return 12;
11022: }
11023: unsigned long REGPARAM2 CPUFUNC(op_4260_0)(uae_u32 opcode) /* CLR */
11024: {
11025: uae_u32 srcreg = (opcode & 7);
11026: OpcodeFamily = 18; CurrentInstrCycles = 14;
11027: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
11028: m68k_areg (regs, srcreg) = srca;
11029: uae_s16 src = get_word(srca);
11030: CLEAR_CZNV;
11031: SET_ZFLG (((uae_s16)(0)) == 0);
11032: SET_NFLG (((uae_s16)(0)) < 0);
11033: put_word(srca,0);
11034: }}m68k_incpc(2);
11035: return 14;
11036: }
11037: unsigned long REGPARAM2 CPUFUNC(op_4268_0)(uae_u32 opcode) /* CLR */
11038: {
11039: uae_u32 srcreg = (opcode & 7);
11040: OpcodeFamily = 18; CurrentInstrCycles = 16;
11041: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
11042: uae_s16 src = get_word(srca);
11043: CLEAR_CZNV;
11044: SET_ZFLG (((uae_s16)(0)) == 0);
11045: SET_NFLG (((uae_s16)(0)) < 0);
11046: put_word(srca,0);
11047: }}m68k_incpc(4);
11048: return 16;
11049: }
11050: #endif
11051:
11052: #ifdef PART_4
11053: unsigned long REGPARAM2 CPUFUNC(op_4270_0)(uae_u32 opcode) /* CLR */
11054: {
11055: uae_u32 srcreg = (opcode & 7);
11056: OpcodeFamily = 18; CurrentInstrCycles = 18;
11057: {{m68k_incpc(2);
11058: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
11059: BusCyclePenalty += 2;
11060: uae_s16 src = get_word(srca);
11061: CLEAR_CZNV;
11062: SET_ZFLG (((uae_s16)(0)) == 0);
11063: SET_NFLG (((uae_s16)(0)) < 0);
11064: put_word(srca,0);
11065: }}}return 18;
11066: }
11067: unsigned long REGPARAM2 CPUFUNC(op_4278_0)(uae_u32 opcode) /* CLR */
11068: {
11069: OpcodeFamily = 18; CurrentInstrCycles = 16;
11070: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
11071: uae_s16 src = get_word(srca);
11072: CLEAR_CZNV;
11073: SET_ZFLG (((uae_s16)(0)) == 0);
11074: SET_NFLG (((uae_s16)(0)) < 0);
11075: put_word(srca,0);
11076: }}m68k_incpc(4);
11077: return 16;
11078: }
11079: unsigned long REGPARAM2 CPUFUNC(op_4279_0)(uae_u32 opcode) /* CLR */
11080: {
11081: OpcodeFamily = 18; CurrentInstrCycles = 20;
11082: {{ uaecptr srca = get_ilong(2);
11083: uae_s16 src = get_word(srca);
11084: CLEAR_CZNV;
11085: SET_ZFLG (((uae_s16)(0)) == 0);
11086: SET_NFLG (((uae_s16)(0)) < 0);
11087: put_word(srca,0);
11088: }}m68k_incpc(6);
11089: return 20;
11090: }
11091: unsigned long REGPARAM2 CPUFUNC(op_4280_0)(uae_u32 opcode) /* CLR */
11092: {
11093: uae_u32 srcreg = (opcode & 7);
11094: OpcodeFamily = 18; CurrentInstrCycles = 6;
11095: {{ CLEAR_CZNV;
11096: SET_ZFLG (((uae_s32)(0)) == 0);
11097: SET_NFLG (((uae_s32)(0)) < 0);
11098: m68k_dreg(regs, srcreg) = (0);
11099: }}m68k_incpc(2);
11100: return 6;
11101: }
11102: unsigned long REGPARAM2 CPUFUNC(op_4290_0)(uae_u32 opcode) /* CLR */
11103: {
11104: uae_u32 srcreg = (opcode & 7);
11105: OpcodeFamily = 18; CurrentInstrCycles = 20;
11106: {{ uaecptr srca = m68k_areg(regs, srcreg);
11107: uae_s32 src = get_long(srca);
11108: CLEAR_CZNV;
11109: SET_ZFLG (((uae_s32)(0)) == 0);
11110: SET_NFLG (((uae_s32)(0)) < 0);
11111: put_long(srca,0);
11112: }}m68k_incpc(2);
11113: return 20;
11114: }
11115: unsigned long REGPARAM2 CPUFUNC(op_4298_0)(uae_u32 opcode) /* CLR */
11116: {
11117: uae_u32 srcreg = (opcode & 7);
11118: OpcodeFamily = 18; CurrentInstrCycles = 20;
11119: {{ uaecptr srca = m68k_areg(regs, srcreg);
11120: m68k_areg(regs, srcreg) += 4;
11121: uae_s32 src = get_long(srca);
11122: CLEAR_CZNV;
11123: SET_ZFLG (((uae_s32)(0)) == 0);
11124: SET_NFLG (((uae_s32)(0)) < 0);
11125: put_long(srca,0);
11126: }}m68k_incpc(2);
11127: return 20;
11128: }
11129: unsigned long REGPARAM2 CPUFUNC(op_42a0_0)(uae_u32 opcode) /* CLR */
11130: {
11131: uae_u32 srcreg = (opcode & 7);
11132: OpcodeFamily = 18; CurrentInstrCycles = 22;
11133: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
11134: m68k_areg (regs, srcreg) = srca;
11135: uae_s32 src = get_long(srca);
11136: CLEAR_CZNV;
11137: SET_ZFLG (((uae_s32)(0)) == 0);
11138: SET_NFLG (((uae_s32)(0)) < 0);
11139: put_long(srca,0);
11140: }}m68k_incpc(2);
11141: return 22;
11142: }
11143: unsigned long REGPARAM2 CPUFUNC(op_42a8_0)(uae_u32 opcode) /* CLR */
11144: {
11145: uae_u32 srcreg = (opcode & 7);
11146: OpcodeFamily = 18; CurrentInstrCycles = 24;
11147: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
11148: uae_s32 src = get_long(srca);
11149: CLEAR_CZNV;
11150: SET_ZFLG (((uae_s32)(0)) == 0);
11151: SET_NFLG (((uae_s32)(0)) < 0);
11152: put_long(srca,0);
11153: }}m68k_incpc(4);
11154: return 24;
11155: }
11156: unsigned long REGPARAM2 CPUFUNC(op_42b0_0)(uae_u32 opcode) /* CLR */
11157: {
11158: uae_u32 srcreg = (opcode & 7);
11159: OpcodeFamily = 18; CurrentInstrCycles = 26;
11160: {{m68k_incpc(2);
11161: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
11162: BusCyclePenalty += 2;
11163: uae_s32 src = get_long(srca);
11164: CLEAR_CZNV;
11165: SET_ZFLG (((uae_s32)(0)) == 0);
11166: SET_NFLG (((uae_s32)(0)) < 0);
11167: put_long(srca,0);
11168: }}}return 26;
11169: }
11170: unsigned long REGPARAM2 CPUFUNC(op_42b8_0)(uae_u32 opcode) /* CLR */
11171: {
11172: OpcodeFamily = 18; CurrentInstrCycles = 24;
11173: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
11174: uae_s32 src = get_long(srca);
11175: CLEAR_CZNV;
11176: SET_ZFLG (((uae_s32)(0)) == 0);
11177: SET_NFLG (((uae_s32)(0)) < 0);
11178: put_long(srca,0);
11179: }}m68k_incpc(4);
11180: return 24;
11181: }
11182: unsigned long REGPARAM2 CPUFUNC(op_42b9_0)(uae_u32 opcode) /* CLR */
11183: {
11184: OpcodeFamily = 18; CurrentInstrCycles = 28;
11185: {{ uaecptr srca = get_ilong(2);
11186: uae_s32 src = get_long(srca);
11187: CLEAR_CZNV;
11188: SET_ZFLG (((uae_s32)(0)) == 0);
11189: SET_NFLG (((uae_s32)(0)) < 0);
11190: put_long(srca,0);
11191: }}m68k_incpc(6);
11192: return 28;
11193: }
11194: unsigned long REGPARAM2 CPUFUNC(op_42c0_0)(uae_u32 opcode) /* MVSR2 */
11195: {
11196: uae_u32 srcreg = (opcode & 7);
11197: OpcodeFamily = 32; CurrentInstrCycles = 6;
11198: {{ MakeSR();
11199: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((regs.sr & 0xff) & 0xffff);
11200: }}m68k_incpc(2);
11201: return 6;
11202: }
11203: unsigned long REGPARAM2 CPUFUNC(op_42d0_0)(uae_u32 opcode) /* MVSR2 */
11204: {
11205: uae_u32 srcreg = (opcode & 7);
11206: OpcodeFamily = 32; CurrentInstrCycles = 12;
11207: {{ uaecptr srca = m68k_areg(regs, srcreg);
11208: MakeSR();
11209: put_word(srca,regs.sr & 0xff);
11210: }}m68k_incpc(2);
11211: return 12;
11212: }
11213: unsigned long REGPARAM2 CPUFUNC(op_42d8_0)(uae_u32 opcode) /* MVSR2 */
11214: {
11215: uae_u32 srcreg = (opcode & 7);
11216: OpcodeFamily = 32; CurrentInstrCycles = 12;
11217: {{ uaecptr srca = m68k_areg(regs, srcreg);
11218: m68k_areg(regs, srcreg) += 2;
11219: MakeSR();
11220: put_word(srca,regs.sr & 0xff);
11221: }}m68k_incpc(2);
11222: return 12;
11223: }
11224: unsigned long REGPARAM2 CPUFUNC(op_42e0_0)(uae_u32 opcode) /* MVSR2 */
11225: {
11226: uae_u32 srcreg = (opcode & 7);
11227: OpcodeFamily = 32; CurrentInstrCycles = 14;
11228: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
11229: m68k_areg (regs, srcreg) = srca;
11230: MakeSR();
11231: put_word(srca,regs.sr & 0xff);
11232: }}m68k_incpc(2);
11233: return 14;
11234: }
11235: unsigned long REGPARAM2 CPUFUNC(op_42e8_0)(uae_u32 opcode) /* MVSR2 */
11236: {
11237: uae_u32 srcreg = (opcode & 7);
11238: OpcodeFamily = 32; CurrentInstrCycles = 16;
11239: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
11240: MakeSR();
11241: put_word(srca,regs.sr & 0xff);
11242: }}m68k_incpc(4);
11243: return 16;
11244: }
11245: unsigned long REGPARAM2 CPUFUNC(op_42f0_0)(uae_u32 opcode) /* MVSR2 */
11246: {
11247: uae_u32 srcreg = (opcode & 7);
11248: OpcodeFamily = 32; CurrentInstrCycles = 18;
11249: {{m68k_incpc(2);
11250: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
11251: BusCyclePenalty += 2;
11252: MakeSR();
11253: put_word(srca,regs.sr & 0xff);
11254: }}}return 18;
11255: }
11256: unsigned long REGPARAM2 CPUFUNC(op_42f8_0)(uae_u32 opcode) /* MVSR2 */
11257: {
11258: OpcodeFamily = 32; CurrentInstrCycles = 16;
11259: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
11260: MakeSR();
11261: put_word(srca,regs.sr & 0xff);
11262: }}m68k_incpc(4);
11263: return 16;
11264: }
11265: unsigned long REGPARAM2 CPUFUNC(op_42f9_0)(uae_u32 opcode) /* MVSR2 */
11266: {
11267: OpcodeFamily = 32; CurrentInstrCycles = 20;
11268: {{ uaecptr srca = get_ilong(2);
11269: MakeSR();
11270: put_word(srca,regs.sr & 0xff);
11271: }}m68k_incpc(6);
11272: return 20;
11273: }
11274: unsigned long REGPARAM2 CPUFUNC(op_4400_0)(uae_u32 opcode) /* NEG */
11275: {
11276: uae_u32 srcreg = (opcode & 7);
11277: OpcodeFamily = 15; CurrentInstrCycles = 4;
11278: {{ uae_s8 src = m68k_dreg(regs, srcreg);
11279: {{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src));
11280: { int flgs = ((uae_s8)(src)) < 0;
11281: int flgo = ((uae_s8)(0)) < 0;
11282: int flgn = ((uae_s8)(dst)) < 0;
11283: SET_ZFLG (((uae_s8)(dst)) == 0);
11284: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
11285: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0)));
11286: COPY_CARRY;
11287: SET_NFLG (flgn != 0);
11288: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((dst) & 0xff);
11289: }}}}}m68k_incpc(2);
11290: return 4;
11291: }
11292: unsigned long REGPARAM2 CPUFUNC(op_4410_0)(uae_u32 opcode) /* NEG */
11293: {
11294: uae_u32 srcreg = (opcode & 7);
11295: OpcodeFamily = 15; CurrentInstrCycles = 12;
11296: {{ uaecptr srca = m68k_areg(regs, srcreg);
11297: { uae_s8 src = get_byte(srca);
11298: {{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src));
11299: { int flgs = ((uae_s8)(src)) < 0;
11300: int flgo = ((uae_s8)(0)) < 0;
11301: int flgn = ((uae_s8)(dst)) < 0;
11302: SET_ZFLG (((uae_s8)(dst)) == 0);
11303: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
11304: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0)));
11305: COPY_CARRY;
11306: SET_NFLG (flgn != 0);
11307: put_byte(srca,dst);
11308: }}}}}}m68k_incpc(2);
11309: return 12;
11310: }
11311: unsigned long REGPARAM2 CPUFUNC(op_4418_0)(uae_u32 opcode) /* NEG */
11312: {
11313: uae_u32 srcreg = (opcode & 7);
11314: OpcodeFamily = 15; CurrentInstrCycles = 12;
11315: {{ uaecptr srca = m68k_areg(regs, srcreg);
11316: { uae_s8 src = get_byte(srca);
11317: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
11318: {{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src));
11319: { int flgs = ((uae_s8)(src)) < 0;
11320: int flgo = ((uae_s8)(0)) < 0;
11321: int flgn = ((uae_s8)(dst)) < 0;
11322: SET_ZFLG (((uae_s8)(dst)) == 0);
11323: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
11324: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0)));
11325: COPY_CARRY;
11326: SET_NFLG (flgn != 0);
11327: put_byte(srca,dst);
11328: }}}}}}m68k_incpc(2);
11329: return 12;
11330: }
11331: unsigned long REGPARAM2 CPUFUNC(op_4420_0)(uae_u32 opcode) /* NEG */
11332: {
11333: uae_u32 srcreg = (opcode & 7);
11334: OpcodeFamily = 15; CurrentInstrCycles = 14;
11335: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
11336: { uae_s8 src = get_byte(srca);
11337: m68k_areg (regs, srcreg) = srca;
11338: {{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src));
11339: { int flgs = ((uae_s8)(src)) < 0;
11340: int flgo = ((uae_s8)(0)) < 0;
11341: int flgn = ((uae_s8)(dst)) < 0;
11342: SET_ZFLG (((uae_s8)(dst)) == 0);
11343: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
11344: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0)));
11345: COPY_CARRY;
11346: SET_NFLG (flgn != 0);
11347: put_byte(srca,dst);
11348: }}}}}}m68k_incpc(2);
11349: return 14;
11350: }
11351: unsigned long REGPARAM2 CPUFUNC(op_4428_0)(uae_u32 opcode) /* NEG */
11352: {
11353: uae_u32 srcreg = (opcode & 7);
11354: OpcodeFamily = 15; CurrentInstrCycles = 16;
11355: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
11356: { uae_s8 src = get_byte(srca);
11357: {{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src));
11358: { int flgs = ((uae_s8)(src)) < 0;
11359: int flgo = ((uae_s8)(0)) < 0;
11360: int flgn = ((uae_s8)(dst)) < 0;
11361: SET_ZFLG (((uae_s8)(dst)) == 0);
11362: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
11363: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0)));
11364: COPY_CARRY;
11365: SET_NFLG (flgn != 0);
11366: put_byte(srca,dst);
11367: }}}}}}m68k_incpc(4);
11368: return 16;
11369: }
11370: unsigned long REGPARAM2 CPUFUNC(op_4430_0)(uae_u32 opcode) /* NEG */
11371: {
11372: uae_u32 srcreg = (opcode & 7);
11373: OpcodeFamily = 15; CurrentInstrCycles = 18;
11374: {{m68k_incpc(2);
11375: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
11376: BusCyclePenalty += 2;
11377: { uae_s8 src = get_byte(srca);
11378: {{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src));
11379: { int flgs = ((uae_s8)(src)) < 0;
11380: int flgo = ((uae_s8)(0)) < 0;
11381: int flgn = ((uae_s8)(dst)) < 0;
11382: SET_ZFLG (((uae_s8)(dst)) == 0);
11383: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
11384: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0)));
11385: COPY_CARRY;
11386: SET_NFLG (flgn != 0);
11387: put_byte(srca,dst);
11388: }}}}}}}return 18;
11389: }
11390: unsigned long REGPARAM2 CPUFUNC(op_4438_0)(uae_u32 opcode) /* NEG */
11391: {
11392: OpcodeFamily = 15; CurrentInstrCycles = 16;
11393: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
11394: { uae_s8 src = get_byte(srca);
11395: {{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src));
11396: { int flgs = ((uae_s8)(src)) < 0;
11397: int flgo = ((uae_s8)(0)) < 0;
11398: int flgn = ((uae_s8)(dst)) < 0;
11399: SET_ZFLG (((uae_s8)(dst)) == 0);
11400: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
11401: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0)));
11402: COPY_CARRY;
11403: SET_NFLG (flgn != 0);
11404: put_byte(srca,dst);
11405: }}}}}}m68k_incpc(4);
11406: return 16;
11407: }
11408: unsigned long REGPARAM2 CPUFUNC(op_4439_0)(uae_u32 opcode) /* NEG */
11409: {
11410: OpcodeFamily = 15; CurrentInstrCycles = 20;
11411: {{ uaecptr srca = get_ilong(2);
11412: { uae_s8 src = get_byte(srca);
11413: {{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src));
11414: { int flgs = ((uae_s8)(src)) < 0;
11415: int flgo = ((uae_s8)(0)) < 0;
11416: int flgn = ((uae_s8)(dst)) < 0;
11417: SET_ZFLG (((uae_s8)(dst)) == 0);
11418: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
11419: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0)));
11420: COPY_CARRY;
11421: SET_NFLG (flgn != 0);
11422: put_byte(srca,dst);
11423: }}}}}}m68k_incpc(6);
11424: return 20;
11425: }
11426: unsigned long REGPARAM2 CPUFUNC(op_4440_0)(uae_u32 opcode) /* NEG */
11427: {
11428: uae_u32 srcreg = (opcode & 7);
11429: OpcodeFamily = 15; CurrentInstrCycles = 4;
11430: {{ uae_s16 src = m68k_dreg(regs, srcreg);
11431: {{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src));
11432: { int flgs = ((uae_s16)(src)) < 0;
11433: int flgo = ((uae_s16)(0)) < 0;
11434: int flgn = ((uae_s16)(dst)) < 0;
11435: SET_ZFLG (((uae_s16)(dst)) == 0);
11436: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
11437: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0)));
11438: COPY_CARRY;
11439: SET_NFLG (flgn != 0);
11440: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((dst) & 0xffff);
11441: }}}}}m68k_incpc(2);
11442: return 4;
11443: }
11444: unsigned long REGPARAM2 CPUFUNC(op_4450_0)(uae_u32 opcode) /* NEG */
11445: {
11446: uae_u32 srcreg = (opcode & 7);
11447: OpcodeFamily = 15; CurrentInstrCycles = 12;
11448: {{ uaecptr srca = m68k_areg(regs, srcreg);
11449: { uae_s16 src = get_word(srca);
11450: {{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src));
11451: { int flgs = ((uae_s16)(src)) < 0;
11452: int flgo = ((uae_s16)(0)) < 0;
11453: int flgn = ((uae_s16)(dst)) < 0;
11454: SET_ZFLG (((uae_s16)(dst)) == 0);
11455: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
11456: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0)));
11457: COPY_CARRY;
11458: SET_NFLG (flgn != 0);
11459: put_word(srca,dst);
11460: }}}}}}m68k_incpc(2);
11461: return 12;
11462: }
11463: unsigned long REGPARAM2 CPUFUNC(op_4458_0)(uae_u32 opcode) /* NEG */
11464: {
11465: uae_u32 srcreg = (opcode & 7);
11466: OpcodeFamily = 15; CurrentInstrCycles = 12;
11467: {{ uaecptr srca = m68k_areg(regs, srcreg);
11468: { uae_s16 src = get_word(srca);
11469: m68k_areg(regs, srcreg) += 2;
11470: {{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src));
11471: { int flgs = ((uae_s16)(src)) < 0;
11472: int flgo = ((uae_s16)(0)) < 0;
11473: int flgn = ((uae_s16)(dst)) < 0;
11474: SET_ZFLG (((uae_s16)(dst)) == 0);
11475: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
11476: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0)));
11477: COPY_CARRY;
11478: SET_NFLG (flgn != 0);
11479: put_word(srca,dst);
11480: }}}}}}m68k_incpc(2);
11481: return 12;
11482: }
11483: unsigned long REGPARAM2 CPUFUNC(op_4460_0)(uae_u32 opcode) /* NEG */
11484: {
11485: uae_u32 srcreg = (opcode & 7);
11486: OpcodeFamily = 15; CurrentInstrCycles = 14;
11487: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
11488: { uae_s16 src = get_word(srca);
11489: m68k_areg (regs, srcreg) = srca;
11490: {{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src));
11491: { int flgs = ((uae_s16)(src)) < 0;
11492: int flgo = ((uae_s16)(0)) < 0;
11493: int flgn = ((uae_s16)(dst)) < 0;
11494: SET_ZFLG (((uae_s16)(dst)) == 0);
11495: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
11496: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0)));
11497: COPY_CARRY;
11498: SET_NFLG (flgn != 0);
11499: put_word(srca,dst);
11500: }}}}}}m68k_incpc(2);
11501: return 14;
11502: }
11503: unsigned long REGPARAM2 CPUFUNC(op_4468_0)(uae_u32 opcode) /* NEG */
11504: {
11505: uae_u32 srcreg = (opcode & 7);
11506: OpcodeFamily = 15; CurrentInstrCycles = 16;
11507: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
11508: { uae_s16 src = get_word(srca);
11509: {{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src));
11510: { int flgs = ((uae_s16)(src)) < 0;
11511: int flgo = ((uae_s16)(0)) < 0;
11512: int flgn = ((uae_s16)(dst)) < 0;
11513: SET_ZFLG (((uae_s16)(dst)) == 0);
11514: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
11515: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0)));
11516: COPY_CARRY;
11517: SET_NFLG (flgn != 0);
11518: put_word(srca,dst);
11519: }}}}}}m68k_incpc(4);
11520: return 16;
11521: }
11522: unsigned long REGPARAM2 CPUFUNC(op_4470_0)(uae_u32 opcode) /* NEG */
11523: {
11524: uae_u32 srcreg = (opcode & 7);
11525: OpcodeFamily = 15; CurrentInstrCycles = 18;
11526: {{m68k_incpc(2);
11527: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
11528: BusCyclePenalty += 2;
11529: { uae_s16 src = get_word(srca);
11530: {{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src));
11531: { int flgs = ((uae_s16)(src)) < 0;
11532: int flgo = ((uae_s16)(0)) < 0;
11533: int flgn = ((uae_s16)(dst)) < 0;
11534: SET_ZFLG (((uae_s16)(dst)) == 0);
11535: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
11536: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0)));
11537: COPY_CARRY;
11538: SET_NFLG (flgn != 0);
11539: put_word(srca,dst);
11540: }}}}}}}return 18;
11541: }
11542: unsigned long REGPARAM2 CPUFUNC(op_4478_0)(uae_u32 opcode) /* NEG */
11543: {
11544: OpcodeFamily = 15; CurrentInstrCycles = 16;
11545: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
11546: { uae_s16 src = get_word(srca);
11547: {{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src));
11548: { int flgs = ((uae_s16)(src)) < 0;
11549: int flgo = ((uae_s16)(0)) < 0;
11550: int flgn = ((uae_s16)(dst)) < 0;
11551: SET_ZFLG (((uae_s16)(dst)) == 0);
11552: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
11553: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0)));
11554: COPY_CARRY;
11555: SET_NFLG (flgn != 0);
11556: put_word(srca,dst);
11557: }}}}}}m68k_incpc(4);
11558: return 16;
11559: }
11560: unsigned long REGPARAM2 CPUFUNC(op_4479_0)(uae_u32 opcode) /* NEG */
11561: {
11562: OpcodeFamily = 15; CurrentInstrCycles = 20;
11563: {{ uaecptr srca = get_ilong(2);
11564: { uae_s16 src = get_word(srca);
11565: {{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src));
11566: { int flgs = ((uae_s16)(src)) < 0;
11567: int flgo = ((uae_s16)(0)) < 0;
11568: int flgn = ((uae_s16)(dst)) < 0;
11569: SET_ZFLG (((uae_s16)(dst)) == 0);
11570: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
11571: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0)));
11572: COPY_CARRY;
11573: SET_NFLG (flgn != 0);
11574: put_word(srca,dst);
11575: }}}}}}m68k_incpc(6);
11576: return 20;
11577: }
11578: unsigned long REGPARAM2 CPUFUNC(op_4480_0)(uae_u32 opcode) /* NEG */
11579: {
11580: uae_u32 srcreg = (opcode & 7);
11581: OpcodeFamily = 15; CurrentInstrCycles = 6;
11582: {{ uae_s32 src = m68k_dreg(regs, srcreg);
11583: {{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src));
11584: { int flgs = ((uae_s32)(src)) < 0;
11585: int flgo = ((uae_s32)(0)) < 0;
11586: int flgn = ((uae_s32)(dst)) < 0;
11587: SET_ZFLG (((uae_s32)(dst)) == 0);
11588: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
11589: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0)));
11590: COPY_CARRY;
11591: SET_NFLG (flgn != 0);
11592: m68k_dreg(regs, srcreg) = (dst);
11593: }}}}}m68k_incpc(2);
11594: return 6;
11595: }
11596: unsigned long REGPARAM2 CPUFUNC(op_4490_0)(uae_u32 opcode) /* NEG */
11597: {
11598: uae_u32 srcreg = (opcode & 7);
11599: OpcodeFamily = 15; CurrentInstrCycles = 20;
11600: {{ uaecptr srca = m68k_areg(regs, srcreg);
11601: { uae_s32 src = get_long(srca);
11602: {{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src));
11603: { int flgs = ((uae_s32)(src)) < 0;
11604: int flgo = ((uae_s32)(0)) < 0;
11605: int flgn = ((uae_s32)(dst)) < 0;
11606: SET_ZFLG (((uae_s32)(dst)) == 0);
11607: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
11608: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0)));
11609: COPY_CARRY;
11610: SET_NFLG (flgn != 0);
11611: put_long(srca,dst);
11612: }}}}}}m68k_incpc(2);
11613: return 20;
11614: }
11615: unsigned long REGPARAM2 CPUFUNC(op_4498_0)(uae_u32 opcode) /* NEG */
11616: {
11617: uae_u32 srcreg = (opcode & 7);
11618: OpcodeFamily = 15; CurrentInstrCycles = 20;
11619: {{ uaecptr srca = m68k_areg(regs, srcreg);
11620: { uae_s32 src = get_long(srca);
11621: m68k_areg(regs, srcreg) += 4;
11622: {{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src));
11623: { int flgs = ((uae_s32)(src)) < 0;
11624: int flgo = ((uae_s32)(0)) < 0;
11625: int flgn = ((uae_s32)(dst)) < 0;
11626: SET_ZFLG (((uae_s32)(dst)) == 0);
11627: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
11628: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0)));
11629: COPY_CARRY;
11630: SET_NFLG (flgn != 0);
11631: put_long(srca,dst);
11632: }}}}}}m68k_incpc(2);
11633: return 20;
11634: }
11635: unsigned long REGPARAM2 CPUFUNC(op_44a0_0)(uae_u32 opcode) /* NEG */
11636: {
11637: uae_u32 srcreg = (opcode & 7);
11638: OpcodeFamily = 15; CurrentInstrCycles = 22;
11639: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
11640: { uae_s32 src = get_long(srca);
11641: m68k_areg (regs, srcreg) = srca;
11642: {{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src));
11643: { int flgs = ((uae_s32)(src)) < 0;
11644: int flgo = ((uae_s32)(0)) < 0;
11645: int flgn = ((uae_s32)(dst)) < 0;
11646: SET_ZFLG (((uae_s32)(dst)) == 0);
11647: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
11648: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0)));
11649: COPY_CARRY;
11650: SET_NFLG (flgn != 0);
11651: put_long(srca,dst);
11652: }}}}}}m68k_incpc(2);
11653: return 22;
11654: }
11655: unsigned long REGPARAM2 CPUFUNC(op_44a8_0)(uae_u32 opcode) /* NEG */
11656: {
11657: uae_u32 srcreg = (opcode & 7);
11658: OpcodeFamily = 15; CurrentInstrCycles = 24;
11659: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
11660: { uae_s32 src = get_long(srca);
11661: {{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src));
11662: { int flgs = ((uae_s32)(src)) < 0;
11663: int flgo = ((uae_s32)(0)) < 0;
11664: int flgn = ((uae_s32)(dst)) < 0;
11665: SET_ZFLG (((uae_s32)(dst)) == 0);
11666: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
11667: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0)));
11668: COPY_CARRY;
11669: SET_NFLG (flgn != 0);
11670: put_long(srca,dst);
11671: }}}}}}m68k_incpc(4);
11672: return 24;
11673: }
11674: unsigned long REGPARAM2 CPUFUNC(op_44b0_0)(uae_u32 opcode) /* NEG */
11675: {
11676: uae_u32 srcreg = (opcode & 7);
11677: OpcodeFamily = 15; CurrentInstrCycles = 26;
11678: {{m68k_incpc(2);
11679: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
11680: BusCyclePenalty += 2;
11681: { uae_s32 src = get_long(srca);
11682: {{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src));
11683: { int flgs = ((uae_s32)(src)) < 0;
11684: int flgo = ((uae_s32)(0)) < 0;
11685: int flgn = ((uae_s32)(dst)) < 0;
11686: SET_ZFLG (((uae_s32)(dst)) == 0);
11687: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
11688: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0)));
11689: COPY_CARRY;
11690: SET_NFLG (flgn != 0);
11691: put_long(srca,dst);
11692: }}}}}}}return 26;
11693: }
11694: unsigned long REGPARAM2 CPUFUNC(op_44b8_0)(uae_u32 opcode) /* NEG */
11695: {
11696: OpcodeFamily = 15; CurrentInstrCycles = 24;
11697: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
11698: { uae_s32 src = get_long(srca);
11699: {{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src));
11700: { int flgs = ((uae_s32)(src)) < 0;
11701: int flgo = ((uae_s32)(0)) < 0;
11702: int flgn = ((uae_s32)(dst)) < 0;
11703: SET_ZFLG (((uae_s32)(dst)) == 0);
11704: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
11705: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0)));
11706: COPY_CARRY;
11707: SET_NFLG (flgn != 0);
11708: put_long(srca,dst);
11709: }}}}}}m68k_incpc(4);
11710: return 24;
11711: }
11712: unsigned long REGPARAM2 CPUFUNC(op_44b9_0)(uae_u32 opcode) /* NEG */
11713: {
11714: OpcodeFamily = 15; CurrentInstrCycles = 28;
11715: {{ uaecptr srca = get_ilong(2);
11716: { uae_s32 src = get_long(srca);
11717: {{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src));
11718: { int flgs = ((uae_s32)(src)) < 0;
11719: int flgo = ((uae_s32)(0)) < 0;
11720: int flgn = ((uae_s32)(dst)) < 0;
11721: SET_ZFLG (((uae_s32)(dst)) == 0);
11722: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
11723: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0)));
11724: COPY_CARRY;
11725: SET_NFLG (flgn != 0);
11726: put_long(srca,dst);
11727: }}}}}}m68k_incpc(6);
11728: return 28;
11729: }
11730: unsigned long REGPARAM2 CPUFUNC(op_44c0_0)(uae_u32 opcode) /* MV2SR */
11731: {
11732: uae_u32 srcreg = (opcode & 7);
11733: OpcodeFamily = 33; CurrentInstrCycles = 12;
11734: {{ uae_s16 src = m68k_dreg(regs, srcreg);
11735: MakeSR();
11736: regs.sr &= 0xFF00;
11737: regs.sr |= src & 0xFF;
11738: MakeFromSR();
11739: }}m68k_incpc(2);
11740: return 12;
11741: }
11742: unsigned long REGPARAM2 CPUFUNC(op_44d0_0)(uae_u32 opcode) /* MV2SR */
11743: {
11744: uae_u32 srcreg = (opcode & 7);
11745: OpcodeFamily = 33; CurrentInstrCycles = 16;
11746: {{ uaecptr srca = m68k_areg(regs, srcreg);
11747: { uae_s16 src = get_word(srca);
11748: MakeSR();
11749: regs.sr &= 0xFF00;
11750: regs.sr |= src & 0xFF;
11751: MakeFromSR();
11752: }}}m68k_incpc(2);
11753: return 16;
11754: }
11755: unsigned long REGPARAM2 CPUFUNC(op_44d8_0)(uae_u32 opcode) /* MV2SR */
11756: {
11757: uae_u32 srcreg = (opcode & 7);
11758: OpcodeFamily = 33; CurrentInstrCycles = 16;
11759: {{ uaecptr srca = m68k_areg(regs, srcreg);
11760: { uae_s16 src = get_word(srca);
11761: m68k_areg(regs, srcreg) += 2;
11762: MakeSR();
11763: regs.sr &= 0xFF00;
11764: regs.sr |= src & 0xFF;
11765: MakeFromSR();
11766: }}}m68k_incpc(2);
11767: return 16;
11768: }
11769: unsigned long REGPARAM2 CPUFUNC(op_44e0_0)(uae_u32 opcode) /* MV2SR */
11770: {
11771: uae_u32 srcreg = (opcode & 7);
11772: OpcodeFamily = 33; CurrentInstrCycles = 18;
11773: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
11774: { uae_s16 src = get_word(srca);
11775: m68k_areg (regs, srcreg) = srca;
11776: MakeSR();
11777: regs.sr &= 0xFF00;
11778: regs.sr |= src & 0xFF;
11779: MakeFromSR();
11780: }}}m68k_incpc(2);
11781: return 18;
11782: }
11783: unsigned long REGPARAM2 CPUFUNC(op_44e8_0)(uae_u32 opcode) /* MV2SR */
11784: {
11785: uae_u32 srcreg = (opcode & 7);
11786: OpcodeFamily = 33; CurrentInstrCycles = 20;
11787: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
11788: { uae_s16 src = get_word(srca);
11789: MakeSR();
11790: regs.sr &= 0xFF00;
11791: regs.sr |= src & 0xFF;
11792: MakeFromSR();
11793: }}}m68k_incpc(4);
11794: return 20;
11795: }
11796: unsigned long REGPARAM2 CPUFUNC(op_44f0_0)(uae_u32 opcode) /* MV2SR */
11797: {
11798: uae_u32 srcreg = (opcode & 7);
11799: OpcodeFamily = 33; CurrentInstrCycles = 22;
11800: {{m68k_incpc(2);
11801: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
11802: BusCyclePenalty += 2;
11803: { uae_s16 src = get_word(srca);
11804: MakeSR();
11805: regs.sr &= 0xFF00;
11806: regs.sr |= src & 0xFF;
11807: MakeFromSR();
11808: }}}}return 22;
11809: }
11810: unsigned long REGPARAM2 CPUFUNC(op_44f8_0)(uae_u32 opcode) /* MV2SR */
11811: {
11812: OpcodeFamily = 33; CurrentInstrCycles = 20;
11813: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
11814: { uae_s16 src = get_word(srca);
11815: MakeSR();
11816: regs.sr &= 0xFF00;
11817: regs.sr |= src & 0xFF;
11818: MakeFromSR();
11819: }}}m68k_incpc(4);
11820: return 20;
11821: }
11822: unsigned long REGPARAM2 CPUFUNC(op_44f9_0)(uae_u32 opcode) /* MV2SR */
11823: {
11824: OpcodeFamily = 33; CurrentInstrCycles = 24;
11825: {{ uaecptr srca = get_ilong(2);
11826: { uae_s16 src = get_word(srca);
11827: MakeSR();
11828: regs.sr &= 0xFF00;
11829: regs.sr |= src & 0xFF;
11830: MakeFromSR();
11831: }}}m68k_incpc(6);
11832: return 24;
11833: }
11834: unsigned long REGPARAM2 CPUFUNC(op_44fa_0)(uae_u32 opcode) /* MV2SR */
11835: {
11836: OpcodeFamily = 33; CurrentInstrCycles = 20;
11837: {{ uaecptr srca = m68k_getpc () + 2;
11838: srca += (uae_s32)(uae_s16)get_iword(2);
11839: { uae_s16 src = get_word(srca);
11840: MakeSR();
11841: regs.sr &= 0xFF00;
11842: regs.sr |= src & 0xFF;
11843: MakeFromSR();
11844: }}}m68k_incpc(4);
11845: return 20;
11846: }
11847: unsigned long REGPARAM2 CPUFUNC(op_44fb_0)(uae_u32 opcode) /* MV2SR */
11848: {
11849: OpcodeFamily = 33; CurrentInstrCycles = 22;
11850: {{m68k_incpc(2);
11851: { uaecptr tmppc = m68k_getpc();
11852: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
11853: BusCyclePenalty += 2;
11854: { uae_s16 src = get_word(srca);
11855: MakeSR();
11856: regs.sr &= 0xFF00;
11857: regs.sr |= src & 0xFF;
11858: MakeFromSR();
11859: }}}}return 22;
11860: }
11861: unsigned long REGPARAM2 CPUFUNC(op_44fc_0)(uae_u32 opcode) /* MV2SR */
11862: {
11863: OpcodeFamily = 33; CurrentInstrCycles = 16;
11864: {{ uae_s16 src = get_iword(2);
11865: MakeSR();
11866: regs.sr &= 0xFF00;
11867: regs.sr |= src & 0xFF;
11868: MakeFromSR();
11869: }}m68k_incpc(4);
11870: return 16;
11871: }
11872: unsigned long REGPARAM2 CPUFUNC(op_4600_0)(uae_u32 opcode) /* NOT */
11873: {
11874: uae_u32 srcreg = (opcode & 7);
11875: OpcodeFamily = 19; CurrentInstrCycles = 4;
11876: {{ uae_s8 src = m68k_dreg(regs, srcreg);
11877: { uae_u32 dst = ~src;
11878: CLEAR_CZNV;
11879: SET_ZFLG (((uae_s8)(dst)) == 0);
11880: SET_NFLG (((uae_s8)(dst)) < 0);
11881: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((dst) & 0xff);
11882: }}}m68k_incpc(2);
11883: return 4;
11884: }
11885: unsigned long REGPARAM2 CPUFUNC(op_4610_0)(uae_u32 opcode) /* NOT */
11886: {
11887: uae_u32 srcreg = (opcode & 7);
11888: OpcodeFamily = 19; CurrentInstrCycles = 12;
11889: {{ uaecptr srca = m68k_areg(regs, srcreg);
11890: { uae_s8 src = get_byte(srca);
11891: { uae_u32 dst = ~src;
11892: CLEAR_CZNV;
11893: SET_ZFLG (((uae_s8)(dst)) == 0);
11894: SET_NFLG (((uae_s8)(dst)) < 0);
11895: put_byte(srca,dst);
11896: }}}}m68k_incpc(2);
11897: return 12;
11898: }
11899: unsigned long REGPARAM2 CPUFUNC(op_4618_0)(uae_u32 opcode) /* NOT */
11900: {
11901: uae_u32 srcreg = (opcode & 7);
11902: OpcodeFamily = 19; CurrentInstrCycles = 12;
11903: {{ uaecptr srca = m68k_areg(regs, srcreg);
11904: { uae_s8 src = get_byte(srca);
11905: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
11906: { uae_u32 dst = ~src;
11907: CLEAR_CZNV;
11908: SET_ZFLG (((uae_s8)(dst)) == 0);
11909: SET_NFLG (((uae_s8)(dst)) < 0);
11910: put_byte(srca,dst);
11911: }}}}m68k_incpc(2);
11912: return 12;
11913: }
11914: unsigned long REGPARAM2 CPUFUNC(op_4620_0)(uae_u32 opcode) /* NOT */
11915: {
11916: uae_u32 srcreg = (opcode & 7);
11917: OpcodeFamily = 19; CurrentInstrCycles = 14;
11918: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
11919: { uae_s8 src = get_byte(srca);
11920: m68k_areg (regs, srcreg) = srca;
11921: { uae_u32 dst = ~src;
11922: CLEAR_CZNV;
11923: SET_ZFLG (((uae_s8)(dst)) == 0);
11924: SET_NFLG (((uae_s8)(dst)) < 0);
11925: put_byte(srca,dst);
11926: }}}}m68k_incpc(2);
11927: return 14;
11928: }
11929: unsigned long REGPARAM2 CPUFUNC(op_4628_0)(uae_u32 opcode) /* NOT */
11930: {
11931: uae_u32 srcreg = (opcode & 7);
11932: OpcodeFamily = 19; CurrentInstrCycles = 16;
11933: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
11934: { uae_s8 src = get_byte(srca);
11935: { uae_u32 dst = ~src;
11936: CLEAR_CZNV;
11937: SET_ZFLG (((uae_s8)(dst)) == 0);
11938: SET_NFLG (((uae_s8)(dst)) < 0);
11939: put_byte(srca,dst);
11940: }}}}m68k_incpc(4);
11941: return 16;
11942: }
11943: unsigned long REGPARAM2 CPUFUNC(op_4630_0)(uae_u32 opcode) /* NOT */
11944: {
11945: uae_u32 srcreg = (opcode & 7);
11946: OpcodeFamily = 19; CurrentInstrCycles = 18;
11947: {{m68k_incpc(2);
11948: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
11949: BusCyclePenalty += 2;
11950: { uae_s8 src = get_byte(srca);
11951: { uae_u32 dst = ~src;
11952: CLEAR_CZNV;
11953: SET_ZFLG (((uae_s8)(dst)) == 0);
11954: SET_NFLG (((uae_s8)(dst)) < 0);
11955: put_byte(srca,dst);
11956: }}}}}return 18;
11957: }
11958: unsigned long REGPARAM2 CPUFUNC(op_4638_0)(uae_u32 opcode) /* NOT */
11959: {
11960: OpcodeFamily = 19; CurrentInstrCycles = 16;
11961: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
11962: { uae_s8 src = get_byte(srca);
11963: { uae_u32 dst = ~src;
11964: CLEAR_CZNV;
11965: SET_ZFLG (((uae_s8)(dst)) == 0);
11966: SET_NFLG (((uae_s8)(dst)) < 0);
11967: put_byte(srca,dst);
11968: }}}}m68k_incpc(4);
11969: return 16;
11970: }
11971: unsigned long REGPARAM2 CPUFUNC(op_4639_0)(uae_u32 opcode) /* NOT */
11972: {
11973: OpcodeFamily = 19; CurrentInstrCycles = 20;
11974: {{ uaecptr srca = get_ilong(2);
11975: { uae_s8 src = get_byte(srca);
11976: { uae_u32 dst = ~src;
11977: CLEAR_CZNV;
11978: SET_ZFLG (((uae_s8)(dst)) == 0);
11979: SET_NFLG (((uae_s8)(dst)) < 0);
11980: put_byte(srca,dst);
11981: }}}}m68k_incpc(6);
11982: return 20;
11983: }
11984: unsigned long REGPARAM2 CPUFUNC(op_4640_0)(uae_u32 opcode) /* NOT */
11985: {
11986: uae_u32 srcreg = (opcode & 7);
11987: OpcodeFamily = 19; CurrentInstrCycles = 4;
11988: {{ uae_s16 src = m68k_dreg(regs, srcreg);
11989: { uae_u32 dst = ~src;
11990: CLEAR_CZNV;
11991: SET_ZFLG (((uae_s16)(dst)) == 0);
11992: SET_NFLG (((uae_s16)(dst)) < 0);
11993: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((dst) & 0xffff);
11994: }}}m68k_incpc(2);
11995: return 4;
11996: }
11997: unsigned long REGPARAM2 CPUFUNC(op_4650_0)(uae_u32 opcode) /* NOT */
11998: {
11999: uae_u32 srcreg = (opcode & 7);
12000: OpcodeFamily = 19; CurrentInstrCycles = 12;
12001: {{ uaecptr srca = m68k_areg(regs, srcreg);
12002: { uae_s16 src = get_word(srca);
12003: { uae_u32 dst = ~src;
12004: CLEAR_CZNV;
12005: SET_ZFLG (((uae_s16)(dst)) == 0);
12006: SET_NFLG (((uae_s16)(dst)) < 0);
12007: put_word(srca,dst);
12008: }}}}m68k_incpc(2);
12009: return 12;
12010: }
12011: unsigned long REGPARAM2 CPUFUNC(op_4658_0)(uae_u32 opcode) /* NOT */
12012: {
12013: uae_u32 srcreg = (opcode & 7);
12014: OpcodeFamily = 19; CurrentInstrCycles = 12;
12015: {{ uaecptr srca = m68k_areg(regs, srcreg);
12016: { uae_s16 src = get_word(srca);
12017: m68k_areg(regs, srcreg) += 2;
12018: { uae_u32 dst = ~src;
12019: CLEAR_CZNV;
12020: SET_ZFLG (((uae_s16)(dst)) == 0);
12021: SET_NFLG (((uae_s16)(dst)) < 0);
12022: put_word(srca,dst);
12023: }}}}m68k_incpc(2);
12024: return 12;
12025: }
12026: unsigned long REGPARAM2 CPUFUNC(op_4660_0)(uae_u32 opcode) /* NOT */
12027: {
12028: uae_u32 srcreg = (opcode & 7);
12029: OpcodeFamily = 19; CurrentInstrCycles = 14;
12030: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
12031: { uae_s16 src = get_word(srca);
12032: m68k_areg (regs, srcreg) = srca;
12033: { uae_u32 dst = ~src;
12034: CLEAR_CZNV;
12035: SET_ZFLG (((uae_s16)(dst)) == 0);
12036: SET_NFLG (((uae_s16)(dst)) < 0);
12037: put_word(srca,dst);
12038: }}}}m68k_incpc(2);
12039: return 14;
12040: }
12041: unsigned long REGPARAM2 CPUFUNC(op_4668_0)(uae_u32 opcode) /* NOT */
12042: {
12043: uae_u32 srcreg = (opcode & 7);
12044: OpcodeFamily = 19; CurrentInstrCycles = 16;
12045: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
12046: { uae_s16 src = get_word(srca);
12047: { uae_u32 dst = ~src;
12048: CLEAR_CZNV;
12049: SET_ZFLG (((uae_s16)(dst)) == 0);
12050: SET_NFLG (((uae_s16)(dst)) < 0);
12051: put_word(srca,dst);
12052: }}}}m68k_incpc(4);
12053: return 16;
12054: }
12055: unsigned long REGPARAM2 CPUFUNC(op_4670_0)(uae_u32 opcode) /* NOT */
12056: {
12057: uae_u32 srcreg = (opcode & 7);
12058: OpcodeFamily = 19; CurrentInstrCycles = 18;
12059: {{m68k_incpc(2);
12060: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
12061: BusCyclePenalty += 2;
12062: { uae_s16 src = get_word(srca);
12063: { uae_u32 dst = ~src;
12064: CLEAR_CZNV;
12065: SET_ZFLG (((uae_s16)(dst)) == 0);
12066: SET_NFLG (((uae_s16)(dst)) < 0);
12067: put_word(srca,dst);
12068: }}}}}return 18;
12069: }
12070: unsigned long REGPARAM2 CPUFUNC(op_4678_0)(uae_u32 opcode) /* NOT */
12071: {
12072: OpcodeFamily = 19; CurrentInstrCycles = 16;
12073: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
12074: { uae_s16 src = get_word(srca);
12075: { uae_u32 dst = ~src;
12076: CLEAR_CZNV;
12077: SET_ZFLG (((uae_s16)(dst)) == 0);
12078: SET_NFLG (((uae_s16)(dst)) < 0);
12079: put_word(srca,dst);
12080: }}}}m68k_incpc(4);
12081: return 16;
12082: }
12083: unsigned long REGPARAM2 CPUFUNC(op_4679_0)(uae_u32 opcode) /* NOT */
12084: {
12085: OpcodeFamily = 19; CurrentInstrCycles = 20;
12086: {{ uaecptr srca = get_ilong(2);
12087: { uae_s16 src = get_word(srca);
12088: { uae_u32 dst = ~src;
12089: CLEAR_CZNV;
12090: SET_ZFLG (((uae_s16)(dst)) == 0);
12091: SET_NFLG (((uae_s16)(dst)) < 0);
12092: put_word(srca,dst);
12093: }}}}m68k_incpc(6);
12094: return 20;
12095: }
12096: unsigned long REGPARAM2 CPUFUNC(op_4680_0)(uae_u32 opcode) /* NOT */
12097: {
12098: uae_u32 srcreg = (opcode & 7);
12099: OpcodeFamily = 19; CurrentInstrCycles = 6;
12100: {{ uae_s32 src = m68k_dreg(regs, srcreg);
12101: { uae_u32 dst = ~src;
12102: CLEAR_CZNV;
12103: SET_ZFLG (((uae_s32)(dst)) == 0);
12104: SET_NFLG (((uae_s32)(dst)) < 0);
12105: m68k_dreg(regs, srcreg) = (dst);
12106: }}}m68k_incpc(2);
12107: return 6;
12108: }
12109: unsigned long REGPARAM2 CPUFUNC(op_4690_0)(uae_u32 opcode) /* NOT */
12110: {
12111: uae_u32 srcreg = (opcode & 7);
12112: OpcodeFamily = 19; CurrentInstrCycles = 20;
12113: {{ uaecptr srca = m68k_areg(regs, srcreg);
12114: { uae_s32 src = get_long(srca);
12115: { uae_u32 dst = ~src;
12116: CLEAR_CZNV;
12117: SET_ZFLG (((uae_s32)(dst)) == 0);
12118: SET_NFLG (((uae_s32)(dst)) < 0);
12119: put_long(srca,dst);
12120: }}}}m68k_incpc(2);
12121: return 20;
12122: }
12123: unsigned long REGPARAM2 CPUFUNC(op_4698_0)(uae_u32 opcode) /* NOT */
12124: {
12125: uae_u32 srcreg = (opcode & 7);
12126: OpcodeFamily = 19; CurrentInstrCycles = 20;
12127: {{ uaecptr srca = m68k_areg(regs, srcreg);
12128: { uae_s32 src = get_long(srca);
12129: m68k_areg(regs, srcreg) += 4;
12130: { uae_u32 dst = ~src;
12131: CLEAR_CZNV;
12132: SET_ZFLG (((uae_s32)(dst)) == 0);
12133: SET_NFLG (((uae_s32)(dst)) < 0);
12134: put_long(srca,dst);
12135: }}}}m68k_incpc(2);
12136: return 20;
12137: }
12138: unsigned long REGPARAM2 CPUFUNC(op_46a0_0)(uae_u32 opcode) /* NOT */
12139: {
12140: uae_u32 srcreg = (opcode & 7);
12141: OpcodeFamily = 19; CurrentInstrCycles = 22;
12142: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
12143: { uae_s32 src = get_long(srca);
12144: m68k_areg (regs, srcreg) = srca;
12145: { uae_u32 dst = ~src;
12146: CLEAR_CZNV;
12147: SET_ZFLG (((uae_s32)(dst)) == 0);
12148: SET_NFLG (((uae_s32)(dst)) < 0);
12149: put_long(srca,dst);
12150: }}}}m68k_incpc(2);
12151: return 22;
12152: }
12153: unsigned long REGPARAM2 CPUFUNC(op_46a8_0)(uae_u32 opcode) /* NOT */
12154: {
12155: uae_u32 srcreg = (opcode & 7);
12156: OpcodeFamily = 19; CurrentInstrCycles = 24;
12157: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
12158: { uae_s32 src = get_long(srca);
12159: { uae_u32 dst = ~src;
12160: CLEAR_CZNV;
12161: SET_ZFLG (((uae_s32)(dst)) == 0);
12162: SET_NFLG (((uae_s32)(dst)) < 0);
12163: put_long(srca,dst);
12164: }}}}m68k_incpc(4);
12165: return 24;
12166: }
12167: unsigned long REGPARAM2 CPUFUNC(op_46b0_0)(uae_u32 opcode) /* NOT */
12168: {
12169: uae_u32 srcreg = (opcode & 7);
12170: OpcodeFamily = 19; CurrentInstrCycles = 26;
12171: {{m68k_incpc(2);
12172: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
12173: BusCyclePenalty += 2;
12174: { uae_s32 src = get_long(srca);
12175: { uae_u32 dst = ~src;
12176: CLEAR_CZNV;
12177: SET_ZFLG (((uae_s32)(dst)) == 0);
12178: SET_NFLG (((uae_s32)(dst)) < 0);
12179: put_long(srca,dst);
12180: }}}}}return 26;
12181: }
12182: unsigned long REGPARAM2 CPUFUNC(op_46b8_0)(uae_u32 opcode) /* NOT */
12183: {
12184: OpcodeFamily = 19; CurrentInstrCycles = 24;
12185: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
12186: { uae_s32 src = get_long(srca);
12187: { uae_u32 dst = ~src;
12188: CLEAR_CZNV;
12189: SET_ZFLG (((uae_s32)(dst)) == 0);
12190: SET_NFLG (((uae_s32)(dst)) < 0);
12191: put_long(srca,dst);
12192: }}}}m68k_incpc(4);
12193: return 24;
12194: }
12195: unsigned long REGPARAM2 CPUFUNC(op_46b9_0)(uae_u32 opcode) /* NOT */
12196: {
12197: OpcodeFamily = 19; CurrentInstrCycles = 28;
12198: {{ uaecptr srca = get_ilong(2);
12199: { uae_s32 src = get_long(srca);
12200: { uae_u32 dst = ~src;
12201: CLEAR_CZNV;
12202: SET_ZFLG (((uae_s32)(dst)) == 0);
12203: SET_NFLG (((uae_s32)(dst)) < 0);
12204: put_long(srca,dst);
12205: }}}}m68k_incpc(6);
12206: return 28;
12207: }
12208: unsigned long REGPARAM2 CPUFUNC(op_46c0_0)(uae_u32 opcode) /* MV2SR */
12209: {
12210: uae_u32 srcreg = (opcode & 7);
12211: OpcodeFamily = 33; CurrentInstrCycles = 12;
12212: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel781; }
12213: {{ uae_s16 src = m68k_dreg(regs, srcreg);
12214: regs.sr = src;
12215: MakeFromSR();
12216: }}}m68k_incpc(2);
12217: endlabel781: ;
12218: return 12;
12219: }
12220: unsigned long REGPARAM2 CPUFUNC(op_46d0_0)(uae_u32 opcode) /* MV2SR */
12221: {
12222: uae_u32 srcreg = (opcode & 7);
12223: OpcodeFamily = 33; CurrentInstrCycles = 16;
12224: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel782; }
12225: {{ uaecptr srca = m68k_areg(regs, srcreg);
12226: { uae_s16 src = get_word(srca);
12227: regs.sr = src;
12228: MakeFromSR();
12229: }}}}m68k_incpc(2);
12230: endlabel782: ;
12231: return 16;
12232: }
12233: unsigned long REGPARAM2 CPUFUNC(op_46d8_0)(uae_u32 opcode) /* MV2SR */
12234: {
12235: uae_u32 srcreg = (opcode & 7);
12236: OpcodeFamily = 33; CurrentInstrCycles = 16;
12237: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel783; }
12238: {{ uaecptr srca = m68k_areg(regs, srcreg);
12239: { uae_s16 src = get_word(srca);
12240: m68k_areg(regs, srcreg) += 2;
12241: regs.sr = src;
12242: MakeFromSR();
12243: }}}}m68k_incpc(2);
12244: endlabel783: ;
12245: return 16;
12246: }
12247: unsigned long REGPARAM2 CPUFUNC(op_46e0_0)(uae_u32 opcode) /* MV2SR */
12248: {
12249: uae_u32 srcreg = (opcode & 7);
12250: OpcodeFamily = 33; CurrentInstrCycles = 18;
12251: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel784; }
12252: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
12253: { uae_s16 src = get_word(srca);
12254: m68k_areg (regs, srcreg) = srca;
12255: regs.sr = src;
12256: MakeFromSR();
12257: }}}}m68k_incpc(2);
12258: endlabel784: ;
12259: return 18;
12260: }
12261: unsigned long REGPARAM2 CPUFUNC(op_46e8_0)(uae_u32 opcode) /* MV2SR */
12262: {
12263: uae_u32 srcreg = (opcode & 7);
12264: OpcodeFamily = 33; CurrentInstrCycles = 20;
12265: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel785; }
12266: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
12267: { uae_s16 src = get_word(srca);
12268: regs.sr = src;
12269: MakeFromSR();
12270: }}}}m68k_incpc(4);
12271: endlabel785: ;
12272: return 20;
12273: }
12274: unsigned long REGPARAM2 CPUFUNC(op_46f0_0)(uae_u32 opcode) /* MV2SR */
12275: {
12276: uae_u32 srcreg = (opcode & 7);
12277: OpcodeFamily = 33; CurrentInstrCycles = 22;
12278: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel786; }
12279: {{m68k_incpc(2);
12280: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
12281: BusCyclePenalty += 2;
12282: { uae_s16 src = get_word(srca);
12283: regs.sr = src;
12284: MakeFromSR();
12285: }}}}}endlabel786: ;
12286: return 22;
12287: }
12288: unsigned long REGPARAM2 CPUFUNC(op_46f8_0)(uae_u32 opcode) /* MV2SR */
12289: {
12290: OpcodeFamily = 33; CurrentInstrCycles = 20;
12291: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel787; }
12292: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
12293: { uae_s16 src = get_word(srca);
12294: regs.sr = src;
12295: MakeFromSR();
12296: }}}}m68k_incpc(4);
12297: endlabel787: ;
12298: return 20;
12299: }
12300: unsigned long REGPARAM2 CPUFUNC(op_46f9_0)(uae_u32 opcode) /* MV2SR */
12301: {
12302: OpcodeFamily = 33; CurrentInstrCycles = 24;
12303: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel788; }
12304: {{ uaecptr srca = get_ilong(2);
12305: { uae_s16 src = get_word(srca);
12306: regs.sr = src;
12307: MakeFromSR();
12308: }}}}m68k_incpc(6);
12309: endlabel788: ;
12310: return 24;
12311: }
12312: unsigned long REGPARAM2 CPUFUNC(op_46fa_0)(uae_u32 opcode) /* MV2SR */
12313: {
12314: OpcodeFamily = 33; CurrentInstrCycles = 20;
12315: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel789; }
12316: {{ uaecptr srca = m68k_getpc () + 2;
12317: srca += (uae_s32)(uae_s16)get_iword(2);
12318: { uae_s16 src = get_word(srca);
12319: regs.sr = src;
12320: MakeFromSR();
12321: }}}}m68k_incpc(4);
12322: endlabel789: ;
12323: return 20;
12324: }
12325: unsigned long REGPARAM2 CPUFUNC(op_46fb_0)(uae_u32 opcode) /* MV2SR */
12326: {
12327: OpcodeFamily = 33; CurrentInstrCycles = 22;
12328: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel790; }
12329: {{m68k_incpc(2);
12330: { uaecptr tmppc = m68k_getpc();
12331: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
12332: BusCyclePenalty += 2;
12333: { uae_s16 src = get_word(srca);
12334: regs.sr = src;
12335: MakeFromSR();
12336: }}}}}endlabel790: ;
12337: return 22;
12338: }
12339: unsigned long REGPARAM2 CPUFUNC(op_46fc_0)(uae_u32 opcode) /* MV2SR */
12340: {
12341: OpcodeFamily = 33; CurrentInstrCycles = 16;
12342: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel791; }
12343: {{ uae_s16 src = get_iword(2);
12344: regs.sr = src;
12345: MakeFromSR();
12346: }}}m68k_incpc(4);
12347: endlabel791: ;
12348: return 16;
12349: }
12350: unsigned long REGPARAM2 CPUFUNC(op_4800_0)(uae_u32 opcode) /* NBCD */
12351: {
12352: uae_u32 srcreg = (opcode & 7);
12353: OpcodeFamily = 17; CurrentInstrCycles = 6;
12354: {{ uae_s8 src = m68k_dreg(regs, srcreg);
12355: { uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0);
12356: uae_u16 newv_hi = - (src & 0xF0);
12357: uae_u16 newv;
12358: int cflg;
12359: if (newv_lo > 9) { newv_lo -= 6; }
12360: newv = newv_hi + newv_lo; cflg = (newv & 0x1F0) > 0x90;
12361: if (cflg) newv -= 0x60;
12362: SET_CFLG (cflg);
12363: COPY_CARRY;
12364: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
12365: SET_NFLG (((uae_s8)(newv)) < 0);
12366: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((newv) & 0xff);
12367: }}}m68k_incpc(2);
12368: return 6;
12369: }
12370: unsigned long REGPARAM2 CPUFUNC(op_4808_0)(uae_u32 opcode) /* LINK */
12371: {
12372: uae_u32 srcreg = (opcode & 7);
12373: OpcodeFamily = 47; CurrentInstrCycles = 22;
12374: {{ uaecptr olda = m68k_areg(regs, 7) - 4;
12375: m68k_areg (regs, 7) = olda;
12376: { uae_s32 src = m68k_areg(regs, srcreg);
12377: put_long(olda,src);
12378: m68k_areg(regs, srcreg) = (m68k_areg(regs, 7));
12379: { uae_s32 offs = get_ilong(2);
12380: m68k_areg(regs, 7) += offs;
12381: }}}}m68k_incpc(6);
12382: return 22;
12383: }
12384: unsigned long REGPARAM2 CPUFUNC(op_4810_0)(uae_u32 opcode) /* NBCD */
12385: {
12386: uae_u32 srcreg = (opcode & 7);
12387: OpcodeFamily = 17; CurrentInstrCycles = 12;
12388: {{ uaecptr srca = m68k_areg(regs, srcreg);
12389: { uae_s8 src = get_byte(srca);
12390: { uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0);
12391: uae_u16 newv_hi = - (src & 0xF0);
12392: uae_u16 newv;
12393: int cflg;
12394: if (newv_lo > 9) { newv_lo -= 6; }
12395: newv = newv_hi + newv_lo; cflg = (newv & 0x1F0) > 0x90;
12396: if (cflg) newv -= 0x60;
12397: SET_CFLG (cflg);
12398: COPY_CARRY;
12399: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
12400: SET_NFLG (((uae_s8)(newv)) < 0);
12401: put_byte(srca,newv);
12402: }}}}m68k_incpc(2);
12403: return 12;
12404: }
12405: unsigned long REGPARAM2 CPUFUNC(op_4818_0)(uae_u32 opcode) /* NBCD */
12406: {
12407: uae_u32 srcreg = (opcode & 7);
12408: OpcodeFamily = 17; CurrentInstrCycles = 12;
12409: {{ uaecptr srca = m68k_areg(regs, srcreg);
12410: { uae_s8 src = get_byte(srca);
12411: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
12412: { uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0);
12413: uae_u16 newv_hi = - (src & 0xF0);
12414: uae_u16 newv;
12415: int cflg;
12416: if (newv_lo > 9) { newv_lo -= 6; }
12417: newv = newv_hi + newv_lo; cflg = (newv & 0x1F0) > 0x90;
12418: if (cflg) newv -= 0x60;
12419: SET_CFLG (cflg);
12420: COPY_CARRY;
12421: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
12422: SET_NFLG (((uae_s8)(newv)) < 0);
12423: put_byte(srca,newv);
12424: }}}}m68k_incpc(2);
12425: return 12;
12426: }
12427: unsigned long REGPARAM2 CPUFUNC(op_4820_0)(uae_u32 opcode) /* NBCD */
12428: {
12429: uae_u32 srcreg = (opcode & 7);
12430: OpcodeFamily = 17; CurrentInstrCycles = 14;
12431: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
12432: { uae_s8 src = get_byte(srca);
12433: m68k_areg (regs, srcreg) = srca;
12434: { uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0);
12435: uae_u16 newv_hi = - (src & 0xF0);
12436: uae_u16 newv;
12437: int cflg;
12438: if (newv_lo > 9) { newv_lo -= 6; }
12439: newv = newv_hi + newv_lo; cflg = (newv & 0x1F0) > 0x90;
12440: if (cflg) newv -= 0x60;
12441: SET_CFLG (cflg);
12442: COPY_CARRY;
12443: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
12444: SET_NFLG (((uae_s8)(newv)) < 0);
12445: put_byte(srca,newv);
12446: }}}}m68k_incpc(2);
12447: return 14;
12448: }
12449: unsigned long REGPARAM2 CPUFUNC(op_4828_0)(uae_u32 opcode) /* NBCD */
12450: {
12451: uae_u32 srcreg = (opcode & 7);
12452: OpcodeFamily = 17; CurrentInstrCycles = 16;
12453: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
12454: { uae_s8 src = get_byte(srca);
12455: { uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0);
12456: uae_u16 newv_hi = - (src & 0xF0);
12457: uae_u16 newv;
12458: int cflg;
12459: if (newv_lo > 9) { newv_lo -= 6; }
12460: newv = newv_hi + newv_lo; cflg = (newv & 0x1F0) > 0x90;
12461: if (cflg) newv -= 0x60;
12462: SET_CFLG (cflg);
12463: COPY_CARRY;
12464: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
12465: SET_NFLG (((uae_s8)(newv)) < 0);
12466: put_byte(srca,newv);
12467: }}}}m68k_incpc(4);
12468: return 16;
12469: }
12470: unsigned long REGPARAM2 CPUFUNC(op_4830_0)(uae_u32 opcode) /* NBCD */
12471: {
12472: uae_u32 srcreg = (opcode & 7);
12473: OpcodeFamily = 17; CurrentInstrCycles = 18;
12474: {{m68k_incpc(2);
12475: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
12476: BusCyclePenalty += 2;
12477: { uae_s8 src = get_byte(srca);
12478: { uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0);
12479: uae_u16 newv_hi = - (src & 0xF0);
12480: uae_u16 newv;
12481: int cflg;
12482: if (newv_lo > 9) { newv_lo -= 6; }
12483: newv = newv_hi + newv_lo; cflg = (newv & 0x1F0) > 0x90;
12484: if (cflg) newv -= 0x60;
12485: SET_CFLG (cflg);
12486: COPY_CARRY;
12487: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
12488: SET_NFLG (((uae_s8)(newv)) < 0);
12489: put_byte(srca,newv);
12490: }}}}}return 18;
12491: }
12492: unsigned long REGPARAM2 CPUFUNC(op_4838_0)(uae_u32 opcode) /* NBCD */
12493: {
12494: OpcodeFamily = 17; CurrentInstrCycles = 16;
12495: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
12496: { uae_s8 src = get_byte(srca);
12497: { uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0);
12498: uae_u16 newv_hi = - (src & 0xF0);
12499: uae_u16 newv;
12500: int cflg;
12501: if (newv_lo > 9) { newv_lo -= 6; }
12502: newv = newv_hi + newv_lo; cflg = (newv & 0x1F0) > 0x90;
12503: if (cflg) newv -= 0x60;
12504: SET_CFLG (cflg);
12505: COPY_CARRY;
12506: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
12507: SET_NFLG (((uae_s8)(newv)) < 0);
12508: put_byte(srca,newv);
12509: }}}}m68k_incpc(4);
12510: return 16;
12511: }
12512: unsigned long REGPARAM2 CPUFUNC(op_4839_0)(uae_u32 opcode) /* NBCD */
12513: {
12514: OpcodeFamily = 17; CurrentInstrCycles = 20;
12515: {{ uaecptr srca = get_ilong(2);
12516: { uae_s8 src = get_byte(srca);
12517: { uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0);
12518: uae_u16 newv_hi = - (src & 0xF0);
12519: uae_u16 newv;
12520: int cflg;
12521: if (newv_lo > 9) { newv_lo -= 6; }
12522: newv = newv_hi + newv_lo; cflg = (newv & 0x1F0) > 0x90;
12523: if (cflg) newv -= 0x60;
12524: SET_CFLG (cflg);
12525: COPY_CARRY;
12526: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
12527: SET_NFLG (((uae_s8)(newv)) < 0);
12528: put_byte(srca,newv);
12529: }}}}m68k_incpc(6);
12530: return 20;
12531: }
12532: unsigned long REGPARAM2 CPUFUNC(op_4840_0)(uae_u32 opcode) /* SWAP */
12533: {
12534: uae_u32 srcreg = (opcode & 7);
12535: OpcodeFamily = 34; CurrentInstrCycles = 4;
12536: {{ uae_s32 src = m68k_dreg(regs, srcreg);
12537: { uae_u32 dst = ((src >> 16)&0xFFFF) | ((src&0xFFFF)<<16);
12538: CLEAR_CZNV;
12539: SET_ZFLG (((uae_s32)(dst)) == 0);
12540: SET_NFLG (((uae_s32)(dst)) < 0);
12541: m68k_dreg(regs, srcreg) = (dst);
12542: }}}m68k_incpc(2);
12543: return 4;
12544: }
12545: unsigned long REGPARAM2 CPUFUNC(op_4848_0)(uae_u32 opcode) /* BKPT */
12546: {
12547: uae_u32 srcreg = (opcode & 7);
12548: OpcodeFamily = 99; CurrentInstrCycles = 4;
12549: {m68k_incpc(2);
12550: op_illg(opcode);
12551: }return 4;
12552: }
12553: unsigned long REGPARAM2 CPUFUNC(op_4850_0)(uae_u32 opcode) /* PEA */
12554: {
12555: uae_u32 srcreg = (opcode & 7);
12556: OpcodeFamily = 57; CurrentInstrCycles = 12;
12557: {{ uaecptr srca = m68k_areg(regs, srcreg);
12558: { uaecptr dsta = m68k_areg(regs, 7) - 4;
12559: m68k_areg (regs, 7) = dsta;
12560: put_long(dsta,srca);
12561: }}}m68k_incpc(2);
12562: return 12;
12563: }
12564: unsigned long REGPARAM2 CPUFUNC(op_4868_0)(uae_u32 opcode) /* PEA */
12565: {
12566: uae_u32 srcreg = (opcode & 7);
12567: OpcodeFamily = 57; CurrentInstrCycles = 16;
12568: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
12569: { uaecptr dsta = m68k_areg(regs, 7) - 4;
12570: m68k_areg (regs, 7) = dsta;
12571: put_long(dsta,srca);
12572: }}}m68k_incpc(4);
12573: return 16;
12574: }
12575: unsigned long REGPARAM2 CPUFUNC(op_4870_0)(uae_u32 opcode) /* PEA */
12576: {
12577: uae_u32 srcreg = (opcode & 7);
12578: OpcodeFamily = 57; CurrentInstrCycles = 22;
12579: {{m68k_incpc(2);
12580: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
12581: BusCyclePenalty += 2;
12582: { uaecptr dsta = m68k_areg(regs, 7) - 4;
12583: m68k_areg (regs, 7) = dsta;
12584: put_long(dsta,srca);
12585: }}}}return 22;
12586: }
12587: unsigned long REGPARAM2 CPUFUNC(op_4878_0)(uae_u32 opcode) /* PEA */
12588: {
12589: OpcodeFamily = 57; CurrentInstrCycles = 16;
12590: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
12591: { uaecptr dsta = m68k_areg(regs, 7) - 4;
12592: m68k_areg (regs, 7) = dsta;
12593: put_long(dsta,srca);
12594: }}}m68k_incpc(4);
12595: return 16;
12596: }
12597: unsigned long REGPARAM2 CPUFUNC(op_4879_0)(uae_u32 opcode) /* PEA */
12598: {
12599: OpcodeFamily = 57; CurrentInstrCycles = 20;
12600: {{ uaecptr srca = get_ilong(2);
12601: { uaecptr dsta = m68k_areg(regs, 7) - 4;
12602: m68k_areg (regs, 7) = dsta;
12603: put_long(dsta,srca);
12604: }}}m68k_incpc(6);
12605: return 20;
12606: }
12607: unsigned long REGPARAM2 CPUFUNC(op_487a_0)(uae_u32 opcode) /* PEA */
12608: {
12609: OpcodeFamily = 57; CurrentInstrCycles = 16;
12610: {{ uaecptr srca = m68k_getpc () + 2;
12611: srca += (uae_s32)(uae_s16)get_iword(2);
12612: { uaecptr dsta = m68k_areg(regs, 7) - 4;
12613: m68k_areg (regs, 7) = dsta;
12614: put_long(dsta,srca);
12615: }}}m68k_incpc(4);
12616: return 16;
12617: }
12618: unsigned long REGPARAM2 CPUFUNC(op_487b_0)(uae_u32 opcode) /* PEA */
12619: {
12620: OpcodeFamily = 57; CurrentInstrCycles = 22;
12621: {{m68k_incpc(2);
12622: { uaecptr tmppc = m68k_getpc();
12623: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
12624: BusCyclePenalty += 2;
12625: { uaecptr dsta = m68k_areg(regs, 7) - 4;
12626: m68k_areg (regs, 7) = dsta;
12627: put_long(dsta,srca);
12628: }}}}return 22;
12629: }
12630: unsigned long REGPARAM2 CPUFUNC(op_4880_0)(uae_u32 opcode) /* EXT */
12631: {
12632: uae_u32 srcreg = (opcode & 7);
12633: OpcodeFamily = 36; CurrentInstrCycles = 4;
12634: {{ uae_s32 src = m68k_dreg(regs, srcreg);
12635: { uae_u16 dst = (uae_s16)(uae_s8)src;
12636: CLEAR_CZNV;
12637: SET_ZFLG (((uae_s16)(dst)) == 0);
12638: SET_NFLG (((uae_s16)(dst)) < 0);
12639: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((dst) & 0xffff);
12640: }}}m68k_incpc(2);
12641: return 4;
12642: }
12643: unsigned long REGPARAM2 CPUFUNC(op_4890_0)(uae_u32 opcode) /* MVMLE */
12644: {
12645: uae_u32 dstreg = opcode & 7;
12646: unsigned int retcycles = 0;
12647: OpcodeFamily = 38; CurrentInstrCycles = 8;
12648: { uae_u16 mask = get_iword(2);
12649: retcycles = 0;
12650: { uaecptr srca = m68k_areg(regs, dstreg);
12651: { uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
12652: while (dmask) { put_word(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; retcycles+=4; }
12653: while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; retcycles+=4; }
12654: }}}m68k_incpc(4);
12655: return (8+retcycles);
12656: }
12657: unsigned long REGPARAM2 CPUFUNC(op_48a0_0)(uae_u32 opcode) /* MVMLE */
12658: {
12659: uae_u32 dstreg = opcode & 7;
12660: unsigned int retcycles = 0;
12661: OpcodeFamily = 38; CurrentInstrCycles = 8;
12662: { uae_u16 mask = get_iword(2);
12663: retcycles = 0;
12664: { uaecptr srca = m68k_areg(regs, dstreg) - 0;
12665: { uae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff;
12666: while (amask) { srca -= 2; put_word(srca, m68k_areg(regs, movem_index2[amask])); amask = movem_next[amask]; retcycles+=4; }
12667: while (dmask) { srca -= 2; put_word(srca, m68k_dreg(regs, movem_index2[dmask])); dmask = movem_next[dmask]; retcycles+=4; }
12668: m68k_areg(regs, dstreg) = srca;
12669: }}}m68k_incpc(4);
12670: return (8+retcycles);
12671: }
12672: unsigned long REGPARAM2 CPUFUNC(op_48a8_0)(uae_u32 opcode) /* MVMLE */
12673: {
12674: uae_u32 dstreg = opcode & 7;
12675: unsigned int retcycles = 0;
12676: OpcodeFamily = 38; CurrentInstrCycles = 12;
12677: { uae_u16 mask = get_iword(2);
12678: retcycles = 0;
12679: { uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
12680: { uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
12681: while (dmask) { put_word(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; retcycles+=4; }
12682: while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; retcycles+=4; }
12683: }}}m68k_incpc(6);
12684: return (12+retcycles);
12685: }
12686: unsigned long REGPARAM2 CPUFUNC(op_48b0_0)(uae_u32 opcode) /* MVMLE */
12687: {
12688: uae_u32 dstreg = opcode & 7;
12689: unsigned int retcycles = 0;
12690: OpcodeFamily = 38; CurrentInstrCycles = 14;
12691: { uae_u16 mask = get_iword(2);
12692: retcycles = 0;
12693: {m68k_incpc(4);
12694: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
12695: BusCyclePenalty += 2;
12696: { uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
12697: while (dmask) { put_word(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; retcycles+=4; }
12698: while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; retcycles+=4; }
12699: }}}} return (14+retcycles);
12700: }
12701: unsigned long REGPARAM2 CPUFUNC(op_48b8_0)(uae_u32 opcode) /* MVMLE */
12702: {
12703: unsigned int retcycles = 0;
12704: OpcodeFamily = 38; CurrentInstrCycles = 12;
12705: { uae_u16 mask = get_iword(2);
12706: retcycles = 0;
12707: { uaecptr srca = (uae_s32)(uae_s16)get_iword(4);
12708: { uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
12709: while (dmask) { put_word(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; retcycles+=4; }
12710: while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; retcycles+=4; }
12711: }}}m68k_incpc(6);
12712: return (12+retcycles);
12713: }
12714: unsigned long REGPARAM2 CPUFUNC(op_48b9_0)(uae_u32 opcode) /* MVMLE */
12715: {
12716: unsigned int retcycles = 0;
12717: OpcodeFamily = 38; CurrentInstrCycles = 16;
12718: { uae_u16 mask = get_iword(2);
12719: retcycles = 0;
12720: { uaecptr srca = get_ilong(4);
12721: { uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
12722: while (dmask) { put_word(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; retcycles+=4; }
12723: while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; retcycles+=4; }
12724: }}}m68k_incpc(8);
12725: return (16+retcycles);
12726: }
12727: unsigned long REGPARAM2 CPUFUNC(op_48c0_0)(uae_u32 opcode) /* EXT */
12728: {
12729: uae_u32 srcreg = (opcode & 7);
12730: OpcodeFamily = 36; CurrentInstrCycles = 4;
12731: {{ uae_s32 src = m68k_dreg(regs, srcreg);
12732: { uae_u32 dst = (uae_s32)(uae_s16)src;
12733: CLEAR_CZNV;
12734: SET_ZFLG (((uae_s32)(dst)) == 0);
12735: SET_NFLG (((uae_s32)(dst)) < 0);
12736: m68k_dreg(regs, srcreg) = (dst);
12737: }}}m68k_incpc(2);
12738: return 4;
12739: }
12740: unsigned long REGPARAM2 CPUFUNC(op_48d0_0)(uae_u32 opcode) /* MVMLE */
12741: {
12742: uae_u32 dstreg = opcode & 7;
12743: unsigned int retcycles = 0;
12744: OpcodeFamily = 38; CurrentInstrCycles = 8;
12745: { uae_u16 mask = get_iword(2);
12746: retcycles = 0;
12747: { uaecptr srca = m68k_areg(regs, dstreg);
12748: { uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
12749: while (dmask) { put_long(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; retcycles+=8; }
12750: while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; retcycles+=8; }
12751: }}}m68k_incpc(4);
12752: return (8+retcycles);
12753: }
12754: unsigned long REGPARAM2 CPUFUNC(op_48e0_0)(uae_u32 opcode) /* MVMLE */
12755: {
12756: uae_u32 dstreg = opcode & 7;
12757: unsigned int retcycles = 0;
12758: OpcodeFamily = 38; CurrentInstrCycles = 8;
12759: { uae_u16 mask = get_iword(2);
12760: retcycles = 0;
12761: { uaecptr srca = m68k_areg(regs, dstreg) - 0;
12762: { uae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff;
12763: while (amask) { srca -= 4; put_long(srca, m68k_areg(regs, movem_index2[amask])); amask = movem_next[amask]; retcycles+=8; }
12764: while (dmask) { srca -= 4; put_long(srca, m68k_dreg(regs, movem_index2[dmask])); dmask = movem_next[dmask]; retcycles+=8; }
12765: m68k_areg(regs, dstreg) = srca;
12766: }}}m68k_incpc(4);
12767: return (8+retcycles);
12768: }
12769: unsigned long REGPARAM2 CPUFUNC(op_48e8_0)(uae_u32 opcode) /* MVMLE */
12770: {
12771: uae_u32 dstreg = opcode & 7;
12772: unsigned int retcycles = 0;
12773: OpcodeFamily = 38; CurrentInstrCycles = 12;
12774: { uae_u16 mask = get_iword(2);
12775: retcycles = 0;
12776: { uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
12777: { uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
12778: while (dmask) { put_long(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; retcycles+=8; }
12779: while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; retcycles+=8; }
12780: }}}m68k_incpc(6);
12781: return (12+retcycles);
12782: }
12783: unsigned long REGPARAM2 CPUFUNC(op_48f0_0)(uae_u32 opcode) /* MVMLE */
12784: {
12785: uae_u32 dstreg = opcode & 7;
12786: unsigned int retcycles = 0;
12787: OpcodeFamily = 38; CurrentInstrCycles = 14;
12788: { uae_u16 mask = get_iword(2);
12789: retcycles = 0;
12790: {m68k_incpc(4);
12791: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
12792: BusCyclePenalty += 2;
12793: { uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
12794: while (dmask) { put_long(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; retcycles+=8; }
12795: while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; retcycles+=8; }
12796: }}}} return (14+retcycles);
12797: }
12798: unsigned long REGPARAM2 CPUFUNC(op_48f8_0)(uae_u32 opcode) /* MVMLE */
12799: {
12800: unsigned int retcycles = 0;
12801: OpcodeFamily = 38; CurrentInstrCycles = 12;
12802: { uae_u16 mask = get_iword(2);
12803: retcycles = 0;
12804: { uaecptr srca = (uae_s32)(uae_s16)get_iword(4);
12805: { uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
12806: while (dmask) { put_long(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; retcycles+=8; }
12807: while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; retcycles+=8; }
12808: }}}m68k_incpc(6);
12809: return (12+retcycles);
12810: }
12811: unsigned long REGPARAM2 CPUFUNC(op_48f9_0)(uae_u32 opcode) /* MVMLE */
12812: {
12813: unsigned int retcycles = 0;
12814: OpcodeFamily = 38; CurrentInstrCycles = 16;
12815: { uae_u16 mask = get_iword(2);
12816: retcycles = 0;
12817: { uaecptr srca = get_ilong(4);
12818: { uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
12819: while (dmask) { put_long(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; retcycles+=8; }
12820: while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; retcycles+=8; }
12821: }}}m68k_incpc(8);
12822: return (16+retcycles);
12823: }
12824: unsigned long REGPARAM2 CPUFUNC(op_49c0_0)(uae_u32 opcode) /* EXT */
12825: {
12826: uae_u32 srcreg = (opcode & 7);
12827: OpcodeFamily = 36; CurrentInstrCycles = 4;
12828: {{ uae_s32 src = m68k_dreg(regs, srcreg);
12829: { uae_u32 dst = (uae_s32)(uae_s8)src;
12830: CLEAR_CZNV;
12831: SET_ZFLG (((uae_s32)(dst)) == 0);
12832: SET_NFLG (((uae_s32)(dst)) < 0);
12833: m68k_dreg(regs, srcreg) = (dst);
12834: }}}m68k_incpc(2);
12835: return 4;
12836: }
12837: unsigned long REGPARAM2 CPUFUNC(op_4a00_0)(uae_u32 opcode) /* TST */
12838: {
12839: uae_u32 srcreg = (opcode & 7);
12840: OpcodeFamily = 20; CurrentInstrCycles = 4;
12841: {{ uae_s8 src = m68k_dreg(regs, srcreg);
12842: CLEAR_CZNV;
12843: SET_ZFLG (((uae_s8)(src)) == 0);
12844: SET_NFLG (((uae_s8)(src)) < 0);
12845: }}m68k_incpc(2);
12846: return 4;
12847: }
12848: unsigned long REGPARAM2 CPUFUNC(op_4a10_0)(uae_u32 opcode) /* TST */
12849: {
12850: uae_u32 srcreg = (opcode & 7);
12851: OpcodeFamily = 20; CurrentInstrCycles = 8;
12852: {{ uaecptr srca = m68k_areg(regs, srcreg);
12853: { uae_s8 src = get_byte(srca);
12854: CLEAR_CZNV;
12855: SET_ZFLG (((uae_s8)(src)) == 0);
12856: SET_NFLG (((uae_s8)(src)) < 0);
12857: }}}m68k_incpc(2);
12858: return 8;
12859: }
12860: unsigned long REGPARAM2 CPUFUNC(op_4a18_0)(uae_u32 opcode) /* TST */
12861: {
12862: uae_u32 srcreg = (opcode & 7);
12863: OpcodeFamily = 20; CurrentInstrCycles = 8;
12864: {{ uaecptr srca = m68k_areg(regs, srcreg);
12865: { uae_s8 src = get_byte(srca);
12866: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
12867: CLEAR_CZNV;
12868: SET_ZFLG (((uae_s8)(src)) == 0);
12869: SET_NFLG (((uae_s8)(src)) < 0);
12870: }}}m68k_incpc(2);
12871: return 8;
12872: }
12873: unsigned long REGPARAM2 CPUFUNC(op_4a20_0)(uae_u32 opcode) /* TST */
12874: {
12875: uae_u32 srcreg = (opcode & 7);
12876: OpcodeFamily = 20; CurrentInstrCycles = 10;
12877: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
12878: { uae_s8 src = get_byte(srca);
12879: m68k_areg (regs, srcreg) = srca;
12880: CLEAR_CZNV;
12881: SET_ZFLG (((uae_s8)(src)) == 0);
12882: SET_NFLG (((uae_s8)(src)) < 0);
12883: }}}m68k_incpc(2);
12884: return 10;
12885: }
12886: unsigned long REGPARAM2 CPUFUNC(op_4a28_0)(uae_u32 opcode) /* TST */
12887: {
12888: uae_u32 srcreg = (opcode & 7);
12889: OpcodeFamily = 20; CurrentInstrCycles = 12;
12890: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
12891: { uae_s8 src = get_byte(srca);
12892: CLEAR_CZNV;
12893: SET_ZFLG (((uae_s8)(src)) == 0);
12894: SET_NFLG (((uae_s8)(src)) < 0);
12895: }}}m68k_incpc(4);
12896: return 12;
12897: }
12898: unsigned long REGPARAM2 CPUFUNC(op_4a30_0)(uae_u32 opcode) /* TST */
12899: {
12900: uae_u32 srcreg = (opcode & 7);
12901: OpcodeFamily = 20; CurrentInstrCycles = 14;
12902: {{m68k_incpc(2);
12903: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
12904: BusCyclePenalty += 2;
12905: { uae_s8 src = get_byte(srca);
12906: CLEAR_CZNV;
12907: SET_ZFLG (((uae_s8)(src)) == 0);
12908: SET_NFLG (((uae_s8)(src)) < 0);
12909: }}}}return 14;
12910: }
12911: unsigned long REGPARAM2 CPUFUNC(op_4a38_0)(uae_u32 opcode) /* TST */
12912: {
12913: OpcodeFamily = 20; CurrentInstrCycles = 12;
12914: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
12915: { uae_s8 src = get_byte(srca);
12916: CLEAR_CZNV;
12917: SET_ZFLG (((uae_s8)(src)) == 0);
12918: SET_NFLG (((uae_s8)(src)) < 0);
12919: }}}m68k_incpc(4);
12920: return 12;
12921: }
12922: unsigned long REGPARAM2 CPUFUNC(op_4a39_0)(uae_u32 opcode) /* TST */
12923: {
12924: OpcodeFamily = 20; CurrentInstrCycles = 16;
12925: {{ uaecptr srca = get_ilong(2);
12926: { uae_s8 src = get_byte(srca);
12927: CLEAR_CZNV;
12928: SET_ZFLG (((uae_s8)(src)) == 0);
12929: SET_NFLG (((uae_s8)(src)) < 0);
12930: }}}m68k_incpc(6);
12931: return 16;
12932: }
12933: unsigned long REGPARAM2 CPUFUNC(op_4a3a_0)(uae_u32 opcode) /* TST */
12934: {
12935: OpcodeFamily = 20; CurrentInstrCycles = 12;
12936: {{ uaecptr srca = m68k_getpc () + 2;
12937: srca += (uae_s32)(uae_s16)get_iword(2);
12938: { uae_s8 src = get_byte(srca);
12939: CLEAR_CZNV;
12940: SET_ZFLG (((uae_s8)(src)) == 0);
12941: SET_NFLG (((uae_s8)(src)) < 0);
12942: }}}m68k_incpc(4);
12943: return 12;
12944: }
12945: unsigned long REGPARAM2 CPUFUNC(op_4a3b_0)(uae_u32 opcode) /* TST */
12946: {
12947: OpcodeFamily = 20; CurrentInstrCycles = 14;
12948: {{m68k_incpc(2);
12949: { uaecptr tmppc = m68k_getpc();
12950: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
12951: BusCyclePenalty += 2;
12952: { uae_s8 src = get_byte(srca);
12953: CLEAR_CZNV;
12954: SET_ZFLG (((uae_s8)(src)) == 0);
12955: SET_NFLG (((uae_s8)(src)) < 0);
12956: }}}}return 14;
12957: }
12958: unsigned long REGPARAM2 CPUFUNC(op_4a3c_0)(uae_u32 opcode) /* TST */
12959: {
12960: OpcodeFamily = 20; CurrentInstrCycles = 8;
12961: {{ uae_s8 src = get_ibyte(2);
12962: CLEAR_CZNV;
12963: SET_ZFLG (((uae_s8)(src)) == 0);
12964: SET_NFLG (((uae_s8)(src)) < 0);
12965: }}m68k_incpc(4);
12966: return 8;
12967: }
12968: unsigned long REGPARAM2 CPUFUNC(op_4a40_0)(uae_u32 opcode) /* TST */
12969: {
12970: uae_u32 srcreg = (opcode & 7);
12971: OpcodeFamily = 20; CurrentInstrCycles = 4;
12972: {{ uae_s16 src = m68k_dreg(regs, srcreg);
12973: CLEAR_CZNV;
12974: SET_ZFLG (((uae_s16)(src)) == 0);
12975: SET_NFLG (((uae_s16)(src)) < 0);
12976: }}m68k_incpc(2);
12977: return 4;
12978: }
12979: unsigned long REGPARAM2 CPUFUNC(op_4a48_0)(uae_u32 opcode) /* TST */
12980: {
12981: uae_u32 srcreg = (opcode & 7);
12982: OpcodeFamily = 20; CurrentInstrCycles = 4;
12983: {{ uae_s16 src = m68k_areg(regs, srcreg);
12984: CLEAR_CZNV;
12985: SET_ZFLG (((uae_s16)(src)) == 0);
12986: SET_NFLG (((uae_s16)(src)) < 0);
12987: }}m68k_incpc(2);
12988: return 4;
12989: }
12990: unsigned long REGPARAM2 CPUFUNC(op_4a50_0)(uae_u32 opcode) /* TST */
12991: {
12992: uae_u32 srcreg = (opcode & 7);
12993: OpcodeFamily = 20; CurrentInstrCycles = 8;
12994: {{ uaecptr srca = m68k_areg(regs, srcreg);
12995: { uae_s16 src = get_word(srca);
12996: CLEAR_CZNV;
12997: SET_ZFLG (((uae_s16)(src)) == 0);
12998: SET_NFLG (((uae_s16)(src)) < 0);
12999: }}}m68k_incpc(2);
13000: return 8;
13001: }
13002: unsigned long REGPARAM2 CPUFUNC(op_4a58_0)(uae_u32 opcode) /* TST */
13003: {
13004: uae_u32 srcreg = (opcode & 7);
13005: OpcodeFamily = 20; CurrentInstrCycles = 8;
13006: {{ uaecptr srca = m68k_areg(regs, srcreg);
13007: { uae_s16 src = get_word(srca);
13008: m68k_areg(regs, srcreg) += 2;
13009: CLEAR_CZNV;
13010: SET_ZFLG (((uae_s16)(src)) == 0);
13011: SET_NFLG (((uae_s16)(src)) < 0);
13012: }}}m68k_incpc(2);
13013: return 8;
13014: }
13015: unsigned long REGPARAM2 CPUFUNC(op_4a60_0)(uae_u32 opcode) /* TST */
13016: {
13017: uae_u32 srcreg = (opcode & 7);
13018: OpcodeFamily = 20; CurrentInstrCycles = 10;
13019: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
13020: { uae_s16 src = get_word(srca);
13021: m68k_areg (regs, srcreg) = srca;
13022: CLEAR_CZNV;
13023: SET_ZFLG (((uae_s16)(src)) == 0);
13024: SET_NFLG (((uae_s16)(src)) < 0);
13025: }}}m68k_incpc(2);
13026: return 10;
13027: }
13028: unsigned long REGPARAM2 CPUFUNC(op_4a68_0)(uae_u32 opcode) /* TST */
13029: {
13030: uae_u32 srcreg = (opcode & 7);
13031: OpcodeFamily = 20; CurrentInstrCycles = 12;
13032: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
13033: { uae_s16 src = get_word(srca);
13034: CLEAR_CZNV;
13035: SET_ZFLG (((uae_s16)(src)) == 0);
13036: SET_NFLG (((uae_s16)(src)) < 0);
13037: }}}m68k_incpc(4);
13038: return 12;
13039: }
13040: unsigned long REGPARAM2 CPUFUNC(op_4a70_0)(uae_u32 opcode) /* TST */
13041: {
13042: uae_u32 srcreg = (opcode & 7);
13043: OpcodeFamily = 20; CurrentInstrCycles = 14;
13044: {{m68k_incpc(2);
13045: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
13046: BusCyclePenalty += 2;
13047: { uae_s16 src = get_word(srca);
13048: CLEAR_CZNV;
13049: SET_ZFLG (((uae_s16)(src)) == 0);
13050: SET_NFLG (((uae_s16)(src)) < 0);
13051: }}}}return 14;
13052: }
13053: unsigned long REGPARAM2 CPUFUNC(op_4a78_0)(uae_u32 opcode) /* TST */
13054: {
13055: OpcodeFamily = 20; CurrentInstrCycles = 12;
13056: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
13057: { uae_s16 src = get_word(srca);
13058: CLEAR_CZNV;
13059: SET_ZFLG (((uae_s16)(src)) == 0);
13060: SET_NFLG (((uae_s16)(src)) < 0);
13061: }}}m68k_incpc(4);
13062: return 12;
13063: }
13064: unsigned long REGPARAM2 CPUFUNC(op_4a79_0)(uae_u32 opcode) /* TST */
13065: {
13066: OpcodeFamily = 20; CurrentInstrCycles = 16;
13067: {{ uaecptr srca = get_ilong(2);
13068: { uae_s16 src = get_word(srca);
13069: CLEAR_CZNV;
13070: SET_ZFLG (((uae_s16)(src)) == 0);
13071: SET_NFLG (((uae_s16)(src)) < 0);
13072: }}}m68k_incpc(6);
13073: return 16;
13074: }
13075: unsigned long REGPARAM2 CPUFUNC(op_4a7a_0)(uae_u32 opcode) /* TST */
13076: {
13077: OpcodeFamily = 20; CurrentInstrCycles = 12;
13078: {{ uaecptr srca = m68k_getpc () + 2;
13079: srca += (uae_s32)(uae_s16)get_iword(2);
13080: { uae_s16 src = get_word(srca);
13081: CLEAR_CZNV;
13082: SET_ZFLG (((uae_s16)(src)) == 0);
13083: SET_NFLG (((uae_s16)(src)) < 0);
13084: }}}m68k_incpc(4);
13085: return 12;
13086: }
13087: unsigned long REGPARAM2 CPUFUNC(op_4a7b_0)(uae_u32 opcode) /* TST */
13088: {
13089: OpcodeFamily = 20; CurrentInstrCycles = 14;
13090: {{m68k_incpc(2);
13091: { uaecptr tmppc = m68k_getpc();
13092: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
13093: BusCyclePenalty += 2;
13094: { uae_s16 src = get_word(srca);
13095: CLEAR_CZNV;
13096: SET_ZFLG (((uae_s16)(src)) == 0);
13097: SET_NFLG (((uae_s16)(src)) < 0);
13098: }}}}return 14;
13099: }
13100: unsigned long REGPARAM2 CPUFUNC(op_4a7c_0)(uae_u32 opcode) /* TST */
13101: {
13102: OpcodeFamily = 20; CurrentInstrCycles = 8;
13103: {{ uae_s16 src = get_iword(2);
13104: CLEAR_CZNV;
13105: SET_ZFLG (((uae_s16)(src)) == 0);
13106: SET_NFLG (((uae_s16)(src)) < 0);
13107: }}m68k_incpc(4);
13108: return 8;
13109: }
13110: unsigned long REGPARAM2 CPUFUNC(op_4a80_0)(uae_u32 opcode) /* TST */
13111: {
13112: uae_u32 srcreg = (opcode & 7);
13113: OpcodeFamily = 20; CurrentInstrCycles = 4;
13114: {{ uae_s32 src = m68k_dreg(regs, srcreg);
13115: CLEAR_CZNV;
13116: SET_ZFLG (((uae_s32)(src)) == 0);
13117: SET_NFLG (((uae_s32)(src)) < 0);
13118: }}m68k_incpc(2);
13119: return 4;
13120: }
13121: unsigned long REGPARAM2 CPUFUNC(op_4a88_0)(uae_u32 opcode) /* TST */
13122: {
13123: uae_u32 srcreg = (opcode & 7);
13124: OpcodeFamily = 20; CurrentInstrCycles = 4;
13125: {{ uae_s32 src = m68k_areg(regs, srcreg);
13126: CLEAR_CZNV;
13127: SET_ZFLG (((uae_s32)(src)) == 0);
13128: SET_NFLG (((uae_s32)(src)) < 0);
13129: }}m68k_incpc(2);
13130: return 4;
13131: }
13132: unsigned long REGPARAM2 CPUFUNC(op_4a90_0)(uae_u32 opcode) /* TST */
13133: {
13134: uae_u32 srcreg = (opcode & 7);
13135: OpcodeFamily = 20; CurrentInstrCycles = 12;
13136: {{ uaecptr srca = m68k_areg(regs, srcreg);
13137: { uae_s32 src = get_long(srca);
13138: CLEAR_CZNV;
13139: SET_ZFLG (((uae_s32)(src)) == 0);
13140: SET_NFLG (((uae_s32)(src)) < 0);
13141: }}}m68k_incpc(2);
13142: return 12;
13143: }
13144: unsigned long REGPARAM2 CPUFUNC(op_4a98_0)(uae_u32 opcode) /* TST */
13145: {
13146: uae_u32 srcreg = (opcode & 7);
13147: OpcodeFamily = 20; CurrentInstrCycles = 12;
13148: {{ uaecptr srca = m68k_areg(regs, srcreg);
13149: { uae_s32 src = get_long(srca);
13150: m68k_areg(regs, srcreg) += 4;
13151: CLEAR_CZNV;
13152: SET_ZFLG (((uae_s32)(src)) == 0);
13153: SET_NFLG (((uae_s32)(src)) < 0);
13154: }}}m68k_incpc(2);
13155: return 12;
13156: }
13157: unsigned long REGPARAM2 CPUFUNC(op_4aa0_0)(uae_u32 opcode) /* TST */
13158: {
13159: uae_u32 srcreg = (opcode & 7);
13160: OpcodeFamily = 20; CurrentInstrCycles = 14;
13161: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
13162: { uae_s32 src = get_long(srca);
13163: m68k_areg (regs, srcreg) = srca;
13164: CLEAR_CZNV;
13165: SET_ZFLG (((uae_s32)(src)) == 0);
13166: SET_NFLG (((uae_s32)(src)) < 0);
13167: }}}m68k_incpc(2);
13168: return 14;
13169: }
13170: unsigned long REGPARAM2 CPUFUNC(op_4aa8_0)(uae_u32 opcode) /* TST */
13171: {
13172: uae_u32 srcreg = (opcode & 7);
13173: OpcodeFamily = 20; CurrentInstrCycles = 16;
13174: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
13175: { uae_s32 src = get_long(srca);
13176: CLEAR_CZNV;
13177: SET_ZFLG (((uae_s32)(src)) == 0);
13178: SET_NFLG (((uae_s32)(src)) < 0);
13179: }}}m68k_incpc(4);
13180: return 16;
13181: }
13182: unsigned long REGPARAM2 CPUFUNC(op_4ab0_0)(uae_u32 opcode) /* TST */
13183: {
13184: uae_u32 srcreg = (opcode & 7);
13185: OpcodeFamily = 20; CurrentInstrCycles = 18;
13186: {{m68k_incpc(2);
13187: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
13188: BusCyclePenalty += 2;
13189: { uae_s32 src = get_long(srca);
13190: CLEAR_CZNV;
13191: SET_ZFLG (((uae_s32)(src)) == 0);
13192: SET_NFLG (((uae_s32)(src)) < 0);
13193: }}}}return 18;
13194: }
13195: unsigned long REGPARAM2 CPUFUNC(op_4ab8_0)(uae_u32 opcode) /* TST */
13196: {
13197: OpcodeFamily = 20; CurrentInstrCycles = 16;
13198: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
13199: { uae_s32 src = get_long(srca);
13200: CLEAR_CZNV;
13201: SET_ZFLG (((uae_s32)(src)) == 0);
13202: SET_NFLG (((uae_s32)(src)) < 0);
13203: }}}m68k_incpc(4);
13204: return 16;
13205: }
13206: unsigned long REGPARAM2 CPUFUNC(op_4ab9_0)(uae_u32 opcode) /* TST */
13207: {
13208: OpcodeFamily = 20; CurrentInstrCycles = 20;
13209: {{ uaecptr srca = get_ilong(2);
13210: { uae_s32 src = get_long(srca);
13211: CLEAR_CZNV;
13212: SET_ZFLG (((uae_s32)(src)) == 0);
13213: SET_NFLG (((uae_s32)(src)) < 0);
13214: }}}m68k_incpc(6);
13215: return 20;
13216: }
13217: unsigned long REGPARAM2 CPUFUNC(op_4aba_0)(uae_u32 opcode) /* TST */
13218: {
13219: OpcodeFamily = 20; CurrentInstrCycles = 16;
13220: {{ uaecptr srca = m68k_getpc () + 2;
13221: srca += (uae_s32)(uae_s16)get_iword(2);
13222: { uae_s32 src = get_long(srca);
13223: CLEAR_CZNV;
13224: SET_ZFLG (((uae_s32)(src)) == 0);
13225: SET_NFLG (((uae_s32)(src)) < 0);
13226: }}}m68k_incpc(4);
13227: return 16;
13228: }
13229: unsigned long REGPARAM2 CPUFUNC(op_4abb_0)(uae_u32 opcode) /* TST */
13230: {
13231: OpcodeFamily = 20; CurrentInstrCycles = 18;
13232: {{m68k_incpc(2);
13233: { uaecptr tmppc = m68k_getpc();
13234: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
13235: BusCyclePenalty += 2;
13236: { uae_s32 src = get_long(srca);
13237: CLEAR_CZNV;
13238: SET_ZFLG (((uae_s32)(src)) == 0);
13239: SET_NFLG (((uae_s32)(src)) < 0);
13240: }}}}return 18;
13241: }
13242: unsigned long REGPARAM2 CPUFUNC(op_4abc_0)(uae_u32 opcode) /* TST */
13243: {
13244: OpcodeFamily = 20; CurrentInstrCycles = 12;
13245: {{ uae_s32 src = get_ilong(2);
13246: CLEAR_CZNV;
13247: SET_ZFLG (((uae_s32)(src)) == 0);
13248: SET_NFLG (((uae_s32)(src)) < 0);
13249: }}m68k_incpc(6);
13250: return 12;
13251: }
13252: unsigned long REGPARAM2 CPUFUNC(op_4ac0_0)(uae_u32 opcode) /* TAS */
13253: {
13254: uae_u32 srcreg = (opcode & 7);
13255: OpcodeFamily = 98; CurrentInstrCycles = 4;
13256: {{ uae_s8 src = m68k_dreg(regs, srcreg);
13257: CLEAR_CZNV;
13258: SET_ZFLG (((uae_s8)(src)) == 0);
13259: SET_NFLG (((uae_s8)(src)) < 0);
13260: src |= 0x80;
13261: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((src) & 0xff);
13262: }}m68k_incpc(2);
13263: return 4;
13264: }
13265: unsigned long REGPARAM2 CPUFUNC(op_4ad0_0)(uae_u32 opcode) /* TAS */
13266: {
13267: uae_u32 srcreg = (opcode & 7);
13268: OpcodeFamily = 98; CurrentInstrCycles = 14;
13269: {{ uaecptr srca = m68k_areg(regs, srcreg);
13270: { uae_s8 src = get_byte(srca);
13271: CLEAR_CZNV;
13272: SET_ZFLG (((uae_s8)(src)) == 0);
13273: SET_NFLG (((uae_s8)(src)) < 0);
13274: src |= 0x80;
13275: put_byte(srca,src);
13276: }}}m68k_incpc(2);
13277: return 14;
13278: }
13279: unsigned long REGPARAM2 CPUFUNC(op_4ad8_0)(uae_u32 opcode) /* TAS */
13280: {
13281: uae_u32 srcreg = (opcode & 7);
13282: OpcodeFamily = 98; CurrentInstrCycles = 14;
13283: {{ uaecptr srca = m68k_areg(regs, srcreg);
13284: { uae_s8 src = get_byte(srca);
13285: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
13286: CLEAR_CZNV;
13287: SET_ZFLG (((uae_s8)(src)) == 0);
13288: SET_NFLG (((uae_s8)(src)) < 0);
13289: src |= 0x80;
13290: put_byte(srca,src);
13291: }}}m68k_incpc(2);
13292: return 14;
13293: }
13294: unsigned long REGPARAM2 CPUFUNC(op_4ae0_0)(uae_u32 opcode) /* TAS */
13295: {
13296: uae_u32 srcreg = (opcode & 7);
13297: OpcodeFamily = 98; CurrentInstrCycles = 16;
13298: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
13299: { uae_s8 src = get_byte(srca);
13300: m68k_areg (regs, srcreg) = srca;
13301: CLEAR_CZNV;
13302: SET_ZFLG (((uae_s8)(src)) == 0);
13303: SET_NFLG (((uae_s8)(src)) < 0);
13304: src |= 0x80;
13305: put_byte(srca,src);
13306: }}}m68k_incpc(2);
13307: return 16;
13308: }
13309: unsigned long REGPARAM2 CPUFUNC(op_4ae8_0)(uae_u32 opcode) /* TAS */
13310: {
13311: uae_u32 srcreg = (opcode & 7);
13312: OpcodeFamily = 98; CurrentInstrCycles = 18;
13313: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
13314: { uae_s8 src = get_byte(srca);
13315: CLEAR_CZNV;
13316: SET_ZFLG (((uae_s8)(src)) == 0);
13317: SET_NFLG (((uae_s8)(src)) < 0);
13318: src |= 0x80;
13319: put_byte(srca,src);
13320: }}}m68k_incpc(4);
13321: return 18;
13322: }
13323: unsigned long REGPARAM2 CPUFUNC(op_4af0_0)(uae_u32 opcode) /* TAS */
13324: {
13325: uae_u32 srcreg = (opcode & 7);
13326: OpcodeFamily = 98; CurrentInstrCycles = 20;
13327: {{m68k_incpc(2);
13328: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
13329: BusCyclePenalty += 2;
13330: { uae_s8 src = get_byte(srca);
13331: CLEAR_CZNV;
13332: SET_ZFLG (((uae_s8)(src)) == 0);
13333: SET_NFLG (((uae_s8)(src)) < 0);
13334: src |= 0x80;
13335: put_byte(srca,src);
13336: }}}}return 20;
13337: }
13338: unsigned long REGPARAM2 CPUFUNC(op_4af8_0)(uae_u32 opcode) /* TAS */
13339: {
13340: OpcodeFamily = 98; CurrentInstrCycles = 18;
13341: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
13342: { uae_s8 src = get_byte(srca);
13343: CLEAR_CZNV;
13344: SET_ZFLG (((uae_s8)(src)) == 0);
13345: SET_NFLG (((uae_s8)(src)) < 0);
13346: src |= 0x80;
13347: put_byte(srca,src);
13348: }}}m68k_incpc(4);
13349: return 18;
13350: }
13351: unsigned long REGPARAM2 CPUFUNC(op_4af9_0)(uae_u32 opcode) /* TAS */
13352: {
13353: OpcodeFamily = 98; CurrentInstrCycles = 22;
13354: {{ uaecptr srca = get_ilong(2);
13355: { uae_s8 src = get_byte(srca);
13356: CLEAR_CZNV;
13357: SET_ZFLG (((uae_s8)(src)) == 0);
13358: SET_NFLG (((uae_s8)(src)) < 0);
13359: src |= 0x80;
13360: put_byte(srca,src);
13361: }}}m68k_incpc(6);
13362: return 22;
13363: }
13364: unsigned long REGPARAM2 CPUFUNC(op_4c00_0)(uae_u32 opcode) /* MULL */
13365: {
13366: uae_u32 dstreg = opcode & 7;
13367: OpcodeFamily = 87; CurrentInstrCycles = 8;
13368: {{ uae_s16 extra = get_iword(2);
13369: { uae_s32 dst = m68k_dreg(regs, dstreg);
13370: m68k_incpc(4);
13371: m68k_mull(opcode, dst, extra);
13372: }}}return 8;
13373: }
13374: unsigned long REGPARAM2 CPUFUNC(op_4c10_0)(uae_u32 opcode) /* MULL */
13375: {
13376: uae_u32 dstreg = opcode & 7;
13377: OpcodeFamily = 87; CurrentInstrCycles = 16;
13378: {{ uae_s16 extra = get_iword(2);
13379: { uaecptr dsta = m68k_areg(regs, dstreg);
13380: { uae_s32 dst = get_long(dsta);
13381: m68k_incpc(4);
13382: m68k_mull(opcode, dst, extra);
13383: }}}}return 16;
13384: }
13385: unsigned long REGPARAM2 CPUFUNC(op_4c18_0)(uae_u32 opcode) /* MULL */
13386: {
13387: uae_u32 dstreg = opcode & 7;
13388: OpcodeFamily = 87; CurrentInstrCycles = 16;
13389: {{ uae_s16 extra = get_iword(2);
13390: { uaecptr dsta = m68k_areg(regs, dstreg);
13391: { uae_s32 dst = get_long(dsta);
13392: m68k_areg(regs, dstreg) += 4;
13393: m68k_incpc(4);
13394: m68k_mull(opcode, dst, extra);
13395: }}}}return 16;
13396: }
13397: unsigned long REGPARAM2 CPUFUNC(op_4c20_0)(uae_u32 opcode) /* MULL */
13398: {
13399: uae_u32 dstreg = opcode & 7;
13400: OpcodeFamily = 87; CurrentInstrCycles = 18;
13401: {{ uae_s16 extra = get_iword(2);
13402: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
13403: { uae_s32 dst = get_long(dsta);
13404: m68k_areg (regs, dstreg) = dsta;
13405: m68k_incpc(4);
13406: m68k_mull(opcode, dst, extra);
13407: }}}}return 18;
13408: }
13409: unsigned long REGPARAM2 CPUFUNC(op_4c28_0)(uae_u32 opcode) /* MULL */
13410: {
13411: uae_u32 dstreg = opcode & 7;
13412: OpcodeFamily = 87; CurrentInstrCycles = 20;
13413: {{ uae_s16 extra = get_iword(2);
13414: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
13415: { uae_s32 dst = get_long(dsta);
13416: m68k_incpc(6);
13417: m68k_mull(opcode, dst, extra);
13418: }}}}return 20;
13419: }
13420: unsigned long REGPARAM2 CPUFUNC(op_4c30_0)(uae_u32 opcode) /* MULL */
13421: {
13422: uae_u32 dstreg = opcode & 7;
13423: OpcodeFamily = 87; CurrentInstrCycles = 22;
13424: {{ uae_s16 extra = get_iword(2);
13425: {m68k_incpc(4);
13426: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
13427: BusCyclePenalty += 2;
13428: { uae_s32 dst = get_long(dsta);
13429: m68k_mull(opcode, dst, extra);
13430: }}}}}return 22;
13431: }
13432: unsigned long REGPARAM2 CPUFUNC(op_4c38_0)(uae_u32 opcode) /* MULL */
13433: {
13434: OpcodeFamily = 87; CurrentInstrCycles = 20;
13435: {{ uae_s16 extra = get_iword(2);
13436: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
13437: { uae_s32 dst = get_long(dsta);
13438: m68k_incpc(6);
13439: m68k_mull(opcode, dst, extra);
13440: }}}}return 20;
13441: }
13442: unsigned long REGPARAM2 CPUFUNC(op_4c39_0)(uae_u32 opcode) /* MULL */
13443: {
13444: OpcodeFamily = 87; CurrentInstrCycles = 24;
13445: {{ uae_s16 extra = get_iword(2);
13446: { uaecptr dsta = get_ilong(4);
13447: { uae_s32 dst = get_long(dsta);
13448: m68k_incpc(8);
13449: m68k_mull(opcode, dst, extra);
13450: }}}}return 24;
13451: }
13452: unsigned long REGPARAM2 CPUFUNC(op_4c3a_0)(uae_u32 opcode) /* MULL */
13453: {
13454: uae_u32 dstreg = 2;
13455: OpcodeFamily = 87; CurrentInstrCycles = 20;
13456: {{ uae_s16 extra = get_iword(2);
13457: { uaecptr dsta = m68k_getpc () + 4;
13458: dsta += (uae_s32)(uae_s16)get_iword(4);
13459: { uae_s32 dst = get_long(dsta);
13460: m68k_incpc(6);
13461: m68k_mull(opcode, dst, extra);
13462: }}}}return 20;
13463: }
13464: unsigned long REGPARAM2 CPUFUNC(op_4c3b_0)(uae_u32 opcode) /* MULL */
13465: {
13466: uae_u32 dstreg = 3;
13467: OpcodeFamily = 87; CurrentInstrCycles = 22;
13468: {{ uae_s16 extra = get_iword(2);
13469: {m68k_incpc(4);
13470: { uaecptr tmppc = m68k_getpc();
13471: uaecptr dsta = get_disp_ea_020(tmppc, next_iword());
13472: BusCyclePenalty += 2;
13473: { uae_s32 dst = get_long(dsta);
13474: m68k_mull(opcode, dst, extra);
13475: }}}}}return 22;
13476: }
13477: unsigned long REGPARAM2 CPUFUNC(op_4c3c_0)(uae_u32 opcode) /* MULL */
13478: {
13479: OpcodeFamily = 87; CurrentInstrCycles = 16;
13480: {{ uae_s16 extra = get_iword(2);
13481: { uae_s32 dst = get_ilong(4);
13482: m68k_incpc(8);
13483: m68k_mull(opcode, dst, extra);
13484: }}}return 16;
13485: }
13486: unsigned long REGPARAM2 CPUFUNC(op_4c40_0)(uae_u32 opcode) /* DIVL */
13487: {
13488: uae_u32 dstreg = opcode & 7;
13489: OpcodeFamily = 86; CurrentInstrCycles = 8;
13490: {m68k_incpc(2);
13491: { uaecptr oldpc = m68k_getpc();
13492: { uae_s16 extra = get_iword(0);
13493: { uae_s32 dst = m68k_dreg(regs, dstreg);
13494: m68k_incpc(2);
13495: m68k_divl(opcode, dst, extra, oldpc);
13496: }}}}return 8;
13497: }
13498: unsigned long REGPARAM2 CPUFUNC(op_4c50_0)(uae_u32 opcode) /* DIVL */
13499: {
13500: uae_u32 dstreg = opcode & 7;
13501: OpcodeFamily = 86; CurrentInstrCycles = 16;
13502: {m68k_incpc(2);
13503: { uaecptr oldpc = m68k_getpc();
13504: { uae_s16 extra = get_iword(0);
13505: { uaecptr dsta = m68k_areg(regs, dstreg);
13506: { uae_s32 dst = get_long(dsta);
13507: m68k_incpc(2);
13508: m68k_divl(opcode, dst, extra, oldpc);
13509: }}}}}return 16;
13510: }
13511: unsigned long REGPARAM2 CPUFUNC(op_4c58_0)(uae_u32 opcode) /* DIVL */
13512: {
13513: uae_u32 dstreg = opcode & 7;
13514: OpcodeFamily = 86; CurrentInstrCycles = 16;
13515: {m68k_incpc(2);
13516: { uaecptr oldpc = m68k_getpc();
13517: { uae_s16 extra = get_iword(0);
13518: { uaecptr dsta = m68k_areg(regs, dstreg);
13519: { uae_s32 dst = get_long(dsta);
13520: m68k_areg(regs, dstreg) += 4;
13521: m68k_incpc(2);
13522: m68k_divl(opcode, dst, extra, oldpc);
13523: }}}}}return 16;
13524: }
13525: unsigned long REGPARAM2 CPUFUNC(op_4c60_0)(uae_u32 opcode) /* DIVL */
13526: {
13527: uae_u32 dstreg = opcode & 7;
13528: OpcodeFamily = 86; CurrentInstrCycles = 18;
13529: {m68k_incpc(2);
13530: { uaecptr oldpc = m68k_getpc();
13531: { uae_s16 extra = get_iword(0);
13532: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
13533: { uae_s32 dst = get_long(dsta);
13534: m68k_areg (regs, dstreg) = dsta;
13535: m68k_incpc(2);
13536: m68k_divl(opcode, dst, extra, oldpc);
13537: }}}}}return 18;
13538: }
13539: unsigned long REGPARAM2 CPUFUNC(op_4c68_0)(uae_u32 opcode) /* DIVL */
13540: {
13541: uae_u32 dstreg = opcode & 7;
13542: OpcodeFamily = 86; CurrentInstrCycles = 20;
13543: {m68k_incpc(2);
13544: { uaecptr oldpc = m68k_getpc();
13545: { uae_s16 extra = get_iword(0);
13546: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
13547: { uae_s32 dst = get_long(dsta);
13548: m68k_incpc(4);
13549: m68k_divl(opcode, dst, extra, oldpc);
13550: }}}}}return 20;
13551: }
13552: unsigned long REGPARAM2 CPUFUNC(op_4c70_0)(uae_u32 opcode) /* DIVL */
13553: {
13554: uae_u32 dstreg = opcode & 7;
13555: OpcodeFamily = 86; CurrentInstrCycles = 22;
13556: {m68k_incpc(2);
13557: { uaecptr oldpc = m68k_getpc();
13558: { uae_s16 extra = get_iword(0);
13559: {m68k_incpc(2);
13560: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
13561: BusCyclePenalty += 2;
13562: { uae_s32 dst = get_long(dsta);
13563: m68k_divl(opcode, dst, extra, oldpc);
13564: }}}}}}return 22;
13565: }
13566: unsigned long REGPARAM2 CPUFUNC(op_4c78_0)(uae_u32 opcode) /* DIVL */
13567: {
13568: OpcodeFamily = 86; CurrentInstrCycles = 20;
13569: {m68k_incpc(2);
13570: { uaecptr oldpc = m68k_getpc();
13571: { uae_s16 extra = get_iword(0);
13572: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
13573: { uae_s32 dst = get_long(dsta);
13574: m68k_incpc(4);
13575: m68k_divl(opcode, dst, extra, oldpc);
13576: }}}}}return 20;
13577: }
13578: unsigned long REGPARAM2 CPUFUNC(op_4c79_0)(uae_u32 opcode) /* DIVL */
13579: {
13580: OpcodeFamily = 86; CurrentInstrCycles = 24;
13581: {m68k_incpc(2);
13582: { uaecptr oldpc = m68k_getpc();
13583: { uae_s16 extra = get_iword(0);
13584: { uaecptr dsta = get_ilong(2);
13585: { uae_s32 dst = get_long(dsta);
13586: m68k_incpc(6);
13587: m68k_divl(opcode, dst, extra, oldpc);
13588: }}}}}return 24;
13589: }
13590: unsigned long REGPARAM2 CPUFUNC(op_4c7a_0)(uae_u32 opcode) /* DIVL */
13591: {
13592: uae_u32 dstreg = 2;
13593: OpcodeFamily = 86; CurrentInstrCycles = 20;
13594: {m68k_incpc(2);
13595: { uaecptr oldpc = m68k_getpc();
13596: { uae_s16 extra = get_iword(0);
13597: { uaecptr dsta = m68k_getpc () + 2;
13598: dsta += (uae_s32)(uae_s16)get_iword(2);
13599: { uae_s32 dst = get_long(dsta);
13600: m68k_incpc(4);
13601: m68k_divl(opcode, dst, extra, oldpc);
13602: }}}}}return 20;
13603: }
13604: unsigned long REGPARAM2 CPUFUNC(op_4c7b_0)(uae_u32 opcode) /* DIVL */
13605: {
13606: uae_u32 dstreg = 3;
13607: OpcodeFamily = 86; CurrentInstrCycles = 22;
13608: {m68k_incpc(2);
13609: { uaecptr oldpc = m68k_getpc();
13610: { uae_s16 extra = get_iword(0);
13611: {m68k_incpc(2);
13612: { uaecptr tmppc = m68k_getpc();
13613: uaecptr dsta = get_disp_ea_020(tmppc, next_iword());
13614: BusCyclePenalty += 2;
13615: { uae_s32 dst = get_long(dsta);
13616: m68k_divl(opcode, dst, extra, oldpc);
13617: }}}}}}return 22;
13618: }
13619: unsigned long REGPARAM2 CPUFUNC(op_4c7c_0)(uae_u32 opcode) /* DIVL */
13620: {
13621: OpcodeFamily = 86; CurrentInstrCycles = 16;
13622: {m68k_incpc(2);
13623: { uaecptr oldpc = m68k_getpc();
13624: { uae_s16 extra = get_iword(0);
13625: { uae_s32 dst = get_ilong(2);
13626: m68k_incpc(6);
13627: m68k_divl(opcode, dst, extra, oldpc);
13628: }}}}return 16;
13629: }
13630: unsigned long REGPARAM2 CPUFUNC(op_4c90_0)(uae_u32 opcode) /* MVMEL */
13631: {
13632: uae_u32 dstreg = opcode & 7;
13633: unsigned int retcycles = 0;
13634: OpcodeFamily = 37; CurrentInstrCycles = 12;
13635: { uae_u16 mask = get_iword(2);
13636: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
13637: retcycles = 0;
13638: { uaecptr srca = m68k_areg(regs, dstreg);
13639: { while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; }
13640: while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; }
13641: }}}m68k_incpc(4);
13642: return (12+retcycles);
13643: }
13644: unsigned long REGPARAM2 CPUFUNC(op_4c98_0)(uae_u32 opcode) /* MVMEL */
13645: {
13646: uae_u32 dstreg = opcode & 7;
13647: unsigned int retcycles = 0;
13648: OpcodeFamily = 37; CurrentInstrCycles = 12;
13649: { uae_u16 mask = get_iword(2);
13650: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
13651: retcycles = 0;
13652: { uaecptr srca = m68k_areg(regs, dstreg);
13653: { while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; }
13654: while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; }
13655: m68k_areg(regs, dstreg) = srca;
13656: }}}m68k_incpc(4);
13657: return (12+retcycles);
13658: }
13659: unsigned long REGPARAM2 CPUFUNC(op_4ca8_0)(uae_u32 opcode) /* MVMEL */
13660: {
13661: uae_u32 dstreg = opcode & 7;
13662: unsigned int retcycles = 0;
13663: OpcodeFamily = 37; CurrentInstrCycles = 16;
13664: { uae_u16 mask = get_iword(2);
13665: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
13666: retcycles = 0;
13667: { uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
13668: { while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; }
13669: while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; }
13670: }}}m68k_incpc(6);
13671: return (16+retcycles);
13672: }
13673: unsigned long REGPARAM2 CPUFUNC(op_4cb0_0)(uae_u32 opcode) /* MVMEL */
13674: {
13675: uae_u32 dstreg = opcode & 7;
13676: unsigned int retcycles = 0;
13677: OpcodeFamily = 37; CurrentInstrCycles = 18;
13678: { uae_u16 mask = get_iword(2);
13679: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
13680: retcycles = 0;
13681: {m68k_incpc(4);
13682: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
13683: BusCyclePenalty += 2;
13684: { while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; }
13685: while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; }
13686: }}}} return (18+retcycles);
13687: }
13688: unsigned long REGPARAM2 CPUFUNC(op_4cb8_0)(uae_u32 opcode) /* MVMEL */
13689: {
13690: unsigned int retcycles = 0;
13691: OpcodeFamily = 37; CurrentInstrCycles = 16;
13692: { uae_u16 mask = get_iword(2);
13693: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
13694: retcycles = 0;
13695: { uaecptr srca = (uae_s32)(uae_s16)get_iword(4);
13696: { while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; }
13697: while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; }
13698: }}}m68k_incpc(6);
13699: return (16+retcycles);
13700: }
13701: unsigned long REGPARAM2 CPUFUNC(op_4cb9_0)(uae_u32 opcode) /* MVMEL */
13702: {
13703: unsigned int retcycles = 0;
13704: OpcodeFamily = 37; CurrentInstrCycles = 20;
13705: { uae_u16 mask = get_iword(2);
13706: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
13707: retcycles = 0;
13708: { uaecptr srca = get_ilong(4);
13709: { while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; }
13710: while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; }
13711: }}}m68k_incpc(8);
13712: return (20+retcycles);
13713: }
13714: unsigned long REGPARAM2 CPUFUNC(op_4cba_0)(uae_u32 opcode) /* MVMEL */
13715: {
13716: uae_u32 dstreg = 2;
13717: unsigned int retcycles = 0;
13718: OpcodeFamily = 37; CurrentInstrCycles = 16;
13719: { uae_u16 mask = get_iword(2);
13720: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
13721: retcycles = 0;
13722: { uaecptr srca = m68k_getpc () + 4;
13723: srca += (uae_s32)(uae_s16)get_iword(4);
13724: { while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; }
13725: while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; }
13726: }}}m68k_incpc(6);
13727: return (16+retcycles);
13728: }
13729: unsigned long REGPARAM2 CPUFUNC(op_4cbb_0)(uae_u32 opcode) /* MVMEL */
13730: {
13731: uae_u32 dstreg = 3;
13732: unsigned int retcycles = 0;
13733: OpcodeFamily = 37; CurrentInstrCycles = 18;
13734: { uae_u16 mask = get_iword(2);
13735: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
13736: retcycles = 0;
13737: {m68k_incpc(4);
13738: { uaecptr tmppc = m68k_getpc();
13739: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
13740: BusCyclePenalty += 2;
13741: { while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; }
13742: while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; }
13743: }}}} return (18+retcycles);
13744: }
13745: unsigned long REGPARAM2 CPUFUNC(op_4cd0_0)(uae_u32 opcode) /* MVMEL */
13746: {
13747: uae_u32 dstreg = opcode & 7;
13748: unsigned int retcycles = 0;
13749: OpcodeFamily = 37; CurrentInstrCycles = 12;
13750: { uae_u16 mask = get_iword(2);
13751: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
13752: retcycles = 0;
13753: { uaecptr srca = m68k_areg(regs, dstreg);
13754: { while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; }
13755: while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; }
13756: }}}m68k_incpc(4);
13757: return (12+retcycles);
13758: }
13759: unsigned long REGPARAM2 CPUFUNC(op_4cd8_0)(uae_u32 opcode) /* MVMEL */
13760: {
13761: uae_u32 dstreg = opcode & 7;
13762: unsigned int retcycles = 0;
13763: OpcodeFamily = 37; CurrentInstrCycles = 12;
13764: { uae_u16 mask = get_iword(2);
13765: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
13766: retcycles = 0;
13767: { uaecptr srca = m68k_areg(regs, dstreg);
13768: { while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; }
13769: while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; }
13770: m68k_areg(regs, dstreg) = srca;
13771: }}}m68k_incpc(4);
13772: return (12+retcycles);
13773: }
13774: unsigned long REGPARAM2 CPUFUNC(op_4ce8_0)(uae_u32 opcode) /* MVMEL */
13775: {
13776: uae_u32 dstreg = opcode & 7;
13777: unsigned int retcycles = 0;
13778: OpcodeFamily = 37; CurrentInstrCycles = 16;
13779: { uae_u16 mask = get_iword(2);
13780: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
13781: retcycles = 0;
13782: { uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
13783: { while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; }
13784: while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; }
13785: }}}m68k_incpc(6);
13786: return (16+retcycles);
13787: }
13788: unsigned long REGPARAM2 CPUFUNC(op_4cf0_0)(uae_u32 opcode) /* MVMEL */
13789: {
13790: uae_u32 dstreg = opcode & 7;
13791: unsigned int retcycles = 0;
13792: OpcodeFamily = 37; CurrentInstrCycles = 18;
13793: { uae_u16 mask = get_iword(2);
13794: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
13795: retcycles = 0;
13796: {m68k_incpc(4);
13797: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
13798: BusCyclePenalty += 2;
13799: { while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; }
13800: while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; }
13801: }}}} return (18+retcycles);
13802: }
13803: unsigned long REGPARAM2 CPUFUNC(op_4cf8_0)(uae_u32 opcode) /* MVMEL */
13804: {
13805: unsigned int retcycles = 0;
13806: OpcodeFamily = 37; CurrentInstrCycles = 16;
13807: { uae_u16 mask = get_iword(2);
13808: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
13809: retcycles = 0;
13810: { uaecptr srca = (uae_s32)(uae_s16)get_iword(4);
13811: { while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; }
13812: while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; }
13813: }}}m68k_incpc(6);
13814: return (16+retcycles);
13815: }
13816: unsigned long REGPARAM2 CPUFUNC(op_4cf9_0)(uae_u32 opcode) /* MVMEL */
13817: {
13818: unsigned int retcycles = 0;
13819: OpcodeFamily = 37; CurrentInstrCycles = 20;
13820: { uae_u16 mask = get_iword(2);
13821: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
13822: retcycles = 0;
13823: { uaecptr srca = get_ilong(4);
13824: { while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; }
13825: while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; }
13826: }}}m68k_incpc(8);
13827: return (20+retcycles);
13828: }
13829: unsigned long REGPARAM2 CPUFUNC(op_4cfa_0)(uae_u32 opcode) /* MVMEL */
13830: {
13831: uae_u32 dstreg = 2;
13832: unsigned int retcycles = 0;
13833: OpcodeFamily = 37; CurrentInstrCycles = 16;
13834: { uae_u16 mask = get_iword(2);
13835: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
13836: retcycles = 0;
13837: { uaecptr srca = m68k_getpc () + 4;
13838: srca += (uae_s32)(uae_s16)get_iword(4);
13839: { while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; }
13840: while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; }
13841: }}}m68k_incpc(6);
13842: return (16+retcycles);
13843: }
13844: unsigned long REGPARAM2 CPUFUNC(op_4cfb_0)(uae_u32 opcode) /* MVMEL */
13845: {
13846: uae_u32 dstreg = 3;
13847: unsigned int retcycles = 0;
13848: OpcodeFamily = 37; CurrentInstrCycles = 18;
13849: { uae_u16 mask = get_iword(2);
13850: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
13851: retcycles = 0;
13852: {m68k_incpc(4);
13853: { uaecptr tmppc = m68k_getpc();
13854: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
13855: BusCyclePenalty += 2;
13856: { while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; }
13857: while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; }
13858: }}}} return (18+retcycles);
13859: }
13860: unsigned long REGPARAM2 CPUFUNC(op_4e40_0)(uae_u32 opcode) /* TRAP */
13861: {
13862: uae_u32 srcreg = (opcode & 15);
13863: OpcodeFamily = 39; CurrentInstrCycles = 4;
13864: {{ uae_u32 src = srcreg;
13865: m68k_incpc(2);
13866: Exception(src+32,0,M68000_EXC_SRC_CPU);
13867: }}return 4;
13868: }
13869: unsigned long REGPARAM2 CPUFUNC(op_4e50_0)(uae_u32 opcode) /* LINK */
13870: {
13871: uae_u32 srcreg = (opcode & 7);
13872: OpcodeFamily = 47; CurrentInstrCycles = 18;
13873: {{ uaecptr olda = m68k_areg(regs, 7) - 4;
13874: m68k_areg (regs, 7) = olda;
13875: { uae_s32 src = m68k_areg(regs, srcreg);
13876: put_long(olda,src);
13877: m68k_areg(regs, srcreg) = (m68k_areg(regs, 7));
13878: { uae_s16 offs = get_iword(2);
13879: m68k_areg(regs, 7) += offs;
13880: }}}}m68k_incpc(4);
13881: return 18;
13882: }
13883: unsigned long REGPARAM2 CPUFUNC(op_4e58_0)(uae_u32 opcode) /* UNLK */
13884: {
13885: uae_u32 srcreg = (opcode & 7);
13886: OpcodeFamily = 48; CurrentInstrCycles = 12;
13887: {{ uae_s32 src = m68k_areg(regs, srcreg);
13888: m68k_areg(regs, 7) = src;
13889: { uaecptr olda = m68k_areg(regs, 7);
13890: { uae_s32 old = get_long(olda);
13891: m68k_areg(regs, 7) += 4;
13892: m68k_areg(regs, srcreg) = (old);
13893: }}}}m68k_incpc(2);
13894: return 12;
13895: }
13896: unsigned long REGPARAM2 CPUFUNC(op_4e60_0)(uae_u32 opcode) /* MVR2USP */
13897: {
13898: uae_u32 srcreg = (opcode & 7);
13899: OpcodeFamily = 40; CurrentInstrCycles = 4;
13900: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel909; }
13901: {{ uae_s32 src = m68k_areg(regs, srcreg);
13902: regs.usp = src;
13903: }}}m68k_incpc(2);
13904: endlabel909: ;
13905: return 4;
13906: }
13907: unsigned long REGPARAM2 CPUFUNC(op_4e68_0)(uae_u32 opcode) /* MVUSP2R */
13908: {
13909: uae_u32 srcreg = (opcode & 7);
13910: OpcodeFamily = 41; CurrentInstrCycles = 4;
13911: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel910; }
13912: {{ m68k_areg(regs, srcreg) = (regs.usp);
13913: }}}m68k_incpc(2);
13914: endlabel910: ;
13915: return 4;
13916: }
13917: unsigned long REGPARAM2 CPUFUNC(op_4e70_0)(uae_u32 opcode) /* RESET */
13918: {
13919: OpcodeFamily = 42; CurrentInstrCycles = 132;
13920: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel911; }
13921: { customreset();
13922: }}m68k_incpc(2);
13923: endlabel911: ;
13924: return 132;
13925: }
13926: unsigned long REGPARAM2 CPUFUNC(op_4e71_0)(uae_u32 opcode) /* NOP */
13927: {
13928: OpcodeFamily = 43; CurrentInstrCycles = 4;
13929: {}m68k_incpc(2);
13930: return 4;
13931: }
13932: unsigned long REGPARAM2 CPUFUNC(op_4e72_0)(uae_u32 opcode) /* STOP */
13933: {
13934: OpcodeFamily = 44; CurrentInstrCycles = 4;
13935: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel913; }
13936: {{ uae_s16 src = get_iword(2);
13937: regs.sr = src;
13938: MakeFromSR();
13939: m68k_setstopped(1);
13940: }}}m68k_incpc(4);
13941: endlabel913: ;
13942: return 4;
13943: }
13944: unsigned long REGPARAM2 CPUFUNC(op_4e73_0)(uae_u32 opcode) /* RTE */
13945: {
13946: OpcodeFamily = 45; CurrentInstrCycles = 20;
13947: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel914; }
13948: { uae_u16 newsr; uae_u32 newpc; for (;;) {
13949: { uaecptr sra = m68k_areg(regs, 7);
13950: { uae_s16 sr = get_word(sra);
13951: m68k_areg(regs, 7) += 2;
13952: { uaecptr pca = m68k_areg(regs, 7);
13953: { uae_s32 pc = get_long(pca);
13954: m68k_areg(regs, 7) += 4;
13955: { uaecptr formata = m68k_areg(regs, 7);
13956: { uae_s16 format = get_word(formata);
13957: m68k_areg(regs, 7) += 2;
13958: newsr = sr; newpc = pc;
13959: if ((format & 0xF000) == 0x0000) { break; }
13960: else if ((format & 0xF000) == 0x1000) { ; }
13961: else if ((format & 0xF000) == 0x2000) { m68k_areg(regs, 7) += 4; break; }
13962: else if ((format & 0xF000) == 0x8000) { m68k_areg(regs, 7) += 50; break; }
13963: else if ((format & 0xF000) == 0x9000) { m68k_areg(regs, 7) += 12; break; }
13964: else if ((format & 0xF000) == 0xa000) { m68k_areg(regs, 7) += 24; break; }
13965: else if ((format & 0xF000) == 0xb000) { m68k_areg(regs, 7) += 84; break; }
13966: else { Exception(14,0,M68000_EXC_SRC_CPU); goto endlabel914; }
13967: regs.sr = newsr; MakeFromSR();
13968: }
13969: }}}}}} regs.sr = newsr; MakeFromSR();
13970: m68k_setpc_rte(newpc);
13971: }}endlabel914: ;
13972: return 20;
13973: }
13974: unsigned long REGPARAM2 CPUFUNC(op_4e74_0)(uae_u32 opcode) /* RTD */
13975: {
13976: OpcodeFamily = 46; CurrentInstrCycles = 16;
13977: {{ uaecptr pca = m68k_areg(regs, 7);
13978: { uae_s32 pc = get_long(pca);
13979: m68k_areg(regs, 7) += 4;
13980: { uae_s16 offs = get_iword(2);
13981: m68k_areg(regs, 7) += offs;
13982: m68k_setpc_rte(pc);
13983: }}}}return 16;
13984: }
13985: unsigned long REGPARAM2 CPUFUNC(op_4e75_0)(uae_u32 opcode) /* RTS */
13986: {
13987: OpcodeFamily = 49; CurrentInstrCycles = 16;
13988: { m68k_do_rts();
13989: }return 16;
13990: }
13991: unsigned long REGPARAM2 CPUFUNC(op_4e76_0)(uae_u32 opcode) /* TRAPV */
13992: {
13993: OpcodeFamily = 50; CurrentInstrCycles = 4;
13994: {m68k_incpc(2);
13995: if (GET_VFLG) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel917; }
13996: }endlabel917: ;
13997: return 4;
13998: }
13999: unsigned long REGPARAM2 CPUFUNC(op_4e77_0)(uae_u32 opcode) /* RTR */
14000: {
14001: OpcodeFamily = 51; CurrentInstrCycles = 20;
14002: { MakeSR();
14003: { uaecptr sra = m68k_areg(regs, 7);
14004: { uae_s16 sr = get_word(sra);
14005: m68k_areg(regs, 7) += 2;
14006: { uaecptr pca = m68k_areg(regs, 7);
14007: { uae_s32 pc = get_long(pca);
14008: m68k_areg(regs, 7) += 4;
14009: regs.sr &= 0xFF00; sr &= 0xFF;
14010: regs.sr |= sr; m68k_setpc(pc);
14011: MakeFromSR();
14012: }}}}}return 20;
14013: }
14014: unsigned long REGPARAM2 CPUFUNC(op_4e7a_0)(uae_u32 opcode) /* MOVEC2 */
14015: {
14016: OpcodeFamily = 82; CurrentInstrCycles = 8;
14017: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel919; }
14018: {{ uae_s16 src = get_iword(2);
14019: { int regno = (src >> 12) & 15;
14020: uae_u32 *regp = regs.regs + regno;
14021: if (! m68k_movec2(src & 0xFFF, regp)) goto endlabel919;
14022: }}}}m68k_incpc(4);
14023: endlabel919: ;
14024: return 8;
14025: }
14026: unsigned long REGPARAM2 CPUFUNC(op_4e7b_0)(uae_u32 opcode) /* MOVE2C */
14027: {
14028: OpcodeFamily = 83; CurrentInstrCycles = 8;
14029: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel920; }
14030: {{ uae_s16 src = get_iword(2);
14031: { int regno = (src >> 12) & 15;
14032: uae_u32 *regp = regs.regs + regno;
14033: if (! m68k_move2c(src & 0xFFF, regp)) goto endlabel920;
14034: }}}}m68k_incpc(4);
14035: endlabel920: ;
14036: return 8;
14037: }
14038: unsigned long REGPARAM2 CPUFUNC(op_4e90_0)(uae_u32 opcode) /* JSR */
14039: {
14040: uae_u32 srcreg = (opcode & 7);
14041: OpcodeFamily = 52; CurrentInstrCycles = 16;
14042: {{ uaecptr srca = m68k_areg(regs, srcreg);
14043: m68k_do_jsr(m68k_getpc() + 2, srca);
14044: }}return 16;
14045: }
14046: unsigned long REGPARAM2 CPUFUNC(op_4ea8_0)(uae_u32 opcode) /* JSR */
14047: {
14048: uae_u32 srcreg = (opcode & 7);
14049: OpcodeFamily = 52; CurrentInstrCycles = 18;
14050: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
14051: m68k_do_jsr(m68k_getpc() + 4, srca);
14052: }}return 18;
14053: }
14054: unsigned long REGPARAM2 CPUFUNC(op_4eb0_0)(uae_u32 opcode) /* JSR */
14055: {
14056: uae_u32 srcreg = (opcode & 7);
14057: OpcodeFamily = 52; CurrentInstrCycles = 22;
14058: {{m68k_incpc(2);
14059: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
14060: BusCyclePenalty += 2;
14061: m68k_do_jsr(m68k_getpc() + 0, srca);
14062: }}}return 22;
14063: }
14064: unsigned long REGPARAM2 CPUFUNC(op_4eb8_0)(uae_u32 opcode) /* JSR */
14065: {
14066: OpcodeFamily = 52; CurrentInstrCycles = 18;
14067: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
14068: m68k_do_jsr(m68k_getpc() + 4, srca);
14069: }}return 18;
14070: }
14071: unsigned long REGPARAM2 CPUFUNC(op_4eb9_0)(uae_u32 opcode) /* JSR */
14072: {
14073: OpcodeFamily = 52; CurrentInstrCycles = 20;
14074: {{ uaecptr srca = get_ilong(2);
14075: m68k_do_jsr(m68k_getpc() + 6, srca);
14076: }}return 20;
14077: }
14078: unsigned long REGPARAM2 CPUFUNC(op_4eba_0)(uae_u32 opcode) /* JSR */
14079: {
14080: OpcodeFamily = 52; CurrentInstrCycles = 18;
14081: {{ uaecptr srca = m68k_getpc () + 2;
14082: srca += (uae_s32)(uae_s16)get_iword(2);
14083: m68k_do_jsr(m68k_getpc() + 4, srca);
14084: }}return 18;
14085: }
14086: unsigned long REGPARAM2 CPUFUNC(op_4ebb_0)(uae_u32 opcode) /* JSR */
14087: {
14088: OpcodeFamily = 52; CurrentInstrCycles = 22;
14089: {{m68k_incpc(2);
14090: { uaecptr tmppc = m68k_getpc();
14091: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
14092: BusCyclePenalty += 2;
14093: m68k_do_jsr(m68k_getpc() + 0, srca);
14094: }}}return 22;
14095: }
14096: unsigned long REGPARAM2 CPUFUNC(op_4ed0_0)(uae_u32 opcode) /* JMP */
14097: {
14098: uae_u32 srcreg = (opcode & 7);
14099: OpcodeFamily = 53; CurrentInstrCycles = 8;
14100: {{ uaecptr srca = m68k_areg(regs, srcreg);
14101: m68k_setpc(srca);
14102: }}return 8;
14103: }
14104: unsigned long REGPARAM2 CPUFUNC(op_4ee8_0)(uae_u32 opcode) /* JMP */
14105: {
14106: uae_u32 srcreg = (opcode & 7);
14107: OpcodeFamily = 53; CurrentInstrCycles = 10;
14108: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
14109: m68k_setpc(srca);
14110: }}return 10;
14111: }
14112: unsigned long REGPARAM2 CPUFUNC(op_4ef0_0)(uae_u32 opcode) /* JMP */
14113: {
14114: uae_u32 srcreg = (opcode & 7);
14115: OpcodeFamily = 53; CurrentInstrCycles = 14;
14116: {{m68k_incpc(2);
14117: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
14118: BusCyclePenalty += 2;
14119: m68k_setpc(srca);
14120: }}}return 14;
14121: }
14122: unsigned long REGPARAM2 CPUFUNC(op_4ef8_0)(uae_u32 opcode) /* JMP */
14123: {
14124: OpcodeFamily = 53; CurrentInstrCycles = 10;
14125: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
14126: m68k_setpc(srca);
14127: }}return 10;
14128: }
14129: unsigned long REGPARAM2 CPUFUNC(op_4ef9_0)(uae_u32 opcode) /* JMP */
14130: {
14131: OpcodeFamily = 53; CurrentInstrCycles = 12;
14132: {{ uaecptr srca = get_ilong(2);
14133: m68k_setpc(srca);
14134: }}return 12;
14135: }
14136: unsigned long REGPARAM2 CPUFUNC(op_4efa_0)(uae_u32 opcode) /* JMP */
14137: {
14138: OpcodeFamily = 53; CurrentInstrCycles = 10;
14139: {{ uaecptr srca = m68k_getpc () + 2;
14140: srca += (uae_s32)(uae_s16)get_iword(2);
14141: m68k_setpc(srca);
14142: }}return 10;
14143: }
14144: unsigned long REGPARAM2 CPUFUNC(op_4efb_0)(uae_u32 opcode) /* JMP */
14145: {
14146: OpcodeFamily = 53; CurrentInstrCycles = 14;
14147: {{m68k_incpc(2);
14148: { uaecptr tmppc = m68k_getpc();
14149: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
14150: BusCyclePenalty += 2;
14151: m68k_setpc(srca);
14152: }}}return 14;
14153: }
14154: unsigned long REGPARAM2 CPUFUNC(op_5000_0)(uae_u32 opcode) /* ADD */
14155: {
14156: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14157: uae_u32 dstreg = opcode & 7;
14158: OpcodeFamily = 11; CurrentInstrCycles = 4;
14159: {{ uae_u32 src = srcreg;
14160: { uae_s8 dst = m68k_dreg(regs, dstreg);
14161: { refill_prefetch (m68k_getpc(), 2);
14162: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
14163: { int flgs = ((uae_s8)(src)) < 0;
14164: int flgo = ((uae_s8)(dst)) < 0;
14165: int flgn = ((uae_s8)(newv)) < 0;
14166: SET_ZFLG (((uae_s8)(newv)) == 0);
14167: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
14168: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
14169: COPY_CARRY;
14170: SET_NFLG (flgn != 0);
14171: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
14172: }}}}}}m68k_incpc(2);
14173: return 4;
14174: }
14175: unsigned long REGPARAM2 CPUFUNC(op_5010_0)(uae_u32 opcode) /* ADD */
14176: {
14177: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14178: uae_u32 dstreg = opcode & 7;
14179: OpcodeFamily = 11; CurrentInstrCycles = 12;
14180: {{ uae_u32 src = srcreg;
14181: { uaecptr dsta = m68k_areg(regs, dstreg);
14182: { uae_s8 dst = get_byte(dsta);
14183: { refill_prefetch (m68k_getpc(), 2);
14184: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
14185: { int flgs = ((uae_s8)(src)) < 0;
14186: int flgo = ((uae_s8)(dst)) < 0;
14187: int flgn = ((uae_s8)(newv)) < 0;
14188: SET_ZFLG (((uae_s8)(newv)) == 0);
14189: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
14190: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
14191: COPY_CARRY;
14192: SET_NFLG (flgn != 0);
14193: put_byte(dsta,newv);
14194: }}}}}}}m68k_incpc(2);
14195: return 12;
14196: }
14197: unsigned long REGPARAM2 CPUFUNC(op_5018_0)(uae_u32 opcode) /* ADD */
14198: {
14199: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14200: uae_u32 dstreg = opcode & 7;
14201: OpcodeFamily = 11; CurrentInstrCycles = 12;
14202: {{ uae_u32 src = srcreg;
14203: { uaecptr dsta = m68k_areg(regs, dstreg);
14204: { uae_s8 dst = get_byte(dsta);
14205: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
14206: { refill_prefetch (m68k_getpc(), 2);
14207: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
14208: { int flgs = ((uae_s8)(src)) < 0;
14209: int flgo = ((uae_s8)(dst)) < 0;
14210: int flgn = ((uae_s8)(newv)) < 0;
14211: SET_ZFLG (((uae_s8)(newv)) == 0);
14212: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
14213: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
14214: COPY_CARRY;
14215: SET_NFLG (flgn != 0);
14216: put_byte(dsta,newv);
14217: }}}}}}}m68k_incpc(2);
14218: return 12;
14219: }
14220: #endif
14221:
14222: #ifdef PART_5
14223: unsigned long REGPARAM2 CPUFUNC(op_5020_0)(uae_u32 opcode) /* ADD */
14224: {
14225: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14226: uae_u32 dstreg = opcode & 7;
14227: OpcodeFamily = 11; CurrentInstrCycles = 14;
14228: {{ uae_u32 src = srcreg;
14229: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
14230: { uae_s8 dst = get_byte(dsta);
14231: m68k_areg (regs, dstreg) = dsta;
14232: { refill_prefetch (m68k_getpc(), 2);
14233: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
14234: { int flgs = ((uae_s8)(src)) < 0;
14235: int flgo = ((uae_s8)(dst)) < 0;
14236: int flgn = ((uae_s8)(newv)) < 0;
14237: SET_ZFLG (((uae_s8)(newv)) == 0);
14238: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
14239: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
14240: COPY_CARRY;
14241: SET_NFLG (flgn != 0);
14242: put_byte(dsta,newv);
14243: }}}}}}}m68k_incpc(2);
14244: return 14;
14245: }
14246: unsigned long REGPARAM2 CPUFUNC(op_5028_0)(uae_u32 opcode) /* ADD */
14247: {
14248: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14249: uae_u32 dstreg = opcode & 7;
14250: OpcodeFamily = 11; CurrentInstrCycles = 16;
14251: {{ uae_u32 src = srcreg;
14252: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
14253: { uae_s8 dst = get_byte(dsta);
14254: { refill_prefetch (m68k_getpc(), 2);
14255: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
14256: { int flgs = ((uae_s8)(src)) < 0;
14257: int flgo = ((uae_s8)(dst)) < 0;
14258: int flgn = ((uae_s8)(newv)) < 0;
14259: SET_ZFLG (((uae_s8)(newv)) == 0);
14260: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
14261: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
14262: COPY_CARRY;
14263: SET_NFLG (flgn != 0);
14264: put_byte(dsta,newv);
14265: }}}}}}}m68k_incpc(4);
14266: return 16;
14267: }
14268: unsigned long REGPARAM2 CPUFUNC(op_5030_0)(uae_u32 opcode) /* ADD */
14269: {
14270: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14271: uae_u32 dstreg = opcode & 7;
14272: OpcodeFamily = 11; CurrentInstrCycles = 18;
14273: {{ uae_u32 src = srcreg;
14274: {m68k_incpc(2);
14275: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
14276: BusCyclePenalty += 2;
14277: { uae_s8 dst = get_byte(dsta);
14278: { refill_prefetch (m68k_getpc(), 2);
14279: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
14280: { int flgs = ((uae_s8)(src)) < 0;
14281: int flgo = ((uae_s8)(dst)) < 0;
14282: int flgn = ((uae_s8)(newv)) < 0;
14283: SET_ZFLG (((uae_s8)(newv)) == 0);
14284: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
14285: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
14286: COPY_CARRY;
14287: SET_NFLG (flgn != 0);
14288: put_byte(dsta,newv);
14289: }}}}}}}}return 18;
14290: }
14291: unsigned long REGPARAM2 CPUFUNC(op_5038_0)(uae_u32 opcode) /* ADD */
14292: {
14293: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14294: OpcodeFamily = 11; CurrentInstrCycles = 16;
14295: {{ uae_u32 src = srcreg;
14296: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
14297: { uae_s8 dst = get_byte(dsta);
14298: { refill_prefetch (m68k_getpc(), 2);
14299: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
14300: { int flgs = ((uae_s8)(src)) < 0;
14301: int flgo = ((uae_s8)(dst)) < 0;
14302: int flgn = ((uae_s8)(newv)) < 0;
14303: SET_ZFLG (((uae_s8)(newv)) == 0);
14304: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
14305: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
14306: COPY_CARRY;
14307: SET_NFLG (flgn != 0);
14308: put_byte(dsta,newv);
14309: }}}}}}}m68k_incpc(4);
14310: return 16;
14311: }
14312: unsigned long REGPARAM2 CPUFUNC(op_5039_0)(uae_u32 opcode) /* ADD */
14313: {
14314: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14315: OpcodeFamily = 11; CurrentInstrCycles = 20;
14316: {{ uae_u32 src = srcreg;
14317: { uaecptr dsta = get_ilong(2);
14318: { uae_s8 dst = get_byte(dsta);
14319: { refill_prefetch (m68k_getpc(), 2);
14320: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
14321: { int flgs = ((uae_s8)(src)) < 0;
14322: int flgo = ((uae_s8)(dst)) < 0;
14323: int flgn = ((uae_s8)(newv)) < 0;
14324: SET_ZFLG (((uae_s8)(newv)) == 0);
14325: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
14326: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
14327: COPY_CARRY;
14328: SET_NFLG (flgn != 0);
14329: put_byte(dsta,newv);
14330: }}}}}}}m68k_incpc(6);
14331: return 20;
14332: }
14333: unsigned long REGPARAM2 CPUFUNC(op_5040_0)(uae_u32 opcode) /* ADD */
14334: {
14335: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14336: uae_u32 dstreg = opcode & 7;
14337: OpcodeFamily = 11; CurrentInstrCycles = 4;
14338: {{ uae_u32 src = srcreg;
14339: { uae_s16 dst = m68k_dreg(regs, dstreg);
14340: { refill_prefetch (m68k_getpc(), 2);
14341: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
14342: { int flgs = ((uae_s16)(src)) < 0;
14343: int flgo = ((uae_s16)(dst)) < 0;
14344: int flgn = ((uae_s16)(newv)) < 0;
14345: SET_ZFLG (((uae_s16)(newv)) == 0);
14346: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
14347: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
14348: COPY_CARRY;
14349: SET_NFLG (flgn != 0);
14350: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
14351: }}}}}}m68k_incpc(2);
14352: return 4;
14353: }
14354: unsigned long REGPARAM2 CPUFUNC(op_5048_0)(uae_u32 opcode) /* ADDA */
14355: {
14356: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14357: uae_u32 dstreg = opcode & 7;
14358: OpcodeFamily = 12; CurrentInstrCycles = 8;
14359: {{ uae_u32 src = srcreg;
14360: { uae_s32 dst = m68k_areg(regs, dstreg);
14361: { uae_u32 newv = dst + src;
14362: m68k_areg(regs, dstreg) = (newv);
14363: }}}}m68k_incpc(2);
14364: return 8;
14365: }
14366: unsigned long REGPARAM2 CPUFUNC(op_5050_0)(uae_u32 opcode) /* ADD */
14367: {
14368: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14369: uae_u32 dstreg = opcode & 7;
14370: OpcodeFamily = 11; CurrentInstrCycles = 12;
14371: {{ uae_u32 src = srcreg;
14372: { uaecptr dsta = m68k_areg(regs, dstreg);
14373: { uae_s16 dst = get_word(dsta);
14374: { refill_prefetch (m68k_getpc(), 2);
14375: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
14376: { int flgs = ((uae_s16)(src)) < 0;
14377: int flgo = ((uae_s16)(dst)) < 0;
14378: int flgn = ((uae_s16)(newv)) < 0;
14379: SET_ZFLG (((uae_s16)(newv)) == 0);
14380: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
14381: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
14382: COPY_CARRY;
14383: SET_NFLG (flgn != 0);
14384: put_word(dsta,newv);
14385: }}}}}}}m68k_incpc(2);
14386: return 12;
14387: }
14388: unsigned long REGPARAM2 CPUFUNC(op_5058_0)(uae_u32 opcode) /* ADD */
14389: {
14390: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14391: uae_u32 dstreg = opcode & 7;
14392: OpcodeFamily = 11; CurrentInstrCycles = 12;
14393: {{ uae_u32 src = srcreg;
14394: { uaecptr dsta = m68k_areg(regs, dstreg);
14395: { uae_s16 dst = get_word(dsta);
14396: m68k_areg(regs, dstreg) += 2;
14397: { refill_prefetch (m68k_getpc(), 2);
14398: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
14399: { int flgs = ((uae_s16)(src)) < 0;
14400: int flgo = ((uae_s16)(dst)) < 0;
14401: int flgn = ((uae_s16)(newv)) < 0;
14402: SET_ZFLG (((uae_s16)(newv)) == 0);
14403: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
14404: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
14405: COPY_CARRY;
14406: SET_NFLG (flgn != 0);
14407: put_word(dsta,newv);
14408: }}}}}}}m68k_incpc(2);
14409: return 12;
14410: }
14411: unsigned long REGPARAM2 CPUFUNC(op_5060_0)(uae_u32 opcode) /* ADD */
14412: {
14413: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14414: uae_u32 dstreg = opcode & 7;
14415: OpcodeFamily = 11; CurrentInstrCycles = 14;
14416: {{ uae_u32 src = srcreg;
14417: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
14418: { uae_s16 dst = get_word(dsta);
14419: m68k_areg (regs, dstreg) = dsta;
14420: { refill_prefetch (m68k_getpc(), 2);
14421: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
14422: { int flgs = ((uae_s16)(src)) < 0;
14423: int flgo = ((uae_s16)(dst)) < 0;
14424: int flgn = ((uae_s16)(newv)) < 0;
14425: SET_ZFLG (((uae_s16)(newv)) == 0);
14426: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
14427: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
14428: COPY_CARRY;
14429: SET_NFLG (flgn != 0);
14430: put_word(dsta,newv);
14431: }}}}}}}m68k_incpc(2);
14432: return 14;
14433: }
14434: unsigned long REGPARAM2 CPUFUNC(op_5068_0)(uae_u32 opcode) /* ADD */
14435: {
14436: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14437: uae_u32 dstreg = opcode & 7;
14438: OpcodeFamily = 11; CurrentInstrCycles = 16;
14439: {{ uae_u32 src = srcreg;
14440: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
14441: { uae_s16 dst = get_word(dsta);
14442: { refill_prefetch (m68k_getpc(), 2);
14443: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
14444: { int flgs = ((uae_s16)(src)) < 0;
14445: int flgo = ((uae_s16)(dst)) < 0;
14446: int flgn = ((uae_s16)(newv)) < 0;
14447: SET_ZFLG (((uae_s16)(newv)) == 0);
14448: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
14449: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
14450: COPY_CARRY;
14451: SET_NFLG (flgn != 0);
14452: put_word(dsta,newv);
14453: }}}}}}}m68k_incpc(4);
14454: return 16;
14455: }
14456: unsigned long REGPARAM2 CPUFUNC(op_5070_0)(uae_u32 opcode) /* ADD */
14457: {
14458: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14459: uae_u32 dstreg = opcode & 7;
14460: OpcodeFamily = 11; CurrentInstrCycles = 18;
14461: {{ uae_u32 src = srcreg;
14462: {m68k_incpc(2);
14463: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
14464: BusCyclePenalty += 2;
14465: { uae_s16 dst = get_word(dsta);
14466: { refill_prefetch (m68k_getpc(), 2);
14467: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
14468: { int flgs = ((uae_s16)(src)) < 0;
14469: int flgo = ((uae_s16)(dst)) < 0;
14470: int flgn = ((uae_s16)(newv)) < 0;
14471: SET_ZFLG (((uae_s16)(newv)) == 0);
14472: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
14473: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
14474: COPY_CARRY;
14475: SET_NFLG (flgn != 0);
14476: put_word(dsta,newv);
14477: }}}}}}}}return 18;
14478: }
14479: unsigned long REGPARAM2 CPUFUNC(op_5078_0)(uae_u32 opcode) /* ADD */
14480: {
14481: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14482: OpcodeFamily = 11; CurrentInstrCycles = 16;
14483: {{ uae_u32 src = srcreg;
14484: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
14485: { uae_s16 dst = get_word(dsta);
14486: { refill_prefetch (m68k_getpc(), 2);
14487: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
14488: { int flgs = ((uae_s16)(src)) < 0;
14489: int flgo = ((uae_s16)(dst)) < 0;
14490: int flgn = ((uae_s16)(newv)) < 0;
14491: SET_ZFLG (((uae_s16)(newv)) == 0);
14492: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
14493: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
14494: COPY_CARRY;
14495: SET_NFLG (flgn != 0);
14496: put_word(dsta,newv);
14497: }}}}}}}m68k_incpc(4);
14498: return 16;
14499: }
14500: unsigned long REGPARAM2 CPUFUNC(op_5079_0)(uae_u32 opcode) /* ADD */
14501: {
14502: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14503: OpcodeFamily = 11; CurrentInstrCycles = 20;
14504: {{ uae_u32 src = srcreg;
14505: { uaecptr dsta = get_ilong(2);
14506: { uae_s16 dst = get_word(dsta);
14507: { refill_prefetch (m68k_getpc(), 2);
14508: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
14509: { int flgs = ((uae_s16)(src)) < 0;
14510: int flgo = ((uae_s16)(dst)) < 0;
14511: int flgn = ((uae_s16)(newv)) < 0;
14512: SET_ZFLG (((uae_s16)(newv)) == 0);
14513: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
14514: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
14515: COPY_CARRY;
14516: SET_NFLG (flgn != 0);
14517: put_word(dsta,newv);
14518: }}}}}}}m68k_incpc(6);
14519: return 20;
14520: }
14521: unsigned long REGPARAM2 CPUFUNC(op_5080_0)(uae_u32 opcode) /* ADD */
14522: {
14523: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14524: uae_u32 dstreg = opcode & 7;
14525: OpcodeFamily = 11; CurrentInstrCycles = 8;
14526: {{ uae_u32 src = srcreg;
14527: { uae_s32 dst = m68k_dreg(regs, dstreg);
14528: { refill_prefetch (m68k_getpc(), 2);
14529: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
14530: { int flgs = ((uae_s32)(src)) < 0;
14531: int flgo = ((uae_s32)(dst)) < 0;
14532: int flgn = ((uae_s32)(newv)) < 0;
14533: SET_ZFLG (((uae_s32)(newv)) == 0);
14534: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
14535: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
14536: COPY_CARRY;
14537: SET_NFLG (flgn != 0);
14538: m68k_dreg(regs, dstreg) = (newv);
14539: }}}}}}m68k_incpc(2);
14540: return 8;
14541: }
14542: unsigned long REGPARAM2 CPUFUNC(op_5088_0)(uae_u32 opcode) /* ADDA */
14543: {
14544: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14545: uae_u32 dstreg = opcode & 7;
14546: OpcodeFamily = 12; CurrentInstrCycles = 8;
14547: {{ uae_u32 src = srcreg;
14548: { uae_s32 dst = m68k_areg(regs, dstreg);
14549: { uae_u32 newv = dst + src;
14550: m68k_areg(regs, dstreg) = (newv);
14551: }}}}m68k_incpc(2);
14552: return 8;
14553: }
14554: unsigned long REGPARAM2 CPUFUNC(op_5090_0)(uae_u32 opcode) /* ADD */
14555: {
14556: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14557: uae_u32 dstreg = opcode & 7;
14558: OpcodeFamily = 11; CurrentInstrCycles = 20;
14559: {{ uae_u32 src = srcreg;
14560: { uaecptr dsta = m68k_areg(regs, dstreg);
14561: { uae_s32 dst = get_long(dsta);
14562: { refill_prefetch (m68k_getpc(), 2);
14563: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
14564: { int flgs = ((uae_s32)(src)) < 0;
14565: int flgo = ((uae_s32)(dst)) < 0;
14566: int flgn = ((uae_s32)(newv)) < 0;
14567: SET_ZFLG (((uae_s32)(newv)) == 0);
14568: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
14569: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
14570: COPY_CARRY;
14571: SET_NFLG (flgn != 0);
14572: put_long(dsta,newv);
14573: }}}}}}}m68k_incpc(2);
14574: return 20;
14575: }
14576: unsigned long REGPARAM2 CPUFUNC(op_5098_0)(uae_u32 opcode) /* ADD */
14577: {
14578: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14579: uae_u32 dstreg = opcode & 7;
14580: OpcodeFamily = 11; CurrentInstrCycles = 20;
14581: {{ uae_u32 src = srcreg;
14582: { uaecptr dsta = m68k_areg(regs, dstreg);
14583: { uae_s32 dst = get_long(dsta);
14584: m68k_areg(regs, dstreg) += 4;
14585: { refill_prefetch (m68k_getpc(), 2);
14586: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
14587: { int flgs = ((uae_s32)(src)) < 0;
14588: int flgo = ((uae_s32)(dst)) < 0;
14589: int flgn = ((uae_s32)(newv)) < 0;
14590: SET_ZFLG (((uae_s32)(newv)) == 0);
14591: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
14592: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
14593: COPY_CARRY;
14594: SET_NFLG (flgn != 0);
14595: put_long(dsta,newv);
14596: }}}}}}}m68k_incpc(2);
14597: return 20;
14598: }
14599: unsigned long REGPARAM2 CPUFUNC(op_50a0_0)(uae_u32 opcode) /* ADD */
14600: {
14601: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14602: uae_u32 dstreg = opcode & 7;
14603: OpcodeFamily = 11; CurrentInstrCycles = 22;
14604: {{ uae_u32 src = srcreg;
14605: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
14606: { uae_s32 dst = get_long(dsta);
14607: m68k_areg (regs, dstreg) = dsta;
14608: { refill_prefetch (m68k_getpc(), 2);
14609: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
14610: { int flgs = ((uae_s32)(src)) < 0;
14611: int flgo = ((uae_s32)(dst)) < 0;
14612: int flgn = ((uae_s32)(newv)) < 0;
14613: SET_ZFLG (((uae_s32)(newv)) == 0);
14614: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
14615: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
14616: COPY_CARRY;
14617: SET_NFLG (flgn != 0);
14618: put_long(dsta,newv);
14619: }}}}}}}m68k_incpc(2);
14620: return 22;
14621: }
14622: unsigned long REGPARAM2 CPUFUNC(op_50a8_0)(uae_u32 opcode) /* ADD */
14623: {
14624: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14625: uae_u32 dstreg = opcode & 7;
14626: OpcodeFamily = 11; CurrentInstrCycles = 24;
14627: {{ uae_u32 src = srcreg;
14628: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
14629: { uae_s32 dst = get_long(dsta);
14630: { refill_prefetch (m68k_getpc(), 2);
14631: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
14632: { int flgs = ((uae_s32)(src)) < 0;
14633: int flgo = ((uae_s32)(dst)) < 0;
14634: int flgn = ((uae_s32)(newv)) < 0;
14635: SET_ZFLG (((uae_s32)(newv)) == 0);
14636: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
14637: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
14638: COPY_CARRY;
14639: SET_NFLG (flgn != 0);
14640: put_long(dsta,newv);
14641: }}}}}}}m68k_incpc(4);
14642: return 24;
14643: }
14644: unsigned long REGPARAM2 CPUFUNC(op_50b0_0)(uae_u32 opcode) /* ADD */
14645: {
14646: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14647: uae_u32 dstreg = opcode & 7;
14648: OpcodeFamily = 11; CurrentInstrCycles = 26;
14649: {{ uae_u32 src = srcreg;
14650: {m68k_incpc(2);
14651: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
14652: BusCyclePenalty += 2;
14653: { uae_s32 dst = get_long(dsta);
14654: { refill_prefetch (m68k_getpc(), 2);
14655: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
14656: { int flgs = ((uae_s32)(src)) < 0;
14657: int flgo = ((uae_s32)(dst)) < 0;
14658: int flgn = ((uae_s32)(newv)) < 0;
14659: SET_ZFLG (((uae_s32)(newv)) == 0);
14660: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
14661: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
14662: COPY_CARRY;
14663: SET_NFLG (flgn != 0);
14664: put_long(dsta,newv);
14665: }}}}}}}}return 26;
14666: }
14667: unsigned long REGPARAM2 CPUFUNC(op_50b8_0)(uae_u32 opcode) /* ADD */
14668: {
14669: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14670: OpcodeFamily = 11; CurrentInstrCycles = 24;
14671: {{ uae_u32 src = srcreg;
14672: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
14673: { uae_s32 dst = get_long(dsta);
14674: { refill_prefetch (m68k_getpc(), 2);
14675: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
14676: { int flgs = ((uae_s32)(src)) < 0;
14677: int flgo = ((uae_s32)(dst)) < 0;
14678: int flgn = ((uae_s32)(newv)) < 0;
14679: SET_ZFLG (((uae_s32)(newv)) == 0);
14680: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
14681: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
14682: COPY_CARRY;
14683: SET_NFLG (flgn != 0);
14684: put_long(dsta,newv);
14685: }}}}}}}m68k_incpc(4);
14686: return 24;
14687: }
14688: unsigned long REGPARAM2 CPUFUNC(op_50b9_0)(uae_u32 opcode) /* ADD */
14689: {
14690: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14691: OpcodeFamily = 11; CurrentInstrCycles = 28;
14692: {{ uae_u32 src = srcreg;
14693: { uaecptr dsta = get_ilong(2);
14694: { uae_s32 dst = get_long(dsta);
14695: { refill_prefetch (m68k_getpc(), 2);
14696: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
14697: { int flgs = ((uae_s32)(src)) < 0;
14698: int flgo = ((uae_s32)(dst)) < 0;
14699: int flgn = ((uae_s32)(newv)) < 0;
14700: SET_ZFLG (((uae_s32)(newv)) == 0);
14701: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
14702: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
14703: COPY_CARRY;
14704: SET_NFLG (flgn != 0);
14705: put_long(dsta,newv);
14706: }}}}}}}m68k_incpc(6);
14707: return 28;
14708: }
14709: unsigned long REGPARAM2 CPUFUNC(op_50c0_0)(uae_u32 opcode) /* Scc */
14710: {
14711: uae_u32 srcreg = (opcode & 7);
14712: OpcodeFamily = 59; CurrentInstrCycles = 4;
14713: {{{ int val = cctrue(0) ? 0xff : 0;
14714: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
14715: if (val) { m68k_incpc(2) ; return 4+2; }
14716: }}}m68k_incpc(2);
14717: return 4;
14718: }
14719: unsigned long REGPARAM2 CPUFUNC(op_50c8_0)(uae_u32 opcode) /* DBcc */
14720: {
14721: uae_u32 srcreg = (opcode & 7);
14722: OpcodeFamily = 58; CurrentInstrCycles = 12;
14723: {{ uae_s16 src = m68k_dreg(regs, srcreg);
14724: { uae_s16 offs = get_iword(2);
14725: if (!cctrue(0)) {
14726: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
14727: if (src) {
14728: m68k_incpc((uae_s32)offs + 2);
14729: return 10;
14730: } else {
14731: m68k_incpc(4);
14732: return 14;
14733: }
14734: }
14735: }}}m68k_incpc(4);
14736: endlabel962: ;
14737: return 12;
14738: }
14739: unsigned long REGPARAM2 CPUFUNC(op_50d0_0)(uae_u32 opcode) /* Scc */
14740: {
14741: uae_u32 srcreg = (opcode & 7);
14742: OpcodeFamily = 59; CurrentInstrCycles = 12;
14743: {{ uaecptr srca = m68k_areg(regs, srcreg);
14744: { int val = cctrue(0) ? 0xff : 0;
14745: put_byte(srca,val);
14746: }}}m68k_incpc(2);
14747: return 12;
14748: }
14749: unsigned long REGPARAM2 CPUFUNC(op_50d8_0)(uae_u32 opcode) /* Scc */
14750: {
14751: uae_u32 srcreg = (opcode & 7);
14752: OpcodeFamily = 59; CurrentInstrCycles = 12;
14753: {{ uaecptr srca = m68k_areg(regs, srcreg);
14754: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
14755: { int val = cctrue(0) ? 0xff : 0;
14756: put_byte(srca,val);
14757: }}}m68k_incpc(2);
14758: return 12;
14759: }
14760: unsigned long REGPARAM2 CPUFUNC(op_50e0_0)(uae_u32 opcode) /* Scc */
14761: {
14762: uae_u32 srcreg = (opcode & 7);
14763: OpcodeFamily = 59; CurrentInstrCycles = 14;
14764: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
14765: m68k_areg (regs, srcreg) = srca;
14766: { int val = cctrue(0) ? 0xff : 0;
14767: put_byte(srca,val);
14768: }}}m68k_incpc(2);
14769: return 14;
14770: }
14771: unsigned long REGPARAM2 CPUFUNC(op_50e8_0)(uae_u32 opcode) /* Scc */
14772: {
14773: uae_u32 srcreg = (opcode & 7);
14774: OpcodeFamily = 59; CurrentInstrCycles = 16;
14775: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
14776: { int val = cctrue(0) ? 0xff : 0;
14777: put_byte(srca,val);
14778: }}}m68k_incpc(4);
14779: return 16;
14780: }
14781: unsigned long REGPARAM2 CPUFUNC(op_50f0_0)(uae_u32 opcode) /* Scc */
14782: {
14783: uae_u32 srcreg = (opcode & 7);
14784: OpcodeFamily = 59; CurrentInstrCycles = 18;
14785: {{m68k_incpc(2);
14786: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
14787: BusCyclePenalty += 2;
14788: { int val = cctrue(0) ? 0xff : 0;
14789: put_byte(srca,val);
14790: }}}}return 18;
14791: }
14792: unsigned long REGPARAM2 CPUFUNC(op_50f8_0)(uae_u32 opcode) /* Scc */
14793: {
14794: OpcodeFamily = 59; CurrentInstrCycles = 16;
14795: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
14796: { int val = cctrue(0) ? 0xff : 0;
14797: put_byte(srca,val);
14798: }}}m68k_incpc(4);
14799: return 16;
14800: }
14801: unsigned long REGPARAM2 CPUFUNC(op_50f9_0)(uae_u32 opcode) /* Scc */
14802: {
14803: OpcodeFamily = 59; CurrentInstrCycles = 20;
14804: {{ uaecptr srca = get_ilong(2);
14805: { int val = cctrue(0) ? 0xff : 0;
14806: put_byte(srca,val);
14807: }}}m68k_incpc(6);
14808: return 20;
14809: }
14810: unsigned long REGPARAM2 CPUFUNC(op_50fa_0)(uae_u32 opcode) /* TRAPcc */
14811: {
14812: OpcodeFamily = 102; CurrentInstrCycles = 8;
14813: {{ uae_s16 dummy = get_iword(2);
14814: if (cctrue(0)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel970; }
14815: }}m68k_incpc(4);
14816: endlabel970: ;
14817: return 8;
14818: }
14819: unsigned long REGPARAM2 CPUFUNC(op_50fb_0)(uae_u32 opcode) /* TRAPcc */
14820: {
14821: OpcodeFamily = 102; CurrentInstrCycles = 12;
14822: {{ uae_s32 dummy = get_ilong(2);
14823: if (cctrue(0)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel971; }
14824: }}m68k_incpc(6);
14825: endlabel971: ;
14826: return 12;
14827: }
14828: unsigned long REGPARAM2 CPUFUNC(op_50fc_0)(uae_u32 opcode) /* TRAPcc */
14829: {
14830: OpcodeFamily = 102; CurrentInstrCycles = 4;
14831: { if (cctrue(0)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel972; }
14832: }m68k_incpc(2);
14833: endlabel972: ;
14834: return 4;
14835: }
14836: unsigned long REGPARAM2 CPUFUNC(op_5100_0)(uae_u32 opcode) /* SUB */
14837: {
14838: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14839: uae_u32 dstreg = opcode & 7;
14840: OpcodeFamily = 7; CurrentInstrCycles = 4;
14841: {{ uae_u32 src = srcreg;
14842: { uae_s8 dst = m68k_dreg(regs, dstreg);
14843: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
14844: { int flgs = ((uae_s8)(src)) < 0;
14845: int flgo = ((uae_s8)(dst)) < 0;
14846: int flgn = ((uae_s8)(newv)) < 0;
14847: SET_ZFLG (((uae_s8)(newv)) == 0);
14848: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
14849: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
14850: COPY_CARRY;
14851: SET_NFLG (flgn != 0);
14852: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
14853: }}}}}}m68k_incpc(2);
14854: return 4;
14855: }
14856: unsigned long REGPARAM2 CPUFUNC(op_5110_0)(uae_u32 opcode) /* SUB */
14857: {
14858: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14859: uae_u32 dstreg = opcode & 7;
14860: OpcodeFamily = 7; CurrentInstrCycles = 12;
14861: {{ uae_u32 src = srcreg;
14862: { uaecptr dsta = m68k_areg(regs, dstreg);
14863: { uae_s8 dst = get_byte(dsta);
14864: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
14865: { int flgs = ((uae_s8)(src)) < 0;
14866: int flgo = ((uae_s8)(dst)) < 0;
14867: int flgn = ((uae_s8)(newv)) < 0;
14868: SET_ZFLG (((uae_s8)(newv)) == 0);
14869: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
14870: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
14871: COPY_CARRY;
14872: SET_NFLG (flgn != 0);
14873: put_byte(dsta,newv);
14874: }}}}}}}m68k_incpc(2);
14875: return 12;
14876: }
14877: unsigned long REGPARAM2 CPUFUNC(op_5118_0)(uae_u32 opcode) /* SUB */
14878: {
14879: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14880: uae_u32 dstreg = opcode & 7;
14881: OpcodeFamily = 7; CurrentInstrCycles = 12;
14882: {{ uae_u32 src = srcreg;
14883: { uaecptr dsta = m68k_areg(regs, dstreg);
14884: { uae_s8 dst = get_byte(dsta);
14885: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
14886: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
14887: { int flgs = ((uae_s8)(src)) < 0;
14888: int flgo = ((uae_s8)(dst)) < 0;
14889: int flgn = ((uae_s8)(newv)) < 0;
14890: SET_ZFLG (((uae_s8)(newv)) == 0);
14891: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
14892: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
14893: COPY_CARRY;
14894: SET_NFLG (flgn != 0);
14895: put_byte(dsta,newv);
14896: }}}}}}}m68k_incpc(2);
14897: return 12;
14898: }
14899: unsigned long REGPARAM2 CPUFUNC(op_5120_0)(uae_u32 opcode) /* SUB */
14900: {
14901: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14902: uae_u32 dstreg = opcode & 7;
14903: OpcodeFamily = 7; CurrentInstrCycles = 14;
14904: {{ uae_u32 src = srcreg;
14905: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
14906: { uae_s8 dst = get_byte(dsta);
14907: m68k_areg (regs, dstreg) = dsta;
14908: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
14909: { int flgs = ((uae_s8)(src)) < 0;
14910: int flgo = ((uae_s8)(dst)) < 0;
14911: int flgn = ((uae_s8)(newv)) < 0;
14912: SET_ZFLG (((uae_s8)(newv)) == 0);
14913: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
14914: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
14915: COPY_CARRY;
14916: SET_NFLG (flgn != 0);
14917: put_byte(dsta,newv);
14918: }}}}}}}m68k_incpc(2);
14919: return 14;
14920: }
14921: unsigned long REGPARAM2 CPUFUNC(op_5128_0)(uae_u32 opcode) /* SUB */
14922: {
14923: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14924: uae_u32 dstreg = opcode & 7;
14925: OpcodeFamily = 7; CurrentInstrCycles = 16;
14926: {{ uae_u32 src = srcreg;
14927: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
14928: { uae_s8 dst = get_byte(dsta);
14929: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
14930: { int flgs = ((uae_s8)(src)) < 0;
14931: int flgo = ((uae_s8)(dst)) < 0;
14932: int flgn = ((uae_s8)(newv)) < 0;
14933: SET_ZFLG (((uae_s8)(newv)) == 0);
14934: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
14935: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
14936: COPY_CARRY;
14937: SET_NFLG (flgn != 0);
14938: put_byte(dsta,newv);
14939: }}}}}}}m68k_incpc(4);
14940: return 16;
14941: }
14942: unsigned long REGPARAM2 CPUFUNC(op_5130_0)(uae_u32 opcode) /* SUB */
14943: {
14944: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14945: uae_u32 dstreg = opcode & 7;
14946: OpcodeFamily = 7; CurrentInstrCycles = 18;
14947: {{ uae_u32 src = srcreg;
14948: {m68k_incpc(2);
14949: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
14950: BusCyclePenalty += 2;
14951: { uae_s8 dst = get_byte(dsta);
14952: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
14953: { int flgs = ((uae_s8)(src)) < 0;
14954: int flgo = ((uae_s8)(dst)) < 0;
14955: int flgn = ((uae_s8)(newv)) < 0;
14956: SET_ZFLG (((uae_s8)(newv)) == 0);
14957: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
14958: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
14959: COPY_CARRY;
14960: SET_NFLG (flgn != 0);
14961: put_byte(dsta,newv);
14962: }}}}}}}}return 18;
14963: }
14964: unsigned long REGPARAM2 CPUFUNC(op_5138_0)(uae_u32 opcode) /* SUB */
14965: {
14966: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14967: OpcodeFamily = 7; CurrentInstrCycles = 16;
14968: {{ uae_u32 src = srcreg;
14969: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
14970: { uae_s8 dst = get_byte(dsta);
14971: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
14972: { int flgs = ((uae_s8)(src)) < 0;
14973: int flgo = ((uae_s8)(dst)) < 0;
14974: int flgn = ((uae_s8)(newv)) < 0;
14975: SET_ZFLG (((uae_s8)(newv)) == 0);
14976: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
14977: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
14978: COPY_CARRY;
14979: SET_NFLG (flgn != 0);
14980: put_byte(dsta,newv);
14981: }}}}}}}m68k_incpc(4);
14982: return 16;
14983: }
14984: unsigned long REGPARAM2 CPUFUNC(op_5139_0)(uae_u32 opcode) /* SUB */
14985: {
14986: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
14987: OpcodeFamily = 7; CurrentInstrCycles = 20;
14988: {{ uae_u32 src = srcreg;
14989: { uaecptr dsta = get_ilong(2);
14990: { uae_s8 dst = get_byte(dsta);
14991: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
14992: { int flgs = ((uae_s8)(src)) < 0;
14993: int flgo = ((uae_s8)(dst)) < 0;
14994: int flgn = ((uae_s8)(newv)) < 0;
14995: SET_ZFLG (((uae_s8)(newv)) == 0);
14996: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
14997: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
14998: COPY_CARRY;
14999: SET_NFLG (flgn != 0);
15000: put_byte(dsta,newv);
15001: }}}}}}}m68k_incpc(6);
15002: return 20;
15003: }
15004: unsigned long REGPARAM2 CPUFUNC(op_5140_0)(uae_u32 opcode) /* SUB */
15005: {
15006: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
15007: uae_u32 dstreg = opcode & 7;
15008: OpcodeFamily = 7; CurrentInstrCycles = 4;
15009: {{ uae_u32 src = srcreg;
15010: { uae_s16 dst = m68k_dreg(regs, dstreg);
15011: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
15012: { int flgs = ((uae_s16)(src)) < 0;
15013: int flgo = ((uae_s16)(dst)) < 0;
15014: int flgn = ((uae_s16)(newv)) < 0;
15015: SET_ZFLG (((uae_s16)(newv)) == 0);
15016: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
15017: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
15018: COPY_CARRY;
15019: SET_NFLG (flgn != 0);
15020: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
15021: }}}}}}m68k_incpc(2);
15022: return 4;
15023: }
15024: unsigned long REGPARAM2 CPUFUNC(op_5148_0)(uae_u32 opcode) /* SUBA */
15025: {
15026: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
15027: uae_u32 dstreg = opcode & 7;
15028: OpcodeFamily = 8; CurrentInstrCycles = 8;
15029: {{ uae_u32 src = srcreg;
15030: { uae_s32 dst = m68k_areg(regs, dstreg);
15031: { uae_u32 newv = dst - src;
15032: m68k_areg(regs, dstreg) = (newv);
15033: }}}}m68k_incpc(2);
15034: return 8;
15035: }
15036: unsigned long REGPARAM2 CPUFUNC(op_5150_0)(uae_u32 opcode) /* SUB */
15037: {
15038: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
15039: uae_u32 dstreg = opcode & 7;
15040: OpcodeFamily = 7; CurrentInstrCycles = 12;
15041: {{ uae_u32 src = srcreg;
15042: { uaecptr dsta = m68k_areg(regs, dstreg);
15043: { uae_s16 dst = get_word(dsta);
15044: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
15045: { int flgs = ((uae_s16)(src)) < 0;
15046: int flgo = ((uae_s16)(dst)) < 0;
15047: int flgn = ((uae_s16)(newv)) < 0;
15048: SET_ZFLG (((uae_s16)(newv)) == 0);
15049: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
15050: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
15051: COPY_CARRY;
15052: SET_NFLG (flgn != 0);
15053: put_word(dsta,newv);
15054: }}}}}}}m68k_incpc(2);
15055: return 12;
15056: }
15057: unsigned long REGPARAM2 CPUFUNC(op_5158_0)(uae_u32 opcode) /* SUB */
15058: {
15059: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
15060: uae_u32 dstreg = opcode & 7;
15061: OpcodeFamily = 7; CurrentInstrCycles = 12;
15062: {{ uae_u32 src = srcreg;
15063: { uaecptr dsta = m68k_areg(regs, dstreg);
15064: { uae_s16 dst = get_word(dsta);
15065: m68k_areg(regs, dstreg) += 2;
15066: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
15067: { int flgs = ((uae_s16)(src)) < 0;
15068: int flgo = ((uae_s16)(dst)) < 0;
15069: int flgn = ((uae_s16)(newv)) < 0;
15070: SET_ZFLG (((uae_s16)(newv)) == 0);
15071: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
15072: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
15073: COPY_CARRY;
15074: SET_NFLG (flgn != 0);
15075: put_word(dsta,newv);
15076: }}}}}}}m68k_incpc(2);
15077: return 12;
15078: }
15079: unsigned long REGPARAM2 CPUFUNC(op_5160_0)(uae_u32 opcode) /* SUB */
15080: {
15081: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
15082: uae_u32 dstreg = opcode & 7;
15083: OpcodeFamily = 7; CurrentInstrCycles = 14;
15084: {{ uae_u32 src = srcreg;
15085: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
15086: { uae_s16 dst = get_word(dsta);
15087: m68k_areg (regs, dstreg) = dsta;
15088: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
15089: { int flgs = ((uae_s16)(src)) < 0;
15090: int flgo = ((uae_s16)(dst)) < 0;
15091: int flgn = ((uae_s16)(newv)) < 0;
15092: SET_ZFLG (((uae_s16)(newv)) == 0);
15093: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
15094: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
15095: COPY_CARRY;
15096: SET_NFLG (flgn != 0);
15097: put_word(dsta,newv);
15098: }}}}}}}m68k_incpc(2);
15099: return 14;
15100: }
15101: unsigned long REGPARAM2 CPUFUNC(op_5168_0)(uae_u32 opcode) /* SUB */
15102: {
15103: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
15104: uae_u32 dstreg = opcode & 7;
15105: OpcodeFamily = 7; CurrentInstrCycles = 16;
15106: {{ uae_u32 src = srcreg;
15107: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
15108: { uae_s16 dst = get_word(dsta);
15109: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
15110: { int flgs = ((uae_s16)(src)) < 0;
15111: int flgo = ((uae_s16)(dst)) < 0;
15112: int flgn = ((uae_s16)(newv)) < 0;
15113: SET_ZFLG (((uae_s16)(newv)) == 0);
15114: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
15115: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
15116: COPY_CARRY;
15117: SET_NFLG (flgn != 0);
15118: put_word(dsta,newv);
15119: }}}}}}}m68k_incpc(4);
15120: return 16;
15121: }
15122: unsigned long REGPARAM2 CPUFUNC(op_5170_0)(uae_u32 opcode) /* SUB */
15123: {
15124: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
15125: uae_u32 dstreg = opcode & 7;
15126: OpcodeFamily = 7; CurrentInstrCycles = 18;
15127: {{ uae_u32 src = srcreg;
15128: {m68k_incpc(2);
15129: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
15130: BusCyclePenalty += 2;
15131: { uae_s16 dst = get_word(dsta);
15132: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
15133: { int flgs = ((uae_s16)(src)) < 0;
15134: int flgo = ((uae_s16)(dst)) < 0;
15135: int flgn = ((uae_s16)(newv)) < 0;
15136: SET_ZFLG (((uae_s16)(newv)) == 0);
15137: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
15138: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
15139: COPY_CARRY;
15140: SET_NFLG (flgn != 0);
15141: put_word(dsta,newv);
15142: }}}}}}}}return 18;
15143: }
15144: unsigned long REGPARAM2 CPUFUNC(op_5178_0)(uae_u32 opcode) /* SUB */
15145: {
15146: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
15147: OpcodeFamily = 7; CurrentInstrCycles = 16;
15148: {{ uae_u32 src = srcreg;
15149: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
15150: { uae_s16 dst = get_word(dsta);
15151: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
15152: { int flgs = ((uae_s16)(src)) < 0;
15153: int flgo = ((uae_s16)(dst)) < 0;
15154: int flgn = ((uae_s16)(newv)) < 0;
15155: SET_ZFLG (((uae_s16)(newv)) == 0);
15156: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
15157: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
15158: COPY_CARRY;
15159: SET_NFLG (flgn != 0);
15160: put_word(dsta,newv);
15161: }}}}}}}m68k_incpc(4);
15162: return 16;
15163: }
15164: unsigned long REGPARAM2 CPUFUNC(op_5179_0)(uae_u32 opcode) /* SUB */
15165: {
15166: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
15167: OpcodeFamily = 7; CurrentInstrCycles = 20;
15168: {{ uae_u32 src = srcreg;
15169: { uaecptr dsta = get_ilong(2);
15170: { uae_s16 dst = get_word(dsta);
15171: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
15172: { int flgs = ((uae_s16)(src)) < 0;
15173: int flgo = ((uae_s16)(dst)) < 0;
15174: int flgn = ((uae_s16)(newv)) < 0;
15175: SET_ZFLG (((uae_s16)(newv)) == 0);
15176: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
15177: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
15178: COPY_CARRY;
15179: SET_NFLG (flgn != 0);
15180: put_word(dsta,newv);
15181: }}}}}}}m68k_incpc(6);
15182: return 20;
15183: }
15184: unsigned long REGPARAM2 CPUFUNC(op_5180_0)(uae_u32 opcode) /* SUB */
15185: {
15186: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
15187: uae_u32 dstreg = opcode & 7;
15188: OpcodeFamily = 7; CurrentInstrCycles = 8;
15189: {{ uae_u32 src = srcreg;
15190: { uae_s32 dst = m68k_dreg(regs, dstreg);
15191: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
15192: { int flgs = ((uae_s32)(src)) < 0;
15193: int flgo = ((uae_s32)(dst)) < 0;
15194: int flgn = ((uae_s32)(newv)) < 0;
15195: SET_ZFLG (((uae_s32)(newv)) == 0);
15196: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
15197: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
15198: COPY_CARRY;
15199: SET_NFLG (flgn != 0);
15200: m68k_dreg(regs, dstreg) = (newv);
15201: }}}}}}m68k_incpc(2);
15202: return 8;
15203: }
15204: unsigned long REGPARAM2 CPUFUNC(op_5188_0)(uae_u32 opcode) /* SUBA */
15205: {
15206: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
15207: uae_u32 dstreg = opcode & 7;
15208: OpcodeFamily = 8; CurrentInstrCycles = 8;
15209: {{ uae_u32 src = srcreg;
15210: { uae_s32 dst = m68k_areg(regs, dstreg);
15211: { uae_u32 newv = dst - src;
15212: m68k_areg(regs, dstreg) = (newv);
15213: }}}}m68k_incpc(2);
15214: return 8;
15215: }
15216: unsigned long REGPARAM2 CPUFUNC(op_5190_0)(uae_u32 opcode) /* SUB */
15217: {
15218: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
15219: uae_u32 dstreg = opcode & 7;
15220: OpcodeFamily = 7; CurrentInstrCycles = 20;
15221: {{ uae_u32 src = srcreg;
15222: { uaecptr dsta = m68k_areg(regs, dstreg);
15223: { uae_s32 dst = get_long(dsta);
15224: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
15225: { int flgs = ((uae_s32)(src)) < 0;
15226: int flgo = ((uae_s32)(dst)) < 0;
15227: int flgn = ((uae_s32)(newv)) < 0;
15228: SET_ZFLG (((uae_s32)(newv)) == 0);
15229: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
15230: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
15231: COPY_CARRY;
15232: SET_NFLG (flgn != 0);
15233: put_long(dsta,newv);
15234: }}}}}}}m68k_incpc(2);
15235: return 20;
15236: }
15237: unsigned long REGPARAM2 CPUFUNC(op_5198_0)(uae_u32 opcode) /* SUB */
15238: {
15239: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
15240: uae_u32 dstreg = opcode & 7;
15241: OpcodeFamily = 7; CurrentInstrCycles = 20;
15242: {{ uae_u32 src = srcreg;
15243: { uaecptr dsta = m68k_areg(regs, dstreg);
15244: { uae_s32 dst = get_long(dsta);
15245: m68k_areg(regs, dstreg) += 4;
15246: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
15247: { int flgs = ((uae_s32)(src)) < 0;
15248: int flgo = ((uae_s32)(dst)) < 0;
15249: int flgn = ((uae_s32)(newv)) < 0;
15250: SET_ZFLG (((uae_s32)(newv)) == 0);
15251: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
15252: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
15253: COPY_CARRY;
15254: SET_NFLG (flgn != 0);
15255: put_long(dsta,newv);
15256: }}}}}}}m68k_incpc(2);
15257: return 20;
15258: }
15259: unsigned long REGPARAM2 CPUFUNC(op_51a0_0)(uae_u32 opcode) /* SUB */
15260: {
15261: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
15262: uae_u32 dstreg = opcode & 7;
15263: OpcodeFamily = 7; CurrentInstrCycles = 22;
15264: {{ uae_u32 src = srcreg;
15265: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
15266: { uae_s32 dst = get_long(dsta);
15267: m68k_areg (regs, dstreg) = dsta;
15268: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
15269: { int flgs = ((uae_s32)(src)) < 0;
15270: int flgo = ((uae_s32)(dst)) < 0;
15271: int flgn = ((uae_s32)(newv)) < 0;
15272: SET_ZFLG (((uae_s32)(newv)) == 0);
15273: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
15274: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
15275: COPY_CARRY;
15276: SET_NFLG (flgn != 0);
15277: put_long(dsta,newv);
15278: }}}}}}}m68k_incpc(2);
15279: return 22;
15280: }
15281: unsigned long REGPARAM2 CPUFUNC(op_51a8_0)(uae_u32 opcode) /* SUB */
15282: {
15283: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
15284: uae_u32 dstreg = opcode & 7;
15285: OpcodeFamily = 7; CurrentInstrCycles = 24;
15286: {{ uae_u32 src = srcreg;
15287: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
15288: { uae_s32 dst = get_long(dsta);
15289: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
15290: { int flgs = ((uae_s32)(src)) < 0;
15291: int flgo = ((uae_s32)(dst)) < 0;
15292: int flgn = ((uae_s32)(newv)) < 0;
15293: SET_ZFLG (((uae_s32)(newv)) == 0);
15294: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
15295: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
15296: COPY_CARRY;
15297: SET_NFLG (flgn != 0);
15298: put_long(dsta,newv);
15299: }}}}}}}m68k_incpc(4);
15300: return 24;
15301: }
15302: unsigned long REGPARAM2 CPUFUNC(op_51b0_0)(uae_u32 opcode) /* SUB */
15303: {
15304: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
15305: uae_u32 dstreg = opcode & 7;
15306: OpcodeFamily = 7; CurrentInstrCycles = 26;
15307: {{ uae_u32 src = srcreg;
15308: {m68k_incpc(2);
15309: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
15310: BusCyclePenalty += 2;
15311: { uae_s32 dst = get_long(dsta);
15312: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
15313: { int flgs = ((uae_s32)(src)) < 0;
15314: int flgo = ((uae_s32)(dst)) < 0;
15315: int flgn = ((uae_s32)(newv)) < 0;
15316: SET_ZFLG (((uae_s32)(newv)) == 0);
15317: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
15318: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
15319: COPY_CARRY;
15320: SET_NFLG (flgn != 0);
15321: put_long(dsta,newv);
15322: }}}}}}}}return 26;
15323: }
15324: unsigned long REGPARAM2 CPUFUNC(op_51b8_0)(uae_u32 opcode) /* SUB */
15325: {
15326: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
15327: OpcodeFamily = 7; CurrentInstrCycles = 24;
15328: {{ uae_u32 src = srcreg;
15329: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
15330: { uae_s32 dst = get_long(dsta);
15331: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
15332: { int flgs = ((uae_s32)(src)) < 0;
15333: int flgo = ((uae_s32)(dst)) < 0;
15334: int flgn = ((uae_s32)(newv)) < 0;
15335: SET_ZFLG (((uae_s32)(newv)) == 0);
15336: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
15337: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
15338: COPY_CARRY;
15339: SET_NFLG (flgn != 0);
15340: put_long(dsta,newv);
15341: }}}}}}}m68k_incpc(4);
15342: return 24;
15343: }
15344: unsigned long REGPARAM2 CPUFUNC(op_51b9_0)(uae_u32 opcode) /* SUB */
15345: {
15346: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
15347: OpcodeFamily = 7; CurrentInstrCycles = 28;
15348: {{ uae_u32 src = srcreg;
15349: { uaecptr dsta = get_ilong(2);
15350: { uae_s32 dst = get_long(dsta);
15351: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
15352: { int flgs = ((uae_s32)(src)) < 0;
15353: int flgo = ((uae_s32)(dst)) < 0;
15354: int flgn = ((uae_s32)(newv)) < 0;
15355: SET_ZFLG (((uae_s32)(newv)) == 0);
15356: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
15357: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
15358: COPY_CARRY;
15359: SET_NFLG (flgn != 0);
15360: put_long(dsta,newv);
15361: }}}}}}}m68k_incpc(6);
15362: return 28;
15363: }
15364: unsigned long REGPARAM2 CPUFUNC(op_51c0_0)(uae_u32 opcode) /* Scc */
15365: {
15366: uae_u32 srcreg = (opcode & 7);
15367: OpcodeFamily = 59; CurrentInstrCycles = 4;
15368: {{{ int val = cctrue(1) ? 0xff : 0;
15369: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
15370: if (val) { m68k_incpc(2) ; return 4+2; }
15371: }}}m68k_incpc(2);
15372: return 4;
15373: }
15374: unsigned long REGPARAM2 CPUFUNC(op_51c8_0)(uae_u32 opcode) /* DBcc */
15375: {
15376: uae_u32 srcreg = (opcode & 7);
15377: OpcodeFamily = 58; CurrentInstrCycles = 12;
15378: {{ uae_s16 src = m68k_dreg(regs, srcreg);
15379: { uae_s16 offs = get_iword(2);
15380: if (!cctrue(1)) {
15381: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
15382: if (src) {
15383: m68k_incpc((uae_s32)offs + 2);
15384: return 10;
15385: } else {
15386: m68k_incpc(4);
15387: return 14;
15388: }
15389: }
15390: }}}m68k_incpc(4);
15391: endlabel1000: ;
15392: return 12;
15393: }
15394: unsigned long REGPARAM2 CPUFUNC(op_51d0_0)(uae_u32 opcode) /* Scc */
15395: {
15396: uae_u32 srcreg = (opcode & 7);
15397: OpcodeFamily = 59; CurrentInstrCycles = 12;
15398: {{ uaecptr srca = m68k_areg(regs, srcreg);
15399: { int val = cctrue(1) ? 0xff : 0;
15400: put_byte(srca,val);
15401: }}}m68k_incpc(2);
15402: return 12;
15403: }
15404: unsigned long REGPARAM2 CPUFUNC(op_51d8_0)(uae_u32 opcode) /* Scc */
15405: {
15406: uae_u32 srcreg = (opcode & 7);
15407: OpcodeFamily = 59; CurrentInstrCycles = 12;
15408: {{ uaecptr srca = m68k_areg(regs, srcreg);
15409: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
15410: { int val = cctrue(1) ? 0xff : 0;
15411: put_byte(srca,val);
15412: }}}m68k_incpc(2);
15413: return 12;
15414: }
15415: unsigned long REGPARAM2 CPUFUNC(op_51e0_0)(uae_u32 opcode) /* Scc */
15416: {
15417: uae_u32 srcreg = (opcode & 7);
15418: OpcodeFamily = 59; CurrentInstrCycles = 14;
15419: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
15420: m68k_areg (regs, srcreg) = srca;
15421: { int val = cctrue(1) ? 0xff : 0;
15422: put_byte(srca,val);
15423: }}}m68k_incpc(2);
15424: return 14;
15425: }
15426: unsigned long REGPARAM2 CPUFUNC(op_51e8_0)(uae_u32 opcode) /* Scc */
15427: {
15428: uae_u32 srcreg = (opcode & 7);
15429: OpcodeFamily = 59; CurrentInstrCycles = 16;
15430: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
15431: { int val = cctrue(1) ? 0xff : 0;
15432: put_byte(srca,val);
15433: }}}m68k_incpc(4);
15434: return 16;
15435: }
15436: unsigned long REGPARAM2 CPUFUNC(op_51f0_0)(uae_u32 opcode) /* Scc */
15437: {
15438: uae_u32 srcreg = (opcode & 7);
15439: OpcodeFamily = 59; CurrentInstrCycles = 18;
15440: {{m68k_incpc(2);
15441: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
15442: BusCyclePenalty += 2;
15443: { int val = cctrue(1) ? 0xff : 0;
15444: put_byte(srca,val);
15445: }}}}return 18;
15446: }
15447: unsigned long REGPARAM2 CPUFUNC(op_51f8_0)(uae_u32 opcode) /* Scc */
15448: {
15449: OpcodeFamily = 59; CurrentInstrCycles = 16;
15450: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
15451: { int val = cctrue(1) ? 0xff : 0;
15452: put_byte(srca,val);
15453: }}}m68k_incpc(4);
15454: return 16;
15455: }
15456: unsigned long REGPARAM2 CPUFUNC(op_51f9_0)(uae_u32 opcode) /* Scc */
15457: {
15458: OpcodeFamily = 59; CurrentInstrCycles = 20;
15459: {{ uaecptr srca = get_ilong(2);
15460: { int val = cctrue(1) ? 0xff : 0;
15461: put_byte(srca,val);
15462: }}}m68k_incpc(6);
15463: return 20;
15464: }
15465: unsigned long REGPARAM2 CPUFUNC(op_51fa_0)(uae_u32 opcode) /* TRAPcc */
15466: {
15467: OpcodeFamily = 102; CurrentInstrCycles = 8;
15468: {{ uae_s16 dummy = get_iword(2);
15469: if (cctrue(1)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1008; }
15470: }}m68k_incpc(4);
15471: endlabel1008: ;
15472: return 8;
15473: }
15474: unsigned long REGPARAM2 CPUFUNC(op_51fb_0)(uae_u32 opcode) /* TRAPcc */
15475: {
15476: OpcodeFamily = 102; CurrentInstrCycles = 12;
15477: {{ uae_s32 dummy = get_ilong(2);
15478: if (cctrue(1)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1009; }
15479: }}m68k_incpc(6);
15480: endlabel1009: ;
15481: return 12;
15482: }
15483: unsigned long REGPARAM2 CPUFUNC(op_51fc_0)(uae_u32 opcode) /* TRAPcc */
15484: {
15485: OpcodeFamily = 102; CurrentInstrCycles = 4;
15486: { if (cctrue(1)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1010; }
15487: }m68k_incpc(2);
15488: endlabel1010: ;
15489: return 4;
15490: }
15491: unsigned long REGPARAM2 CPUFUNC(op_52c0_0)(uae_u32 opcode) /* Scc */
15492: {
15493: uae_u32 srcreg = (opcode & 7);
15494: OpcodeFamily = 59; CurrentInstrCycles = 4;
15495: {{{ int val = cctrue(2) ? 0xff : 0;
15496: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
15497: if (val) { m68k_incpc(2) ; return 4+2; }
15498: }}}m68k_incpc(2);
15499: return 4;
15500: }
15501: unsigned long REGPARAM2 CPUFUNC(op_52c8_0)(uae_u32 opcode) /* DBcc */
15502: {
15503: uae_u32 srcreg = (opcode & 7);
15504: OpcodeFamily = 58; CurrentInstrCycles = 12;
15505: {{ uae_s16 src = m68k_dreg(regs, srcreg);
15506: { uae_s16 offs = get_iword(2);
15507: if (!cctrue(2)) {
15508: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
15509: if (src) {
15510: m68k_incpc((uae_s32)offs + 2);
15511: return 10;
15512: } else {
15513: m68k_incpc(4);
15514: return 14;
15515: }
15516: }
15517: }}}m68k_incpc(4);
15518: endlabel1012: ;
15519: return 12;
15520: }
15521: unsigned long REGPARAM2 CPUFUNC(op_52d0_0)(uae_u32 opcode) /* Scc */
15522: {
15523: uae_u32 srcreg = (opcode & 7);
15524: OpcodeFamily = 59; CurrentInstrCycles = 12;
15525: {{ uaecptr srca = m68k_areg(regs, srcreg);
15526: { int val = cctrue(2) ? 0xff : 0;
15527: put_byte(srca,val);
15528: }}}m68k_incpc(2);
15529: return 12;
15530: }
15531: unsigned long REGPARAM2 CPUFUNC(op_52d8_0)(uae_u32 opcode) /* Scc */
15532: {
15533: uae_u32 srcreg = (opcode & 7);
15534: OpcodeFamily = 59; CurrentInstrCycles = 12;
15535: {{ uaecptr srca = m68k_areg(regs, srcreg);
15536: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
15537: { int val = cctrue(2) ? 0xff : 0;
15538: put_byte(srca,val);
15539: }}}m68k_incpc(2);
15540: return 12;
15541: }
15542: unsigned long REGPARAM2 CPUFUNC(op_52e0_0)(uae_u32 opcode) /* Scc */
15543: {
15544: uae_u32 srcreg = (opcode & 7);
15545: OpcodeFamily = 59; CurrentInstrCycles = 14;
15546: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
15547: m68k_areg (regs, srcreg) = srca;
15548: { int val = cctrue(2) ? 0xff : 0;
15549: put_byte(srca,val);
15550: }}}m68k_incpc(2);
15551: return 14;
15552: }
15553: unsigned long REGPARAM2 CPUFUNC(op_52e8_0)(uae_u32 opcode) /* Scc */
15554: {
15555: uae_u32 srcreg = (opcode & 7);
15556: OpcodeFamily = 59; CurrentInstrCycles = 16;
15557: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
15558: { int val = cctrue(2) ? 0xff : 0;
15559: put_byte(srca,val);
15560: }}}m68k_incpc(4);
15561: return 16;
15562: }
15563: unsigned long REGPARAM2 CPUFUNC(op_52f0_0)(uae_u32 opcode) /* Scc */
15564: {
15565: uae_u32 srcreg = (opcode & 7);
15566: OpcodeFamily = 59; CurrentInstrCycles = 18;
15567: {{m68k_incpc(2);
15568: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
15569: BusCyclePenalty += 2;
15570: { int val = cctrue(2) ? 0xff : 0;
15571: put_byte(srca,val);
15572: }}}}return 18;
15573: }
15574: unsigned long REGPARAM2 CPUFUNC(op_52f8_0)(uae_u32 opcode) /* Scc */
15575: {
15576: OpcodeFamily = 59; CurrentInstrCycles = 16;
15577: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
15578: { int val = cctrue(2) ? 0xff : 0;
15579: put_byte(srca,val);
15580: }}}m68k_incpc(4);
15581: return 16;
15582: }
15583: unsigned long REGPARAM2 CPUFUNC(op_52f9_0)(uae_u32 opcode) /* Scc */
15584: {
15585: OpcodeFamily = 59; CurrentInstrCycles = 20;
15586: {{ uaecptr srca = get_ilong(2);
15587: { int val = cctrue(2) ? 0xff : 0;
15588: put_byte(srca,val);
15589: }}}m68k_incpc(6);
15590: return 20;
15591: }
15592: unsigned long REGPARAM2 CPUFUNC(op_52fa_0)(uae_u32 opcode) /* TRAPcc */
15593: {
15594: OpcodeFamily = 102; CurrentInstrCycles = 8;
15595: {{ uae_s16 dummy = get_iword(2);
15596: if (cctrue(2)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1020; }
15597: }}m68k_incpc(4);
15598: endlabel1020: ;
15599: return 8;
15600: }
15601: unsigned long REGPARAM2 CPUFUNC(op_52fb_0)(uae_u32 opcode) /* TRAPcc */
15602: {
15603: OpcodeFamily = 102; CurrentInstrCycles = 12;
15604: {{ uae_s32 dummy = get_ilong(2);
15605: if (cctrue(2)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1021; }
15606: }}m68k_incpc(6);
15607: endlabel1021: ;
15608: return 12;
15609: }
15610: unsigned long REGPARAM2 CPUFUNC(op_52fc_0)(uae_u32 opcode) /* TRAPcc */
15611: {
15612: OpcodeFamily = 102; CurrentInstrCycles = 4;
15613: { if (cctrue(2)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1022; }
15614: }m68k_incpc(2);
15615: endlabel1022: ;
15616: return 4;
15617: }
15618: unsigned long REGPARAM2 CPUFUNC(op_53c0_0)(uae_u32 opcode) /* Scc */
15619: {
15620: uae_u32 srcreg = (opcode & 7);
15621: OpcodeFamily = 59; CurrentInstrCycles = 4;
15622: {{{ int val = cctrue(3) ? 0xff : 0;
15623: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
15624: if (val) { m68k_incpc(2) ; return 4+2; }
15625: }}}m68k_incpc(2);
15626: return 4;
15627: }
15628: unsigned long REGPARAM2 CPUFUNC(op_53c8_0)(uae_u32 opcode) /* DBcc */
15629: {
15630: uae_u32 srcreg = (opcode & 7);
15631: OpcodeFamily = 58; CurrentInstrCycles = 12;
15632: {{ uae_s16 src = m68k_dreg(regs, srcreg);
15633: { uae_s16 offs = get_iword(2);
15634: if (!cctrue(3)) {
15635: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
15636: if (src) {
15637: m68k_incpc((uae_s32)offs + 2);
15638: return 10;
15639: } else {
15640: m68k_incpc(4);
15641: return 14;
15642: }
15643: }
15644: }}}m68k_incpc(4);
15645: endlabel1024: ;
15646: return 12;
15647: }
15648: unsigned long REGPARAM2 CPUFUNC(op_53d0_0)(uae_u32 opcode) /* Scc */
15649: {
15650: uae_u32 srcreg = (opcode & 7);
15651: OpcodeFamily = 59; CurrentInstrCycles = 12;
15652: {{ uaecptr srca = m68k_areg(regs, srcreg);
15653: { int val = cctrue(3) ? 0xff : 0;
15654: put_byte(srca,val);
15655: }}}m68k_incpc(2);
15656: return 12;
15657: }
15658: unsigned long REGPARAM2 CPUFUNC(op_53d8_0)(uae_u32 opcode) /* Scc */
15659: {
15660: uae_u32 srcreg = (opcode & 7);
15661: OpcodeFamily = 59; CurrentInstrCycles = 12;
15662: {{ uaecptr srca = m68k_areg(regs, srcreg);
15663: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
15664: { int val = cctrue(3) ? 0xff : 0;
15665: put_byte(srca,val);
15666: }}}m68k_incpc(2);
15667: return 12;
15668: }
15669: unsigned long REGPARAM2 CPUFUNC(op_53e0_0)(uae_u32 opcode) /* Scc */
15670: {
15671: uae_u32 srcreg = (opcode & 7);
15672: OpcodeFamily = 59; CurrentInstrCycles = 14;
15673: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
15674: m68k_areg (regs, srcreg) = srca;
15675: { int val = cctrue(3) ? 0xff : 0;
15676: put_byte(srca,val);
15677: }}}m68k_incpc(2);
15678: return 14;
15679: }
15680: unsigned long REGPARAM2 CPUFUNC(op_53e8_0)(uae_u32 opcode) /* Scc */
15681: {
15682: uae_u32 srcreg = (opcode & 7);
15683: OpcodeFamily = 59; CurrentInstrCycles = 16;
15684: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
15685: { int val = cctrue(3) ? 0xff : 0;
15686: put_byte(srca,val);
15687: }}}m68k_incpc(4);
15688: return 16;
15689: }
15690: unsigned long REGPARAM2 CPUFUNC(op_53f0_0)(uae_u32 opcode) /* Scc */
15691: {
15692: uae_u32 srcreg = (opcode & 7);
15693: OpcodeFamily = 59; CurrentInstrCycles = 18;
15694: {{m68k_incpc(2);
15695: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
15696: BusCyclePenalty += 2;
15697: { int val = cctrue(3) ? 0xff : 0;
15698: put_byte(srca,val);
15699: }}}}return 18;
15700: }
15701: unsigned long REGPARAM2 CPUFUNC(op_53f8_0)(uae_u32 opcode) /* Scc */
15702: {
15703: OpcodeFamily = 59; CurrentInstrCycles = 16;
15704: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
15705: { int val = cctrue(3) ? 0xff : 0;
15706: put_byte(srca,val);
15707: }}}m68k_incpc(4);
15708: return 16;
15709: }
15710: unsigned long REGPARAM2 CPUFUNC(op_53f9_0)(uae_u32 opcode) /* Scc */
15711: {
15712: OpcodeFamily = 59; CurrentInstrCycles = 20;
15713: {{ uaecptr srca = get_ilong(2);
15714: { int val = cctrue(3) ? 0xff : 0;
15715: put_byte(srca,val);
15716: }}}m68k_incpc(6);
15717: return 20;
15718: }
15719: unsigned long REGPARAM2 CPUFUNC(op_53fa_0)(uae_u32 opcode) /* TRAPcc */
15720: {
15721: OpcodeFamily = 102; CurrentInstrCycles = 8;
15722: {{ uae_s16 dummy = get_iword(2);
15723: if (cctrue(3)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1032; }
15724: }}m68k_incpc(4);
15725: endlabel1032: ;
15726: return 8;
15727: }
15728: unsigned long REGPARAM2 CPUFUNC(op_53fb_0)(uae_u32 opcode) /* TRAPcc */
15729: {
15730: OpcodeFamily = 102; CurrentInstrCycles = 12;
15731: {{ uae_s32 dummy = get_ilong(2);
15732: if (cctrue(3)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1033; }
15733: }}m68k_incpc(6);
15734: endlabel1033: ;
15735: return 12;
15736: }
15737: unsigned long REGPARAM2 CPUFUNC(op_53fc_0)(uae_u32 opcode) /* TRAPcc */
15738: {
15739: OpcodeFamily = 102; CurrentInstrCycles = 4;
15740: { if (cctrue(3)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1034; }
15741: }m68k_incpc(2);
15742: endlabel1034: ;
15743: return 4;
15744: }
15745: unsigned long REGPARAM2 CPUFUNC(op_54c0_0)(uae_u32 opcode) /* Scc */
15746: {
15747: uae_u32 srcreg = (opcode & 7);
15748: OpcodeFamily = 59; CurrentInstrCycles = 4;
15749: {{{ int val = cctrue(4) ? 0xff : 0;
15750: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
15751: if (val) { m68k_incpc(2) ; return 4+2; }
15752: }}}m68k_incpc(2);
15753: return 4;
15754: }
15755: unsigned long REGPARAM2 CPUFUNC(op_54c8_0)(uae_u32 opcode) /* DBcc */
15756: {
15757: uae_u32 srcreg = (opcode & 7);
15758: OpcodeFamily = 58; CurrentInstrCycles = 12;
15759: {{ uae_s16 src = m68k_dreg(regs, srcreg);
15760: { uae_s16 offs = get_iword(2);
15761: if (!cctrue(4)) {
15762: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
15763: if (src) {
15764: m68k_incpc((uae_s32)offs + 2);
15765: return 10;
15766: } else {
15767: m68k_incpc(4);
15768: return 14;
15769: }
15770: }
15771: }}}m68k_incpc(4);
15772: endlabel1036: ;
15773: return 12;
15774: }
15775: unsigned long REGPARAM2 CPUFUNC(op_54d0_0)(uae_u32 opcode) /* Scc */
15776: {
15777: uae_u32 srcreg = (opcode & 7);
15778: OpcodeFamily = 59; CurrentInstrCycles = 12;
15779: {{ uaecptr srca = m68k_areg(regs, srcreg);
15780: { int val = cctrue(4) ? 0xff : 0;
15781: put_byte(srca,val);
15782: }}}m68k_incpc(2);
15783: return 12;
15784: }
15785: unsigned long REGPARAM2 CPUFUNC(op_54d8_0)(uae_u32 opcode) /* Scc */
15786: {
15787: uae_u32 srcreg = (opcode & 7);
15788: OpcodeFamily = 59; CurrentInstrCycles = 12;
15789: {{ uaecptr srca = m68k_areg(regs, srcreg);
15790: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
15791: { int val = cctrue(4) ? 0xff : 0;
15792: put_byte(srca,val);
15793: }}}m68k_incpc(2);
15794: return 12;
15795: }
15796: unsigned long REGPARAM2 CPUFUNC(op_54e0_0)(uae_u32 opcode) /* Scc */
15797: {
15798: uae_u32 srcreg = (opcode & 7);
15799: OpcodeFamily = 59; CurrentInstrCycles = 14;
15800: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
15801: m68k_areg (regs, srcreg) = srca;
15802: { int val = cctrue(4) ? 0xff : 0;
15803: put_byte(srca,val);
15804: }}}m68k_incpc(2);
15805: return 14;
15806: }
15807: unsigned long REGPARAM2 CPUFUNC(op_54e8_0)(uae_u32 opcode) /* Scc */
15808: {
15809: uae_u32 srcreg = (opcode & 7);
15810: OpcodeFamily = 59; CurrentInstrCycles = 16;
15811: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
15812: { int val = cctrue(4) ? 0xff : 0;
15813: put_byte(srca,val);
15814: }}}m68k_incpc(4);
15815: return 16;
15816: }
15817: unsigned long REGPARAM2 CPUFUNC(op_54f0_0)(uae_u32 opcode) /* Scc */
15818: {
15819: uae_u32 srcreg = (opcode & 7);
15820: OpcodeFamily = 59; CurrentInstrCycles = 18;
15821: {{m68k_incpc(2);
15822: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
15823: BusCyclePenalty += 2;
15824: { int val = cctrue(4) ? 0xff : 0;
15825: put_byte(srca,val);
15826: }}}}return 18;
15827: }
15828: unsigned long REGPARAM2 CPUFUNC(op_54f8_0)(uae_u32 opcode) /* Scc */
15829: {
15830: OpcodeFamily = 59; CurrentInstrCycles = 16;
15831: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
15832: { int val = cctrue(4) ? 0xff : 0;
15833: put_byte(srca,val);
15834: }}}m68k_incpc(4);
15835: return 16;
15836: }
15837: unsigned long REGPARAM2 CPUFUNC(op_54f9_0)(uae_u32 opcode) /* Scc */
15838: {
15839: OpcodeFamily = 59; CurrentInstrCycles = 20;
15840: {{ uaecptr srca = get_ilong(2);
15841: { int val = cctrue(4) ? 0xff : 0;
15842: put_byte(srca,val);
15843: }}}m68k_incpc(6);
15844: return 20;
15845: }
15846: unsigned long REGPARAM2 CPUFUNC(op_54fa_0)(uae_u32 opcode) /* TRAPcc */
15847: {
15848: OpcodeFamily = 102; CurrentInstrCycles = 8;
15849: {{ uae_s16 dummy = get_iword(2);
15850: if (cctrue(4)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1044; }
15851: }}m68k_incpc(4);
15852: endlabel1044: ;
15853: return 8;
15854: }
15855: unsigned long REGPARAM2 CPUFUNC(op_54fb_0)(uae_u32 opcode) /* TRAPcc */
15856: {
15857: OpcodeFamily = 102; CurrentInstrCycles = 12;
15858: {{ uae_s32 dummy = get_ilong(2);
15859: if (cctrue(4)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1045; }
15860: }}m68k_incpc(6);
15861: endlabel1045: ;
15862: return 12;
15863: }
15864: unsigned long REGPARAM2 CPUFUNC(op_54fc_0)(uae_u32 opcode) /* TRAPcc */
15865: {
15866: OpcodeFamily = 102; CurrentInstrCycles = 4;
15867: { if (cctrue(4)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1046; }
15868: }m68k_incpc(2);
15869: endlabel1046: ;
15870: return 4;
15871: }
15872: unsigned long REGPARAM2 CPUFUNC(op_55c0_0)(uae_u32 opcode) /* Scc */
15873: {
15874: uae_u32 srcreg = (opcode & 7);
15875: OpcodeFamily = 59; CurrentInstrCycles = 4;
15876: {{{ int val = cctrue(5) ? 0xff : 0;
15877: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
15878: if (val) { m68k_incpc(2) ; return 4+2; }
15879: }}}m68k_incpc(2);
15880: return 4;
15881: }
15882: unsigned long REGPARAM2 CPUFUNC(op_55c8_0)(uae_u32 opcode) /* DBcc */
15883: {
15884: uae_u32 srcreg = (opcode & 7);
15885: OpcodeFamily = 58; CurrentInstrCycles = 12;
15886: {{ uae_s16 src = m68k_dreg(regs, srcreg);
15887: { uae_s16 offs = get_iword(2);
15888: if (!cctrue(5)) {
15889: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
15890: if (src) {
15891: m68k_incpc((uae_s32)offs + 2);
15892: return 10;
15893: } else {
15894: m68k_incpc(4);
15895: return 14;
15896: }
15897: }
15898: }}}m68k_incpc(4);
15899: endlabel1048: ;
15900: return 12;
15901: }
15902: unsigned long REGPARAM2 CPUFUNC(op_55d0_0)(uae_u32 opcode) /* Scc */
15903: {
15904: uae_u32 srcreg = (opcode & 7);
15905: OpcodeFamily = 59; CurrentInstrCycles = 12;
15906: {{ uaecptr srca = m68k_areg(regs, srcreg);
15907: { int val = cctrue(5) ? 0xff : 0;
15908: put_byte(srca,val);
15909: }}}m68k_incpc(2);
15910: return 12;
15911: }
15912: unsigned long REGPARAM2 CPUFUNC(op_55d8_0)(uae_u32 opcode) /* Scc */
15913: {
15914: uae_u32 srcreg = (opcode & 7);
15915: OpcodeFamily = 59; CurrentInstrCycles = 12;
15916: {{ uaecptr srca = m68k_areg(regs, srcreg);
15917: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
15918: { int val = cctrue(5) ? 0xff : 0;
15919: put_byte(srca,val);
15920: }}}m68k_incpc(2);
15921: return 12;
15922: }
15923: unsigned long REGPARAM2 CPUFUNC(op_55e0_0)(uae_u32 opcode) /* Scc */
15924: {
15925: uae_u32 srcreg = (opcode & 7);
15926: OpcodeFamily = 59; CurrentInstrCycles = 14;
15927: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
15928: m68k_areg (regs, srcreg) = srca;
15929: { int val = cctrue(5) ? 0xff : 0;
15930: put_byte(srca,val);
15931: }}}m68k_incpc(2);
15932: return 14;
15933: }
15934: unsigned long REGPARAM2 CPUFUNC(op_55e8_0)(uae_u32 opcode) /* Scc */
15935: {
15936: uae_u32 srcreg = (opcode & 7);
15937: OpcodeFamily = 59; CurrentInstrCycles = 16;
15938: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
15939: { int val = cctrue(5) ? 0xff : 0;
15940: put_byte(srca,val);
15941: }}}m68k_incpc(4);
15942: return 16;
15943: }
15944: unsigned long REGPARAM2 CPUFUNC(op_55f0_0)(uae_u32 opcode) /* Scc */
15945: {
15946: uae_u32 srcreg = (opcode & 7);
15947: OpcodeFamily = 59; CurrentInstrCycles = 18;
15948: {{m68k_incpc(2);
15949: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
15950: BusCyclePenalty += 2;
15951: { int val = cctrue(5) ? 0xff : 0;
15952: put_byte(srca,val);
15953: }}}}return 18;
15954: }
15955: unsigned long REGPARAM2 CPUFUNC(op_55f8_0)(uae_u32 opcode) /* Scc */
15956: {
15957: OpcodeFamily = 59; CurrentInstrCycles = 16;
15958: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
15959: { int val = cctrue(5) ? 0xff : 0;
15960: put_byte(srca,val);
15961: }}}m68k_incpc(4);
15962: return 16;
15963: }
15964: unsigned long REGPARAM2 CPUFUNC(op_55f9_0)(uae_u32 opcode) /* Scc */
15965: {
15966: OpcodeFamily = 59; CurrentInstrCycles = 20;
15967: {{ uaecptr srca = get_ilong(2);
15968: { int val = cctrue(5) ? 0xff : 0;
15969: put_byte(srca,val);
15970: }}}m68k_incpc(6);
15971: return 20;
15972: }
15973: unsigned long REGPARAM2 CPUFUNC(op_55fa_0)(uae_u32 opcode) /* TRAPcc */
15974: {
15975: OpcodeFamily = 102; CurrentInstrCycles = 8;
15976: {{ uae_s16 dummy = get_iword(2);
15977: if (cctrue(5)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1056; }
15978: }}m68k_incpc(4);
15979: endlabel1056: ;
15980: return 8;
15981: }
15982: unsigned long REGPARAM2 CPUFUNC(op_55fb_0)(uae_u32 opcode) /* TRAPcc */
15983: {
15984: OpcodeFamily = 102; CurrentInstrCycles = 12;
15985: {{ uae_s32 dummy = get_ilong(2);
15986: if (cctrue(5)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1057; }
15987: }}m68k_incpc(6);
15988: endlabel1057: ;
15989: return 12;
15990: }
15991: unsigned long REGPARAM2 CPUFUNC(op_55fc_0)(uae_u32 opcode) /* TRAPcc */
15992: {
15993: OpcodeFamily = 102; CurrentInstrCycles = 4;
15994: { if (cctrue(5)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1058; }
15995: }m68k_incpc(2);
15996: endlabel1058: ;
15997: return 4;
15998: }
15999: unsigned long REGPARAM2 CPUFUNC(op_56c0_0)(uae_u32 opcode) /* Scc */
16000: {
16001: uae_u32 srcreg = (opcode & 7);
16002: OpcodeFamily = 59; CurrentInstrCycles = 4;
16003: {{{ int val = cctrue(6) ? 0xff : 0;
16004: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
16005: if (val) { m68k_incpc(2) ; return 4+2; }
16006: }}}m68k_incpc(2);
16007: return 4;
16008: }
16009: unsigned long REGPARAM2 CPUFUNC(op_56c8_0)(uae_u32 opcode) /* DBcc */
16010: {
16011: uae_u32 srcreg = (opcode & 7);
16012: OpcodeFamily = 58; CurrentInstrCycles = 12;
16013: {{ uae_s16 src = m68k_dreg(regs, srcreg);
16014: { uae_s16 offs = get_iword(2);
16015: if (!cctrue(6)) {
16016: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
16017: if (src) {
16018: m68k_incpc((uae_s32)offs + 2);
16019: return 10;
16020: } else {
16021: m68k_incpc(4);
16022: return 14;
16023: }
16024: }
16025: }}}m68k_incpc(4);
16026: endlabel1060: ;
16027: return 12;
16028: }
16029: unsigned long REGPARAM2 CPUFUNC(op_56d0_0)(uae_u32 opcode) /* Scc */
16030: {
16031: uae_u32 srcreg = (opcode & 7);
16032: OpcodeFamily = 59; CurrentInstrCycles = 12;
16033: {{ uaecptr srca = m68k_areg(regs, srcreg);
16034: { int val = cctrue(6) ? 0xff : 0;
16035: put_byte(srca,val);
16036: }}}m68k_incpc(2);
16037: return 12;
16038: }
16039: unsigned long REGPARAM2 CPUFUNC(op_56d8_0)(uae_u32 opcode) /* Scc */
16040: {
16041: uae_u32 srcreg = (opcode & 7);
16042: OpcodeFamily = 59; CurrentInstrCycles = 12;
16043: {{ uaecptr srca = m68k_areg(regs, srcreg);
16044: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
16045: { int val = cctrue(6) ? 0xff : 0;
16046: put_byte(srca,val);
16047: }}}m68k_incpc(2);
16048: return 12;
16049: }
16050: unsigned long REGPARAM2 CPUFUNC(op_56e0_0)(uae_u32 opcode) /* Scc */
16051: {
16052: uae_u32 srcreg = (opcode & 7);
16053: OpcodeFamily = 59; CurrentInstrCycles = 14;
16054: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
16055: m68k_areg (regs, srcreg) = srca;
16056: { int val = cctrue(6) ? 0xff : 0;
16057: put_byte(srca,val);
16058: }}}m68k_incpc(2);
16059: return 14;
16060: }
16061: unsigned long REGPARAM2 CPUFUNC(op_56e8_0)(uae_u32 opcode) /* Scc */
16062: {
16063: uae_u32 srcreg = (opcode & 7);
16064: OpcodeFamily = 59; CurrentInstrCycles = 16;
16065: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
16066: { int val = cctrue(6) ? 0xff : 0;
16067: put_byte(srca,val);
16068: }}}m68k_incpc(4);
16069: return 16;
16070: }
16071: unsigned long REGPARAM2 CPUFUNC(op_56f0_0)(uae_u32 opcode) /* Scc */
16072: {
16073: uae_u32 srcreg = (opcode & 7);
16074: OpcodeFamily = 59; CurrentInstrCycles = 18;
16075: {{m68k_incpc(2);
16076: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
16077: BusCyclePenalty += 2;
16078: { int val = cctrue(6) ? 0xff : 0;
16079: put_byte(srca,val);
16080: }}}}return 18;
16081: }
16082: unsigned long REGPARAM2 CPUFUNC(op_56f8_0)(uae_u32 opcode) /* Scc */
16083: {
16084: OpcodeFamily = 59; CurrentInstrCycles = 16;
16085: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
16086: { int val = cctrue(6) ? 0xff : 0;
16087: put_byte(srca,val);
16088: }}}m68k_incpc(4);
16089: return 16;
16090: }
16091: unsigned long REGPARAM2 CPUFUNC(op_56f9_0)(uae_u32 opcode) /* Scc */
16092: {
16093: OpcodeFamily = 59; CurrentInstrCycles = 20;
16094: {{ uaecptr srca = get_ilong(2);
16095: { int val = cctrue(6) ? 0xff : 0;
16096: put_byte(srca,val);
16097: }}}m68k_incpc(6);
16098: return 20;
16099: }
16100: unsigned long REGPARAM2 CPUFUNC(op_56fa_0)(uae_u32 opcode) /* TRAPcc */
16101: {
16102: OpcodeFamily = 102; CurrentInstrCycles = 8;
16103: {{ uae_s16 dummy = get_iword(2);
16104: if (cctrue(6)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1068; }
16105: }}m68k_incpc(4);
16106: endlabel1068: ;
16107: return 8;
16108: }
16109: unsigned long REGPARAM2 CPUFUNC(op_56fb_0)(uae_u32 opcode) /* TRAPcc */
16110: {
16111: OpcodeFamily = 102; CurrentInstrCycles = 12;
16112: {{ uae_s32 dummy = get_ilong(2);
16113: if (cctrue(6)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1069; }
16114: }}m68k_incpc(6);
16115: endlabel1069: ;
16116: return 12;
16117: }
16118: unsigned long REGPARAM2 CPUFUNC(op_56fc_0)(uae_u32 opcode) /* TRAPcc */
16119: {
16120: OpcodeFamily = 102; CurrentInstrCycles = 4;
16121: { if (cctrue(6)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1070; }
16122: }m68k_incpc(2);
16123: endlabel1070: ;
16124: return 4;
16125: }
16126: unsigned long REGPARAM2 CPUFUNC(op_57c0_0)(uae_u32 opcode) /* Scc */
16127: {
16128: uae_u32 srcreg = (opcode & 7);
16129: OpcodeFamily = 59; CurrentInstrCycles = 4;
16130: {{{ int val = cctrue(7) ? 0xff : 0;
16131: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
16132: if (val) { m68k_incpc(2) ; return 4+2; }
16133: }}}m68k_incpc(2);
16134: return 4;
16135: }
16136: unsigned long REGPARAM2 CPUFUNC(op_57c8_0)(uae_u32 opcode) /* DBcc */
16137: {
16138: uae_u32 srcreg = (opcode & 7);
16139: OpcodeFamily = 58; CurrentInstrCycles = 12;
16140: {{ uae_s16 src = m68k_dreg(regs, srcreg);
16141: { uae_s16 offs = get_iword(2);
16142: if (!cctrue(7)) {
16143: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
16144: if (src) {
16145: m68k_incpc((uae_s32)offs + 2);
16146: return 10;
16147: } else {
16148: m68k_incpc(4);
16149: return 14;
16150: }
16151: }
16152: }}}m68k_incpc(4);
16153: endlabel1072: ;
16154: return 12;
16155: }
16156: unsigned long REGPARAM2 CPUFUNC(op_57d0_0)(uae_u32 opcode) /* Scc */
16157: {
16158: uae_u32 srcreg = (opcode & 7);
16159: OpcodeFamily = 59; CurrentInstrCycles = 12;
16160: {{ uaecptr srca = m68k_areg(regs, srcreg);
16161: { int val = cctrue(7) ? 0xff : 0;
16162: put_byte(srca,val);
16163: }}}m68k_incpc(2);
16164: return 12;
16165: }
16166: unsigned long REGPARAM2 CPUFUNC(op_57d8_0)(uae_u32 opcode) /* Scc */
16167: {
16168: uae_u32 srcreg = (opcode & 7);
16169: OpcodeFamily = 59; CurrentInstrCycles = 12;
16170: {{ uaecptr srca = m68k_areg(regs, srcreg);
16171: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
16172: { int val = cctrue(7) ? 0xff : 0;
16173: put_byte(srca,val);
16174: }}}m68k_incpc(2);
16175: return 12;
16176: }
16177: unsigned long REGPARAM2 CPUFUNC(op_57e0_0)(uae_u32 opcode) /* Scc */
16178: {
16179: uae_u32 srcreg = (opcode & 7);
16180: OpcodeFamily = 59; CurrentInstrCycles = 14;
16181: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
16182: m68k_areg (regs, srcreg) = srca;
16183: { int val = cctrue(7) ? 0xff : 0;
16184: put_byte(srca,val);
16185: }}}m68k_incpc(2);
16186: return 14;
16187: }
16188: unsigned long REGPARAM2 CPUFUNC(op_57e8_0)(uae_u32 opcode) /* Scc */
16189: {
16190: uae_u32 srcreg = (opcode & 7);
16191: OpcodeFamily = 59; CurrentInstrCycles = 16;
16192: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
16193: { int val = cctrue(7) ? 0xff : 0;
16194: put_byte(srca,val);
16195: }}}m68k_incpc(4);
16196: return 16;
16197: }
16198: unsigned long REGPARAM2 CPUFUNC(op_57f0_0)(uae_u32 opcode) /* Scc */
16199: {
16200: uae_u32 srcreg = (opcode & 7);
16201: OpcodeFamily = 59; CurrentInstrCycles = 18;
16202: {{m68k_incpc(2);
16203: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
16204: BusCyclePenalty += 2;
16205: { int val = cctrue(7) ? 0xff : 0;
16206: put_byte(srca,val);
16207: }}}}return 18;
16208: }
16209: unsigned long REGPARAM2 CPUFUNC(op_57f8_0)(uae_u32 opcode) /* Scc */
16210: {
16211: OpcodeFamily = 59; CurrentInstrCycles = 16;
16212: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
16213: { int val = cctrue(7) ? 0xff : 0;
16214: put_byte(srca,val);
16215: }}}m68k_incpc(4);
16216: return 16;
16217: }
16218: unsigned long REGPARAM2 CPUFUNC(op_57f9_0)(uae_u32 opcode) /* Scc */
16219: {
16220: OpcodeFamily = 59; CurrentInstrCycles = 20;
16221: {{ uaecptr srca = get_ilong(2);
16222: { int val = cctrue(7) ? 0xff : 0;
16223: put_byte(srca,val);
16224: }}}m68k_incpc(6);
16225: return 20;
16226: }
16227: unsigned long REGPARAM2 CPUFUNC(op_57fa_0)(uae_u32 opcode) /* TRAPcc */
16228: {
16229: OpcodeFamily = 102; CurrentInstrCycles = 8;
16230: {{ uae_s16 dummy = get_iword(2);
16231: if (cctrue(7)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1080; }
16232: }}m68k_incpc(4);
16233: endlabel1080: ;
16234: return 8;
16235: }
16236: unsigned long REGPARAM2 CPUFUNC(op_57fb_0)(uae_u32 opcode) /* TRAPcc */
16237: {
16238: OpcodeFamily = 102; CurrentInstrCycles = 12;
16239: {{ uae_s32 dummy = get_ilong(2);
16240: if (cctrue(7)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1081; }
16241: }}m68k_incpc(6);
16242: endlabel1081: ;
16243: return 12;
16244: }
16245: unsigned long REGPARAM2 CPUFUNC(op_57fc_0)(uae_u32 opcode) /* TRAPcc */
16246: {
16247: OpcodeFamily = 102; CurrentInstrCycles = 4;
16248: { if (cctrue(7)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1082; }
16249: }m68k_incpc(2);
16250: endlabel1082: ;
16251: return 4;
16252: }
16253: unsigned long REGPARAM2 CPUFUNC(op_58c0_0)(uae_u32 opcode) /* Scc */
16254: {
16255: uae_u32 srcreg = (opcode & 7);
16256: OpcodeFamily = 59; CurrentInstrCycles = 4;
16257: {{{ int val = cctrue(8) ? 0xff : 0;
16258: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
16259: if (val) { m68k_incpc(2) ; return 4+2; }
16260: }}}m68k_incpc(2);
16261: return 4;
16262: }
16263: unsigned long REGPARAM2 CPUFUNC(op_58c8_0)(uae_u32 opcode) /* DBcc */
16264: {
16265: uae_u32 srcreg = (opcode & 7);
16266: OpcodeFamily = 58; CurrentInstrCycles = 12;
16267: {{ uae_s16 src = m68k_dreg(regs, srcreg);
16268: { uae_s16 offs = get_iword(2);
16269: if (!cctrue(8)) {
16270: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
16271: if (src) {
16272: m68k_incpc((uae_s32)offs + 2);
16273: return 10;
16274: } else {
16275: m68k_incpc(4);
16276: return 14;
16277: }
16278: }
16279: }}}m68k_incpc(4);
16280: endlabel1084: ;
16281: return 12;
16282: }
16283: unsigned long REGPARAM2 CPUFUNC(op_58d0_0)(uae_u32 opcode) /* Scc */
16284: {
16285: uae_u32 srcreg = (opcode & 7);
16286: OpcodeFamily = 59; CurrentInstrCycles = 12;
16287: {{ uaecptr srca = m68k_areg(regs, srcreg);
16288: { int val = cctrue(8) ? 0xff : 0;
16289: put_byte(srca,val);
16290: }}}m68k_incpc(2);
16291: return 12;
16292: }
16293: unsigned long REGPARAM2 CPUFUNC(op_58d8_0)(uae_u32 opcode) /* Scc */
16294: {
16295: uae_u32 srcreg = (opcode & 7);
16296: OpcodeFamily = 59; CurrentInstrCycles = 12;
16297: {{ uaecptr srca = m68k_areg(regs, srcreg);
16298: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
16299: { int val = cctrue(8) ? 0xff : 0;
16300: put_byte(srca,val);
16301: }}}m68k_incpc(2);
16302: return 12;
16303: }
16304: unsigned long REGPARAM2 CPUFUNC(op_58e0_0)(uae_u32 opcode) /* Scc */
16305: {
16306: uae_u32 srcreg = (opcode & 7);
16307: OpcodeFamily = 59; CurrentInstrCycles = 14;
16308: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
16309: m68k_areg (regs, srcreg) = srca;
16310: { int val = cctrue(8) ? 0xff : 0;
16311: put_byte(srca,val);
16312: }}}m68k_incpc(2);
16313: return 14;
16314: }
16315: unsigned long REGPARAM2 CPUFUNC(op_58e8_0)(uae_u32 opcode) /* Scc */
16316: {
16317: uae_u32 srcreg = (opcode & 7);
16318: OpcodeFamily = 59; CurrentInstrCycles = 16;
16319: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
16320: { int val = cctrue(8) ? 0xff : 0;
16321: put_byte(srca,val);
16322: }}}m68k_incpc(4);
16323: return 16;
16324: }
16325: unsigned long REGPARAM2 CPUFUNC(op_58f0_0)(uae_u32 opcode) /* Scc */
16326: {
16327: uae_u32 srcreg = (opcode & 7);
16328: OpcodeFamily = 59; CurrentInstrCycles = 18;
16329: {{m68k_incpc(2);
16330: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
16331: BusCyclePenalty += 2;
16332: { int val = cctrue(8) ? 0xff : 0;
16333: put_byte(srca,val);
16334: }}}}return 18;
16335: }
16336: unsigned long REGPARAM2 CPUFUNC(op_58f8_0)(uae_u32 opcode) /* Scc */
16337: {
16338: OpcodeFamily = 59; CurrentInstrCycles = 16;
16339: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
16340: { int val = cctrue(8) ? 0xff : 0;
16341: put_byte(srca,val);
16342: }}}m68k_incpc(4);
16343: return 16;
16344: }
16345: unsigned long REGPARAM2 CPUFUNC(op_58f9_0)(uae_u32 opcode) /* Scc */
16346: {
16347: OpcodeFamily = 59; CurrentInstrCycles = 20;
16348: {{ uaecptr srca = get_ilong(2);
16349: { int val = cctrue(8) ? 0xff : 0;
16350: put_byte(srca,val);
16351: }}}m68k_incpc(6);
16352: return 20;
16353: }
16354: unsigned long REGPARAM2 CPUFUNC(op_58fa_0)(uae_u32 opcode) /* TRAPcc */
16355: {
16356: OpcodeFamily = 102; CurrentInstrCycles = 8;
16357: {{ uae_s16 dummy = get_iword(2);
16358: if (cctrue(8)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1092; }
16359: }}m68k_incpc(4);
16360: endlabel1092: ;
16361: return 8;
16362: }
16363: unsigned long REGPARAM2 CPUFUNC(op_58fb_0)(uae_u32 opcode) /* TRAPcc */
16364: {
16365: OpcodeFamily = 102; CurrentInstrCycles = 12;
16366: {{ uae_s32 dummy = get_ilong(2);
16367: if (cctrue(8)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1093; }
16368: }}m68k_incpc(6);
16369: endlabel1093: ;
16370: return 12;
16371: }
16372: unsigned long REGPARAM2 CPUFUNC(op_58fc_0)(uae_u32 opcode) /* TRAPcc */
16373: {
16374: OpcodeFamily = 102; CurrentInstrCycles = 4;
16375: { if (cctrue(8)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1094; }
16376: }m68k_incpc(2);
16377: endlabel1094: ;
16378: return 4;
16379: }
16380: unsigned long REGPARAM2 CPUFUNC(op_59c0_0)(uae_u32 opcode) /* Scc */
16381: {
16382: uae_u32 srcreg = (opcode & 7);
16383: OpcodeFamily = 59; CurrentInstrCycles = 4;
16384: {{{ int val = cctrue(9) ? 0xff : 0;
16385: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
16386: if (val) { m68k_incpc(2) ; return 4+2; }
16387: }}}m68k_incpc(2);
16388: return 4;
16389: }
16390: unsigned long REGPARAM2 CPUFUNC(op_59c8_0)(uae_u32 opcode) /* DBcc */
16391: {
16392: uae_u32 srcreg = (opcode & 7);
16393: OpcodeFamily = 58; CurrentInstrCycles = 12;
16394: {{ uae_s16 src = m68k_dreg(regs, srcreg);
16395: { uae_s16 offs = get_iword(2);
16396: if (!cctrue(9)) {
16397: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
16398: if (src) {
16399: m68k_incpc((uae_s32)offs + 2);
16400: return 10;
16401: } else {
16402: m68k_incpc(4);
16403: return 14;
16404: }
16405: }
16406: }}}m68k_incpc(4);
16407: endlabel1096: ;
16408: return 12;
16409: }
16410: unsigned long REGPARAM2 CPUFUNC(op_59d0_0)(uae_u32 opcode) /* Scc */
16411: {
16412: uae_u32 srcreg = (opcode & 7);
16413: OpcodeFamily = 59; CurrentInstrCycles = 12;
16414: {{ uaecptr srca = m68k_areg(regs, srcreg);
16415: { int val = cctrue(9) ? 0xff : 0;
16416: put_byte(srca,val);
16417: }}}m68k_incpc(2);
16418: return 12;
16419: }
16420: unsigned long REGPARAM2 CPUFUNC(op_59d8_0)(uae_u32 opcode) /* Scc */
16421: {
16422: uae_u32 srcreg = (opcode & 7);
16423: OpcodeFamily = 59; CurrentInstrCycles = 12;
16424: {{ uaecptr srca = m68k_areg(regs, srcreg);
16425: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
16426: { int val = cctrue(9) ? 0xff : 0;
16427: put_byte(srca,val);
16428: }}}m68k_incpc(2);
16429: return 12;
16430: }
16431: unsigned long REGPARAM2 CPUFUNC(op_59e0_0)(uae_u32 opcode) /* Scc */
16432: {
16433: uae_u32 srcreg = (opcode & 7);
16434: OpcodeFamily = 59; CurrentInstrCycles = 14;
16435: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
16436: m68k_areg (regs, srcreg) = srca;
16437: { int val = cctrue(9) ? 0xff : 0;
16438: put_byte(srca,val);
16439: }}}m68k_incpc(2);
16440: return 14;
16441: }
16442: unsigned long REGPARAM2 CPUFUNC(op_59e8_0)(uae_u32 opcode) /* Scc */
16443: {
16444: uae_u32 srcreg = (opcode & 7);
16445: OpcodeFamily = 59; CurrentInstrCycles = 16;
16446: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
16447: { int val = cctrue(9) ? 0xff : 0;
16448: put_byte(srca,val);
16449: }}}m68k_incpc(4);
16450: return 16;
16451: }
16452: unsigned long REGPARAM2 CPUFUNC(op_59f0_0)(uae_u32 opcode) /* Scc */
16453: {
16454: uae_u32 srcreg = (opcode & 7);
16455: OpcodeFamily = 59; CurrentInstrCycles = 18;
16456: {{m68k_incpc(2);
16457: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
16458: BusCyclePenalty += 2;
16459: { int val = cctrue(9) ? 0xff : 0;
16460: put_byte(srca,val);
16461: }}}}return 18;
16462: }
16463: unsigned long REGPARAM2 CPUFUNC(op_59f8_0)(uae_u32 opcode) /* Scc */
16464: {
16465: OpcodeFamily = 59; CurrentInstrCycles = 16;
16466: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
16467: { int val = cctrue(9) ? 0xff : 0;
16468: put_byte(srca,val);
16469: }}}m68k_incpc(4);
16470: return 16;
16471: }
16472: unsigned long REGPARAM2 CPUFUNC(op_59f9_0)(uae_u32 opcode) /* Scc */
16473: {
16474: OpcodeFamily = 59; CurrentInstrCycles = 20;
16475: {{ uaecptr srca = get_ilong(2);
16476: { int val = cctrue(9) ? 0xff : 0;
16477: put_byte(srca,val);
16478: }}}m68k_incpc(6);
16479: return 20;
16480: }
16481: unsigned long REGPARAM2 CPUFUNC(op_59fa_0)(uae_u32 opcode) /* TRAPcc */
16482: {
16483: OpcodeFamily = 102; CurrentInstrCycles = 8;
16484: {{ uae_s16 dummy = get_iword(2);
16485: if (cctrue(9)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1104; }
16486: }}m68k_incpc(4);
16487: endlabel1104: ;
16488: return 8;
16489: }
16490: unsigned long REGPARAM2 CPUFUNC(op_59fb_0)(uae_u32 opcode) /* TRAPcc */
16491: {
16492: OpcodeFamily = 102; CurrentInstrCycles = 12;
16493: {{ uae_s32 dummy = get_ilong(2);
16494: if (cctrue(9)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1105; }
16495: }}m68k_incpc(6);
16496: endlabel1105: ;
16497: return 12;
16498: }
16499: unsigned long REGPARAM2 CPUFUNC(op_59fc_0)(uae_u32 opcode) /* TRAPcc */
16500: {
16501: OpcodeFamily = 102; CurrentInstrCycles = 4;
16502: { if (cctrue(9)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1106; }
16503: }m68k_incpc(2);
16504: endlabel1106: ;
16505: return 4;
16506: }
16507: unsigned long REGPARAM2 CPUFUNC(op_5ac0_0)(uae_u32 opcode) /* Scc */
16508: {
16509: uae_u32 srcreg = (opcode & 7);
16510: OpcodeFamily = 59; CurrentInstrCycles = 4;
16511: {{{ int val = cctrue(10) ? 0xff : 0;
16512: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
16513: if (val) { m68k_incpc(2) ; return 4+2; }
16514: }}}m68k_incpc(2);
16515: return 4;
16516: }
16517: unsigned long REGPARAM2 CPUFUNC(op_5ac8_0)(uae_u32 opcode) /* DBcc */
16518: {
16519: uae_u32 srcreg = (opcode & 7);
16520: OpcodeFamily = 58; CurrentInstrCycles = 12;
16521: {{ uae_s16 src = m68k_dreg(regs, srcreg);
16522: { uae_s16 offs = get_iword(2);
16523: if (!cctrue(10)) {
16524: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
16525: if (src) {
16526: m68k_incpc((uae_s32)offs + 2);
16527: return 10;
16528: } else {
16529: m68k_incpc(4);
16530: return 14;
16531: }
16532: }
16533: }}}m68k_incpc(4);
16534: endlabel1108: ;
16535: return 12;
16536: }
16537: unsigned long REGPARAM2 CPUFUNC(op_5ad0_0)(uae_u32 opcode) /* Scc */
16538: {
16539: uae_u32 srcreg = (opcode & 7);
16540: OpcodeFamily = 59; CurrentInstrCycles = 12;
16541: {{ uaecptr srca = m68k_areg(regs, srcreg);
16542: { int val = cctrue(10) ? 0xff : 0;
16543: put_byte(srca,val);
16544: }}}m68k_incpc(2);
16545: return 12;
16546: }
16547: unsigned long REGPARAM2 CPUFUNC(op_5ad8_0)(uae_u32 opcode) /* Scc */
16548: {
16549: uae_u32 srcreg = (opcode & 7);
16550: OpcodeFamily = 59; CurrentInstrCycles = 12;
16551: {{ uaecptr srca = m68k_areg(regs, srcreg);
16552: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
16553: { int val = cctrue(10) ? 0xff : 0;
16554: put_byte(srca,val);
16555: }}}m68k_incpc(2);
16556: return 12;
16557: }
16558: unsigned long REGPARAM2 CPUFUNC(op_5ae0_0)(uae_u32 opcode) /* Scc */
16559: {
16560: uae_u32 srcreg = (opcode & 7);
16561: OpcodeFamily = 59; CurrentInstrCycles = 14;
16562: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
16563: m68k_areg (regs, srcreg) = srca;
16564: { int val = cctrue(10) ? 0xff : 0;
16565: put_byte(srca,val);
16566: }}}m68k_incpc(2);
16567: return 14;
16568: }
16569: unsigned long REGPARAM2 CPUFUNC(op_5ae8_0)(uae_u32 opcode) /* Scc */
16570: {
16571: uae_u32 srcreg = (opcode & 7);
16572: OpcodeFamily = 59; CurrentInstrCycles = 16;
16573: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
16574: { int val = cctrue(10) ? 0xff : 0;
16575: put_byte(srca,val);
16576: }}}m68k_incpc(4);
16577: return 16;
16578: }
16579: unsigned long REGPARAM2 CPUFUNC(op_5af0_0)(uae_u32 opcode) /* Scc */
16580: {
16581: uae_u32 srcreg = (opcode & 7);
16582: OpcodeFamily = 59; CurrentInstrCycles = 18;
16583: {{m68k_incpc(2);
16584: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
16585: BusCyclePenalty += 2;
16586: { int val = cctrue(10) ? 0xff : 0;
16587: put_byte(srca,val);
16588: }}}}return 18;
16589: }
16590: unsigned long REGPARAM2 CPUFUNC(op_5af8_0)(uae_u32 opcode) /* Scc */
16591: {
16592: OpcodeFamily = 59; CurrentInstrCycles = 16;
16593: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
16594: { int val = cctrue(10) ? 0xff : 0;
16595: put_byte(srca,val);
16596: }}}m68k_incpc(4);
16597: return 16;
16598: }
16599: unsigned long REGPARAM2 CPUFUNC(op_5af9_0)(uae_u32 opcode) /* Scc */
16600: {
16601: OpcodeFamily = 59; CurrentInstrCycles = 20;
16602: {{ uaecptr srca = get_ilong(2);
16603: { int val = cctrue(10) ? 0xff : 0;
16604: put_byte(srca,val);
16605: }}}m68k_incpc(6);
16606: return 20;
16607: }
16608: unsigned long REGPARAM2 CPUFUNC(op_5afa_0)(uae_u32 opcode) /* TRAPcc */
16609: {
16610: OpcodeFamily = 102; CurrentInstrCycles = 8;
16611: {{ uae_s16 dummy = get_iword(2);
16612: if (cctrue(10)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1116; }
16613: }}m68k_incpc(4);
16614: endlabel1116: ;
16615: return 8;
16616: }
16617: unsigned long REGPARAM2 CPUFUNC(op_5afb_0)(uae_u32 opcode) /* TRAPcc */
16618: {
16619: OpcodeFamily = 102; CurrentInstrCycles = 12;
16620: {{ uae_s32 dummy = get_ilong(2);
16621: if (cctrue(10)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1117; }
16622: }}m68k_incpc(6);
16623: endlabel1117: ;
16624: return 12;
16625: }
16626: unsigned long REGPARAM2 CPUFUNC(op_5afc_0)(uae_u32 opcode) /* TRAPcc */
16627: {
16628: OpcodeFamily = 102; CurrentInstrCycles = 4;
16629: { if (cctrue(10)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1118; }
16630: }m68k_incpc(2);
16631: endlabel1118: ;
16632: return 4;
16633: }
16634: unsigned long REGPARAM2 CPUFUNC(op_5bc0_0)(uae_u32 opcode) /* Scc */
16635: {
16636: uae_u32 srcreg = (opcode & 7);
16637: OpcodeFamily = 59; CurrentInstrCycles = 4;
16638: {{{ int val = cctrue(11) ? 0xff : 0;
16639: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
16640: if (val) { m68k_incpc(2) ; return 4+2; }
16641: }}}m68k_incpc(2);
16642: return 4;
16643: }
16644: unsigned long REGPARAM2 CPUFUNC(op_5bc8_0)(uae_u32 opcode) /* DBcc */
16645: {
16646: uae_u32 srcreg = (opcode & 7);
16647: OpcodeFamily = 58; CurrentInstrCycles = 12;
16648: {{ uae_s16 src = m68k_dreg(regs, srcreg);
16649: { uae_s16 offs = get_iword(2);
16650: if (!cctrue(11)) {
16651: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
16652: if (src) {
16653: m68k_incpc((uae_s32)offs + 2);
16654: return 10;
16655: } else {
16656: m68k_incpc(4);
16657: return 14;
16658: }
16659: }
16660: }}}m68k_incpc(4);
16661: endlabel1120: ;
16662: return 12;
16663: }
16664: unsigned long REGPARAM2 CPUFUNC(op_5bd0_0)(uae_u32 opcode) /* Scc */
16665: {
16666: uae_u32 srcreg = (opcode & 7);
16667: OpcodeFamily = 59; CurrentInstrCycles = 12;
16668: {{ uaecptr srca = m68k_areg(regs, srcreg);
16669: { int val = cctrue(11) ? 0xff : 0;
16670: put_byte(srca,val);
16671: }}}m68k_incpc(2);
16672: return 12;
16673: }
16674: unsigned long REGPARAM2 CPUFUNC(op_5bd8_0)(uae_u32 opcode) /* Scc */
16675: {
16676: uae_u32 srcreg = (opcode & 7);
16677: OpcodeFamily = 59; CurrentInstrCycles = 12;
16678: {{ uaecptr srca = m68k_areg(regs, srcreg);
16679: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
16680: { int val = cctrue(11) ? 0xff : 0;
16681: put_byte(srca,val);
16682: }}}m68k_incpc(2);
16683: return 12;
16684: }
16685: unsigned long REGPARAM2 CPUFUNC(op_5be0_0)(uae_u32 opcode) /* Scc */
16686: {
16687: uae_u32 srcreg = (opcode & 7);
16688: OpcodeFamily = 59; CurrentInstrCycles = 14;
16689: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
16690: m68k_areg (regs, srcreg) = srca;
16691: { int val = cctrue(11) ? 0xff : 0;
16692: put_byte(srca,val);
16693: }}}m68k_incpc(2);
16694: return 14;
16695: }
16696: unsigned long REGPARAM2 CPUFUNC(op_5be8_0)(uae_u32 opcode) /* Scc */
16697: {
16698: uae_u32 srcreg = (opcode & 7);
16699: OpcodeFamily = 59; CurrentInstrCycles = 16;
16700: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
16701: { int val = cctrue(11) ? 0xff : 0;
16702: put_byte(srca,val);
16703: }}}m68k_incpc(4);
16704: return 16;
16705: }
16706: unsigned long REGPARAM2 CPUFUNC(op_5bf0_0)(uae_u32 opcode) /* Scc */
16707: {
16708: uae_u32 srcreg = (opcode & 7);
16709: OpcodeFamily = 59; CurrentInstrCycles = 18;
16710: {{m68k_incpc(2);
16711: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
16712: BusCyclePenalty += 2;
16713: { int val = cctrue(11) ? 0xff : 0;
16714: put_byte(srca,val);
16715: }}}}return 18;
16716: }
16717: unsigned long REGPARAM2 CPUFUNC(op_5bf8_0)(uae_u32 opcode) /* Scc */
16718: {
16719: OpcodeFamily = 59; CurrentInstrCycles = 16;
16720: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
16721: { int val = cctrue(11) ? 0xff : 0;
16722: put_byte(srca,val);
16723: }}}m68k_incpc(4);
16724: return 16;
16725: }
16726: unsigned long REGPARAM2 CPUFUNC(op_5bf9_0)(uae_u32 opcode) /* Scc */
16727: {
16728: OpcodeFamily = 59; CurrentInstrCycles = 20;
16729: {{ uaecptr srca = get_ilong(2);
16730: { int val = cctrue(11) ? 0xff : 0;
16731: put_byte(srca,val);
16732: }}}m68k_incpc(6);
16733: return 20;
16734: }
16735: unsigned long REGPARAM2 CPUFUNC(op_5bfa_0)(uae_u32 opcode) /* TRAPcc */
16736: {
16737: OpcodeFamily = 102; CurrentInstrCycles = 8;
16738: {{ uae_s16 dummy = get_iword(2);
16739: if (cctrue(11)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1128; }
16740: }}m68k_incpc(4);
16741: endlabel1128: ;
16742: return 8;
16743: }
16744: unsigned long REGPARAM2 CPUFUNC(op_5bfb_0)(uae_u32 opcode) /* TRAPcc */
16745: {
16746: OpcodeFamily = 102; CurrentInstrCycles = 12;
16747: {{ uae_s32 dummy = get_ilong(2);
16748: if (cctrue(11)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1129; }
16749: }}m68k_incpc(6);
16750: endlabel1129: ;
16751: return 12;
16752: }
16753: unsigned long REGPARAM2 CPUFUNC(op_5bfc_0)(uae_u32 opcode) /* TRAPcc */
16754: {
16755: OpcodeFamily = 102; CurrentInstrCycles = 4;
16756: { if (cctrue(11)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1130; }
16757: }m68k_incpc(2);
16758: endlabel1130: ;
16759: return 4;
16760: }
16761: unsigned long REGPARAM2 CPUFUNC(op_5cc0_0)(uae_u32 opcode) /* Scc */
16762: {
16763: uae_u32 srcreg = (opcode & 7);
16764: OpcodeFamily = 59; CurrentInstrCycles = 4;
16765: {{{ int val = cctrue(12) ? 0xff : 0;
16766: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
16767: if (val) { m68k_incpc(2) ; return 4+2; }
16768: }}}m68k_incpc(2);
16769: return 4;
16770: }
16771: unsigned long REGPARAM2 CPUFUNC(op_5cc8_0)(uae_u32 opcode) /* DBcc */
16772: {
16773: uae_u32 srcreg = (opcode & 7);
16774: OpcodeFamily = 58; CurrentInstrCycles = 12;
16775: {{ uae_s16 src = m68k_dreg(regs, srcreg);
16776: { uae_s16 offs = get_iword(2);
16777: if (!cctrue(12)) {
16778: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
16779: if (src) {
16780: m68k_incpc((uae_s32)offs + 2);
16781: return 10;
16782: } else {
16783: m68k_incpc(4);
16784: return 14;
16785: }
16786: }
16787: }}}m68k_incpc(4);
16788: endlabel1132: ;
16789: return 12;
16790: }
16791: unsigned long REGPARAM2 CPUFUNC(op_5cd0_0)(uae_u32 opcode) /* Scc */
16792: {
16793: uae_u32 srcreg = (opcode & 7);
16794: OpcodeFamily = 59; CurrentInstrCycles = 12;
16795: {{ uaecptr srca = m68k_areg(regs, srcreg);
16796: { int val = cctrue(12) ? 0xff : 0;
16797: put_byte(srca,val);
16798: }}}m68k_incpc(2);
16799: return 12;
16800: }
16801: unsigned long REGPARAM2 CPUFUNC(op_5cd8_0)(uae_u32 opcode) /* Scc */
16802: {
16803: uae_u32 srcreg = (opcode & 7);
16804: OpcodeFamily = 59; CurrentInstrCycles = 12;
16805: {{ uaecptr srca = m68k_areg(regs, srcreg);
16806: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
16807: { int val = cctrue(12) ? 0xff : 0;
16808: put_byte(srca,val);
16809: }}}m68k_incpc(2);
16810: return 12;
16811: }
16812: unsigned long REGPARAM2 CPUFUNC(op_5ce0_0)(uae_u32 opcode) /* Scc */
16813: {
16814: uae_u32 srcreg = (opcode & 7);
16815: OpcodeFamily = 59; CurrentInstrCycles = 14;
16816: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
16817: m68k_areg (regs, srcreg) = srca;
16818: { int val = cctrue(12) ? 0xff : 0;
16819: put_byte(srca,val);
16820: }}}m68k_incpc(2);
16821: return 14;
16822: }
16823: unsigned long REGPARAM2 CPUFUNC(op_5ce8_0)(uae_u32 opcode) /* Scc */
16824: {
16825: uae_u32 srcreg = (opcode & 7);
16826: OpcodeFamily = 59; CurrentInstrCycles = 16;
16827: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
16828: { int val = cctrue(12) ? 0xff : 0;
16829: put_byte(srca,val);
16830: }}}m68k_incpc(4);
16831: return 16;
16832: }
16833: unsigned long REGPARAM2 CPUFUNC(op_5cf0_0)(uae_u32 opcode) /* Scc */
16834: {
16835: uae_u32 srcreg = (opcode & 7);
16836: OpcodeFamily = 59; CurrentInstrCycles = 18;
16837: {{m68k_incpc(2);
16838: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
16839: BusCyclePenalty += 2;
16840: { int val = cctrue(12) ? 0xff : 0;
16841: put_byte(srca,val);
16842: }}}}return 18;
16843: }
16844: unsigned long REGPARAM2 CPUFUNC(op_5cf8_0)(uae_u32 opcode) /* Scc */
16845: {
16846: OpcodeFamily = 59; CurrentInstrCycles = 16;
16847: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
16848: { int val = cctrue(12) ? 0xff : 0;
16849: put_byte(srca,val);
16850: }}}m68k_incpc(4);
16851: return 16;
16852: }
16853: unsigned long REGPARAM2 CPUFUNC(op_5cf9_0)(uae_u32 opcode) /* Scc */
16854: {
16855: OpcodeFamily = 59; CurrentInstrCycles = 20;
16856: {{ uaecptr srca = get_ilong(2);
16857: { int val = cctrue(12) ? 0xff : 0;
16858: put_byte(srca,val);
16859: }}}m68k_incpc(6);
16860: return 20;
16861: }
16862: unsigned long REGPARAM2 CPUFUNC(op_5cfa_0)(uae_u32 opcode) /* TRAPcc */
16863: {
16864: OpcodeFamily = 102; CurrentInstrCycles = 8;
16865: {{ uae_s16 dummy = get_iword(2);
16866: if (cctrue(12)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1140; }
16867: }}m68k_incpc(4);
16868: endlabel1140: ;
16869: return 8;
16870: }
16871: unsigned long REGPARAM2 CPUFUNC(op_5cfb_0)(uae_u32 opcode) /* TRAPcc */
16872: {
16873: OpcodeFamily = 102; CurrentInstrCycles = 12;
16874: {{ uae_s32 dummy = get_ilong(2);
16875: if (cctrue(12)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1141; }
16876: }}m68k_incpc(6);
16877: endlabel1141: ;
16878: return 12;
16879: }
16880: unsigned long REGPARAM2 CPUFUNC(op_5cfc_0)(uae_u32 opcode) /* TRAPcc */
16881: {
16882: OpcodeFamily = 102; CurrentInstrCycles = 4;
16883: { if (cctrue(12)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1142; }
16884: }m68k_incpc(2);
16885: endlabel1142: ;
16886: return 4;
16887: }
16888: unsigned long REGPARAM2 CPUFUNC(op_5dc0_0)(uae_u32 opcode) /* Scc */
16889: {
16890: uae_u32 srcreg = (opcode & 7);
16891: OpcodeFamily = 59; CurrentInstrCycles = 4;
16892: {{{ int val = cctrue(13) ? 0xff : 0;
16893: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
16894: if (val) { m68k_incpc(2) ; return 4+2; }
16895: }}}m68k_incpc(2);
16896: return 4;
16897: }
16898: unsigned long REGPARAM2 CPUFUNC(op_5dc8_0)(uae_u32 opcode) /* DBcc */
16899: {
16900: uae_u32 srcreg = (opcode & 7);
16901: OpcodeFamily = 58; CurrentInstrCycles = 12;
16902: {{ uae_s16 src = m68k_dreg(regs, srcreg);
16903: { uae_s16 offs = get_iword(2);
16904: if (!cctrue(13)) {
16905: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
16906: if (src) {
16907: m68k_incpc((uae_s32)offs + 2);
16908: return 10;
16909: } else {
16910: m68k_incpc(4);
16911: return 14;
16912: }
16913: }
16914: }}}m68k_incpc(4);
16915: endlabel1144: ;
16916: return 12;
16917: }
16918: unsigned long REGPARAM2 CPUFUNC(op_5dd0_0)(uae_u32 opcode) /* Scc */
16919: {
16920: uae_u32 srcreg = (opcode & 7);
16921: OpcodeFamily = 59; CurrentInstrCycles = 12;
16922: {{ uaecptr srca = m68k_areg(regs, srcreg);
16923: { int val = cctrue(13) ? 0xff : 0;
16924: put_byte(srca,val);
16925: }}}m68k_incpc(2);
16926: return 12;
16927: }
16928: unsigned long REGPARAM2 CPUFUNC(op_5dd8_0)(uae_u32 opcode) /* Scc */
16929: {
16930: uae_u32 srcreg = (opcode & 7);
16931: OpcodeFamily = 59; CurrentInstrCycles = 12;
16932: {{ uaecptr srca = m68k_areg(regs, srcreg);
16933: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
16934: { int val = cctrue(13) ? 0xff : 0;
16935: put_byte(srca,val);
16936: }}}m68k_incpc(2);
16937: return 12;
16938: }
16939: unsigned long REGPARAM2 CPUFUNC(op_5de0_0)(uae_u32 opcode) /* Scc */
16940: {
16941: uae_u32 srcreg = (opcode & 7);
16942: OpcodeFamily = 59; CurrentInstrCycles = 14;
16943: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
16944: m68k_areg (regs, srcreg) = srca;
16945: { int val = cctrue(13) ? 0xff : 0;
16946: put_byte(srca,val);
16947: }}}m68k_incpc(2);
16948: return 14;
16949: }
16950: unsigned long REGPARAM2 CPUFUNC(op_5de8_0)(uae_u32 opcode) /* Scc */
16951: {
16952: uae_u32 srcreg = (opcode & 7);
16953: OpcodeFamily = 59; CurrentInstrCycles = 16;
16954: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
16955: { int val = cctrue(13) ? 0xff : 0;
16956: put_byte(srca,val);
16957: }}}m68k_incpc(4);
16958: return 16;
16959: }
16960: unsigned long REGPARAM2 CPUFUNC(op_5df0_0)(uae_u32 opcode) /* Scc */
16961: {
16962: uae_u32 srcreg = (opcode & 7);
16963: OpcodeFamily = 59; CurrentInstrCycles = 18;
16964: {{m68k_incpc(2);
16965: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
16966: BusCyclePenalty += 2;
16967: { int val = cctrue(13) ? 0xff : 0;
16968: put_byte(srca,val);
16969: }}}}return 18;
16970: }
16971: unsigned long REGPARAM2 CPUFUNC(op_5df8_0)(uae_u32 opcode) /* Scc */
16972: {
16973: OpcodeFamily = 59; CurrentInstrCycles = 16;
16974: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
16975: { int val = cctrue(13) ? 0xff : 0;
16976: put_byte(srca,val);
16977: }}}m68k_incpc(4);
16978: return 16;
16979: }
16980: unsigned long REGPARAM2 CPUFUNC(op_5df9_0)(uae_u32 opcode) /* Scc */
16981: {
16982: OpcodeFamily = 59; CurrentInstrCycles = 20;
16983: {{ uaecptr srca = get_ilong(2);
16984: { int val = cctrue(13) ? 0xff : 0;
16985: put_byte(srca,val);
16986: }}}m68k_incpc(6);
16987: return 20;
16988: }
16989: unsigned long REGPARAM2 CPUFUNC(op_5dfa_0)(uae_u32 opcode) /* TRAPcc */
16990: {
16991: OpcodeFamily = 102; CurrentInstrCycles = 8;
16992: {{ uae_s16 dummy = get_iword(2);
16993: if (cctrue(13)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1152; }
16994: }}m68k_incpc(4);
16995: endlabel1152: ;
16996: return 8;
16997: }
16998: unsigned long REGPARAM2 CPUFUNC(op_5dfb_0)(uae_u32 opcode) /* TRAPcc */
16999: {
17000: OpcodeFamily = 102; CurrentInstrCycles = 12;
17001: {{ uae_s32 dummy = get_ilong(2);
17002: if (cctrue(13)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1153; }
17003: }}m68k_incpc(6);
17004: endlabel1153: ;
17005: return 12;
17006: }
17007: unsigned long REGPARAM2 CPUFUNC(op_5dfc_0)(uae_u32 opcode) /* TRAPcc */
17008: {
17009: OpcodeFamily = 102; CurrentInstrCycles = 4;
17010: { if (cctrue(13)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1154; }
17011: }m68k_incpc(2);
17012: endlabel1154: ;
17013: return 4;
17014: }
17015: unsigned long REGPARAM2 CPUFUNC(op_5ec0_0)(uae_u32 opcode) /* Scc */
17016: {
17017: uae_u32 srcreg = (opcode & 7);
17018: OpcodeFamily = 59; CurrentInstrCycles = 4;
17019: {{{ int val = cctrue(14) ? 0xff : 0;
17020: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
17021: if (val) { m68k_incpc(2) ; return 4+2; }
17022: }}}m68k_incpc(2);
17023: return 4;
17024: }
17025: unsigned long REGPARAM2 CPUFUNC(op_5ec8_0)(uae_u32 opcode) /* DBcc */
17026: {
17027: uae_u32 srcreg = (opcode & 7);
17028: OpcodeFamily = 58; CurrentInstrCycles = 12;
17029: {{ uae_s16 src = m68k_dreg(regs, srcreg);
17030: { uae_s16 offs = get_iword(2);
17031: if (!cctrue(14)) {
17032: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
17033: if (src) {
17034: m68k_incpc((uae_s32)offs + 2);
17035: return 10;
17036: } else {
17037: m68k_incpc(4);
17038: return 14;
17039: }
17040: }
17041: }}}m68k_incpc(4);
17042: endlabel1156: ;
17043: return 12;
17044: }
17045: unsigned long REGPARAM2 CPUFUNC(op_5ed0_0)(uae_u32 opcode) /* Scc */
17046: {
17047: uae_u32 srcreg = (opcode & 7);
17048: OpcodeFamily = 59; CurrentInstrCycles = 12;
17049: {{ uaecptr srca = m68k_areg(regs, srcreg);
17050: { int val = cctrue(14) ? 0xff : 0;
17051: put_byte(srca,val);
17052: }}}m68k_incpc(2);
17053: return 12;
17054: }
17055: unsigned long REGPARAM2 CPUFUNC(op_5ed8_0)(uae_u32 opcode) /* Scc */
17056: {
17057: uae_u32 srcreg = (opcode & 7);
17058: OpcodeFamily = 59; CurrentInstrCycles = 12;
17059: {{ uaecptr srca = m68k_areg(regs, srcreg);
17060: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
17061: { int val = cctrue(14) ? 0xff : 0;
17062: put_byte(srca,val);
17063: }}}m68k_incpc(2);
17064: return 12;
17065: }
17066: unsigned long REGPARAM2 CPUFUNC(op_5ee0_0)(uae_u32 opcode) /* Scc */
17067: {
17068: uae_u32 srcreg = (opcode & 7);
17069: OpcodeFamily = 59; CurrentInstrCycles = 14;
17070: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
17071: m68k_areg (regs, srcreg) = srca;
17072: { int val = cctrue(14) ? 0xff : 0;
17073: put_byte(srca,val);
17074: }}}m68k_incpc(2);
17075: return 14;
17076: }
17077: unsigned long REGPARAM2 CPUFUNC(op_5ee8_0)(uae_u32 opcode) /* Scc */
17078: {
17079: uae_u32 srcreg = (opcode & 7);
17080: OpcodeFamily = 59; CurrentInstrCycles = 16;
17081: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
17082: { int val = cctrue(14) ? 0xff : 0;
17083: put_byte(srca,val);
17084: }}}m68k_incpc(4);
17085: return 16;
17086: }
17087: unsigned long REGPARAM2 CPUFUNC(op_5ef0_0)(uae_u32 opcode) /* Scc */
17088: {
17089: uae_u32 srcreg = (opcode & 7);
17090: OpcodeFamily = 59; CurrentInstrCycles = 18;
17091: {{m68k_incpc(2);
17092: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
17093: BusCyclePenalty += 2;
17094: { int val = cctrue(14) ? 0xff : 0;
17095: put_byte(srca,val);
17096: }}}}return 18;
17097: }
17098: unsigned long REGPARAM2 CPUFUNC(op_5ef8_0)(uae_u32 opcode) /* Scc */
17099: {
17100: OpcodeFamily = 59; CurrentInstrCycles = 16;
17101: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
17102: { int val = cctrue(14) ? 0xff : 0;
17103: put_byte(srca,val);
17104: }}}m68k_incpc(4);
17105: return 16;
17106: }
17107: unsigned long REGPARAM2 CPUFUNC(op_5ef9_0)(uae_u32 opcode) /* Scc */
17108: {
17109: OpcodeFamily = 59; CurrentInstrCycles = 20;
17110: {{ uaecptr srca = get_ilong(2);
17111: { int val = cctrue(14) ? 0xff : 0;
17112: put_byte(srca,val);
17113: }}}m68k_incpc(6);
17114: return 20;
17115: }
17116: unsigned long REGPARAM2 CPUFUNC(op_5efa_0)(uae_u32 opcode) /* TRAPcc */
17117: {
17118: OpcodeFamily = 102; CurrentInstrCycles = 8;
17119: {{ uae_s16 dummy = get_iword(2);
17120: if (cctrue(14)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1164; }
17121: }}m68k_incpc(4);
17122: endlabel1164: ;
17123: return 8;
17124: }
17125: unsigned long REGPARAM2 CPUFUNC(op_5efb_0)(uae_u32 opcode) /* TRAPcc */
17126: {
17127: OpcodeFamily = 102; CurrentInstrCycles = 12;
17128: {{ uae_s32 dummy = get_ilong(2);
17129: if (cctrue(14)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1165; }
17130: }}m68k_incpc(6);
17131: endlabel1165: ;
17132: return 12;
17133: }
17134: unsigned long REGPARAM2 CPUFUNC(op_5efc_0)(uae_u32 opcode) /* TRAPcc */
17135: {
17136: OpcodeFamily = 102; CurrentInstrCycles = 4;
17137: { if (cctrue(14)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1166; }
17138: }m68k_incpc(2);
17139: endlabel1166: ;
17140: return 4;
17141: }
17142: unsigned long REGPARAM2 CPUFUNC(op_5fc0_0)(uae_u32 opcode) /* Scc */
17143: {
17144: uae_u32 srcreg = (opcode & 7);
17145: OpcodeFamily = 59; CurrentInstrCycles = 4;
17146: {{{ int val = cctrue(15) ? 0xff : 0;
17147: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
17148: if (val) { m68k_incpc(2) ; return 4+2; }
17149: }}}m68k_incpc(2);
17150: return 4;
17151: }
17152: unsigned long REGPARAM2 CPUFUNC(op_5fc8_0)(uae_u32 opcode) /* DBcc */
17153: {
17154: uae_u32 srcreg = (opcode & 7);
17155: OpcodeFamily = 58; CurrentInstrCycles = 12;
17156: {{ uae_s16 src = m68k_dreg(regs, srcreg);
17157: { uae_s16 offs = get_iword(2);
17158: if (!cctrue(15)) {
17159: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
17160: if (src) {
17161: m68k_incpc((uae_s32)offs + 2);
17162: return 10;
17163: } else {
17164: m68k_incpc(4);
17165: return 14;
17166: }
17167: }
17168: }}}m68k_incpc(4);
17169: endlabel1168: ;
17170: return 12;
17171: }
17172: unsigned long REGPARAM2 CPUFUNC(op_5fd0_0)(uae_u32 opcode) /* Scc */
17173: {
17174: uae_u32 srcreg = (opcode & 7);
17175: OpcodeFamily = 59; CurrentInstrCycles = 12;
17176: {{ uaecptr srca = m68k_areg(regs, srcreg);
17177: { int val = cctrue(15) ? 0xff : 0;
17178: put_byte(srca,val);
17179: }}}m68k_incpc(2);
17180: return 12;
17181: }
17182: unsigned long REGPARAM2 CPUFUNC(op_5fd8_0)(uae_u32 opcode) /* Scc */
17183: {
17184: uae_u32 srcreg = (opcode & 7);
17185: OpcodeFamily = 59; CurrentInstrCycles = 12;
17186: {{ uaecptr srca = m68k_areg(regs, srcreg);
17187: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
17188: { int val = cctrue(15) ? 0xff : 0;
17189: put_byte(srca,val);
17190: }}}m68k_incpc(2);
17191: return 12;
17192: }
17193: unsigned long REGPARAM2 CPUFUNC(op_5fe0_0)(uae_u32 opcode) /* Scc */
17194: {
17195: uae_u32 srcreg = (opcode & 7);
17196: OpcodeFamily = 59; CurrentInstrCycles = 14;
17197: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
17198: m68k_areg (regs, srcreg) = srca;
17199: { int val = cctrue(15) ? 0xff : 0;
17200: put_byte(srca,val);
17201: }}}m68k_incpc(2);
17202: return 14;
17203: }
17204: #endif
17205:
17206: #ifdef PART_6
17207: unsigned long REGPARAM2 CPUFUNC(op_5fe8_0)(uae_u32 opcode) /* Scc */
17208: {
17209: uae_u32 srcreg = (opcode & 7);
17210: OpcodeFamily = 59; CurrentInstrCycles = 16;
17211: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
17212: { int val = cctrue(15) ? 0xff : 0;
17213: put_byte(srca,val);
17214: }}}m68k_incpc(4);
17215: return 16;
17216: }
17217: unsigned long REGPARAM2 CPUFUNC(op_5ff0_0)(uae_u32 opcode) /* Scc */
17218: {
17219: uae_u32 srcreg = (opcode & 7);
17220: OpcodeFamily = 59; CurrentInstrCycles = 18;
17221: {{m68k_incpc(2);
17222: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
17223: BusCyclePenalty += 2;
17224: { int val = cctrue(15) ? 0xff : 0;
17225: put_byte(srca,val);
17226: }}}}return 18;
17227: }
17228: unsigned long REGPARAM2 CPUFUNC(op_5ff8_0)(uae_u32 opcode) /* Scc */
17229: {
17230: OpcodeFamily = 59; CurrentInstrCycles = 16;
17231: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
17232: { int val = cctrue(15) ? 0xff : 0;
17233: put_byte(srca,val);
17234: }}}m68k_incpc(4);
17235: return 16;
17236: }
17237: unsigned long REGPARAM2 CPUFUNC(op_5ff9_0)(uae_u32 opcode) /* Scc */
17238: {
17239: OpcodeFamily = 59; CurrentInstrCycles = 20;
17240: {{ uaecptr srca = get_ilong(2);
17241: { int val = cctrue(15) ? 0xff : 0;
17242: put_byte(srca,val);
17243: }}}m68k_incpc(6);
17244: return 20;
17245: }
17246: unsigned long REGPARAM2 CPUFUNC(op_5ffa_0)(uae_u32 opcode) /* TRAPcc */
17247: {
17248: OpcodeFamily = 102; CurrentInstrCycles = 8;
17249: {{ uae_s16 dummy = get_iword(2);
17250: if (cctrue(15)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1176; }
17251: }}m68k_incpc(4);
17252: endlabel1176: ;
17253: return 8;
17254: }
17255: unsigned long REGPARAM2 CPUFUNC(op_5ffb_0)(uae_u32 opcode) /* TRAPcc */
17256: {
17257: OpcodeFamily = 102; CurrentInstrCycles = 12;
17258: {{ uae_s32 dummy = get_ilong(2);
17259: if (cctrue(15)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1177; }
17260: }}m68k_incpc(6);
17261: endlabel1177: ;
17262: return 12;
17263: }
17264: unsigned long REGPARAM2 CPUFUNC(op_5ffc_0)(uae_u32 opcode) /* TRAPcc */
17265: {
17266: OpcodeFamily = 102; CurrentInstrCycles = 4;
17267: { if (cctrue(15)) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel1178; }
17268: }m68k_incpc(2);
17269: endlabel1178: ;
17270: return 4;
17271: }
17272: unsigned long REGPARAM2 CPUFUNC(op_6000_0)(uae_u32 opcode) /* Bcc */
17273: {
17274: OpcodeFamily = 55; CurrentInstrCycles = 12;
17275: {{ uae_s16 src = get_iword(2);
17276: if (!cctrue(0)) goto didnt_jump;
17277: m68k_incpc ((uae_s32)src + 2);
17278: return 10;
17279: didnt_jump:;
17280: }}m68k_incpc(4);
17281: endlabel1179: ;
17282: return 12;
17283: }
17284: unsigned long REGPARAM2 CPUFUNC(op_6001_0)(uae_u32 opcode) /* Bcc */
17285: {
17286: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
17287: OpcodeFamily = 55; CurrentInstrCycles = 8;
17288: {{ uae_u32 src = srcreg;
17289: if (!cctrue(0)) goto didnt_jump;
17290: m68k_incpc ((uae_s32)src + 2);
17291: return 10;
17292: didnt_jump:;
17293: }}m68k_incpc(2);
17294: endlabel1180: ;
17295: return 8;
17296: }
17297: unsigned long REGPARAM2 CPUFUNC(op_60ff_0)(uae_u32 opcode) /* Bcc */
17298: {
17299: OpcodeFamily = 55; CurrentInstrCycles = 12;
17300: {{ uae_s32 src = get_ilong(2);
17301: if (!cctrue(0)) goto didnt_jump;
17302: m68k_incpc ((uae_s32)src + 2);
17303: return 10;
17304: didnt_jump:;
17305: }}m68k_incpc(6);
17306: endlabel1181: ;
17307: return 12;
17308: }
17309: unsigned long REGPARAM2 CPUFUNC(op_6100_0)(uae_u32 opcode) /* BSR */
17310: {
17311: OpcodeFamily = 54; CurrentInstrCycles = 18;
17312: {{ uae_s16 src = get_iword(2);
17313: uae_s32 s = (uae_s32)src + 2;
17314: m68k_do_bsr(m68k_getpc() + 4, s);
17315: }}return 18;
17316: }
17317: unsigned long REGPARAM2 CPUFUNC(op_6101_0)(uae_u32 opcode) /* BSR */
17318: {
17319: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
17320: OpcodeFamily = 54; CurrentInstrCycles = 18;
17321: {{ uae_u32 src = srcreg;
17322: uae_s32 s = (uae_s32)src + 2;
17323: m68k_do_bsr(m68k_getpc() + 2, s);
17324: }}return 18;
17325: }
17326: unsigned long REGPARAM2 CPUFUNC(op_61ff_0)(uae_u32 opcode) /* BSR */
17327: {
17328: OpcodeFamily = 54; CurrentInstrCycles = 18;
17329: {{ uae_s32 src = get_ilong(2);
17330: uae_s32 s = (uae_s32)src + 2;
17331: m68k_do_bsr(m68k_getpc() + 6, s);
17332: }}return 18;
17333: }
17334: unsigned long REGPARAM2 CPUFUNC(op_6200_0)(uae_u32 opcode) /* Bcc */
17335: {
17336: OpcodeFamily = 55; CurrentInstrCycles = 12;
17337: {{ uae_s16 src = get_iword(2);
17338: if (!cctrue(2)) goto didnt_jump;
17339: m68k_incpc ((uae_s32)src + 2);
17340: return 10;
17341: didnt_jump:;
17342: }}m68k_incpc(4);
17343: endlabel1185: ;
17344: return 12;
17345: }
17346: unsigned long REGPARAM2 CPUFUNC(op_6201_0)(uae_u32 opcode) /* Bcc */
17347: {
17348: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
17349: OpcodeFamily = 55; CurrentInstrCycles = 8;
17350: {{ uae_u32 src = srcreg;
17351: if (!cctrue(2)) goto didnt_jump;
17352: m68k_incpc ((uae_s32)src + 2);
17353: return 10;
17354: didnt_jump:;
17355: }}m68k_incpc(2);
17356: endlabel1186: ;
17357: return 8;
17358: }
17359: unsigned long REGPARAM2 CPUFUNC(op_62ff_0)(uae_u32 opcode) /* Bcc */
17360: {
17361: OpcodeFamily = 55; CurrentInstrCycles = 12;
17362: {{ uae_s32 src = get_ilong(2);
17363: if (!cctrue(2)) goto didnt_jump;
17364: m68k_incpc ((uae_s32)src + 2);
17365: return 10;
17366: didnt_jump:;
17367: }}m68k_incpc(6);
17368: endlabel1187: ;
17369: return 12;
17370: }
17371: unsigned long REGPARAM2 CPUFUNC(op_6300_0)(uae_u32 opcode) /* Bcc */
17372: {
17373: OpcodeFamily = 55; CurrentInstrCycles = 12;
17374: {{ uae_s16 src = get_iword(2);
17375: if (!cctrue(3)) goto didnt_jump;
17376: m68k_incpc ((uae_s32)src + 2);
17377: return 10;
17378: didnt_jump:;
17379: }}m68k_incpc(4);
17380: endlabel1188: ;
17381: return 12;
17382: }
17383: unsigned long REGPARAM2 CPUFUNC(op_6301_0)(uae_u32 opcode) /* Bcc */
17384: {
17385: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
17386: OpcodeFamily = 55; CurrentInstrCycles = 8;
17387: {{ uae_u32 src = srcreg;
17388: if (!cctrue(3)) goto didnt_jump;
17389: m68k_incpc ((uae_s32)src + 2);
17390: return 10;
17391: didnt_jump:;
17392: }}m68k_incpc(2);
17393: endlabel1189: ;
17394: return 8;
17395: }
17396: unsigned long REGPARAM2 CPUFUNC(op_63ff_0)(uae_u32 opcode) /* Bcc */
17397: {
17398: OpcodeFamily = 55; CurrentInstrCycles = 12;
17399: {{ uae_s32 src = get_ilong(2);
17400: if (!cctrue(3)) goto didnt_jump;
17401: m68k_incpc ((uae_s32)src + 2);
17402: return 10;
17403: didnt_jump:;
17404: }}m68k_incpc(6);
17405: endlabel1190: ;
17406: return 12;
17407: }
17408: unsigned long REGPARAM2 CPUFUNC(op_6400_0)(uae_u32 opcode) /* Bcc */
17409: {
17410: OpcodeFamily = 55; CurrentInstrCycles = 12;
17411: {{ uae_s16 src = get_iword(2);
17412: if (!cctrue(4)) goto didnt_jump;
17413: m68k_incpc ((uae_s32)src + 2);
17414: return 10;
17415: didnt_jump:;
17416: }}m68k_incpc(4);
17417: endlabel1191: ;
17418: return 12;
17419: }
17420: unsigned long REGPARAM2 CPUFUNC(op_6401_0)(uae_u32 opcode) /* Bcc */
17421: {
17422: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
17423: OpcodeFamily = 55; CurrentInstrCycles = 8;
17424: {{ uae_u32 src = srcreg;
17425: if (!cctrue(4)) goto didnt_jump;
17426: m68k_incpc ((uae_s32)src + 2);
17427: return 10;
17428: didnt_jump:;
17429: }}m68k_incpc(2);
17430: endlabel1192: ;
17431: return 8;
17432: }
17433: unsigned long REGPARAM2 CPUFUNC(op_64ff_0)(uae_u32 opcode) /* Bcc */
17434: {
17435: OpcodeFamily = 55; CurrentInstrCycles = 12;
17436: {{ uae_s32 src = get_ilong(2);
17437: if (!cctrue(4)) goto didnt_jump;
17438: m68k_incpc ((uae_s32)src + 2);
17439: return 10;
17440: didnt_jump:;
17441: }}m68k_incpc(6);
17442: endlabel1193: ;
17443: return 12;
17444: }
17445: unsigned long REGPARAM2 CPUFUNC(op_6500_0)(uae_u32 opcode) /* Bcc */
17446: {
17447: OpcodeFamily = 55; CurrentInstrCycles = 12;
17448: {{ uae_s16 src = get_iword(2);
17449: if (!cctrue(5)) goto didnt_jump;
17450: m68k_incpc ((uae_s32)src + 2);
17451: return 10;
17452: didnt_jump:;
17453: }}m68k_incpc(4);
17454: endlabel1194: ;
17455: return 12;
17456: }
17457: unsigned long REGPARAM2 CPUFUNC(op_6501_0)(uae_u32 opcode) /* Bcc */
17458: {
17459: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
17460: OpcodeFamily = 55; CurrentInstrCycles = 8;
17461: {{ uae_u32 src = srcreg;
17462: if (!cctrue(5)) goto didnt_jump;
17463: m68k_incpc ((uae_s32)src + 2);
17464: return 10;
17465: didnt_jump:;
17466: }}m68k_incpc(2);
17467: endlabel1195: ;
17468: return 8;
17469: }
17470: unsigned long REGPARAM2 CPUFUNC(op_65ff_0)(uae_u32 opcode) /* Bcc */
17471: {
17472: OpcodeFamily = 55; CurrentInstrCycles = 12;
17473: {{ uae_s32 src = get_ilong(2);
17474: if (!cctrue(5)) goto didnt_jump;
17475: m68k_incpc ((uae_s32)src + 2);
17476: return 10;
17477: didnt_jump:;
17478: }}m68k_incpc(6);
17479: endlabel1196: ;
17480: return 12;
17481: }
17482: unsigned long REGPARAM2 CPUFUNC(op_6600_0)(uae_u32 opcode) /* Bcc */
17483: {
17484: OpcodeFamily = 55; CurrentInstrCycles = 12;
17485: {{ uae_s16 src = get_iword(2);
17486: if (!cctrue(6)) goto didnt_jump;
17487: m68k_incpc ((uae_s32)src + 2);
17488: return 10;
17489: didnt_jump:;
17490: }}m68k_incpc(4);
17491: endlabel1197: ;
17492: return 12;
17493: }
17494: unsigned long REGPARAM2 CPUFUNC(op_6601_0)(uae_u32 opcode) /* Bcc */
17495: {
17496: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
17497: OpcodeFamily = 55; CurrentInstrCycles = 8;
17498: {{ uae_u32 src = srcreg;
17499: if (!cctrue(6)) goto didnt_jump;
17500: m68k_incpc ((uae_s32)src + 2);
17501: return 10;
17502: didnt_jump:;
17503: }}m68k_incpc(2);
17504: endlabel1198: ;
17505: return 8;
17506: }
17507: unsigned long REGPARAM2 CPUFUNC(op_66ff_0)(uae_u32 opcode) /* Bcc */
17508: {
17509: OpcodeFamily = 55; CurrentInstrCycles = 12;
17510: {{ uae_s32 src = get_ilong(2);
17511: if (!cctrue(6)) goto didnt_jump;
17512: m68k_incpc ((uae_s32)src + 2);
17513: return 10;
17514: didnt_jump:;
17515: }}m68k_incpc(6);
17516: endlabel1199: ;
17517: return 12;
17518: }
17519: unsigned long REGPARAM2 CPUFUNC(op_6700_0)(uae_u32 opcode) /* Bcc */
17520: {
17521: OpcodeFamily = 55; CurrentInstrCycles = 12;
17522: {{ uae_s16 src = get_iword(2);
17523: if (!cctrue(7)) goto didnt_jump;
17524: m68k_incpc ((uae_s32)src + 2);
17525: return 10;
17526: didnt_jump:;
17527: }}m68k_incpc(4);
17528: endlabel1200: ;
17529: return 12;
17530: }
17531: unsigned long REGPARAM2 CPUFUNC(op_6701_0)(uae_u32 opcode) /* Bcc */
17532: {
17533: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
17534: OpcodeFamily = 55; CurrentInstrCycles = 8;
17535: {{ uae_u32 src = srcreg;
17536: if (!cctrue(7)) goto didnt_jump;
17537: m68k_incpc ((uae_s32)src + 2);
17538: return 10;
17539: didnt_jump:;
17540: }}m68k_incpc(2);
17541: endlabel1201: ;
17542: return 8;
17543: }
17544: unsigned long REGPARAM2 CPUFUNC(op_67ff_0)(uae_u32 opcode) /* Bcc */
17545: {
17546: OpcodeFamily = 55; CurrentInstrCycles = 12;
17547: {{ uae_s32 src = get_ilong(2);
17548: if (!cctrue(7)) goto didnt_jump;
17549: m68k_incpc ((uae_s32)src + 2);
17550: return 10;
17551: didnt_jump:;
17552: }}m68k_incpc(6);
17553: endlabel1202: ;
17554: return 12;
17555: }
17556: unsigned long REGPARAM2 CPUFUNC(op_6800_0)(uae_u32 opcode) /* Bcc */
17557: {
17558: OpcodeFamily = 55; CurrentInstrCycles = 12;
17559: {{ uae_s16 src = get_iword(2);
17560: if (!cctrue(8)) goto didnt_jump;
17561: m68k_incpc ((uae_s32)src + 2);
17562: return 10;
17563: didnt_jump:;
17564: }}m68k_incpc(4);
17565: endlabel1203: ;
17566: return 12;
17567: }
17568: unsigned long REGPARAM2 CPUFUNC(op_6801_0)(uae_u32 opcode) /* Bcc */
17569: {
17570: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
17571: OpcodeFamily = 55; CurrentInstrCycles = 8;
17572: {{ uae_u32 src = srcreg;
17573: if (!cctrue(8)) goto didnt_jump;
17574: m68k_incpc ((uae_s32)src + 2);
17575: return 10;
17576: didnt_jump:;
17577: }}m68k_incpc(2);
17578: endlabel1204: ;
17579: return 8;
17580: }
17581: unsigned long REGPARAM2 CPUFUNC(op_68ff_0)(uae_u32 opcode) /* Bcc */
17582: {
17583: OpcodeFamily = 55; CurrentInstrCycles = 12;
17584: {{ uae_s32 src = get_ilong(2);
17585: if (!cctrue(8)) goto didnt_jump;
17586: m68k_incpc ((uae_s32)src + 2);
17587: return 10;
17588: didnt_jump:;
17589: }}m68k_incpc(6);
17590: endlabel1205: ;
17591: return 12;
17592: }
17593: unsigned long REGPARAM2 CPUFUNC(op_6900_0)(uae_u32 opcode) /* Bcc */
17594: {
17595: OpcodeFamily = 55; CurrentInstrCycles = 12;
17596: {{ uae_s16 src = get_iword(2);
17597: if (!cctrue(9)) goto didnt_jump;
17598: m68k_incpc ((uae_s32)src + 2);
17599: return 10;
17600: didnt_jump:;
17601: }}m68k_incpc(4);
17602: endlabel1206: ;
17603: return 12;
17604: }
17605: unsigned long REGPARAM2 CPUFUNC(op_6901_0)(uae_u32 opcode) /* Bcc */
17606: {
17607: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
17608: OpcodeFamily = 55; CurrentInstrCycles = 8;
17609: {{ uae_u32 src = srcreg;
17610: if (!cctrue(9)) goto didnt_jump;
17611: m68k_incpc ((uae_s32)src + 2);
17612: return 10;
17613: didnt_jump:;
17614: }}m68k_incpc(2);
17615: endlabel1207: ;
17616: return 8;
17617: }
17618: unsigned long REGPARAM2 CPUFUNC(op_69ff_0)(uae_u32 opcode) /* Bcc */
17619: {
17620: OpcodeFamily = 55; CurrentInstrCycles = 12;
17621: {{ uae_s32 src = get_ilong(2);
17622: if (!cctrue(9)) goto didnt_jump;
17623: m68k_incpc ((uae_s32)src + 2);
17624: return 10;
17625: didnt_jump:;
17626: }}m68k_incpc(6);
17627: endlabel1208: ;
17628: return 12;
17629: }
17630: unsigned long REGPARAM2 CPUFUNC(op_6a00_0)(uae_u32 opcode) /* Bcc */
17631: {
17632: OpcodeFamily = 55; CurrentInstrCycles = 12;
17633: {{ uae_s16 src = get_iword(2);
17634: if (!cctrue(10)) goto didnt_jump;
17635: m68k_incpc ((uae_s32)src + 2);
17636: return 10;
17637: didnt_jump:;
17638: }}m68k_incpc(4);
17639: endlabel1209: ;
17640: return 12;
17641: }
17642: unsigned long REGPARAM2 CPUFUNC(op_6a01_0)(uae_u32 opcode) /* Bcc */
17643: {
17644: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
17645: OpcodeFamily = 55; CurrentInstrCycles = 8;
17646: {{ uae_u32 src = srcreg;
17647: if (!cctrue(10)) goto didnt_jump;
17648: m68k_incpc ((uae_s32)src + 2);
17649: return 10;
17650: didnt_jump:;
17651: }}m68k_incpc(2);
17652: endlabel1210: ;
17653: return 8;
17654: }
17655: unsigned long REGPARAM2 CPUFUNC(op_6aff_0)(uae_u32 opcode) /* Bcc */
17656: {
17657: OpcodeFamily = 55; CurrentInstrCycles = 12;
17658: {{ uae_s32 src = get_ilong(2);
17659: if (!cctrue(10)) goto didnt_jump;
17660: m68k_incpc ((uae_s32)src + 2);
17661: return 10;
17662: didnt_jump:;
17663: }}m68k_incpc(6);
17664: endlabel1211: ;
17665: return 12;
17666: }
17667: unsigned long REGPARAM2 CPUFUNC(op_6b00_0)(uae_u32 opcode) /* Bcc */
17668: {
17669: OpcodeFamily = 55; CurrentInstrCycles = 12;
17670: {{ uae_s16 src = get_iword(2);
17671: if (!cctrue(11)) goto didnt_jump;
17672: m68k_incpc ((uae_s32)src + 2);
17673: return 10;
17674: didnt_jump:;
17675: }}m68k_incpc(4);
17676: endlabel1212: ;
17677: return 12;
17678: }
17679: unsigned long REGPARAM2 CPUFUNC(op_6b01_0)(uae_u32 opcode) /* Bcc */
17680: {
17681: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
17682: OpcodeFamily = 55; CurrentInstrCycles = 8;
17683: {{ uae_u32 src = srcreg;
17684: if (!cctrue(11)) goto didnt_jump;
17685: m68k_incpc ((uae_s32)src + 2);
17686: return 10;
17687: didnt_jump:;
17688: }}m68k_incpc(2);
17689: endlabel1213: ;
17690: return 8;
17691: }
17692: unsigned long REGPARAM2 CPUFUNC(op_6bff_0)(uae_u32 opcode) /* Bcc */
17693: {
17694: OpcodeFamily = 55; CurrentInstrCycles = 12;
17695: {{ uae_s32 src = get_ilong(2);
17696: if (!cctrue(11)) goto didnt_jump;
17697: m68k_incpc ((uae_s32)src + 2);
17698: return 10;
17699: didnt_jump:;
17700: }}m68k_incpc(6);
17701: endlabel1214: ;
17702: return 12;
17703: }
17704: unsigned long REGPARAM2 CPUFUNC(op_6c00_0)(uae_u32 opcode) /* Bcc */
17705: {
17706: OpcodeFamily = 55; CurrentInstrCycles = 12;
17707: {{ uae_s16 src = get_iword(2);
17708: if (!cctrue(12)) goto didnt_jump;
17709: m68k_incpc ((uae_s32)src + 2);
17710: return 10;
17711: didnt_jump:;
17712: }}m68k_incpc(4);
17713: endlabel1215: ;
17714: return 12;
17715: }
17716: unsigned long REGPARAM2 CPUFUNC(op_6c01_0)(uae_u32 opcode) /* Bcc */
17717: {
17718: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
17719: OpcodeFamily = 55; CurrentInstrCycles = 8;
17720: {{ uae_u32 src = srcreg;
17721: if (!cctrue(12)) goto didnt_jump;
17722: m68k_incpc ((uae_s32)src + 2);
17723: return 10;
17724: didnt_jump:;
17725: }}m68k_incpc(2);
17726: endlabel1216: ;
17727: return 8;
17728: }
17729: unsigned long REGPARAM2 CPUFUNC(op_6cff_0)(uae_u32 opcode) /* Bcc */
17730: {
17731: OpcodeFamily = 55; CurrentInstrCycles = 12;
17732: {{ uae_s32 src = get_ilong(2);
17733: if (!cctrue(12)) goto didnt_jump;
17734: m68k_incpc ((uae_s32)src + 2);
17735: return 10;
17736: didnt_jump:;
17737: }}m68k_incpc(6);
17738: endlabel1217: ;
17739: return 12;
17740: }
17741: unsigned long REGPARAM2 CPUFUNC(op_6d00_0)(uae_u32 opcode) /* Bcc */
17742: {
17743: OpcodeFamily = 55; CurrentInstrCycles = 12;
17744: {{ uae_s16 src = get_iword(2);
17745: if (!cctrue(13)) goto didnt_jump;
17746: m68k_incpc ((uae_s32)src + 2);
17747: return 10;
17748: didnt_jump:;
17749: }}m68k_incpc(4);
17750: endlabel1218: ;
17751: return 12;
17752: }
17753: unsigned long REGPARAM2 CPUFUNC(op_6d01_0)(uae_u32 opcode) /* Bcc */
17754: {
17755: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
17756: OpcodeFamily = 55; CurrentInstrCycles = 8;
17757: {{ uae_u32 src = srcreg;
17758: if (!cctrue(13)) goto didnt_jump;
17759: m68k_incpc ((uae_s32)src + 2);
17760: return 10;
17761: didnt_jump:;
17762: }}m68k_incpc(2);
17763: endlabel1219: ;
17764: return 8;
17765: }
17766: unsigned long REGPARAM2 CPUFUNC(op_6dff_0)(uae_u32 opcode) /* Bcc */
17767: {
17768: OpcodeFamily = 55; CurrentInstrCycles = 12;
17769: {{ uae_s32 src = get_ilong(2);
17770: if (!cctrue(13)) goto didnt_jump;
17771: m68k_incpc ((uae_s32)src + 2);
17772: return 10;
17773: didnt_jump:;
17774: }}m68k_incpc(6);
17775: endlabel1220: ;
17776: return 12;
17777: }
17778: unsigned long REGPARAM2 CPUFUNC(op_6e00_0)(uae_u32 opcode) /* Bcc */
17779: {
17780: OpcodeFamily = 55; CurrentInstrCycles = 12;
17781: {{ uae_s16 src = get_iword(2);
17782: if (!cctrue(14)) goto didnt_jump;
17783: m68k_incpc ((uae_s32)src + 2);
17784: return 10;
17785: didnt_jump:;
17786: }}m68k_incpc(4);
17787: endlabel1221: ;
17788: return 12;
17789: }
17790: unsigned long REGPARAM2 CPUFUNC(op_6e01_0)(uae_u32 opcode) /* Bcc */
17791: {
17792: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
17793: OpcodeFamily = 55; CurrentInstrCycles = 8;
17794: {{ uae_u32 src = srcreg;
17795: if (!cctrue(14)) goto didnt_jump;
17796: m68k_incpc ((uae_s32)src + 2);
17797: return 10;
17798: didnt_jump:;
17799: }}m68k_incpc(2);
17800: endlabel1222: ;
17801: return 8;
17802: }
17803: unsigned long REGPARAM2 CPUFUNC(op_6eff_0)(uae_u32 opcode) /* Bcc */
17804: {
17805: OpcodeFamily = 55; CurrentInstrCycles = 12;
17806: {{ uae_s32 src = get_ilong(2);
17807: if (!cctrue(14)) goto didnt_jump;
17808: m68k_incpc ((uae_s32)src + 2);
17809: return 10;
17810: didnt_jump:;
17811: }}m68k_incpc(6);
17812: endlabel1223: ;
17813: return 12;
17814: }
17815: unsigned long REGPARAM2 CPUFUNC(op_6f00_0)(uae_u32 opcode) /* Bcc */
17816: {
17817: OpcodeFamily = 55; CurrentInstrCycles = 12;
17818: {{ uae_s16 src = get_iword(2);
17819: if (!cctrue(15)) goto didnt_jump;
17820: m68k_incpc ((uae_s32)src + 2);
17821: return 10;
17822: didnt_jump:;
17823: }}m68k_incpc(4);
17824: endlabel1224: ;
17825: return 12;
17826: }
17827: unsigned long REGPARAM2 CPUFUNC(op_6f01_0)(uae_u32 opcode) /* Bcc */
17828: {
17829: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
17830: OpcodeFamily = 55; CurrentInstrCycles = 8;
17831: {{ uae_u32 src = srcreg;
17832: if (!cctrue(15)) goto didnt_jump;
17833: m68k_incpc ((uae_s32)src + 2);
17834: return 10;
17835: didnt_jump:;
17836: }}m68k_incpc(2);
17837: endlabel1225: ;
17838: return 8;
17839: }
17840: unsigned long REGPARAM2 CPUFUNC(op_6fff_0)(uae_u32 opcode) /* Bcc */
17841: {
17842: OpcodeFamily = 55; CurrentInstrCycles = 12;
17843: {{ uae_s32 src = get_ilong(2);
17844: if (!cctrue(15)) goto didnt_jump;
17845: m68k_incpc ((uae_s32)src + 2);
17846: return 10;
17847: didnt_jump:;
17848: }}m68k_incpc(6);
17849: endlabel1226: ;
17850: return 12;
17851: }
17852: unsigned long REGPARAM2 CPUFUNC(op_7000_0)(uae_u32 opcode) /* MOVE */
17853: {
17854: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
17855: uae_u32 dstreg = (opcode >> 9) & 7;
17856: OpcodeFamily = 30; CurrentInstrCycles = 4;
17857: {{ uae_u32 src = srcreg;
17858: { CLEAR_CZNV;
17859: SET_ZFLG (((uae_s32)(src)) == 0);
17860: SET_NFLG (((uae_s32)(src)) < 0);
17861: m68k_dreg(regs, dstreg) = (src);
17862: }}}m68k_incpc(2);
17863: return 4;
17864: }
17865: unsigned long REGPARAM2 CPUFUNC(op_8000_0)(uae_u32 opcode) /* OR */
17866: {
17867: uae_u32 srcreg = (opcode & 7);
17868: uae_u32 dstreg = (opcode >> 9) & 7;
17869: OpcodeFamily = 1; CurrentInstrCycles = 4;
17870: {{ uae_s8 src = m68k_dreg(regs, srcreg);
17871: { uae_s8 dst = m68k_dreg(regs, dstreg);
17872: src |= dst;
17873: CLEAR_CZNV;
17874: SET_ZFLG (((uae_s8)(src)) == 0);
17875: SET_NFLG (((uae_s8)(src)) < 0);
17876: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
17877: }}}m68k_incpc(2);
17878: return 4;
17879: }
17880: unsigned long REGPARAM2 CPUFUNC(op_8010_0)(uae_u32 opcode) /* OR */
17881: {
17882: uae_u32 srcreg = (opcode & 7);
17883: uae_u32 dstreg = (opcode >> 9) & 7;
17884: OpcodeFamily = 1; CurrentInstrCycles = 8;
17885: {{ uaecptr srca = m68k_areg(regs, srcreg);
17886: { uae_s8 src = get_byte(srca);
17887: { uae_s8 dst = m68k_dreg(regs, dstreg);
17888: src |= dst;
17889: CLEAR_CZNV;
17890: SET_ZFLG (((uae_s8)(src)) == 0);
17891: SET_NFLG (((uae_s8)(src)) < 0);
17892: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
17893: }}}}m68k_incpc(2);
17894: return 8;
17895: }
17896: unsigned long REGPARAM2 CPUFUNC(op_8018_0)(uae_u32 opcode) /* OR */
17897: {
17898: uae_u32 srcreg = (opcode & 7);
17899: uae_u32 dstreg = (opcode >> 9) & 7;
17900: OpcodeFamily = 1; CurrentInstrCycles = 8;
17901: {{ uaecptr srca = m68k_areg(regs, srcreg);
17902: { uae_s8 src = get_byte(srca);
17903: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
17904: { uae_s8 dst = m68k_dreg(regs, dstreg);
17905: src |= dst;
17906: CLEAR_CZNV;
17907: SET_ZFLG (((uae_s8)(src)) == 0);
17908: SET_NFLG (((uae_s8)(src)) < 0);
17909: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
17910: }}}}m68k_incpc(2);
17911: return 8;
17912: }
17913: unsigned long REGPARAM2 CPUFUNC(op_8020_0)(uae_u32 opcode) /* OR */
17914: {
17915: uae_u32 srcreg = (opcode & 7);
17916: uae_u32 dstreg = (opcode >> 9) & 7;
17917: OpcodeFamily = 1; CurrentInstrCycles = 10;
17918: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
17919: { uae_s8 src = get_byte(srca);
17920: m68k_areg (regs, srcreg) = srca;
17921: { uae_s8 dst = m68k_dreg(regs, dstreg);
17922: src |= dst;
17923: CLEAR_CZNV;
17924: SET_ZFLG (((uae_s8)(src)) == 0);
17925: SET_NFLG (((uae_s8)(src)) < 0);
17926: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
17927: }}}}m68k_incpc(2);
17928: return 10;
17929: }
17930: unsigned long REGPARAM2 CPUFUNC(op_8028_0)(uae_u32 opcode) /* OR */
17931: {
17932: uae_u32 srcreg = (opcode & 7);
17933: uae_u32 dstreg = (opcode >> 9) & 7;
17934: OpcodeFamily = 1; CurrentInstrCycles = 12;
17935: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
17936: { uae_s8 src = get_byte(srca);
17937: { uae_s8 dst = m68k_dreg(regs, dstreg);
17938: src |= dst;
17939: CLEAR_CZNV;
17940: SET_ZFLG (((uae_s8)(src)) == 0);
17941: SET_NFLG (((uae_s8)(src)) < 0);
17942: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
17943: }}}}m68k_incpc(4);
17944: return 12;
17945: }
17946: unsigned long REGPARAM2 CPUFUNC(op_8030_0)(uae_u32 opcode) /* OR */
17947: {
17948: uae_u32 srcreg = (opcode & 7);
17949: uae_u32 dstreg = (opcode >> 9) & 7;
17950: OpcodeFamily = 1; CurrentInstrCycles = 14;
17951: {{m68k_incpc(2);
17952: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
17953: BusCyclePenalty += 2;
17954: { uae_s8 src = get_byte(srca);
17955: { uae_s8 dst = m68k_dreg(regs, dstreg);
17956: src |= dst;
17957: CLEAR_CZNV;
17958: SET_ZFLG (((uae_s8)(src)) == 0);
17959: SET_NFLG (((uae_s8)(src)) < 0);
17960: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
17961: }}}}}return 14;
17962: }
17963: unsigned long REGPARAM2 CPUFUNC(op_8038_0)(uae_u32 opcode) /* OR */
17964: {
17965: uae_u32 dstreg = (opcode >> 9) & 7;
17966: OpcodeFamily = 1; CurrentInstrCycles = 12;
17967: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
17968: { uae_s8 src = get_byte(srca);
17969: { uae_s8 dst = m68k_dreg(regs, dstreg);
17970: src |= dst;
17971: CLEAR_CZNV;
17972: SET_ZFLG (((uae_s8)(src)) == 0);
17973: SET_NFLG (((uae_s8)(src)) < 0);
17974: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
17975: }}}}m68k_incpc(4);
17976: return 12;
17977: }
17978: unsigned long REGPARAM2 CPUFUNC(op_8039_0)(uae_u32 opcode) /* OR */
17979: {
17980: uae_u32 dstreg = (opcode >> 9) & 7;
17981: OpcodeFamily = 1; CurrentInstrCycles = 16;
17982: {{ uaecptr srca = get_ilong(2);
17983: { uae_s8 src = get_byte(srca);
17984: { uae_s8 dst = m68k_dreg(regs, dstreg);
17985: src |= dst;
17986: CLEAR_CZNV;
17987: SET_ZFLG (((uae_s8)(src)) == 0);
17988: SET_NFLG (((uae_s8)(src)) < 0);
17989: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
17990: }}}}m68k_incpc(6);
17991: return 16;
17992: }
17993: unsigned long REGPARAM2 CPUFUNC(op_803a_0)(uae_u32 opcode) /* OR */
17994: {
17995: uae_u32 dstreg = (opcode >> 9) & 7;
17996: OpcodeFamily = 1; CurrentInstrCycles = 12;
17997: {{ uaecptr srca = m68k_getpc () + 2;
17998: srca += (uae_s32)(uae_s16)get_iword(2);
17999: { uae_s8 src = get_byte(srca);
18000: { uae_s8 dst = m68k_dreg(regs, dstreg);
18001: src |= dst;
18002: CLEAR_CZNV;
18003: SET_ZFLG (((uae_s8)(src)) == 0);
18004: SET_NFLG (((uae_s8)(src)) < 0);
18005: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
18006: }}}}m68k_incpc(4);
18007: return 12;
18008: }
18009: unsigned long REGPARAM2 CPUFUNC(op_803b_0)(uae_u32 opcode) /* OR */
18010: {
18011: uae_u32 dstreg = (opcode >> 9) & 7;
18012: OpcodeFamily = 1; CurrentInstrCycles = 14;
18013: {{m68k_incpc(2);
18014: { uaecptr tmppc = m68k_getpc();
18015: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
18016: BusCyclePenalty += 2;
18017: { uae_s8 src = get_byte(srca);
18018: { uae_s8 dst = m68k_dreg(regs, dstreg);
18019: src |= dst;
18020: CLEAR_CZNV;
18021: SET_ZFLG (((uae_s8)(src)) == 0);
18022: SET_NFLG (((uae_s8)(src)) < 0);
18023: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
18024: }}}}}return 14;
18025: }
18026: unsigned long REGPARAM2 CPUFUNC(op_803c_0)(uae_u32 opcode) /* OR */
18027: {
18028: uae_u32 dstreg = (opcode >> 9) & 7;
18029: OpcodeFamily = 1; CurrentInstrCycles = 8;
18030: {{ uae_s8 src = get_ibyte(2);
18031: { uae_s8 dst = m68k_dreg(regs, dstreg);
18032: src |= dst;
18033: CLEAR_CZNV;
18034: SET_ZFLG (((uae_s8)(src)) == 0);
18035: SET_NFLG (((uae_s8)(src)) < 0);
18036: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
18037: }}}m68k_incpc(4);
18038: return 8;
18039: }
18040: unsigned long REGPARAM2 CPUFUNC(op_8040_0)(uae_u32 opcode) /* OR */
18041: {
18042: uae_u32 srcreg = (opcode & 7);
18043: uae_u32 dstreg = (opcode >> 9) & 7;
18044: OpcodeFamily = 1; CurrentInstrCycles = 4;
18045: {{ uae_s16 src = m68k_dreg(regs, srcreg);
18046: { uae_s16 dst = m68k_dreg(regs, dstreg);
18047: src |= dst;
18048: CLEAR_CZNV;
18049: SET_ZFLG (((uae_s16)(src)) == 0);
18050: SET_NFLG (((uae_s16)(src)) < 0);
18051: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
18052: }}}m68k_incpc(2);
18053: return 4;
18054: }
18055: unsigned long REGPARAM2 CPUFUNC(op_8050_0)(uae_u32 opcode) /* OR */
18056: {
18057: uae_u32 srcreg = (opcode & 7);
18058: uae_u32 dstreg = (opcode >> 9) & 7;
18059: OpcodeFamily = 1; CurrentInstrCycles = 8;
18060: {{ uaecptr srca = m68k_areg(regs, srcreg);
18061: { uae_s16 src = get_word(srca);
18062: { uae_s16 dst = m68k_dreg(regs, dstreg);
18063: src |= dst;
18064: CLEAR_CZNV;
18065: SET_ZFLG (((uae_s16)(src)) == 0);
18066: SET_NFLG (((uae_s16)(src)) < 0);
18067: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
18068: }}}}m68k_incpc(2);
18069: return 8;
18070: }
18071: unsigned long REGPARAM2 CPUFUNC(op_8058_0)(uae_u32 opcode) /* OR */
18072: {
18073: uae_u32 srcreg = (opcode & 7);
18074: uae_u32 dstreg = (opcode >> 9) & 7;
18075: OpcodeFamily = 1; CurrentInstrCycles = 8;
18076: {{ uaecptr srca = m68k_areg(regs, srcreg);
18077: { uae_s16 src = get_word(srca);
18078: m68k_areg(regs, srcreg) += 2;
18079: { uae_s16 dst = m68k_dreg(regs, dstreg);
18080: src |= dst;
18081: CLEAR_CZNV;
18082: SET_ZFLG (((uae_s16)(src)) == 0);
18083: SET_NFLG (((uae_s16)(src)) < 0);
18084: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
18085: }}}}m68k_incpc(2);
18086: return 8;
18087: }
18088: unsigned long REGPARAM2 CPUFUNC(op_8060_0)(uae_u32 opcode) /* OR */
18089: {
18090: uae_u32 srcreg = (opcode & 7);
18091: uae_u32 dstreg = (opcode >> 9) & 7;
18092: OpcodeFamily = 1; CurrentInstrCycles = 10;
18093: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
18094: { uae_s16 src = get_word(srca);
18095: m68k_areg (regs, srcreg) = srca;
18096: { uae_s16 dst = m68k_dreg(regs, dstreg);
18097: src |= dst;
18098: CLEAR_CZNV;
18099: SET_ZFLG (((uae_s16)(src)) == 0);
18100: SET_NFLG (((uae_s16)(src)) < 0);
18101: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
18102: }}}}m68k_incpc(2);
18103: return 10;
18104: }
18105: unsigned long REGPARAM2 CPUFUNC(op_8068_0)(uae_u32 opcode) /* OR */
18106: {
18107: uae_u32 srcreg = (opcode & 7);
18108: uae_u32 dstreg = (opcode >> 9) & 7;
18109: OpcodeFamily = 1; CurrentInstrCycles = 12;
18110: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
18111: { uae_s16 src = get_word(srca);
18112: { uae_s16 dst = m68k_dreg(regs, dstreg);
18113: src |= dst;
18114: CLEAR_CZNV;
18115: SET_ZFLG (((uae_s16)(src)) == 0);
18116: SET_NFLG (((uae_s16)(src)) < 0);
18117: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
18118: }}}}m68k_incpc(4);
18119: return 12;
18120: }
18121: unsigned long REGPARAM2 CPUFUNC(op_8070_0)(uae_u32 opcode) /* OR */
18122: {
18123: uae_u32 srcreg = (opcode & 7);
18124: uae_u32 dstreg = (opcode >> 9) & 7;
18125: OpcodeFamily = 1; CurrentInstrCycles = 14;
18126: {{m68k_incpc(2);
18127: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
18128: BusCyclePenalty += 2;
18129: { uae_s16 src = get_word(srca);
18130: { uae_s16 dst = m68k_dreg(regs, dstreg);
18131: src |= dst;
18132: CLEAR_CZNV;
18133: SET_ZFLG (((uae_s16)(src)) == 0);
18134: SET_NFLG (((uae_s16)(src)) < 0);
18135: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
18136: }}}}}return 14;
18137: }
18138: unsigned long REGPARAM2 CPUFUNC(op_8078_0)(uae_u32 opcode) /* OR */
18139: {
18140: uae_u32 dstreg = (opcode >> 9) & 7;
18141: OpcodeFamily = 1; CurrentInstrCycles = 12;
18142: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
18143: { uae_s16 src = get_word(srca);
18144: { uae_s16 dst = m68k_dreg(regs, dstreg);
18145: src |= dst;
18146: CLEAR_CZNV;
18147: SET_ZFLG (((uae_s16)(src)) == 0);
18148: SET_NFLG (((uae_s16)(src)) < 0);
18149: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
18150: }}}}m68k_incpc(4);
18151: return 12;
18152: }
18153: unsigned long REGPARAM2 CPUFUNC(op_8079_0)(uae_u32 opcode) /* OR */
18154: {
18155: uae_u32 dstreg = (opcode >> 9) & 7;
18156: OpcodeFamily = 1; CurrentInstrCycles = 16;
18157: {{ uaecptr srca = get_ilong(2);
18158: { uae_s16 src = get_word(srca);
18159: { uae_s16 dst = m68k_dreg(regs, dstreg);
18160: src |= dst;
18161: CLEAR_CZNV;
18162: SET_ZFLG (((uae_s16)(src)) == 0);
18163: SET_NFLG (((uae_s16)(src)) < 0);
18164: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
18165: }}}}m68k_incpc(6);
18166: return 16;
18167: }
18168: unsigned long REGPARAM2 CPUFUNC(op_807a_0)(uae_u32 opcode) /* OR */
18169: {
18170: uae_u32 dstreg = (opcode >> 9) & 7;
18171: OpcodeFamily = 1; CurrentInstrCycles = 12;
18172: {{ uaecptr srca = m68k_getpc () + 2;
18173: srca += (uae_s32)(uae_s16)get_iword(2);
18174: { uae_s16 src = get_word(srca);
18175: { uae_s16 dst = m68k_dreg(regs, dstreg);
18176: src |= dst;
18177: CLEAR_CZNV;
18178: SET_ZFLG (((uae_s16)(src)) == 0);
18179: SET_NFLG (((uae_s16)(src)) < 0);
18180: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
18181: }}}}m68k_incpc(4);
18182: return 12;
18183: }
18184: unsigned long REGPARAM2 CPUFUNC(op_807b_0)(uae_u32 opcode) /* OR */
18185: {
18186: uae_u32 dstreg = (opcode >> 9) & 7;
18187: OpcodeFamily = 1; CurrentInstrCycles = 14;
18188: {{m68k_incpc(2);
18189: { uaecptr tmppc = m68k_getpc();
18190: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
18191: BusCyclePenalty += 2;
18192: { uae_s16 src = get_word(srca);
18193: { uae_s16 dst = m68k_dreg(regs, dstreg);
18194: src |= dst;
18195: CLEAR_CZNV;
18196: SET_ZFLG (((uae_s16)(src)) == 0);
18197: SET_NFLG (((uae_s16)(src)) < 0);
18198: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
18199: }}}}}return 14;
18200: }
18201: unsigned long REGPARAM2 CPUFUNC(op_807c_0)(uae_u32 opcode) /* OR */
18202: {
18203: uae_u32 dstreg = (opcode >> 9) & 7;
18204: OpcodeFamily = 1; CurrentInstrCycles = 8;
18205: {{ uae_s16 src = get_iword(2);
18206: { uae_s16 dst = m68k_dreg(regs, dstreg);
18207: src |= dst;
18208: CLEAR_CZNV;
18209: SET_ZFLG (((uae_s16)(src)) == 0);
18210: SET_NFLG (((uae_s16)(src)) < 0);
18211: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
18212: }}}m68k_incpc(4);
18213: return 8;
18214: }
18215: unsigned long REGPARAM2 CPUFUNC(op_8080_0)(uae_u32 opcode) /* OR */
18216: {
18217: uae_u32 srcreg = (opcode & 7);
18218: uae_u32 dstreg = (opcode >> 9) & 7;
18219: OpcodeFamily = 1; CurrentInstrCycles = 8;
18220: {{ uae_s32 src = m68k_dreg(regs, srcreg);
18221: { uae_s32 dst = m68k_dreg(regs, dstreg);
18222: src |= dst;
18223: CLEAR_CZNV;
18224: SET_ZFLG (((uae_s32)(src)) == 0);
18225: SET_NFLG (((uae_s32)(src)) < 0);
18226: m68k_dreg(regs, dstreg) = (src);
18227: }}}m68k_incpc(2);
18228: return 8;
18229: }
18230: unsigned long REGPARAM2 CPUFUNC(op_8090_0)(uae_u32 opcode) /* OR */
18231: {
18232: uae_u32 srcreg = (opcode & 7);
18233: uae_u32 dstreg = (opcode >> 9) & 7;
18234: OpcodeFamily = 1; CurrentInstrCycles = 14;
18235: {{ uaecptr srca = m68k_areg(regs, srcreg);
18236: { uae_s32 src = get_long(srca);
18237: { uae_s32 dst = m68k_dreg(regs, dstreg);
18238: src |= dst;
18239: CLEAR_CZNV;
18240: SET_ZFLG (((uae_s32)(src)) == 0);
18241: SET_NFLG (((uae_s32)(src)) < 0);
18242: m68k_dreg(regs, dstreg) = (src);
18243: }}}}m68k_incpc(2);
18244: return 14;
18245: }
18246: unsigned long REGPARAM2 CPUFUNC(op_8098_0)(uae_u32 opcode) /* OR */
18247: {
18248: uae_u32 srcreg = (opcode & 7);
18249: uae_u32 dstreg = (opcode >> 9) & 7;
18250: OpcodeFamily = 1; CurrentInstrCycles = 14;
18251: {{ uaecptr srca = m68k_areg(regs, srcreg);
18252: { uae_s32 src = get_long(srca);
18253: m68k_areg(regs, srcreg) += 4;
18254: { uae_s32 dst = m68k_dreg(regs, dstreg);
18255: src |= dst;
18256: CLEAR_CZNV;
18257: SET_ZFLG (((uae_s32)(src)) == 0);
18258: SET_NFLG (((uae_s32)(src)) < 0);
18259: m68k_dreg(regs, dstreg) = (src);
18260: }}}}m68k_incpc(2);
18261: return 14;
18262: }
18263: unsigned long REGPARAM2 CPUFUNC(op_80a0_0)(uae_u32 opcode) /* OR */
18264: {
18265: uae_u32 srcreg = (opcode & 7);
18266: uae_u32 dstreg = (opcode >> 9) & 7;
18267: OpcodeFamily = 1; CurrentInstrCycles = 16;
18268: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
18269: { uae_s32 src = get_long(srca);
18270: m68k_areg (regs, srcreg) = srca;
18271: { uae_s32 dst = m68k_dreg(regs, dstreg);
18272: src |= dst;
18273: CLEAR_CZNV;
18274: SET_ZFLG (((uae_s32)(src)) == 0);
18275: SET_NFLG (((uae_s32)(src)) < 0);
18276: m68k_dreg(regs, dstreg) = (src);
18277: }}}}m68k_incpc(2);
18278: return 16;
18279: }
18280: unsigned long REGPARAM2 CPUFUNC(op_80a8_0)(uae_u32 opcode) /* OR */
18281: {
18282: uae_u32 srcreg = (opcode & 7);
18283: uae_u32 dstreg = (opcode >> 9) & 7;
18284: OpcodeFamily = 1; CurrentInstrCycles = 18;
18285: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
18286: { uae_s32 src = get_long(srca);
18287: { uae_s32 dst = m68k_dreg(regs, dstreg);
18288: src |= dst;
18289: CLEAR_CZNV;
18290: SET_ZFLG (((uae_s32)(src)) == 0);
18291: SET_NFLG (((uae_s32)(src)) < 0);
18292: m68k_dreg(regs, dstreg) = (src);
18293: }}}}m68k_incpc(4);
18294: return 18;
18295: }
18296: unsigned long REGPARAM2 CPUFUNC(op_80b0_0)(uae_u32 opcode) /* OR */
18297: {
18298: uae_u32 srcreg = (opcode & 7);
18299: uae_u32 dstreg = (opcode >> 9) & 7;
18300: OpcodeFamily = 1; CurrentInstrCycles = 20;
18301: {{m68k_incpc(2);
18302: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
18303: BusCyclePenalty += 2;
18304: { uae_s32 src = get_long(srca);
18305: { uae_s32 dst = m68k_dreg(regs, dstreg);
18306: src |= dst;
18307: CLEAR_CZNV;
18308: SET_ZFLG (((uae_s32)(src)) == 0);
18309: SET_NFLG (((uae_s32)(src)) < 0);
18310: m68k_dreg(regs, dstreg) = (src);
18311: }}}}}return 20;
18312: }
18313: unsigned long REGPARAM2 CPUFUNC(op_80b8_0)(uae_u32 opcode) /* OR */
18314: {
18315: uae_u32 dstreg = (opcode >> 9) & 7;
18316: OpcodeFamily = 1; CurrentInstrCycles = 18;
18317: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
18318: { uae_s32 src = get_long(srca);
18319: { uae_s32 dst = m68k_dreg(regs, dstreg);
18320: src |= dst;
18321: CLEAR_CZNV;
18322: SET_ZFLG (((uae_s32)(src)) == 0);
18323: SET_NFLG (((uae_s32)(src)) < 0);
18324: m68k_dreg(regs, dstreg) = (src);
18325: }}}}m68k_incpc(4);
18326: return 18;
18327: }
18328: unsigned long REGPARAM2 CPUFUNC(op_80b9_0)(uae_u32 opcode) /* OR */
18329: {
18330: uae_u32 dstreg = (opcode >> 9) & 7;
18331: OpcodeFamily = 1; CurrentInstrCycles = 22;
18332: {{ uaecptr srca = get_ilong(2);
18333: { uae_s32 src = get_long(srca);
18334: { uae_s32 dst = m68k_dreg(regs, dstreg);
18335: src |= dst;
18336: CLEAR_CZNV;
18337: SET_ZFLG (((uae_s32)(src)) == 0);
18338: SET_NFLG (((uae_s32)(src)) < 0);
18339: m68k_dreg(regs, dstreg) = (src);
18340: }}}}m68k_incpc(6);
18341: return 22;
18342: }
18343: unsigned long REGPARAM2 CPUFUNC(op_80ba_0)(uae_u32 opcode) /* OR */
18344: {
18345: uae_u32 dstreg = (opcode >> 9) & 7;
18346: OpcodeFamily = 1; CurrentInstrCycles = 18;
18347: {{ uaecptr srca = m68k_getpc () + 2;
18348: srca += (uae_s32)(uae_s16)get_iword(2);
18349: { uae_s32 src = get_long(srca);
18350: { uae_s32 dst = m68k_dreg(regs, dstreg);
18351: src |= dst;
18352: CLEAR_CZNV;
18353: SET_ZFLG (((uae_s32)(src)) == 0);
18354: SET_NFLG (((uae_s32)(src)) < 0);
18355: m68k_dreg(regs, dstreg) = (src);
18356: }}}}m68k_incpc(4);
18357: return 18;
18358: }
18359: unsigned long REGPARAM2 CPUFUNC(op_80bb_0)(uae_u32 opcode) /* OR */
18360: {
18361: uae_u32 dstreg = (opcode >> 9) & 7;
18362: OpcodeFamily = 1; CurrentInstrCycles = 20;
18363: {{m68k_incpc(2);
18364: { uaecptr tmppc = m68k_getpc();
18365: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
18366: BusCyclePenalty += 2;
18367: { uae_s32 src = get_long(srca);
18368: { uae_s32 dst = m68k_dreg(regs, dstreg);
18369: src |= dst;
18370: CLEAR_CZNV;
18371: SET_ZFLG (((uae_s32)(src)) == 0);
18372: SET_NFLG (((uae_s32)(src)) < 0);
18373: m68k_dreg(regs, dstreg) = (src);
18374: }}}}}return 20;
18375: }
18376: unsigned long REGPARAM2 CPUFUNC(op_80bc_0)(uae_u32 opcode) /* OR */
18377: {
18378: uae_u32 dstreg = (opcode >> 9) & 7;
18379: OpcodeFamily = 1; CurrentInstrCycles = 16;
18380: {{ uae_s32 src = get_ilong(2);
18381: { uae_s32 dst = m68k_dreg(regs, dstreg);
18382: src |= dst;
18383: CLEAR_CZNV;
18384: SET_ZFLG (((uae_s32)(src)) == 0);
18385: SET_NFLG (((uae_s32)(src)) < 0);
18386: m68k_dreg(regs, dstreg) = (src);
18387: }}}m68k_incpc(6);
18388: return 16;
18389: }
18390: unsigned long REGPARAM2 CPUFUNC(op_80c0_0)(uae_u32 opcode) /* DIVU */
18391: {
18392: uae_u32 srcreg = (opcode & 7);
18393: uae_u32 dstreg = (opcode >> 9) & 7;
18394: unsigned int retcycles = 0;
18395: OpcodeFamily = 60; CurrentInstrCycles = 4;
18396: { uaecptr oldpc = m68k_getpc();
18397: { uae_s16 src = m68k_dreg(regs, srcreg);
18398: { uae_s32 dst = m68k_dreg(regs, dstreg);
18399: m68k_incpc(2);
18400: if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel1261; } else {
18401: uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
18402: uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
18403: if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
18404: {
18405: CLEAR_CZNV;
18406: SET_ZFLG (((uae_s16)(newv)) == 0);
18407: SET_NFLG (((uae_s16)(newv)) < 0);
18408: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
18409: m68k_dreg(regs, dstreg) = (newv);
18410: }
18411: }
18412: retcycles = getDivu68kCycles((uae_u32)dst, (uae_u16)src);
18413: }}}endlabel1261: ;
18414: return (4+retcycles);
18415: }
18416: unsigned long REGPARAM2 CPUFUNC(op_80d0_0)(uae_u32 opcode) /* DIVU */
18417: {
18418: uae_u32 srcreg = (opcode & 7);
18419: uae_u32 dstreg = (opcode >> 9) & 7;
18420: unsigned int retcycles = 0;
18421: OpcodeFamily = 60; CurrentInstrCycles = 8;
18422: { uaecptr oldpc = m68k_getpc();
18423: { uaecptr srca = m68k_areg(regs, srcreg);
18424: { uae_s16 src = get_word(srca);
18425: { uae_s32 dst = m68k_dreg(regs, dstreg);
18426: m68k_incpc(2);
18427: if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel1262; } else {
18428: uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
18429: uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
18430: if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
18431: {
18432: CLEAR_CZNV;
18433: SET_ZFLG (((uae_s16)(newv)) == 0);
18434: SET_NFLG (((uae_s16)(newv)) < 0);
18435: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
18436: m68k_dreg(regs, dstreg) = (newv);
18437: }
18438: }
18439: retcycles = getDivu68kCycles((uae_u32)dst, (uae_u16)src);
18440: }}}}endlabel1262: ;
18441: return (8+retcycles);
18442: }
18443: unsigned long REGPARAM2 CPUFUNC(op_80d8_0)(uae_u32 opcode) /* DIVU */
18444: {
18445: uae_u32 srcreg = (opcode & 7);
18446: uae_u32 dstreg = (opcode >> 9) & 7;
18447: unsigned int retcycles = 0;
18448: OpcodeFamily = 60; CurrentInstrCycles = 8;
18449: { uaecptr oldpc = m68k_getpc();
18450: { uaecptr srca = m68k_areg(regs, srcreg);
18451: { uae_s16 src = get_word(srca);
18452: m68k_areg(regs, srcreg) += 2;
18453: { uae_s32 dst = m68k_dreg(regs, dstreg);
18454: m68k_incpc(2);
18455: if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel1263; } else {
18456: uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
18457: uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
18458: if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
18459: {
18460: CLEAR_CZNV;
18461: SET_ZFLG (((uae_s16)(newv)) == 0);
18462: SET_NFLG (((uae_s16)(newv)) < 0);
18463: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
18464: m68k_dreg(regs, dstreg) = (newv);
18465: }
18466: }
18467: retcycles = getDivu68kCycles((uae_u32)dst, (uae_u16)src);
18468: }}}}endlabel1263: ;
18469: return (8+retcycles);
18470: }
18471: unsigned long REGPARAM2 CPUFUNC(op_80e0_0)(uae_u32 opcode) /* DIVU */
18472: {
18473: uae_u32 srcreg = (opcode & 7);
18474: uae_u32 dstreg = (opcode >> 9) & 7;
18475: unsigned int retcycles = 0;
18476: OpcodeFamily = 60; CurrentInstrCycles = 10;
18477: { uaecptr oldpc = m68k_getpc();
18478: { uaecptr srca = m68k_areg(regs, srcreg) - 2;
18479: { uae_s16 src = get_word(srca);
18480: m68k_areg (regs, srcreg) = srca;
18481: { uae_s32 dst = m68k_dreg(regs, dstreg);
18482: m68k_incpc(2);
18483: if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel1264; } else {
18484: uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
18485: uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
18486: if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
18487: {
18488: CLEAR_CZNV;
18489: SET_ZFLG (((uae_s16)(newv)) == 0);
18490: SET_NFLG (((uae_s16)(newv)) < 0);
18491: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
18492: m68k_dreg(regs, dstreg) = (newv);
18493: }
18494: }
18495: retcycles = getDivu68kCycles((uae_u32)dst, (uae_u16)src);
18496: }}}}endlabel1264: ;
18497: return (10+retcycles);
18498: }
18499: unsigned long REGPARAM2 CPUFUNC(op_80e8_0)(uae_u32 opcode) /* DIVU */
18500: {
18501: uae_u32 srcreg = (opcode & 7);
18502: uae_u32 dstreg = (opcode >> 9) & 7;
18503: unsigned int retcycles = 0;
18504: OpcodeFamily = 60; CurrentInstrCycles = 12;
18505: { uaecptr oldpc = m68k_getpc();
18506: { uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
18507: { uae_s16 src = get_word(srca);
18508: { uae_s32 dst = m68k_dreg(regs, dstreg);
18509: m68k_incpc(4);
18510: if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel1265; } else {
18511: uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
18512: uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
18513: if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
18514: {
18515: CLEAR_CZNV;
18516: SET_ZFLG (((uae_s16)(newv)) == 0);
18517: SET_NFLG (((uae_s16)(newv)) < 0);
18518: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
18519: m68k_dreg(regs, dstreg) = (newv);
18520: }
18521: }
18522: retcycles = getDivu68kCycles((uae_u32)dst, (uae_u16)src);
18523: }}}}endlabel1265: ;
18524: return (12+retcycles);
18525: }
18526: unsigned long REGPARAM2 CPUFUNC(op_80f0_0)(uae_u32 opcode) /* DIVU */
18527: {
18528: uae_u32 srcreg = (opcode & 7);
18529: uae_u32 dstreg = (opcode >> 9) & 7;
18530: unsigned int retcycles = 0;
18531: OpcodeFamily = 60; CurrentInstrCycles = 14;
18532: { uaecptr oldpc = m68k_getpc();
18533: {m68k_incpc(2);
18534: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
18535: BusCyclePenalty += 2;
18536: { uae_s16 src = get_word(srca);
18537: { uae_s32 dst = m68k_dreg(regs, dstreg);
18538: if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel1266; } else {
18539: uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
18540: uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
18541: if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
18542: {
18543: CLEAR_CZNV;
18544: SET_ZFLG (((uae_s16)(newv)) == 0);
18545: SET_NFLG (((uae_s16)(newv)) < 0);
18546: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
18547: m68k_dreg(regs, dstreg) = (newv);
18548: }
18549: }
18550: retcycles = getDivu68kCycles((uae_u32)dst, (uae_u16)src);
18551: }}}}}endlabel1266: ;
18552: return (14+retcycles);
18553: }
18554: unsigned long REGPARAM2 CPUFUNC(op_80f8_0)(uae_u32 opcode) /* DIVU */
18555: {
18556: uae_u32 dstreg = (opcode >> 9) & 7;
18557: unsigned int retcycles = 0;
18558: OpcodeFamily = 60; CurrentInstrCycles = 12;
18559: { uaecptr oldpc = m68k_getpc();
18560: { uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
18561: { uae_s16 src = get_word(srca);
18562: { uae_s32 dst = m68k_dreg(regs, dstreg);
18563: m68k_incpc(4);
18564: if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel1267; } else {
18565: uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
18566: uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
18567: if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
18568: {
18569: CLEAR_CZNV;
18570: SET_ZFLG (((uae_s16)(newv)) == 0);
18571: SET_NFLG (((uae_s16)(newv)) < 0);
18572: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
18573: m68k_dreg(regs, dstreg) = (newv);
18574: }
18575: }
18576: retcycles = getDivu68kCycles((uae_u32)dst, (uae_u16)src);
18577: }}}}endlabel1267: ;
18578: return (12+retcycles);
18579: }
18580: unsigned long REGPARAM2 CPUFUNC(op_80f9_0)(uae_u32 opcode) /* DIVU */
18581: {
18582: uae_u32 dstreg = (opcode >> 9) & 7;
18583: unsigned int retcycles = 0;
18584: OpcodeFamily = 60; CurrentInstrCycles = 16;
18585: { uaecptr oldpc = m68k_getpc();
18586: { uaecptr srca = get_ilong(2);
18587: { uae_s16 src = get_word(srca);
18588: { uae_s32 dst = m68k_dreg(regs, dstreg);
18589: m68k_incpc(6);
18590: if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel1268; } else {
18591: uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
18592: uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
18593: if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
18594: {
18595: CLEAR_CZNV;
18596: SET_ZFLG (((uae_s16)(newv)) == 0);
18597: SET_NFLG (((uae_s16)(newv)) < 0);
18598: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
18599: m68k_dreg(regs, dstreg) = (newv);
18600: }
18601: }
18602: retcycles = getDivu68kCycles((uae_u32)dst, (uae_u16)src);
18603: }}}}endlabel1268: ;
18604: return (16+retcycles);
18605: }
18606: unsigned long REGPARAM2 CPUFUNC(op_80fa_0)(uae_u32 opcode) /* DIVU */
18607: {
18608: uae_u32 dstreg = (opcode >> 9) & 7;
18609: unsigned int retcycles = 0;
18610: OpcodeFamily = 60; CurrentInstrCycles = 12;
18611: { uaecptr oldpc = m68k_getpc();
18612: { uaecptr srca = m68k_getpc () + 2;
18613: srca += (uae_s32)(uae_s16)get_iword(2);
18614: { uae_s16 src = get_word(srca);
18615: { uae_s32 dst = m68k_dreg(regs, dstreg);
18616: m68k_incpc(4);
18617: if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel1269; } else {
18618: uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
18619: uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
18620: if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
18621: {
18622: CLEAR_CZNV;
18623: SET_ZFLG (((uae_s16)(newv)) == 0);
18624: SET_NFLG (((uae_s16)(newv)) < 0);
18625: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
18626: m68k_dreg(regs, dstreg) = (newv);
18627: }
18628: }
18629: retcycles = getDivu68kCycles((uae_u32)dst, (uae_u16)src);
18630: }}}}endlabel1269: ;
18631: return (12+retcycles);
18632: }
18633: unsigned long REGPARAM2 CPUFUNC(op_80fb_0)(uae_u32 opcode) /* DIVU */
18634: {
18635: uae_u32 dstreg = (opcode >> 9) & 7;
18636: unsigned int retcycles = 0;
18637: OpcodeFamily = 60; CurrentInstrCycles = 14;
18638: { uaecptr oldpc = m68k_getpc();
18639: {m68k_incpc(2);
18640: { uaecptr tmppc = m68k_getpc();
18641: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
18642: BusCyclePenalty += 2;
18643: { uae_s16 src = get_word(srca);
18644: { uae_s32 dst = m68k_dreg(regs, dstreg);
18645: if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel1270; } else {
18646: uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
18647: uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
18648: if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
18649: {
18650: CLEAR_CZNV;
18651: SET_ZFLG (((uae_s16)(newv)) == 0);
18652: SET_NFLG (((uae_s16)(newv)) < 0);
18653: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
18654: m68k_dreg(regs, dstreg) = (newv);
18655: }
18656: }
18657: retcycles = getDivu68kCycles((uae_u32)dst, (uae_u16)src);
18658: }}}}}endlabel1270: ;
18659: return (14+retcycles);
18660: }
18661: unsigned long REGPARAM2 CPUFUNC(op_80fc_0)(uae_u32 opcode) /* DIVU */
18662: {
18663: uae_u32 dstreg = (opcode >> 9) & 7;
18664: unsigned int retcycles = 0;
18665: OpcodeFamily = 60; CurrentInstrCycles = 8;
18666: { uaecptr oldpc = m68k_getpc();
18667: { uae_s16 src = get_iword(2);
18668: { uae_s32 dst = m68k_dreg(regs, dstreg);
18669: m68k_incpc(4);
18670: if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel1271; } else {
18671: uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
18672: uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
18673: if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
18674: {
18675: CLEAR_CZNV;
18676: SET_ZFLG (((uae_s16)(newv)) == 0);
18677: SET_NFLG (((uae_s16)(newv)) < 0);
18678: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
18679: m68k_dreg(regs, dstreg) = (newv);
18680: }
18681: }
18682: retcycles = getDivu68kCycles((uae_u32)dst, (uae_u16)src);
18683: }}}endlabel1271: ;
18684: return (8+retcycles);
18685: }
18686: unsigned long REGPARAM2 CPUFUNC(op_8100_0)(uae_u32 opcode) /* SBCD */
18687: {
18688: uae_u32 srcreg = (opcode & 7);
18689: uae_u32 dstreg = (opcode >> 9) & 7;
18690: OpcodeFamily = 10; CurrentInstrCycles = 6;
18691: {{ uae_s8 src = m68k_dreg(regs, srcreg);
18692: { uae_s8 dst = m68k_dreg(regs, dstreg);
18693: { uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG ? 1 : 0);
18694: uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0);
18695: uae_u16 newv, tmp_newv;
18696: int bcd = 0;
18697: newv = tmp_newv = newv_hi + newv_lo;
18698: if (newv_lo & 0xF0) { newv -= 6; bcd = 6; };
18699: if ((((dst & 0xFF) - (src & 0xFF) - (GET_XFLG ? 1 : 0)) & 0x100) > 0xFF) { newv -= 0x60; }
18700: SET_CFLG ((((dst & 0xFF) - (src & 0xFF) - bcd - (GET_XFLG ? 1 : 0)) & 0x300) > 0xFF);
18701: COPY_CARRY;
18702: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
18703: SET_NFLG (((uae_s8)(newv)) < 0);
18704: SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0);
18705: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
18706: }}}}m68k_incpc(2);
18707: return 6;
18708: }
18709: unsigned long REGPARAM2 CPUFUNC(op_8108_0)(uae_u32 opcode) /* SBCD */
18710: {
18711: uae_u32 srcreg = (opcode & 7);
18712: uae_u32 dstreg = (opcode >> 9) & 7;
18713: OpcodeFamily = 10; CurrentInstrCycles = 18;
18714: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
18715: { uae_s8 src = get_byte(srca);
18716: m68k_areg (regs, srcreg) = srca;
18717: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
18718: { uae_s8 dst = get_byte(dsta);
18719: m68k_areg (regs, dstreg) = dsta;
18720: { uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG ? 1 : 0);
18721: uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0);
18722: uae_u16 newv, tmp_newv;
18723: int bcd = 0;
18724: newv = tmp_newv = newv_hi + newv_lo;
18725: if (newv_lo & 0xF0) { newv -= 6; bcd = 6; };
18726: if ((((dst & 0xFF) - (src & 0xFF) - (GET_XFLG ? 1 : 0)) & 0x100) > 0xFF) { newv -= 0x60; }
18727: SET_CFLG ((((dst & 0xFF) - (src & 0xFF) - bcd - (GET_XFLG ? 1 : 0)) & 0x300) > 0xFF);
18728: COPY_CARRY;
18729: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
18730: SET_NFLG (((uae_s8)(newv)) < 0);
18731: SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0);
18732: put_byte(dsta,newv);
18733: }}}}}}m68k_incpc(2);
18734: return 18;
18735: }
18736: unsigned long REGPARAM2 CPUFUNC(op_8110_0)(uae_u32 opcode) /* OR */
18737: {
18738: uae_u32 srcreg = ((opcode >> 9) & 7);
18739: uae_u32 dstreg = opcode & 7;
18740: OpcodeFamily = 1; CurrentInstrCycles = 12;
18741: {{ uae_s8 src = m68k_dreg(regs, srcreg);
18742: { uaecptr dsta = m68k_areg(regs, dstreg);
18743: { uae_s8 dst = get_byte(dsta);
18744: src |= dst;
18745: CLEAR_CZNV;
18746: SET_ZFLG (((uae_s8)(src)) == 0);
18747: SET_NFLG (((uae_s8)(src)) < 0);
18748: put_byte(dsta,src);
18749: }}}}m68k_incpc(2);
18750: return 12;
18751: }
18752: unsigned long REGPARAM2 CPUFUNC(op_8118_0)(uae_u32 opcode) /* OR */
18753: {
18754: uae_u32 srcreg = ((opcode >> 9) & 7);
18755: uae_u32 dstreg = opcode & 7;
18756: OpcodeFamily = 1; CurrentInstrCycles = 12;
18757: {{ uae_s8 src = m68k_dreg(regs, srcreg);
18758: { uaecptr dsta = m68k_areg(regs, dstreg);
18759: { uae_s8 dst = get_byte(dsta);
18760: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
18761: src |= dst;
18762: CLEAR_CZNV;
18763: SET_ZFLG (((uae_s8)(src)) == 0);
18764: SET_NFLG (((uae_s8)(src)) < 0);
18765: put_byte(dsta,src);
18766: }}}}m68k_incpc(2);
18767: return 12;
18768: }
18769: unsigned long REGPARAM2 CPUFUNC(op_8120_0)(uae_u32 opcode) /* OR */
18770: {
18771: uae_u32 srcreg = ((opcode >> 9) & 7);
18772: uae_u32 dstreg = opcode & 7;
18773: OpcodeFamily = 1; CurrentInstrCycles = 14;
18774: {{ uae_s8 src = m68k_dreg(regs, srcreg);
18775: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
18776: { uae_s8 dst = get_byte(dsta);
18777: m68k_areg (regs, dstreg) = dsta;
18778: src |= dst;
18779: CLEAR_CZNV;
18780: SET_ZFLG (((uae_s8)(src)) == 0);
18781: SET_NFLG (((uae_s8)(src)) < 0);
18782: put_byte(dsta,src);
18783: }}}}m68k_incpc(2);
18784: return 14;
18785: }
18786: unsigned long REGPARAM2 CPUFUNC(op_8128_0)(uae_u32 opcode) /* OR */
18787: {
18788: uae_u32 srcreg = ((opcode >> 9) & 7);
18789: uae_u32 dstreg = opcode & 7;
18790: OpcodeFamily = 1; CurrentInstrCycles = 16;
18791: {{ uae_s8 src = m68k_dreg(regs, srcreg);
18792: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
18793: { uae_s8 dst = get_byte(dsta);
18794: src |= dst;
18795: CLEAR_CZNV;
18796: SET_ZFLG (((uae_s8)(src)) == 0);
18797: SET_NFLG (((uae_s8)(src)) < 0);
18798: put_byte(dsta,src);
18799: }}}}m68k_incpc(4);
18800: return 16;
18801: }
18802: unsigned long REGPARAM2 CPUFUNC(op_8130_0)(uae_u32 opcode) /* OR */
18803: {
18804: uae_u32 srcreg = ((opcode >> 9) & 7);
18805: uae_u32 dstreg = opcode & 7;
18806: OpcodeFamily = 1; CurrentInstrCycles = 18;
18807: {{ uae_s8 src = m68k_dreg(regs, srcreg);
18808: {m68k_incpc(2);
18809: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
18810: BusCyclePenalty += 2;
18811: { uae_s8 dst = get_byte(dsta);
18812: src |= dst;
18813: CLEAR_CZNV;
18814: SET_ZFLG (((uae_s8)(src)) == 0);
18815: SET_NFLG (((uae_s8)(src)) < 0);
18816: put_byte(dsta,src);
18817: }}}}}return 18;
18818: }
18819: unsigned long REGPARAM2 CPUFUNC(op_8138_0)(uae_u32 opcode) /* OR */
18820: {
18821: uae_u32 srcreg = ((opcode >> 9) & 7);
18822: OpcodeFamily = 1; CurrentInstrCycles = 16;
18823: {{ uae_s8 src = m68k_dreg(regs, srcreg);
18824: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
18825: { uae_s8 dst = get_byte(dsta);
18826: src |= dst;
18827: CLEAR_CZNV;
18828: SET_ZFLG (((uae_s8)(src)) == 0);
18829: SET_NFLG (((uae_s8)(src)) < 0);
18830: put_byte(dsta,src);
18831: }}}}m68k_incpc(4);
18832: return 16;
18833: }
18834: unsigned long REGPARAM2 CPUFUNC(op_8139_0)(uae_u32 opcode) /* OR */
18835: {
18836: uae_u32 srcreg = ((opcode >> 9) & 7);
18837: OpcodeFamily = 1; CurrentInstrCycles = 20;
18838: {{ uae_s8 src = m68k_dreg(regs, srcreg);
18839: { uaecptr dsta = get_ilong(2);
18840: { uae_s8 dst = get_byte(dsta);
18841: src |= dst;
18842: CLEAR_CZNV;
18843: SET_ZFLG (((uae_s8)(src)) == 0);
18844: SET_NFLG (((uae_s8)(src)) < 0);
18845: put_byte(dsta,src);
18846: }}}}m68k_incpc(6);
18847: return 20;
18848: }
18849: unsigned long REGPARAM2 CPUFUNC(op_8140_0)(uae_u32 opcode) /* PACK */
18850: {
18851: uae_u32 srcreg = (opcode & 7);
18852: uae_u32 dstreg = (opcode >> 9) & 7;
18853: OpcodeFamily = 96; CurrentInstrCycles = 8;
18854: { uae_u16 val = m68k_dreg(regs, srcreg) + get_iword(2);
18855: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & 0xffffff00) | ((val >> 4) & 0xf0) | (val & 0xf);
18856: }m68k_incpc(4);
18857: return 8;
18858: }
18859: unsigned long REGPARAM2 CPUFUNC(op_8148_0)(uae_u32 opcode) /* PACK */
18860: {
18861: uae_u32 srcreg = (opcode & 7);
18862: uae_u32 dstreg = (opcode >> 9) & 7;
18863: OpcodeFamily = 96; CurrentInstrCycles = 8;
18864: { uae_u16 val;
18865: m68k_areg(regs, srcreg) -= areg_byteinc[srcreg];
18866: val = (uae_u16)get_byte(m68k_areg(regs, srcreg));
18867: m68k_areg(regs, srcreg) -= areg_byteinc[srcreg];
18868: val = (val | ((uae_u16)get_byte(m68k_areg(regs, srcreg)) << 8)) + get_iword(2);
18869: m68k_areg(regs, dstreg) -= areg_byteinc[dstreg];
18870: put_byte(m68k_areg(regs, dstreg),((val >> 4) & 0xf0) | (val & 0xf));
18871: }m68k_incpc(4);
18872: return 8;
18873: }
18874: unsigned long REGPARAM2 CPUFUNC(op_8150_0)(uae_u32 opcode) /* OR */
18875: {
18876: uae_u32 srcreg = ((opcode >> 9) & 7);
18877: uae_u32 dstreg = opcode & 7;
18878: OpcodeFamily = 1; CurrentInstrCycles = 12;
18879: {{ uae_s16 src = m68k_dreg(regs, srcreg);
18880: { uaecptr dsta = m68k_areg(regs, dstreg);
18881: { uae_s16 dst = get_word(dsta);
18882: src |= dst;
18883: CLEAR_CZNV;
18884: SET_ZFLG (((uae_s16)(src)) == 0);
18885: SET_NFLG (((uae_s16)(src)) < 0);
18886: put_word(dsta,src);
18887: }}}}m68k_incpc(2);
18888: return 12;
18889: }
18890: unsigned long REGPARAM2 CPUFUNC(op_8158_0)(uae_u32 opcode) /* OR */
18891: {
18892: uae_u32 srcreg = ((opcode >> 9) & 7);
18893: uae_u32 dstreg = opcode & 7;
18894: OpcodeFamily = 1; CurrentInstrCycles = 12;
18895: {{ uae_s16 src = m68k_dreg(regs, srcreg);
18896: { uaecptr dsta = m68k_areg(regs, dstreg);
18897: { uae_s16 dst = get_word(dsta);
18898: m68k_areg(regs, dstreg) += 2;
18899: src |= dst;
18900: CLEAR_CZNV;
18901: SET_ZFLG (((uae_s16)(src)) == 0);
18902: SET_NFLG (((uae_s16)(src)) < 0);
18903: put_word(dsta,src);
18904: }}}}m68k_incpc(2);
18905: return 12;
18906: }
18907: unsigned long REGPARAM2 CPUFUNC(op_8160_0)(uae_u32 opcode) /* OR */
18908: {
18909: uae_u32 srcreg = ((opcode >> 9) & 7);
18910: uae_u32 dstreg = opcode & 7;
18911: OpcodeFamily = 1; CurrentInstrCycles = 14;
18912: {{ uae_s16 src = m68k_dreg(regs, srcreg);
18913: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
18914: { uae_s16 dst = get_word(dsta);
18915: m68k_areg (regs, dstreg) = dsta;
18916: src |= dst;
18917: CLEAR_CZNV;
18918: SET_ZFLG (((uae_s16)(src)) == 0);
18919: SET_NFLG (((uae_s16)(src)) < 0);
18920: put_word(dsta,src);
18921: }}}}m68k_incpc(2);
18922: return 14;
18923: }
18924: unsigned long REGPARAM2 CPUFUNC(op_8168_0)(uae_u32 opcode) /* OR */
18925: {
18926: uae_u32 srcreg = ((opcode >> 9) & 7);
18927: uae_u32 dstreg = opcode & 7;
18928: OpcodeFamily = 1; CurrentInstrCycles = 16;
18929: {{ uae_s16 src = m68k_dreg(regs, srcreg);
18930: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
18931: { uae_s16 dst = get_word(dsta);
18932: src |= dst;
18933: CLEAR_CZNV;
18934: SET_ZFLG (((uae_s16)(src)) == 0);
18935: SET_NFLG (((uae_s16)(src)) < 0);
18936: put_word(dsta,src);
18937: }}}}m68k_incpc(4);
18938: return 16;
18939: }
18940: unsigned long REGPARAM2 CPUFUNC(op_8170_0)(uae_u32 opcode) /* OR */
18941: {
18942: uae_u32 srcreg = ((opcode >> 9) & 7);
18943: uae_u32 dstreg = opcode & 7;
18944: OpcodeFamily = 1; CurrentInstrCycles = 18;
18945: {{ uae_s16 src = m68k_dreg(regs, srcreg);
18946: {m68k_incpc(2);
18947: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
18948: BusCyclePenalty += 2;
18949: { uae_s16 dst = get_word(dsta);
18950: src |= dst;
18951: CLEAR_CZNV;
18952: SET_ZFLG (((uae_s16)(src)) == 0);
18953: SET_NFLG (((uae_s16)(src)) < 0);
18954: put_word(dsta,src);
18955: }}}}}return 18;
18956: }
18957: unsigned long REGPARAM2 CPUFUNC(op_8178_0)(uae_u32 opcode) /* OR */
18958: {
18959: uae_u32 srcreg = ((opcode >> 9) & 7);
18960: OpcodeFamily = 1; CurrentInstrCycles = 16;
18961: {{ uae_s16 src = m68k_dreg(regs, srcreg);
18962: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
18963: { uae_s16 dst = get_word(dsta);
18964: src |= dst;
18965: CLEAR_CZNV;
18966: SET_ZFLG (((uae_s16)(src)) == 0);
18967: SET_NFLG (((uae_s16)(src)) < 0);
18968: put_word(dsta,src);
18969: }}}}m68k_incpc(4);
18970: return 16;
18971: }
18972: unsigned long REGPARAM2 CPUFUNC(op_8179_0)(uae_u32 opcode) /* OR */
18973: {
18974: uae_u32 srcreg = ((opcode >> 9) & 7);
18975: OpcodeFamily = 1; CurrentInstrCycles = 20;
18976: {{ uae_s16 src = m68k_dreg(regs, srcreg);
18977: { uaecptr dsta = get_ilong(2);
18978: { uae_s16 dst = get_word(dsta);
18979: src |= dst;
18980: CLEAR_CZNV;
18981: SET_ZFLG (((uae_s16)(src)) == 0);
18982: SET_NFLG (((uae_s16)(src)) < 0);
18983: put_word(dsta,src);
18984: }}}}m68k_incpc(6);
18985: return 20;
18986: }
18987: unsigned long REGPARAM2 CPUFUNC(op_8180_0)(uae_u32 opcode) /* UNPK */
18988: {
18989: uae_u32 srcreg = (opcode & 7);
18990: uae_u32 dstreg = (opcode >> 9) & 7;
18991: OpcodeFamily = 97; CurrentInstrCycles = 8;
18992: { uae_u16 val = m68k_dreg(regs, srcreg);
18993: val = (((val << 4) & 0xf00) | (val & 0xf)) + get_iword(2);
18994: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & 0xffff0000) | (val & 0xffff);
18995: }m68k_incpc(4);
18996: return 8;
18997: }
18998: unsigned long REGPARAM2 CPUFUNC(op_8188_0)(uae_u32 opcode) /* UNPK */
18999: {
19000: uae_u32 srcreg = (opcode & 7);
19001: uae_u32 dstreg = (opcode >> 9) & 7;
19002: OpcodeFamily = 97; CurrentInstrCycles = 8;
19003: { uae_u16 val;
19004: m68k_areg(regs, srcreg) -= areg_byteinc[srcreg];
19005: val = (uae_u16)get_byte(m68k_areg(regs, srcreg));
19006: val = (((val << 4) & 0xf00) | (val & 0xf)) + get_iword(2);
19007: m68k_areg(regs, dstreg) -= areg_byteinc[dstreg];
19008: put_byte(m68k_areg(regs, dstreg),val);
19009: m68k_areg(regs, dstreg) -= areg_byteinc[dstreg];
19010: put_byte(m68k_areg(regs, dstreg),val >> 8);
19011: }m68k_incpc(4);
19012: return 8;
19013: }
19014: unsigned long REGPARAM2 CPUFUNC(op_8190_0)(uae_u32 opcode) /* OR */
19015: {
19016: uae_u32 srcreg = ((opcode >> 9) & 7);
19017: uae_u32 dstreg = opcode & 7;
19018: OpcodeFamily = 1; CurrentInstrCycles = 20;
19019: {{ uae_s32 src = m68k_dreg(regs, srcreg);
19020: { uaecptr dsta = m68k_areg(regs, dstreg);
19021: { uae_s32 dst = get_long(dsta);
19022: src |= dst;
19023: CLEAR_CZNV;
19024: SET_ZFLG (((uae_s32)(src)) == 0);
19025: SET_NFLG (((uae_s32)(src)) < 0);
19026: put_long(dsta,src);
19027: }}}}m68k_incpc(2);
19028: return 20;
19029: }
19030: unsigned long REGPARAM2 CPUFUNC(op_8198_0)(uae_u32 opcode) /* OR */
19031: {
19032: uae_u32 srcreg = ((opcode >> 9) & 7);
19033: uae_u32 dstreg = opcode & 7;
19034: OpcodeFamily = 1; CurrentInstrCycles = 20;
19035: {{ uae_s32 src = m68k_dreg(regs, srcreg);
19036: { uaecptr dsta = m68k_areg(regs, dstreg);
19037: { uae_s32 dst = get_long(dsta);
19038: m68k_areg(regs, dstreg) += 4;
19039: src |= dst;
19040: CLEAR_CZNV;
19041: SET_ZFLG (((uae_s32)(src)) == 0);
19042: SET_NFLG (((uae_s32)(src)) < 0);
19043: put_long(dsta,src);
19044: }}}}m68k_incpc(2);
19045: return 20;
19046: }
19047: unsigned long REGPARAM2 CPUFUNC(op_81a0_0)(uae_u32 opcode) /* OR */
19048: {
19049: uae_u32 srcreg = ((opcode >> 9) & 7);
19050: uae_u32 dstreg = opcode & 7;
19051: OpcodeFamily = 1; CurrentInstrCycles = 22;
19052: {{ uae_s32 src = m68k_dreg(regs, srcreg);
19053: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
19054: { uae_s32 dst = get_long(dsta);
19055: m68k_areg (regs, dstreg) = dsta;
19056: src |= dst;
19057: CLEAR_CZNV;
19058: SET_ZFLG (((uae_s32)(src)) == 0);
19059: SET_NFLG (((uae_s32)(src)) < 0);
19060: put_long(dsta,src);
19061: }}}}m68k_incpc(2);
19062: return 22;
19063: }
19064: unsigned long REGPARAM2 CPUFUNC(op_81a8_0)(uae_u32 opcode) /* OR */
19065: {
19066: uae_u32 srcreg = ((opcode >> 9) & 7);
19067: uae_u32 dstreg = opcode & 7;
19068: OpcodeFamily = 1; CurrentInstrCycles = 24;
19069: {{ uae_s32 src = m68k_dreg(regs, srcreg);
19070: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
19071: { uae_s32 dst = get_long(dsta);
19072: src |= dst;
19073: CLEAR_CZNV;
19074: SET_ZFLG (((uae_s32)(src)) == 0);
19075: SET_NFLG (((uae_s32)(src)) < 0);
19076: put_long(dsta,src);
19077: }}}}m68k_incpc(4);
19078: return 24;
19079: }
19080: unsigned long REGPARAM2 CPUFUNC(op_81b0_0)(uae_u32 opcode) /* OR */
19081: {
19082: uae_u32 srcreg = ((opcode >> 9) & 7);
19083: uae_u32 dstreg = opcode & 7;
19084: OpcodeFamily = 1; CurrentInstrCycles = 26;
19085: {{ uae_s32 src = m68k_dreg(regs, srcreg);
19086: {m68k_incpc(2);
19087: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
19088: BusCyclePenalty += 2;
19089: { uae_s32 dst = get_long(dsta);
19090: src |= dst;
19091: CLEAR_CZNV;
19092: SET_ZFLG (((uae_s32)(src)) == 0);
19093: SET_NFLG (((uae_s32)(src)) < 0);
19094: put_long(dsta,src);
19095: }}}}}return 26;
19096: }
19097: unsigned long REGPARAM2 CPUFUNC(op_81b8_0)(uae_u32 opcode) /* OR */
19098: {
19099: uae_u32 srcreg = ((opcode >> 9) & 7);
19100: OpcodeFamily = 1; CurrentInstrCycles = 24;
19101: {{ uae_s32 src = m68k_dreg(regs, srcreg);
19102: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
19103: { uae_s32 dst = get_long(dsta);
19104: src |= dst;
19105: CLEAR_CZNV;
19106: SET_ZFLG (((uae_s32)(src)) == 0);
19107: SET_NFLG (((uae_s32)(src)) < 0);
19108: put_long(dsta,src);
19109: }}}}m68k_incpc(4);
19110: return 24;
19111: }
19112: unsigned long REGPARAM2 CPUFUNC(op_81b9_0)(uae_u32 opcode) /* OR */
19113: {
19114: uae_u32 srcreg = ((opcode >> 9) & 7);
19115: OpcodeFamily = 1; CurrentInstrCycles = 28;
19116: {{ uae_s32 src = m68k_dreg(regs, srcreg);
19117: { uaecptr dsta = get_ilong(2);
19118: { uae_s32 dst = get_long(dsta);
19119: src |= dst;
19120: CLEAR_CZNV;
19121: SET_ZFLG (((uae_s32)(src)) == 0);
19122: SET_NFLG (((uae_s32)(src)) < 0);
19123: put_long(dsta,src);
19124: }}}}m68k_incpc(6);
19125: return 28;
19126: }
19127: unsigned long REGPARAM2 CPUFUNC(op_81c0_0)(uae_u32 opcode) /* DIVS */
19128: {
19129: uae_u32 srcreg = (opcode & 7);
19130: uae_u32 dstreg = (opcode >> 9) & 7;
19131: unsigned int retcycles = 0;
19132: OpcodeFamily = 61; CurrentInstrCycles = 4;
19133: { uaecptr oldpc = m68k_getpc();
19134: { uae_s16 src = m68k_dreg(regs, srcreg);
19135: { uae_s32 dst = m68k_dreg(regs, dstreg);
19136: m68k_incpc(2);
19137: if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel1299; } else {
19138: uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
19139: uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
19140: if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
19141: {
19142: if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
19143: CLEAR_CZNV;
19144: SET_ZFLG (((uae_s16)(newv)) == 0);
19145: SET_NFLG (((uae_s16)(newv)) < 0);
19146: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
19147: m68k_dreg(regs, dstreg) = (newv);
19148: }
19149: }
19150: retcycles = getDivs68kCycles((uae_s32)dst, (uae_s16)src);
19151: }}}endlabel1299: ;
19152: return (4+retcycles);
19153: }
19154: unsigned long REGPARAM2 CPUFUNC(op_81d0_0)(uae_u32 opcode) /* DIVS */
19155: {
19156: uae_u32 srcreg = (opcode & 7);
19157: uae_u32 dstreg = (opcode >> 9) & 7;
19158: unsigned int retcycles = 0;
19159: OpcodeFamily = 61; CurrentInstrCycles = 8;
19160: { uaecptr oldpc = m68k_getpc();
19161: { uaecptr srca = m68k_areg(regs, srcreg);
19162: { uae_s16 src = get_word(srca);
19163: { uae_s32 dst = m68k_dreg(regs, dstreg);
19164: m68k_incpc(2);
19165: if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel1300; } else {
19166: uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
19167: uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
19168: if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
19169: {
19170: if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
19171: CLEAR_CZNV;
19172: SET_ZFLG (((uae_s16)(newv)) == 0);
19173: SET_NFLG (((uae_s16)(newv)) < 0);
19174: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
19175: m68k_dreg(regs, dstreg) = (newv);
19176: }
19177: }
19178: retcycles = getDivs68kCycles((uae_s32)dst, (uae_s16)src);
19179: }}}}endlabel1300: ;
19180: return (8+retcycles);
19181: }
19182: unsigned long REGPARAM2 CPUFUNC(op_81d8_0)(uae_u32 opcode) /* DIVS */
19183: {
19184: uae_u32 srcreg = (opcode & 7);
19185: uae_u32 dstreg = (opcode >> 9) & 7;
19186: unsigned int retcycles = 0;
19187: OpcodeFamily = 61; CurrentInstrCycles = 8;
19188: { uaecptr oldpc = m68k_getpc();
19189: { uaecptr srca = m68k_areg(regs, srcreg);
19190: { uae_s16 src = get_word(srca);
19191: m68k_areg(regs, srcreg) += 2;
19192: { uae_s32 dst = m68k_dreg(regs, dstreg);
19193: m68k_incpc(2);
19194: if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel1301; } else {
19195: uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
19196: uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
19197: if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
19198: {
19199: if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
19200: CLEAR_CZNV;
19201: SET_ZFLG (((uae_s16)(newv)) == 0);
19202: SET_NFLG (((uae_s16)(newv)) < 0);
19203: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
19204: m68k_dreg(regs, dstreg) = (newv);
19205: }
19206: }
19207: retcycles = getDivs68kCycles((uae_s32)dst, (uae_s16)src);
19208: }}}}endlabel1301: ;
19209: return (8+retcycles);
19210: }
19211: unsigned long REGPARAM2 CPUFUNC(op_81e0_0)(uae_u32 opcode) /* DIVS */
19212: {
19213: uae_u32 srcreg = (opcode & 7);
19214: uae_u32 dstreg = (opcode >> 9) & 7;
19215: unsigned int retcycles = 0;
19216: OpcodeFamily = 61; CurrentInstrCycles = 10;
19217: { uaecptr oldpc = m68k_getpc();
19218: { uaecptr srca = m68k_areg(regs, srcreg) - 2;
19219: { uae_s16 src = get_word(srca);
19220: m68k_areg (regs, srcreg) = srca;
19221: { uae_s32 dst = m68k_dreg(regs, dstreg);
19222: m68k_incpc(2);
19223: if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel1302; } else {
19224: uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
19225: uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
19226: if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
19227: {
19228: if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
19229: CLEAR_CZNV;
19230: SET_ZFLG (((uae_s16)(newv)) == 0);
19231: SET_NFLG (((uae_s16)(newv)) < 0);
19232: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
19233: m68k_dreg(regs, dstreg) = (newv);
19234: }
19235: }
19236: retcycles = getDivs68kCycles((uae_s32)dst, (uae_s16)src);
19237: }}}}endlabel1302: ;
19238: return (10+retcycles);
19239: }
19240: unsigned long REGPARAM2 CPUFUNC(op_81e8_0)(uae_u32 opcode) /* DIVS */
19241: {
19242: uae_u32 srcreg = (opcode & 7);
19243: uae_u32 dstreg = (opcode >> 9) & 7;
19244: unsigned int retcycles = 0;
19245: OpcodeFamily = 61; CurrentInstrCycles = 12;
19246: { uaecptr oldpc = m68k_getpc();
19247: { uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
19248: { uae_s16 src = get_word(srca);
19249: { uae_s32 dst = m68k_dreg(regs, dstreg);
19250: m68k_incpc(4);
19251: if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel1303; } else {
19252: uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
19253: uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
19254: if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
19255: {
19256: if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
19257: CLEAR_CZNV;
19258: SET_ZFLG (((uae_s16)(newv)) == 0);
19259: SET_NFLG (((uae_s16)(newv)) < 0);
19260: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
19261: m68k_dreg(regs, dstreg) = (newv);
19262: }
19263: }
19264: retcycles = getDivs68kCycles((uae_s32)dst, (uae_s16)src);
19265: }}}}endlabel1303: ;
19266: return (12+retcycles);
19267: }
19268: unsigned long REGPARAM2 CPUFUNC(op_81f0_0)(uae_u32 opcode) /* DIVS */
19269: {
19270: uae_u32 srcreg = (opcode & 7);
19271: uae_u32 dstreg = (opcode >> 9) & 7;
19272: unsigned int retcycles = 0;
19273: OpcodeFamily = 61; CurrentInstrCycles = 14;
19274: { uaecptr oldpc = m68k_getpc();
19275: {m68k_incpc(2);
19276: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
19277: BusCyclePenalty += 2;
19278: { uae_s16 src = get_word(srca);
19279: { uae_s32 dst = m68k_dreg(regs, dstreg);
19280: if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel1304; } else {
19281: uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
19282: uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
19283: if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
19284: {
19285: if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
19286: CLEAR_CZNV;
19287: SET_ZFLG (((uae_s16)(newv)) == 0);
19288: SET_NFLG (((uae_s16)(newv)) < 0);
19289: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
19290: m68k_dreg(regs, dstreg) = (newv);
19291: }
19292: }
19293: retcycles = getDivs68kCycles((uae_s32)dst, (uae_s16)src);
19294: }}}}}endlabel1304: ;
19295: return (14+retcycles);
19296: }
19297: unsigned long REGPARAM2 CPUFUNC(op_81f8_0)(uae_u32 opcode) /* DIVS */
19298: {
19299: uae_u32 dstreg = (opcode >> 9) & 7;
19300: unsigned int retcycles = 0;
19301: OpcodeFamily = 61; CurrentInstrCycles = 12;
19302: { uaecptr oldpc = m68k_getpc();
19303: { uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
19304: { uae_s16 src = get_word(srca);
19305: { uae_s32 dst = m68k_dreg(regs, dstreg);
19306: m68k_incpc(4);
19307: if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel1305; } else {
19308: uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
19309: uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
19310: if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
19311: {
19312: if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
19313: CLEAR_CZNV;
19314: SET_ZFLG (((uae_s16)(newv)) == 0);
19315: SET_NFLG (((uae_s16)(newv)) < 0);
19316: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
19317: m68k_dreg(regs, dstreg) = (newv);
19318: }
19319: }
19320: retcycles = getDivs68kCycles((uae_s32)dst, (uae_s16)src);
19321: }}}}endlabel1305: ;
19322: return (12+retcycles);
19323: }
19324: unsigned long REGPARAM2 CPUFUNC(op_81f9_0)(uae_u32 opcode) /* DIVS */
19325: {
19326: uae_u32 dstreg = (opcode >> 9) & 7;
19327: unsigned int retcycles = 0;
19328: OpcodeFamily = 61; CurrentInstrCycles = 16;
19329: { uaecptr oldpc = m68k_getpc();
19330: { uaecptr srca = get_ilong(2);
19331: { uae_s16 src = get_word(srca);
19332: { uae_s32 dst = m68k_dreg(regs, dstreg);
19333: m68k_incpc(6);
19334: if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel1306; } else {
19335: uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
19336: uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
19337: if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
19338: {
19339: if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
19340: CLEAR_CZNV;
19341: SET_ZFLG (((uae_s16)(newv)) == 0);
19342: SET_NFLG (((uae_s16)(newv)) < 0);
19343: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
19344: m68k_dreg(regs, dstreg) = (newv);
19345: }
19346: }
19347: retcycles = getDivs68kCycles((uae_s32)dst, (uae_s16)src);
19348: }}}}endlabel1306: ;
19349: return (16+retcycles);
19350: }
19351: unsigned long REGPARAM2 CPUFUNC(op_81fa_0)(uae_u32 opcode) /* DIVS */
19352: {
19353: uae_u32 dstreg = (opcode >> 9) & 7;
19354: unsigned int retcycles = 0;
19355: OpcodeFamily = 61; CurrentInstrCycles = 12;
19356: { uaecptr oldpc = m68k_getpc();
19357: { uaecptr srca = m68k_getpc () + 2;
19358: srca += (uae_s32)(uae_s16)get_iword(2);
19359: { uae_s16 src = get_word(srca);
19360: { uae_s32 dst = m68k_dreg(regs, dstreg);
19361: m68k_incpc(4);
19362: if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel1307; } else {
19363: uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
19364: uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
19365: if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
19366: {
19367: if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
19368: CLEAR_CZNV;
19369: SET_ZFLG (((uae_s16)(newv)) == 0);
19370: SET_NFLG (((uae_s16)(newv)) < 0);
19371: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
19372: m68k_dreg(regs, dstreg) = (newv);
19373: }
19374: }
19375: retcycles = getDivs68kCycles((uae_s32)dst, (uae_s16)src);
19376: }}}}endlabel1307: ;
19377: return (12+retcycles);
19378: }
19379: unsigned long REGPARAM2 CPUFUNC(op_81fb_0)(uae_u32 opcode) /* DIVS */
19380: {
19381: uae_u32 dstreg = (opcode >> 9) & 7;
19382: unsigned int retcycles = 0;
19383: OpcodeFamily = 61; CurrentInstrCycles = 14;
19384: { uaecptr oldpc = m68k_getpc();
19385: {m68k_incpc(2);
19386: { uaecptr tmppc = m68k_getpc();
19387: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
19388: BusCyclePenalty += 2;
19389: { uae_s16 src = get_word(srca);
19390: { uae_s32 dst = m68k_dreg(regs, dstreg);
19391: if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel1308; } else {
19392: uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
19393: uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
19394: if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
19395: {
19396: if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
19397: CLEAR_CZNV;
19398: SET_ZFLG (((uae_s16)(newv)) == 0);
19399: SET_NFLG (((uae_s16)(newv)) < 0);
19400: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
19401: m68k_dreg(regs, dstreg) = (newv);
19402: }
19403: }
19404: retcycles = getDivs68kCycles((uae_s32)dst, (uae_s16)src);
19405: }}}}}endlabel1308: ;
19406: return (14+retcycles);
19407: }
19408: unsigned long REGPARAM2 CPUFUNC(op_81fc_0)(uae_u32 opcode) /* DIVS */
19409: {
19410: uae_u32 dstreg = (opcode >> 9) & 7;
19411: unsigned int retcycles = 0;
19412: OpcodeFamily = 61; CurrentInstrCycles = 8;
19413: { uaecptr oldpc = m68k_getpc();
19414: { uae_s16 src = get_iword(2);
19415: { uae_s32 dst = m68k_dreg(regs, dstreg);
19416: m68k_incpc(4);
19417: if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel1309; } else {
19418: uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
19419: uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
19420: if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
19421: {
19422: if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
19423: CLEAR_CZNV;
19424: SET_ZFLG (((uae_s16)(newv)) == 0);
19425: SET_NFLG (((uae_s16)(newv)) < 0);
19426: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
19427: m68k_dreg(regs, dstreg) = (newv);
19428: }
19429: }
19430: retcycles = getDivs68kCycles((uae_s32)dst, (uae_s16)src);
19431: }}}endlabel1309: ;
19432: return (8+retcycles);
19433: }
19434: unsigned long REGPARAM2 CPUFUNC(op_9000_0)(uae_u32 opcode) /* SUB */
19435: {
19436: uae_u32 srcreg = (opcode & 7);
19437: uae_u32 dstreg = (opcode >> 9) & 7;
19438: OpcodeFamily = 7; CurrentInstrCycles = 4;
19439: {{ uae_s8 src = m68k_dreg(regs, srcreg);
19440: { uae_s8 dst = m68k_dreg(regs, dstreg);
19441: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
19442: { int flgs = ((uae_s8)(src)) < 0;
19443: int flgo = ((uae_s8)(dst)) < 0;
19444: int flgn = ((uae_s8)(newv)) < 0;
19445: SET_ZFLG (((uae_s8)(newv)) == 0);
19446: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
19447: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
19448: COPY_CARRY;
19449: SET_NFLG (flgn != 0);
19450: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
19451: }}}}}}m68k_incpc(2);
19452: return 4;
19453: }
19454: unsigned long REGPARAM2 CPUFUNC(op_9010_0)(uae_u32 opcode) /* SUB */
19455: {
19456: uae_u32 srcreg = (opcode & 7);
19457: uae_u32 dstreg = (opcode >> 9) & 7;
19458: OpcodeFamily = 7; CurrentInstrCycles = 8;
19459: {{ uaecptr srca = m68k_areg(regs, srcreg);
19460: { uae_s8 src = get_byte(srca);
19461: { uae_s8 dst = m68k_dreg(regs, dstreg);
19462: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
19463: { int flgs = ((uae_s8)(src)) < 0;
19464: int flgo = ((uae_s8)(dst)) < 0;
19465: int flgn = ((uae_s8)(newv)) < 0;
19466: SET_ZFLG (((uae_s8)(newv)) == 0);
19467: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
19468: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
19469: COPY_CARRY;
19470: SET_NFLG (flgn != 0);
19471: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
19472: }}}}}}}m68k_incpc(2);
19473: return 8;
19474: }
19475: unsigned long REGPARAM2 CPUFUNC(op_9018_0)(uae_u32 opcode) /* SUB */
19476: {
19477: uae_u32 srcreg = (opcode & 7);
19478: uae_u32 dstreg = (opcode >> 9) & 7;
19479: OpcodeFamily = 7; CurrentInstrCycles = 8;
19480: {{ uaecptr srca = m68k_areg(regs, srcreg);
19481: { uae_s8 src = get_byte(srca);
19482: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
19483: { uae_s8 dst = m68k_dreg(regs, dstreg);
19484: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
19485: { int flgs = ((uae_s8)(src)) < 0;
19486: int flgo = ((uae_s8)(dst)) < 0;
19487: int flgn = ((uae_s8)(newv)) < 0;
19488: SET_ZFLG (((uae_s8)(newv)) == 0);
19489: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
19490: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
19491: COPY_CARRY;
19492: SET_NFLG (flgn != 0);
19493: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
19494: }}}}}}}m68k_incpc(2);
19495: return 8;
19496: }
19497: unsigned long REGPARAM2 CPUFUNC(op_9020_0)(uae_u32 opcode) /* SUB */
19498: {
19499: uae_u32 srcreg = (opcode & 7);
19500: uae_u32 dstreg = (opcode >> 9) & 7;
19501: OpcodeFamily = 7; CurrentInstrCycles = 10;
19502: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
19503: { uae_s8 src = get_byte(srca);
19504: m68k_areg (regs, srcreg) = srca;
19505: { uae_s8 dst = m68k_dreg(regs, dstreg);
19506: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
19507: { int flgs = ((uae_s8)(src)) < 0;
19508: int flgo = ((uae_s8)(dst)) < 0;
19509: int flgn = ((uae_s8)(newv)) < 0;
19510: SET_ZFLG (((uae_s8)(newv)) == 0);
19511: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
19512: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
19513: COPY_CARRY;
19514: SET_NFLG (flgn != 0);
19515: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
19516: }}}}}}}m68k_incpc(2);
19517: return 10;
19518: }
19519: unsigned long REGPARAM2 CPUFUNC(op_9028_0)(uae_u32 opcode) /* SUB */
19520: {
19521: uae_u32 srcreg = (opcode & 7);
19522: uae_u32 dstreg = (opcode >> 9) & 7;
19523: OpcodeFamily = 7; CurrentInstrCycles = 12;
19524: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
19525: { uae_s8 src = get_byte(srca);
19526: { uae_s8 dst = m68k_dreg(regs, dstreg);
19527: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
19528: { int flgs = ((uae_s8)(src)) < 0;
19529: int flgo = ((uae_s8)(dst)) < 0;
19530: int flgn = ((uae_s8)(newv)) < 0;
19531: SET_ZFLG (((uae_s8)(newv)) == 0);
19532: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
19533: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
19534: COPY_CARRY;
19535: SET_NFLG (flgn != 0);
19536: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
19537: }}}}}}}m68k_incpc(4);
19538: return 12;
19539: }
19540: unsigned long REGPARAM2 CPUFUNC(op_9030_0)(uae_u32 opcode) /* SUB */
19541: {
19542: uae_u32 srcreg = (opcode & 7);
19543: uae_u32 dstreg = (opcode >> 9) & 7;
19544: OpcodeFamily = 7; CurrentInstrCycles = 14;
19545: {{m68k_incpc(2);
19546: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
19547: BusCyclePenalty += 2;
19548: { uae_s8 src = get_byte(srca);
19549: { uae_s8 dst = m68k_dreg(regs, dstreg);
19550: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
19551: { int flgs = ((uae_s8)(src)) < 0;
19552: int flgo = ((uae_s8)(dst)) < 0;
19553: int flgn = ((uae_s8)(newv)) < 0;
19554: SET_ZFLG (((uae_s8)(newv)) == 0);
19555: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
19556: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
19557: COPY_CARRY;
19558: SET_NFLG (flgn != 0);
19559: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
19560: }}}}}}}}return 14;
19561: }
19562: unsigned long REGPARAM2 CPUFUNC(op_9038_0)(uae_u32 opcode) /* SUB */
19563: {
19564: uae_u32 dstreg = (opcode >> 9) & 7;
19565: OpcodeFamily = 7; CurrentInstrCycles = 12;
19566: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
19567: { uae_s8 src = get_byte(srca);
19568: { uae_s8 dst = m68k_dreg(regs, dstreg);
19569: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
19570: { int flgs = ((uae_s8)(src)) < 0;
19571: int flgo = ((uae_s8)(dst)) < 0;
19572: int flgn = ((uae_s8)(newv)) < 0;
19573: SET_ZFLG (((uae_s8)(newv)) == 0);
19574: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
19575: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
19576: COPY_CARRY;
19577: SET_NFLG (flgn != 0);
19578: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
19579: }}}}}}}m68k_incpc(4);
19580: return 12;
19581: }
19582: unsigned long REGPARAM2 CPUFUNC(op_9039_0)(uae_u32 opcode) /* SUB */
19583: {
19584: uae_u32 dstreg = (opcode >> 9) & 7;
19585: OpcodeFamily = 7; CurrentInstrCycles = 16;
19586: {{ uaecptr srca = get_ilong(2);
19587: { uae_s8 src = get_byte(srca);
19588: { uae_s8 dst = m68k_dreg(regs, dstreg);
19589: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
19590: { int flgs = ((uae_s8)(src)) < 0;
19591: int flgo = ((uae_s8)(dst)) < 0;
19592: int flgn = ((uae_s8)(newv)) < 0;
19593: SET_ZFLG (((uae_s8)(newv)) == 0);
19594: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
19595: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
19596: COPY_CARRY;
19597: SET_NFLG (flgn != 0);
19598: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
19599: }}}}}}}m68k_incpc(6);
19600: return 16;
19601: }
19602: unsigned long REGPARAM2 CPUFUNC(op_903a_0)(uae_u32 opcode) /* SUB */
19603: {
19604: uae_u32 dstreg = (opcode >> 9) & 7;
19605: OpcodeFamily = 7; CurrentInstrCycles = 12;
19606: {{ uaecptr srca = m68k_getpc () + 2;
19607: srca += (uae_s32)(uae_s16)get_iword(2);
19608: { uae_s8 src = get_byte(srca);
19609: { uae_s8 dst = m68k_dreg(regs, dstreg);
19610: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
19611: { int flgs = ((uae_s8)(src)) < 0;
19612: int flgo = ((uae_s8)(dst)) < 0;
19613: int flgn = ((uae_s8)(newv)) < 0;
19614: SET_ZFLG (((uae_s8)(newv)) == 0);
19615: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
19616: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
19617: COPY_CARRY;
19618: SET_NFLG (flgn != 0);
19619: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
19620: }}}}}}}m68k_incpc(4);
19621: return 12;
19622: }
19623: unsigned long REGPARAM2 CPUFUNC(op_903b_0)(uae_u32 opcode) /* SUB */
19624: {
19625: uae_u32 dstreg = (opcode >> 9) & 7;
19626: OpcodeFamily = 7; CurrentInstrCycles = 14;
19627: {{m68k_incpc(2);
19628: { uaecptr tmppc = m68k_getpc();
19629: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
19630: BusCyclePenalty += 2;
19631: { uae_s8 src = get_byte(srca);
19632: { uae_s8 dst = m68k_dreg(regs, dstreg);
19633: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
19634: { int flgs = ((uae_s8)(src)) < 0;
19635: int flgo = ((uae_s8)(dst)) < 0;
19636: int flgn = ((uae_s8)(newv)) < 0;
19637: SET_ZFLG (((uae_s8)(newv)) == 0);
19638: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
19639: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
19640: COPY_CARRY;
19641: SET_NFLG (flgn != 0);
19642: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
19643: }}}}}}}}return 14;
19644: }
19645: unsigned long REGPARAM2 CPUFUNC(op_903c_0)(uae_u32 opcode) /* SUB */
19646: {
19647: uae_u32 dstreg = (opcode >> 9) & 7;
19648: OpcodeFamily = 7; CurrentInstrCycles = 8;
19649: {{ uae_s8 src = get_ibyte(2);
19650: { uae_s8 dst = m68k_dreg(regs, dstreg);
19651: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
19652: { int flgs = ((uae_s8)(src)) < 0;
19653: int flgo = ((uae_s8)(dst)) < 0;
19654: int flgn = ((uae_s8)(newv)) < 0;
19655: SET_ZFLG (((uae_s8)(newv)) == 0);
19656: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
19657: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
19658: COPY_CARRY;
19659: SET_NFLG (flgn != 0);
19660: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
19661: }}}}}}m68k_incpc(4);
19662: return 8;
19663: }
19664: unsigned long REGPARAM2 CPUFUNC(op_9040_0)(uae_u32 opcode) /* SUB */
19665: {
19666: uae_u32 srcreg = (opcode & 7);
19667: uae_u32 dstreg = (opcode >> 9) & 7;
19668: OpcodeFamily = 7; CurrentInstrCycles = 4;
19669: {{ uae_s16 src = m68k_dreg(regs, srcreg);
19670: { uae_s16 dst = m68k_dreg(regs, dstreg);
19671: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
19672: { int flgs = ((uae_s16)(src)) < 0;
19673: int flgo = ((uae_s16)(dst)) < 0;
19674: int flgn = ((uae_s16)(newv)) < 0;
19675: SET_ZFLG (((uae_s16)(newv)) == 0);
19676: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
19677: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
19678: COPY_CARRY;
19679: SET_NFLG (flgn != 0);
19680: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
19681: }}}}}}m68k_incpc(2);
19682: return 4;
19683: }
19684: unsigned long REGPARAM2 CPUFUNC(op_9048_0)(uae_u32 opcode) /* SUB */
19685: {
19686: uae_u32 srcreg = (opcode & 7);
19687: uae_u32 dstreg = (opcode >> 9) & 7;
19688: OpcodeFamily = 7; CurrentInstrCycles = 4;
19689: {{ uae_s16 src = m68k_areg(regs, srcreg);
19690: { uae_s16 dst = m68k_dreg(regs, dstreg);
19691: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
19692: { int flgs = ((uae_s16)(src)) < 0;
19693: int flgo = ((uae_s16)(dst)) < 0;
19694: int flgn = ((uae_s16)(newv)) < 0;
19695: SET_ZFLG (((uae_s16)(newv)) == 0);
19696: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
19697: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
19698: COPY_CARRY;
19699: SET_NFLG (flgn != 0);
19700: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
19701: }}}}}}m68k_incpc(2);
19702: return 4;
19703: }
19704: unsigned long REGPARAM2 CPUFUNC(op_9050_0)(uae_u32 opcode) /* SUB */
19705: {
19706: uae_u32 srcreg = (opcode & 7);
19707: uae_u32 dstreg = (opcode >> 9) & 7;
19708: OpcodeFamily = 7; CurrentInstrCycles = 8;
19709: {{ uaecptr srca = m68k_areg(regs, srcreg);
19710: { uae_s16 src = get_word(srca);
19711: { uae_s16 dst = m68k_dreg(regs, dstreg);
19712: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
19713: { int flgs = ((uae_s16)(src)) < 0;
19714: int flgo = ((uae_s16)(dst)) < 0;
19715: int flgn = ((uae_s16)(newv)) < 0;
19716: SET_ZFLG (((uae_s16)(newv)) == 0);
19717: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
19718: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
19719: COPY_CARRY;
19720: SET_NFLG (flgn != 0);
19721: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
19722: }}}}}}}m68k_incpc(2);
19723: return 8;
19724: }
19725: unsigned long REGPARAM2 CPUFUNC(op_9058_0)(uae_u32 opcode) /* SUB */
19726: {
19727: uae_u32 srcreg = (opcode & 7);
19728: uae_u32 dstreg = (opcode >> 9) & 7;
19729: OpcodeFamily = 7; CurrentInstrCycles = 8;
19730: {{ uaecptr srca = m68k_areg(regs, srcreg);
19731: { uae_s16 src = get_word(srca);
19732: m68k_areg(regs, srcreg) += 2;
19733: { uae_s16 dst = m68k_dreg(regs, dstreg);
19734: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
19735: { int flgs = ((uae_s16)(src)) < 0;
19736: int flgo = ((uae_s16)(dst)) < 0;
19737: int flgn = ((uae_s16)(newv)) < 0;
19738: SET_ZFLG (((uae_s16)(newv)) == 0);
19739: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
19740: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
19741: COPY_CARRY;
19742: SET_NFLG (flgn != 0);
19743: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
19744: }}}}}}}m68k_incpc(2);
19745: return 8;
19746: }
19747: unsigned long REGPARAM2 CPUFUNC(op_9060_0)(uae_u32 opcode) /* SUB */
19748: {
19749: uae_u32 srcreg = (opcode & 7);
19750: uae_u32 dstreg = (opcode >> 9) & 7;
19751: OpcodeFamily = 7; CurrentInstrCycles = 10;
19752: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
19753: { uae_s16 src = get_word(srca);
19754: m68k_areg (regs, srcreg) = srca;
19755: { uae_s16 dst = m68k_dreg(regs, dstreg);
19756: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
19757: { int flgs = ((uae_s16)(src)) < 0;
19758: int flgo = ((uae_s16)(dst)) < 0;
19759: int flgn = ((uae_s16)(newv)) < 0;
19760: SET_ZFLG (((uae_s16)(newv)) == 0);
19761: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
19762: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
19763: COPY_CARRY;
19764: SET_NFLG (flgn != 0);
19765: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
19766: }}}}}}}m68k_incpc(2);
19767: return 10;
19768: }
19769: unsigned long REGPARAM2 CPUFUNC(op_9068_0)(uae_u32 opcode) /* SUB */
19770: {
19771: uae_u32 srcreg = (opcode & 7);
19772: uae_u32 dstreg = (opcode >> 9) & 7;
19773: OpcodeFamily = 7; CurrentInstrCycles = 12;
19774: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
19775: { uae_s16 src = get_word(srca);
19776: { uae_s16 dst = m68k_dreg(regs, dstreg);
19777: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
19778: { int flgs = ((uae_s16)(src)) < 0;
19779: int flgo = ((uae_s16)(dst)) < 0;
19780: int flgn = ((uae_s16)(newv)) < 0;
19781: SET_ZFLG (((uae_s16)(newv)) == 0);
19782: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
19783: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
19784: COPY_CARRY;
19785: SET_NFLG (flgn != 0);
19786: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
19787: }}}}}}}m68k_incpc(4);
19788: return 12;
19789: }
19790: unsigned long REGPARAM2 CPUFUNC(op_9070_0)(uae_u32 opcode) /* SUB */
19791: {
19792: uae_u32 srcreg = (opcode & 7);
19793: uae_u32 dstreg = (opcode >> 9) & 7;
19794: OpcodeFamily = 7; CurrentInstrCycles = 14;
19795: {{m68k_incpc(2);
19796: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
19797: BusCyclePenalty += 2;
19798: { uae_s16 src = get_word(srca);
19799: { uae_s16 dst = m68k_dreg(regs, dstreg);
19800: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
19801: { int flgs = ((uae_s16)(src)) < 0;
19802: int flgo = ((uae_s16)(dst)) < 0;
19803: int flgn = ((uae_s16)(newv)) < 0;
19804: SET_ZFLG (((uae_s16)(newv)) == 0);
19805: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
19806: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
19807: COPY_CARRY;
19808: SET_NFLG (flgn != 0);
19809: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
19810: }}}}}}}}return 14;
19811: }
19812: unsigned long REGPARAM2 CPUFUNC(op_9078_0)(uae_u32 opcode) /* SUB */
19813: {
19814: uae_u32 dstreg = (opcode >> 9) & 7;
19815: OpcodeFamily = 7; CurrentInstrCycles = 12;
19816: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
19817: { uae_s16 src = get_word(srca);
19818: { uae_s16 dst = m68k_dreg(regs, dstreg);
19819: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
19820: { int flgs = ((uae_s16)(src)) < 0;
19821: int flgo = ((uae_s16)(dst)) < 0;
19822: int flgn = ((uae_s16)(newv)) < 0;
19823: SET_ZFLG (((uae_s16)(newv)) == 0);
19824: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
19825: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
19826: COPY_CARRY;
19827: SET_NFLG (flgn != 0);
19828: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
19829: }}}}}}}m68k_incpc(4);
19830: return 12;
19831: }
19832: unsigned long REGPARAM2 CPUFUNC(op_9079_0)(uae_u32 opcode) /* SUB */
19833: {
19834: uae_u32 dstreg = (opcode >> 9) & 7;
19835: OpcodeFamily = 7; CurrentInstrCycles = 16;
19836: {{ uaecptr srca = get_ilong(2);
19837: { uae_s16 src = get_word(srca);
19838: { uae_s16 dst = m68k_dreg(regs, dstreg);
19839: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
19840: { int flgs = ((uae_s16)(src)) < 0;
19841: int flgo = ((uae_s16)(dst)) < 0;
19842: int flgn = ((uae_s16)(newv)) < 0;
19843: SET_ZFLG (((uae_s16)(newv)) == 0);
19844: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
19845: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
19846: COPY_CARRY;
19847: SET_NFLG (flgn != 0);
19848: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
19849: }}}}}}}m68k_incpc(6);
19850: return 16;
19851: }
19852: unsigned long REGPARAM2 CPUFUNC(op_907a_0)(uae_u32 opcode) /* SUB */
19853: {
19854: uae_u32 dstreg = (opcode >> 9) & 7;
19855: OpcodeFamily = 7; CurrentInstrCycles = 12;
19856: {{ uaecptr srca = m68k_getpc () + 2;
19857: srca += (uae_s32)(uae_s16)get_iword(2);
19858: { uae_s16 src = get_word(srca);
19859: { uae_s16 dst = m68k_dreg(regs, dstreg);
19860: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
19861: { int flgs = ((uae_s16)(src)) < 0;
19862: int flgo = ((uae_s16)(dst)) < 0;
19863: int flgn = ((uae_s16)(newv)) < 0;
19864: SET_ZFLG (((uae_s16)(newv)) == 0);
19865: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
19866: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
19867: COPY_CARRY;
19868: SET_NFLG (flgn != 0);
19869: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
19870: }}}}}}}m68k_incpc(4);
19871: return 12;
19872: }
19873: unsigned long REGPARAM2 CPUFUNC(op_907b_0)(uae_u32 opcode) /* SUB */
19874: {
19875: uae_u32 dstreg = (opcode >> 9) & 7;
19876: OpcodeFamily = 7; CurrentInstrCycles = 14;
19877: {{m68k_incpc(2);
19878: { uaecptr tmppc = m68k_getpc();
19879: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
19880: BusCyclePenalty += 2;
19881: { uae_s16 src = get_word(srca);
19882: { uae_s16 dst = m68k_dreg(regs, dstreg);
19883: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
19884: { int flgs = ((uae_s16)(src)) < 0;
19885: int flgo = ((uae_s16)(dst)) < 0;
19886: int flgn = ((uae_s16)(newv)) < 0;
19887: SET_ZFLG (((uae_s16)(newv)) == 0);
19888: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
19889: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
19890: COPY_CARRY;
19891: SET_NFLG (flgn != 0);
19892: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
19893: }}}}}}}}return 14;
19894: }
19895: unsigned long REGPARAM2 CPUFUNC(op_907c_0)(uae_u32 opcode) /* SUB */
19896: {
19897: uae_u32 dstreg = (opcode >> 9) & 7;
19898: OpcodeFamily = 7; CurrentInstrCycles = 8;
19899: {{ uae_s16 src = get_iword(2);
19900: { uae_s16 dst = m68k_dreg(regs, dstreg);
19901: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
19902: { int flgs = ((uae_s16)(src)) < 0;
19903: int flgo = ((uae_s16)(dst)) < 0;
19904: int flgn = ((uae_s16)(newv)) < 0;
19905: SET_ZFLG (((uae_s16)(newv)) == 0);
19906: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
19907: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
19908: COPY_CARRY;
19909: SET_NFLG (flgn != 0);
19910: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
19911: }}}}}}m68k_incpc(4);
19912: return 8;
19913: }
19914: unsigned long REGPARAM2 CPUFUNC(op_9080_0)(uae_u32 opcode) /* SUB */
19915: {
19916: uae_u32 srcreg = (opcode & 7);
19917: uae_u32 dstreg = (opcode >> 9) & 7;
19918: OpcodeFamily = 7; CurrentInstrCycles = 8;
19919: {{ uae_s32 src = m68k_dreg(regs, srcreg);
19920: { uae_s32 dst = m68k_dreg(regs, dstreg);
19921: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
19922: { int flgs = ((uae_s32)(src)) < 0;
19923: int flgo = ((uae_s32)(dst)) < 0;
19924: int flgn = ((uae_s32)(newv)) < 0;
19925: SET_ZFLG (((uae_s32)(newv)) == 0);
19926: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
19927: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
19928: COPY_CARRY;
19929: SET_NFLG (flgn != 0);
19930: m68k_dreg(regs, dstreg) = (newv);
19931: }}}}}}m68k_incpc(2);
19932: return 8;
19933: }
19934: unsigned long REGPARAM2 CPUFUNC(op_9088_0)(uae_u32 opcode) /* SUB */
19935: {
19936: uae_u32 srcreg = (opcode & 7);
19937: uae_u32 dstreg = (opcode >> 9) & 7;
19938: OpcodeFamily = 7; CurrentInstrCycles = 8;
19939: {{ uae_s32 src = m68k_areg(regs, srcreg);
19940: { uae_s32 dst = m68k_dreg(regs, dstreg);
19941: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
19942: { int flgs = ((uae_s32)(src)) < 0;
19943: int flgo = ((uae_s32)(dst)) < 0;
19944: int flgn = ((uae_s32)(newv)) < 0;
19945: SET_ZFLG (((uae_s32)(newv)) == 0);
19946: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
19947: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
19948: COPY_CARRY;
19949: SET_NFLG (flgn != 0);
19950: m68k_dreg(regs, dstreg) = (newv);
19951: }}}}}}m68k_incpc(2);
19952: return 8;
19953: }
19954: unsigned long REGPARAM2 CPUFUNC(op_9090_0)(uae_u32 opcode) /* SUB */
19955: {
19956: uae_u32 srcreg = (opcode & 7);
19957: uae_u32 dstreg = (opcode >> 9) & 7;
19958: OpcodeFamily = 7; CurrentInstrCycles = 14;
19959: {{ uaecptr srca = m68k_areg(regs, srcreg);
19960: { uae_s32 src = get_long(srca);
19961: { uae_s32 dst = m68k_dreg(regs, dstreg);
19962: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
19963: { int flgs = ((uae_s32)(src)) < 0;
19964: int flgo = ((uae_s32)(dst)) < 0;
19965: int flgn = ((uae_s32)(newv)) < 0;
19966: SET_ZFLG (((uae_s32)(newv)) == 0);
19967: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
19968: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
19969: COPY_CARRY;
19970: SET_NFLG (flgn != 0);
19971: m68k_dreg(regs, dstreg) = (newv);
19972: }}}}}}}m68k_incpc(2);
19973: return 14;
19974: }
19975: unsigned long REGPARAM2 CPUFUNC(op_9098_0)(uae_u32 opcode) /* SUB */
19976: {
19977: uae_u32 srcreg = (opcode & 7);
19978: uae_u32 dstreg = (opcode >> 9) & 7;
19979: OpcodeFamily = 7; CurrentInstrCycles = 14;
19980: {{ uaecptr srca = m68k_areg(regs, srcreg);
19981: { uae_s32 src = get_long(srca);
19982: m68k_areg(regs, srcreg) += 4;
19983: { uae_s32 dst = m68k_dreg(regs, dstreg);
19984: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
19985: { int flgs = ((uae_s32)(src)) < 0;
19986: int flgo = ((uae_s32)(dst)) < 0;
19987: int flgn = ((uae_s32)(newv)) < 0;
19988: SET_ZFLG (((uae_s32)(newv)) == 0);
19989: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
19990: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
19991: COPY_CARRY;
19992: SET_NFLG (flgn != 0);
19993: m68k_dreg(regs, dstreg) = (newv);
19994: }}}}}}}m68k_incpc(2);
19995: return 14;
19996: }
19997: unsigned long REGPARAM2 CPUFUNC(op_90a0_0)(uae_u32 opcode) /* SUB */
19998: {
19999: uae_u32 srcreg = (opcode & 7);
20000: uae_u32 dstreg = (opcode >> 9) & 7;
20001: OpcodeFamily = 7; CurrentInstrCycles = 16;
20002: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
20003: { uae_s32 src = get_long(srca);
20004: m68k_areg (regs, srcreg) = srca;
20005: { uae_s32 dst = m68k_dreg(regs, dstreg);
20006: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
20007: { int flgs = ((uae_s32)(src)) < 0;
20008: int flgo = ((uae_s32)(dst)) < 0;
20009: int flgn = ((uae_s32)(newv)) < 0;
20010: SET_ZFLG (((uae_s32)(newv)) == 0);
20011: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
20012: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
20013: COPY_CARRY;
20014: SET_NFLG (flgn != 0);
20015: m68k_dreg(regs, dstreg) = (newv);
20016: }}}}}}}m68k_incpc(2);
20017: return 16;
20018: }
20019: unsigned long REGPARAM2 CPUFUNC(op_90a8_0)(uae_u32 opcode) /* SUB */
20020: {
20021: uae_u32 srcreg = (opcode & 7);
20022: uae_u32 dstreg = (opcode >> 9) & 7;
20023: OpcodeFamily = 7; CurrentInstrCycles = 18;
20024: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
20025: { uae_s32 src = get_long(srca);
20026: { uae_s32 dst = m68k_dreg(regs, dstreg);
20027: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
20028: { int flgs = ((uae_s32)(src)) < 0;
20029: int flgo = ((uae_s32)(dst)) < 0;
20030: int flgn = ((uae_s32)(newv)) < 0;
20031: SET_ZFLG (((uae_s32)(newv)) == 0);
20032: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
20033: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
20034: COPY_CARRY;
20035: SET_NFLG (flgn != 0);
20036: m68k_dreg(regs, dstreg) = (newv);
20037: }}}}}}}m68k_incpc(4);
20038: return 18;
20039: }
20040: unsigned long REGPARAM2 CPUFUNC(op_90b0_0)(uae_u32 opcode) /* SUB */
20041: {
20042: uae_u32 srcreg = (opcode & 7);
20043: uae_u32 dstreg = (opcode >> 9) & 7;
20044: OpcodeFamily = 7; CurrentInstrCycles = 20;
20045: {{m68k_incpc(2);
20046: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
20047: BusCyclePenalty += 2;
20048: { uae_s32 src = get_long(srca);
20049: { uae_s32 dst = m68k_dreg(regs, dstreg);
20050: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
20051: { int flgs = ((uae_s32)(src)) < 0;
20052: int flgo = ((uae_s32)(dst)) < 0;
20053: int flgn = ((uae_s32)(newv)) < 0;
20054: SET_ZFLG (((uae_s32)(newv)) == 0);
20055: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
20056: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
20057: COPY_CARRY;
20058: SET_NFLG (flgn != 0);
20059: m68k_dreg(regs, dstreg) = (newv);
20060: }}}}}}}}return 20;
20061: }
20062: unsigned long REGPARAM2 CPUFUNC(op_90b8_0)(uae_u32 opcode) /* SUB */
20063: {
20064: uae_u32 dstreg = (opcode >> 9) & 7;
20065: OpcodeFamily = 7; CurrentInstrCycles = 18;
20066: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
20067: { uae_s32 src = get_long(srca);
20068: { uae_s32 dst = m68k_dreg(regs, dstreg);
20069: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
20070: { int flgs = ((uae_s32)(src)) < 0;
20071: int flgo = ((uae_s32)(dst)) < 0;
20072: int flgn = ((uae_s32)(newv)) < 0;
20073: SET_ZFLG (((uae_s32)(newv)) == 0);
20074: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
20075: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
20076: COPY_CARRY;
20077: SET_NFLG (flgn != 0);
20078: m68k_dreg(regs, dstreg) = (newv);
20079: }}}}}}}m68k_incpc(4);
20080: return 18;
20081: }
20082: unsigned long REGPARAM2 CPUFUNC(op_90b9_0)(uae_u32 opcode) /* SUB */
20083: {
20084: uae_u32 dstreg = (opcode >> 9) & 7;
20085: OpcodeFamily = 7; CurrentInstrCycles = 22;
20086: {{ uaecptr srca = get_ilong(2);
20087: { uae_s32 src = get_long(srca);
20088: { uae_s32 dst = m68k_dreg(regs, dstreg);
20089: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
20090: { int flgs = ((uae_s32)(src)) < 0;
20091: int flgo = ((uae_s32)(dst)) < 0;
20092: int flgn = ((uae_s32)(newv)) < 0;
20093: SET_ZFLG (((uae_s32)(newv)) == 0);
20094: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
20095: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
20096: COPY_CARRY;
20097: SET_NFLG (flgn != 0);
20098: m68k_dreg(regs, dstreg) = (newv);
20099: }}}}}}}m68k_incpc(6);
20100: return 22;
20101: }
20102: unsigned long REGPARAM2 CPUFUNC(op_90ba_0)(uae_u32 opcode) /* SUB */
20103: {
20104: uae_u32 dstreg = (opcode >> 9) & 7;
20105: OpcodeFamily = 7; CurrentInstrCycles = 18;
20106: {{ uaecptr srca = m68k_getpc () + 2;
20107: srca += (uae_s32)(uae_s16)get_iword(2);
20108: { uae_s32 src = get_long(srca);
20109: { uae_s32 dst = m68k_dreg(regs, dstreg);
20110: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
20111: { int flgs = ((uae_s32)(src)) < 0;
20112: int flgo = ((uae_s32)(dst)) < 0;
20113: int flgn = ((uae_s32)(newv)) < 0;
20114: SET_ZFLG (((uae_s32)(newv)) == 0);
20115: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
20116: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
20117: COPY_CARRY;
20118: SET_NFLG (flgn != 0);
20119: m68k_dreg(regs, dstreg) = (newv);
20120: }}}}}}}m68k_incpc(4);
20121: return 18;
20122: }
20123: unsigned long REGPARAM2 CPUFUNC(op_90bb_0)(uae_u32 opcode) /* SUB */
20124: {
20125: uae_u32 dstreg = (opcode >> 9) & 7;
20126: OpcodeFamily = 7; CurrentInstrCycles = 20;
20127: {{m68k_incpc(2);
20128: { uaecptr tmppc = m68k_getpc();
20129: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
20130: BusCyclePenalty += 2;
20131: { uae_s32 src = get_long(srca);
20132: { uae_s32 dst = m68k_dreg(regs, dstreg);
20133: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
20134: { int flgs = ((uae_s32)(src)) < 0;
20135: int flgo = ((uae_s32)(dst)) < 0;
20136: int flgn = ((uae_s32)(newv)) < 0;
20137: SET_ZFLG (((uae_s32)(newv)) == 0);
20138: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
20139: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
20140: COPY_CARRY;
20141: SET_NFLG (flgn != 0);
20142: m68k_dreg(regs, dstreg) = (newv);
20143: }}}}}}}}return 20;
20144: }
20145: unsigned long REGPARAM2 CPUFUNC(op_90bc_0)(uae_u32 opcode) /* SUB */
20146: {
20147: uae_u32 dstreg = (opcode >> 9) & 7;
20148: OpcodeFamily = 7; CurrentInstrCycles = 16;
20149: {{ uae_s32 src = get_ilong(2);
20150: { uae_s32 dst = m68k_dreg(regs, dstreg);
20151: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
20152: { int flgs = ((uae_s32)(src)) < 0;
20153: int flgo = ((uae_s32)(dst)) < 0;
20154: int flgn = ((uae_s32)(newv)) < 0;
20155: SET_ZFLG (((uae_s32)(newv)) == 0);
20156: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
20157: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
20158: COPY_CARRY;
20159: SET_NFLG (flgn != 0);
20160: m68k_dreg(regs, dstreg) = (newv);
20161: }}}}}}m68k_incpc(6);
20162: return 16;
20163: }
20164: unsigned long REGPARAM2 CPUFUNC(op_90c0_0)(uae_u32 opcode) /* SUBA */
20165: {
20166: uae_u32 srcreg = (opcode & 7);
20167: uae_u32 dstreg = (opcode >> 9) & 7;
20168: OpcodeFamily = 8; CurrentInstrCycles = 8;
20169: {{ uae_s16 src = m68k_dreg(regs, srcreg);
20170: { uae_s32 dst = m68k_areg(regs, dstreg);
20171: { uae_u32 newv = dst - src;
20172: m68k_areg(regs, dstreg) = (newv);
20173: }}}}m68k_incpc(2);
20174: return 8;
20175: }
20176: unsigned long REGPARAM2 CPUFUNC(op_90c8_0)(uae_u32 opcode) /* SUBA */
20177: {
20178: uae_u32 srcreg = (opcode & 7);
20179: uae_u32 dstreg = (opcode >> 9) & 7;
20180: OpcodeFamily = 8; CurrentInstrCycles = 8;
20181: {{ uae_s16 src = m68k_areg(regs, srcreg);
20182: { uae_s32 dst = m68k_areg(regs, dstreg);
20183: { uae_u32 newv = dst - src;
20184: m68k_areg(regs, dstreg) = (newv);
20185: }}}}m68k_incpc(2);
20186: return 8;
20187: }
20188: unsigned long REGPARAM2 CPUFUNC(op_90d0_0)(uae_u32 opcode) /* SUBA */
20189: {
20190: uae_u32 srcreg = (opcode & 7);
20191: uae_u32 dstreg = (opcode >> 9) & 7;
20192: OpcodeFamily = 8; CurrentInstrCycles = 12;
20193: {{ uaecptr srca = m68k_areg(regs, srcreg);
20194: { uae_s16 src = get_word(srca);
20195: { uae_s32 dst = m68k_areg(regs, dstreg);
20196: { uae_u32 newv = dst - src;
20197: m68k_areg(regs, dstreg) = (newv);
20198: }}}}}m68k_incpc(2);
20199: return 12;
20200: }
20201: unsigned long REGPARAM2 CPUFUNC(op_90d8_0)(uae_u32 opcode) /* SUBA */
20202: {
20203: uae_u32 srcreg = (opcode & 7);
20204: uae_u32 dstreg = (opcode >> 9) & 7;
20205: OpcodeFamily = 8; CurrentInstrCycles = 12;
20206: {{ uaecptr srca = m68k_areg(regs, srcreg);
20207: { uae_s16 src = get_word(srca);
20208: m68k_areg(regs, srcreg) += 2;
20209: { uae_s32 dst = m68k_areg(regs, dstreg);
20210: { uae_u32 newv = dst - src;
20211: m68k_areg(regs, dstreg) = (newv);
20212: }}}}}m68k_incpc(2);
20213: return 12;
20214: }
20215: unsigned long REGPARAM2 CPUFUNC(op_90e0_0)(uae_u32 opcode) /* SUBA */
20216: {
20217: uae_u32 srcreg = (opcode & 7);
20218: uae_u32 dstreg = (opcode >> 9) & 7;
20219: OpcodeFamily = 8; CurrentInstrCycles = 14;
20220: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
20221: { uae_s16 src = get_word(srca);
20222: m68k_areg (regs, srcreg) = srca;
20223: { uae_s32 dst = m68k_areg(regs, dstreg);
20224: { uae_u32 newv = dst - src;
20225: m68k_areg(regs, dstreg) = (newv);
20226: }}}}}m68k_incpc(2);
20227: return 14;
20228: }
20229: unsigned long REGPARAM2 CPUFUNC(op_90e8_0)(uae_u32 opcode) /* SUBA */
20230: {
20231: uae_u32 srcreg = (opcode & 7);
20232: uae_u32 dstreg = (opcode >> 9) & 7;
20233: OpcodeFamily = 8; CurrentInstrCycles = 16;
20234: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
20235: { uae_s16 src = get_word(srca);
20236: { uae_s32 dst = m68k_areg(regs, dstreg);
20237: { uae_u32 newv = dst - src;
20238: m68k_areg(regs, dstreg) = (newv);
20239: }}}}}m68k_incpc(4);
20240: return 16;
20241: }
20242: unsigned long REGPARAM2 CPUFUNC(op_90f0_0)(uae_u32 opcode) /* SUBA */
20243: {
20244: uae_u32 srcreg = (opcode & 7);
20245: uae_u32 dstreg = (opcode >> 9) & 7;
20246: OpcodeFamily = 8; CurrentInstrCycles = 18;
20247: {{m68k_incpc(2);
20248: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
20249: BusCyclePenalty += 2;
20250: { uae_s16 src = get_word(srca);
20251: { uae_s32 dst = m68k_areg(regs, dstreg);
20252: { uae_u32 newv = dst - src;
20253: m68k_areg(regs, dstreg) = (newv);
20254: }}}}}}return 18;
20255: }
20256: unsigned long REGPARAM2 CPUFUNC(op_90f8_0)(uae_u32 opcode) /* SUBA */
20257: {
20258: uae_u32 dstreg = (opcode >> 9) & 7;
20259: OpcodeFamily = 8; CurrentInstrCycles = 16;
20260: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
20261: { uae_s16 src = get_word(srca);
20262: { uae_s32 dst = m68k_areg(regs, dstreg);
20263: { uae_u32 newv = dst - src;
20264: m68k_areg(regs, dstreg) = (newv);
20265: }}}}}m68k_incpc(4);
20266: return 16;
20267: }
20268: unsigned long REGPARAM2 CPUFUNC(op_90f9_0)(uae_u32 opcode) /* SUBA */
20269: {
20270: uae_u32 dstreg = (opcode >> 9) & 7;
20271: OpcodeFamily = 8; CurrentInstrCycles = 20;
20272: {{ uaecptr srca = get_ilong(2);
20273: { uae_s16 src = get_word(srca);
20274: { uae_s32 dst = m68k_areg(regs, dstreg);
20275: { uae_u32 newv = dst - src;
20276: m68k_areg(regs, dstreg) = (newv);
20277: }}}}}m68k_incpc(6);
20278: return 20;
20279: }
20280: unsigned long REGPARAM2 CPUFUNC(op_90fa_0)(uae_u32 opcode) /* SUBA */
20281: {
20282: uae_u32 dstreg = (opcode >> 9) & 7;
20283: OpcodeFamily = 8; CurrentInstrCycles = 16;
20284: {{ uaecptr srca = m68k_getpc () + 2;
20285: srca += (uae_s32)(uae_s16)get_iword(2);
20286: { uae_s16 src = get_word(srca);
20287: { uae_s32 dst = m68k_areg(regs, dstreg);
20288: { uae_u32 newv = dst - src;
20289: m68k_areg(regs, dstreg) = (newv);
20290: }}}}}m68k_incpc(4);
20291: return 16;
20292: }
20293: unsigned long REGPARAM2 CPUFUNC(op_90fb_0)(uae_u32 opcode) /* SUBA */
20294: {
20295: uae_u32 dstreg = (opcode >> 9) & 7;
20296: OpcodeFamily = 8; CurrentInstrCycles = 18;
20297: {{m68k_incpc(2);
20298: { uaecptr tmppc = m68k_getpc();
20299: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
20300: BusCyclePenalty += 2;
20301: { uae_s16 src = get_word(srca);
20302: { uae_s32 dst = m68k_areg(regs, dstreg);
20303: { uae_u32 newv = dst - src;
20304: m68k_areg(regs, dstreg) = (newv);
20305: }}}}}}return 18;
20306: }
20307: unsigned long REGPARAM2 CPUFUNC(op_90fc_0)(uae_u32 opcode) /* SUBA */
20308: {
20309: uae_u32 dstreg = (opcode >> 9) & 7;
20310: OpcodeFamily = 8; CurrentInstrCycles = 12;
20311: {{ uae_s16 src = get_iword(2);
20312: { uae_s32 dst = m68k_areg(regs, dstreg);
20313: { uae_u32 newv = dst - src;
20314: m68k_areg(regs, dstreg) = (newv);
20315: }}}}m68k_incpc(4);
20316: return 12;
20317: }
20318: unsigned long REGPARAM2 CPUFUNC(op_9100_0)(uae_u32 opcode) /* SUBX */
20319: {
20320: uae_u32 srcreg = (opcode & 7);
20321: uae_u32 dstreg = (opcode >> 9) & 7;
20322: OpcodeFamily = 9; CurrentInstrCycles = 4;
20323: {{ uae_s8 src = m68k_dreg(regs, srcreg);
20324: { uae_s8 dst = m68k_dreg(regs, dstreg);
20325: { uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0);
20326: { int flgs = ((uae_s8)(src)) < 0;
20327: int flgo = ((uae_s8)(dst)) < 0;
20328: int flgn = ((uae_s8)(newv)) < 0;
20329: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
20330: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
20331: COPY_CARRY;
20332: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
20333: SET_NFLG (((uae_s8)(newv)) < 0);
20334: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
20335: }}}}}m68k_incpc(2);
20336: return 4;
20337: }
20338: unsigned long REGPARAM2 CPUFUNC(op_9108_0)(uae_u32 opcode) /* SUBX */
20339: {
20340: uae_u32 srcreg = (opcode & 7);
20341: uae_u32 dstreg = (opcode >> 9) & 7;
20342: OpcodeFamily = 9; CurrentInstrCycles = 18;
20343: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
20344: { uae_s8 src = get_byte(srca);
20345: m68k_areg (regs, srcreg) = srca;
20346: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
20347: { uae_s8 dst = get_byte(dsta);
20348: m68k_areg (regs, dstreg) = dsta;
20349: { uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0);
20350: { int flgs = ((uae_s8)(src)) < 0;
20351: int flgo = ((uae_s8)(dst)) < 0;
20352: int flgn = ((uae_s8)(newv)) < 0;
20353: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
20354: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
20355: COPY_CARRY;
20356: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
20357: SET_NFLG (((uae_s8)(newv)) < 0);
20358: put_byte(dsta,newv);
20359: }}}}}}}m68k_incpc(2);
20360: return 18;
20361: }
20362: unsigned long REGPARAM2 CPUFUNC(op_9110_0)(uae_u32 opcode) /* SUB */
20363: {
20364: uae_u32 srcreg = ((opcode >> 9) & 7);
20365: uae_u32 dstreg = opcode & 7;
20366: OpcodeFamily = 7; CurrentInstrCycles = 12;
20367: {{ uae_s8 src = m68k_dreg(regs, srcreg);
20368: { uaecptr dsta = m68k_areg(regs, dstreg);
20369: { uae_s8 dst = get_byte(dsta);
20370: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
20371: { int flgs = ((uae_s8)(src)) < 0;
20372: int flgo = ((uae_s8)(dst)) < 0;
20373: int flgn = ((uae_s8)(newv)) < 0;
20374: SET_ZFLG (((uae_s8)(newv)) == 0);
20375: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
20376: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
20377: COPY_CARRY;
20378: SET_NFLG (flgn != 0);
20379: put_byte(dsta,newv);
20380: }}}}}}}m68k_incpc(2);
20381: return 12;
20382: }
20383: unsigned long REGPARAM2 CPUFUNC(op_9118_0)(uae_u32 opcode) /* SUB */
20384: {
20385: uae_u32 srcreg = ((opcode >> 9) & 7);
20386: uae_u32 dstreg = opcode & 7;
20387: OpcodeFamily = 7; CurrentInstrCycles = 12;
20388: {{ uae_s8 src = m68k_dreg(regs, srcreg);
20389: { uaecptr dsta = m68k_areg(regs, dstreg);
20390: { uae_s8 dst = get_byte(dsta);
20391: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
20392: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
20393: { int flgs = ((uae_s8)(src)) < 0;
20394: int flgo = ((uae_s8)(dst)) < 0;
20395: int flgn = ((uae_s8)(newv)) < 0;
20396: SET_ZFLG (((uae_s8)(newv)) == 0);
20397: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
20398: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
20399: COPY_CARRY;
20400: SET_NFLG (flgn != 0);
20401: put_byte(dsta,newv);
20402: }}}}}}}m68k_incpc(2);
20403: return 12;
20404: }
20405: unsigned long REGPARAM2 CPUFUNC(op_9120_0)(uae_u32 opcode) /* SUB */
20406: {
20407: uae_u32 srcreg = ((opcode >> 9) & 7);
20408: uae_u32 dstreg = opcode & 7;
20409: OpcodeFamily = 7; CurrentInstrCycles = 14;
20410: {{ uae_s8 src = m68k_dreg(regs, srcreg);
20411: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
20412: { uae_s8 dst = get_byte(dsta);
20413: m68k_areg (regs, dstreg) = dsta;
20414: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
20415: { int flgs = ((uae_s8)(src)) < 0;
20416: int flgo = ((uae_s8)(dst)) < 0;
20417: int flgn = ((uae_s8)(newv)) < 0;
20418: SET_ZFLG (((uae_s8)(newv)) == 0);
20419: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
20420: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
20421: COPY_CARRY;
20422: SET_NFLG (flgn != 0);
20423: put_byte(dsta,newv);
20424: }}}}}}}m68k_incpc(2);
20425: return 14;
20426: }
20427: unsigned long REGPARAM2 CPUFUNC(op_9128_0)(uae_u32 opcode) /* SUB */
20428: {
20429: uae_u32 srcreg = ((opcode >> 9) & 7);
20430: uae_u32 dstreg = opcode & 7;
20431: OpcodeFamily = 7; CurrentInstrCycles = 16;
20432: {{ uae_s8 src = m68k_dreg(regs, srcreg);
20433: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
20434: { uae_s8 dst = get_byte(dsta);
20435: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
20436: { int flgs = ((uae_s8)(src)) < 0;
20437: int flgo = ((uae_s8)(dst)) < 0;
20438: int flgn = ((uae_s8)(newv)) < 0;
20439: SET_ZFLG (((uae_s8)(newv)) == 0);
20440: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
20441: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
20442: COPY_CARRY;
20443: SET_NFLG (flgn != 0);
20444: put_byte(dsta,newv);
20445: }}}}}}}m68k_incpc(4);
20446: return 16;
20447: }
20448: unsigned long REGPARAM2 CPUFUNC(op_9130_0)(uae_u32 opcode) /* SUB */
20449: {
20450: uae_u32 srcreg = ((opcode >> 9) & 7);
20451: uae_u32 dstreg = opcode & 7;
20452: OpcodeFamily = 7; CurrentInstrCycles = 18;
20453: {{ uae_s8 src = m68k_dreg(regs, srcreg);
20454: {m68k_incpc(2);
20455: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
20456: BusCyclePenalty += 2;
20457: { uae_s8 dst = get_byte(dsta);
20458: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
20459: { int flgs = ((uae_s8)(src)) < 0;
20460: int flgo = ((uae_s8)(dst)) < 0;
20461: int flgn = ((uae_s8)(newv)) < 0;
20462: SET_ZFLG (((uae_s8)(newv)) == 0);
20463: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
20464: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
20465: COPY_CARRY;
20466: SET_NFLG (flgn != 0);
20467: put_byte(dsta,newv);
20468: }}}}}}}}return 18;
20469: }
20470: unsigned long REGPARAM2 CPUFUNC(op_9138_0)(uae_u32 opcode) /* SUB */
20471: {
20472: uae_u32 srcreg = ((opcode >> 9) & 7);
20473: OpcodeFamily = 7; CurrentInstrCycles = 16;
20474: {{ uae_s8 src = m68k_dreg(regs, srcreg);
20475: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
20476: { uae_s8 dst = get_byte(dsta);
20477: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
20478: { int flgs = ((uae_s8)(src)) < 0;
20479: int flgo = ((uae_s8)(dst)) < 0;
20480: int flgn = ((uae_s8)(newv)) < 0;
20481: SET_ZFLG (((uae_s8)(newv)) == 0);
20482: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
20483: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
20484: COPY_CARRY;
20485: SET_NFLG (flgn != 0);
20486: put_byte(dsta,newv);
20487: }}}}}}}m68k_incpc(4);
20488: return 16;
20489: }
20490: unsigned long REGPARAM2 CPUFUNC(op_9139_0)(uae_u32 opcode) /* SUB */
20491: {
20492: uae_u32 srcreg = ((opcode >> 9) & 7);
20493: OpcodeFamily = 7; CurrentInstrCycles = 20;
20494: {{ uae_s8 src = m68k_dreg(regs, srcreg);
20495: { uaecptr dsta = get_ilong(2);
20496: { uae_s8 dst = get_byte(dsta);
20497: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
20498: { int flgs = ((uae_s8)(src)) < 0;
20499: int flgo = ((uae_s8)(dst)) < 0;
20500: int flgn = ((uae_s8)(newv)) < 0;
20501: SET_ZFLG (((uae_s8)(newv)) == 0);
20502: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
20503: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
20504: COPY_CARRY;
20505: SET_NFLG (flgn != 0);
20506: put_byte(dsta,newv);
20507: }}}}}}}m68k_incpc(6);
20508: return 20;
20509: }
20510: unsigned long REGPARAM2 CPUFUNC(op_9140_0)(uae_u32 opcode) /* SUBX */
20511: {
20512: uae_u32 srcreg = (opcode & 7);
20513: uae_u32 dstreg = (opcode >> 9) & 7;
20514: OpcodeFamily = 9; CurrentInstrCycles = 4;
20515: {{ uae_s16 src = m68k_dreg(regs, srcreg);
20516: { uae_s16 dst = m68k_dreg(regs, dstreg);
20517: { uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0);
20518: { int flgs = ((uae_s16)(src)) < 0;
20519: int flgo = ((uae_s16)(dst)) < 0;
20520: int flgn = ((uae_s16)(newv)) < 0;
20521: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
20522: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
20523: COPY_CARRY;
20524: SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
20525: SET_NFLG (((uae_s16)(newv)) < 0);
20526: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
20527: }}}}}m68k_incpc(2);
20528: return 4;
20529: }
20530: unsigned long REGPARAM2 CPUFUNC(op_9148_0)(uae_u32 opcode) /* SUBX */
20531: {
20532: uae_u32 srcreg = (opcode & 7);
20533: uae_u32 dstreg = (opcode >> 9) & 7;
20534: OpcodeFamily = 9; CurrentInstrCycles = 18;
20535: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
20536: { uae_s16 src = get_word(srca);
20537: m68k_areg (regs, srcreg) = srca;
20538: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
20539: { uae_s16 dst = get_word(dsta);
20540: m68k_areg (regs, dstreg) = dsta;
20541: { uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0);
20542: { int flgs = ((uae_s16)(src)) < 0;
20543: int flgo = ((uae_s16)(dst)) < 0;
20544: int flgn = ((uae_s16)(newv)) < 0;
20545: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
20546: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
20547: COPY_CARRY;
20548: SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
20549: SET_NFLG (((uae_s16)(newv)) < 0);
20550: put_word(dsta,newv);
20551: }}}}}}}m68k_incpc(2);
20552: return 18;
20553: }
20554: unsigned long REGPARAM2 CPUFUNC(op_9150_0)(uae_u32 opcode) /* SUB */
20555: {
20556: uae_u32 srcreg = ((opcode >> 9) & 7);
20557: uae_u32 dstreg = opcode & 7;
20558: OpcodeFamily = 7; CurrentInstrCycles = 12;
20559: {{ uae_s16 src = m68k_dreg(regs, srcreg);
20560: { uaecptr dsta = m68k_areg(regs, dstreg);
20561: { uae_s16 dst = get_word(dsta);
20562: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
20563: { int flgs = ((uae_s16)(src)) < 0;
20564: int flgo = ((uae_s16)(dst)) < 0;
20565: int flgn = ((uae_s16)(newv)) < 0;
20566: SET_ZFLG (((uae_s16)(newv)) == 0);
20567: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
20568: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
20569: COPY_CARRY;
20570: SET_NFLG (flgn != 0);
20571: put_word(dsta,newv);
20572: }}}}}}}m68k_incpc(2);
20573: return 12;
20574: }
20575: unsigned long REGPARAM2 CPUFUNC(op_9158_0)(uae_u32 opcode) /* SUB */
20576: {
20577: uae_u32 srcreg = ((opcode >> 9) & 7);
20578: uae_u32 dstreg = opcode & 7;
20579: OpcodeFamily = 7; CurrentInstrCycles = 12;
20580: {{ uae_s16 src = m68k_dreg(regs, srcreg);
20581: { uaecptr dsta = m68k_areg(regs, dstreg);
20582: { uae_s16 dst = get_word(dsta);
20583: m68k_areg(regs, dstreg) += 2;
20584: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
20585: { int flgs = ((uae_s16)(src)) < 0;
20586: int flgo = ((uae_s16)(dst)) < 0;
20587: int flgn = ((uae_s16)(newv)) < 0;
20588: SET_ZFLG (((uae_s16)(newv)) == 0);
20589: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
20590: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
20591: COPY_CARRY;
20592: SET_NFLG (flgn != 0);
20593: put_word(dsta,newv);
20594: }}}}}}}m68k_incpc(2);
20595: return 12;
20596: }
20597: unsigned long REGPARAM2 CPUFUNC(op_9160_0)(uae_u32 opcode) /* SUB */
20598: {
20599: uae_u32 srcreg = ((opcode >> 9) & 7);
20600: uae_u32 dstreg = opcode & 7;
20601: OpcodeFamily = 7; CurrentInstrCycles = 14;
20602: {{ uae_s16 src = m68k_dreg(regs, srcreg);
20603: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
20604: { uae_s16 dst = get_word(dsta);
20605: m68k_areg (regs, dstreg) = dsta;
20606: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
20607: { int flgs = ((uae_s16)(src)) < 0;
20608: int flgo = ((uae_s16)(dst)) < 0;
20609: int flgn = ((uae_s16)(newv)) < 0;
20610: SET_ZFLG (((uae_s16)(newv)) == 0);
20611: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
20612: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
20613: COPY_CARRY;
20614: SET_NFLG (flgn != 0);
20615: put_word(dsta,newv);
20616: }}}}}}}m68k_incpc(2);
20617: return 14;
20618: }
20619: unsigned long REGPARAM2 CPUFUNC(op_9168_0)(uae_u32 opcode) /* SUB */
20620: {
20621: uae_u32 srcreg = ((opcode >> 9) & 7);
20622: uae_u32 dstreg = opcode & 7;
20623: OpcodeFamily = 7; CurrentInstrCycles = 16;
20624: {{ uae_s16 src = m68k_dreg(regs, srcreg);
20625: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
20626: { uae_s16 dst = get_word(dsta);
20627: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
20628: { int flgs = ((uae_s16)(src)) < 0;
20629: int flgo = ((uae_s16)(dst)) < 0;
20630: int flgn = ((uae_s16)(newv)) < 0;
20631: SET_ZFLG (((uae_s16)(newv)) == 0);
20632: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
20633: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
20634: COPY_CARRY;
20635: SET_NFLG (flgn != 0);
20636: put_word(dsta,newv);
20637: }}}}}}}m68k_incpc(4);
20638: return 16;
20639: }
20640: unsigned long REGPARAM2 CPUFUNC(op_9170_0)(uae_u32 opcode) /* SUB */
20641: {
20642: uae_u32 srcreg = ((opcode >> 9) & 7);
20643: uae_u32 dstreg = opcode & 7;
20644: OpcodeFamily = 7; CurrentInstrCycles = 18;
20645: {{ uae_s16 src = m68k_dreg(regs, srcreg);
20646: {m68k_incpc(2);
20647: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
20648: BusCyclePenalty += 2;
20649: { uae_s16 dst = get_word(dsta);
20650: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
20651: { int flgs = ((uae_s16)(src)) < 0;
20652: int flgo = ((uae_s16)(dst)) < 0;
20653: int flgn = ((uae_s16)(newv)) < 0;
20654: SET_ZFLG (((uae_s16)(newv)) == 0);
20655: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
20656: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
20657: COPY_CARRY;
20658: SET_NFLG (flgn != 0);
20659: put_word(dsta,newv);
20660: }}}}}}}}return 18;
20661: }
20662: unsigned long REGPARAM2 CPUFUNC(op_9178_0)(uae_u32 opcode) /* SUB */
20663: {
20664: uae_u32 srcreg = ((opcode >> 9) & 7);
20665: OpcodeFamily = 7; CurrentInstrCycles = 16;
20666: {{ uae_s16 src = m68k_dreg(regs, srcreg);
20667: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
20668: { uae_s16 dst = get_word(dsta);
20669: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
20670: { int flgs = ((uae_s16)(src)) < 0;
20671: int flgo = ((uae_s16)(dst)) < 0;
20672: int flgn = ((uae_s16)(newv)) < 0;
20673: SET_ZFLG (((uae_s16)(newv)) == 0);
20674: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
20675: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
20676: COPY_CARRY;
20677: SET_NFLG (flgn != 0);
20678: put_word(dsta,newv);
20679: }}}}}}}m68k_incpc(4);
20680: return 16;
20681: }
20682: unsigned long REGPARAM2 CPUFUNC(op_9179_0)(uae_u32 opcode) /* SUB */
20683: {
20684: uae_u32 srcreg = ((opcode >> 9) & 7);
20685: OpcodeFamily = 7; CurrentInstrCycles = 20;
20686: {{ uae_s16 src = m68k_dreg(regs, srcreg);
20687: { uaecptr dsta = get_ilong(2);
20688: { uae_s16 dst = get_word(dsta);
20689: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
20690: { int flgs = ((uae_s16)(src)) < 0;
20691: int flgo = ((uae_s16)(dst)) < 0;
20692: int flgn = ((uae_s16)(newv)) < 0;
20693: SET_ZFLG (((uae_s16)(newv)) == 0);
20694: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
20695: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
20696: COPY_CARRY;
20697: SET_NFLG (flgn != 0);
20698: put_word(dsta,newv);
20699: }}}}}}}m68k_incpc(6);
20700: return 20;
20701: }
20702: unsigned long REGPARAM2 CPUFUNC(op_9180_0)(uae_u32 opcode) /* SUBX */
20703: {
20704: uae_u32 srcreg = (opcode & 7);
20705: uae_u32 dstreg = (opcode >> 9) & 7;
20706: OpcodeFamily = 9; CurrentInstrCycles = 8;
20707: {{ uae_s32 src = m68k_dreg(regs, srcreg);
20708: { uae_s32 dst = m68k_dreg(regs, dstreg);
20709: { uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0);
20710: { int flgs = ((uae_s32)(src)) < 0;
20711: int flgo = ((uae_s32)(dst)) < 0;
20712: int flgn = ((uae_s32)(newv)) < 0;
20713: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
20714: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
20715: COPY_CARRY;
20716: SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
20717: SET_NFLG (((uae_s32)(newv)) < 0);
20718: m68k_dreg(regs, dstreg) = (newv);
20719: }}}}}m68k_incpc(2);
20720: return 8;
20721: }
20722: unsigned long REGPARAM2 CPUFUNC(op_9188_0)(uae_u32 opcode) /* SUBX */
20723: {
20724: uae_u32 srcreg = (opcode & 7);
20725: uae_u32 dstreg = (opcode >> 9) & 7;
20726: OpcodeFamily = 9; CurrentInstrCycles = 30;
20727: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
20728: { uae_s32 src = get_long(srca);
20729: m68k_areg (regs, srcreg) = srca;
20730: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
20731: { uae_s32 dst = get_long(dsta);
20732: m68k_areg (regs, dstreg) = dsta;
20733: { uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0);
20734: { int flgs = ((uae_s32)(src)) < 0;
20735: int flgo = ((uae_s32)(dst)) < 0;
20736: int flgn = ((uae_s32)(newv)) < 0;
20737: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
20738: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
20739: COPY_CARRY;
20740: SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
20741: SET_NFLG (((uae_s32)(newv)) < 0);
20742: put_long(dsta,newv);
20743: }}}}}}}m68k_incpc(2);
20744: return 30;
20745: }
20746: unsigned long REGPARAM2 CPUFUNC(op_9190_0)(uae_u32 opcode) /* SUB */
20747: {
20748: uae_u32 srcreg = ((opcode >> 9) & 7);
20749: uae_u32 dstreg = opcode & 7;
20750: OpcodeFamily = 7; CurrentInstrCycles = 20;
20751: {{ uae_s32 src = m68k_dreg(regs, srcreg);
20752: { uaecptr dsta = m68k_areg(regs, dstreg);
20753: { uae_s32 dst = get_long(dsta);
20754: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
20755: { int flgs = ((uae_s32)(src)) < 0;
20756: int flgo = ((uae_s32)(dst)) < 0;
20757: int flgn = ((uae_s32)(newv)) < 0;
20758: SET_ZFLG (((uae_s32)(newv)) == 0);
20759: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
20760: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
20761: COPY_CARRY;
20762: SET_NFLG (flgn != 0);
20763: put_long(dsta,newv);
20764: }}}}}}}m68k_incpc(2);
20765: return 20;
20766: }
20767: unsigned long REGPARAM2 CPUFUNC(op_9198_0)(uae_u32 opcode) /* SUB */
20768: {
20769: uae_u32 srcreg = ((opcode >> 9) & 7);
20770: uae_u32 dstreg = opcode & 7;
20771: OpcodeFamily = 7; CurrentInstrCycles = 20;
20772: {{ uae_s32 src = m68k_dreg(regs, srcreg);
20773: { uaecptr dsta = m68k_areg(regs, dstreg);
20774: { uae_s32 dst = get_long(dsta);
20775: m68k_areg(regs, dstreg) += 4;
20776: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
20777: { int flgs = ((uae_s32)(src)) < 0;
20778: int flgo = ((uae_s32)(dst)) < 0;
20779: int flgn = ((uae_s32)(newv)) < 0;
20780: SET_ZFLG (((uae_s32)(newv)) == 0);
20781: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
20782: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
20783: COPY_CARRY;
20784: SET_NFLG (flgn != 0);
20785: put_long(dsta,newv);
20786: }}}}}}}m68k_incpc(2);
20787: return 20;
20788: }
20789: unsigned long REGPARAM2 CPUFUNC(op_91a0_0)(uae_u32 opcode) /* SUB */
20790: {
20791: uae_u32 srcreg = ((opcode >> 9) & 7);
20792: uae_u32 dstreg = opcode & 7;
20793: OpcodeFamily = 7; CurrentInstrCycles = 22;
20794: {{ uae_s32 src = m68k_dreg(regs, srcreg);
20795: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
20796: { uae_s32 dst = get_long(dsta);
20797: m68k_areg (regs, dstreg) = dsta;
20798: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
20799: { int flgs = ((uae_s32)(src)) < 0;
20800: int flgo = ((uae_s32)(dst)) < 0;
20801: int flgn = ((uae_s32)(newv)) < 0;
20802: SET_ZFLG (((uae_s32)(newv)) == 0);
20803: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
20804: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
20805: COPY_CARRY;
20806: SET_NFLG (flgn != 0);
20807: put_long(dsta,newv);
20808: }}}}}}}m68k_incpc(2);
20809: return 22;
20810: }
20811: unsigned long REGPARAM2 CPUFUNC(op_91a8_0)(uae_u32 opcode) /* SUB */
20812: {
20813: uae_u32 srcreg = ((opcode >> 9) & 7);
20814: uae_u32 dstreg = opcode & 7;
20815: OpcodeFamily = 7; CurrentInstrCycles = 24;
20816: {{ uae_s32 src = m68k_dreg(regs, srcreg);
20817: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
20818: { uae_s32 dst = get_long(dsta);
20819: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
20820: { int flgs = ((uae_s32)(src)) < 0;
20821: int flgo = ((uae_s32)(dst)) < 0;
20822: int flgn = ((uae_s32)(newv)) < 0;
20823: SET_ZFLG (((uae_s32)(newv)) == 0);
20824: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
20825: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
20826: COPY_CARRY;
20827: SET_NFLG (flgn != 0);
20828: put_long(dsta,newv);
20829: }}}}}}}m68k_incpc(4);
20830: return 24;
20831: }
20832: unsigned long REGPARAM2 CPUFUNC(op_91b0_0)(uae_u32 opcode) /* SUB */
20833: {
20834: uae_u32 srcreg = ((opcode >> 9) & 7);
20835: uae_u32 dstreg = opcode & 7;
20836: OpcodeFamily = 7; CurrentInstrCycles = 26;
20837: {{ uae_s32 src = m68k_dreg(regs, srcreg);
20838: {m68k_incpc(2);
20839: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
20840: BusCyclePenalty += 2;
20841: { uae_s32 dst = get_long(dsta);
20842: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
20843: { int flgs = ((uae_s32)(src)) < 0;
20844: int flgo = ((uae_s32)(dst)) < 0;
20845: int flgn = ((uae_s32)(newv)) < 0;
20846: SET_ZFLG (((uae_s32)(newv)) == 0);
20847: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
20848: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
20849: COPY_CARRY;
20850: SET_NFLG (flgn != 0);
20851: put_long(dsta,newv);
20852: }}}}}}}}return 26;
20853: }
20854: unsigned long REGPARAM2 CPUFUNC(op_91b8_0)(uae_u32 opcode) /* SUB */
20855: {
20856: uae_u32 srcreg = ((opcode >> 9) & 7);
20857: OpcodeFamily = 7; CurrentInstrCycles = 24;
20858: {{ uae_s32 src = m68k_dreg(regs, srcreg);
20859: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
20860: { uae_s32 dst = get_long(dsta);
20861: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
20862: { int flgs = ((uae_s32)(src)) < 0;
20863: int flgo = ((uae_s32)(dst)) < 0;
20864: int flgn = ((uae_s32)(newv)) < 0;
20865: SET_ZFLG (((uae_s32)(newv)) == 0);
20866: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
20867: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
20868: COPY_CARRY;
20869: SET_NFLG (flgn != 0);
20870: put_long(dsta,newv);
20871: }}}}}}}m68k_incpc(4);
20872: return 24;
20873: }
20874: unsigned long REGPARAM2 CPUFUNC(op_91b9_0)(uae_u32 opcode) /* SUB */
20875: {
20876: uae_u32 srcreg = ((opcode >> 9) & 7);
20877: OpcodeFamily = 7; CurrentInstrCycles = 28;
20878: {{ uae_s32 src = m68k_dreg(regs, srcreg);
20879: { uaecptr dsta = get_ilong(2);
20880: { uae_s32 dst = get_long(dsta);
20881: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
20882: { int flgs = ((uae_s32)(src)) < 0;
20883: int flgo = ((uae_s32)(dst)) < 0;
20884: int flgn = ((uae_s32)(newv)) < 0;
20885: SET_ZFLG (((uae_s32)(newv)) == 0);
20886: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
20887: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
20888: COPY_CARRY;
20889: SET_NFLG (flgn != 0);
20890: put_long(dsta,newv);
20891: }}}}}}}m68k_incpc(6);
20892: return 28;
20893: }
20894: unsigned long REGPARAM2 CPUFUNC(op_91c0_0)(uae_u32 opcode) /* SUBA */
20895: {
20896: uae_u32 srcreg = (opcode & 7);
20897: uae_u32 dstreg = (opcode >> 9) & 7;
20898: OpcodeFamily = 8; CurrentInstrCycles = 8;
20899: {{ uae_s32 src = m68k_dreg(regs, srcreg);
20900: { uae_s32 dst = m68k_areg(regs, dstreg);
20901: { uae_u32 newv = dst - src;
20902: m68k_areg(regs, dstreg) = (newv);
20903: }}}}m68k_incpc(2);
20904: return 8;
20905: }
20906: unsigned long REGPARAM2 CPUFUNC(op_91c8_0)(uae_u32 opcode) /* SUBA */
20907: {
20908: uae_u32 srcreg = (opcode & 7);
20909: uae_u32 dstreg = (opcode >> 9) & 7;
20910: OpcodeFamily = 8; CurrentInstrCycles = 8;
20911: {{ uae_s32 src = m68k_areg(regs, srcreg);
20912: { uae_s32 dst = m68k_areg(regs, dstreg);
20913: { uae_u32 newv = dst - src;
20914: m68k_areg(regs, dstreg) = (newv);
20915: }}}}m68k_incpc(2);
20916: return 8;
20917: }
20918: unsigned long REGPARAM2 CPUFUNC(op_91d0_0)(uae_u32 opcode) /* SUBA */
20919: {
20920: uae_u32 srcreg = (opcode & 7);
20921: uae_u32 dstreg = (opcode >> 9) & 7;
20922: OpcodeFamily = 8; CurrentInstrCycles = 14;
20923: {{ uaecptr srca = m68k_areg(regs, srcreg);
20924: { uae_s32 src = get_long(srca);
20925: { uae_s32 dst = m68k_areg(regs, dstreg);
20926: { uae_u32 newv = dst - src;
20927: m68k_areg(regs, dstreg) = (newv);
20928: }}}}}m68k_incpc(2);
20929: return 14;
20930: }
20931: unsigned long REGPARAM2 CPUFUNC(op_91d8_0)(uae_u32 opcode) /* SUBA */
20932: {
20933: uae_u32 srcreg = (opcode & 7);
20934: uae_u32 dstreg = (opcode >> 9) & 7;
20935: OpcodeFamily = 8; CurrentInstrCycles = 14;
20936: {{ uaecptr srca = m68k_areg(regs, srcreg);
20937: { uae_s32 src = get_long(srca);
20938: m68k_areg(regs, srcreg) += 4;
20939: { uae_s32 dst = m68k_areg(regs, dstreg);
20940: { uae_u32 newv = dst - src;
20941: m68k_areg(regs, dstreg) = (newv);
20942: }}}}}m68k_incpc(2);
20943: return 14;
20944: }
20945: unsigned long REGPARAM2 CPUFUNC(op_91e0_0)(uae_u32 opcode) /* SUBA */
20946: {
20947: uae_u32 srcreg = (opcode & 7);
20948: uae_u32 dstreg = (opcode >> 9) & 7;
20949: OpcodeFamily = 8; CurrentInstrCycles = 16;
20950: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
20951: { uae_s32 src = get_long(srca);
20952: m68k_areg (regs, srcreg) = srca;
20953: { uae_s32 dst = m68k_areg(regs, dstreg);
20954: { uae_u32 newv = dst - src;
20955: m68k_areg(regs, dstreg) = (newv);
20956: }}}}}m68k_incpc(2);
20957: return 16;
20958: }
20959: unsigned long REGPARAM2 CPUFUNC(op_91e8_0)(uae_u32 opcode) /* SUBA */
20960: {
20961: uae_u32 srcreg = (opcode & 7);
20962: uae_u32 dstreg = (opcode >> 9) & 7;
20963: OpcodeFamily = 8; CurrentInstrCycles = 18;
20964: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
20965: { uae_s32 src = get_long(srca);
20966: { uae_s32 dst = m68k_areg(regs, dstreg);
20967: { uae_u32 newv = dst - src;
20968: m68k_areg(regs, dstreg) = (newv);
20969: }}}}}m68k_incpc(4);
20970: return 18;
20971: }
20972: unsigned long REGPARAM2 CPUFUNC(op_91f0_0)(uae_u32 opcode) /* SUBA */
20973: {
20974: uae_u32 srcreg = (opcode & 7);
20975: uae_u32 dstreg = (opcode >> 9) & 7;
20976: OpcodeFamily = 8; CurrentInstrCycles = 20;
20977: {{m68k_incpc(2);
20978: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
20979: BusCyclePenalty += 2;
20980: { uae_s32 src = get_long(srca);
20981: { uae_s32 dst = m68k_areg(regs, dstreg);
20982: { uae_u32 newv = dst - src;
20983: m68k_areg(regs, dstreg) = (newv);
20984: }}}}}}return 20;
20985: }
20986: unsigned long REGPARAM2 CPUFUNC(op_91f8_0)(uae_u32 opcode) /* SUBA */
20987: {
20988: uae_u32 dstreg = (opcode >> 9) & 7;
20989: OpcodeFamily = 8; CurrentInstrCycles = 18;
20990: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
20991: { uae_s32 src = get_long(srca);
20992: { uae_s32 dst = m68k_areg(regs, dstreg);
20993: { uae_u32 newv = dst - src;
20994: m68k_areg(regs, dstreg) = (newv);
20995: }}}}}m68k_incpc(4);
20996: return 18;
20997: }
20998: unsigned long REGPARAM2 CPUFUNC(op_91f9_0)(uae_u32 opcode) /* SUBA */
20999: {
21000: uae_u32 dstreg = (opcode >> 9) & 7;
21001: OpcodeFamily = 8; CurrentInstrCycles = 22;
21002: {{ uaecptr srca = get_ilong(2);
21003: { uae_s32 src = get_long(srca);
21004: { uae_s32 dst = m68k_areg(regs, dstreg);
21005: { uae_u32 newv = dst - src;
21006: m68k_areg(regs, dstreg) = (newv);
21007: }}}}}m68k_incpc(6);
21008: return 22;
21009: }
21010: unsigned long REGPARAM2 CPUFUNC(op_91fa_0)(uae_u32 opcode) /* SUBA */
21011: {
21012: uae_u32 dstreg = (opcode >> 9) & 7;
21013: OpcodeFamily = 8; CurrentInstrCycles = 18;
21014: {{ uaecptr srca = m68k_getpc () + 2;
21015: srca += (uae_s32)(uae_s16)get_iword(2);
21016: { uae_s32 src = get_long(srca);
21017: { uae_s32 dst = m68k_areg(regs, dstreg);
21018: { uae_u32 newv = dst - src;
21019: m68k_areg(regs, dstreg) = (newv);
21020: }}}}}m68k_incpc(4);
21021: return 18;
21022: }
21023: unsigned long REGPARAM2 CPUFUNC(op_91fb_0)(uae_u32 opcode) /* SUBA */
21024: {
21025: uae_u32 dstreg = (opcode >> 9) & 7;
21026: OpcodeFamily = 8; CurrentInstrCycles = 20;
21027: {{m68k_incpc(2);
21028: { uaecptr tmppc = m68k_getpc();
21029: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
21030: BusCyclePenalty += 2;
21031: { uae_s32 src = get_long(srca);
21032: { uae_s32 dst = m68k_areg(regs, dstreg);
21033: { uae_u32 newv = dst - src;
21034: m68k_areg(regs, dstreg) = (newv);
21035: }}}}}}return 20;
21036: }
21037: unsigned long REGPARAM2 CPUFUNC(op_91fc_0)(uae_u32 opcode) /* SUBA */
21038: {
21039: uae_u32 dstreg = (opcode >> 9) & 7;
21040: OpcodeFamily = 8; CurrentInstrCycles = 16;
21041: {{ uae_s32 src = get_ilong(2);
21042: { uae_s32 dst = m68k_areg(regs, dstreg);
21043: { uae_u32 newv = dst - src;
21044: m68k_areg(regs, dstreg) = (newv);
21045: }}}}m68k_incpc(6);
21046: return 16;
21047: }
21048: unsigned long REGPARAM2 CPUFUNC(op_b000_0)(uae_u32 opcode) /* CMP */
21049: {
21050: uae_u32 srcreg = (opcode & 7);
21051: uae_u32 dstreg = (opcode >> 9) & 7;
21052: OpcodeFamily = 25; CurrentInstrCycles = 4;
21053: {{ uae_s8 src = m68k_dreg(regs, srcreg);
21054: { uae_s8 dst = m68k_dreg(regs, dstreg);
21055: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
21056: { int flgs = ((uae_s8)(src)) < 0;
21057: int flgo = ((uae_s8)(dst)) < 0;
21058: int flgn = ((uae_s8)(newv)) < 0;
21059: SET_ZFLG (((uae_s8)(newv)) == 0);
21060: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21061: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
21062: SET_NFLG (flgn != 0);
21063: }}}}}}m68k_incpc(2);
21064: return 4;
21065: }
21066: unsigned long REGPARAM2 CPUFUNC(op_b010_0)(uae_u32 opcode) /* CMP */
21067: {
21068: uae_u32 srcreg = (opcode & 7);
21069: uae_u32 dstreg = (opcode >> 9) & 7;
21070: OpcodeFamily = 25; CurrentInstrCycles = 8;
21071: {{ uaecptr srca = m68k_areg(regs, srcreg);
21072: { uae_s8 src = get_byte(srca);
21073: { uae_s8 dst = m68k_dreg(regs, dstreg);
21074: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
21075: { int flgs = ((uae_s8)(src)) < 0;
21076: int flgo = ((uae_s8)(dst)) < 0;
21077: int flgn = ((uae_s8)(newv)) < 0;
21078: SET_ZFLG (((uae_s8)(newv)) == 0);
21079: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21080: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
21081: SET_NFLG (flgn != 0);
21082: }}}}}}}m68k_incpc(2);
21083: return 8;
21084: }
21085: unsigned long REGPARAM2 CPUFUNC(op_b018_0)(uae_u32 opcode) /* CMP */
21086: {
21087: uae_u32 srcreg = (opcode & 7);
21088: uae_u32 dstreg = (opcode >> 9) & 7;
21089: OpcodeFamily = 25; CurrentInstrCycles = 8;
21090: {{ uaecptr srca = m68k_areg(regs, srcreg);
21091: { uae_s8 src = get_byte(srca);
21092: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
21093: { uae_s8 dst = m68k_dreg(regs, dstreg);
21094: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
21095: { int flgs = ((uae_s8)(src)) < 0;
21096: int flgo = ((uae_s8)(dst)) < 0;
21097: int flgn = ((uae_s8)(newv)) < 0;
21098: SET_ZFLG (((uae_s8)(newv)) == 0);
21099: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21100: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
21101: SET_NFLG (flgn != 0);
21102: }}}}}}}m68k_incpc(2);
21103: return 8;
21104: }
21105: unsigned long REGPARAM2 CPUFUNC(op_b020_0)(uae_u32 opcode) /* CMP */
21106: {
21107: uae_u32 srcreg = (opcode & 7);
21108: uae_u32 dstreg = (opcode >> 9) & 7;
21109: OpcodeFamily = 25; CurrentInstrCycles = 10;
21110: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
21111: { uae_s8 src = get_byte(srca);
21112: m68k_areg (regs, srcreg) = srca;
21113: { uae_s8 dst = m68k_dreg(regs, dstreg);
21114: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
21115: { int flgs = ((uae_s8)(src)) < 0;
21116: int flgo = ((uae_s8)(dst)) < 0;
21117: int flgn = ((uae_s8)(newv)) < 0;
21118: SET_ZFLG (((uae_s8)(newv)) == 0);
21119: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21120: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
21121: SET_NFLG (flgn != 0);
21122: }}}}}}}m68k_incpc(2);
21123: return 10;
21124: }
21125: unsigned long REGPARAM2 CPUFUNC(op_b028_0)(uae_u32 opcode) /* CMP */
21126: {
21127: uae_u32 srcreg = (opcode & 7);
21128: uae_u32 dstreg = (opcode >> 9) & 7;
21129: OpcodeFamily = 25; CurrentInstrCycles = 12;
21130: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
21131: { uae_s8 src = get_byte(srca);
21132: { uae_s8 dst = m68k_dreg(regs, dstreg);
21133: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
21134: { int flgs = ((uae_s8)(src)) < 0;
21135: int flgo = ((uae_s8)(dst)) < 0;
21136: int flgn = ((uae_s8)(newv)) < 0;
21137: SET_ZFLG (((uae_s8)(newv)) == 0);
21138: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21139: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
21140: SET_NFLG (flgn != 0);
21141: }}}}}}}m68k_incpc(4);
21142: return 12;
21143: }
21144: unsigned long REGPARAM2 CPUFUNC(op_b030_0)(uae_u32 opcode) /* CMP */
21145: {
21146: uae_u32 srcreg = (opcode & 7);
21147: uae_u32 dstreg = (opcode >> 9) & 7;
21148: OpcodeFamily = 25; CurrentInstrCycles = 14;
21149: {{m68k_incpc(2);
21150: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
21151: BusCyclePenalty += 2;
21152: { uae_s8 src = get_byte(srca);
21153: { uae_s8 dst = m68k_dreg(regs, dstreg);
21154: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
21155: { int flgs = ((uae_s8)(src)) < 0;
21156: int flgo = ((uae_s8)(dst)) < 0;
21157: int flgn = ((uae_s8)(newv)) < 0;
21158: SET_ZFLG (((uae_s8)(newv)) == 0);
21159: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21160: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
21161: SET_NFLG (flgn != 0);
21162: }}}}}}}}return 14;
21163: }
21164: unsigned long REGPARAM2 CPUFUNC(op_b038_0)(uae_u32 opcode) /* CMP */
21165: {
21166: uae_u32 dstreg = (opcode >> 9) & 7;
21167: OpcodeFamily = 25; CurrentInstrCycles = 12;
21168: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
21169: { uae_s8 src = get_byte(srca);
21170: { uae_s8 dst = m68k_dreg(regs, dstreg);
21171: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
21172: { int flgs = ((uae_s8)(src)) < 0;
21173: int flgo = ((uae_s8)(dst)) < 0;
21174: int flgn = ((uae_s8)(newv)) < 0;
21175: SET_ZFLG (((uae_s8)(newv)) == 0);
21176: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21177: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
21178: SET_NFLG (flgn != 0);
21179: }}}}}}}m68k_incpc(4);
21180: return 12;
21181: }
21182: unsigned long REGPARAM2 CPUFUNC(op_b039_0)(uae_u32 opcode) /* CMP */
21183: {
21184: uae_u32 dstreg = (opcode >> 9) & 7;
21185: OpcodeFamily = 25; CurrentInstrCycles = 16;
21186: {{ uaecptr srca = get_ilong(2);
21187: { uae_s8 src = get_byte(srca);
21188: { uae_s8 dst = m68k_dreg(regs, dstreg);
21189: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
21190: { int flgs = ((uae_s8)(src)) < 0;
21191: int flgo = ((uae_s8)(dst)) < 0;
21192: int flgn = ((uae_s8)(newv)) < 0;
21193: SET_ZFLG (((uae_s8)(newv)) == 0);
21194: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21195: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
21196: SET_NFLG (flgn != 0);
21197: }}}}}}}m68k_incpc(6);
21198: return 16;
21199: }
21200: unsigned long REGPARAM2 CPUFUNC(op_b03a_0)(uae_u32 opcode) /* CMP */
21201: {
21202: uae_u32 dstreg = (opcode >> 9) & 7;
21203: OpcodeFamily = 25; CurrentInstrCycles = 12;
21204: {{ uaecptr srca = m68k_getpc () + 2;
21205: srca += (uae_s32)(uae_s16)get_iword(2);
21206: { uae_s8 src = get_byte(srca);
21207: { uae_s8 dst = m68k_dreg(regs, dstreg);
21208: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
21209: { int flgs = ((uae_s8)(src)) < 0;
21210: int flgo = ((uae_s8)(dst)) < 0;
21211: int flgn = ((uae_s8)(newv)) < 0;
21212: SET_ZFLG (((uae_s8)(newv)) == 0);
21213: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21214: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
21215: SET_NFLG (flgn != 0);
21216: }}}}}}}m68k_incpc(4);
21217: return 12;
21218: }
21219: unsigned long REGPARAM2 CPUFUNC(op_b03b_0)(uae_u32 opcode) /* CMP */
21220: {
21221: uae_u32 dstreg = (opcode >> 9) & 7;
21222: OpcodeFamily = 25; CurrentInstrCycles = 14;
21223: {{m68k_incpc(2);
21224: { uaecptr tmppc = m68k_getpc();
21225: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
21226: BusCyclePenalty += 2;
21227: { uae_s8 src = get_byte(srca);
21228: { uae_s8 dst = m68k_dreg(regs, dstreg);
21229: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
21230: { int flgs = ((uae_s8)(src)) < 0;
21231: int flgo = ((uae_s8)(dst)) < 0;
21232: int flgn = ((uae_s8)(newv)) < 0;
21233: SET_ZFLG (((uae_s8)(newv)) == 0);
21234: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21235: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
21236: SET_NFLG (flgn != 0);
21237: }}}}}}}}return 14;
21238: }
21239: #endif
21240:
21241: #ifdef PART_7
21242: unsigned long REGPARAM2 CPUFUNC(op_b03c_0)(uae_u32 opcode) /* CMP */
21243: {
21244: uae_u32 dstreg = (opcode >> 9) & 7;
21245: OpcodeFamily = 25; CurrentInstrCycles = 8;
21246: {{ uae_s8 src = get_ibyte(2);
21247: { uae_s8 dst = m68k_dreg(regs, dstreg);
21248: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
21249: { int flgs = ((uae_s8)(src)) < 0;
21250: int flgo = ((uae_s8)(dst)) < 0;
21251: int flgn = ((uae_s8)(newv)) < 0;
21252: SET_ZFLG (((uae_s8)(newv)) == 0);
21253: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21254: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
21255: SET_NFLG (flgn != 0);
21256: }}}}}}m68k_incpc(4);
21257: return 8;
21258: }
21259: unsigned long REGPARAM2 CPUFUNC(op_b040_0)(uae_u32 opcode) /* CMP */
21260: {
21261: uae_u32 srcreg = (opcode & 7);
21262: uae_u32 dstreg = (opcode >> 9) & 7;
21263: OpcodeFamily = 25; CurrentInstrCycles = 4;
21264: {{ uae_s16 src = m68k_dreg(regs, srcreg);
21265: { uae_s16 dst = m68k_dreg(regs, dstreg);
21266: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
21267: { int flgs = ((uae_s16)(src)) < 0;
21268: int flgo = ((uae_s16)(dst)) < 0;
21269: int flgn = ((uae_s16)(newv)) < 0;
21270: SET_ZFLG (((uae_s16)(newv)) == 0);
21271: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21272: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
21273: SET_NFLG (flgn != 0);
21274: }}}}}}m68k_incpc(2);
21275: return 4;
21276: }
21277: unsigned long REGPARAM2 CPUFUNC(op_b048_0)(uae_u32 opcode) /* CMP */
21278: {
21279: uae_u32 srcreg = (opcode & 7);
21280: uae_u32 dstreg = (opcode >> 9) & 7;
21281: OpcodeFamily = 25; CurrentInstrCycles = 4;
21282: {{ uae_s16 src = m68k_areg(regs, srcreg);
21283: { uae_s16 dst = m68k_dreg(regs, dstreg);
21284: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
21285: { int flgs = ((uae_s16)(src)) < 0;
21286: int flgo = ((uae_s16)(dst)) < 0;
21287: int flgn = ((uae_s16)(newv)) < 0;
21288: SET_ZFLG (((uae_s16)(newv)) == 0);
21289: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21290: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
21291: SET_NFLG (flgn != 0);
21292: }}}}}}m68k_incpc(2);
21293: return 4;
21294: }
21295: unsigned long REGPARAM2 CPUFUNC(op_b050_0)(uae_u32 opcode) /* CMP */
21296: {
21297: uae_u32 srcreg = (opcode & 7);
21298: uae_u32 dstreg = (opcode >> 9) & 7;
21299: OpcodeFamily = 25; CurrentInstrCycles = 8;
21300: {{ uaecptr srca = m68k_areg(regs, srcreg);
21301: { uae_s16 src = get_word(srca);
21302: { uae_s16 dst = m68k_dreg(regs, dstreg);
21303: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
21304: { int flgs = ((uae_s16)(src)) < 0;
21305: int flgo = ((uae_s16)(dst)) < 0;
21306: int flgn = ((uae_s16)(newv)) < 0;
21307: SET_ZFLG (((uae_s16)(newv)) == 0);
21308: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21309: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
21310: SET_NFLG (flgn != 0);
21311: }}}}}}}m68k_incpc(2);
21312: return 8;
21313: }
21314: unsigned long REGPARAM2 CPUFUNC(op_b058_0)(uae_u32 opcode) /* CMP */
21315: {
21316: uae_u32 srcreg = (opcode & 7);
21317: uae_u32 dstreg = (opcode >> 9) & 7;
21318: OpcodeFamily = 25; CurrentInstrCycles = 8;
21319: {{ uaecptr srca = m68k_areg(regs, srcreg);
21320: { uae_s16 src = get_word(srca);
21321: m68k_areg(regs, srcreg) += 2;
21322: { uae_s16 dst = m68k_dreg(regs, dstreg);
21323: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
21324: { int flgs = ((uae_s16)(src)) < 0;
21325: int flgo = ((uae_s16)(dst)) < 0;
21326: int flgn = ((uae_s16)(newv)) < 0;
21327: SET_ZFLG (((uae_s16)(newv)) == 0);
21328: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21329: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
21330: SET_NFLG (flgn != 0);
21331: }}}}}}}m68k_incpc(2);
21332: return 8;
21333: }
21334: unsigned long REGPARAM2 CPUFUNC(op_b060_0)(uae_u32 opcode) /* CMP */
21335: {
21336: uae_u32 srcreg = (opcode & 7);
21337: uae_u32 dstreg = (opcode >> 9) & 7;
21338: OpcodeFamily = 25; CurrentInstrCycles = 10;
21339: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
21340: { uae_s16 src = get_word(srca);
21341: m68k_areg (regs, srcreg) = srca;
21342: { uae_s16 dst = m68k_dreg(regs, dstreg);
21343: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
21344: { int flgs = ((uae_s16)(src)) < 0;
21345: int flgo = ((uae_s16)(dst)) < 0;
21346: int flgn = ((uae_s16)(newv)) < 0;
21347: SET_ZFLG (((uae_s16)(newv)) == 0);
21348: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21349: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
21350: SET_NFLG (flgn != 0);
21351: }}}}}}}m68k_incpc(2);
21352: return 10;
21353: }
21354: unsigned long REGPARAM2 CPUFUNC(op_b068_0)(uae_u32 opcode) /* CMP */
21355: {
21356: uae_u32 srcreg = (opcode & 7);
21357: uae_u32 dstreg = (opcode >> 9) & 7;
21358: OpcodeFamily = 25; CurrentInstrCycles = 12;
21359: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
21360: { uae_s16 src = get_word(srca);
21361: { uae_s16 dst = m68k_dreg(regs, dstreg);
21362: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
21363: { int flgs = ((uae_s16)(src)) < 0;
21364: int flgo = ((uae_s16)(dst)) < 0;
21365: int flgn = ((uae_s16)(newv)) < 0;
21366: SET_ZFLG (((uae_s16)(newv)) == 0);
21367: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21368: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
21369: SET_NFLG (flgn != 0);
21370: }}}}}}}m68k_incpc(4);
21371: return 12;
21372: }
21373: unsigned long REGPARAM2 CPUFUNC(op_b070_0)(uae_u32 opcode) /* CMP */
21374: {
21375: uae_u32 srcreg = (opcode & 7);
21376: uae_u32 dstreg = (opcode >> 9) & 7;
21377: OpcodeFamily = 25; CurrentInstrCycles = 14;
21378: {{m68k_incpc(2);
21379: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
21380: BusCyclePenalty += 2;
21381: { uae_s16 src = get_word(srca);
21382: { uae_s16 dst = m68k_dreg(regs, dstreg);
21383: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
21384: { int flgs = ((uae_s16)(src)) < 0;
21385: int flgo = ((uae_s16)(dst)) < 0;
21386: int flgn = ((uae_s16)(newv)) < 0;
21387: SET_ZFLG (((uae_s16)(newv)) == 0);
21388: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21389: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
21390: SET_NFLG (flgn != 0);
21391: }}}}}}}}return 14;
21392: }
21393: unsigned long REGPARAM2 CPUFUNC(op_b078_0)(uae_u32 opcode) /* CMP */
21394: {
21395: uae_u32 dstreg = (opcode >> 9) & 7;
21396: OpcodeFamily = 25; CurrentInstrCycles = 12;
21397: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
21398: { uae_s16 src = get_word(srca);
21399: { uae_s16 dst = m68k_dreg(regs, dstreg);
21400: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
21401: { int flgs = ((uae_s16)(src)) < 0;
21402: int flgo = ((uae_s16)(dst)) < 0;
21403: int flgn = ((uae_s16)(newv)) < 0;
21404: SET_ZFLG (((uae_s16)(newv)) == 0);
21405: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21406: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
21407: SET_NFLG (flgn != 0);
21408: }}}}}}}m68k_incpc(4);
21409: return 12;
21410: }
21411: unsigned long REGPARAM2 CPUFUNC(op_b079_0)(uae_u32 opcode) /* CMP */
21412: {
21413: uae_u32 dstreg = (opcode >> 9) & 7;
21414: OpcodeFamily = 25; CurrentInstrCycles = 16;
21415: {{ uaecptr srca = get_ilong(2);
21416: { uae_s16 src = get_word(srca);
21417: { uae_s16 dst = m68k_dreg(regs, dstreg);
21418: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
21419: { int flgs = ((uae_s16)(src)) < 0;
21420: int flgo = ((uae_s16)(dst)) < 0;
21421: int flgn = ((uae_s16)(newv)) < 0;
21422: SET_ZFLG (((uae_s16)(newv)) == 0);
21423: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21424: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
21425: SET_NFLG (flgn != 0);
21426: }}}}}}}m68k_incpc(6);
21427: return 16;
21428: }
21429: unsigned long REGPARAM2 CPUFUNC(op_b07a_0)(uae_u32 opcode) /* CMP */
21430: {
21431: uae_u32 dstreg = (opcode >> 9) & 7;
21432: OpcodeFamily = 25; CurrentInstrCycles = 12;
21433: {{ uaecptr srca = m68k_getpc () + 2;
21434: srca += (uae_s32)(uae_s16)get_iword(2);
21435: { uae_s16 src = get_word(srca);
21436: { uae_s16 dst = m68k_dreg(regs, dstreg);
21437: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
21438: { int flgs = ((uae_s16)(src)) < 0;
21439: int flgo = ((uae_s16)(dst)) < 0;
21440: int flgn = ((uae_s16)(newv)) < 0;
21441: SET_ZFLG (((uae_s16)(newv)) == 0);
21442: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21443: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
21444: SET_NFLG (flgn != 0);
21445: }}}}}}}m68k_incpc(4);
21446: return 12;
21447: }
21448: unsigned long REGPARAM2 CPUFUNC(op_b07b_0)(uae_u32 opcode) /* CMP */
21449: {
21450: uae_u32 dstreg = (opcode >> 9) & 7;
21451: OpcodeFamily = 25; CurrentInstrCycles = 14;
21452: {{m68k_incpc(2);
21453: { uaecptr tmppc = m68k_getpc();
21454: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
21455: BusCyclePenalty += 2;
21456: { uae_s16 src = get_word(srca);
21457: { uae_s16 dst = m68k_dreg(regs, dstreg);
21458: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
21459: { int flgs = ((uae_s16)(src)) < 0;
21460: int flgo = ((uae_s16)(dst)) < 0;
21461: int flgn = ((uae_s16)(newv)) < 0;
21462: SET_ZFLG (((uae_s16)(newv)) == 0);
21463: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21464: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
21465: SET_NFLG (flgn != 0);
21466: }}}}}}}}return 14;
21467: }
21468: unsigned long REGPARAM2 CPUFUNC(op_b07c_0)(uae_u32 opcode) /* CMP */
21469: {
21470: uae_u32 dstreg = (opcode >> 9) & 7;
21471: OpcodeFamily = 25; CurrentInstrCycles = 8;
21472: {{ uae_s16 src = get_iword(2);
21473: { uae_s16 dst = m68k_dreg(regs, dstreg);
21474: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
21475: { int flgs = ((uae_s16)(src)) < 0;
21476: int flgo = ((uae_s16)(dst)) < 0;
21477: int flgn = ((uae_s16)(newv)) < 0;
21478: SET_ZFLG (((uae_s16)(newv)) == 0);
21479: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21480: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
21481: SET_NFLG (flgn != 0);
21482: }}}}}}m68k_incpc(4);
21483: return 8;
21484: }
21485: unsigned long REGPARAM2 CPUFUNC(op_b080_0)(uae_u32 opcode) /* CMP */
21486: {
21487: uae_u32 srcreg = (opcode & 7);
21488: uae_u32 dstreg = (opcode >> 9) & 7;
21489: OpcodeFamily = 25; CurrentInstrCycles = 6;
21490: {{ uae_s32 src = m68k_dreg(regs, srcreg);
21491: { uae_s32 dst = m68k_dreg(regs, dstreg);
21492: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
21493: { int flgs = ((uae_s32)(src)) < 0;
21494: int flgo = ((uae_s32)(dst)) < 0;
21495: int flgn = ((uae_s32)(newv)) < 0;
21496: SET_ZFLG (((uae_s32)(newv)) == 0);
21497: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21498: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
21499: SET_NFLG (flgn != 0);
21500: }}}}}}m68k_incpc(2);
21501: return 6;
21502: }
21503: unsigned long REGPARAM2 CPUFUNC(op_b088_0)(uae_u32 opcode) /* CMP */
21504: {
21505: uae_u32 srcreg = (opcode & 7);
21506: uae_u32 dstreg = (opcode >> 9) & 7;
21507: OpcodeFamily = 25; CurrentInstrCycles = 6;
21508: {{ uae_s32 src = m68k_areg(regs, srcreg);
21509: { uae_s32 dst = m68k_dreg(regs, dstreg);
21510: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
21511: { int flgs = ((uae_s32)(src)) < 0;
21512: int flgo = ((uae_s32)(dst)) < 0;
21513: int flgn = ((uae_s32)(newv)) < 0;
21514: SET_ZFLG (((uae_s32)(newv)) == 0);
21515: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21516: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
21517: SET_NFLG (flgn != 0);
21518: }}}}}}m68k_incpc(2);
21519: return 6;
21520: }
21521: unsigned long REGPARAM2 CPUFUNC(op_b090_0)(uae_u32 opcode) /* CMP */
21522: {
21523: uae_u32 srcreg = (opcode & 7);
21524: uae_u32 dstreg = (opcode >> 9) & 7;
21525: OpcodeFamily = 25; CurrentInstrCycles = 14;
21526: {{ uaecptr srca = m68k_areg(regs, srcreg);
21527: { uae_s32 src = get_long(srca);
21528: { uae_s32 dst = m68k_dreg(regs, dstreg);
21529: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
21530: { int flgs = ((uae_s32)(src)) < 0;
21531: int flgo = ((uae_s32)(dst)) < 0;
21532: int flgn = ((uae_s32)(newv)) < 0;
21533: SET_ZFLG (((uae_s32)(newv)) == 0);
21534: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21535: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
21536: SET_NFLG (flgn != 0);
21537: }}}}}}}m68k_incpc(2);
21538: return 14;
21539: }
21540: unsigned long REGPARAM2 CPUFUNC(op_b098_0)(uae_u32 opcode) /* CMP */
21541: {
21542: uae_u32 srcreg = (opcode & 7);
21543: uae_u32 dstreg = (opcode >> 9) & 7;
21544: OpcodeFamily = 25; CurrentInstrCycles = 14;
21545: {{ uaecptr srca = m68k_areg(regs, srcreg);
21546: { uae_s32 src = get_long(srca);
21547: m68k_areg(regs, srcreg) += 4;
21548: { uae_s32 dst = m68k_dreg(regs, dstreg);
21549: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
21550: { int flgs = ((uae_s32)(src)) < 0;
21551: int flgo = ((uae_s32)(dst)) < 0;
21552: int flgn = ((uae_s32)(newv)) < 0;
21553: SET_ZFLG (((uae_s32)(newv)) == 0);
21554: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21555: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
21556: SET_NFLG (flgn != 0);
21557: }}}}}}}m68k_incpc(2);
21558: return 14;
21559: }
21560: unsigned long REGPARAM2 CPUFUNC(op_b0a0_0)(uae_u32 opcode) /* CMP */
21561: {
21562: uae_u32 srcreg = (opcode & 7);
21563: uae_u32 dstreg = (opcode >> 9) & 7;
21564: OpcodeFamily = 25; CurrentInstrCycles = 16;
21565: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
21566: { uae_s32 src = get_long(srca);
21567: m68k_areg (regs, srcreg) = srca;
21568: { uae_s32 dst = m68k_dreg(regs, dstreg);
21569: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
21570: { int flgs = ((uae_s32)(src)) < 0;
21571: int flgo = ((uae_s32)(dst)) < 0;
21572: int flgn = ((uae_s32)(newv)) < 0;
21573: SET_ZFLG (((uae_s32)(newv)) == 0);
21574: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21575: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
21576: SET_NFLG (flgn != 0);
21577: }}}}}}}m68k_incpc(2);
21578: return 16;
21579: }
21580: unsigned long REGPARAM2 CPUFUNC(op_b0a8_0)(uae_u32 opcode) /* CMP */
21581: {
21582: uae_u32 srcreg = (opcode & 7);
21583: uae_u32 dstreg = (opcode >> 9) & 7;
21584: OpcodeFamily = 25; CurrentInstrCycles = 18;
21585: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
21586: { uae_s32 src = get_long(srca);
21587: { uae_s32 dst = m68k_dreg(regs, dstreg);
21588: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
21589: { int flgs = ((uae_s32)(src)) < 0;
21590: int flgo = ((uae_s32)(dst)) < 0;
21591: int flgn = ((uae_s32)(newv)) < 0;
21592: SET_ZFLG (((uae_s32)(newv)) == 0);
21593: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21594: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
21595: SET_NFLG (flgn != 0);
21596: }}}}}}}m68k_incpc(4);
21597: return 18;
21598: }
21599: unsigned long REGPARAM2 CPUFUNC(op_b0b0_0)(uae_u32 opcode) /* CMP */
21600: {
21601: uae_u32 srcreg = (opcode & 7);
21602: uae_u32 dstreg = (opcode >> 9) & 7;
21603: OpcodeFamily = 25; CurrentInstrCycles = 20;
21604: {{m68k_incpc(2);
21605: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
21606: BusCyclePenalty += 2;
21607: { uae_s32 src = get_long(srca);
21608: { uae_s32 dst = m68k_dreg(regs, dstreg);
21609: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
21610: { int flgs = ((uae_s32)(src)) < 0;
21611: int flgo = ((uae_s32)(dst)) < 0;
21612: int flgn = ((uae_s32)(newv)) < 0;
21613: SET_ZFLG (((uae_s32)(newv)) == 0);
21614: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21615: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
21616: SET_NFLG (flgn != 0);
21617: }}}}}}}}return 20;
21618: }
21619: unsigned long REGPARAM2 CPUFUNC(op_b0b8_0)(uae_u32 opcode) /* CMP */
21620: {
21621: uae_u32 dstreg = (opcode >> 9) & 7;
21622: OpcodeFamily = 25; CurrentInstrCycles = 18;
21623: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
21624: { uae_s32 src = get_long(srca);
21625: { uae_s32 dst = m68k_dreg(regs, dstreg);
21626: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
21627: { int flgs = ((uae_s32)(src)) < 0;
21628: int flgo = ((uae_s32)(dst)) < 0;
21629: int flgn = ((uae_s32)(newv)) < 0;
21630: SET_ZFLG (((uae_s32)(newv)) == 0);
21631: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21632: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
21633: SET_NFLG (flgn != 0);
21634: }}}}}}}m68k_incpc(4);
21635: return 18;
21636: }
21637: unsigned long REGPARAM2 CPUFUNC(op_b0b9_0)(uae_u32 opcode) /* CMP */
21638: {
21639: uae_u32 dstreg = (opcode >> 9) & 7;
21640: OpcodeFamily = 25; CurrentInstrCycles = 22;
21641: {{ uaecptr srca = get_ilong(2);
21642: { uae_s32 src = get_long(srca);
21643: { uae_s32 dst = m68k_dreg(regs, dstreg);
21644: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
21645: { int flgs = ((uae_s32)(src)) < 0;
21646: int flgo = ((uae_s32)(dst)) < 0;
21647: int flgn = ((uae_s32)(newv)) < 0;
21648: SET_ZFLG (((uae_s32)(newv)) == 0);
21649: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21650: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
21651: SET_NFLG (flgn != 0);
21652: }}}}}}}m68k_incpc(6);
21653: return 22;
21654: }
21655: unsigned long REGPARAM2 CPUFUNC(op_b0ba_0)(uae_u32 opcode) /* CMP */
21656: {
21657: uae_u32 dstreg = (opcode >> 9) & 7;
21658: OpcodeFamily = 25; CurrentInstrCycles = 18;
21659: {{ uaecptr srca = m68k_getpc () + 2;
21660: srca += (uae_s32)(uae_s16)get_iword(2);
21661: { uae_s32 src = get_long(srca);
21662: { uae_s32 dst = m68k_dreg(regs, dstreg);
21663: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
21664: { int flgs = ((uae_s32)(src)) < 0;
21665: int flgo = ((uae_s32)(dst)) < 0;
21666: int flgn = ((uae_s32)(newv)) < 0;
21667: SET_ZFLG (((uae_s32)(newv)) == 0);
21668: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21669: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
21670: SET_NFLG (flgn != 0);
21671: }}}}}}}m68k_incpc(4);
21672: return 18;
21673: }
21674: unsigned long REGPARAM2 CPUFUNC(op_b0bb_0)(uae_u32 opcode) /* CMP */
21675: {
21676: uae_u32 dstreg = (opcode >> 9) & 7;
21677: OpcodeFamily = 25; CurrentInstrCycles = 20;
21678: {{m68k_incpc(2);
21679: { uaecptr tmppc = m68k_getpc();
21680: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
21681: BusCyclePenalty += 2;
21682: { uae_s32 src = get_long(srca);
21683: { uae_s32 dst = m68k_dreg(regs, dstreg);
21684: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
21685: { int flgs = ((uae_s32)(src)) < 0;
21686: int flgo = ((uae_s32)(dst)) < 0;
21687: int flgn = ((uae_s32)(newv)) < 0;
21688: SET_ZFLG (((uae_s32)(newv)) == 0);
21689: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21690: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
21691: SET_NFLG (flgn != 0);
21692: }}}}}}}}return 20;
21693: }
21694: unsigned long REGPARAM2 CPUFUNC(op_b0bc_0)(uae_u32 opcode) /* CMP */
21695: {
21696: uae_u32 dstreg = (opcode >> 9) & 7;
21697: OpcodeFamily = 25; CurrentInstrCycles = 14;
21698: {{ uae_s32 src = get_ilong(2);
21699: { uae_s32 dst = m68k_dreg(regs, dstreg);
21700: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
21701: { int flgs = ((uae_s32)(src)) < 0;
21702: int flgo = ((uae_s32)(dst)) < 0;
21703: int flgn = ((uae_s32)(newv)) < 0;
21704: SET_ZFLG (((uae_s32)(newv)) == 0);
21705: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21706: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
21707: SET_NFLG (flgn != 0);
21708: }}}}}}m68k_incpc(6);
21709: return 14;
21710: }
21711: unsigned long REGPARAM2 CPUFUNC(op_b0c0_0)(uae_u32 opcode) /* CMPA */
21712: {
21713: uae_u32 srcreg = (opcode & 7);
21714: uae_u32 dstreg = (opcode >> 9) & 7;
21715: OpcodeFamily = 27; CurrentInstrCycles = 6;
21716: {{ uae_s16 src = m68k_dreg(regs, srcreg);
21717: { uae_s32 dst = m68k_areg(regs, dstreg);
21718: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
21719: { int flgs = ((uae_s32)(src)) < 0;
21720: int flgo = ((uae_s32)(dst)) < 0;
21721: int flgn = ((uae_s32)(newv)) < 0;
21722: SET_ZFLG (((uae_s32)(newv)) == 0);
21723: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21724: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
21725: SET_NFLG (flgn != 0);
21726: }}}}}}m68k_incpc(2);
21727: return 6;
21728: }
21729: unsigned long REGPARAM2 CPUFUNC(op_b0c8_0)(uae_u32 opcode) /* CMPA */
21730: {
21731: uae_u32 srcreg = (opcode & 7);
21732: uae_u32 dstreg = (opcode >> 9) & 7;
21733: OpcodeFamily = 27; CurrentInstrCycles = 6;
21734: {{ uae_s16 src = m68k_areg(regs, srcreg);
21735: { uae_s32 dst = m68k_areg(regs, dstreg);
21736: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
21737: { int flgs = ((uae_s32)(src)) < 0;
21738: int flgo = ((uae_s32)(dst)) < 0;
21739: int flgn = ((uae_s32)(newv)) < 0;
21740: SET_ZFLG (((uae_s32)(newv)) == 0);
21741: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21742: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
21743: SET_NFLG (flgn != 0);
21744: }}}}}}m68k_incpc(2);
21745: return 6;
21746: }
21747: unsigned long REGPARAM2 CPUFUNC(op_b0d0_0)(uae_u32 opcode) /* CMPA */
21748: {
21749: uae_u32 srcreg = (opcode & 7);
21750: uae_u32 dstreg = (opcode >> 9) & 7;
21751: OpcodeFamily = 27; CurrentInstrCycles = 10;
21752: {{ uaecptr srca = m68k_areg(regs, srcreg);
21753: { uae_s16 src = get_word(srca);
21754: { uae_s32 dst = m68k_areg(regs, dstreg);
21755: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
21756: { int flgs = ((uae_s32)(src)) < 0;
21757: int flgo = ((uae_s32)(dst)) < 0;
21758: int flgn = ((uae_s32)(newv)) < 0;
21759: SET_ZFLG (((uae_s32)(newv)) == 0);
21760: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21761: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
21762: SET_NFLG (flgn != 0);
21763: }}}}}}}m68k_incpc(2);
21764: return 10;
21765: }
21766: unsigned long REGPARAM2 CPUFUNC(op_b0d8_0)(uae_u32 opcode) /* CMPA */
21767: {
21768: uae_u32 srcreg = (opcode & 7);
21769: uae_u32 dstreg = (opcode >> 9) & 7;
21770: OpcodeFamily = 27; CurrentInstrCycles = 10;
21771: {{ uaecptr srca = m68k_areg(regs, srcreg);
21772: { uae_s16 src = get_word(srca);
21773: m68k_areg(regs, srcreg) += 2;
21774: { uae_s32 dst = m68k_areg(regs, dstreg);
21775: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
21776: { int flgs = ((uae_s32)(src)) < 0;
21777: int flgo = ((uae_s32)(dst)) < 0;
21778: int flgn = ((uae_s32)(newv)) < 0;
21779: SET_ZFLG (((uae_s32)(newv)) == 0);
21780: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21781: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
21782: SET_NFLG (flgn != 0);
21783: }}}}}}}m68k_incpc(2);
21784: return 10;
21785: }
21786: unsigned long REGPARAM2 CPUFUNC(op_b0e0_0)(uae_u32 opcode) /* CMPA */
21787: {
21788: uae_u32 srcreg = (opcode & 7);
21789: uae_u32 dstreg = (opcode >> 9) & 7;
21790: OpcodeFamily = 27; CurrentInstrCycles = 12;
21791: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
21792: { uae_s16 src = get_word(srca);
21793: m68k_areg (regs, srcreg) = srca;
21794: { uae_s32 dst = m68k_areg(regs, dstreg);
21795: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
21796: { int flgs = ((uae_s32)(src)) < 0;
21797: int flgo = ((uae_s32)(dst)) < 0;
21798: int flgn = ((uae_s32)(newv)) < 0;
21799: SET_ZFLG (((uae_s32)(newv)) == 0);
21800: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21801: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
21802: SET_NFLG (flgn != 0);
21803: }}}}}}}m68k_incpc(2);
21804: return 12;
21805: }
21806: unsigned long REGPARAM2 CPUFUNC(op_b0e8_0)(uae_u32 opcode) /* CMPA */
21807: {
21808: uae_u32 srcreg = (opcode & 7);
21809: uae_u32 dstreg = (opcode >> 9) & 7;
21810: OpcodeFamily = 27; CurrentInstrCycles = 14;
21811: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
21812: { uae_s16 src = get_word(srca);
21813: { uae_s32 dst = m68k_areg(regs, dstreg);
21814: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
21815: { int flgs = ((uae_s32)(src)) < 0;
21816: int flgo = ((uae_s32)(dst)) < 0;
21817: int flgn = ((uae_s32)(newv)) < 0;
21818: SET_ZFLG (((uae_s32)(newv)) == 0);
21819: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21820: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
21821: SET_NFLG (flgn != 0);
21822: }}}}}}}m68k_incpc(4);
21823: return 14;
21824: }
21825: unsigned long REGPARAM2 CPUFUNC(op_b0f0_0)(uae_u32 opcode) /* CMPA */
21826: {
21827: uae_u32 srcreg = (opcode & 7);
21828: uae_u32 dstreg = (opcode >> 9) & 7;
21829: OpcodeFamily = 27; CurrentInstrCycles = 16;
21830: {{m68k_incpc(2);
21831: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
21832: BusCyclePenalty += 2;
21833: { uae_s16 src = get_word(srca);
21834: { uae_s32 dst = m68k_areg(regs, dstreg);
21835: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
21836: { int flgs = ((uae_s32)(src)) < 0;
21837: int flgo = ((uae_s32)(dst)) < 0;
21838: int flgn = ((uae_s32)(newv)) < 0;
21839: SET_ZFLG (((uae_s32)(newv)) == 0);
21840: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21841: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
21842: SET_NFLG (flgn != 0);
21843: }}}}}}}}return 16;
21844: }
21845: unsigned long REGPARAM2 CPUFUNC(op_b0f8_0)(uae_u32 opcode) /* CMPA */
21846: {
21847: uae_u32 dstreg = (opcode >> 9) & 7;
21848: OpcodeFamily = 27; CurrentInstrCycles = 14;
21849: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
21850: { uae_s16 src = get_word(srca);
21851: { uae_s32 dst = m68k_areg(regs, dstreg);
21852: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
21853: { int flgs = ((uae_s32)(src)) < 0;
21854: int flgo = ((uae_s32)(dst)) < 0;
21855: int flgn = ((uae_s32)(newv)) < 0;
21856: SET_ZFLG (((uae_s32)(newv)) == 0);
21857: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21858: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
21859: SET_NFLG (flgn != 0);
21860: }}}}}}}m68k_incpc(4);
21861: return 14;
21862: }
21863: unsigned long REGPARAM2 CPUFUNC(op_b0f9_0)(uae_u32 opcode) /* CMPA */
21864: {
21865: uae_u32 dstreg = (opcode >> 9) & 7;
21866: OpcodeFamily = 27; CurrentInstrCycles = 18;
21867: {{ uaecptr srca = get_ilong(2);
21868: { uae_s16 src = get_word(srca);
21869: { uae_s32 dst = m68k_areg(regs, dstreg);
21870: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
21871: { int flgs = ((uae_s32)(src)) < 0;
21872: int flgo = ((uae_s32)(dst)) < 0;
21873: int flgn = ((uae_s32)(newv)) < 0;
21874: SET_ZFLG (((uae_s32)(newv)) == 0);
21875: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21876: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
21877: SET_NFLG (flgn != 0);
21878: }}}}}}}m68k_incpc(6);
21879: return 18;
21880: }
21881: unsigned long REGPARAM2 CPUFUNC(op_b0fa_0)(uae_u32 opcode) /* CMPA */
21882: {
21883: uae_u32 dstreg = (opcode >> 9) & 7;
21884: OpcodeFamily = 27; CurrentInstrCycles = 14;
21885: {{ uaecptr srca = m68k_getpc () + 2;
21886: srca += (uae_s32)(uae_s16)get_iword(2);
21887: { uae_s16 src = get_word(srca);
21888: { uae_s32 dst = m68k_areg(regs, dstreg);
21889: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
21890: { int flgs = ((uae_s32)(src)) < 0;
21891: int flgo = ((uae_s32)(dst)) < 0;
21892: int flgn = ((uae_s32)(newv)) < 0;
21893: SET_ZFLG (((uae_s32)(newv)) == 0);
21894: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21895: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
21896: SET_NFLG (flgn != 0);
21897: }}}}}}}m68k_incpc(4);
21898: return 14;
21899: }
21900: unsigned long REGPARAM2 CPUFUNC(op_b0fb_0)(uae_u32 opcode) /* CMPA */
21901: {
21902: uae_u32 dstreg = (opcode >> 9) & 7;
21903: OpcodeFamily = 27; CurrentInstrCycles = 16;
21904: {{m68k_incpc(2);
21905: { uaecptr tmppc = m68k_getpc();
21906: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
21907: BusCyclePenalty += 2;
21908: { uae_s16 src = get_word(srca);
21909: { uae_s32 dst = m68k_areg(regs, dstreg);
21910: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
21911: { int flgs = ((uae_s32)(src)) < 0;
21912: int flgo = ((uae_s32)(dst)) < 0;
21913: int flgn = ((uae_s32)(newv)) < 0;
21914: SET_ZFLG (((uae_s32)(newv)) == 0);
21915: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21916: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
21917: SET_NFLG (flgn != 0);
21918: }}}}}}}}return 16;
21919: }
21920: unsigned long REGPARAM2 CPUFUNC(op_b0fc_0)(uae_u32 opcode) /* CMPA */
21921: {
21922: uae_u32 dstreg = (opcode >> 9) & 7;
21923: OpcodeFamily = 27; CurrentInstrCycles = 10;
21924: {{ uae_s16 src = get_iword(2);
21925: { uae_s32 dst = m68k_areg(regs, dstreg);
21926: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
21927: { int flgs = ((uae_s32)(src)) < 0;
21928: int flgo = ((uae_s32)(dst)) < 0;
21929: int flgn = ((uae_s32)(newv)) < 0;
21930: SET_ZFLG (((uae_s32)(newv)) == 0);
21931: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21932: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
21933: SET_NFLG (flgn != 0);
21934: }}}}}}m68k_incpc(4);
21935: return 10;
21936: }
21937: unsigned long REGPARAM2 CPUFUNC(op_b100_0)(uae_u32 opcode) /* EOR */
21938: {
21939: uae_u32 srcreg = ((opcode >> 9) & 7);
21940: uae_u32 dstreg = opcode & 7;
21941: OpcodeFamily = 3; CurrentInstrCycles = 4;
21942: {{ uae_s8 src = m68k_dreg(regs, srcreg);
21943: { uae_s8 dst = m68k_dreg(regs, dstreg);
21944: src ^= dst;
21945: CLEAR_CZNV;
21946: SET_ZFLG (((uae_s8)(src)) == 0);
21947: SET_NFLG (((uae_s8)(src)) < 0);
21948: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
21949: }}}m68k_incpc(2);
21950: return 4;
21951: }
21952: unsigned long REGPARAM2 CPUFUNC(op_b108_0)(uae_u32 opcode) /* CMPM */
21953: {
21954: uae_u32 srcreg = (opcode & 7);
21955: uae_u32 dstreg = (opcode >> 9) & 7;
21956: OpcodeFamily = 26; CurrentInstrCycles = 12;
21957: {{ uaecptr srca = m68k_areg(regs, srcreg);
21958: { uae_s8 src = get_byte(srca);
21959: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
21960: { uaecptr dsta = m68k_areg(regs, dstreg);
21961: { uae_s8 dst = get_byte(dsta);
21962: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
21963: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
21964: { int flgs = ((uae_s8)(src)) < 0;
21965: int flgo = ((uae_s8)(dst)) < 0;
21966: int flgn = ((uae_s8)(newv)) < 0;
21967: SET_ZFLG (((uae_s8)(newv)) == 0);
21968: SET_VFLG ((flgs != flgo) && (flgn != flgo));
21969: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
21970: SET_NFLG (flgn != 0);
21971: }}}}}}}}m68k_incpc(2);
21972: return 12;
21973: }
21974: unsigned long REGPARAM2 CPUFUNC(op_b110_0)(uae_u32 opcode) /* EOR */
21975: {
21976: uae_u32 srcreg = ((opcode >> 9) & 7);
21977: uae_u32 dstreg = opcode & 7;
21978: OpcodeFamily = 3; CurrentInstrCycles = 12;
21979: {{ uae_s8 src = m68k_dreg(regs, srcreg);
21980: { uaecptr dsta = m68k_areg(regs, dstreg);
21981: { uae_s8 dst = get_byte(dsta);
21982: src ^= dst;
21983: CLEAR_CZNV;
21984: SET_ZFLG (((uae_s8)(src)) == 0);
21985: SET_NFLG (((uae_s8)(src)) < 0);
21986: put_byte(dsta,src);
21987: }}}}m68k_incpc(2);
21988: return 12;
21989: }
21990: unsigned long REGPARAM2 CPUFUNC(op_b118_0)(uae_u32 opcode) /* EOR */
21991: {
21992: uae_u32 srcreg = ((opcode >> 9) & 7);
21993: uae_u32 dstreg = opcode & 7;
21994: OpcodeFamily = 3; CurrentInstrCycles = 12;
21995: {{ uae_s8 src = m68k_dreg(regs, srcreg);
21996: { uaecptr dsta = m68k_areg(regs, dstreg);
21997: { uae_s8 dst = get_byte(dsta);
21998: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
21999: src ^= dst;
22000: CLEAR_CZNV;
22001: SET_ZFLG (((uae_s8)(src)) == 0);
22002: SET_NFLG (((uae_s8)(src)) < 0);
22003: put_byte(dsta,src);
22004: }}}}m68k_incpc(2);
22005: return 12;
22006: }
22007: unsigned long REGPARAM2 CPUFUNC(op_b120_0)(uae_u32 opcode) /* EOR */
22008: {
22009: uae_u32 srcreg = ((opcode >> 9) & 7);
22010: uae_u32 dstreg = opcode & 7;
22011: OpcodeFamily = 3; CurrentInstrCycles = 14;
22012: {{ uae_s8 src = m68k_dreg(regs, srcreg);
22013: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
22014: { uae_s8 dst = get_byte(dsta);
22015: m68k_areg (regs, dstreg) = dsta;
22016: src ^= dst;
22017: CLEAR_CZNV;
22018: SET_ZFLG (((uae_s8)(src)) == 0);
22019: SET_NFLG (((uae_s8)(src)) < 0);
22020: put_byte(dsta,src);
22021: }}}}m68k_incpc(2);
22022: return 14;
22023: }
22024: unsigned long REGPARAM2 CPUFUNC(op_b128_0)(uae_u32 opcode) /* EOR */
22025: {
22026: uae_u32 srcreg = ((opcode >> 9) & 7);
22027: uae_u32 dstreg = opcode & 7;
22028: OpcodeFamily = 3; CurrentInstrCycles = 16;
22029: {{ uae_s8 src = m68k_dreg(regs, srcreg);
22030: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
22031: { uae_s8 dst = get_byte(dsta);
22032: src ^= dst;
22033: CLEAR_CZNV;
22034: SET_ZFLG (((uae_s8)(src)) == 0);
22035: SET_NFLG (((uae_s8)(src)) < 0);
22036: put_byte(dsta,src);
22037: }}}}m68k_incpc(4);
22038: return 16;
22039: }
22040: unsigned long REGPARAM2 CPUFUNC(op_b130_0)(uae_u32 opcode) /* EOR */
22041: {
22042: uae_u32 srcreg = ((opcode >> 9) & 7);
22043: uae_u32 dstreg = opcode & 7;
22044: OpcodeFamily = 3; CurrentInstrCycles = 18;
22045: {{ uae_s8 src = m68k_dreg(regs, srcreg);
22046: {m68k_incpc(2);
22047: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
22048: BusCyclePenalty += 2;
22049: { uae_s8 dst = get_byte(dsta);
22050: src ^= dst;
22051: CLEAR_CZNV;
22052: SET_ZFLG (((uae_s8)(src)) == 0);
22053: SET_NFLG (((uae_s8)(src)) < 0);
22054: put_byte(dsta,src);
22055: }}}}}return 18;
22056: }
22057: unsigned long REGPARAM2 CPUFUNC(op_b138_0)(uae_u32 opcode) /* EOR */
22058: {
22059: uae_u32 srcreg = ((opcode >> 9) & 7);
22060: OpcodeFamily = 3; CurrentInstrCycles = 16;
22061: {{ uae_s8 src = m68k_dreg(regs, srcreg);
22062: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
22063: { uae_s8 dst = get_byte(dsta);
22064: src ^= dst;
22065: CLEAR_CZNV;
22066: SET_ZFLG (((uae_s8)(src)) == 0);
22067: SET_NFLG (((uae_s8)(src)) < 0);
22068: put_byte(dsta,src);
22069: }}}}m68k_incpc(4);
22070: return 16;
22071: }
22072: unsigned long REGPARAM2 CPUFUNC(op_b139_0)(uae_u32 opcode) /* EOR */
22073: {
22074: uae_u32 srcreg = ((opcode >> 9) & 7);
22075: OpcodeFamily = 3; CurrentInstrCycles = 20;
22076: {{ uae_s8 src = m68k_dreg(regs, srcreg);
22077: { uaecptr dsta = get_ilong(2);
22078: { uae_s8 dst = get_byte(dsta);
22079: src ^= dst;
22080: CLEAR_CZNV;
22081: SET_ZFLG (((uae_s8)(src)) == 0);
22082: SET_NFLG (((uae_s8)(src)) < 0);
22083: put_byte(dsta,src);
22084: }}}}m68k_incpc(6);
22085: return 20;
22086: }
22087: unsigned long REGPARAM2 CPUFUNC(op_b140_0)(uae_u32 opcode) /* EOR */
22088: {
22089: uae_u32 srcreg = ((opcode >> 9) & 7);
22090: uae_u32 dstreg = opcode & 7;
22091: OpcodeFamily = 3; CurrentInstrCycles = 4;
22092: {{ uae_s16 src = m68k_dreg(regs, srcreg);
22093: { uae_s16 dst = m68k_dreg(regs, dstreg);
22094: src ^= dst;
22095: CLEAR_CZNV;
22096: SET_ZFLG (((uae_s16)(src)) == 0);
22097: SET_NFLG (((uae_s16)(src)) < 0);
22098: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
22099: }}}m68k_incpc(2);
22100: return 4;
22101: }
22102: unsigned long REGPARAM2 CPUFUNC(op_b148_0)(uae_u32 opcode) /* CMPM */
22103: {
22104: uae_u32 srcreg = (opcode & 7);
22105: uae_u32 dstreg = (opcode >> 9) & 7;
22106: OpcodeFamily = 26; CurrentInstrCycles = 12;
22107: {{ uaecptr srca = m68k_areg(regs, srcreg);
22108: { uae_s16 src = get_word(srca);
22109: m68k_areg(regs, srcreg) += 2;
22110: { uaecptr dsta = m68k_areg(regs, dstreg);
22111: { uae_s16 dst = get_word(dsta);
22112: m68k_areg(regs, dstreg) += 2;
22113: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
22114: { int flgs = ((uae_s16)(src)) < 0;
22115: int flgo = ((uae_s16)(dst)) < 0;
22116: int flgn = ((uae_s16)(newv)) < 0;
22117: SET_ZFLG (((uae_s16)(newv)) == 0);
22118: SET_VFLG ((flgs != flgo) && (flgn != flgo));
22119: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
22120: SET_NFLG (flgn != 0);
22121: }}}}}}}}m68k_incpc(2);
22122: return 12;
22123: }
22124: unsigned long REGPARAM2 CPUFUNC(op_b150_0)(uae_u32 opcode) /* EOR */
22125: {
22126: uae_u32 srcreg = ((opcode >> 9) & 7);
22127: uae_u32 dstreg = opcode & 7;
22128: OpcodeFamily = 3; CurrentInstrCycles = 12;
22129: {{ uae_s16 src = m68k_dreg(regs, srcreg);
22130: { uaecptr dsta = m68k_areg(regs, dstreg);
22131: { uae_s16 dst = get_word(dsta);
22132: src ^= dst;
22133: CLEAR_CZNV;
22134: SET_ZFLG (((uae_s16)(src)) == 0);
22135: SET_NFLG (((uae_s16)(src)) < 0);
22136: put_word(dsta,src);
22137: }}}}m68k_incpc(2);
22138: return 12;
22139: }
22140: unsigned long REGPARAM2 CPUFUNC(op_b158_0)(uae_u32 opcode) /* EOR */
22141: {
22142: uae_u32 srcreg = ((opcode >> 9) & 7);
22143: uae_u32 dstreg = opcode & 7;
22144: OpcodeFamily = 3; CurrentInstrCycles = 12;
22145: {{ uae_s16 src = m68k_dreg(regs, srcreg);
22146: { uaecptr dsta = m68k_areg(regs, dstreg);
22147: { uae_s16 dst = get_word(dsta);
22148: m68k_areg(regs, dstreg) += 2;
22149: src ^= dst;
22150: CLEAR_CZNV;
22151: SET_ZFLG (((uae_s16)(src)) == 0);
22152: SET_NFLG (((uae_s16)(src)) < 0);
22153: put_word(dsta,src);
22154: }}}}m68k_incpc(2);
22155: return 12;
22156: }
22157: unsigned long REGPARAM2 CPUFUNC(op_b160_0)(uae_u32 opcode) /* EOR */
22158: {
22159: uae_u32 srcreg = ((opcode >> 9) & 7);
22160: uae_u32 dstreg = opcode & 7;
22161: OpcodeFamily = 3; CurrentInstrCycles = 14;
22162: {{ uae_s16 src = m68k_dreg(regs, srcreg);
22163: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
22164: { uae_s16 dst = get_word(dsta);
22165: m68k_areg (regs, dstreg) = dsta;
22166: src ^= dst;
22167: CLEAR_CZNV;
22168: SET_ZFLG (((uae_s16)(src)) == 0);
22169: SET_NFLG (((uae_s16)(src)) < 0);
22170: put_word(dsta,src);
22171: }}}}m68k_incpc(2);
22172: return 14;
22173: }
22174: unsigned long REGPARAM2 CPUFUNC(op_b168_0)(uae_u32 opcode) /* EOR */
22175: {
22176: uae_u32 srcreg = ((opcode >> 9) & 7);
22177: uae_u32 dstreg = opcode & 7;
22178: OpcodeFamily = 3; CurrentInstrCycles = 16;
22179: {{ uae_s16 src = m68k_dreg(regs, srcreg);
22180: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
22181: { uae_s16 dst = get_word(dsta);
22182: src ^= dst;
22183: CLEAR_CZNV;
22184: SET_ZFLG (((uae_s16)(src)) == 0);
22185: SET_NFLG (((uae_s16)(src)) < 0);
22186: put_word(dsta,src);
22187: }}}}m68k_incpc(4);
22188: return 16;
22189: }
22190: unsigned long REGPARAM2 CPUFUNC(op_b170_0)(uae_u32 opcode) /* EOR */
22191: {
22192: uae_u32 srcreg = ((opcode >> 9) & 7);
22193: uae_u32 dstreg = opcode & 7;
22194: OpcodeFamily = 3; CurrentInstrCycles = 18;
22195: {{ uae_s16 src = m68k_dreg(regs, srcreg);
22196: {m68k_incpc(2);
22197: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
22198: BusCyclePenalty += 2;
22199: { uae_s16 dst = get_word(dsta);
22200: src ^= dst;
22201: CLEAR_CZNV;
22202: SET_ZFLG (((uae_s16)(src)) == 0);
22203: SET_NFLG (((uae_s16)(src)) < 0);
22204: put_word(dsta,src);
22205: }}}}}return 18;
22206: }
22207: unsigned long REGPARAM2 CPUFUNC(op_b178_0)(uae_u32 opcode) /* EOR */
22208: {
22209: uae_u32 srcreg = ((opcode >> 9) & 7);
22210: OpcodeFamily = 3; CurrentInstrCycles = 16;
22211: {{ uae_s16 src = m68k_dreg(regs, srcreg);
22212: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
22213: { uae_s16 dst = get_word(dsta);
22214: src ^= dst;
22215: CLEAR_CZNV;
22216: SET_ZFLG (((uae_s16)(src)) == 0);
22217: SET_NFLG (((uae_s16)(src)) < 0);
22218: put_word(dsta,src);
22219: }}}}m68k_incpc(4);
22220: return 16;
22221: }
22222: unsigned long REGPARAM2 CPUFUNC(op_b179_0)(uae_u32 opcode) /* EOR */
22223: {
22224: uae_u32 srcreg = ((opcode >> 9) & 7);
22225: OpcodeFamily = 3; CurrentInstrCycles = 20;
22226: {{ uae_s16 src = m68k_dreg(regs, srcreg);
22227: { uaecptr dsta = get_ilong(2);
22228: { uae_s16 dst = get_word(dsta);
22229: src ^= dst;
22230: CLEAR_CZNV;
22231: SET_ZFLG (((uae_s16)(src)) == 0);
22232: SET_NFLG (((uae_s16)(src)) < 0);
22233: put_word(dsta,src);
22234: }}}}m68k_incpc(6);
22235: return 20;
22236: }
22237: unsigned long REGPARAM2 CPUFUNC(op_b180_0)(uae_u32 opcode) /* EOR */
22238: {
22239: uae_u32 srcreg = ((opcode >> 9) & 7);
22240: uae_u32 dstreg = opcode & 7;
22241: OpcodeFamily = 3; CurrentInstrCycles = 8;
22242: {{ uae_s32 src = m68k_dreg(regs, srcreg);
22243: { uae_s32 dst = m68k_dreg(regs, dstreg);
22244: src ^= dst;
22245: CLEAR_CZNV;
22246: SET_ZFLG (((uae_s32)(src)) == 0);
22247: SET_NFLG (((uae_s32)(src)) < 0);
22248: m68k_dreg(regs, dstreg) = (src);
22249: }}}m68k_incpc(2);
22250: return 8;
22251: }
22252: unsigned long REGPARAM2 CPUFUNC(op_b188_0)(uae_u32 opcode) /* CMPM */
22253: {
22254: uae_u32 srcreg = (opcode & 7);
22255: uae_u32 dstreg = (opcode >> 9) & 7;
22256: OpcodeFamily = 26; CurrentInstrCycles = 20;
22257: {{ uaecptr srca = m68k_areg(regs, srcreg);
22258: { uae_s32 src = get_long(srca);
22259: m68k_areg(regs, srcreg) += 4;
22260: { uaecptr dsta = m68k_areg(regs, dstreg);
22261: { uae_s32 dst = get_long(dsta);
22262: m68k_areg(regs, dstreg) += 4;
22263: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
22264: { int flgs = ((uae_s32)(src)) < 0;
22265: int flgo = ((uae_s32)(dst)) < 0;
22266: int flgn = ((uae_s32)(newv)) < 0;
22267: SET_ZFLG (((uae_s32)(newv)) == 0);
22268: SET_VFLG ((flgs != flgo) && (flgn != flgo));
22269: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
22270: SET_NFLG (flgn != 0);
22271: }}}}}}}}m68k_incpc(2);
22272: return 20;
22273: }
22274: unsigned long REGPARAM2 CPUFUNC(op_b190_0)(uae_u32 opcode) /* EOR */
22275: {
22276: uae_u32 srcreg = ((opcode >> 9) & 7);
22277: uae_u32 dstreg = opcode & 7;
22278: OpcodeFamily = 3; CurrentInstrCycles = 20;
22279: {{ uae_s32 src = m68k_dreg(regs, srcreg);
22280: { uaecptr dsta = m68k_areg(regs, dstreg);
22281: { uae_s32 dst = get_long(dsta);
22282: src ^= dst;
22283: CLEAR_CZNV;
22284: SET_ZFLG (((uae_s32)(src)) == 0);
22285: SET_NFLG (((uae_s32)(src)) < 0);
22286: put_long(dsta,src);
22287: }}}}m68k_incpc(2);
22288: return 20;
22289: }
22290: unsigned long REGPARAM2 CPUFUNC(op_b198_0)(uae_u32 opcode) /* EOR */
22291: {
22292: uae_u32 srcreg = ((opcode >> 9) & 7);
22293: uae_u32 dstreg = opcode & 7;
22294: OpcodeFamily = 3; CurrentInstrCycles = 20;
22295: {{ uae_s32 src = m68k_dreg(regs, srcreg);
22296: { uaecptr dsta = m68k_areg(regs, dstreg);
22297: { uae_s32 dst = get_long(dsta);
22298: m68k_areg(regs, dstreg) += 4;
22299: src ^= dst;
22300: CLEAR_CZNV;
22301: SET_ZFLG (((uae_s32)(src)) == 0);
22302: SET_NFLG (((uae_s32)(src)) < 0);
22303: put_long(dsta,src);
22304: }}}}m68k_incpc(2);
22305: return 20;
22306: }
22307: unsigned long REGPARAM2 CPUFUNC(op_b1a0_0)(uae_u32 opcode) /* EOR */
22308: {
22309: uae_u32 srcreg = ((opcode >> 9) & 7);
22310: uae_u32 dstreg = opcode & 7;
22311: OpcodeFamily = 3; CurrentInstrCycles = 22;
22312: {{ uae_s32 src = m68k_dreg(regs, srcreg);
22313: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
22314: { uae_s32 dst = get_long(dsta);
22315: m68k_areg (regs, dstreg) = dsta;
22316: src ^= dst;
22317: CLEAR_CZNV;
22318: SET_ZFLG (((uae_s32)(src)) == 0);
22319: SET_NFLG (((uae_s32)(src)) < 0);
22320: put_long(dsta,src);
22321: }}}}m68k_incpc(2);
22322: return 22;
22323: }
22324: unsigned long REGPARAM2 CPUFUNC(op_b1a8_0)(uae_u32 opcode) /* EOR */
22325: {
22326: uae_u32 srcreg = ((opcode >> 9) & 7);
22327: uae_u32 dstreg = opcode & 7;
22328: OpcodeFamily = 3; CurrentInstrCycles = 24;
22329: {{ uae_s32 src = m68k_dreg(regs, srcreg);
22330: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
22331: { uae_s32 dst = get_long(dsta);
22332: src ^= dst;
22333: CLEAR_CZNV;
22334: SET_ZFLG (((uae_s32)(src)) == 0);
22335: SET_NFLG (((uae_s32)(src)) < 0);
22336: put_long(dsta,src);
22337: }}}}m68k_incpc(4);
22338: return 24;
22339: }
22340: unsigned long REGPARAM2 CPUFUNC(op_b1b0_0)(uae_u32 opcode) /* EOR */
22341: {
22342: uae_u32 srcreg = ((opcode >> 9) & 7);
22343: uae_u32 dstreg = opcode & 7;
22344: OpcodeFamily = 3; CurrentInstrCycles = 26;
22345: {{ uae_s32 src = m68k_dreg(regs, srcreg);
22346: {m68k_incpc(2);
22347: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
22348: BusCyclePenalty += 2;
22349: { uae_s32 dst = get_long(dsta);
22350: src ^= dst;
22351: CLEAR_CZNV;
22352: SET_ZFLG (((uae_s32)(src)) == 0);
22353: SET_NFLG (((uae_s32)(src)) < 0);
22354: put_long(dsta,src);
22355: }}}}}return 26;
22356: }
22357: unsigned long REGPARAM2 CPUFUNC(op_b1b8_0)(uae_u32 opcode) /* EOR */
22358: {
22359: uae_u32 srcreg = ((opcode >> 9) & 7);
22360: OpcodeFamily = 3; CurrentInstrCycles = 24;
22361: {{ uae_s32 src = m68k_dreg(regs, srcreg);
22362: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
22363: { uae_s32 dst = get_long(dsta);
22364: src ^= dst;
22365: CLEAR_CZNV;
22366: SET_ZFLG (((uae_s32)(src)) == 0);
22367: SET_NFLG (((uae_s32)(src)) < 0);
22368: put_long(dsta,src);
22369: }}}}m68k_incpc(4);
22370: return 24;
22371: }
22372: unsigned long REGPARAM2 CPUFUNC(op_b1b9_0)(uae_u32 opcode) /* EOR */
22373: {
22374: uae_u32 srcreg = ((opcode >> 9) & 7);
22375: OpcodeFamily = 3; CurrentInstrCycles = 28;
22376: {{ uae_s32 src = m68k_dreg(regs, srcreg);
22377: { uaecptr dsta = get_ilong(2);
22378: { uae_s32 dst = get_long(dsta);
22379: src ^= dst;
22380: CLEAR_CZNV;
22381: SET_ZFLG (((uae_s32)(src)) == 0);
22382: SET_NFLG (((uae_s32)(src)) < 0);
22383: put_long(dsta,src);
22384: }}}}m68k_incpc(6);
22385: return 28;
22386: }
22387: unsigned long REGPARAM2 CPUFUNC(op_b1c0_0)(uae_u32 opcode) /* CMPA */
22388: {
22389: uae_u32 srcreg = (opcode & 7);
22390: uae_u32 dstreg = (opcode >> 9) & 7;
22391: OpcodeFamily = 27; CurrentInstrCycles = 6;
22392: {{ uae_s32 src = m68k_dreg(regs, srcreg);
22393: { uae_s32 dst = m68k_areg(regs, dstreg);
22394: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
22395: { int flgs = ((uae_s32)(src)) < 0;
22396: int flgo = ((uae_s32)(dst)) < 0;
22397: int flgn = ((uae_s32)(newv)) < 0;
22398: SET_ZFLG (((uae_s32)(newv)) == 0);
22399: SET_VFLG ((flgs != flgo) && (flgn != flgo));
22400: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
22401: SET_NFLG (flgn != 0);
22402: }}}}}}m68k_incpc(2);
22403: return 6;
22404: }
22405: unsigned long REGPARAM2 CPUFUNC(op_b1c8_0)(uae_u32 opcode) /* CMPA */
22406: {
22407: uae_u32 srcreg = (opcode & 7);
22408: uae_u32 dstreg = (opcode >> 9) & 7;
22409: OpcodeFamily = 27; CurrentInstrCycles = 6;
22410: {{ uae_s32 src = m68k_areg(regs, srcreg);
22411: { uae_s32 dst = m68k_areg(regs, dstreg);
22412: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
22413: { int flgs = ((uae_s32)(src)) < 0;
22414: int flgo = ((uae_s32)(dst)) < 0;
22415: int flgn = ((uae_s32)(newv)) < 0;
22416: SET_ZFLG (((uae_s32)(newv)) == 0);
22417: SET_VFLG ((flgs != flgo) && (flgn != flgo));
22418: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
22419: SET_NFLG (flgn != 0);
22420: }}}}}}m68k_incpc(2);
22421: return 6;
22422: }
22423: unsigned long REGPARAM2 CPUFUNC(op_b1d0_0)(uae_u32 opcode) /* CMPA */
22424: {
22425: uae_u32 srcreg = (opcode & 7);
22426: uae_u32 dstreg = (opcode >> 9) & 7;
22427: OpcodeFamily = 27; CurrentInstrCycles = 14;
22428: {{ uaecptr srca = m68k_areg(regs, srcreg);
22429: { uae_s32 src = get_long(srca);
22430: { uae_s32 dst = m68k_areg(regs, dstreg);
22431: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
22432: { int flgs = ((uae_s32)(src)) < 0;
22433: int flgo = ((uae_s32)(dst)) < 0;
22434: int flgn = ((uae_s32)(newv)) < 0;
22435: SET_ZFLG (((uae_s32)(newv)) == 0);
22436: SET_VFLG ((flgs != flgo) && (flgn != flgo));
22437: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
22438: SET_NFLG (flgn != 0);
22439: }}}}}}}m68k_incpc(2);
22440: return 14;
22441: }
22442: unsigned long REGPARAM2 CPUFUNC(op_b1d8_0)(uae_u32 opcode) /* CMPA */
22443: {
22444: uae_u32 srcreg = (opcode & 7);
22445: uae_u32 dstreg = (opcode >> 9) & 7;
22446: OpcodeFamily = 27; CurrentInstrCycles = 14;
22447: {{ uaecptr srca = m68k_areg(regs, srcreg);
22448: { uae_s32 src = get_long(srca);
22449: m68k_areg(regs, srcreg) += 4;
22450: { uae_s32 dst = m68k_areg(regs, dstreg);
22451: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
22452: { int flgs = ((uae_s32)(src)) < 0;
22453: int flgo = ((uae_s32)(dst)) < 0;
22454: int flgn = ((uae_s32)(newv)) < 0;
22455: SET_ZFLG (((uae_s32)(newv)) == 0);
22456: SET_VFLG ((flgs != flgo) && (flgn != flgo));
22457: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
22458: SET_NFLG (flgn != 0);
22459: }}}}}}}m68k_incpc(2);
22460: return 14;
22461: }
22462: unsigned long REGPARAM2 CPUFUNC(op_b1e0_0)(uae_u32 opcode) /* CMPA */
22463: {
22464: uae_u32 srcreg = (opcode & 7);
22465: uae_u32 dstreg = (opcode >> 9) & 7;
22466: OpcodeFamily = 27; CurrentInstrCycles = 16;
22467: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
22468: { uae_s32 src = get_long(srca);
22469: m68k_areg (regs, srcreg) = srca;
22470: { uae_s32 dst = m68k_areg(regs, dstreg);
22471: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
22472: { int flgs = ((uae_s32)(src)) < 0;
22473: int flgo = ((uae_s32)(dst)) < 0;
22474: int flgn = ((uae_s32)(newv)) < 0;
22475: SET_ZFLG (((uae_s32)(newv)) == 0);
22476: SET_VFLG ((flgs != flgo) && (flgn != flgo));
22477: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
22478: SET_NFLG (flgn != 0);
22479: }}}}}}}m68k_incpc(2);
22480: return 16;
22481: }
22482: unsigned long REGPARAM2 CPUFUNC(op_b1e8_0)(uae_u32 opcode) /* CMPA */
22483: {
22484: uae_u32 srcreg = (opcode & 7);
22485: uae_u32 dstreg = (opcode >> 9) & 7;
22486: OpcodeFamily = 27; CurrentInstrCycles = 18;
22487: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
22488: { uae_s32 src = get_long(srca);
22489: { uae_s32 dst = m68k_areg(regs, dstreg);
22490: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
22491: { int flgs = ((uae_s32)(src)) < 0;
22492: int flgo = ((uae_s32)(dst)) < 0;
22493: int flgn = ((uae_s32)(newv)) < 0;
22494: SET_ZFLG (((uae_s32)(newv)) == 0);
22495: SET_VFLG ((flgs != flgo) && (flgn != flgo));
22496: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
22497: SET_NFLG (flgn != 0);
22498: }}}}}}}m68k_incpc(4);
22499: return 18;
22500: }
22501: unsigned long REGPARAM2 CPUFUNC(op_b1f0_0)(uae_u32 opcode) /* CMPA */
22502: {
22503: uae_u32 srcreg = (opcode & 7);
22504: uae_u32 dstreg = (opcode >> 9) & 7;
22505: OpcodeFamily = 27; CurrentInstrCycles = 20;
22506: {{m68k_incpc(2);
22507: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
22508: BusCyclePenalty += 2;
22509: { uae_s32 src = get_long(srca);
22510: { uae_s32 dst = m68k_areg(regs, dstreg);
22511: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
22512: { int flgs = ((uae_s32)(src)) < 0;
22513: int flgo = ((uae_s32)(dst)) < 0;
22514: int flgn = ((uae_s32)(newv)) < 0;
22515: SET_ZFLG (((uae_s32)(newv)) == 0);
22516: SET_VFLG ((flgs != flgo) && (flgn != flgo));
22517: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
22518: SET_NFLG (flgn != 0);
22519: }}}}}}}}return 20;
22520: }
22521: unsigned long REGPARAM2 CPUFUNC(op_b1f8_0)(uae_u32 opcode) /* CMPA */
22522: {
22523: uae_u32 dstreg = (opcode >> 9) & 7;
22524: OpcodeFamily = 27; CurrentInstrCycles = 18;
22525: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
22526: { uae_s32 src = get_long(srca);
22527: { uae_s32 dst = m68k_areg(regs, dstreg);
22528: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
22529: { int flgs = ((uae_s32)(src)) < 0;
22530: int flgo = ((uae_s32)(dst)) < 0;
22531: int flgn = ((uae_s32)(newv)) < 0;
22532: SET_ZFLG (((uae_s32)(newv)) == 0);
22533: SET_VFLG ((flgs != flgo) && (flgn != flgo));
22534: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
22535: SET_NFLG (flgn != 0);
22536: }}}}}}}m68k_incpc(4);
22537: return 18;
22538: }
22539: unsigned long REGPARAM2 CPUFUNC(op_b1f9_0)(uae_u32 opcode) /* CMPA */
22540: {
22541: uae_u32 dstreg = (opcode >> 9) & 7;
22542: OpcodeFamily = 27; CurrentInstrCycles = 22;
22543: {{ uaecptr srca = get_ilong(2);
22544: { uae_s32 src = get_long(srca);
22545: { uae_s32 dst = m68k_areg(regs, dstreg);
22546: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
22547: { int flgs = ((uae_s32)(src)) < 0;
22548: int flgo = ((uae_s32)(dst)) < 0;
22549: int flgn = ((uae_s32)(newv)) < 0;
22550: SET_ZFLG (((uae_s32)(newv)) == 0);
22551: SET_VFLG ((flgs != flgo) && (flgn != flgo));
22552: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
22553: SET_NFLG (flgn != 0);
22554: }}}}}}}m68k_incpc(6);
22555: return 22;
22556: }
22557: unsigned long REGPARAM2 CPUFUNC(op_b1fa_0)(uae_u32 opcode) /* CMPA */
22558: {
22559: uae_u32 dstreg = (opcode >> 9) & 7;
22560: OpcodeFamily = 27; CurrentInstrCycles = 18;
22561: {{ uaecptr srca = m68k_getpc () + 2;
22562: srca += (uae_s32)(uae_s16)get_iword(2);
22563: { uae_s32 src = get_long(srca);
22564: { uae_s32 dst = m68k_areg(regs, dstreg);
22565: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
22566: { int flgs = ((uae_s32)(src)) < 0;
22567: int flgo = ((uae_s32)(dst)) < 0;
22568: int flgn = ((uae_s32)(newv)) < 0;
22569: SET_ZFLG (((uae_s32)(newv)) == 0);
22570: SET_VFLG ((flgs != flgo) && (flgn != flgo));
22571: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
22572: SET_NFLG (flgn != 0);
22573: }}}}}}}m68k_incpc(4);
22574: return 18;
22575: }
22576: unsigned long REGPARAM2 CPUFUNC(op_b1fb_0)(uae_u32 opcode) /* CMPA */
22577: {
22578: uae_u32 dstreg = (opcode >> 9) & 7;
22579: OpcodeFamily = 27; CurrentInstrCycles = 20;
22580: {{m68k_incpc(2);
22581: { uaecptr tmppc = m68k_getpc();
22582: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
22583: BusCyclePenalty += 2;
22584: { uae_s32 src = get_long(srca);
22585: { uae_s32 dst = m68k_areg(regs, dstreg);
22586: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
22587: { int flgs = ((uae_s32)(src)) < 0;
22588: int flgo = ((uae_s32)(dst)) < 0;
22589: int flgn = ((uae_s32)(newv)) < 0;
22590: SET_ZFLG (((uae_s32)(newv)) == 0);
22591: SET_VFLG ((flgs != flgo) && (flgn != flgo));
22592: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
22593: SET_NFLG (flgn != 0);
22594: }}}}}}}}return 20;
22595: }
22596: unsigned long REGPARAM2 CPUFUNC(op_b1fc_0)(uae_u32 opcode) /* CMPA */
22597: {
22598: uae_u32 dstreg = (opcode >> 9) & 7;
22599: OpcodeFamily = 27; CurrentInstrCycles = 14;
22600: {{ uae_s32 src = get_ilong(2);
22601: { uae_s32 dst = m68k_areg(regs, dstreg);
22602: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
22603: { int flgs = ((uae_s32)(src)) < 0;
22604: int flgo = ((uae_s32)(dst)) < 0;
22605: int flgn = ((uae_s32)(newv)) < 0;
22606: SET_ZFLG (((uae_s32)(newv)) == 0);
22607: SET_VFLG ((flgs != flgo) && (flgn != flgo));
22608: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
22609: SET_NFLG (flgn != 0);
22610: }}}}}}m68k_incpc(6);
22611: return 14;
22612: }
22613: unsigned long REGPARAM2 CPUFUNC(op_c000_0)(uae_u32 opcode) /* AND */
22614: {
22615: uae_u32 srcreg = (opcode & 7);
22616: uae_u32 dstreg = (opcode >> 9) & 7;
22617: OpcodeFamily = 2; CurrentInstrCycles = 4;
22618: {{ uae_s8 src = m68k_dreg(regs, srcreg);
22619: { uae_s8 dst = m68k_dreg(regs, dstreg);
22620: src &= dst;
22621: CLEAR_CZNV;
22622: SET_ZFLG (((uae_s8)(src)) == 0);
22623: SET_NFLG (((uae_s8)(src)) < 0);
22624: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
22625: }}}m68k_incpc(2);
22626: return 4;
22627: }
22628: unsigned long REGPARAM2 CPUFUNC(op_c010_0)(uae_u32 opcode) /* AND */
22629: {
22630: uae_u32 srcreg = (opcode & 7);
22631: uae_u32 dstreg = (opcode >> 9) & 7;
22632: OpcodeFamily = 2; CurrentInstrCycles = 8;
22633: {{ uaecptr srca = m68k_areg(regs, srcreg);
22634: { uae_s8 src = get_byte(srca);
22635: { uae_s8 dst = m68k_dreg(regs, dstreg);
22636: src &= dst;
22637: CLEAR_CZNV;
22638: SET_ZFLG (((uae_s8)(src)) == 0);
22639: SET_NFLG (((uae_s8)(src)) < 0);
22640: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
22641: }}}}m68k_incpc(2);
22642: return 8;
22643: }
22644: unsigned long REGPARAM2 CPUFUNC(op_c018_0)(uae_u32 opcode) /* AND */
22645: {
22646: uae_u32 srcreg = (opcode & 7);
22647: uae_u32 dstreg = (opcode >> 9) & 7;
22648: OpcodeFamily = 2; CurrentInstrCycles = 8;
22649: {{ uaecptr srca = m68k_areg(regs, srcreg);
22650: { uae_s8 src = get_byte(srca);
22651: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
22652: { uae_s8 dst = m68k_dreg(regs, dstreg);
22653: src &= dst;
22654: CLEAR_CZNV;
22655: SET_ZFLG (((uae_s8)(src)) == 0);
22656: SET_NFLG (((uae_s8)(src)) < 0);
22657: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
22658: }}}}m68k_incpc(2);
22659: return 8;
22660: }
22661: unsigned long REGPARAM2 CPUFUNC(op_c020_0)(uae_u32 opcode) /* AND */
22662: {
22663: uae_u32 srcreg = (opcode & 7);
22664: uae_u32 dstreg = (opcode >> 9) & 7;
22665: OpcodeFamily = 2; CurrentInstrCycles = 10;
22666: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
22667: { uae_s8 src = get_byte(srca);
22668: m68k_areg (regs, srcreg) = srca;
22669: { uae_s8 dst = m68k_dreg(regs, dstreg);
22670: src &= dst;
22671: CLEAR_CZNV;
22672: SET_ZFLG (((uae_s8)(src)) == 0);
22673: SET_NFLG (((uae_s8)(src)) < 0);
22674: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
22675: }}}}m68k_incpc(2);
22676: return 10;
22677: }
22678: unsigned long REGPARAM2 CPUFUNC(op_c028_0)(uae_u32 opcode) /* AND */
22679: {
22680: uae_u32 srcreg = (opcode & 7);
22681: uae_u32 dstreg = (opcode >> 9) & 7;
22682: OpcodeFamily = 2; CurrentInstrCycles = 12;
22683: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
22684: { uae_s8 src = get_byte(srca);
22685: { uae_s8 dst = m68k_dreg(regs, dstreg);
22686: src &= dst;
22687: CLEAR_CZNV;
22688: SET_ZFLG (((uae_s8)(src)) == 0);
22689: SET_NFLG (((uae_s8)(src)) < 0);
22690: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
22691: }}}}m68k_incpc(4);
22692: return 12;
22693: }
22694: unsigned long REGPARAM2 CPUFUNC(op_c030_0)(uae_u32 opcode) /* AND */
22695: {
22696: uae_u32 srcreg = (opcode & 7);
22697: uae_u32 dstreg = (opcode >> 9) & 7;
22698: OpcodeFamily = 2; CurrentInstrCycles = 14;
22699: {{m68k_incpc(2);
22700: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
22701: BusCyclePenalty += 2;
22702: { uae_s8 src = get_byte(srca);
22703: { uae_s8 dst = m68k_dreg(regs, dstreg);
22704: src &= dst;
22705: CLEAR_CZNV;
22706: SET_ZFLG (((uae_s8)(src)) == 0);
22707: SET_NFLG (((uae_s8)(src)) < 0);
22708: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
22709: }}}}}return 14;
22710: }
22711: unsigned long REGPARAM2 CPUFUNC(op_c038_0)(uae_u32 opcode) /* AND */
22712: {
22713: uae_u32 dstreg = (opcode >> 9) & 7;
22714: OpcodeFamily = 2; CurrentInstrCycles = 12;
22715: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
22716: { uae_s8 src = get_byte(srca);
22717: { uae_s8 dst = m68k_dreg(regs, dstreg);
22718: src &= dst;
22719: CLEAR_CZNV;
22720: SET_ZFLG (((uae_s8)(src)) == 0);
22721: SET_NFLG (((uae_s8)(src)) < 0);
22722: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
22723: }}}}m68k_incpc(4);
22724: return 12;
22725: }
22726: unsigned long REGPARAM2 CPUFUNC(op_c039_0)(uae_u32 opcode) /* AND */
22727: {
22728: uae_u32 dstreg = (opcode >> 9) & 7;
22729: OpcodeFamily = 2; CurrentInstrCycles = 16;
22730: {{ uaecptr srca = get_ilong(2);
22731: { uae_s8 src = get_byte(srca);
22732: { uae_s8 dst = m68k_dreg(regs, dstreg);
22733: src &= dst;
22734: CLEAR_CZNV;
22735: SET_ZFLG (((uae_s8)(src)) == 0);
22736: SET_NFLG (((uae_s8)(src)) < 0);
22737: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
22738: }}}}m68k_incpc(6);
22739: return 16;
22740: }
22741: unsigned long REGPARAM2 CPUFUNC(op_c03a_0)(uae_u32 opcode) /* AND */
22742: {
22743: uae_u32 dstreg = (opcode >> 9) & 7;
22744: OpcodeFamily = 2; CurrentInstrCycles = 12;
22745: {{ uaecptr srca = m68k_getpc () + 2;
22746: srca += (uae_s32)(uae_s16)get_iword(2);
22747: { uae_s8 src = get_byte(srca);
22748: { uae_s8 dst = m68k_dreg(regs, dstreg);
22749: src &= dst;
22750: CLEAR_CZNV;
22751: SET_ZFLG (((uae_s8)(src)) == 0);
22752: SET_NFLG (((uae_s8)(src)) < 0);
22753: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
22754: }}}}m68k_incpc(4);
22755: return 12;
22756: }
22757: unsigned long REGPARAM2 CPUFUNC(op_c03b_0)(uae_u32 opcode) /* AND */
22758: {
22759: uae_u32 dstreg = (opcode >> 9) & 7;
22760: OpcodeFamily = 2; CurrentInstrCycles = 14;
22761: {{m68k_incpc(2);
22762: { uaecptr tmppc = m68k_getpc();
22763: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
22764: BusCyclePenalty += 2;
22765: { uae_s8 src = get_byte(srca);
22766: { uae_s8 dst = m68k_dreg(regs, dstreg);
22767: src &= dst;
22768: CLEAR_CZNV;
22769: SET_ZFLG (((uae_s8)(src)) == 0);
22770: SET_NFLG (((uae_s8)(src)) < 0);
22771: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
22772: }}}}}return 14;
22773: }
22774: unsigned long REGPARAM2 CPUFUNC(op_c03c_0)(uae_u32 opcode) /* AND */
22775: {
22776: uae_u32 dstreg = (opcode >> 9) & 7;
22777: OpcodeFamily = 2; CurrentInstrCycles = 8;
22778: {{ uae_s8 src = get_ibyte(2);
22779: { uae_s8 dst = m68k_dreg(regs, dstreg);
22780: src &= dst;
22781: CLEAR_CZNV;
22782: SET_ZFLG (((uae_s8)(src)) == 0);
22783: SET_NFLG (((uae_s8)(src)) < 0);
22784: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
22785: }}}m68k_incpc(4);
22786: return 8;
22787: }
22788: unsigned long REGPARAM2 CPUFUNC(op_c040_0)(uae_u32 opcode) /* AND */
22789: {
22790: uae_u32 srcreg = (opcode & 7);
22791: uae_u32 dstreg = (opcode >> 9) & 7;
22792: OpcodeFamily = 2; CurrentInstrCycles = 4;
22793: {{ uae_s16 src = m68k_dreg(regs, srcreg);
22794: { uae_s16 dst = m68k_dreg(regs, dstreg);
22795: src &= dst;
22796: CLEAR_CZNV;
22797: SET_ZFLG (((uae_s16)(src)) == 0);
22798: SET_NFLG (((uae_s16)(src)) < 0);
22799: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
22800: }}}m68k_incpc(2);
22801: return 4;
22802: }
22803: unsigned long REGPARAM2 CPUFUNC(op_c050_0)(uae_u32 opcode) /* AND */
22804: {
22805: uae_u32 srcreg = (opcode & 7);
22806: uae_u32 dstreg = (opcode >> 9) & 7;
22807: OpcodeFamily = 2; CurrentInstrCycles = 8;
22808: {{ uaecptr srca = m68k_areg(regs, srcreg);
22809: { uae_s16 src = get_word(srca);
22810: { uae_s16 dst = m68k_dreg(regs, dstreg);
22811: src &= dst;
22812: CLEAR_CZNV;
22813: SET_ZFLG (((uae_s16)(src)) == 0);
22814: SET_NFLG (((uae_s16)(src)) < 0);
22815: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
22816: }}}}m68k_incpc(2);
22817: return 8;
22818: }
22819: unsigned long REGPARAM2 CPUFUNC(op_c058_0)(uae_u32 opcode) /* AND */
22820: {
22821: uae_u32 srcreg = (opcode & 7);
22822: uae_u32 dstreg = (opcode >> 9) & 7;
22823: OpcodeFamily = 2; CurrentInstrCycles = 8;
22824: {{ uaecptr srca = m68k_areg(regs, srcreg);
22825: { uae_s16 src = get_word(srca);
22826: m68k_areg(regs, srcreg) += 2;
22827: { uae_s16 dst = m68k_dreg(regs, dstreg);
22828: src &= dst;
22829: CLEAR_CZNV;
22830: SET_ZFLG (((uae_s16)(src)) == 0);
22831: SET_NFLG (((uae_s16)(src)) < 0);
22832: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
22833: }}}}m68k_incpc(2);
22834: return 8;
22835: }
22836: unsigned long REGPARAM2 CPUFUNC(op_c060_0)(uae_u32 opcode) /* AND */
22837: {
22838: uae_u32 srcreg = (opcode & 7);
22839: uae_u32 dstreg = (opcode >> 9) & 7;
22840: OpcodeFamily = 2; CurrentInstrCycles = 10;
22841: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
22842: { uae_s16 src = get_word(srca);
22843: m68k_areg (regs, srcreg) = srca;
22844: { uae_s16 dst = m68k_dreg(regs, dstreg);
22845: src &= dst;
22846: CLEAR_CZNV;
22847: SET_ZFLG (((uae_s16)(src)) == 0);
22848: SET_NFLG (((uae_s16)(src)) < 0);
22849: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
22850: }}}}m68k_incpc(2);
22851: return 10;
22852: }
22853: unsigned long REGPARAM2 CPUFUNC(op_c068_0)(uae_u32 opcode) /* AND */
22854: {
22855: uae_u32 srcreg = (opcode & 7);
22856: uae_u32 dstreg = (opcode >> 9) & 7;
22857: OpcodeFamily = 2; CurrentInstrCycles = 12;
22858: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
22859: { uae_s16 src = get_word(srca);
22860: { uae_s16 dst = m68k_dreg(regs, dstreg);
22861: src &= dst;
22862: CLEAR_CZNV;
22863: SET_ZFLG (((uae_s16)(src)) == 0);
22864: SET_NFLG (((uae_s16)(src)) < 0);
22865: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
22866: }}}}m68k_incpc(4);
22867: return 12;
22868: }
22869: unsigned long REGPARAM2 CPUFUNC(op_c070_0)(uae_u32 opcode) /* AND */
22870: {
22871: uae_u32 srcreg = (opcode & 7);
22872: uae_u32 dstreg = (opcode >> 9) & 7;
22873: OpcodeFamily = 2; CurrentInstrCycles = 14;
22874: {{m68k_incpc(2);
22875: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
22876: BusCyclePenalty += 2;
22877: { uae_s16 src = get_word(srca);
22878: { uae_s16 dst = m68k_dreg(regs, dstreg);
22879: src &= dst;
22880: CLEAR_CZNV;
22881: SET_ZFLG (((uae_s16)(src)) == 0);
22882: SET_NFLG (((uae_s16)(src)) < 0);
22883: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
22884: }}}}}return 14;
22885: }
22886: unsigned long REGPARAM2 CPUFUNC(op_c078_0)(uae_u32 opcode) /* AND */
22887: {
22888: uae_u32 dstreg = (opcode >> 9) & 7;
22889: OpcodeFamily = 2; CurrentInstrCycles = 12;
22890: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
22891: { uae_s16 src = get_word(srca);
22892: { uae_s16 dst = m68k_dreg(regs, dstreg);
22893: src &= dst;
22894: CLEAR_CZNV;
22895: SET_ZFLG (((uae_s16)(src)) == 0);
22896: SET_NFLG (((uae_s16)(src)) < 0);
22897: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
22898: }}}}m68k_incpc(4);
22899: return 12;
22900: }
22901: unsigned long REGPARAM2 CPUFUNC(op_c079_0)(uae_u32 opcode) /* AND */
22902: {
22903: uae_u32 dstreg = (opcode >> 9) & 7;
22904: OpcodeFamily = 2; CurrentInstrCycles = 16;
22905: {{ uaecptr srca = get_ilong(2);
22906: { uae_s16 src = get_word(srca);
22907: { uae_s16 dst = m68k_dreg(regs, dstreg);
22908: src &= dst;
22909: CLEAR_CZNV;
22910: SET_ZFLG (((uae_s16)(src)) == 0);
22911: SET_NFLG (((uae_s16)(src)) < 0);
22912: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
22913: }}}}m68k_incpc(6);
22914: return 16;
22915: }
22916: unsigned long REGPARAM2 CPUFUNC(op_c07a_0)(uae_u32 opcode) /* AND */
22917: {
22918: uae_u32 dstreg = (opcode >> 9) & 7;
22919: OpcodeFamily = 2; CurrentInstrCycles = 12;
22920: {{ uaecptr srca = m68k_getpc () + 2;
22921: srca += (uae_s32)(uae_s16)get_iword(2);
22922: { uae_s16 src = get_word(srca);
22923: { uae_s16 dst = m68k_dreg(regs, dstreg);
22924: src &= dst;
22925: CLEAR_CZNV;
22926: SET_ZFLG (((uae_s16)(src)) == 0);
22927: SET_NFLG (((uae_s16)(src)) < 0);
22928: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
22929: }}}}m68k_incpc(4);
22930: return 12;
22931: }
22932: unsigned long REGPARAM2 CPUFUNC(op_c07b_0)(uae_u32 opcode) /* AND */
22933: {
22934: uae_u32 dstreg = (opcode >> 9) & 7;
22935: OpcodeFamily = 2; CurrentInstrCycles = 14;
22936: {{m68k_incpc(2);
22937: { uaecptr tmppc = m68k_getpc();
22938: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
22939: BusCyclePenalty += 2;
22940: { uae_s16 src = get_word(srca);
22941: { uae_s16 dst = m68k_dreg(regs, dstreg);
22942: src &= dst;
22943: CLEAR_CZNV;
22944: SET_ZFLG (((uae_s16)(src)) == 0);
22945: SET_NFLG (((uae_s16)(src)) < 0);
22946: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
22947: }}}}}return 14;
22948: }
22949: unsigned long REGPARAM2 CPUFUNC(op_c07c_0)(uae_u32 opcode) /* AND */
22950: {
22951: uae_u32 dstreg = (opcode >> 9) & 7;
22952: OpcodeFamily = 2; CurrentInstrCycles = 8;
22953: {{ uae_s16 src = get_iword(2);
22954: { uae_s16 dst = m68k_dreg(regs, dstreg);
22955: src &= dst;
22956: CLEAR_CZNV;
22957: SET_ZFLG (((uae_s16)(src)) == 0);
22958: SET_NFLG (((uae_s16)(src)) < 0);
22959: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
22960: }}}m68k_incpc(4);
22961: return 8;
22962: }
22963: unsigned long REGPARAM2 CPUFUNC(op_c080_0)(uae_u32 opcode) /* AND */
22964: {
22965: uae_u32 srcreg = (opcode & 7);
22966: uae_u32 dstreg = (opcode >> 9) & 7;
22967: OpcodeFamily = 2; CurrentInstrCycles = 8;
22968: {{ uae_s32 src = m68k_dreg(regs, srcreg);
22969: { uae_s32 dst = m68k_dreg(regs, dstreg);
22970: src &= dst;
22971: CLEAR_CZNV;
22972: SET_ZFLG (((uae_s32)(src)) == 0);
22973: SET_NFLG (((uae_s32)(src)) < 0);
22974: m68k_dreg(regs, dstreg) = (src);
22975: }}}m68k_incpc(2);
22976: return 8;
22977: }
22978: unsigned long REGPARAM2 CPUFUNC(op_c090_0)(uae_u32 opcode) /* AND */
22979: {
22980: uae_u32 srcreg = (opcode & 7);
22981: uae_u32 dstreg = (opcode >> 9) & 7;
22982: OpcodeFamily = 2; CurrentInstrCycles = 14;
22983: {{ uaecptr srca = m68k_areg(regs, srcreg);
22984: { uae_s32 src = get_long(srca);
22985: { uae_s32 dst = m68k_dreg(regs, dstreg);
22986: src &= dst;
22987: CLEAR_CZNV;
22988: SET_ZFLG (((uae_s32)(src)) == 0);
22989: SET_NFLG (((uae_s32)(src)) < 0);
22990: m68k_dreg(regs, dstreg) = (src);
22991: }}}}m68k_incpc(2);
22992: return 14;
22993: }
22994: unsigned long REGPARAM2 CPUFUNC(op_c098_0)(uae_u32 opcode) /* AND */
22995: {
22996: uae_u32 srcreg = (opcode & 7);
22997: uae_u32 dstreg = (opcode >> 9) & 7;
22998: OpcodeFamily = 2; CurrentInstrCycles = 14;
22999: {{ uaecptr srca = m68k_areg(regs, srcreg);
23000: { uae_s32 src = get_long(srca);
23001: m68k_areg(regs, srcreg) += 4;
23002: { uae_s32 dst = m68k_dreg(regs, dstreg);
23003: src &= dst;
23004: CLEAR_CZNV;
23005: SET_ZFLG (((uae_s32)(src)) == 0);
23006: SET_NFLG (((uae_s32)(src)) < 0);
23007: m68k_dreg(regs, dstreg) = (src);
23008: }}}}m68k_incpc(2);
23009: return 14;
23010: }
23011: unsigned long REGPARAM2 CPUFUNC(op_c0a0_0)(uae_u32 opcode) /* AND */
23012: {
23013: uae_u32 srcreg = (opcode & 7);
23014: uae_u32 dstreg = (opcode >> 9) & 7;
23015: OpcodeFamily = 2; CurrentInstrCycles = 16;
23016: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
23017: { uae_s32 src = get_long(srca);
23018: m68k_areg (regs, srcreg) = srca;
23019: { uae_s32 dst = m68k_dreg(regs, dstreg);
23020: src &= dst;
23021: CLEAR_CZNV;
23022: SET_ZFLG (((uae_s32)(src)) == 0);
23023: SET_NFLG (((uae_s32)(src)) < 0);
23024: m68k_dreg(regs, dstreg) = (src);
23025: }}}}m68k_incpc(2);
23026: return 16;
23027: }
23028: unsigned long REGPARAM2 CPUFUNC(op_c0a8_0)(uae_u32 opcode) /* AND */
23029: {
23030: uae_u32 srcreg = (opcode & 7);
23031: uae_u32 dstreg = (opcode >> 9) & 7;
23032: OpcodeFamily = 2; CurrentInstrCycles = 18;
23033: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
23034: { uae_s32 src = get_long(srca);
23035: { uae_s32 dst = m68k_dreg(regs, dstreg);
23036: src &= dst;
23037: CLEAR_CZNV;
23038: SET_ZFLG (((uae_s32)(src)) == 0);
23039: SET_NFLG (((uae_s32)(src)) < 0);
23040: m68k_dreg(regs, dstreg) = (src);
23041: }}}}m68k_incpc(4);
23042: return 18;
23043: }
23044: unsigned long REGPARAM2 CPUFUNC(op_c0b0_0)(uae_u32 opcode) /* AND */
23045: {
23046: uae_u32 srcreg = (opcode & 7);
23047: uae_u32 dstreg = (opcode >> 9) & 7;
23048: OpcodeFamily = 2; CurrentInstrCycles = 20;
23049: {{m68k_incpc(2);
23050: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
23051: BusCyclePenalty += 2;
23052: { uae_s32 src = get_long(srca);
23053: { uae_s32 dst = m68k_dreg(regs, dstreg);
23054: src &= dst;
23055: CLEAR_CZNV;
23056: SET_ZFLG (((uae_s32)(src)) == 0);
23057: SET_NFLG (((uae_s32)(src)) < 0);
23058: m68k_dreg(regs, dstreg) = (src);
23059: }}}}}return 20;
23060: }
23061: unsigned long REGPARAM2 CPUFUNC(op_c0b8_0)(uae_u32 opcode) /* AND */
23062: {
23063: uae_u32 dstreg = (opcode >> 9) & 7;
23064: OpcodeFamily = 2; CurrentInstrCycles = 18;
23065: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
23066: { uae_s32 src = get_long(srca);
23067: { uae_s32 dst = m68k_dreg(regs, dstreg);
23068: src &= dst;
23069: CLEAR_CZNV;
23070: SET_ZFLG (((uae_s32)(src)) == 0);
23071: SET_NFLG (((uae_s32)(src)) < 0);
23072: m68k_dreg(regs, dstreg) = (src);
23073: }}}}m68k_incpc(4);
23074: return 18;
23075: }
23076: unsigned long REGPARAM2 CPUFUNC(op_c0b9_0)(uae_u32 opcode) /* AND */
23077: {
23078: uae_u32 dstreg = (opcode >> 9) & 7;
23079: OpcodeFamily = 2; CurrentInstrCycles = 22;
23080: {{ uaecptr srca = get_ilong(2);
23081: { uae_s32 src = get_long(srca);
23082: { uae_s32 dst = m68k_dreg(regs, dstreg);
23083: src &= dst;
23084: CLEAR_CZNV;
23085: SET_ZFLG (((uae_s32)(src)) == 0);
23086: SET_NFLG (((uae_s32)(src)) < 0);
23087: m68k_dreg(regs, dstreg) = (src);
23088: }}}}m68k_incpc(6);
23089: return 22;
23090: }
23091: unsigned long REGPARAM2 CPUFUNC(op_c0ba_0)(uae_u32 opcode) /* AND */
23092: {
23093: uae_u32 dstreg = (opcode >> 9) & 7;
23094: OpcodeFamily = 2; CurrentInstrCycles = 18;
23095: {{ uaecptr srca = m68k_getpc () + 2;
23096: srca += (uae_s32)(uae_s16)get_iword(2);
23097: { uae_s32 src = get_long(srca);
23098: { uae_s32 dst = m68k_dreg(regs, dstreg);
23099: src &= dst;
23100: CLEAR_CZNV;
23101: SET_ZFLG (((uae_s32)(src)) == 0);
23102: SET_NFLG (((uae_s32)(src)) < 0);
23103: m68k_dreg(regs, dstreg) = (src);
23104: }}}}m68k_incpc(4);
23105: return 18;
23106: }
23107: unsigned long REGPARAM2 CPUFUNC(op_c0bb_0)(uae_u32 opcode) /* AND */
23108: {
23109: uae_u32 dstreg = (opcode >> 9) & 7;
23110: OpcodeFamily = 2; CurrentInstrCycles = 20;
23111: {{m68k_incpc(2);
23112: { uaecptr tmppc = m68k_getpc();
23113: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
23114: BusCyclePenalty += 2;
23115: { uae_s32 src = get_long(srca);
23116: { uae_s32 dst = m68k_dreg(regs, dstreg);
23117: src &= dst;
23118: CLEAR_CZNV;
23119: SET_ZFLG (((uae_s32)(src)) == 0);
23120: SET_NFLG (((uae_s32)(src)) < 0);
23121: m68k_dreg(regs, dstreg) = (src);
23122: }}}}}return 20;
23123: }
23124: unsigned long REGPARAM2 CPUFUNC(op_c0bc_0)(uae_u32 opcode) /* AND */
23125: {
23126: uae_u32 dstreg = (opcode >> 9) & 7;
23127: OpcodeFamily = 2; CurrentInstrCycles = 16;
23128: {{ uae_s32 src = get_ilong(2);
23129: { uae_s32 dst = m68k_dreg(regs, dstreg);
23130: src &= dst;
23131: CLEAR_CZNV;
23132: SET_ZFLG (((uae_s32)(src)) == 0);
23133: SET_NFLG (((uae_s32)(src)) < 0);
23134: m68k_dreg(regs, dstreg) = (src);
23135: }}}m68k_incpc(6);
23136: return 16;
23137: }
23138: unsigned long REGPARAM2 CPUFUNC(op_c0c0_0)(uae_u32 opcode) /* MULU */
23139: {
23140: uae_u32 srcreg = (opcode & 7);
23141: uae_u32 dstreg = (opcode >> 9) & 7;
23142: unsigned int retcycles = 0;
23143: OpcodeFamily = 62; CurrentInstrCycles = 38;
23144: {{ uae_s16 src = m68k_dreg(regs, srcreg);
23145: { uae_s16 dst = m68k_dreg(regs, dstreg);
23146: { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
23147: CLEAR_CZNV;
23148: SET_ZFLG (((uae_s32)(newv)) == 0);
23149: SET_NFLG (((uae_s32)(newv)) < 0);
23150: m68k_dreg(regs, dstreg) = (newv);
23151: while (src) { if (src & 1) retcycles++; src = (uae_u16)src >> 1; }
23152: }}}}m68k_incpc(2);
23153: return (38+retcycles*2);
23154: }
23155: unsigned long REGPARAM2 CPUFUNC(op_c0d0_0)(uae_u32 opcode) /* MULU */
23156: {
23157: uae_u32 srcreg = (opcode & 7);
23158: uae_u32 dstreg = (opcode >> 9) & 7;
23159: unsigned int retcycles = 0;
23160: OpcodeFamily = 62; CurrentInstrCycles = 42;
23161: {{ uaecptr srca = m68k_areg(regs, srcreg);
23162: { uae_s16 src = get_word(srca);
23163: { uae_s16 dst = m68k_dreg(regs, dstreg);
23164: { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
23165: CLEAR_CZNV;
23166: SET_ZFLG (((uae_s32)(newv)) == 0);
23167: SET_NFLG (((uae_s32)(newv)) < 0);
23168: m68k_dreg(regs, dstreg) = (newv);
23169: while (src) { if (src & 1) retcycles++; src = (uae_u16)src >> 1; }
23170: }}}}}m68k_incpc(2);
23171: return (42+retcycles*2);
23172: }
23173: unsigned long REGPARAM2 CPUFUNC(op_c0d8_0)(uae_u32 opcode) /* MULU */
23174: {
23175: uae_u32 srcreg = (opcode & 7);
23176: uae_u32 dstreg = (opcode >> 9) & 7;
23177: unsigned int retcycles = 0;
23178: OpcodeFamily = 62; CurrentInstrCycles = 42;
23179: {{ uaecptr srca = m68k_areg(regs, srcreg);
23180: { uae_s16 src = get_word(srca);
23181: m68k_areg(regs, srcreg) += 2;
23182: { uae_s16 dst = m68k_dreg(regs, dstreg);
23183: { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
23184: CLEAR_CZNV;
23185: SET_ZFLG (((uae_s32)(newv)) == 0);
23186: SET_NFLG (((uae_s32)(newv)) < 0);
23187: m68k_dreg(regs, dstreg) = (newv);
23188: while (src) { if (src & 1) retcycles++; src = (uae_u16)src >> 1; }
23189: }}}}}m68k_incpc(2);
23190: return (42+retcycles*2);
23191: }
23192: unsigned long REGPARAM2 CPUFUNC(op_c0e0_0)(uae_u32 opcode) /* MULU */
23193: {
23194: uae_u32 srcreg = (opcode & 7);
23195: uae_u32 dstreg = (opcode >> 9) & 7;
23196: unsigned int retcycles = 0;
23197: OpcodeFamily = 62; CurrentInstrCycles = 44;
23198: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
23199: { uae_s16 src = get_word(srca);
23200: m68k_areg (regs, srcreg) = srca;
23201: { uae_s16 dst = m68k_dreg(regs, dstreg);
23202: { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
23203: CLEAR_CZNV;
23204: SET_ZFLG (((uae_s32)(newv)) == 0);
23205: SET_NFLG (((uae_s32)(newv)) < 0);
23206: m68k_dreg(regs, dstreg) = (newv);
23207: while (src) { if (src & 1) retcycles++; src = (uae_u16)src >> 1; }
23208: }}}}}m68k_incpc(2);
23209: return (44+retcycles*2);
23210: }
23211: unsigned long REGPARAM2 CPUFUNC(op_c0e8_0)(uae_u32 opcode) /* MULU */
23212: {
23213: uae_u32 srcreg = (opcode & 7);
23214: uae_u32 dstreg = (opcode >> 9) & 7;
23215: unsigned int retcycles = 0;
23216: OpcodeFamily = 62; CurrentInstrCycles = 46;
23217: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
23218: { uae_s16 src = get_word(srca);
23219: { uae_s16 dst = m68k_dreg(regs, dstreg);
23220: { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
23221: CLEAR_CZNV;
23222: SET_ZFLG (((uae_s32)(newv)) == 0);
23223: SET_NFLG (((uae_s32)(newv)) < 0);
23224: m68k_dreg(regs, dstreg) = (newv);
23225: while (src) { if (src & 1) retcycles++; src = (uae_u16)src >> 1; }
23226: }}}}}m68k_incpc(4);
23227: return (46+retcycles*2);
23228: }
23229: unsigned long REGPARAM2 CPUFUNC(op_c0f0_0)(uae_u32 opcode) /* MULU */
23230: {
23231: uae_u32 srcreg = (opcode & 7);
23232: uae_u32 dstreg = (opcode >> 9) & 7;
23233: unsigned int retcycles = 0;
23234: OpcodeFamily = 62; CurrentInstrCycles = 48;
23235: {{m68k_incpc(2);
23236: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
23237: BusCyclePenalty += 2;
23238: { uae_s16 src = get_word(srca);
23239: { uae_s16 dst = m68k_dreg(regs, dstreg);
23240: { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
23241: CLEAR_CZNV;
23242: SET_ZFLG (((uae_s32)(newv)) == 0);
23243: SET_NFLG (((uae_s32)(newv)) < 0);
23244: m68k_dreg(regs, dstreg) = (newv);
23245: while (src) { if (src & 1) retcycles++; src = (uae_u16)src >> 1; }
23246: }}}}}} return (48+retcycles*2);
23247: }
23248: unsigned long REGPARAM2 CPUFUNC(op_c0f8_0)(uae_u32 opcode) /* MULU */
23249: {
23250: uae_u32 dstreg = (opcode >> 9) & 7;
23251: unsigned int retcycles = 0;
23252: OpcodeFamily = 62; CurrentInstrCycles = 46;
23253: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
23254: { uae_s16 src = get_word(srca);
23255: { uae_s16 dst = m68k_dreg(regs, dstreg);
23256: { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
23257: CLEAR_CZNV;
23258: SET_ZFLG (((uae_s32)(newv)) == 0);
23259: SET_NFLG (((uae_s32)(newv)) < 0);
23260: m68k_dreg(regs, dstreg) = (newv);
23261: while (src) { if (src & 1) retcycles++; src = (uae_u16)src >> 1; }
23262: }}}}}m68k_incpc(4);
23263: return (46+retcycles*2);
23264: }
23265: unsigned long REGPARAM2 CPUFUNC(op_c0f9_0)(uae_u32 opcode) /* MULU */
23266: {
23267: uae_u32 dstreg = (opcode >> 9) & 7;
23268: unsigned int retcycles = 0;
23269: OpcodeFamily = 62; CurrentInstrCycles = 50;
23270: {{ uaecptr srca = get_ilong(2);
23271: { uae_s16 src = get_word(srca);
23272: { uae_s16 dst = m68k_dreg(regs, dstreg);
23273: { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
23274: CLEAR_CZNV;
23275: SET_ZFLG (((uae_s32)(newv)) == 0);
23276: SET_NFLG (((uae_s32)(newv)) < 0);
23277: m68k_dreg(regs, dstreg) = (newv);
23278: while (src) { if (src & 1) retcycles++; src = (uae_u16)src >> 1; }
23279: }}}}}m68k_incpc(6);
23280: return (50+retcycles*2);
23281: }
23282: unsigned long REGPARAM2 CPUFUNC(op_c0fa_0)(uae_u32 opcode) /* MULU */
23283: {
23284: uae_u32 dstreg = (opcode >> 9) & 7;
23285: unsigned int retcycles = 0;
23286: OpcodeFamily = 62; CurrentInstrCycles = 46;
23287: {{ uaecptr srca = m68k_getpc () + 2;
23288: srca += (uae_s32)(uae_s16)get_iword(2);
23289: { uae_s16 src = get_word(srca);
23290: { uae_s16 dst = m68k_dreg(regs, dstreg);
23291: { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
23292: CLEAR_CZNV;
23293: SET_ZFLG (((uae_s32)(newv)) == 0);
23294: SET_NFLG (((uae_s32)(newv)) < 0);
23295: m68k_dreg(regs, dstreg) = (newv);
23296: while (src) { if (src & 1) retcycles++; src = (uae_u16)src >> 1; }
23297: }}}}}m68k_incpc(4);
23298: return (46+retcycles*2);
23299: }
23300: unsigned long REGPARAM2 CPUFUNC(op_c0fb_0)(uae_u32 opcode) /* MULU */
23301: {
23302: uae_u32 dstreg = (opcode >> 9) & 7;
23303: unsigned int retcycles = 0;
23304: OpcodeFamily = 62; CurrentInstrCycles = 48;
23305: {{m68k_incpc(2);
23306: { uaecptr tmppc = m68k_getpc();
23307: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
23308: BusCyclePenalty += 2;
23309: { uae_s16 src = get_word(srca);
23310: { uae_s16 dst = m68k_dreg(regs, dstreg);
23311: { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
23312: CLEAR_CZNV;
23313: SET_ZFLG (((uae_s32)(newv)) == 0);
23314: SET_NFLG (((uae_s32)(newv)) < 0);
23315: m68k_dreg(regs, dstreg) = (newv);
23316: while (src) { if (src & 1) retcycles++; src = (uae_u16)src >> 1; }
23317: }}}}}} return (48+retcycles*2);
23318: }
23319: unsigned long REGPARAM2 CPUFUNC(op_c0fc_0)(uae_u32 opcode) /* MULU */
23320: {
23321: uae_u32 dstreg = (opcode >> 9) & 7;
23322: unsigned int retcycles = 0;
23323: OpcodeFamily = 62; CurrentInstrCycles = 42;
23324: {{ uae_s16 src = get_iword(2);
23325: { uae_s16 dst = m68k_dreg(regs, dstreg);
23326: { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
23327: CLEAR_CZNV;
23328: SET_ZFLG (((uae_s32)(newv)) == 0);
23329: SET_NFLG (((uae_s32)(newv)) < 0);
23330: m68k_dreg(regs, dstreg) = (newv);
23331: while (src) { if (src & 1) retcycles++; src = (uae_u16)src >> 1; }
23332: }}}}m68k_incpc(4);
23333: return (42+retcycles*2);
23334: }
23335: unsigned long REGPARAM2 CPUFUNC(op_c100_0)(uae_u32 opcode) /* ABCD */
23336: {
23337: uae_u32 srcreg = (opcode & 7);
23338: uae_u32 dstreg = (opcode >> 9) & 7;
23339: OpcodeFamily = 14; CurrentInstrCycles = 6;
23340: {{ uae_s8 src = m68k_dreg(regs, srcreg);
23341: { uae_s8 dst = m68k_dreg(regs, dstreg);
23342: { uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG ? 1 : 0);
23343: uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0);
23344: uae_u16 newv, tmp_newv;
23345: int cflg;
23346: newv = tmp_newv = newv_hi + newv_lo; if (newv_lo > 9) { newv += 6; }
23347: cflg = (newv & 0x3F0) > 0x90;
23348: if (cflg) newv += 0x60;
23349: SET_CFLG (cflg);
23350: COPY_CARRY;
23351: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
23352: SET_NFLG (((uae_s8)(newv)) < 0);
23353: SET_VFLG ((tmp_newv & 0x80) == 0 && (newv & 0x80) != 0);
23354: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
23355: }}}}m68k_incpc(2);
23356: return 6;
23357: }
23358: unsigned long REGPARAM2 CPUFUNC(op_c108_0)(uae_u32 opcode) /* ABCD */
23359: {
23360: uae_u32 srcreg = (opcode & 7);
23361: uae_u32 dstreg = (opcode >> 9) & 7;
23362: OpcodeFamily = 14; CurrentInstrCycles = 18;
23363: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
23364: { uae_s8 src = get_byte(srca);
23365: m68k_areg (regs, srcreg) = srca;
23366: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
23367: { uae_s8 dst = get_byte(dsta);
23368: m68k_areg (regs, dstreg) = dsta;
23369: { uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG ? 1 : 0);
23370: uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0);
23371: uae_u16 newv, tmp_newv;
23372: int cflg;
23373: newv = tmp_newv = newv_hi + newv_lo; if (newv_lo > 9) { newv += 6; }
23374: cflg = (newv & 0x3F0) > 0x90;
23375: if (cflg) newv += 0x60;
23376: SET_CFLG (cflg);
23377: COPY_CARRY;
23378: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
23379: SET_NFLG (((uae_s8)(newv)) < 0);
23380: SET_VFLG ((tmp_newv & 0x80) == 0 && (newv & 0x80) != 0);
23381: put_byte(dsta,newv);
23382: }}}}}}m68k_incpc(2);
23383: return 18;
23384: }
23385: unsigned long REGPARAM2 CPUFUNC(op_c110_0)(uae_u32 opcode) /* AND */
23386: {
23387: uae_u32 srcreg = ((opcode >> 9) & 7);
23388: uae_u32 dstreg = opcode & 7;
23389: OpcodeFamily = 2; CurrentInstrCycles = 12;
23390: {{ uae_s8 src = m68k_dreg(regs, srcreg);
23391: { uaecptr dsta = m68k_areg(regs, dstreg);
23392: { uae_s8 dst = get_byte(dsta);
23393: src &= dst;
23394: CLEAR_CZNV;
23395: SET_ZFLG (((uae_s8)(src)) == 0);
23396: SET_NFLG (((uae_s8)(src)) < 0);
23397: put_byte(dsta,src);
23398: }}}}m68k_incpc(2);
23399: return 12;
23400: }
23401: unsigned long REGPARAM2 CPUFUNC(op_c118_0)(uae_u32 opcode) /* AND */
23402: {
23403: uae_u32 srcreg = ((opcode >> 9) & 7);
23404: uae_u32 dstreg = opcode & 7;
23405: OpcodeFamily = 2; CurrentInstrCycles = 12;
23406: {{ uae_s8 src = m68k_dreg(regs, srcreg);
23407: { uaecptr dsta = m68k_areg(regs, dstreg);
23408: { uae_s8 dst = get_byte(dsta);
23409: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
23410: src &= dst;
23411: CLEAR_CZNV;
23412: SET_ZFLG (((uae_s8)(src)) == 0);
23413: SET_NFLG (((uae_s8)(src)) < 0);
23414: put_byte(dsta,src);
23415: }}}}m68k_incpc(2);
23416: return 12;
23417: }
23418: unsigned long REGPARAM2 CPUFUNC(op_c120_0)(uae_u32 opcode) /* AND */
23419: {
23420: uae_u32 srcreg = ((opcode >> 9) & 7);
23421: uae_u32 dstreg = opcode & 7;
23422: OpcodeFamily = 2; CurrentInstrCycles = 14;
23423: {{ uae_s8 src = m68k_dreg(regs, srcreg);
23424: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
23425: { uae_s8 dst = get_byte(dsta);
23426: m68k_areg (regs, dstreg) = dsta;
23427: src &= dst;
23428: CLEAR_CZNV;
23429: SET_ZFLG (((uae_s8)(src)) == 0);
23430: SET_NFLG (((uae_s8)(src)) < 0);
23431: put_byte(dsta,src);
23432: }}}}m68k_incpc(2);
23433: return 14;
23434: }
23435: unsigned long REGPARAM2 CPUFUNC(op_c128_0)(uae_u32 opcode) /* AND */
23436: {
23437: uae_u32 srcreg = ((opcode >> 9) & 7);
23438: uae_u32 dstreg = opcode & 7;
23439: OpcodeFamily = 2; CurrentInstrCycles = 16;
23440: {{ uae_s8 src = m68k_dreg(regs, srcreg);
23441: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
23442: { uae_s8 dst = get_byte(dsta);
23443: src &= dst;
23444: CLEAR_CZNV;
23445: SET_ZFLG (((uae_s8)(src)) == 0);
23446: SET_NFLG (((uae_s8)(src)) < 0);
23447: put_byte(dsta,src);
23448: }}}}m68k_incpc(4);
23449: return 16;
23450: }
23451: unsigned long REGPARAM2 CPUFUNC(op_c130_0)(uae_u32 opcode) /* AND */
23452: {
23453: uae_u32 srcreg = ((opcode >> 9) & 7);
23454: uae_u32 dstreg = opcode & 7;
23455: OpcodeFamily = 2; CurrentInstrCycles = 18;
23456: {{ uae_s8 src = m68k_dreg(regs, srcreg);
23457: {m68k_incpc(2);
23458: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
23459: BusCyclePenalty += 2;
23460: { uae_s8 dst = get_byte(dsta);
23461: src &= dst;
23462: CLEAR_CZNV;
23463: SET_ZFLG (((uae_s8)(src)) == 0);
23464: SET_NFLG (((uae_s8)(src)) < 0);
23465: put_byte(dsta,src);
23466: }}}}}return 18;
23467: }
23468: unsigned long REGPARAM2 CPUFUNC(op_c138_0)(uae_u32 opcode) /* AND */
23469: {
23470: uae_u32 srcreg = ((opcode >> 9) & 7);
23471: OpcodeFamily = 2; CurrentInstrCycles = 16;
23472: {{ uae_s8 src = m68k_dreg(regs, srcreg);
23473: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
23474: { uae_s8 dst = get_byte(dsta);
23475: src &= dst;
23476: CLEAR_CZNV;
23477: SET_ZFLG (((uae_s8)(src)) == 0);
23478: SET_NFLG (((uae_s8)(src)) < 0);
23479: put_byte(dsta,src);
23480: }}}}m68k_incpc(4);
23481: return 16;
23482: }
23483: unsigned long REGPARAM2 CPUFUNC(op_c139_0)(uae_u32 opcode) /* AND */
23484: {
23485: uae_u32 srcreg = ((opcode >> 9) & 7);
23486: OpcodeFamily = 2; CurrentInstrCycles = 20;
23487: {{ uae_s8 src = m68k_dreg(regs, srcreg);
23488: { uaecptr dsta = get_ilong(2);
23489: { uae_s8 dst = get_byte(dsta);
23490: src &= dst;
23491: CLEAR_CZNV;
23492: SET_ZFLG (((uae_s8)(src)) == 0);
23493: SET_NFLG (((uae_s8)(src)) < 0);
23494: put_byte(dsta,src);
23495: }}}}m68k_incpc(6);
23496: return 20;
23497: }
23498: unsigned long REGPARAM2 CPUFUNC(op_c140_0)(uae_u32 opcode) /* EXG */
23499: {
23500: uae_u32 srcreg = ((opcode >> 9) & 7);
23501: uae_u32 dstreg = opcode & 7;
23502: OpcodeFamily = 35; CurrentInstrCycles = 6;
23503: {{ uae_s32 src = m68k_dreg(regs, srcreg);
23504: { uae_s32 dst = m68k_dreg(regs, dstreg);
23505: m68k_dreg(regs, srcreg) = (dst);
23506: m68k_dreg(regs, dstreg) = (src);
23507: }}}m68k_incpc(2);
23508: return 6;
23509: }
23510: unsigned long REGPARAM2 CPUFUNC(op_c148_0)(uae_u32 opcode) /* EXG */
23511: {
23512: uae_u32 srcreg = ((opcode >> 9) & 7);
23513: uae_u32 dstreg = opcode & 7;
23514: OpcodeFamily = 35; CurrentInstrCycles = 6;
23515: {{ uae_s32 src = m68k_areg(regs, srcreg);
23516: { uae_s32 dst = m68k_areg(regs, dstreg);
23517: m68k_areg(regs, srcreg) = (dst);
23518: m68k_areg(regs, dstreg) = (src);
23519: }}}m68k_incpc(2);
23520: return 6;
23521: }
23522: unsigned long REGPARAM2 CPUFUNC(op_c150_0)(uae_u32 opcode) /* AND */
23523: {
23524: uae_u32 srcreg = ((opcode >> 9) & 7);
23525: uae_u32 dstreg = opcode & 7;
23526: OpcodeFamily = 2; CurrentInstrCycles = 12;
23527: {{ uae_s16 src = m68k_dreg(regs, srcreg);
23528: { uaecptr dsta = m68k_areg(regs, dstreg);
23529: { uae_s16 dst = get_word(dsta);
23530: src &= dst;
23531: CLEAR_CZNV;
23532: SET_ZFLG (((uae_s16)(src)) == 0);
23533: SET_NFLG (((uae_s16)(src)) < 0);
23534: put_word(dsta,src);
23535: }}}}m68k_incpc(2);
23536: return 12;
23537: }
23538: unsigned long REGPARAM2 CPUFUNC(op_c158_0)(uae_u32 opcode) /* AND */
23539: {
23540: uae_u32 srcreg = ((opcode >> 9) & 7);
23541: uae_u32 dstreg = opcode & 7;
23542: OpcodeFamily = 2; CurrentInstrCycles = 12;
23543: {{ uae_s16 src = m68k_dreg(regs, srcreg);
23544: { uaecptr dsta = m68k_areg(regs, dstreg);
23545: { uae_s16 dst = get_word(dsta);
23546: m68k_areg(regs, dstreg) += 2;
23547: src &= dst;
23548: CLEAR_CZNV;
23549: SET_ZFLG (((uae_s16)(src)) == 0);
23550: SET_NFLG (((uae_s16)(src)) < 0);
23551: put_word(dsta,src);
23552: }}}}m68k_incpc(2);
23553: return 12;
23554: }
23555: unsigned long REGPARAM2 CPUFUNC(op_c160_0)(uae_u32 opcode) /* AND */
23556: {
23557: uae_u32 srcreg = ((opcode >> 9) & 7);
23558: uae_u32 dstreg = opcode & 7;
23559: OpcodeFamily = 2; CurrentInstrCycles = 14;
23560: {{ uae_s16 src = m68k_dreg(regs, srcreg);
23561: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
23562: { uae_s16 dst = get_word(dsta);
23563: m68k_areg (regs, dstreg) = dsta;
23564: src &= dst;
23565: CLEAR_CZNV;
23566: SET_ZFLG (((uae_s16)(src)) == 0);
23567: SET_NFLG (((uae_s16)(src)) < 0);
23568: put_word(dsta,src);
23569: }}}}m68k_incpc(2);
23570: return 14;
23571: }
23572: unsigned long REGPARAM2 CPUFUNC(op_c168_0)(uae_u32 opcode) /* AND */
23573: {
23574: uae_u32 srcreg = ((opcode >> 9) & 7);
23575: uae_u32 dstreg = opcode & 7;
23576: OpcodeFamily = 2; CurrentInstrCycles = 16;
23577: {{ uae_s16 src = m68k_dreg(regs, srcreg);
23578: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
23579: { uae_s16 dst = get_word(dsta);
23580: src &= dst;
23581: CLEAR_CZNV;
23582: SET_ZFLG (((uae_s16)(src)) == 0);
23583: SET_NFLG (((uae_s16)(src)) < 0);
23584: put_word(dsta,src);
23585: }}}}m68k_incpc(4);
23586: return 16;
23587: }
23588: unsigned long REGPARAM2 CPUFUNC(op_c170_0)(uae_u32 opcode) /* AND */
23589: {
23590: uae_u32 srcreg = ((opcode >> 9) & 7);
23591: uae_u32 dstreg = opcode & 7;
23592: OpcodeFamily = 2; CurrentInstrCycles = 18;
23593: {{ uae_s16 src = m68k_dreg(regs, srcreg);
23594: {m68k_incpc(2);
23595: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
23596: BusCyclePenalty += 2;
23597: { uae_s16 dst = get_word(dsta);
23598: src &= dst;
23599: CLEAR_CZNV;
23600: SET_ZFLG (((uae_s16)(src)) == 0);
23601: SET_NFLG (((uae_s16)(src)) < 0);
23602: put_word(dsta,src);
23603: }}}}}return 18;
23604: }
23605: unsigned long REGPARAM2 CPUFUNC(op_c178_0)(uae_u32 opcode) /* AND */
23606: {
23607: uae_u32 srcreg = ((opcode >> 9) & 7);
23608: OpcodeFamily = 2; CurrentInstrCycles = 16;
23609: {{ uae_s16 src = m68k_dreg(regs, srcreg);
23610: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
23611: { uae_s16 dst = get_word(dsta);
23612: src &= dst;
23613: CLEAR_CZNV;
23614: SET_ZFLG (((uae_s16)(src)) == 0);
23615: SET_NFLG (((uae_s16)(src)) < 0);
23616: put_word(dsta,src);
23617: }}}}m68k_incpc(4);
23618: return 16;
23619: }
23620: unsigned long REGPARAM2 CPUFUNC(op_c179_0)(uae_u32 opcode) /* AND */
23621: {
23622: uae_u32 srcreg = ((opcode >> 9) & 7);
23623: OpcodeFamily = 2; CurrentInstrCycles = 20;
23624: {{ uae_s16 src = m68k_dreg(regs, srcreg);
23625: { uaecptr dsta = get_ilong(2);
23626: { uae_s16 dst = get_word(dsta);
23627: src &= dst;
23628: CLEAR_CZNV;
23629: SET_ZFLG (((uae_s16)(src)) == 0);
23630: SET_NFLG (((uae_s16)(src)) < 0);
23631: put_word(dsta,src);
23632: }}}}m68k_incpc(6);
23633: return 20;
23634: }
23635: unsigned long REGPARAM2 CPUFUNC(op_c188_0)(uae_u32 opcode) /* EXG */
23636: {
23637: uae_u32 srcreg = ((opcode >> 9) & 7);
23638: uae_u32 dstreg = opcode & 7;
23639: OpcodeFamily = 35; CurrentInstrCycles = 6;
23640: {{ uae_s32 src = m68k_dreg(regs, srcreg);
23641: { uae_s32 dst = m68k_areg(regs, dstreg);
23642: m68k_dreg(regs, srcreg) = (dst);
23643: m68k_areg(regs, dstreg) = (src);
23644: }}}m68k_incpc(2);
23645: return 6;
23646: }
23647: unsigned long REGPARAM2 CPUFUNC(op_c190_0)(uae_u32 opcode) /* AND */
23648: {
23649: uae_u32 srcreg = ((opcode >> 9) & 7);
23650: uae_u32 dstreg = opcode & 7;
23651: OpcodeFamily = 2; CurrentInstrCycles = 20;
23652: {{ uae_s32 src = m68k_dreg(regs, srcreg);
23653: { uaecptr dsta = m68k_areg(regs, dstreg);
23654: { uae_s32 dst = get_long(dsta);
23655: src &= dst;
23656: CLEAR_CZNV;
23657: SET_ZFLG (((uae_s32)(src)) == 0);
23658: SET_NFLG (((uae_s32)(src)) < 0);
23659: put_long(dsta,src);
23660: }}}}m68k_incpc(2);
23661: return 20;
23662: }
23663: unsigned long REGPARAM2 CPUFUNC(op_c198_0)(uae_u32 opcode) /* AND */
23664: {
23665: uae_u32 srcreg = ((opcode >> 9) & 7);
23666: uae_u32 dstreg = opcode & 7;
23667: OpcodeFamily = 2; CurrentInstrCycles = 20;
23668: {{ uae_s32 src = m68k_dreg(regs, srcreg);
23669: { uaecptr dsta = m68k_areg(regs, dstreg);
23670: { uae_s32 dst = get_long(dsta);
23671: m68k_areg(regs, dstreg) += 4;
23672: src &= dst;
23673: CLEAR_CZNV;
23674: SET_ZFLG (((uae_s32)(src)) == 0);
23675: SET_NFLG (((uae_s32)(src)) < 0);
23676: put_long(dsta,src);
23677: }}}}m68k_incpc(2);
23678: return 20;
23679: }
23680: unsigned long REGPARAM2 CPUFUNC(op_c1a0_0)(uae_u32 opcode) /* AND */
23681: {
23682: uae_u32 srcreg = ((opcode >> 9) & 7);
23683: uae_u32 dstreg = opcode & 7;
23684: OpcodeFamily = 2; CurrentInstrCycles = 22;
23685: {{ uae_s32 src = m68k_dreg(regs, srcreg);
23686: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
23687: { uae_s32 dst = get_long(dsta);
23688: m68k_areg (regs, dstreg) = dsta;
23689: src &= dst;
23690: CLEAR_CZNV;
23691: SET_ZFLG (((uae_s32)(src)) == 0);
23692: SET_NFLG (((uae_s32)(src)) < 0);
23693: put_long(dsta,src);
23694: }}}}m68k_incpc(2);
23695: return 22;
23696: }
23697: unsigned long REGPARAM2 CPUFUNC(op_c1a8_0)(uae_u32 opcode) /* AND */
23698: {
23699: uae_u32 srcreg = ((opcode >> 9) & 7);
23700: uae_u32 dstreg = opcode & 7;
23701: OpcodeFamily = 2; CurrentInstrCycles = 24;
23702: {{ uae_s32 src = m68k_dreg(regs, srcreg);
23703: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
23704: { uae_s32 dst = get_long(dsta);
23705: src &= dst;
23706: CLEAR_CZNV;
23707: SET_ZFLG (((uae_s32)(src)) == 0);
23708: SET_NFLG (((uae_s32)(src)) < 0);
23709: put_long(dsta,src);
23710: }}}}m68k_incpc(4);
23711: return 24;
23712: }
23713: unsigned long REGPARAM2 CPUFUNC(op_c1b0_0)(uae_u32 opcode) /* AND */
23714: {
23715: uae_u32 srcreg = ((opcode >> 9) & 7);
23716: uae_u32 dstreg = opcode & 7;
23717: OpcodeFamily = 2; CurrentInstrCycles = 26;
23718: {{ uae_s32 src = m68k_dreg(regs, srcreg);
23719: {m68k_incpc(2);
23720: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
23721: BusCyclePenalty += 2;
23722: { uae_s32 dst = get_long(dsta);
23723: src &= dst;
23724: CLEAR_CZNV;
23725: SET_ZFLG (((uae_s32)(src)) == 0);
23726: SET_NFLG (((uae_s32)(src)) < 0);
23727: put_long(dsta,src);
23728: }}}}}return 26;
23729: }
23730: unsigned long REGPARAM2 CPUFUNC(op_c1b8_0)(uae_u32 opcode) /* AND */
23731: {
23732: uae_u32 srcreg = ((opcode >> 9) & 7);
23733: OpcodeFamily = 2; CurrentInstrCycles = 24;
23734: {{ uae_s32 src = m68k_dreg(regs, srcreg);
23735: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
23736: { uae_s32 dst = get_long(dsta);
23737: src &= dst;
23738: CLEAR_CZNV;
23739: SET_ZFLG (((uae_s32)(src)) == 0);
23740: SET_NFLG (((uae_s32)(src)) < 0);
23741: put_long(dsta,src);
23742: }}}}m68k_incpc(4);
23743: return 24;
23744: }
23745: unsigned long REGPARAM2 CPUFUNC(op_c1b9_0)(uae_u32 opcode) /* AND */
23746: {
23747: uae_u32 srcreg = ((opcode >> 9) & 7);
23748: OpcodeFamily = 2; CurrentInstrCycles = 28;
23749: {{ uae_s32 src = m68k_dreg(regs, srcreg);
23750: { uaecptr dsta = get_ilong(2);
23751: { uae_s32 dst = get_long(dsta);
23752: src &= dst;
23753: CLEAR_CZNV;
23754: SET_ZFLG (((uae_s32)(src)) == 0);
23755: SET_NFLG (((uae_s32)(src)) < 0);
23756: put_long(dsta,src);
23757: }}}}m68k_incpc(6);
23758: return 28;
23759: }
23760: unsigned long REGPARAM2 CPUFUNC(op_c1c0_0)(uae_u32 opcode) /* MULS */
23761: {
23762: uae_u32 srcreg = (opcode & 7);
23763: uae_u32 dstreg = (opcode >> 9) & 7;
23764: unsigned int retcycles = 0;
23765: OpcodeFamily = 63; CurrentInstrCycles = 38;
23766: {{ uae_s16 src = m68k_dreg(regs, srcreg);
23767: { uae_s16 dst = m68k_dreg(regs, dstreg);
23768: { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
23769: uae_u32 src2;
23770: CLEAR_CZNV;
23771: SET_ZFLG (((uae_s32)(newv)) == 0);
23772: SET_NFLG (((uae_s32)(newv)) < 0);
23773: m68k_dreg(regs, dstreg) = (newv);
23774: src2 = ((uae_u32)src) << 1;
23775: while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; }
23776: }}}}m68k_incpc(2);
23777: return (38+retcycles*2);
23778: }
23779: unsigned long REGPARAM2 CPUFUNC(op_c1d0_0)(uae_u32 opcode) /* MULS */
23780: {
23781: uae_u32 srcreg = (opcode & 7);
23782: uae_u32 dstreg = (opcode >> 9) & 7;
23783: unsigned int retcycles = 0;
23784: OpcodeFamily = 63; CurrentInstrCycles = 42;
23785: {{ uaecptr srca = m68k_areg(regs, srcreg);
23786: { uae_s16 src = get_word(srca);
23787: { uae_s16 dst = m68k_dreg(regs, dstreg);
23788: { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
23789: uae_u32 src2;
23790: CLEAR_CZNV;
23791: SET_ZFLG (((uae_s32)(newv)) == 0);
23792: SET_NFLG (((uae_s32)(newv)) < 0);
23793: m68k_dreg(regs, dstreg) = (newv);
23794: src2 = ((uae_u32)src) << 1;
23795: while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; }
23796: }}}}}m68k_incpc(2);
23797: return (42+retcycles*2);
23798: }
23799: unsigned long REGPARAM2 CPUFUNC(op_c1d8_0)(uae_u32 opcode) /* MULS */
23800: {
23801: uae_u32 srcreg = (opcode & 7);
23802: uae_u32 dstreg = (opcode >> 9) & 7;
23803: unsigned int retcycles = 0;
23804: OpcodeFamily = 63; CurrentInstrCycles = 42;
23805: {{ uaecptr srca = m68k_areg(regs, srcreg);
23806: { uae_s16 src = get_word(srca);
23807: m68k_areg(regs, srcreg) += 2;
23808: { uae_s16 dst = m68k_dreg(regs, dstreg);
23809: { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
23810: uae_u32 src2;
23811: CLEAR_CZNV;
23812: SET_ZFLG (((uae_s32)(newv)) == 0);
23813: SET_NFLG (((uae_s32)(newv)) < 0);
23814: m68k_dreg(regs, dstreg) = (newv);
23815: src2 = ((uae_u32)src) << 1;
23816: while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; }
23817: }}}}}m68k_incpc(2);
23818: return (42+retcycles*2);
23819: }
23820: unsigned long REGPARAM2 CPUFUNC(op_c1e0_0)(uae_u32 opcode) /* MULS */
23821: {
23822: uae_u32 srcreg = (opcode & 7);
23823: uae_u32 dstreg = (opcode >> 9) & 7;
23824: unsigned int retcycles = 0;
23825: OpcodeFamily = 63; CurrentInstrCycles = 44;
23826: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
23827: { uae_s16 src = get_word(srca);
23828: m68k_areg (regs, srcreg) = srca;
23829: { uae_s16 dst = m68k_dreg(regs, dstreg);
23830: { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
23831: uae_u32 src2;
23832: CLEAR_CZNV;
23833: SET_ZFLG (((uae_s32)(newv)) == 0);
23834: SET_NFLG (((uae_s32)(newv)) < 0);
23835: m68k_dreg(regs, dstreg) = (newv);
23836: src2 = ((uae_u32)src) << 1;
23837: while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; }
23838: }}}}}m68k_incpc(2);
23839: return (44+retcycles*2);
23840: }
23841: unsigned long REGPARAM2 CPUFUNC(op_c1e8_0)(uae_u32 opcode) /* MULS */
23842: {
23843: uae_u32 srcreg = (opcode & 7);
23844: uae_u32 dstreg = (opcode >> 9) & 7;
23845: unsigned int retcycles = 0;
23846: OpcodeFamily = 63; CurrentInstrCycles = 46;
23847: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
23848: { uae_s16 src = get_word(srca);
23849: { uae_s16 dst = m68k_dreg(regs, dstreg);
23850: { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
23851: uae_u32 src2;
23852: CLEAR_CZNV;
23853: SET_ZFLG (((uae_s32)(newv)) == 0);
23854: SET_NFLG (((uae_s32)(newv)) < 0);
23855: m68k_dreg(regs, dstreg) = (newv);
23856: src2 = ((uae_u32)src) << 1;
23857: while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; }
23858: }}}}}m68k_incpc(4);
23859: return (46+retcycles*2);
23860: }
23861: unsigned long REGPARAM2 CPUFUNC(op_c1f0_0)(uae_u32 opcode) /* MULS */
23862: {
23863: uae_u32 srcreg = (opcode & 7);
23864: uae_u32 dstreg = (opcode >> 9) & 7;
23865: unsigned int retcycles = 0;
23866: OpcodeFamily = 63; CurrentInstrCycles = 48;
23867: {{m68k_incpc(2);
23868: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
23869: BusCyclePenalty += 2;
23870: { uae_s16 src = get_word(srca);
23871: { uae_s16 dst = m68k_dreg(regs, dstreg);
23872: { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
23873: uae_u32 src2;
23874: CLEAR_CZNV;
23875: SET_ZFLG (((uae_s32)(newv)) == 0);
23876: SET_NFLG (((uae_s32)(newv)) < 0);
23877: m68k_dreg(regs, dstreg) = (newv);
23878: src2 = ((uae_u32)src) << 1;
23879: while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; }
23880: }}}}}} return (48+retcycles*2);
23881: }
23882: unsigned long REGPARAM2 CPUFUNC(op_c1f8_0)(uae_u32 opcode) /* MULS */
23883: {
23884: uae_u32 dstreg = (opcode >> 9) & 7;
23885: unsigned int retcycles = 0;
23886: OpcodeFamily = 63; CurrentInstrCycles = 46;
23887: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
23888: { uae_s16 src = get_word(srca);
23889: { uae_s16 dst = m68k_dreg(regs, dstreg);
23890: { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
23891: uae_u32 src2;
23892: CLEAR_CZNV;
23893: SET_ZFLG (((uae_s32)(newv)) == 0);
23894: SET_NFLG (((uae_s32)(newv)) < 0);
23895: m68k_dreg(regs, dstreg) = (newv);
23896: src2 = ((uae_u32)src) << 1;
23897: while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; }
23898: }}}}}m68k_incpc(4);
23899: return (46+retcycles*2);
23900: }
23901: unsigned long REGPARAM2 CPUFUNC(op_c1f9_0)(uae_u32 opcode) /* MULS */
23902: {
23903: uae_u32 dstreg = (opcode >> 9) & 7;
23904: unsigned int retcycles = 0;
23905: OpcodeFamily = 63; CurrentInstrCycles = 50;
23906: {{ uaecptr srca = get_ilong(2);
23907: { uae_s16 src = get_word(srca);
23908: { uae_s16 dst = m68k_dreg(regs, dstreg);
23909: { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
23910: uae_u32 src2;
23911: CLEAR_CZNV;
23912: SET_ZFLG (((uae_s32)(newv)) == 0);
23913: SET_NFLG (((uae_s32)(newv)) < 0);
23914: m68k_dreg(regs, dstreg) = (newv);
23915: src2 = ((uae_u32)src) << 1;
23916: while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; }
23917: }}}}}m68k_incpc(6);
23918: return (50+retcycles*2);
23919: }
23920: unsigned long REGPARAM2 CPUFUNC(op_c1fa_0)(uae_u32 opcode) /* MULS */
23921: {
23922: uae_u32 dstreg = (opcode >> 9) & 7;
23923: unsigned int retcycles = 0;
23924: OpcodeFamily = 63; CurrentInstrCycles = 46;
23925: {{ uaecptr srca = m68k_getpc () + 2;
23926: srca += (uae_s32)(uae_s16)get_iword(2);
23927: { uae_s16 src = get_word(srca);
23928: { uae_s16 dst = m68k_dreg(regs, dstreg);
23929: { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
23930: uae_u32 src2;
23931: CLEAR_CZNV;
23932: SET_ZFLG (((uae_s32)(newv)) == 0);
23933: SET_NFLG (((uae_s32)(newv)) < 0);
23934: m68k_dreg(regs, dstreg) = (newv);
23935: src2 = ((uae_u32)src) << 1;
23936: while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; }
23937: }}}}}m68k_incpc(4);
23938: return (46+retcycles*2);
23939: }
23940: unsigned long REGPARAM2 CPUFUNC(op_c1fb_0)(uae_u32 opcode) /* MULS */
23941: {
23942: uae_u32 dstreg = (opcode >> 9) & 7;
23943: unsigned int retcycles = 0;
23944: OpcodeFamily = 63; CurrentInstrCycles = 48;
23945: {{m68k_incpc(2);
23946: { uaecptr tmppc = m68k_getpc();
23947: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
23948: BusCyclePenalty += 2;
23949: { uae_s16 src = get_word(srca);
23950: { uae_s16 dst = m68k_dreg(regs, dstreg);
23951: { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
23952: uae_u32 src2;
23953: CLEAR_CZNV;
23954: SET_ZFLG (((uae_s32)(newv)) == 0);
23955: SET_NFLG (((uae_s32)(newv)) < 0);
23956: m68k_dreg(regs, dstreg) = (newv);
23957: src2 = ((uae_u32)src) << 1;
23958: while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; }
23959: }}}}}} return (48+retcycles*2);
23960: }
23961: unsigned long REGPARAM2 CPUFUNC(op_c1fc_0)(uae_u32 opcode) /* MULS */
23962: {
23963: uae_u32 dstreg = (opcode >> 9) & 7;
23964: unsigned int retcycles = 0;
23965: OpcodeFamily = 63; CurrentInstrCycles = 42;
23966: {{ uae_s16 src = get_iword(2);
23967: { uae_s16 dst = m68k_dreg(regs, dstreg);
23968: { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
23969: uae_u32 src2;
23970: CLEAR_CZNV;
23971: SET_ZFLG (((uae_s32)(newv)) == 0);
23972: SET_NFLG (((uae_s32)(newv)) < 0);
23973: m68k_dreg(regs, dstreg) = (newv);
23974: src2 = ((uae_u32)src) << 1;
23975: while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; }
23976: }}}}m68k_incpc(4);
23977: return (42+retcycles*2);
23978: }
23979: unsigned long REGPARAM2 CPUFUNC(op_d000_0)(uae_u32 opcode) /* ADD */
23980: {
23981: uae_u32 srcreg = (opcode & 7);
23982: uae_u32 dstreg = (opcode >> 9) & 7;
23983: OpcodeFamily = 11; CurrentInstrCycles = 4;
23984: {{ uae_s8 src = m68k_dreg(regs, srcreg);
23985: { uae_s8 dst = m68k_dreg(regs, dstreg);
23986: { refill_prefetch (m68k_getpc(), 2);
23987: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
23988: { int flgs = ((uae_s8)(src)) < 0;
23989: int flgo = ((uae_s8)(dst)) < 0;
23990: int flgn = ((uae_s8)(newv)) < 0;
23991: SET_ZFLG (((uae_s8)(newv)) == 0);
23992: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
23993: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
23994: COPY_CARRY;
23995: SET_NFLG (flgn != 0);
23996: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
23997: }}}}}}m68k_incpc(2);
23998: return 4;
23999: }
24000: unsigned long REGPARAM2 CPUFUNC(op_d010_0)(uae_u32 opcode) /* ADD */
24001: {
24002: uae_u32 srcreg = (opcode & 7);
24003: uae_u32 dstreg = (opcode >> 9) & 7;
24004: OpcodeFamily = 11; CurrentInstrCycles = 8;
24005: {{ uaecptr srca = m68k_areg(regs, srcreg);
24006: { uae_s8 src = get_byte(srca);
24007: { uae_s8 dst = m68k_dreg(regs, dstreg);
24008: { refill_prefetch (m68k_getpc(), 2);
24009: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
24010: { int flgs = ((uae_s8)(src)) < 0;
24011: int flgo = ((uae_s8)(dst)) < 0;
24012: int flgn = ((uae_s8)(newv)) < 0;
24013: SET_ZFLG (((uae_s8)(newv)) == 0);
24014: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24015: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
24016: COPY_CARRY;
24017: SET_NFLG (flgn != 0);
24018: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
24019: }}}}}}}m68k_incpc(2);
24020: return 8;
24021: }
24022: unsigned long REGPARAM2 CPUFUNC(op_d018_0)(uae_u32 opcode) /* ADD */
24023: {
24024: uae_u32 srcreg = (opcode & 7);
24025: uae_u32 dstreg = (opcode >> 9) & 7;
24026: OpcodeFamily = 11; CurrentInstrCycles = 8;
24027: {{ uaecptr srca = m68k_areg(regs, srcreg);
24028: { uae_s8 src = get_byte(srca);
24029: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
24030: { uae_s8 dst = m68k_dreg(regs, dstreg);
24031: { refill_prefetch (m68k_getpc(), 2);
24032: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
24033: { int flgs = ((uae_s8)(src)) < 0;
24034: int flgo = ((uae_s8)(dst)) < 0;
24035: int flgn = ((uae_s8)(newv)) < 0;
24036: SET_ZFLG (((uae_s8)(newv)) == 0);
24037: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24038: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
24039: COPY_CARRY;
24040: SET_NFLG (flgn != 0);
24041: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
24042: }}}}}}}m68k_incpc(2);
24043: return 8;
24044: }
24045: unsigned long REGPARAM2 CPUFUNC(op_d020_0)(uae_u32 opcode) /* ADD */
24046: {
24047: uae_u32 srcreg = (opcode & 7);
24048: uae_u32 dstreg = (opcode >> 9) & 7;
24049: OpcodeFamily = 11; CurrentInstrCycles = 10;
24050: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
24051: { uae_s8 src = get_byte(srca);
24052: m68k_areg (regs, srcreg) = srca;
24053: { uae_s8 dst = m68k_dreg(regs, dstreg);
24054: { refill_prefetch (m68k_getpc(), 2);
24055: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
24056: { int flgs = ((uae_s8)(src)) < 0;
24057: int flgo = ((uae_s8)(dst)) < 0;
24058: int flgn = ((uae_s8)(newv)) < 0;
24059: SET_ZFLG (((uae_s8)(newv)) == 0);
24060: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24061: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
24062: COPY_CARRY;
24063: SET_NFLG (flgn != 0);
24064: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
24065: }}}}}}}m68k_incpc(2);
24066: return 10;
24067: }
24068: unsigned long REGPARAM2 CPUFUNC(op_d028_0)(uae_u32 opcode) /* ADD */
24069: {
24070: uae_u32 srcreg = (opcode & 7);
24071: uae_u32 dstreg = (opcode >> 9) & 7;
24072: OpcodeFamily = 11; CurrentInstrCycles = 12;
24073: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
24074: { uae_s8 src = get_byte(srca);
24075: { uae_s8 dst = m68k_dreg(regs, dstreg);
24076: { refill_prefetch (m68k_getpc(), 2);
24077: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
24078: { int flgs = ((uae_s8)(src)) < 0;
24079: int flgo = ((uae_s8)(dst)) < 0;
24080: int flgn = ((uae_s8)(newv)) < 0;
24081: SET_ZFLG (((uae_s8)(newv)) == 0);
24082: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24083: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
24084: COPY_CARRY;
24085: SET_NFLG (flgn != 0);
24086: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
24087: }}}}}}}m68k_incpc(4);
24088: return 12;
24089: }
24090: unsigned long REGPARAM2 CPUFUNC(op_d030_0)(uae_u32 opcode) /* ADD */
24091: {
24092: uae_u32 srcreg = (opcode & 7);
24093: uae_u32 dstreg = (opcode >> 9) & 7;
24094: OpcodeFamily = 11; CurrentInstrCycles = 14;
24095: {{m68k_incpc(2);
24096: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
24097: BusCyclePenalty += 2;
24098: { uae_s8 src = get_byte(srca);
24099: { uae_s8 dst = m68k_dreg(regs, dstreg);
24100: { refill_prefetch (m68k_getpc(), 2);
24101: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
24102: { int flgs = ((uae_s8)(src)) < 0;
24103: int flgo = ((uae_s8)(dst)) < 0;
24104: int flgn = ((uae_s8)(newv)) < 0;
24105: SET_ZFLG (((uae_s8)(newv)) == 0);
24106: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24107: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
24108: COPY_CARRY;
24109: SET_NFLG (flgn != 0);
24110: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
24111: }}}}}}}}return 14;
24112: }
24113: unsigned long REGPARAM2 CPUFUNC(op_d038_0)(uae_u32 opcode) /* ADD */
24114: {
24115: uae_u32 dstreg = (opcode >> 9) & 7;
24116: OpcodeFamily = 11; CurrentInstrCycles = 12;
24117: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
24118: { uae_s8 src = get_byte(srca);
24119: { uae_s8 dst = m68k_dreg(regs, dstreg);
24120: { refill_prefetch (m68k_getpc(), 2);
24121: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
24122: { int flgs = ((uae_s8)(src)) < 0;
24123: int flgo = ((uae_s8)(dst)) < 0;
24124: int flgn = ((uae_s8)(newv)) < 0;
24125: SET_ZFLG (((uae_s8)(newv)) == 0);
24126: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24127: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
24128: COPY_CARRY;
24129: SET_NFLG (flgn != 0);
24130: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
24131: }}}}}}}m68k_incpc(4);
24132: return 12;
24133: }
24134: unsigned long REGPARAM2 CPUFUNC(op_d039_0)(uae_u32 opcode) /* ADD */
24135: {
24136: uae_u32 dstreg = (opcode >> 9) & 7;
24137: OpcodeFamily = 11; CurrentInstrCycles = 16;
24138: {{ uaecptr srca = get_ilong(2);
24139: { uae_s8 src = get_byte(srca);
24140: { uae_s8 dst = m68k_dreg(regs, dstreg);
24141: { refill_prefetch (m68k_getpc(), 2);
24142: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
24143: { int flgs = ((uae_s8)(src)) < 0;
24144: int flgo = ((uae_s8)(dst)) < 0;
24145: int flgn = ((uae_s8)(newv)) < 0;
24146: SET_ZFLG (((uae_s8)(newv)) == 0);
24147: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24148: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
24149: COPY_CARRY;
24150: SET_NFLG (flgn != 0);
24151: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
24152: }}}}}}}m68k_incpc(6);
24153: return 16;
24154: }
24155: unsigned long REGPARAM2 CPUFUNC(op_d03a_0)(uae_u32 opcode) /* ADD */
24156: {
24157: uae_u32 dstreg = (opcode >> 9) & 7;
24158: OpcodeFamily = 11; CurrentInstrCycles = 12;
24159: {{ uaecptr srca = m68k_getpc () + 2;
24160: srca += (uae_s32)(uae_s16)get_iword(2);
24161: { uae_s8 src = get_byte(srca);
24162: { uae_s8 dst = m68k_dreg(regs, dstreg);
24163: { refill_prefetch (m68k_getpc(), 2);
24164: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
24165: { int flgs = ((uae_s8)(src)) < 0;
24166: int flgo = ((uae_s8)(dst)) < 0;
24167: int flgn = ((uae_s8)(newv)) < 0;
24168: SET_ZFLG (((uae_s8)(newv)) == 0);
24169: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24170: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
24171: COPY_CARRY;
24172: SET_NFLG (flgn != 0);
24173: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
24174: }}}}}}}m68k_incpc(4);
24175: return 12;
24176: }
24177: unsigned long REGPARAM2 CPUFUNC(op_d03b_0)(uae_u32 opcode) /* ADD */
24178: {
24179: uae_u32 dstreg = (opcode >> 9) & 7;
24180: OpcodeFamily = 11; CurrentInstrCycles = 14;
24181: {{m68k_incpc(2);
24182: { uaecptr tmppc = m68k_getpc();
24183: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
24184: BusCyclePenalty += 2;
24185: { uae_s8 src = get_byte(srca);
24186: { uae_s8 dst = m68k_dreg(regs, dstreg);
24187: { refill_prefetch (m68k_getpc(), 2);
24188: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
24189: { int flgs = ((uae_s8)(src)) < 0;
24190: int flgo = ((uae_s8)(dst)) < 0;
24191: int flgn = ((uae_s8)(newv)) < 0;
24192: SET_ZFLG (((uae_s8)(newv)) == 0);
24193: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24194: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
24195: COPY_CARRY;
24196: SET_NFLG (flgn != 0);
24197: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
24198: }}}}}}}}return 14;
24199: }
24200: unsigned long REGPARAM2 CPUFUNC(op_d03c_0)(uae_u32 opcode) /* ADD */
24201: {
24202: uae_u32 dstreg = (opcode >> 9) & 7;
24203: OpcodeFamily = 11; CurrentInstrCycles = 8;
24204: {{ uae_s8 src = get_ibyte(2);
24205: { uae_s8 dst = m68k_dreg(regs, dstreg);
24206: { refill_prefetch (m68k_getpc(), 2);
24207: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
24208: { int flgs = ((uae_s8)(src)) < 0;
24209: int flgo = ((uae_s8)(dst)) < 0;
24210: int flgn = ((uae_s8)(newv)) < 0;
24211: SET_ZFLG (((uae_s8)(newv)) == 0);
24212: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24213: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
24214: COPY_CARRY;
24215: SET_NFLG (flgn != 0);
24216: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
24217: }}}}}}m68k_incpc(4);
24218: return 8;
24219: }
24220: unsigned long REGPARAM2 CPUFUNC(op_d040_0)(uae_u32 opcode) /* ADD */
24221: {
24222: uae_u32 srcreg = (opcode & 7);
24223: uae_u32 dstreg = (opcode >> 9) & 7;
24224: OpcodeFamily = 11; CurrentInstrCycles = 4;
24225: {{ uae_s16 src = m68k_dreg(regs, srcreg);
24226: { uae_s16 dst = m68k_dreg(regs, dstreg);
24227: { refill_prefetch (m68k_getpc(), 2);
24228: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
24229: { int flgs = ((uae_s16)(src)) < 0;
24230: int flgo = ((uae_s16)(dst)) < 0;
24231: int flgn = ((uae_s16)(newv)) < 0;
24232: SET_ZFLG (((uae_s16)(newv)) == 0);
24233: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24234: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
24235: COPY_CARRY;
24236: SET_NFLG (flgn != 0);
24237: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
24238: }}}}}}m68k_incpc(2);
24239: return 4;
24240: }
24241: unsigned long REGPARAM2 CPUFUNC(op_d048_0)(uae_u32 opcode) /* ADD */
24242: {
24243: uae_u32 srcreg = (opcode & 7);
24244: uae_u32 dstreg = (opcode >> 9) & 7;
24245: OpcodeFamily = 11; CurrentInstrCycles = 4;
24246: {{ uae_s16 src = m68k_areg(regs, srcreg);
24247: { uae_s16 dst = m68k_dreg(regs, dstreg);
24248: { refill_prefetch (m68k_getpc(), 2);
24249: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
24250: { int flgs = ((uae_s16)(src)) < 0;
24251: int flgo = ((uae_s16)(dst)) < 0;
24252: int flgn = ((uae_s16)(newv)) < 0;
24253: SET_ZFLG (((uae_s16)(newv)) == 0);
24254: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24255: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
24256: COPY_CARRY;
24257: SET_NFLG (flgn != 0);
24258: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
24259: }}}}}}m68k_incpc(2);
24260: return 4;
24261: }
24262: unsigned long REGPARAM2 CPUFUNC(op_d050_0)(uae_u32 opcode) /* ADD */
24263: {
24264: uae_u32 srcreg = (opcode & 7);
24265: uae_u32 dstreg = (opcode >> 9) & 7;
24266: OpcodeFamily = 11; CurrentInstrCycles = 8;
24267: {{ uaecptr srca = m68k_areg(regs, srcreg);
24268: { uae_s16 src = get_word(srca);
24269: { uae_s16 dst = m68k_dreg(regs, dstreg);
24270: { refill_prefetch (m68k_getpc(), 2);
24271: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
24272: { int flgs = ((uae_s16)(src)) < 0;
24273: int flgo = ((uae_s16)(dst)) < 0;
24274: int flgn = ((uae_s16)(newv)) < 0;
24275: SET_ZFLG (((uae_s16)(newv)) == 0);
24276: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24277: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
24278: COPY_CARRY;
24279: SET_NFLG (flgn != 0);
24280: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
24281: }}}}}}}m68k_incpc(2);
24282: return 8;
24283: }
24284: unsigned long REGPARAM2 CPUFUNC(op_d058_0)(uae_u32 opcode) /* ADD */
24285: {
24286: uae_u32 srcreg = (opcode & 7);
24287: uae_u32 dstreg = (opcode >> 9) & 7;
24288: OpcodeFamily = 11; CurrentInstrCycles = 8;
24289: {{ uaecptr srca = m68k_areg(regs, srcreg);
24290: { uae_s16 src = get_word(srca);
24291: m68k_areg(regs, srcreg) += 2;
24292: { uae_s16 dst = m68k_dreg(regs, dstreg);
24293: { refill_prefetch (m68k_getpc(), 2);
24294: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
24295: { int flgs = ((uae_s16)(src)) < 0;
24296: int flgo = ((uae_s16)(dst)) < 0;
24297: int flgn = ((uae_s16)(newv)) < 0;
24298: SET_ZFLG (((uae_s16)(newv)) == 0);
24299: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24300: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
24301: COPY_CARRY;
24302: SET_NFLG (flgn != 0);
24303: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
24304: }}}}}}}m68k_incpc(2);
24305: return 8;
24306: }
24307: unsigned long REGPARAM2 CPUFUNC(op_d060_0)(uae_u32 opcode) /* ADD */
24308: {
24309: uae_u32 srcreg = (opcode & 7);
24310: uae_u32 dstreg = (opcode >> 9) & 7;
24311: OpcodeFamily = 11; CurrentInstrCycles = 10;
24312: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
24313: { uae_s16 src = get_word(srca);
24314: m68k_areg (regs, srcreg) = srca;
24315: { uae_s16 dst = m68k_dreg(regs, dstreg);
24316: { refill_prefetch (m68k_getpc(), 2);
24317: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
24318: { int flgs = ((uae_s16)(src)) < 0;
24319: int flgo = ((uae_s16)(dst)) < 0;
24320: int flgn = ((uae_s16)(newv)) < 0;
24321: SET_ZFLG (((uae_s16)(newv)) == 0);
24322: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24323: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
24324: COPY_CARRY;
24325: SET_NFLG (flgn != 0);
24326: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
24327: }}}}}}}m68k_incpc(2);
24328: return 10;
24329: }
24330: unsigned long REGPARAM2 CPUFUNC(op_d068_0)(uae_u32 opcode) /* ADD */
24331: {
24332: uae_u32 srcreg = (opcode & 7);
24333: uae_u32 dstreg = (opcode >> 9) & 7;
24334: OpcodeFamily = 11; CurrentInstrCycles = 12;
24335: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
24336: { uae_s16 src = get_word(srca);
24337: { uae_s16 dst = m68k_dreg(regs, dstreg);
24338: { refill_prefetch (m68k_getpc(), 2);
24339: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
24340: { int flgs = ((uae_s16)(src)) < 0;
24341: int flgo = ((uae_s16)(dst)) < 0;
24342: int flgn = ((uae_s16)(newv)) < 0;
24343: SET_ZFLG (((uae_s16)(newv)) == 0);
24344: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24345: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
24346: COPY_CARRY;
24347: SET_NFLG (flgn != 0);
24348: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
24349: }}}}}}}m68k_incpc(4);
24350: return 12;
24351: }
24352: unsigned long REGPARAM2 CPUFUNC(op_d070_0)(uae_u32 opcode) /* ADD */
24353: {
24354: uae_u32 srcreg = (opcode & 7);
24355: uae_u32 dstreg = (opcode >> 9) & 7;
24356: OpcodeFamily = 11; CurrentInstrCycles = 14;
24357: {{m68k_incpc(2);
24358: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
24359: BusCyclePenalty += 2;
24360: { uae_s16 src = get_word(srca);
24361: { uae_s16 dst = m68k_dreg(regs, dstreg);
24362: { refill_prefetch (m68k_getpc(), 2);
24363: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
24364: { int flgs = ((uae_s16)(src)) < 0;
24365: int flgo = ((uae_s16)(dst)) < 0;
24366: int flgn = ((uae_s16)(newv)) < 0;
24367: SET_ZFLG (((uae_s16)(newv)) == 0);
24368: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24369: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
24370: COPY_CARRY;
24371: SET_NFLG (flgn != 0);
24372: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
24373: }}}}}}}}return 14;
24374: }
24375: unsigned long REGPARAM2 CPUFUNC(op_d078_0)(uae_u32 opcode) /* ADD */
24376: {
24377: uae_u32 dstreg = (opcode >> 9) & 7;
24378: OpcodeFamily = 11; CurrentInstrCycles = 12;
24379: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
24380: { uae_s16 src = get_word(srca);
24381: { uae_s16 dst = m68k_dreg(regs, dstreg);
24382: { refill_prefetch (m68k_getpc(), 2);
24383: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
24384: { int flgs = ((uae_s16)(src)) < 0;
24385: int flgo = ((uae_s16)(dst)) < 0;
24386: int flgn = ((uae_s16)(newv)) < 0;
24387: SET_ZFLG (((uae_s16)(newv)) == 0);
24388: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24389: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
24390: COPY_CARRY;
24391: SET_NFLG (flgn != 0);
24392: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
24393: }}}}}}}m68k_incpc(4);
24394: return 12;
24395: }
24396: unsigned long REGPARAM2 CPUFUNC(op_d079_0)(uae_u32 opcode) /* ADD */
24397: {
24398: uae_u32 dstreg = (opcode >> 9) & 7;
24399: OpcodeFamily = 11; CurrentInstrCycles = 16;
24400: {{ uaecptr srca = get_ilong(2);
24401: { uae_s16 src = get_word(srca);
24402: { uae_s16 dst = m68k_dreg(regs, dstreg);
24403: { refill_prefetch (m68k_getpc(), 2);
24404: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
24405: { int flgs = ((uae_s16)(src)) < 0;
24406: int flgo = ((uae_s16)(dst)) < 0;
24407: int flgn = ((uae_s16)(newv)) < 0;
24408: SET_ZFLG (((uae_s16)(newv)) == 0);
24409: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24410: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
24411: COPY_CARRY;
24412: SET_NFLG (flgn != 0);
24413: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
24414: }}}}}}}m68k_incpc(6);
24415: return 16;
24416: }
24417: unsigned long REGPARAM2 CPUFUNC(op_d07a_0)(uae_u32 opcode) /* ADD */
24418: {
24419: uae_u32 dstreg = (opcode >> 9) & 7;
24420: OpcodeFamily = 11; CurrentInstrCycles = 12;
24421: {{ uaecptr srca = m68k_getpc () + 2;
24422: srca += (uae_s32)(uae_s16)get_iword(2);
24423: { uae_s16 src = get_word(srca);
24424: { uae_s16 dst = m68k_dreg(regs, dstreg);
24425: { refill_prefetch (m68k_getpc(), 2);
24426: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
24427: { int flgs = ((uae_s16)(src)) < 0;
24428: int flgo = ((uae_s16)(dst)) < 0;
24429: int flgn = ((uae_s16)(newv)) < 0;
24430: SET_ZFLG (((uae_s16)(newv)) == 0);
24431: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24432: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
24433: COPY_CARRY;
24434: SET_NFLG (flgn != 0);
24435: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
24436: }}}}}}}m68k_incpc(4);
24437: return 12;
24438: }
24439: unsigned long REGPARAM2 CPUFUNC(op_d07b_0)(uae_u32 opcode) /* ADD */
24440: {
24441: uae_u32 dstreg = (opcode >> 9) & 7;
24442: OpcodeFamily = 11; CurrentInstrCycles = 14;
24443: {{m68k_incpc(2);
24444: { uaecptr tmppc = m68k_getpc();
24445: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
24446: BusCyclePenalty += 2;
24447: { uae_s16 src = get_word(srca);
24448: { uae_s16 dst = m68k_dreg(regs, dstreg);
24449: { refill_prefetch (m68k_getpc(), 2);
24450: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
24451: { int flgs = ((uae_s16)(src)) < 0;
24452: int flgo = ((uae_s16)(dst)) < 0;
24453: int flgn = ((uae_s16)(newv)) < 0;
24454: SET_ZFLG (((uae_s16)(newv)) == 0);
24455: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24456: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
24457: COPY_CARRY;
24458: SET_NFLG (flgn != 0);
24459: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
24460: }}}}}}}}return 14;
24461: }
24462: unsigned long REGPARAM2 CPUFUNC(op_d07c_0)(uae_u32 opcode) /* ADD */
24463: {
24464: uae_u32 dstreg = (opcode >> 9) & 7;
24465: OpcodeFamily = 11; CurrentInstrCycles = 8;
24466: {{ uae_s16 src = get_iword(2);
24467: { uae_s16 dst = m68k_dreg(regs, dstreg);
24468: { refill_prefetch (m68k_getpc(), 2);
24469: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
24470: { int flgs = ((uae_s16)(src)) < 0;
24471: int flgo = ((uae_s16)(dst)) < 0;
24472: int flgn = ((uae_s16)(newv)) < 0;
24473: SET_ZFLG (((uae_s16)(newv)) == 0);
24474: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24475: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
24476: COPY_CARRY;
24477: SET_NFLG (flgn != 0);
24478: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
24479: }}}}}}m68k_incpc(4);
24480: return 8;
24481: }
24482: unsigned long REGPARAM2 CPUFUNC(op_d080_0)(uae_u32 opcode) /* ADD */
24483: {
24484: uae_u32 srcreg = (opcode & 7);
24485: uae_u32 dstreg = (opcode >> 9) & 7;
24486: OpcodeFamily = 11; CurrentInstrCycles = 8;
24487: {{ uae_s32 src = m68k_dreg(regs, srcreg);
24488: { uae_s32 dst = m68k_dreg(regs, dstreg);
24489: { refill_prefetch (m68k_getpc(), 2);
24490: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
24491: { int flgs = ((uae_s32)(src)) < 0;
24492: int flgo = ((uae_s32)(dst)) < 0;
24493: int flgn = ((uae_s32)(newv)) < 0;
24494: SET_ZFLG (((uae_s32)(newv)) == 0);
24495: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24496: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
24497: COPY_CARRY;
24498: SET_NFLG (flgn != 0);
24499: m68k_dreg(regs, dstreg) = (newv);
24500: }}}}}}m68k_incpc(2);
24501: return 8;
24502: }
24503: unsigned long REGPARAM2 CPUFUNC(op_d088_0)(uae_u32 opcode) /* ADD */
24504: {
24505: uae_u32 srcreg = (opcode & 7);
24506: uae_u32 dstreg = (opcode >> 9) & 7;
24507: OpcodeFamily = 11; CurrentInstrCycles = 8;
24508: {{ uae_s32 src = m68k_areg(regs, srcreg);
24509: { uae_s32 dst = m68k_dreg(regs, dstreg);
24510: { refill_prefetch (m68k_getpc(), 2);
24511: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
24512: { int flgs = ((uae_s32)(src)) < 0;
24513: int flgo = ((uae_s32)(dst)) < 0;
24514: int flgn = ((uae_s32)(newv)) < 0;
24515: SET_ZFLG (((uae_s32)(newv)) == 0);
24516: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24517: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
24518: COPY_CARRY;
24519: SET_NFLG (flgn != 0);
24520: m68k_dreg(regs, dstreg) = (newv);
24521: }}}}}}m68k_incpc(2);
24522: return 8;
24523: }
24524: unsigned long REGPARAM2 CPUFUNC(op_d090_0)(uae_u32 opcode) /* ADD */
24525: {
24526: uae_u32 srcreg = (opcode & 7);
24527: uae_u32 dstreg = (opcode >> 9) & 7;
24528: OpcodeFamily = 11; CurrentInstrCycles = 14;
24529: {{ uaecptr srca = m68k_areg(regs, srcreg);
24530: { uae_s32 src = get_long(srca);
24531: { uae_s32 dst = m68k_dreg(regs, dstreg);
24532: { refill_prefetch (m68k_getpc(), 2);
24533: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
24534: { int flgs = ((uae_s32)(src)) < 0;
24535: int flgo = ((uae_s32)(dst)) < 0;
24536: int flgn = ((uae_s32)(newv)) < 0;
24537: SET_ZFLG (((uae_s32)(newv)) == 0);
24538: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24539: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
24540: COPY_CARRY;
24541: SET_NFLG (flgn != 0);
24542: m68k_dreg(regs, dstreg) = (newv);
24543: }}}}}}}m68k_incpc(2);
24544: return 14;
24545: }
24546: unsigned long REGPARAM2 CPUFUNC(op_d098_0)(uae_u32 opcode) /* ADD */
24547: {
24548: uae_u32 srcreg = (opcode & 7);
24549: uae_u32 dstreg = (opcode >> 9) & 7;
24550: OpcodeFamily = 11; CurrentInstrCycles = 14;
24551: {{ uaecptr srca = m68k_areg(regs, srcreg);
24552: { uae_s32 src = get_long(srca);
24553: m68k_areg(regs, srcreg) += 4;
24554: { uae_s32 dst = m68k_dreg(regs, dstreg);
24555: { refill_prefetch (m68k_getpc(), 2);
24556: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
24557: { int flgs = ((uae_s32)(src)) < 0;
24558: int flgo = ((uae_s32)(dst)) < 0;
24559: int flgn = ((uae_s32)(newv)) < 0;
24560: SET_ZFLG (((uae_s32)(newv)) == 0);
24561: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24562: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
24563: COPY_CARRY;
24564: SET_NFLG (flgn != 0);
24565: m68k_dreg(regs, dstreg) = (newv);
24566: }}}}}}}m68k_incpc(2);
24567: return 14;
24568: }
24569: unsigned long REGPARAM2 CPUFUNC(op_d0a0_0)(uae_u32 opcode) /* ADD */
24570: {
24571: uae_u32 srcreg = (opcode & 7);
24572: uae_u32 dstreg = (opcode >> 9) & 7;
24573: OpcodeFamily = 11; CurrentInstrCycles = 16;
24574: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
24575: { uae_s32 src = get_long(srca);
24576: m68k_areg (regs, srcreg) = srca;
24577: { uae_s32 dst = m68k_dreg(regs, dstreg);
24578: { refill_prefetch (m68k_getpc(), 2);
24579: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
24580: { int flgs = ((uae_s32)(src)) < 0;
24581: int flgo = ((uae_s32)(dst)) < 0;
24582: int flgn = ((uae_s32)(newv)) < 0;
24583: SET_ZFLG (((uae_s32)(newv)) == 0);
24584: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24585: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
24586: COPY_CARRY;
24587: SET_NFLG (flgn != 0);
24588: m68k_dreg(regs, dstreg) = (newv);
24589: }}}}}}}m68k_incpc(2);
24590: return 16;
24591: }
24592: unsigned long REGPARAM2 CPUFUNC(op_d0a8_0)(uae_u32 opcode) /* ADD */
24593: {
24594: uae_u32 srcreg = (opcode & 7);
24595: uae_u32 dstreg = (opcode >> 9) & 7;
24596: OpcodeFamily = 11; CurrentInstrCycles = 18;
24597: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
24598: { uae_s32 src = get_long(srca);
24599: { uae_s32 dst = m68k_dreg(regs, dstreg);
24600: { refill_prefetch (m68k_getpc(), 2);
24601: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
24602: { int flgs = ((uae_s32)(src)) < 0;
24603: int flgo = ((uae_s32)(dst)) < 0;
24604: int flgn = ((uae_s32)(newv)) < 0;
24605: SET_ZFLG (((uae_s32)(newv)) == 0);
24606: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24607: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
24608: COPY_CARRY;
24609: SET_NFLG (flgn != 0);
24610: m68k_dreg(regs, dstreg) = (newv);
24611: }}}}}}}m68k_incpc(4);
24612: return 18;
24613: }
24614: unsigned long REGPARAM2 CPUFUNC(op_d0b0_0)(uae_u32 opcode) /* ADD */
24615: {
24616: uae_u32 srcreg = (opcode & 7);
24617: uae_u32 dstreg = (opcode >> 9) & 7;
24618: OpcodeFamily = 11; CurrentInstrCycles = 20;
24619: {{m68k_incpc(2);
24620: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
24621: BusCyclePenalty += 2;
24622: { uae_s32 src = get_long(srca);
24623: { uae_s32 dst = m68k_dreg(regs, dstreg);
24624: { refill_prefetch (m68k_getpc(), 2);
24625: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
24626: { int flgs = ((uae_s32)(src)) < 0;
24627: int flgo = ((uae_s32)(dst)) < 0;
24628: int flgn = ((uae_s32)(newv)) < 0;
24629: SET_ZFLG (((uae_s32)(newv)) == 0);
24630: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24631: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
24632: COPY_CARRY;
24633: SET_NFLG (flgn != 0);
24634: m68k_dreg(regs, dstreg) = (newv);
24635: }}}}}}}}return 20;
24636: }
24637: unsigned long REGPARAM2 CPUFUNC(op_d0b8_0)(uae_u32 opcode) /* ADD */
24638: {
24639: uae_u32 dstreg = (opcode >> 9) & 7;
24640: OpcodeFamily = 11; CurrentInstrCycles = 18;
24641: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
24642: { uae_s32 src = get_long(srca);
24643: { uae_s32 dst = m68k_dreg(regs, dstreg);
24644: { refill_prefetch (m68k_getpc(), 2);
24645: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
24646: { int flgs = ((uae_s32)(src)) < 0;
24647: int flgo = ((uae_s32)(dst)) < 0;
24648: int flgn = ((uae_s32)(newv)) < 0;
24649: SET_ZFLG (((uae_s32)(newv)) == 0);
24650: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24651: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
24652: COPY_CARRY;
24653: SET_NFLG (flgn != 0);
24654: m68k_dreg(regs, dstreg) = (newv);
24655: }}}}}}}m68k_incpc(4);
24656: return 18;
24657: }
24658: unsigned long REGPARAM2 CPUFUNC(op_d0b9_0)(uae_u32 opcode) /* ADD */
24659: {
24660: uae_u32 dstreg = (opcode >> 9) & 7;
24661: OpcodeFamily = 11; CurrentInstrCycles = 22;
24662: {{ uaecptr srca = get_ilong(2);
24663: { uae_s32 src = get_long(srca);
24664: { uae_s32 dst = m68k_dreg(regs, dstreg);
24665: { refill_prefetch (m68k_getpc(), 2);
24666: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
24667: { int flgs = ((uae_s32)(src)) < 0;
24668: int flgo = ((uae_s32)(dst)) < 0;
24669: int flgn = ((uae_s32)(newv)) < 0;
24670: SET_ZFLG (((uae_s32)(newv)) == 0);
24671: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24672: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
24673: COPY_CARRY;
24674: SET_NFLG (flgn != 0);
24675: m68k_dreg(regs, dstreg) = (newv);
24676: }}}}}}}m68k_incpc(6);
24677: return 22;
24678: }
24679: unsigned long REGPARAM2 CPUFUNC(op_d0ba_0)(uae_u32 opcode) /* ADD */
24680: {
24681: uae_u32 dstreg = (opcode >> 9) & 7;
24682: OpcodeFamily = 11; CurrentInstrCycles = 18;
24683: {{ uaecptr srca = m68k_getpc () + 2;
24684: srca += (uae_s32)(uae_s16)get_iword(2);
24685: { uae_s32 src = get_long(srca);
24686: { uae_s32 dst = m68k_dreg(regs, dstreg);
24687: { refill_prefetch (m68k_getpc(), 2);
24688: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
24689: { int flgs = ((uae_s32)(src)) < 0;
24690: int flgo = ((uae_s32)(dst)) < 0;
24691: int flgn = ((uae_s32)(newv)) < 0;
24692: SET_ZFLG (((uae_s32)(newv)) == 0);
24693: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24694: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
24695: COPY_CARRY;
24696: SET_NFLG (flgn != 0);
24697: m68k_dreg(regs, dstreg) = (newv);
24698: }}}}}}}m68k_incpc(4);
24699: return 18;
24700: }
24701: unsigned long REGPARAM2 CPUFUNC(op_d0bb_0)(uae_u32 opcode) /* ADD */
24702: {
24703: uae_u32 dstreg = (opcode >> 9) & 7;
24704: OpcodeFamily = 11; CurrentInstrCycles = 20;
24705: {{m68k_incpc(2);
24706: { uaecptr tmppc = m68k_getpc();
24707: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
24708: BusCyclePenalty += 2;
24709: { uae_s32 src = get_long(srca);
24710: { uae_s32 dst = m68k_dreg(regs, dstreg);
24711: { refill_prefetch (m68k_getpc(), 2);
24712: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
24713: { int flgs = ((uae_s32)(src)) < 0;
24714: int flgo = ((uae_s32)(dst)) < 0;
24715: int flgn = ((uae_s32)(newv)) < 0;
24716: SET_ZFLG (((uae_s32)(newv)) == 0);
24717: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24718: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
24719: COPY_CARRY;
24720: SET_NFLG (flgn != 0);
24721: m68k_dreg(regs, dstreg) = (newv);
24722: }}}}}}}}return 20;
24723: }
24724: unsigned long REGPARAM2 CPUFUNC(op_d0bc_0)(uae_u32 opcode) /* ADD */
24725: {
24726: uae_u32 dstreg = (opcode >> 9) & 7;
24727: OpcodeFamily = 11; CurrentInstrCycles = 16;
24728: {{ uae_s32 src = get_ilong(2);
24729: { uae_s32 dst = m68k_dreg(regs, dstreg);
24730: { refill_prefetch (m68k_getpc(), 2);
24731: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
24732: { int flgs = ((uae_s32)(src)) < 0;
24733: int flgo = ((uae_s32)(dst)) < 0;
24734: int flgn = ((uae_s32)(newv)) < 0;
24735: SET_ZFLG (((uae_s32)(newv)) == 0);
24736: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24737: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
24738: COPY_CARRY;
24739: SET_NFLG (flgn != 0);
24740: m68k_dreg(regs, dstreg) = (newv);
24741: }}}}}}m68k_incpc(6);
24742: return 16;
24743: }
24744: unsigned long REGPARAM2 CPUFUNC(op_d0c0_0)(uae_u32 opcode) /* ADDA */
24745: {
24746: uae_u32 srcreg = (opcode & 7);
24747: uae_u32 dstreg = (opcode >> 9) & 7;
24748: OpcodeFamily = 12; CurrentInstrCycles = 8;
24749: {{ uae_s16 src = m68k_dreg(regs, srcreg);
24750: { uae_s32 dst = m68k_areg(regs, dstreg);
24751: { uae_u32 newv = dst + src;
24752: m68k_areg(regs, dstreg) = (newv);
24753: }}}}m68k_incpc(2);
24754: return 8;
24755: }
24756: unsigned long REGPARAM2 CPUFUNC(op_d0c8_0)(uae_u32 opcode) /* ADDA */
24757: {
24758: uae_u32 srcreg = (opcode & 7);
24759: uae_u32 dstreg = (opcode >> 9) & 7;
24760: OpcodeFamily = 12; CurrentInstrCycles = 8;
24761: {{ uae_s16 src = m68k_areg(regs, srcreg);
24762: { uae_s32 dst = m68k_areg(regs, dstreg);
24763: { uae_u32 newv = dst + src;
24764: m68k_areg(regs, dstreg) = (newv);
24765: }}}}m68k_incpc(2);
24766: return 8;
24767: }
24768: unsigned long REGPARAM2 CPUFUNC(op_d0d0_0)(uae_u32 opcode) /* ADDA */
24769: {
24770: uae_u32 srcreg = (opcode & 7);
24771: uae_u32 dstreg = (opcode >> 9) & 7;
24772: OpcodeFamily = 12; CurrentInstrCycles = 12;
24773: {{ uaecptr srca = m68k_areg(regs, srcreg);
24774: { uae_s16 src = get_word(srca);
24775: { uae_s32 dst = m68k_areg(regs, dstreg);
24776: { uae_u32 newv = dst + src;
24777: m68k_areg(regs, dstreg) = (newv);
24778: }}}}}m68k_incpc(2);
24779: return 12;
24780: }
24781: unsigned long REGPARAM2 CPUFUNC(op_d0d8_0)(uae_u32 opcode) /* ADDA */
24782: {
24783: uae_u32 srcreg = (opcode & 7);
24784: uae_u32 dstreg = (opcode >> 9) & 7;
24785: OpcodeFamily = 12; CurrentInstrCycles = 12;
24786: {{ uaecptr srca = m68k_areg(regs, srcreg);
24787: { uae_s16 src = get_word(srca);
24788: m68k_areg(regs, srcreg) += 2;
24789: { uae_s32 dst = m68k_areg(regs, dstreg);
24790: { uae_u32 newv = dst + src;
24791: m68k_areg(regs, dstreg) = (newv);
24792: }}}}}m68k_incpc(2);
24793: return 12;
24794: }
24795: unsigned long REGPARAM2 CPUFUNC(op_d0e0_0)(uae_u32 opcode) /* ADDA */
24796: {
24797: uae_u32 srcreg = (opcode & 7);
24798: uae_u32 dstreg = (opcode >> 9) & 7;
24799: OpcodeFamily = 12; CurrentInstrCycles = 14;
24800: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
24801: { uae_s16 src = get_word(srca);
24802: m68k_areg (regs, srcreg) = srca;
24803: { uae_s32 dst = m68k_areg(regs, dstreg);
24804: { uae_u32 newv = dst + src;
24805: m68k_areg(regs, dstreg) = (newv);
24806: }}}}}m68k_incpc(2);
24807: return 14;
24808: }
24809: unsigned long REGPARAM2 CPUFUNC(op_d0e8_0)(uae_u32 opcode) /* ADDA */
24810: {
24811: uae_u32 srcreg = (opcode & 7);
24812: uae_u32 dstreg = (opcode >> 9) & 7;
24813: OpcodeFamily = 12; CurrentInstrCycles = 16;
24814: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
24815: { uae_s16 src = get_word(srca);
24816: { uae_s32 dst = m68k_areg(regs, dstreg);
24817: { uae_u32 newv = dst + src;
24818: m68k_areg(regs, dstreg) = (newv);
24819: }}}}}m68k_incpc(4);
24820: return 16;
24821: }
24822: unsigned long REGPARAM2 CPUFUNC(op_d0f0_0)(uae_u32 opcode) /* ADDA */
24823: {
24824: uae_u32 srcreg = (opcode & 7);
24825: uae_u32 dstreg = (opcode >> 9) & 7;
24826: OpcodeFamily = 12; CurrentInstrCycles = 18;
24827: {{m68k_incpc(2);
24828: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
24829: BusCyclePenalty += 2;
24830: { uae_s16 src = get_word(srca);
24831: { uae_s32 dst = m68k_areg(regs, dstreg);
24832: { uae_u32 newv = dst + src;
24833: m68k_areg(regs, dstreg) = (newv);
24834: }}}}}}return 18;
24835: }
24836: unsigned long REGPARAM2 CPUFUNC(op_d0f8_0)(uae_u32 opcode) /* ADDA */
24837: {
24838: uae_u32 dstreg = (opcode >> 9) & 7;
24839: OpcodeFamily = 12; CurrentInstrCycles = 16;
24840: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
24841: { uae_s16 src = get_word(srca);
24842: { uae_s32 dst = m68k_areg(regs, dstreg);
24843: { uae_u32 newv = dst + src;
24844: m68k_areg(regs, dstreg) = (newv);
24845: }}}}}m68k_incpc(4);
24846: return 16;
24847: }
24848: unsigned long REGPARAM2 CPUFUNC(op_d0f9_0)(uae_u32 opcode) /* ADDA */
24849: {
24850: uae_u32 dstreg = (opcode >> 9) & 7;
24851: OpcodeFamily = 12; CurrentInstrCycles = 20;
24852: {{ uaecptr srca = get_ilong(2);
24853: { uae_s16 src = get_word(srca);
24854: { uae_s32 dst = m68k_areg(regs, dstreg);
24855: { uae_u32 newv = dst + src;
24856: m68k_areg(regs, dstreg) = (newv);
24857: }}}}}m68k_incpc(6);
24858: return 20;
24859: }
24860: unsigned long REGPARAM2 CPUFUNC(op_d0fa_0)(uae_u32 opcode) /* ADDA */
24861: {
24862: uae_u32 dstreg = (opcode >> 9) & 7;
24863: OpcodeFamily = 12; CurrentInstrCycles = 16;
24864: {{ uaecptr srca = m68k_getpc () + 2;
24865: srca += (uae_s32)(uae_s16)get_iword(2);
24866: { uae_s16 src = get_word(srca);
24867: { uae_s32 dst = m68k_areg(regs, dstreg);
24868: { uae_u32 newv = dst + src;
24869: m68k_areg(regs, dstreg) = (newv);
24870: }}}}}m68k_incpc(4);
24871: return 16;
24872: }
24873: unsigned long REGPARAM2 CPUFUNC(op_d0fb_0)(uae_u32 opcode) /* ADDA */
24874: {
24875: uae_u32 dstreg = (opcode >> 9) & 7;
24876: OpcodeFamily = 12; CurrentInstrCycles = 18;
24877: {{m68k_incpc(2);
24878: { uaecptr tmppc = m68k_getpc();
24879: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
24880: BusCyclePenalty += 2;
24881: { uae_s16 src = get_word(srca);
24882: { uae_s32 dst = m68k_areg(regs, dstreg);
24883: { uae_u32 newv = dst + src;
24884: m68k_areg(regs, dstreg) = (newv);
24885: }}}}}}return 18;
24886: }
24887: unsigned long REGPARAM2 CPUFUNC(op_d0fc_0)(uae_u32 opcode) /* ADDA */
24888: {
24889: uae_u32 dstreg = (opcode >> 9) & 7;
24890: OpcodeFamily = 12; CurrentInstrCycles = 12;
24891: {{ uae_s16 src = get_iword(2);
24892: { uae_s32 dst = m68k_areg(regs, dstreg);
24893: { uae_u32 newv = dst + src;
24894: m68k_areg(regs, dstreg) = (newv);
24895: }}}}m68k_incpc(4);
24896: return 12;
24897: }
24898: unsigned long REGPARAM2 CPUFUNC(op_d100_0)(uae_u32 opcode) /* ADDX */
24899: {
24900: uae_u32 srcreg = (opcode & 7);
24901: uae_u32 dstreg = (opcode >> 9) & 7;
24902: OpcodeFamily = 13; CurrentInstrCycles = 4;
24903: {{ uae_s8 src = m68k_dreg(regs, srcreg);
24904: { uae_s8 dst = m68k_dreg(regs, dstreg);
24905: { uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0);
24906: { int flgs = ((uae_s8)(src)) < 0;
24907: int flgo = ((uae_s8)(dst)) < 0;
24908: int flgn = ((uae_s8)(newv)) < 0;
24909: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24910: SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn)));
24911: COPY_CARRY;
24912: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
24913: SET_NFLG (((uae_s8)(newv)) < 0);
24914: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
24915: }}}}}m68k_incpc(2);
24916: return 4;
24917: }
24918: unsigned long REGPARAM2 CPUFUNC(op_d108_0)(uae_u32 opcode) /* ADDX */
24919: {
24920: uae_u32 srcreg = (opcode & 7);
24921: uae_u32 dstreg = (opcode >> 9) & 7;
24922: OpcodeFamily = 13; CurrentInstrCycles = 18;
24923: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
24924: { uae_s8 src = get_byte(srca);
24925: m68k_areg (regs, srcreg) = srca;
24926: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
24927: { uae_s8 dst = get_byte(dsta);
24928: m68k_areg (regs, dstreg) = dsta;
24929: { uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0);
24930: { int flgs = ((uae_s8)(src)) < 0;
24931: int flgo = ((uae_s8)(dst)) < 0;
24932: int flgn = ((uae_s8)(newv)) < 0;
24933: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24934: SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn)));
24935: COPY_CARRY;
24936: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
24937: SET_NFLG (((uae_s8)(newv)) < 0);
24938: put_byte(dsta,newv);
24939: }}}}}}}m68k_incpc(2);
24940: return 18;
24941: }
24942: unsigned long REGPARAM2 CPUFUNC(op_d110_0)(uae_u32 opcode) /* ADD */
24943: {
24944: uae_u32 srcreg = ((opcode >> 9) & 7);
24945: uae_u32 dstreg = opcode & 7;
24946: OpcodeFamily = 11; CurrentInstrCycles = 12;
24947: {{ uae_s8 src = m68k_dreg(regs, srcreg);
24948: { uaecptr dsta = m68k_areg(regs, dstreg);
24949: { uae_s8 dst = get_byte(dsta);
24950: { refill_prefetch (m68k_getpc(), 2);
24951: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
24952: { int flgs = ((uae_s8)(src)) < 0;
24953: int flgo = ((uae_s8)(dst)) < 0;
24954: int flgn = ((uae_s8)(newv)) < 0;
24955: SET_ZFLG (((uae_s8)(newv)) == 0);
24956: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24957: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
24958: COPY_CARRY;
24959: SET_NFLG (flgn != 0);
24960: put_byte(dsta,newv);
24961: }}}}}}}m68k_incpc(2);
24962: return 12;
24963: }
24964: unsigned long REGPARAM2 CPUFUNC(op_d118_0)(uae_u32 opcode) /* ADD */
24965: {
24966: uae_u32 srcreg = ((opcode >> 9) & 7);
24967: uae_u32 dstreg = opcode & 7;
24968: OpcodeFamily = 11; CurrentInstrCycles = 12;
24969: {{ uae_s8 src = m68k_dreg(regs, srcreg);
24970: { uaecptr dsta = m68k_areg(regs, dstreg);
24971: { uae_s8 dst = get_byte(dsta);
24972: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
24973: { refill_prefetch (m68k_getpc(), 2);
24974: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
24975: { int flgs = ((uae_s8)(src)) < 0;
24976: int flgo = ((uae_s8)(dst)) < 0;
24977: int flgn = ((uae_s8)(newv)) < 0;
24978: SET_ZFLG (((uae_s8)(newv)) == 0);
24979: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
24980: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
24981: COPY_CARRY;
24982: SET_NFLG (flgn != 0);
24983: put_byte(dsta,newv);
24984: }}}}}}}m68k_incpc(2);
24985: return 12;
24986: }
24987: unsigned long REGPARAM2 CPUFUNC(op_d120_0)(uae_u32 opcode) /* ADD */
24988: {
24989: uae_u32 srcreg = ((opcode >> 9) & 7);
24990: uae_u32 dstreg = opcode & 7;
24991: OpcodeFamily = 11; CurrentInstrCycles = 14;
24992: {{ uae_s8 src = m68k_dreg(regs, srcreg);
24993: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
24994: { uae_s8 dst = get_byte(dsta);
24995: m68k_areg (regs, dstreg) = dsta;
24996: { refill_prefetch (m68k_getpc(), 2);
24997: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
24998: { int flgs = ((uae_s8)(src)) < 0;
24999: int flgo = ((uae_s8)(dst)) < 0;
25000: int flgn = ((uae_s8)(newv)) < 0;
25001: SET_ZFLG (((uae_s8)(newv)) == 0);
25002: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
25003: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
25004: COPY_CARRY;
25005: SET_NFLG (flgn != 0);
25006: put_byte(dsta,newv);
25007: }}}}}}}m68k_incpc(2);
25008: return 14;
25009: }
25010: unsigned long REGPARAM2 CPUFUNC(op_d128_0)(uae_u32 opcode) /* ADD */
25011: {
25012: uae_u32 srcreg = ((opcode >> 9) & 7);
25013: uae_u32 dstreg = opcode & 7;
25014: OpcodeFamily = 11; CurrentInstrCycles = 16;
25015: {{ uae_s8 src = m68k_dreg(regs, srcreg);
25016: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
25017: { uae_s8 dst = get_byte(dsta);
25018: { refill_prefetch (m68k_getpc(), 2);
25019: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
25020: { int flgs = ((uae_s8)(src)) < 0;
25021: int flgo = ((uae_s8)(dst)) < 0;
25022: int flgn = ((uae_s8)(newv)) < 0;
25023: SET_ZFLG (((uae_s8)(newv)) == 0);
25024: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
25025: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
25026: COPY_CARRY;
25027: SET_NFLG (flgn != 0);
25028: put_byte(dsta,newv);
25029: }}}}}}}m68k_incpc(4);
25030: return 16;
25031: }
25032: unsigned long REGPARAM2 CPUFUNC(op_d130_0)(uae_u32 opcode) /* ADD */
25033: {
25034: uae_u32 srcreg = ((opcode >> 9) & 7);
25035: uae_u32 dstreg = opcode & 7;
25036: OpcodeFamily = 11; CurrentInstrCycles = 18;
25037: {{ uae_s8 src = m68k_dreg(regs, srcreg);
25038: {m68k_incpc(2);
25039: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
25040: BusCyclePenalty += 2;
25041: { uae_s8 dst = get_byte(dsta);
25042: { refill_prefetch (m68k_getpc(), 2);
25043: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
25044: { int flgs = ((uae_s8)(src)) < 0;
25045: int flgo = ((uae_s8)(dst)) < 0;
25046: int flgn = ((uae_s8)(newv)) < 0;
25047: SET_ZFLG (((uae_s8)(newv)) == 0);
25048: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
25049: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
25050: COPY_CARRY;
25051: SET_NFLG (flgn != 0);
25052: put_byte(dsta,newv);
25053: }}}}}}}}return 18;
25054: }
25055: unsigned long REGPARAM2 CPUFUNC(op_d138_0)(uae_u32 opcode) /* ADD */
25056: {
25057: uae_u32 srcreg = ((opcode >> 9) & 7);
25058: OpcodeFamily = 11; CurrentInstrCycles = 16;
25059: {{ uae_s8 src = m68k_dreg(regs, srcreg);
25060: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
25061: { uae_s8 dst = get_byte(dsta);
25062: { refill_prefetch (m68k_getpc(), 2);
25063: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
25064: { int flgs = ((uae_s8)(src)) < 0;
25065: int flgo = ((uae_s8)(dst)) < 0;
25066: int flgn = ((uae_s8)(newv)) < 0;
25067: SET_ZFLG (((uae_s8)(newv)) == 0);
25068: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
25069: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
25070: COPY_CARRY;
25071: SET_NFLG (flgn != 0);
25072: put_byte(dsta,newv);
25073: }}}}}}}m68k_incpc(4);
25074: return 16;
25075: }
25076: unsigned long REGPARAM2 CPUFUNC(op_d139_0)(uae_u32 opcode) /* ADD */
25077: {
25078: uae_u32 srcreg = ((opcode >> 9) & 7);
25079: OpcodeFamily = 11; CurrentInstrCycles = 20;
25080: {{ uae_s8 src = m68k_dreg(regs, srcreg);
25081: { uaecptr dsta = get_ilong(2);
25082: { uae_s8 dst = get_byte(dsta);
25083: { refill_prefetch (m68k_getpc(), 2);
25084: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
25085: { int flgs = ((uae_s8)(src)) < 0;
25086: int flgo = ((uae_s8)(dst)) < 0;
25087: int flgn = ((uae_s8)(newv)) < 0;
25088: SET_ZFLG (((uae_s8)(newv)) == 0);
25089: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
25090: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
25091: COPY_CARRY;
25092: SET_NFLG (flgn != 0);
25093: put_byte(dsta,newv);
25094: }}}}}}}m68k_incpc(6);
25095: return 20;
25096: }
25097: unsigned long REGPARAM2 CPUFUNC(op_d140_0)(uae_u32 opcode) /* ADDX */
25098: {
25099: uae_u32 srcreg = (opcode & 7);
25100: uae_u32 dstreg = (opcode >> 9) & 7;
25101: OpcodeFamily = 13; CurrentInstrCycles = 4;
25102: {{ uae_s16 src = m68k_dreg(regs, srcreg);
25103: { uae_s16 dst = m68k_dreg(regs, dstreg);
25104: { uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0);
25105: { int flgs = ((uae_s16)(src)) < 0;
25106: int flgo = ((uae_s16)(dst)) < 0;
25107: int flgn = ((uae_s16)(newv)) < 0;
25108: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
25109: SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn)));
25110: COPY_CARRY;
25111: SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
25112: SET_NFLG (((uae_s16)(newv)) < 0);
25113: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
25114: }}}}}m68k_incpc(2);
25115: return 4;
25116: }
25117: unsigned long REGPARAM2 CPUFUNC(op_d148_0)(uae_u32 opcode) /* ADDX */
25118: {
25119: uae_u32 srcreg = (opcode & 7);
25120: uae_u32 dstreg = (opcode >> 9) & 7;
25121: OpcodeFamily = 13; CurrentInstrCycles = 18;
25122: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
25123: { uae_s16 src = get_word(srca);
25124: m68k_areg (regs, srcreg) = srca;
25125: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
25126: { uae_s16 dst = get_word(dsta);
25127: m68k_areg (regs, dstreg) = dsta;
25128: { uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0);
25129: { int flgs = ((uae_s16)(src)) < 0;
25130: int flgo = ((uae_s16)(dst)) < 0;
25131: int flgn = ((uae_s16)(newv)) < 0;
25132: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
25133: SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn)));
25134: COPY_CARRY;
25135: SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
25136: SET_NFLG (((uae_s16)(newv)) < 0);
25137: put_word(dsta,newv);
25138: }}}}}}}m68k_incpc(2);
25139: return 18;
25140: }
25141: unsigned long REGPARAM2 CPUFUNC(op_d150_0)(uae_u32 opcode) /* ADD */
25142: {
25143: uae_u32 srcreg = ((opcode >> 9) & 7);
25144: uae_u32 dstreg = opcode & 7;
25145: OpcodeFamily = 11; CurrentInstrCycles = 12;
25146: {{ uae_s16 src = m68k_dreg(regs, srcreg);
25147: { uaecptr dsta = m68k_areg(regs, dstreg);
25148: { uae_s16 dst = get_word(dsta);
25149: { refill_prefetch (m68k_getpc(), 2);
25150: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
25151: { int flgs = ((uae_s16)(src)) < 0;
25152: int flgo = ((uae_s16)(dst)) < 0;
25153: int flgn = ((uae_s16)(newv)) < 0;
25154: SET_ZFLG (((uae_s16)(newv)) == 0);
25155: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
25156: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
25157: COPY_CARRY;
25158: SET_NFLG (flgn != 0);
25159: put_word(dsta,newv);
25160: }}}}}}}m68k_incpc(2);
25161: return 12;
25162: }
25163: unsigned long REGPARAM2 CPUFUNC(op_d158_0)(uae_u32 opcode) /* ADD */
25164: {
25165: uae_u32 srcreg = ((opcode >> 9) & 7);
25166: uae_u32 dstreg = opcode & 7;
25167: OpcodeFamily = 11; CurrentInstrCycles = 12;
25168: {{ uae_s16 src = m68k_dreg(regs, srcreg);
25169: { uaecptr dsta = m68k_areg(regs, dstreg);
25170: { uae_s16 dst = get_word(dsta);
25171: m68k_areg(regs, dstreg) += 2;
25172: { refill_prefetch (m68k_getpc(), 2);
25173: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
25174: { int flgs = ((uae_s16)(src)) < 0;
25175: int flgo = ((uae_s16)(dst)) < 0;
25176: int flgn = ((uae_s16)(newv)) < 0;
25177: SET_ZFLG (((uae_s16)(newv)) == 0);
25178: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
25179: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
25180: COPY_CARRY;
25181: SET_NFLG (flgn != 0);
25182: put_word(dsta,newv);
25183: }}}}}}}m68k_incpc(2);
25184: return 12;
25185: }
25186: unsigned long REGPARAM2 CPUFUNC(op_d160_0)(uae_u32 opcode) /* ADD */
25187: {
25188: uae_u32 srcreg = ((opcode >> 9) & 7);
25189: uae_u32 dstreg = opcode & 7;
25190: OpcodeFamily = 11; CurrentInstrCycles = 14;
25191: {{ uae_s16 src = m68k_dreg(regs, srcreg);
25192: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
25193: { uae_s16 dst = get_word(dsta);
25194: m68k_areg (regs, dstreg) = dsta;
25195: { refill_prefetch (m68k_getpc(), 2);
25196: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
25197: { int flgs = ((uae_s16)(src)) < 0;
25198: int flgo = ((uae_s16)(dst)) < 0;
25199: int flgn = ((uae_s16)(newv)) < 0;
25200: SET_ZFLG (((uae_s16)(newv)) == 0);
25201: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
25202: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
25203: COPY_CARRY;
25204: SET_NFLG (flgn != 0);
25205: put_word(dsta,newv);
25206: }}}}}}}m68k_incpc(2);
25207: return 14;
25208: }
25209: unsigned long REGPARAM2 CPUFUNC(op_d168_0)(uae_u32 opcode) /* ADD */
25210: {
25211: uae_u32 srcreg = ((opcode >> 9) & 7);
25212: uae_u32 dstreg = opcode & 7;
25213: OpcodeFamily = 11; CurrentInstrCycles = 16;
25214: {{ uae_s16 src = m68k_dreg(regs, srcreg);
25215: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
25216: { uae_s16 dst = get_word(dsta);
25217: { refill_prefetch (m68k_getpc(), 2);
25218: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
25219: { int flgs = ((uae_s16)(src)) < 0;
25220: int flgo = ((uae_s16)(dst)) < 0;
25221: int flgn = ((uae_s16)(newv)) < 0;
25222: SET_ZFLG (((uae_s16)(newv)) == 0);
25223: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
25224: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
25225: COPY_CARRY;
25226: SET_NFLG (flgn != 0);
25227: put_word(dsta,newv);
25228: }}}}}}}m68k_incpc(4);
25229: return 16;
25230: }
25231: unsigned long REGPARAM2 CPUFUNC(op_d170_0)(uae_u32 opcode) /* ADD */
25232: {
25233: uae_u32 srcreg = ((opcode >> 9) & 7);
25234: uae_u32 dstreg = opcode & 7;
25235: OpcodeFamily = 11; CurrentInstrCycles = 18;
25236: {{ uae_s16 src = m68k_dreg(regs, srcreg);
25237: {m68k_incpc(2);
25238: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
25239: BusCyclePenalty += 2;
25240: { uae_s16 dst = get_word(dsta);
25241: { refill_prefetch (m68k_getpc(), 2);
25242: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
25243: { int flgs = ((uae_s16)(src)) < 0;
25244: int flgo = ((uae_s16)(dst)) < 0;
25245: int flgn = ((uae_s16)(newv)) < 0;
25246: SET_ZFLG (((uae_s16)(newv)) == 0);
25247: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
25248: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
25249: COPY_CARRY;
25250: SET_NFLG (flgn != 0);
25251: put_word(dsta,newv);
25252: }}}}}}}}return 18;
25253: }
25254: unsigned long REGPARAM2 CPUFUNC(op_d178_0)(uae_u32 opcode) /* ADD */
25255: {
25256: uae_u32 srcreg = ((opcode >> 9) & 7);
25257: OpcodeFamily = 11; CurrentInstrCycles = 16;
25258: {{ uae_s16 src = m68k_dreg(regs, srcreg);
25259: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
25260: { uae_s16 dst = get_word(dsta);
25261: { refill_prefetch (m68k_getpc(), 2);
25262: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
25263: { int flgs = ((uae_s16)(src)) < 0;
25264: int flgo = ((uae_s16)(dst)) < 0;
25265: int flgn = ((uae_s16)(newv)) < 0;
25266: SET_ZFLG (((uae_s16)(newv)) == 0);
25267: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
25268: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
25269: COPY_CARRY;
25270: SET_NFLG (flgn != 0);
25271: put_word(dsta,newv);
25272: }}}}}}}m68k_incpc(4);
25273: return 16;
25274: }
25275: unsigned long REGPARAM2 CPUFUNC(op_d179_0)(uae_u32 opcode) /* ADD */
25276: {
25277: uae_u32 srcreg = ((opcode >> 9) & 7);
25278: OpcodeFamily = 11; CurrentInstrCycles = 20;
25279: {{ uae_s16 src = m68k_dreg(regs, srcreg);
25280: { uaecptr dsta = get_ilong(2);
25281: { uae_s16 dst = get_word(dsta);
25282: { refill_prefetch (m68k_getpc(), 2);
25283: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
25284: { int flgs = ((uae_s16)(src)) < 0;
25285: int flgo = ((uae_s16)(dst)) < 0;
25286: int flgn = ((uae_s16)(newv)) < 0;
25287: SET_ZFLG (((uae_s16)(newv)) == 0);
25288: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
25289: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
25290: COPY_CARRY;
25291: SET_NFLG (flgn != 0);
25292: put_word(dsta,newv);
25293: }}}}}}}m68k_incpc(6);
25294: return 20;
25295: }
25296: unsigned long REGPARAM2 CPUFUNC(op_d180_0)(uae_u32 opcode) /* ADDX */
25297: {
25298: uae_u32 srcreg = (opcode & 7);
25299: uae_u32 dstreg = (opcode >> 9) & 7;
25300: OpcodeFamily = 13; CurrentInstrCycles = 8;
25301: {{ uae_s32 src = m68k_dreg(regs, srcreg);
25302: { uae_s32 dst = m68k_dreg(regs, dstreg);
25303: { uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0);
25304: { int flgs = ((uae_s32)(src)) < 0;
25305: int flgo = ((uae_s32)(dst)) < 0;
25306: int flgn = ((uae_s32)(newv)) < 0;
25307: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
25308: SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn)));
25309: COPY_CARRY;
25310: SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
25311: SET_NFLG (((uae_s32)(newv)) < 0);
25312: m68k_dreg(regs, dstreg) = (newv);
25313: }}}}}m68k_incpc(2);
25314: return 8;
25315: }
25316: unsigned long REGPARAM2 CPUFUNC(op_d188_0)(uae_u32 opcode) /* ADDX */
25317: {
25318: uae_u32 srcreg = (opcode & 7);
25319: uae_u32 dstreg = (opcode >> 9) & 7;
25320: OpcodeFamily = 13; CurrentInstrCycles = 30;
25321: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
25322: { uae_s32 src = get_long(srca);
25323: m68k_areg (regs, srcreg) = srca;
25324: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
25325: { uae_s32 dst = get_long(dsta);
25326: m68k_areg (regs, dstreg) = dsta;
25327: { uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0);
25328: { int flgs = ((uae_s32)(src)) < 0;
25329: int flgo = ((uae_s32)(dst)) < 0;
25330: int flgn = ((uae_s32)(newv)) < 0;
25331: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
25332: SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn)));
25333: COPY_CARRY;
25334: SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
25335: SET_NFLG (((uae_s32)(newv)) < 0);
25336: put_long(dsta,newv);
25337: }}}}}}}m68k_incpc(2);
25338: return 30;
25339: }
25340: unsigned long REGPARAM2 CPUFUNC(op_d190_0)(uae_u32 opcode) /* ADD */
25341: {
25342: uae_u32 srcreg = ((opcode >> 9) & 7);
25343: uae_u32 dstreg = opcode & 7;
25344: OpcodeFamily = 11; CurrentInstrCycles = 20;
25345: {{ uae_s32 src = m68k_dreg(regs, srcreg);
25346: { uaecptr dsta = m68k_areg(regs, dstreg);
25347: { uae_s32 dst = get_long(dsta);
25348: { refill_prefetch (m68k_getpc(), 2);
25349: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
25350: { int flgs = ((uae_s32)(src)) < 0;
25351: int flgo = ((uae_s32)(dst)) < 0;
25352: int flgn = ((uae_s32)(newv)) < 0;
25353: SET_ZFLG (((uae_s32)(newv)) == 0);
25354: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
25355: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
25356: COPY_CARRY;
25357: SET_NFLG (flgn != 0);
25358: put_long(dsta,newv);
25359: }}}}}}}m68k_incpc(2);
25360: return 20;
25361: }
25362: unsigned long REGPARAM2 CPUFUNC(op_d198_0)(uae_u32 opcode) /* ADD */
25363: {
25364: uae_u32 srcreg = ((opcode >> 9) & 7);
25365: uae_u32 dstreg = opcode & 7;
25366: OpcodeFamily = 11; CurrentInstrCycles = 20;
25367: {{ uae_s32 src = m68k_dreg(regs, srcreg);
25368: { uaecptr dsta = m68k_areg(regs, dstreg);
25369: { uae_s32 dst = get_long(dsta);
25370: m68k_areg(regs, dstreg) += 4;
25371: { refill_prefetch (m68k_getpc(), 2);
25372: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
25373: { int flgs = ((uae_s32)(src)) < 0;
25374: int flgo = ((uae_s32)(dst)) < 0;
25375: int flgn = ((uae_s32)(newv)) < 0;
25376: SET_ZFLG (((uae_s32)(newv)) == 0);
25377: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
25378: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
25379: COPY_CARRY;
25380: SET_NFLG (flgn != 0);
25381: put_long(dsta,newv);
25382: }}}}}}}m68k_incpc(2);
25383: return 20;
25384: }
25385: unsigned long REGPARAM2 CPUFUNC(op_d1a0_0)(uae_u32 opcode) /* ADD */
25386: {
25387: uae_u32 srcreg = ((opcode >> 9) & 7);
25388: uae_u32 dstreg = opcode & 7;
25389: OpcodeFamily = 11; CurrentInstrCycles = 22;
25390: {{ uae_s32 src = m68k_dreg(regs, srcreg);
25391: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
25392: { uae_s32 dst = get_long(dsta);
25393: m68k_areg (regs, dstreg) = dsta;
25394: { refill_prefetch (m68k_getpc(), 2);
25395: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
25396: { int flgs = ((uae_s32)(src)) < 0;
25397: int flgo = ((uae_s32)(dst)) < 0;
25398: int flgn = ((uae_s32)(newv)) < 0;
25399: SET_ZFLG (((uae_s32)(newv)) == 0);
25400: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
25401: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
25402: COPY_CARRY;
25403: SET_NFLG (flgn != 0);
25404: put_long(dsta,newv);
25405: }}}}}}}m68k_incpc(2);
25406: return 22;
25407: }
25408: unsigned long REGPARAM2 CPUFUNC(op_d1a8_0)(uae_u32 opcode) /* ADD */
25409: {
25410: uae_u32 srcreg = ((opcode >> 9) & 7);
25411: uae_u32 dstreg = opcode & 7;
25412: OpcodeFamily = 11; CurrentInstrCycles = 24;
25413: {{ uae_s32 src = m68k_dreg(regs, srcreg);
25414: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(2);
25415: { uae_s32 dst = get_long(dsta);
25416: { refill_prefetch (m68k_getpc(), 2);
25417: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
25418: { int flgs = ((uae_s32)(src)) < 0;
25419: int flgo = ((uae_s32)(dst)) < 0;
25420: int flgn = ((uae_s32)(newv)) < 0;
25421: SET_ZFLG (((uae_s32)(newv)) == 0);
25422: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
25423: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
25424: COPY_CARRY;
25425: SET_NFLG (flgn != 0);
25426: put_long(dsta,newv);
25427: }}}}}}}m68k_incpc(4);
25428: return 24;
25429: }
25430: unsigned long REGPARAM2 CPUFUNC(op_d1b0_0)(uae_u32 opcode) /* ADD */
25431: {
25432: uae_u32 srcreg = ((opcode >> 9) & 7);
25433: uae_u32 dstreg = opcode & 7;
25434: OpcodeFamily = 11; CurrentInstrCycles = 26;
25435: {{ uae_s32 src = m68k_dreg(regs, srcreg);
25436: {m68k_incpc(2);
25437: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
25438: BusCyclePenalty += 2;
25439: { uae_s32 dst = get_long(dsta);
25440: { refill_prefetch (m68k_getpc(), 2);
25441: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
25442: { int flgs = ((uae_s32)(src)) < 0;
25443: int flgo = ((uae_s32)(dst)) < 0;
25444: int flgn = ((uae_s32)(newv)) < 0;
25445: SET_ZFLG (((uae_s32)(newv)) == 0);
25446: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
25447: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
25448: COPY_CARRY;
25449: SET_NFLG (flgn != 0);
25450: put_long(dsta,newv);
25451: }}}}}}}}return 26;
25452: }
25453: unsigned long REGPARAM2 CPUFUNC(op_d1b8_0)(uae_u32 opcode) /* ADD */
25454: {
25455: uae_u32 srcreg = ((opcode >> 9) & 7);
25456: OpcodeFamily = 11; CurrentInstrCycles = 24;
25457: {{ uae_s32 src = m68k_dreg(regs, srcreg);
25458: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(2);
25459: { uae_s32 dst = get_long(dsta);
25460: { refill_prefetch (m68k_getpc(), 2);
25461: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
25462: { int flgs = ((uae_s32)(src)) < 0;
25463: int flgo = ((uae_s32)(dst)) < 0;
25464: int flgn = ((uae_s32)(newv)) < 0;
25465: SET_ZFLG (((uae_s32)(newv)) == 0);
25466: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
25467: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
25468: COPY_CARRY;
25469: SET_NFLG (flgn != 0);
25470: put_long(dsta,newv);
25471: }}}}}}}m68k_incpc(4);
25472: return 24;
25473: }
25474: unsigned long REGPARAM2 CPUFUNC(op_d1b9_0)(uae_u32 opcode) /* ADD */
25475: {
25476: uae_u32 srcreg = ((opcode >> 9) & 7);
25477: OpcodeFamily = 11; CurrentInstrCycles = 28;
25478: {{ uae_s32 src = m68k_dreg(regs, srcreg);
25479: { uaecptr dsta = get_ilong(2);
25480: { uae_s32 dst = get_long(dsta);
25481: { refill_prefetch (m68k_getpc(), 2);
25482: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
25483: { int flgs = ((uae_s32)(src)) < 0;
25484: int flgo = ((uae_s32)(dst)) < 0;
25485: int flgn = ((uae_s32)(newv)) < 0;
25486: SET_ZFLG (((uae_s32)(newv)) == 0);
25487: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
25488: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
25489: COPY_CARRY;
25490: SET_NFLG (flgn != 0);
25491: put_long(dsta,newv);
25492: }}}}}}}m68k_incpc(6);
25493: return 28;
25494: }
25495: unsigned long REGPARAM2 CPUFUNC(op_d1c0_0)(uae_u32 opcode) /* ADDA */
25496: {
25497: uae_u32 srcreg = (opcode & 7);
25498: uae_u32 dstreg = (opcode >> 9) & 7;
25499: OpcodeFamily = 12; CurrentInstrCycles = 8;
25500: {{ uae_s32 src = m68k_dreg(regs, srcreg);
25501: { uae_s32 dst = m68k_areg(regs, dstreg);
25502: { uae_u32 newv = dst + src;
25503: m68k_areg(regs, dstreg) = (newv);
25504: }}}}m68k_incpc(2);
25505: return 8;
25506: }
25507: unsigned long REGPARAM2 CPUFUNC(op_d1c8_0)(uae_u32 opcode) /* ADDA */
25508: {
25509: uae_u32 srcreg = (opcode & 7);
25510: uae_u32 dstreg = (opcode >> 9) & 7;
25511: OpcodeFamily = 12; CurrentInstrCycles = 8;
25512: {{ uae_s32 src = m68k_areg(regs, srcreg);
25513: { uae_s32 dst = m68k_areg(regs, dstreg);
25514: { uae_u32 newv = dst + src;
25515: m68k_areg(regs, dstreg) = (newv);
25516: }}}}m68k_incpc(2);
25517: return 8;
25518: }
25519: unsigned long REGPARAM2 CPUFUNC(op_d1d0_0)(uae_u32 opcode) /* ADDA */
25520: {
25521: uae_u32 srcreg = (opcode & 7);
25522: uae_u32 dstreg = (opcode >> 9) & 7;
25523: OpcodeFamily = 12; CurrentInstrCycles = 14;
25524: {{ uaecptr srca = m68k_areg(regs, srcreg);
25525: { uae_s32 src = get_long(srca);
25526: { uae_s32 dst = m68k_areg(regs, dstreg);
25527: { uae_u32 newv = dst + src;
25528: m68k_areg(regs, dstreg) = (newv);
25529: }}}}}m68k_incpc(2);
25530: return 14;
25531: }
25532: #endif
25533:
25534: #ifdef PART_8
25535: unsigned long REGPARAM2 CPUFUNC(op_d1d8_0)(uae_u32 opcode) /* ADDA */
25536: {
25537: uae_u32 srcreg = (opcode & 7);
25538: uae_u32 dstreg = (opcode >> 9) & 7;
25539: OpcodeFamily = 12; CurrentInstrCycles = 14;
25540: {{ uaecptr srca = m68k_areg(regs, srcreg);
25541: { uae_s32 src = get_long(srca);
25542: m68k_areg(regs, srcreg) += 4;
25543: { uae_s32 dst = m68k_areg(regs, dstreg);
25544: { uae_u32 newv = dst + src;
25545: m68k_areg(regs, dstreg) = (newv);
25546: }}}}}m68k_incpc(2);
25547: return 14;
25548: }
25549: unsigned long REGPARAM2 CPUFUNC(op_d1e0_0)(uae_u32 opcode) /* ADDA */
25550: {
25551: uae_u32 srcreg = (opcode & 7);
25552: uae_u32 dstreg = (opcode >> 9) & 7;
25553: OpcodeFamily = 12; CurrentInstrCycles = 16;
25554: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
25555: { uae_s32 src = get_long(srca);
25556: m68k_areg (regs, srcreg) = srca;
25557: { uae_s32 dst = m68k_areg(regs, dstreg);
25558: { uae_u32 newv = dst + src;
25559: m68k_areg(regs, dstreg) = (newv);
25560: }}}}}m68k_incpc(2);
25561: return 16;
25562: }
25563: unsigned long REGPARAM2 CPUFUNC(op_d1e8_0)(uae_u32 opcode) /* ADDA */
25564: {
25565: uae_u32 srcreg = (opcode & 7);
25566: uae_u32 dstreg = (opcode >> 9) & 7;
25567: OpcodeFamily = 12; CurrentInstrCycles = 18;
25568: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
25569: { uae_s32 src = get_long(srca);
25570: { uae_s32 dst = m68k_areg(regs, dstreg);
25571: { uae_u32 newv = dst + src;
25572: m68k_areg(regs, dstreg) = (newv);
25573: }}}}}m68k_incpc(4);
25574: return 18;
25575: }
25576: unsigned long REGPARAM2 CPUFUNC(op_d1f0_0)(uae_u32 opcode) /* ADDA */
25577: {
25578: uae_u32 srcreg = (opcode & 7);
25579: uae_u32 dstreg = (opcode >> 9) & 7;
25580: OpcodeFamily = 12; CurrentInstrCycles = 20;
25581: {{m68k_incpc(2);
25582: { uaecptr srca = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
25583: BusCyclePenalty += 2;
25584: { uae_s32 src = get_long(srca);
25585: { uae_s32 dst = m68k_areg(regs, dstreg);
25586: { uae_u32 newv = dst + src;
25587: m68k_areg(regs, dstreg) = (newv);
25588: }}}}}}return 20;
25589: }
25590: unsigned long REGPARAM2 CPUFUNC(op_d1f8_0)(uae_u32 opcode) /* ADDA */
25591: {
25592: uae_u32 dstreg = (opcode >> 9) & 7;
25593: OpcodeFamily = 12; CurrentInstrCycles = 18;
25594: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
25595: { uae_s32 src = get_long(srca);
25596: { uae_s32 dst = m68k_areg(regs, dstreg);
25597: { uae_u32 newv = dst + src;
25598: m68k_areg(regs, dstreg) = (newv);
25599: }}}}}m68k_incpc(4);
25600: return 18;
25601: }
25602: unsigned long REGPARAM2 CPUFUNC(op_d1f9_0)(uae_u32 opcode) /* ADDA */
25603: {
25604: uae_u32 dstreg = (opcode >> 9) & 7;
25605: OpcodeFamily = 12; CurrentInstrCycles = 22;
25606: {{ uaecptr srca = get_ilong(2);
25607: { uae_s32 src = get_long(srca);
25608: { uae_s32 dst = m68k_areg(regs, dstreg);
25609: { uae_u32 newv = dst + src;
25610: m68k_areg(regs, dstreg) = (newv);
25611: }}}}}m68k_incpc(6);
25612: return 22;
25613: }
25614: unsigned long REGPARAM2 CPUFUNC(op_d1fa_0)(uae_u32 opcode) /* ADDA */
25615: {
25616: uae_u32 dstreg = (opcode >> 9) & 7;
25617: OpcodeFamily = 12; CurrentInstrCycles = 18;
25618: {{ uaecptr srca = m68k_getpc () + 2;
25619: srca += (uae_s32)(uae_s16)get_iword(2);
25620: { uae_s32 src = get_long(srca);
25621: { uae_s32 dst = m68k_areg(regs, dstreg);
25622: { uae_u32 newv = dst + src;
25623: m68k_areg(regs, dstreg) = (newv);
25624: }}}}}m68k_incpc(4);
25625: return 18;
25626: }
25627: unsigned long REGPARAM2 CPUFUNC(op_d1fb_0)(uae_u32 opcode) /* ADDA */
25628: {
25629: uae_u32 dstreg = (opcode >> 9) & 7;
25630: OpcodeFamily = 12; CurrentInstrCycles = 20;
25631: {{m68k_incpc(2);
25632: { uaecptr tmppc = m68k_getpc();
25633: uaecptr srca = get_disp_ea_020(tmppc, next_iword());
25634: BusCyclePenalty += 2;
25635: { uae_s32 src = get_long(srca);
25636: { uae_s32 dst = m68k_areg(regs, dstreg);
25637: { uae_u32 newv = dst + src;
25638: m68k_areg(regs, dstreg) = (newv);
25639: }}}}}}return 20;
25640: }
25641: unsigned long REGPARAM2 CPUFUNC(op_d1fc_0)(uae_u32 opcode) /* ADDA */
25642: {
25643: uae_u32 dstreg = (opcode >> 9) & 7;
25644: OpcodeFamily = 12; CurrentInstrCycles = 16;
25645: {{ uae_s32 src = get_ilong(2);
25646: { uae_s32 dst = m68k_areg(regs, dstreg);
25647: { uae_u32 newv = dst + src;
25648: m68k_areg(regs, dstreg) = (newv);
25649: }}}}m68k_incpc(6);
25650: return 16;
25651: }
25652: unsigned long REGPARAM2 CPUFUNC(op_e000_0)(uae_u32 opcode) /* ASR */
25653: {
25654: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
25655: uae_u32 dstreg = opcode & 7;
25656: unsigned int retcycles = 0;
25657: OpcodeFamily = 64; CurrentInstrCycles = 4;
25658: {{ uae_u32 cnt = srcreg;
25659: { uae_s8 data = m68k_dreg(regs, dstreg);
25660: { uae_u32 val = (uae_u8)data;
25661: uae_u32 sign = (0x80 & val) >> 7;
25662: cnt &= 63;
25663: retcycles = cnt;
25664: CLEAR_CZNV;
25665: if (cnt >= 8) {
25666: val = 0xff & (uae_u32)-sign;
25667: SET_CFLG (sign);
25668: COPY_CARRY;
25669: } else {
25670: val >>= cnt - 1;
25671: SET_CFLG (val & 1);
25672: COPY_CARRY;
25673: val >>= 1;
25674: val |= (0xff << (8 - cnt)) & (uae_u32)-sign;
25675: val &= 0xff;
25676: }
25677: SET_ZFLG (((uae_s8)(val)) == 0);
25678: SET_NFLG (((uae_s8)(val)) < 0);
25679: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
25680: }}}}m68k_incpc(2);
25681: return (6+retcycles*2);
25682: }
25683: unsigned long REGPARAM2 CPUFUNC(op_e008_0)(uae_u32 opcode) /* LSR */
25684: {
25685: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
25686: uae_u32 dstreg = opcode & 7;
25687: unsigned int retcycles = 0;
25688: OpcodeFamily = 66; CurrentInstrCycles = 4;
25689: {{ uae_u32 cnt = srcreg;
25690: { uae_s8 data = m68k_dreg(regs, dstreg);
25691: { uae_u32 val = (uae_u8)data;
25692: cnt &= 63;
25693: retcycles = cnt;
25694: CLEAR_CZNV;
25695: if (cnt >= 8) {
25696: SET_CFLG ((cnt == 8) & (val >> 7));
25697: COPY_CARRY;
25698: val = 0;
25699: } else {
25700: val >>= cnt - 1;
25701: SET_CFLG (val & 1);
25702: COPY_CARRY;
25703: val >>= 1;
25704: }
25705: SET_ZFLG (((uae_s8)(val)) == 0);
25706: SET_NFLG (((uae_s8)(val)) < 0);
25707: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
25708: }}}}m68k_incpc(2);
25709: return (6+retcycles*2);
25710: }
25711: unsigned long REGPARAM2 CPUFUNC(op_e010_0)(uae_u32 opcode) /* ROXR */
25712: {
25713: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
25714: uae_u32 dstreg = opcode & 7;
25715: unsigned int retcycles = 0;
25716: OpcodeFamily = 71; CurrentInstrCycles = 4;
25717: {{ uae_u32 cnt = srcreg;
25718: { uae_s8 data = m68k_dreg(regs, dstreg);
25719: { uae_u32 val = (uae_u8)data;
25720: cnt &= 63;
25721: retcycles = cnt;
25722: CLEAR_CZNV;
25723: { cnt--;
25724: {
25725: uae_u32 carry;
25726: uae_u32 hival = (val << 1) | GET_XFLG;
25727: hival <<= (7 - cnt);
25728: val >>= cnt;
25729: carry = val & 1;
25730: val >>= 1;
25731: val |= hival;
25732: SET_XFLG (carry);
25733: val &= 0xff;
25734: } }
25735: SET_CFLG (GET_XFLG);
25736: SET_ZFLG (((uae_s8)(val)) == 0);
25737: SET_NFLG (((uae_s8)(val)) < 0);
25738: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
25739: }}}}m68k_incpc(2);
25740: return (6+retcycles*2);
25741: }
25742: unsigned long REGPARAM2 CPUFUNC(op_e018_0)(uae_u32 opcode) /* ROR */
25743: {
25744: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
25745: uae_u32 dstreg = opcode & 7;
25746: unsigned int retcycles = 0;
25747: OpcodeFamily = 69; CurrentInstrCycles = 4;
25748: {{ uae_u32 cnt = srcreg;
25749: { uae_s8 data = m68k_dreg(regs, dstreg);
25750: { uae_u32 val = (uae_u8)data;
25751: cnt &= 63;
25752: retcycles = cnt;
25753: CLEAR_CZNV;
25754: { uae_u32 hival;
25755: cnt &= 7;
25756: hival = val << (8 - cnt);
25757: val >>= cnt;
25758: val |= hival;
25759: val &= 0xff;
25760: SET_CFLG ((val & 0x80) >> 7);
25761: }
25762: SET_ZFLG (((uae_s8)(val)) == 0);
25763: SET_NFLG (((uae_s8)(val)) < 0);
25764: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
25765: }}}}m68k_incpc(2);
25766: return (6+retcycles*2);
25767: }
25768: unsigned long REGPARAM2 CPUFUNC(op_e020_0)(uae_u32 opcode) /* ASR */
25769: {
25770: uae_u32 srcreg = ((opcode >> 9) & 7);
25771: uae_u32 dstreg = opcode & 7;
25772: unsigned int retcycles = 0;
25773: OpcodeFamily = 64; CurrentInstrCycles = 4;
25774: {{ uae_s8 cnt = m68k_dreg(regs, srcreg);
25775: { uae_s8 data = m68k_dreg(regs, dstreg);
25776: { uae_u32 val = (uae_u8)data;
25777: uae_u32 sign = (0x80 & val) >> 7;
25778: cnt &= 63;
25779: retcycles = cnt;
25780: CLEAR_CZNV;
25781: if (cnt >= 8) {
25782: val = 0xff & (uae_u32)-sign;
25783: SET_CFLG (sign);
25784: COPY_CARRY;
25785: } else if (cnt > 0) {
25786: val >>= cnt - 1;
25787: SET_CFLG (val & 1);
25788: COPY_CARRY;
25789: val >>= 1;
25790: val |= (0xff << (8 - cnt)) & (uae_u32)-sign;
25791: val &= 0xff;
25792: }
25793: SET_ZFLG (((uae_s8)(val)) == 0);
25794: SET_NFLG (((uae_s8)(val)) < 0);
25795: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
25796: }}}}m68k_incpc(2);
25797: return (6+retcycles*2);
25798: }
25799: unsigned long REGPARAM2 CPUFUNC(op_e028_0)(uae_u32 opcode) /* LSR */
25800: {
25801: uae_u32 srcreg = ((opcode >> 9) & 7);
25802: uae_u32 dstreg = opcode & 7;
25803: unsigned int retcycles = 0;
25804: OpcodeFamily = 66; CurrentInstrCycles = 4;
25805: {{ uae_s8 cnt = m68k_dreg(regs, srcreg);
25806: { uae_s8 data = m68k_dreg(regs, dstreg);
25807: { uae_u32 val = (uae_u8)data;
25808: cnt &= 63;
25809: retcycles = cnt;
25810: CLEAR_CZNV;
25811: if (cnt >= 8) {
25812: SET_CFLG ((cnt == 8) & (val >> 7));
25813: COPY_CARRY;
25814: val = 0;
25815: } else if (cnt > 0) {
25816: val >>= cnt - 1;
25817: SET_CFLG (val & 1);
25818: COPY_CARRY;
25819: val >>= 1;
25820: }
25821: SET_ZFLG (((uae_s8)(val)) == 0);
25822: SET_NFLG (((uae_s8)(val)) < 0);
25823: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
25824: }}}}m68k_incpc(2);
25825: return (6+retcycles*2);
25826: }
25827: unsigned long REGPARAM2 CPUFUNC(op_e030_0)(uae_u32 opcode) /* ROXR */
25828: {
25829: uae_u32 srcreg = ((opcode >> 9) & 7);
25830: uae_u32 dstreg = opcode & 7;
25831: unsigned int retcycles = 0;
25832: OpcodeFamily = 71; CurrentInstrCycles = 4;
25833: {{ uae_s8 cnt = m68k_dreg(regs, srcreg);
25834: { uae_s8 data = m68k_dreg(regs, dstreg);
25835: { uae_u32 val = (uae_u8)data;
25836: cnt &= 63;
25837: retcycles = cnt;
25838: CLEAR_CZNV;
25839: if (cnt >= 36) cnt -= 36;
25840: if (cnt >= 18) cnt -= 18;
25841: if (cnt >= 9) cnt -= 9;
25842: if (cnt > 0) {
25843: cnt--;
25844: {
25845: uae_u32 carry;
25846: uae_u32 hival = (val << 1) | GET_XFLG;
25847: hival <<= (7 - cnt);
25848: val >>= cnt;
25849: carry = val & 1;
25850: val >>= 1;
25851: val |= hival;
25852: SET_XFLG (carry);
25853: val &= 0xff;
25854: } }
25855: SET_CFLG (GET_XFLG);
25856: SET_ZFLG (((uae_s8)(val)) == 0);
25857: SET_NFLG (((uae_s8)(val)) < 0);
25858: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
25859: }}}}m68k_incpc(2);
25860: return (6+retcycles*2);
25861: }
25862: unsigned long REGPARAM2 CPUFUNC(op_e038_0)(uae_u32 opcode) /* ROR */
25863: {
25864: uae_u32 srcreg = ((opcode >> 9) & 7);
25865: uae_u32 dstreg = opcode & 7;
25866: unsigned int retcycles = 0;
25867: OpcodeFamily = 69; CurrentInstrCycles = 4;
25868: {{ uae_s8 cnt = m68k_dreg(regs, srcreg);
25869: { uae_s8 data = m68k_dreg(regs, dstreg);
25870: { uae_u32 val = (uae_u8)data;
25871: cnt &= 63;
25872: retcycles = cnt;
25873: CLEAR_CZNV;
25874: if (cnt > 0) { uae_u32 hival;
25875: cnt &= 7;
25876: hival = val << (8 - cnt);
25877: val >>= cnt;
25878: val |= hival;
25879: val &= 0xff;
25880: SET_CFLG ((val & 0x80) >> 7);
25881: }
25882: SET_ZFLG (((uae_s8)(val)) == 0);
25883: SET_NFLG (((uae_s8)(val)) < 0);
25884: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
25885: }}}}m68k_incpc(2);
25886: return (6+retcycles*2);
25887: }
25888: unsigned long REGPARAM2 CPUFUNC(op_e040_0)(uae_u32 opcode) /* ASR */
25889: {
25890: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
25891: uae_u32 dstreg = opcode & 7;
25892: unsigned int retcycles = 0;
25893: OpcodeFamily = 64; CurrentInstrCycles = 4;
25894: {{ uae_u32 cnt = srcreg;
25895: { uae_s16 data = m68k_dreg(regs, dstreg);
25896: { uae_u32 val = (uae_u16)data;
25897: uae_u32 sign = (0x8000 & val) >> 15;
25898: cnt &= 63;
25899: retcycles = cnt;
25900: CLEAR_CZNV;
25901: if (cnt >= 16) {
25902: val = 0xffff & (uae_u32)-sign;
25903: SET_CFLG (sign);
25904: COPY_CARRY;
25905: } else {
25906: val >>= cnt - 1;
25907: SET_CFLG (val & 1);
25908: COPY_CARRY;
25909: val >>= 1;
25910: val |= (0xffff << (16 - cnt)) & (uae_u32)-sign;
25911: val &= 0xffff;
25912: }
25913: SET_ZFLG (((uae_s16)(val)) == 0);
25914: SET_NFLG (((uae_s16)(val)) < 0);
25915: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
25916: }}}}m68k_incpc(2);
25917: return (6+retcycles*2);
25918: }
25919: unsigned long REGPARAM2 CPUFUNC(op_e048_0)(uae_u32 opcode) /* LSR */
25920: {
25921: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
25922: uae_u32 dstreg = opcode & 7;
25923: unsigned int retcycles = 0;
25924: OpcodeFamily = 66; CurrentInstrCycles = 4;
25925: {{ uae_u32 cnt = srcreg;
25926: { uae_s16 data = m68k_dreg(regs, dstreg);
25927: { uae_u32 val = (uae_u16)data;
25928: cnt &= 63;
25929: retcycles = cnt;
25930: CLEAR_CZNV;
25931: if (cnt >= 16) {
25932: SET_CFLG ((cnt == 16) & (val >> 15));
25933: COPY_CARRY;
25934: val = 0;
25935: } else {
25936: val >>= cnt - 1;
25937: SET_CFLG (val & 1);
25938: COPY_CARRY;
25939: val >>= 1;
25940: }
25941: SET_ZFLG (((uae_s16)(val)) == 0);
25942: SET_NFLG (((uae_s16)(val)) < 0);
25943: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
25944: }}}}m68k_incpc(2);
25945: return (6+retcycles*2);
25946: }
25947: unsigned long REGPARAM2 CPUFUNC(op_e050_0)(uae_u32 opcode) /* ROXR */
25948: {
25949: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
25950: uae_u32 dstreg = opcode & 7;
25951: unsigned int retcycles = 0;
25952: OpcodeFamily = 71; CurrentInstrCycles = 4;
25953: {{ uae_u32 cnt = srcreg;
25954: { uae_s16 data = m68k_dreg(regs, dstreg);
25955: { uae_u32 val = (uae_u16)data;
25956: cnt &= 63;
25957: retcycles = cnt;
25958: CLEAR_CZNV;
25959: { cnt--;
25960: {
25961: uae_u32 carry;
25962: uae_u32 hival = (val << 1) | GET_XFLG;
25963: hival <<= (15 - cnt);
25964: val >>= cnt;
25965: carry = val & 1;
25966: val >>= 1;
25967: val |= hival;
25968: SET_XFLG (carry);
25969: val &= 0xffff;
25970: } }
25971: SET_CFLG (GET_XFLG);
25972: SET_ZFLG (((uae_s16)(val)) == 0);
25973: SET_NFLG (((uae_s16)(val)) < 0);
25974: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
25975: }}}}m68k_incpc(2);
25976: return (6+retcycles*2);
25977: }
25978: unsigned long REGPARAM2 CPUFUNC(op_e058_0)(uae_u32 opcode) /* ROR */
25979: {
25980: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
25981: uae_u32 dstreg = opcode & 7;
25982: unsigned int retcycles = 0;
25983: OpcodeFamily = 69; CurrentInstrCycles = 4;
25984: {{ uae_u32 cnt = srcreg;
25985: { uae_s16 data = m68k_dreg(regs, dstreg);
25986: { uae_u32 val = (uae_u16)data;
25987: cnt &= 63;
25988: retcycles = cnt;
25989: CLEAR_CZNV;
25990: { uae_u32 hival;
25991: cnt &= 15;
25992: hival = val << (16 - cnt);
25993: val >>= cnt;
25994: val |= hival;
25995: val &= 0xffff;
25996: SET_CFLG ((val & 0x8000) >> 15);
25997: }
25998: SET_ZFLG (((uae_s16)(val)) == 0);
25999: SET_NFLG (((uae_s16)(val)) < 0);
26000: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
26001: }}}}m68k_incpc(2);
26002: return (6+retcycles*2);
26003: }
26004: unsigned long REGPARAM2 CPUFUNC(op_e060_0)(uae_u32 opcode) /* ASR */
26005: {
26006: uae_u32 srcreg = ((opcode >> 9) & 7);
26007: uae_u32 dstreg = opcode & 7;
26008: unsigned int retcycles = 0;
26009: OpcodeFamily = 64; CurrentInstrCycles = 4;
26010: {{ uae_s16 cnt = m68k_dreg(regs, srcreg);
26011: { uae_s16 data = m68k_dreg(regs, dstreg);
26012: { uae_u32 val = (uae_u16)data;
26013: uae_u32 sign = (0x8000 & val) >> 15;
26014: cnt &= 63;
26015: retcycles = cnt;
26016: CLEAR_CZNV;
26017: if (cnt >= 16) {
26018: val = 0xffff & (uae_u32)-sign;
26019: SET_CFLG (sign);
26020: COPY_CARRY;
26021: } else if (cnt > 0) {
26022: val >>= cnt - 1;
26023: SET_CFLG (val & 1);
26024: COPY_CARRY;
26025: val >>= 1;
26026: val |= (0xffff << (16 - cnt)) & (uae_u32)-sign;
26027: val &= 0xffff;
26028: }
26029: SET_ZFLG (((uae_s16)(val)) == 0);
26030: SET_NFLG (((uae_s16)(val)) < 0);
26031: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
26032: }}}}m68k_incpc(2);
26033: return (6+retcycles*2);
26034: }
26035: unsigned long REGPARAM2 CPUFUNC(op_e068_0)(uae_u32 opcode) /* LSR */
26036: {
26037: uae_u32 srcreg = ((opcode >> 9) & 7);
26038: uae_u32 dstreg = opcode & 7;
26039: unsigned int retcycles = 0;
26040: OpcodeFamily = 66; CurrentInstrCycles = 4;
26041: {{ uae_s16 cnt = m68k_dreg(regs, srcreg);
26042: { uae_s16 data = m68k_dreg(regs, dstreg);
26043: { uae_u32 val = (uae_u16)data;
26044: cnt &= 63;
26045: retcycles = cnt;
26046: CLEAR_CZNV;
26047: if (cnt >= 16) {
26048: SET_CFLG ((cnt == 16) & (val >> 15));
26049: COPY_CARRY;
26050: val = 0;
26051: } else if (cnt > 0) {
26052: val >>= cnt - 1;
26053: SET_CFLG (val & 1);
26054: COPY_CARRY;
26055: val >>= 1;
26056: }
26057: SET_ZFLG (((uae_s16)(val)) == 0);
26058: SET_NFLG (((uae_s16)(val)) < 0);
26059: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
26060: }}}}m68k_incpc(2);
26061: return (6+retcycles*2);
26062: }
26063: unsigned long REGPARAM2 CPUFUNC(op_e070_0)(uae_u32 opcode) /* ROXR */
26064: {
26065: uae_u32 srcreg = ((opcode >> 9) & 7);
26066: uae_u32 dstreg = opcode & 7;
26067: unsigned int retcycles = 0;
26068: OpcodeFamily = 71; CurrentInstrCycles = 4;
26069: {{ uae_s16 cnt = m68k_dreg(regs, srcreg);
26070: { uae_s16 data = m68k_dreg(regs, dstreg);
26071: { uae_u32 val = (uae_u16)data;
26072: cnt &= 63;
26073: retcycles = cnt;
26074: CLEAR_CZNV;
26075: if (cnt >= 34) cnt -= 34;
26076: if (cnt >= 17) cnt -= 17;
26077: if (cnt > 0) {
26078: cnt--;
26079: {
26080: uae_u32 carry;
26081: uae_u32 hival = (val << 1) | GET_XFLG;
26082: hival <<= (15 - cnt);
26083: val >>= cnt;
26084: carry = val & 1;
26085: val >>= 1;
26086: val |= hival;
26087: SET_XFLG (carry);
26088: val &= 0xffff;
26089: } }
26090: SET_CFLG (GET_XFLG);
26091: SET_ZFLG (((uae_s16)(val)) == 0);
26092: SET_NFLG (((uae_s16)(val)) < 0);
26093: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
26094: }}}}m68k_incpc(2);
26095: return (6+retcycles*2);
26096: }
26097: unsigned long REGPARAM2 CPUFUNC(op_e078_0)(uae_u32 opcode) /* ROR */
26098: {
26099: uae_u32 srcreg = ((opcode >> 9) & 7);
26100: uae_u32 dstreg = opcode & 7;
26101: unsigned int retcycles = 0;
26102: OpcodeFamily = 69; CurrentInstrCycles = 4;
26103: {{ uae_s16 cnt = m68k_dreg(regs, srcreg);
26104: { uae_s16 data = m68k_dreg(regs, dstreg);
26105: { uae_u32 val = (uae_u16)data;
26106: cnt &= 63;
26107: retcycles = cnt;
26108: CLEAR_CZNV;
26109: if (cnt > 0) { uae_u32 hival;
26110: cnt &= 15;
26111: hival = val << (16 - cnt);
26112: val >>= cnt;
26113: val |= hival;
26114: val &= 0xffff;
26115: SET_CFLG ((val & 0x8000) >> 15);
26116: }
26117: SET_ZFLG (((uae_s16)(val)) == 0);
26118: SET_NFLG (((uae_s16)(val)) < 0);
26119: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
26120: }}}}m68k_incpc(2);
26121: return (6+retcycles*2);
26122: }
26123: unsigned long REGPARAM2 CPUFUNC(op_e080_0)(uae_u32 opcode) /* ASR */
26124: {
26125: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
26126: uae_u32 dstreg = opcode & 7;
26127: unsigned int retcycles = 0;
26128: OpcodeFamily = 64; CurrentInstrCycles = 4;
26129: {{ uae_u32 cnt = srcreg;
26130: { uae_s32 data = m68k_dreg(regs, dstreg);
26131: { uae_u32 val = data;
26132: uae_u32 sign = (0x80000000 & val) >> 31;
26133: cnt &= 63;
26134: retcycles = cnt;
26135: CLEAR_CZNV;
26136: if (cnt >= 32) {
26137: val = 0xffffffff & (uae_u32)-sign;
26138: SET_CFLG (sign);
26139: COPY_CARRY;
26140: } else {
26141: val >>= cnt - 1;
26142: SET_CFLG (val & 1);
26143: COPY_CARRY;
26144: val >>= 1;
26145: val |= (0xffffffff << (32 - cnt)) & (uae_u32)-sign;
26146: val &= 0xffffffff;
26147: }
26148: SET_ZFLG (((uae_s32)(val)) == 0);
26149: SET_NFLG (((uae_s32)(val)) < 0);
26150: m68k_dreg(regs, dstreg) = (val);
26151: }}}}m68k_incpc(2);
26152: return (8+retcycles*2);
26153: }
26154: unsigned long REGPARAM2 CPUFUNC(op_e088_0)(uae_u32 opcode) /* LSR */
26155: {
26156: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
26157: uae_u32 dstreg = opcode & 7;
26158: unsigned int retcycles = 0;
26159: OpcodeFamily = 66; CurrentInstrCycles = 4;
26160: {{ uae_u32 cnt = srcreg;
26161: { uae_s32 data = m68k_dreg(regs, dstreg);
26162: { uae_u32 val = data;
26163: cnt &= 63;
26164: retcycles = cnt;
26165: CLEAR_CZNV;
26166: if (cnt >= 32) {
26167: SET_CFLG ((cnt == 32) & (val >> 31));
26168: COPY_CARRY;
26169: val = 0;
26170: } else {
26171: val >>= cnt - 1;
26172: SET_CFLG (val & 1);
26173: COPY_CARRY;
26174: val >>= 1;
26175: }
26176: SET_ZFLG (((uae_s32)(val)) == 0);
26177: SET_NFLG (((uae_s32)(val)) < 0);
26178: m68k_dreg(regs, dstreg) = (val);
26179: }}}}m68k_incpc(2);
26180: return (8+retcycles*2);
26181: }
26182: unsigned long REGPARAM2 CPUFUNC(op_e090_0)(uae_u32 opcode) /* ROXR */
26183: {
26184: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
26185: uae_u32 dstreg = opcode & 7;
26186: unsigned int retcycles = 0;
26187: OpcodeFamily = 71; CurrentInstrCycles = 4;
26188: {{ uae_u32 cnt = srcreg;
26189: { uae_s32 data = m68k_dreg(regs, dstreg);
26190: { uae_u32 val = data;
26191: cnt &= 63;
26192: retcycles = cnt;
26193: CLEAR_CZNV;
26194: { cnt--;
26195: {
26196: uae_u32 carry;
26197: uae_u32 hival = (val << 1) | GET_XFLG;
26198: hival <<= (31 - cnt);
26199: val >>= cnt;
26200: carry = val & 1;
26201: val >>= 1;
26202: val |= hival;
26203: SET_XFLG (carry);
26204: val &= 0xffffffff;
26205: } }
26206: SET_CFLG (GET_XFLG);
26207: SET_ZFLG (((uae_s32)(val)) == 0);
26208: SET_NFLG (((uae_s32)(val)) < 0);
26209: m68k_dreg(regs, dstreg) = (val);
26210: }}}}m68k_incpc(2);
26211: return (8+retcycles*2);
26212: }
26213: unsigned long REGPARAM2 CPUFUNC(op_e098_0)(uae_u32 opcode) /* ROR */
26214: {
26215: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
26216: uae_u32 dstreg = opcode & 7;
26217: unsigned int retcycles = 0;
26218: OpcodeFamily = 69; CurrentInstrCycles = 4;
26219: {{ uae_u32 cnt = srcreg;
26220: { uae_s32 data = m68k_dreg(regs, dstreg);
26221: { uae_u32 val = data;
26222: cnt &= 63;
26223: retcycles = cnt;
26224: CLEAR_CZNV;
26225: { uae_u32 hival;
26226: cnt &= 31;
26227: hival = val << (32 - cnt);
26228: val >>= cnt;
26229: val |= hival;
26230: val &= 0xffffffff;
26231: SET_CFLG ((val & 0x80000000) >> 31);
26232: }
26233: SET_ZFLG (((uae_s32)(val)) == 0);
26234: SET_NFLG (((uae_s32)(val)) < 0);
26235: m68k_dreg(regs, dstreg) = (val);
26236: }}}}m68k_incpc(2);
26237: return (8+retcycles*2);
26238: }
26239: unsigned long REGPARAM2 CPUFUNC(op_e0a0_0)(uae_u32 opcode) /* ASR */
26240: {
26241: uae_u32 srcreg = ((opcode >> 9) & 7);
26242: uae_u32 dstreg = opcode & 7;
26243: unsigned int retcycles = 0;
26244: OpcodeFamily = 64; CurrentInstrCycles = 4;
26245: {{ uae_s32 cnt = m68k_dreg(regs, srcreg);
26246: { uae_s32 data = m68k_dreg(regs, dstreg);
26247: { uae_u32 val = data;
26248: uae_u32 sign = (0x80000000 & val) >> 31;
26249: cnt &= 63;
26250: retcycles = cnt;
26251: CLEAR_CZNV;
26252: if (cnt >= 32) {
26253: val = 0xffffffff & (uae_u32)-sign;
26254: SET_CFLG (sign);
26255: COPY_CARRY;
26256: } else if (cnt > 0) {
26257: val >>= cnt - 1;
26258: SET_CFLG (val & 1);
26259: COPY_CARRY;
26260: val >>= 1;
26261: val |= (0xffffffff << (32 - cnt)) & (uae_u32)-sign;
26262: val &= 0xffffffff;
26263: }
26264: SET_ZFLG (((uae_s32)(val)) == 0);
26265: SET_NFLG (((uae_s32)(val)) < 0);
26266: m68k_dreg(regs, dstreg) = (val);
26267: }}}}m68k_incpc(2);
26268: return (8+retcycles*2);
26269: }
26270: unsigned long REGPARAM2 CPUFUNC(op_e0a8_0)(uae_u32 opcode) /* LSR */
26271: {
26272: uae_u32 srcreg = ((opcode >> 9) & 7);
26273: uae_u32 dstreg = opcode & 7;
26274: unsigned int retcycles = 0;
26275: OpcodeFamily = 66; CurrentInstrCycles = 4;
26276: {{ uae_s32 cnt = m68k_dreg(regs, srcreg);
26277: { uae_s32 data = m68k_dreg(regs, dstreg);
26278: { uae_u32 val = data;
26279: cnt &= 63;
26280: retcycles = cnt;
26281: CLEAR_CZNV;
26282: if (cnt >= 32) {
26283: SET_CFLG ((cnt == 32) & (val >> 31));
26284: COPY_CARRY;
26285: val = 0;
26286: } else if (cnt > 0) {
26287: val >>= cnt - 1;
26288: SET_CFLG (val & 1);
26289: COPY_CARRY;
26290: val >>= 1;
26291: }
26292: SET_ZFLG (((uae_s32)(val)) == 0);
26293: SET_NFLG (((uae_s32)(val)) < 0);
26294: m68k_dreg(regs, dstreg) = (val);
26295: }}}}m68k_incpc(2);
26296: return (8+retcycles*2);
26297: }
26298: unsigned long REGPARAM2 CPUFUNC(op_e0b0_0)(uae_u32 opcode) /* ROXR */
26299: {
26300: uae_u32 srcreg = ((opcode >> 9) & 7);
26301: uae_u32 dstreg = opcode & 7;
26302: unsigned int retcycles = 0;
26303: OpcodeFamily = 71; CurrentInstrCycles = 4;
26304: {{ uae_s32 cnt = m68k_dreg(regs, srcreg);
26305: { uae_s32 data = m68k_dreg(regs, dstreg);
26306: { uae_u32 val = data;
26307: cnt &= 63;
26308: retcycles = cnt;
26309: CLEAR_CZNV;
26310: if (cnt >= 33) cnt -= 33;
26311: if (cnt > 0) {
26312: cnt--;
26313: {
26314: uae_u32 carry;
26315: uae_u32 hival = (val << 1) | GET_XFLG;
26316: hival <<= (31 - cnt);
26317: val >>= cnt;
26318: carry = val & 1;
26319: val >>= 1;
26320: val |= hival;
26321: SET_XFLG (carry);
26322: val &= 0xffffffff;
26323: } }
26324: SET_CFLG (GET_XFLG);
26325: SET_ZFLG (((uae_s32)(val)) == 0);
26326: SET_NFLG (((uae_s32)(val)) < 0);
26327: m68k_dreg(regs, dstreg) = (val);
26328: }}}}m68k_incpc(2);
26329: return (8+retcycles*2);
26330: }
26331: unsigned long REGPARAM2 CPUFUNC(op_e0b8_0)(uae_u32 opcode) /* ROR */
26332: {
26333: uae_u32 srcreg = ((opcode >> 9) & 7);
26334: uae_u32 dstreg = opcode & 7;
26335: unsigned int retcycles = 0;
26336: OpcodeFamily = 69; CurrentInstrCycles = 4;
26337: {{ uae_s32 cnt = m68k_dreg(regs, srcreg);
26338: { uae_s32 data = m68k_dreg(regs, dstreg);
26339: { uae_u32 val = data;
26340: cnt &= 63;
26341: retcycles = cnt;
26342: CLEAR_CZNV;
26343: if (cnt > 0) { uae_u32 hival;
26344: cnt &= 31;
26345: hival = val << (32 - cnt);
26346: val >>= cnt;
26347: val |= hival;
26348: val &= 0xffffffff;
26349: SET_CFLG ((val & 0x80000000) >> 31);
26350: }
26351: SET_ZFLG (((uae_s32)(val)) == 0);
26352: SET_NFLG (((uae_s32)(val)) < 0);
26353: m68k_dreg(regs, dstreg) = (val);
26354: }}}}m68k_incpc(2);
26355: return (8+retcycles*2);
26356: }
26357: unsigned long REGPARAM2 CPUFUNC(op_e0d0_0)(uae_u32 opcode) /* ASRW */
26358: {
26359: uae_u32 srcreg = (opcode & 7);
26360: OpcodeFamily = 72; CurrentInstrCycles = 12;
26361: {{ uaecptr dataa = m68k_areg(regs, srcreg);
26362: { uae_s16 data = get_word(dataa);
26363: { uae_u32 val = (uae_u16)data;
26364: uae_u32 sign = 0x8000 & val;
26365: uae_u32 cflg = val & 1;
26366: val = (val >> 1) | sign;
26367: CLEAR_CZNV;
26368: SET_ZFLG (((uae_s16)(val)) == 0);
26369: SET_NFLG (((uae_s16)(val)) < 0);
26370: SET_CFLG (cflg);
26371: COPY_CARRY;
26372: put_word(dataa,val);
26373: }}}}m68k_incpc(2);
26374: return 12;
26375: }
26376: unsigned long REGPARAM2 CPUFUNC(op_e0d8_0)(uae_u32 opcode) /* ASRW */
26377: {
26378: uae_u32 srcreg = (opcode & 7);
26379: OpcodeFamily = 72; CurrentInstrCycles = 12;
26380: {{ uaecptr dataa = m68k_areg(regs, srcreg);
26381: { uae_s16 data = get_word(dataa);
26382: m68k_areg(regs, srcreg) += 2;
26383: { uae_u32 val = (uae_u16)data;
26384: uae_u32 sign = 0x8000 & val;
26385: uae_u32 cflg = val & 1;
26386: val = (val >> 1) | sign;
26387: CLEAR_CZNV;
26388: SET_ZFLG (((uae_s16)(val)) == 0);
26389: SET_NFLG (((uae_s16)(val)) < 0);
26390: SET_CFLG (cflg);
26391: COPY_CARRY;
26392: put_word(dataa,val);
26393: }}}}m68k_incpc(2);
26394: return 12;
26395: }
26396: unsigned long REGPARAM2 CPUFUNC(op_e0e0_0)(uae_u32 opcode) /* ASRW */
26397: {
26398: uae_u32 srcreg = (opcode & 7);
26399: OpcodeFamily = 72; CurrentInstrCycles = 14;
26400: {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2;
26401: { uae_s16 data = get_word(dataa);
26402: m68k_areg (regs, srcreg) = dataa;
26403: { uae_u32 val = (uae_u16)data;
26404: uae_u32 sign = 0x8000 & val;
26405: uae_u32 cflg = val & 1;
26406: val = (val >> 1) | sign;
26407: CLEAR_CZNV;
26408: SET_ZFLG (((uae_s16)(val)) == 0);
26409: SET_NFLG (((uae_s16)(val)) < 0);
26410: SET_CFLG (cflg);
26411: COPY_CARRY;
26412: put_word(dataa,val);
26413: }}}}m68k_incpc(2);
26414: return 14;
26415: }
26416: unsigned long REGPARAM2 CPUFUNC(op_e0e8_0)(uae_u32 opcode) /* ASRW */
26417: {
26418: uae_u32 srcreg = (opcode & 7);
26419: OpcodeFamily = 72; CurrentInstrCycles = 16;
26420: {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
26421: { uae_s16 data = get_word(dataa);
26422: { uae_u32 val = (uae_u16)data;
26423: uae_u32 sign = 0x8000 & val;
26424: uae_u32 cflg = val & 1;
26425: val = (val >> 1) | sign;
26426: CLEAR_CZNV;
26427: SET_ZFLG (((uae_s16)(val)) == 0);
26428: SET_NFLG (((uae_s16)(val)) < 0);
26429: SET_CFLG (cflg);
26430: COPY_CARRY;
26431: put_word(dataa,val);
26432: }}}}m68k_incpc(4);
26433: return 16;
26434: }
26435: unsigned long REGPARAM2 CPUFUNC(op_e0f0_0)(uae_u32 opcode) /* ASRW */
26436: {
26437: uae_u32 srcreg = (opcode & 7);
26438: OpcodeFamily = 72; CurrentInstrCycles = 18;
26439: {{m68k_incpc(2);
26440: { uaecptr dataa = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
26441: BusCyclePenalty += 2;
26442: { uae_s16 data = get_word(dataa);
26443: { uae_u32 val = (uae_u16)data;
26444: uae_u32 sign = 0x8000 & val;
26445: uae_u32 cflg = val & 1;
26446: val = (val >> 1) | sign;
26447: CLEAR_CZNV;
26448: SET_ZFLG (((uae_s16)(val)) == 0);
26449: SET_NFLG (((uae_s16)(val)) < 0);
26450: SET_CFLG (cflg);
26451: COPY_CARRY;
26452: put_word(dataa,val);
26453: }}}}}return 18;
26454: }
26455: unsigned long REGPARAM2 CPUFUNC(op_e0f8_0)(uae_u32 opcode) /* ASRW */
26456: {
26457: OpcodeFamily = 72; CurrentInstrCycles = 16;
26458: {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2);
26459: { uae_s16 data = get_word(dataa);
26460: { uae_u32 val = (uae_u16)data;
26461: uae_u32 sign = 0x8000 & val;
26462: uae_u32 cflg = val & 1;
26463: val = (val >> 1) | sign;
26464: CLEAR_CZNV;
26465: SET_ZFLG (((uae_s16)(val)) == 0);
26466: SET_NFLG (((uae_s16)(val)) < 0);
26467: SET_CFLG (cflg);
26468: COPY_CARRY;
26469: put_word(dataa,val);
26470: }}}}m68k_incpc(4);
26471: return 16;
26472: }
26473: unsigned long REGPARAM2 CPUFUNC(op_e0f9_0)(uae_u32 opcode) /* ASRW */
26474: {
26475: OpcodeFamily = 72; CurrentInstrCycles = 20;
26476: {{ uaecptr dataa = get_ilong(2);
26477: { uae_s16 data = get_word(dataa);
26478: { uae_u32 val = (uae_u16)data;
26479: uae_u32 sign = 0x8000 & val;
26480: uae_u32 cflg = val & 1;
26481: val = (val >> 1) | sign;
26482: CLEAR_CZNV;
26483: SET_ZFLG (((uae_s16)(val)) == 0);
26484: SET_NFLG (((uae_s16)(val)) < 0);
26485: SET_CFLG (cflg);
26486: COPY_CARRY;
26487: put_word(dataa,val);
26488: }}}}m68k_incpc(6);
26489: return 20;
26490: }
26491: unsigned long REGPARAM2 CPUFUNC(op_e100_0)(uae_u32 opcode) /* ASL */
26492: {
26493: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
26494: uae_u32 dstreg = opcode & 7;
26495: unsigned int retcycles = 0;
26496: OpcodeFamily = 65; CurrentInstrCycles = 4;
26497: {{ uae_u32 cnt = srcreg;
26498: { uae_s8 data = m68k_dreg(regs, dstreg);
26499: { uae_u32 val = (uae_u8)data;
26500: cnt &= 63;
26501: retcycles = cnt;
26502: CLEAR_CZNV;
26503: if (cnt >= 8) {
26504: SET_VFLG (val != 0);
26505: SET_CFLG (cnt == 8 ? val & 1 : 0);
26506: COPY_CARRY;
26507: val = 0;
26508: } else {
26509: uae_u32 mask = (0xff << (7 - cnt)) & 0xff;
26510: SET_VFLG ((val & mask) != mask && (val & mask) != 0);
26511: val <<= cnt - 1;
26512: SET_CFLG ((val & 0x80) >> 7);
26513: COPY_CARRY;
26514: val <<= 1;
26515: val &= 0xff;
26516: }
26517: SET_ZFLG (((uae_s8)(val)) == 0);
26518: SET_NFLG (((uae_s8)(val)) < 0);
26519: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
26520: }}}}m68k_incpc(2);
26521: return (6+retcycles*2);
26522: }
26523: unsigned long REGPARAM2 CPUFUNC(op_e108_0)(uae_u32 opcode) /* LSL */
26524: {
26525: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
26526: uae_u32 dstreg = opcode & 7;
26527: unsigned int retcycles = 0;
26528: OpcodeFamily = 67; CurrentInstrCycles = 4;
26529: {{ uae_u32 cnt = srcreg;
26530: { uae_s8 data = m68k_dreg(regs, dstreg);
26531: { uae_u32 val = (uae_u8)data;
26532: cnt &= 63;
26533: retcycles = cnt;
26534: CLEAR_CZNV;
26535: if (cnt >= 8) {
26536: SET_CFLG (cnt == 8 ? val & 1 : 0);
26537: COPY_CARRY;
26538: val = 0;
26539: } else {
26540: val <<= (cnt - 1);
26541: SET_CFLG ((val & 0x80) >> 7);
26542: COPY_CARRY;
26543: val <<= 1;
26544: val &= 0xff;
26545: }
26546: SET_ZFLG (((uae_s8)(val)) == 0);
26547: SET_NFLG (((uae_s8)(val)) < 0);
26548: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
26549: }}}}m68k_incpc(2);
26550: return (6+retcycles*2);
26551: }
26552: unsigned long REGPARAM2 CPUFUNC(op_e110_0)(uae_u32 opcode) /* ROXL */
26553: {
26554: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
26555: uae_u32 dstreg = opcode & 7;
26556: unsigned int retcycles = 0;
26557: OpcodeFamily = 70; CurrentInstrCycles = 4;
26558: {{ uae_u32 cnt = srcreg;
26559: { uae_s8 data = m68k_dreg(regs, dstreg);
26560: { uae_u32 val = (uae_u8)data;
26561: cnt &= 63;
26562: retcycles = cnt;
26563: CLEAR_CZNV;
26564: { cnt--;
26565: {
26566: uae_u32 carry;
26567: uae_u32 loval = val >> (7 - cnt);
26568: carry = loval & 1;
26569: val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1);
26570: SET_XFLG (carry);
26571: val &= 0xff;
26572: } }
26573: SET_CFLG (GET_XFLG);
26574: SET_ZFLG (((uae_s8)(val)) == 0);
26575: SET_NFLG (((uae_s8)(val)) < 0);
26576: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
26577: }}}}m68k_incpc(2);
26578: return (6+retcycles*2);
26579: }
26580: unsigned long REGPARAM2 CPUFUNC(op_e118_0)(uae_u32 opcode) /* ROL */
26581: {
26582: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
26583: uae_u32 dstreg = opcode & 7;
26584: unsigned int retcycles = 0;
26585: OpcodeFamily = 68; CurrentInstrCycles = 4;
26586: {{ uae_u32 cnt = srcreg;
26587: { uae_s8 data = m68k_dreg(regs, dstreg);
26588: { uae_u32 val = (uae_u8)data;
26589: cnt &= 63;
26590: retcycles = cnt;
26591: CLEAR_CZNV;
26592: { uae_u32 loval;
26593: cnt &= 7;
26594: loval = val >> (8 - cnt);
26595: val <<= cnt;
26596: val |= loval;
26597: val &= 0xff;
26598: SET_CFLG (val & 1);
26599: }
26600: SET_ZFLG (((uae_s8)(val)) == 0);
26601: SET_NFLG (((uae_s8)(val)) < 0);
26602: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
26603: }}}}m68k_incpc(2);
26604: return (6+retcycles*2);
26605: }
26606: unsigned long REGPARAM2 CPUFUNC(op_e120_0)(uae_u32 opcode) /* ASL */
26607: {
26608: uae_u32 srcreg = ((opcode >> 9) & 7);
26609: uae_u32 dstreg = opcode & 7;
26610: unsigned int retcycles = 0;
26611: OpcodeFamily = 65; CurrentInstrCycles = 4;
26612: {{ uae_s8 cnt = m68k_dreg(regs, srcreg);
26613: { uae_s8 data = m68k_dreg(regs, dstreg);
26614: { uae_u32 val = (uae_u8)data;
26615: cnt &= 63;
26616: retcycles = cnt;
26617: CLEAR_CZNV;
26618: if (cnt >= 8) {
26619: SET_VFLG (val != 0);
26620: SET_CFLG (cnt == 8 ? val & 1 : 0);
26621: COPY_CARRY;
26622: val = 0;
26623: } else if (cnt > 0) {
26624: uae_u32 mask = (0xff << (7 - cnt)) & 0xff;
26625: SET_VFLG ((val & mask) != mask && (val & mask) != 0);
26626: val <<= cnt - 1;
26627: SET_CFLG ((val & 0x80) >> 7);
26628: COPY_CARRY;
26629: val <<= 1;
26630: val &= 0xff;
26631: }
26632: SET_ZFLG (((uae_s8)(val)) == 0);
26633: SET_NFLG (((uae_s8)(val)) < 0);
26634: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
26635: }}}}m68k_incpc(2);
26636: return (6+retcycles*2);
26637: }
26638: unsigned long REGPARAM2 CPUFUNC(op_e128_0)(uae_u32 opcode) /* LSL */
26639: {
26640: uae_u32 srcreg = ((opcode >> 9) & 7);
26641: uae_u32 dstreg = opcode & 7;
26642: unsigned int retcycles = 0;
26643: OpcodeFamily = 67; CurrentInstrCycles = 4;
26644: {{ uae_s8 cnt = m68k_dreg(regs, srcreg);
26645: { uae_s8 data = m68k_dreg(regs, dstreg);
26646: { uae_u32 val = (uae_u8)data;
26647: cnt &= 63;
26648: retcycles = cnt;
26649: CLEAR_CZNV;
26650: if (cnt >= 8) {
26651: SET_CFLG (cnt == 8 ? val & 1 : 0);
26652: COPY_CARRY;
26653: val = 0;
26654: } else if (cnt > 0) {
26655: val <<= (cnt - 1);
26656: SET_CFLG ((val & 0x80) >> 7);
26657: COPY_CARRY;
26658: val <<= 1;
26659: val &= 0xff;
26660: }
26661: SET_ZFLG (((uae_s8)(val)) == 0);
26662: SET_NFLG (((uae_s8)(val)) < 0);
26663: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
26664: }}}}m68k_incpc(2);
26665: return (6+retcycles*2);
26666: }
26667: unsigned long REGPARAM2 CPUFUNC(op_e130_0)(uae_u32 opcode) /* ROXL */
26668: {
26669: uae_u32 srcreg = ((opcode >> 9) & 7);
26670: uae_u32 dstreg = opcode & 7;
26671: unsigned int retcycles = 0;
26672: OpcodeFamily = 70; CurrentInstrCycles = 4;
26673: {{ uae_s8 cnt = m68k_dreg(regs, srcreg);
26674: { uae_s8 data = m68k_dreg(regs, dstreg);
26675: { uae_u32 val = (uae_u8)data;
26676: cnt &= 63;
26677: retcycles = cnt;
26678: CLEAR_CZNV;
26679: if (cnt >= 36) cnt -= 36;
26680: if (cnt >= 18) cnt -= 18;
26681: if (cnt >= 9) cnt -= 9;
26682: if (cnt > 0) {
26683: cnt--;
26684: {
26685: uae_u32 carry;
26686: uae_u32 loval = val >> (7 - cnt);
26687: carry = loval & 1;
26688: val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1);
26689: SET_XFLG (carry);
26690: val &= 0xff;
26691: } }
26692: SET_CFLG (GET_XFLG);
26693: SET_ZFLG (((uae_s8)(val)) == 0);
26694: SET_NFLG (((uae_s8)(val)) < 0);
26695: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
26696: }}}}m68k_incpc(2);
26697: return (6+retcycles*2);
26698: }
26699: unsigned long REGPARAM2 CPUFUNC(op_e138_0)(uae_u32 opcode) /* ROL */
26700: {
26701: uae_u32 srcreg = ((opcode >> 9) & 7);
26702: uae_u32 dstreg = opcode & 7;
26703: unsigned int retcycles = 0;
26704: OpcodeFamily = 68; CurrentInstrCycles = 4;
26705: {{ uae_s8 cnt = m68k_dreg(regs, srcreg);
26706: { uae_s8 data = m68k_dreg(regs, dstreg);
26707: { uae_u32 val = (uae_u8)data;
26708: cnt &= 63;
26709: retcycles = cnt;
26710: CLEAR_CZNV;
26711: if (cnt > 0) {
26712: uae_u32 loval;
26713: cnt &= 7;
26714: loval = val >> (8 - cnt);
26715: val <<= cnt;
26716: val |= loval;
26717: val &= 0xff;
26718: SET_CFLG (val & 1);
26719: }
26720: SET_ZFLG (((uae_s8)(val)) == 0);
26721: SET_NFLG (((uae_s8)(val)) < 0);
26722: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
26723: }}}}m68k_incpc(2);
26724: return (6+retcycles*2);
26725: }
26726: unsigned long REGPARAM2 CPUFUNC(op_e140_0)(uae_u32 opcode) /* ASL */
26727: {
26728: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
26729: uae_u32 dstreg = opcode & 7;
26730: unsigned int retcycles = 0;
26731: OpcodeFamily = 65; CurrentInstrCycles = 4;
26732: {{ uae_u32 cnt = srcreg;
26733: { uae_s16 data = m68k_dreg(regs, dstreg);
26734: { uae_u32 val = (uae_u16)data;
26735: cnt &= 63;
26736: retcycles = cnt;
26737: CLEAR_CZNV;
26738: if (cnt >= 16) {
26739: SET_VFLG (val != 0);
26740: SET_CFLG (cnt == 16 ? val & 1 : 0);
26741: COPY_CARRY;
26742: val = 0;
26743: } else {
26744: uae_u32 mask = (0xffff << (15 - cnt)) & 0xffff;
26745: SET_VFLG ((val & mask) != mask && (val & mask) != 0);
26746: val <<= cnt - 1;
26747: SET_CFLG ((val & 0x8000) >> 15);
26748: COPY_CARRY;
26749: val <<= 1;
26750: val &= 0xffff;
26751: }
26752: SET_ZFLG (((uae_s16)(val)) == 0);
26753: SET_NFLG (((uae_s16)(val)) < 0);
26754: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
26755: }}}}m68k_incpc(2);
26756: return (6+retcycles*2);
26757: }
26758: unsigned long REGPARAM2 CPUFUNC(op_e148_0)(uae_u32 opcode) /* LSL */
26759: {
26760: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
26761: uae_u32 dstreg = opcode & 7;
26762: unsigned int retcycles = 0;
26763: OpcodeFamily = 67; CurrentInstrCycles = 4;
26764: {{ uae_u32 cnt = srcreg;
26765: { uae_s16 data = m68k_dreg(regs, dstreg);
26766: { uae_u32 val = (uae_u16)data;
26767: cnt &= 63;
26768: retcycles = cnt;
26769: CLEAR_CZNV;
26770: if (cnt >= 16) {
26771: SET_CFLG (cnt == 16 ? val & 1 : 0);
26772: COPY_CARRY;
26773: val = 0;
26774: } else {
26775: val <<= (cnt - 1);
26776: SET_CFLG ((val & 0x8000) >> 15);
26777: COPY_CARRY;
26778: val <<= 1;
26779: val &= 0xffff;
26780: }
26781: SET_ZFLG (((uae_s16)(val)) == 0);
26782: SET_NFLG (((uae_s16)(val)) < 0);
26783: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
26784: }}}}m68k_incpc(2);
26785: return (6+retcycles*2);
26786: }
26787: unsigned long REGPARAM2 CPUFUNC(op_e150_0)(uae_u32 opcode) /* ROXL */
26788: {
26789: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
26790: uae_u32 dstreg = opcode & 7;
26791: unsigned int retcycles = 0;
26792: OpcodeFamily = 70; CurrentInstrCycles = 4;
26793: {{ uae_u32 cnt = srcreg;
26794: { uae_s16 data = m68k_dreg(regs, dstreg);
26795: { uae_u32 val = (uae_u16)data;
26796: cnt &= 63;
26797: retcycles = cnt;
26798: CLEAR_CZNV;
26799: { cnt--;
26800: {
26801: uae_u32 carry;
26802: uae_u32 loval = val >> (15 - cnt);
26803: carry = loval & 1;
26804: val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1);
26805: SET_XFLG (carry);
26806: val &= 0xffff;
26807: } }
26808: SET_CFLG (GET_XFLG);
26809: SET_ZFLG (((uae_s16)(val)) == 0);
26810: SET_NFLG (((uae_s16)(val)) < 0);
26811: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
26812: }}}}m68k_incpc(2);
26813: return (6+retcycles*2);
26814: }
26815: unsigned long REGPARAM2 CPUFUNC(op_e158_0)(uae_u32 opcode) /* ROL */
26816: {
26817: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
26818: uae_u32 dstreg = opcode & 7;
26819: unsigned int retcycles = 0;
26820: OpcodeFamily = 68; CurrentInstrCycles = 4;
26821: {{ uae_u32 cnt = srcreg;
26822: { uae_s16 data = m68k_dreg(regs, dstreg);
26823: { uae_u32 val = (uae_u16)data;
26824: cnt &= 63;
26825: retcycles = cnt;
26826: CLEAR_CZNV;
26827: { uae_u32 loval;
26828: cnt &= 15;
26829: loval = val >> (16 - cnt);
26830: val <<= cnt;
26831: val |= loval;
26832: val &= 0xffff;
26833: SET_CFLG (val & 1);
26834: }
26835: SET_ZFLG (((uae_s16)(val)) == 0);
26836: SET_NFLG (((uae_s16)(val)) < 0);
26837: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
26838: }}}}m68k_incpc(2);
26839: return (6+retcycles*2);
26840: }
26841: unsigned long REGPARAM2 CPUFUNC(op_e160_0)(uae_u32 opcode) /* ASL */
26842: {
26843: uae_u32 srcreg = ((opcode >> 9) & 7);
26844: uae_u32 dstreg = opcode & 7;
26845: unsigned int retcycles = 0;
26846: OpcodeFamily = 65; CurrentInstrCycles = 4;
26847: {{ uae_s16 cnt = m68k_dreg(regs, srcreg);
26848: { uae_s16 data = m68k_dreg(regs, dstreg);
26849: { uae_u32 val = (uae_u16)data;
26850: cnt &= 63;
26851: retcycles = cnt;
26852: CLEAR_CZNV;
26853: if (cnt >= 16) {
26854: SET_VFLG (val != 0);
26855: SET_CFLG (cnt == 16 ? val & 1 : 0);
26856: COPY_CARRY;
26857: val = 0;
26858: } else if (cnt > 0) {
26859: uae_u32 mask = (0xffff << (15 - cnt)) & 0xffff;
26860: SET_VFLG ((val & mask) != mask && (val & mask) != 0);
26861: val <<= cnt - 1;
26862: SET_CFLG ((val & 0x8000) >> 15);
26863: COPY_CARRY;
26864: val <<= 1;
26865: val &= 0xffff;
26866: }
26867: SET_ZFLG (((uae_s16)(val)) == 0);
26868: SET_NFLG (((uae_s16)(val)) < 0);
26869: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
26870: }}}}m68k_incpc(2);
26871: return (6+retcycles*2);
26872: }
26873: unsigned long REGPARAM2 CPUFUNC(op_e168_0)(uae_u32 opcode) /* LSL */
26874: {
26875: uae_u32 srcreg = ((opcode >> 9) & 7);
26876: uae_u32 dstreg = opcode & 7;
26877: unsigned int retcycles = 0;
26878: OpcodeFamily = 67; CurrentInstrCycles = 4;
26879: {{ uae_s16 cnt = m68k_dreg(regs, srcreg);
26880: { uae_s16 data = m68k_dreg(regs, dstreg);
26881: { uae_u32 val = (uae_u16)data;
26882: cnt &= 63;
26883: retcycles = cnt;
26884: CLEAR_CZNV;
26885: if (cnt >= 16) {
26886: SET_CFLG (cnt == 16 ? val & 1 : 0);
26887: COPY_CARRY;
26888: val = 0;
26889: } else if (cnt > 0) {
26890: val <<= (cnt - 1);
26891: SET_CFLG ((val & 0x8000) >> 15);
26892: COPY_CARRY;
26893: val <<= 1;
26894: val &= 0xffff;
26895: }
26896: SET_ZFLG (((uae_s16)(val)) == 0);
26897: SET_NFLG (((uae_s16)(val)) < 0);
26898: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
26899: }}}}m68k_incpc(2);
26900: return (6+retcycles*2);
26901: }
26902: unsigned long REGPARAM2 CPUFUNC(op_e170_0)(uae_u32 opcode) /* ROXL */
26903: {
26904: uae_u32 srcreg = ((opcode >> 9) & 7);
26905: uae_u32 dstreg = opcode & 7;
26906: unsigned int retcycles = 0;
26907: OpcodeFamily = 70; CurrentInstrCycles = 4;
26908: {{ uae_s16 cnt = m68k_dreg(regs, srcreg);
26909: { uae_s16 data = m68k_dreg(regs, dstreg);
26910: { uae_u32 val = (uae_u16)data;
26911: cnt &= 63;
26912: retcycles = cnt;
26913: CLEAR_CZNV;
26914: if (cnt >= 34) cnt -= 34;
26915: if (cnt >= 17) cnt -= 17;
26916: if (cnt > 0) {
26917: cnt--;
26918: {
26919: uae_u32 carry;
26920: uae_u32 loval = val >> (15 - cnt);
26921: carry = loval & 1;
26922: val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1);
26923: SET_XFLG (carry);
26924: val &= 0xffff;
26925: } }
26926: SET_CFLG (GET_XFLG);
26927: SET_ZFLG (((uae_s16)(val)) == 0);
26928: SET_NFLG (((uae_s16)(val)) < 0);
26929: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
26930: }}}}m68k_incpc(2);
26931: return (6+retcycles*2);
26932: }
26933: unsigned long REGPARAM2 CPUFUNC(op_e178_0)(uae_u32 opcode) /* ROL */
26934: {
26935: uae_u32 srcreg = ((opcode >> 9) & 7);
26936: uae_u32 dstreg = opcode & 7;
26937: unsigned int retcycles = 0;
26938: OpcodeFamily = 68; CurrentInstrCycles = 4;
26939: {{ uae_s16 cnt = m68k_dreg(regs, srcreg);
26940: { uae_s16 data = m68k_dreg(regs, dstreg);
26941: { uae_u32 val = (uae_u16)data;
26942: cnt &= 63;
26943: retcycles = cnt;
26944: CLEAR_CZNV;
26945: if (cnt > 0) {
26946: uae_u32 loval;
26947: cnt &= 15;
26948: loval = val >> (16 - cnt);
26949: val <<= cnt;
26950: val |= loval;
26951: val &= 0xffff;
26952: SET_CFLG (val & 1);
26953: }
26954: SET_ZFLG (((uae_s16)(val)) == 0);
26955: SET_NFLG (((uae_s16)(val)) < 0);
26956: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
26957: }}}}m68k_incpc(2);
26958: return (6+retcycles*2);
26959: }
26960: unsigned long REGPARAM2 CPUFUNC(op_e180_0)(uae_u32 opcode) /* ASL */
26961: {
26962: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
26963: uae_u32 dstreg = opcode & 7;
26964: unsigned int retcycles = 0;
26965: OpcodeFamily = 65; CurrentInstrCycles = 4;
26966: {{ uae_u32 cnt = srcreg;
26967: { uae_s32 data = m68k_dreg(regs, dstreg);
26968: { uae_u32 val = data;
26969: cnt &= 63;
26970: retcycles = cnt;
26971: CLEAR_CZNV;
26972: if (cnt >= 32) {
26973: SET_VFLG (val != 0);
26974: SET_CFLG (cnt == 32 ? val & 1 : 0);
26975: COPY_CARRY;
26976: val = 0;
26977: } else {
26978: uae_u32 mask = (0xffffffff << (31 - cnt)) & 0xffffffff;
26979: SET_VFLG ((val & mask) != mask && (val & mask) != 0);
26980: val <<= cnt - 1;
26981: SET_CFLG ((val & 0x80000000) >> 31);
26982: COPY_CARRY;
26983: val <<= 1;
26984: val &= 0xffffffff;
26985: }
26986: SET_ZFLG (((uae_s32)(val)) == 0);
26987: SET_NFLG (((uae_s32)(val)) < 0);
26988: m68k_dreg(regs, dstreg) = (val);
26989: }}}}m68k_incpc(2);
26990: return (8+retcycles*2);
26991: }
26992: unsigned long REGPARAM2 CPUFUNC(op_e188_0)(uae_u32 opcode) /* LSL */
26993: {
26994: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
26995: uae_u32 dstreg = opcode & 7;
26996: unsigned int retcycles = 0;
26997: OpcodeFamily = 67; CurrentInstrCycles = 4;
26998: {{ uae_u32 cnt = srcreg;
26999: { uae_s32 data = m68k_dreg(regs, dstreg);
27000: { uae_u32 val = data;
27001: cnt &= 63;
27002: retcycles = cnt;
27003: CLEAR_CZNV;
27004: if (cnt >= 32) {
27005: SET_CFLG (cnt == 32 ? val & 1 : 0);
27006: COPY_CARRY;
27007: val = 0;
27008: } else {
27009: val <<= (cnt - 1);
27010: SET_CFLG ((val & 0x80000000) >> 31);
27011: COPY_CARRY;
27012: val <<= 1;
27013: val &= 0xffffffff;
27014: }
27015: SET_ZFLG (((uae_s32)(val)) == 0);
27016: SET_NFLG (((uae_s32)(val)) < 0);
27017: m68k_dreg(regs, dstreg) = (val);
27018: }}}}m68k_incpc(2);
27019: return (8+retcycles*2);
27020: }
27021: unsigned long REGPARAM2 CPUFUNC(op_e190_0)(uae_u32 opcode) /* ROXL */
27022: {
27023: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
27024: uae_u32 dstreg = opcode & 7;
27025: unsigned int retcycles = 0;
27026: OpcodeFamily = 70; CurrentInstrCycles = 4;
27027: {{ uae_u32 cnt = srcreg;
27028: { uae_s32 data = m68k_dreg(regs, dstreg);
27029: { uae_u32 val = data;
27030: cnt &= 63;
27031: retcycles = cnt;
27032: CLEAR_CZNV;
27033: { cnt--;
27034: {
27035: uae_u32 carry;
27036: uae_u32 loval = val >> (31 - cnt);
27037: carry = loval & 1;
27038: val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1);
27039: SET_XFLG (carry);
27040: val &= 0xffffffff;
27041: } }
27042: SET_CFLG (GET_XFLG);
27043: SET_ZFLG (((uae_s32)(val)) == 0);
27044: SET_NFLG (((uae_s32)(val)) < 0);
27045: m68k_dreg(regs, dstreg) = (val);
27046: }}}}m68k_incpc(2);
27047: return (8+retcycles*2);
27048: }
27049: unsigned long REGPARAM2 CPUFUNC(op_e198_0)(uae_u32 opcode) /* ROL */
27050: {
27051: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
27052: uae_u32 dstreg = opcode & 7;
27053: unsigned int retcycles = 0;
27054: OpcodeFamily = 68; CurrentInstrCycles = 4;
27055: {{ uae_u32 cnt = srcreg;
27056: { uae_s32 data = m68k_dreg(regs, dstreg);
27057: { uae_u32 val = data;
27058: cnt &= 63;
27059: retcycles = cnt;
27060: CLEAR_CZNV;
27061: { uae_u32 loval;
27062: cnt &= 31;
27063: loval = val >> (32 - cnt);
27064: val <<= cnt;
27065: val |= loval;
27066: val &= 0xffffffff;
27067: SET_CFLG (val & 1);
27068: }
27069: SET_ZFLG (((uae_s32)(val)) == 0);
27070: SET_NFLG (((uae_s32)(val)) < 0);
27071: m68k_dreg(regs, dstreg) = (val);
27072: }}}}m68k_incpc(2);
27073: return (8+retcycles*2);
27074: }
27075: unsigned long REGPARAM2 CPUFUNC(op_e1a0_0)(uae_u32 opcode) /* ASL */
27076: {
27077: uae_u32 srcreg = ((opcode >> 9) & 7);
27078: uae_u32 dstreg = opcode & 7;
27079: unsigned int retcycles = 0;
27080: OpcodeFamily = 65; CurrentInstrCycles = 4;
27081: {{ uae_s32 cnt = m68k_dreg(regs, srcreg);
27082: { uae_s32 data = m68k_dreg(regs, dstreg);
27083: { uae_u32 val = data;
27084: cnt &= 63;
27085: retcycles = cnt;
27086: CLEAR_CZNV;
27087: if (cnt >= 32) {
27088: SET_VFLG (val != 0);
27089: SET_CFLG (cnt == 32 ? val & 1 : 0);
27090: COPY_CARRY;
27091: val = 0;
27092: } else if (cnt > 0) {
27093: uae_u32 mask = (0xffffffff << (31 - cnt)) & 0xffffffff;
27094: SET_VFLG ((val & mask) != mask && (val & mask) != 0);
27095: val <<= cnt - 1;
27096: SET_CFLG ((val & 0x80000000) >> 31);
27097: COPY_CARRY;
27098: val <<= 1;
27099: val &= 0xffffffff;
27100: }
27101: SET_ZFLG (((uae_s32)(val)) == 0);
27102: SET_NFLG (((uae_s32)(val)) < 0);
27103: m68k_dreg(regs, dstreg) = (val);
27104: }}}}m68k_incpc(2);
27105: return (8+retcycles*2);
27106: }
27107: unsigned long REGPARAM2 CPUFUNC(op_e1a8_0)(uae_u32 opcode) /* LSL */
27108: {
27109: uae_u32 srcreg = ((opcode >> 9) & 7);
27110: uae_u32 dstreg = opcode & 7;
27111: unsigned int retcycles = 0;
27112: OpcodeFamily = 67; CurrentInstrCycles = 4;
27113: {{ uae_s32 cnt = m68k_dreg(regs, srcreg);
27114: { uae_s32 data = m68k_dreg(regs, dstreg);
27115: { uae_u32 val = data;
27116: cnt &= 63;
27117: retcycles = cnt;
27118: CLEAR_CZNV;
27119: if (cnt >= 32) {
27120: SET_CFLG (cnt == 32 ? val & 1 : 0);
27121: COPY_CARRY;
27122: val = 0;
27123: } else if (cnt > 0) {
27124: val <<= (cnt - 1);
27125: SET_CFLG ((val & 0x80000000) >> 31);
27126: COPY_CARRY;
27127: val <<= 1;
27128: val &= 0xffffffff;
27129: }
27130: SET_ZFLG (((uae_s32)(val)) == 0);
27131: SET_NFLG (((uae_s32)(val)) < 0);
27132: m68k_dreg(regs, dstreg) = (val);
27133: }}}}m68k_incpc(2);
27134: return (8+retcycles*2);
27135: }
27136: unsigned long REGPARAM2 CPUFUNC(op_e1b0_0)(uae_u32 opcode) /* ROXL */
27137: {
27138: uae_u32 srcreg = ((opcode >> 9) & 7);
27139: uae_u32 dstreg = opcode & 7;
27140: unsigned int retcycles = 0;
27141: OpcodeFamily = 70; CurrentInstrCycles = 4;
27142: {{ uae_s32 cnt = m68k_dreg(regs, srcreg);
27143: { uae_s32 data = m68k_dreg(regs, dstreg);
27144: { uae_u32 val = data;
27145: cnt &= 63;
27146: retcycles = cnt;
27147: CLEAR_CZNV;
27148: if (cnt >= 33) cnt -= 33;
27149: if (cnt > 0) {
27150: cnt--;
27151: {
27152: uae_u32 carry;
27153: uae_u32 loval = val >> (31 - cnt);
27154: carry = loval & 1;
27155: val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1);
27156: SET_XFLG (carry);
27157: val &= 0xffffffff;
27158: } }
27159: SET_CFLG (GET_XFLG);
27160: SET_ZFLG (((uae_s32)(val)) == 0);
27161: SET_NFLG (((uae_s32)(val)) < 0);
27162: m68k_dreg(regs, dstreg) = (val);
27163: }}}}m68k_incpc(2);
27164: return (8+retcycles*2);
27165: }
27166: unsigned long REGPARAM2 CPUFUNC(op_e1b8_0)(uae_u32 opcode) /* ROL */
27167: {
27168: uae_u32 srcreg = ((opcode >> 9) & 7);
27169: uae_u32 dstreg = opcode & 7;
27170: unsigned int retcycles = 0;
27171: OpcodeFamily = 68; CurrentInstrCycles = 4;
27172: {{ uae_s32 cnt = m68k_dreg(regs, srcreg);
27173: { uae_s32 data = m68k_dreg(regs, dstreg);
27174: { uae_u32 val = data;
27175: cnt &= 63;
27176: retcycles = cnt;
27177: CLEAR_CZNV;
27178: if (cnt > 0) {
27179: uae_u32 loval;
27180: cnt &= 31;
27181: loval = val >> (32 - cnt);
27182: val <<= cnt;
27183: val |= loval;
27184: val &= 0xffffffff;
27185: SET_CFLG (val & 1);
27186: }
27187: SET_ZFLG (((uae_s32)(val)) == 0);
27188: SET_NFLG (((uae_s32)(val)) < 0);
27189: m68k_dreg(regs, dstreg) = (val);
27190: }}}}m68k_incpc(2);
27191: return (8+retcycles*2);
27192: }
27193: unsigned long REGPARAM2 CPUFUNC(op_e1d0_0)(uae_u32 opcode) /* ASLW */
27194: {
27195: uae_u32 srcreg = (opcode & 7);
27196: OpcodeFamily = 73; CurrentInstrCycles = 12;
27197: {{ uaecptr dataa = m68k_areg(regs, srcreg);
27198: { uae_s16 data = get_word(dataa);
27199: { uae_u32 val = (uae_u16)data;
27200: uae_u32 sign = 0x8000 & val;
27201: uae_u32 sign2;
27202: val <<= 1;
27203: CLEAR_CZNV;
27204: SET_ZFLG (((uae_s16)(val)) == 0);
27205: SET_NFLG (((uae_s16)(val)) < 0);
27206: sign2 = 0x8000 & val;
27207: SET_CFLG (sign != 0);
27208: COPY_CARRY;
27209: SET_VFLG (GET_VFLG | (sign2 != sign));
27210: put_word(dataa,val);
27211: }}}}m68k_incpc(2);
27212: return 12;
27213: }
27214: unsigned long REGPARAM2 CPUFUNC(op_e1d8_0)(uae_u32 opcode) /* ASLW */
27215: {
27216: uae_u32 srcreg = (opcode & 7);
27217: OpcodeFamily = 73; CurrentInstrCycles = 12;
27218: {{ uaecptr dataa = m68k_areg(regs, srcreg);
27219: { uae_s16 data = get_word(dataa);
27220: m68k_areg(regs, srcreg) += 2;
27221: { uae_u32 val = (uae_u16)data;
27222: uae_u32 sign = 0x8000 & val;
27223: uae_u32 sign2;
27224: val <<= 1;
27225: CLEAR_CZNV;
27226: SET_ZFLG (((uae_s16)(val)) == 0);
27227: SET_NFLG (((uae_s16)(val)) < 0);
27228: sign2 = 0x8000 & val;
27229: SET_CFLG (sign != 0);
27230: COPY_CARRY;
27231: SET_VFLG (GET_VFLG | (sign2 != sign));
27232: put_word(dataa,val);
27233: }}}}m68k_incpc(2);
27234: return 12;
27235: }
27236: unsigned long REGPARAM2 CPUFUNC(op_e1e0_0)(uae_u32 opcode) /* ASLW */
27237: {
27238: uae_u32 srcreg = (opcode & 7);
27239: OpcodeFamily = 73; CurrentInstrCycles = 14;
27240: {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2;
27241: { uae_s16 data = get_word(dataa);
27242: m68k_areg (regs, srcreg) = dataa;
27243: { uae_u32 val = (uae_u16)data;
27244: uae_u32 sign = 0x8000 & val;
27245: uae_u32 sign2;
27246: val <<= 1;
27247: CLEAR_CZNV;
27248: SET_ZFLG (((uae_s16)(val)) == 0);
27249: SET_NFLG (((uae_s16)(val)) < 0);
27250: sign2 = 0x8000 & val;
27251: SET_CFLG (sign != 0);
27252: COPY_CARRY;
27253: SET_VFLG (GET_VFLG | (sign2 != sign));
27254: put_word(dataa,val);
27255: }}}}m68k_incpc(2);
27256: return 14;
27257: }
27258: unsigned long REGPARAM2 CPUFUNC(op_e1e8_0)(uae_u32 opcode) /* ASLW */
27259: {
27260: uae_u32 srcreg = (opcode & 7);
27261: OpcodeFamily = 73; CurrentInstrCycles = 16;
27262: {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
27263: { uae_s16 data = get_word(dataa);
27264: { uae_u32 val = (uae_u16)data;
27265: uae_u32 sign = 0x8000 & val;
27266: uae_u32 sign2;
27267: val <<= 1;
27268: CLEAR_CZNV;
27269: SET_ZFLG (((uae_s16)(val)) == 0);
27270: SET_NFLG (((uae_s16)(val)) < 0);
27271: sign2 = 0x8000 & val;
27272: SET_CFLG (sign != 0);
27273: COPY_CARRY;
27274: SET_VFLG (GET_VFLG | (sign2 != sign));
27275: put_word(dataa,val);
27276: }}}}m68k_incpc(4);
27277: return 16;
27278: }
27279: unsigned long REGPARAM2 CPUFUNC(op_e1f0_0)(uae_u32 opcode) /* ASLW */
27280: {
27281: uae_u32 srcreg = (opcode & 7);
27282: OpcodeFamily = 73; CurrentInstrCycles = 18;
27283: {{m68k_incpc(2);
27284: { uaecptr dataa = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
27285: BusCyclePenalty += 2;
27286: { uae_s16 data = get_word(dataa);
27287: { uae_u32 val = (uae_u16)data;
27288: uae_u32 sign = 0x8000 & val;
27289: uae_u32 sign2;
27290: val <<= 1;
27291: CLEAR_CZNV;
27292: SET_ZFLG (((uae_s16)(val)) == 0);
27293: SET_NFLG (((uae_s16)(val)) < 0);
27294: sign2 = 0x8000 & val;
27295: SET_CFLG (sign != 0);
27296: COPY_CARRY;
27297: SET_VFLG (GET_VFLG | (sign2 != sign));
27298: put_word(dataa,val);
27299: }}}}}return 18;
27300: }
27301: unsigned long REGPARAM2 CPUFUNC(op_e1f8_0)(uae_u32 opcode) /* ASLW */
27302: {
27303: OpcodeFamily = 73; CurrentInstrCycles = 16;
27304: {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2);
27305: { uae_s16 data = get_word(dataa);
27306: { uae_u32 val = (uae_u16)data;
27307: uae_u32 sign = 0x8000 & val;
27308: uae_u32 sign2;
27309: val <<= 1;
27310: CLEAR_CZNV;
27311: SET_ZFLG (((uae_s16)(val)) == 0);
27312: SET_NFLG (((uae_s16)(val)) < 0);
27313: sign2 = 0x8000 & val;
27314: SET_CFLG (sign != 0);
27315: COPY_CARRY;
27316: SET_VFLG (GET_VFLG | (sign2 != sign));
27317: put_word(dataa,val);
27318: }}}}m68k_incpc(4);
27319: return 16;
27320: }
27321: unsigned long REGPARAM2 CPUFUNC(op_e1f9_0)(uae_u32 opcode) /* ASLW */
27322: {
27323: OpcodeFamily = 73; CurrentInstrCycles = 20;
27324: {{ uaecptr dataa = get_ilong(2);
27325: { uae_s16 data = get_word(dataa);
27326: { uae_u32 val = (uae_u16)data;
27327: uae_u32 sign = 0x8000 & val;
27328: uae_u32 sign2;
27329: val <<= 1;
27330: CLEAR_CZNV;
27331: SET_ZFLG (((uae_s16)(val)) == 0);
27332: SET_NFLG (((uae_s16)(val)) < 0);
27333: sign2 = 0x8000 & val;
27334: SET_CFLG (sign != 0);
27335: COPY_CARRY;
27336: SET_VFLG (GET_VFLG | (sign2 != sign));
27337: put_word(dataa,val);
27338: }}}}m68k_incpc(6);
27339: return 20;
27340: }
27341: unsigned long REGPARAM2 CPUFUNC(op_e2d0_0)(uae_u32 opcode) /* LSRW */
27342: {
27343: uae_u32 srcreg = (opcode & 7);
27344: OpcodeFamily = 74; CurrentInstrCycles = 12;
27345: {{ uaecptr dataa = m68k_areg(regs, srcreg);
27346: { uae_s16 data = get_word(dataa);
27347: { uae_u32 val = (uae_u16)data;
27348: uae_u32 carry = val & 1;
27349: val >>= 1;
27350: CLEAR_CZNV;
27351: SET_ZFLG (((uae_s16)(val)) == 0);
27352: SET_NFLG (((uae_s16)(val)) < 0);
27353: SET_CFLG (carry);
27354: COPY_CARRY;
27355: put_word(dataa,val);
27356: }}}}m68k_incpc(2);
27357: return 12;
27358: }
27359: unsigned long REGPARAM2 CPUFUNC(op_e2d8_0)(uae_u32 opcode) /* LSRW */
27360: {
27361: uae_u32 srcreg = (opcode & 7);
27362: OpcodeFamily = 74; CurrentInstrCycles = 12;
27363: {{ uaecptr dataa = m68k_areg(regs, srcreg);
27364: { uae_s16 data = get_word(dataa);
27365: m68k_areg(regs, srcreg) += 2;
27366: { uae_u32 val = (uae_u16)data;
27367: uae_u32 carry = val & 1;
27368: val >>= 1;
27369: CLEAR_CZNV;
27370: SET_ZFLG (((uae_s16)(val)) == 0);
27371: SET_NFLG (((uae_s16)(val)) < 0);
27372: SET_CFLG (carry);
27373: COPY_CARRY;
27374: put_word(dataa,val);
27375: }}}}m68k_incpc(2);
27376: return 12;
27377: }
27378: unsigned long REGPARAM2 CPUFUNC(op_e2e0_0)(uae_u32 opcode) /* LSRW */
27379: {
27380: uae_u32 srcreg = (opcode & 7);
27381: OpcodeFamily = 74; CurrentInstrCycles = 14;
27382: {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2;
27383: { uae_s16 data = get_word(dataa);
27384: m68k_areg (regs, srcreg) = dataa;
27385: { uae_u32 val = (uae_u16)data;
27386: uae_u32 carry = val & 1;
27387: val >>= 1;
27388: CLEAR_CZNV;
27389: SET_ZFLG (((uae_s16)(val)) == 0);
27390: SET_NFLG (((uae_s16)(val)) < 0);
27391: SET_CFLG (carry);
27392: COPY_CARRY;
27393: put_word(dataa,val);
27394: }}}}m68k_incpc(2);
27395: return 14;
27396: }
27397: unsigned long REGPARAM2 CPUFUNC(op_e2e8_0)(uae_u32 opcode) /* LSRW */
27398: {
27399: uae_u32 srcreg = (opcode & 7);
27400: OpcodeFamily = 74; CurrentInstrCycles = 16;
27401: {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
27402: { uae_s16 data = get_word(dataa);
27403: { uae_u32 val = (uae_u16)data;
27404: uae_u32 carry = val & 1;
27405: val >>= 1;
27406: CLEAR_CZNV;
27407: SET_ZFLG (((uae_s16)(val)) == 0);
27408: SET_NFLG (((uae_s16)(val)) < 0);
27409: SET_CFLG (carry);
27410: COPY_CARRY;
27411: put_word(dataa,val);
27412: }}}}m68k_incpc(4);
27413: return 16;
27414: }
27415: unsigned long REGPARAM2 CPUFUNC(op_e2f0_0)(uae_u32 opcode) /* LSRW */
27416: {
27417: uae_u32 srcreg = (opcode & 7);
27418: OpcodeFamily = 74; CurrentInstrCycles = 18;
27419: {{m68k_incpc(2);
27420: { uaecptr dataa = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
27421: BusCyclePenalty += 2;
27422: { uae_s16 data = get_word(dataa);
27423: { uae_u32 val = (uae_u16)data;
27424: uae_u32 carry = val & 1;
27425: val >>= 1;
27426: CLEAR_CZNV;
27427: SET_ZFLG (((uae_s16)(val)) == 0);
27428: SET_NFLG (((uae_s16)(val)) < 0);
27429: SET_CFLG (carry);
27430: COPY_CARRY;
27431: put_word(dataa,val);
27432: }}}}}return 18;
27433: }
27434: unsigned long REGPARAM2 CPUFUNC(op_e2f8_0)(uae_u32 opcode) /* LSRW */
27435: {
27436: OpcodeFamily = 74; CurrentInstrCycles = 16;
27437: {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2);
27438: { uae_s16 data = get_word(dataa);
27439: { uae_u32 val = (uae_u16)data;
27440: uae_u32 carry = val & 1;
27441: val >>= 1;
27442: CLEAR_CZNV;
27443: SET_ZFLG (((uae_s16)(val)) == 0);
27444: SET_NFLG (((uae_s16)(val)) < 0);
27445: SET_CFLG (carry);
27446: COPY_CARRY;
27447: put_word(dataa,val);
27448: }}}}m68k_incpc(4);
27449: return 16;
27450: }
27451: unsigned long REGPARAM2 CPUFUNC(op_e2f9_0)(uae_u32 opcode) /* LSRW */
27452: {
27453: OpcodeFamily = 74; CurrentInstrCycles = 20;
27454: {{ uaecptr dataa = get_ilong(2);
27455: { uae_s16 data = get_word(dataa);
27456: { uae_u32 val = (uae_u16)data;
27457: uae_u32 carry = val & 1;
27458: val >>= 1;
27459: CLEAR_CZNV;
27460: SET_ZFLG (((uae_s16)(val)) == 0);
27461: SET_NFLG (((uae_s16)(val)) < 0);
27462: SET_CFLG (carry);
27463: COPY_CARRY;
27464: put_word(dataa,val);
27465: }}}}m68k_incpc(6);
27466: return 20;
27467: }
27468: unsigned long REGPARAM2 CPUFUNC(op_e3d0_0)(uae_u32 opcode) /* LSLW */
27469: {
27470: uae_u32 srcreg = (opcode & 7);
27471: OpcodeFamily = 75; CurrentInstrCycles = 12;
27472: {{ uaecptr dataa = m68k_areg(regs, srcreg);
27473: { uae_s16 data = get_word(dataa);
27474: { uae_u16 val = data;
27475: uae_u32 carry = val & 0x8000;
27476: val <<= 1;
27477: CLEAR_CZNV;
27478: SET_ZFLG (((uae_s16)(val)) == 0);
27479: SET_NFLG (((uae_s16)(val)) < 0);
27480: SET_CFLG (carry >> 15);
27481: COPY_CARRY;
27482: put_word(dataa,val);
27483: }}}}m68k_incpc(2);
27484: return 12;
27485: }
27486: unsigned long REGPARAM2 CPUFUNC(op_e3d8_0)(uae_u32 opcode) /* LSLW */
27487: {
27488: uae_u32 srcreg = (opcode & 7);
27489: OpcodeFamily = 75; CurrentInstrCycles = 12;
27490: {{ uaecptr dataa = m68k_areg(regs, srcreg);
27491: { uae_s16 data = get_word(dataa);
27492: m68k_areg(regs, srcreg) += 2;
27493: { uae_u16 val = data;
27494: uae_u32 carry = val & 0x8000;
27495: val <<= 1;
27496: CLEAR_CZNV;
27497: SET_ZFLG (((uae_s16)(val)) == 0);
27498: SET_NFLG (((uae_s16)(val)) < 0);
27499: SET_CFLG (carry >> 15);
27500: COPY_CARRY;
27501: put_word(dataa,val);
27502: }}}}m68k_incpc(2);
27503: return 12;
27504: }
27505: unsigned long REGPARAM2 CPUFUNC(op_e3e0_0)(uae_u32 opcode) /* LSLW */
27506: {
27507: uae_u32 srcreg = (opcode & 7);
27508: OpcodeFamily = 75; CurrentInstrCycles = 14;
27509: {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2;
27510: { uae_s16 data = get_word(dataa);
27511: m68k_areg (regs, srcreg) = dataa;
27512: { uae_u16 val = data;
27513: uae_u32 carry = val & 0x8000;
27514: val <<= 1;
27515: CLEAR_CZNV;
27516: SET_ZFLG (((uae_s16)(val)) == 0);
27517: SET_NFLG (((uae_s16)(val)) < 0);
27518: SET_CFLG (carry >> 15);
27519: COPY_CARRY;
27520: put_word(dataa,val);
27521: }}}}m68k_incpc(2);
27522: return 14;
27523: }
27524: unsigned long REGPARAM2 CPUFUNC(op_e3e8_0)(uae_u32 opcode) /* LSLW */
27525: {
27526: uae_u32 srcreg = (opcode & 7);
27527: OpcodeFamily = 75; CurrentInstrCycles = 16;
27528: {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
27529: { uae_s16 data = get_word(dataa);
27530: { uae_u16 val = data;
27531: uae_u32 carry = val & 0x8000;
27532: val <<= 1;
27533: CLEAR_CZNV;
27534: SET_ZFLG (((uae_s16)(val)) == 0);
27535: SET_NFLG (((uae_s16)(val)) < 0);
27536: SET_CFLG (carry >> 15);
27537: COPY_CARRY;
27538: put_word(dataa,val);
27539: }}}}m68k_incpc(4);
27540: return 16;
27541: }
27542: unsigned long REGPARAM2 CPUFUNC(op_e3f0_0)(uae_u32 opcode) /* LSLW */
27543: {
27544: uae_u32 srcreg = (opcode & 7);
27545: OpcodeFamily = 75; CurrentInstrCycles = 18;
27546: {{m68k_incpc(2);
27547: { uaecptr dataa = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
27548: BusCyclePenalty += 2;
27549: { uae_s16 data = get_word(dataa);
27550: { uae_u16 val = data;
27551: uae_u32 carry = val & 0x8000;
27552: val <<= 1;
27553: CLEAR_CZNV;
27554: SET_ZFLG (((uae_s16)(val)) == 0);
27555: SET_NFLG (((uae_s16)(val)) < 0);
27556: SET_CFLG (carry >> 15);
27557: COPY_CARRY;
27558: put_word(dataa,val);
27559: }}}}}return 18;
27560: }
27561: unsigned long REGPARAM2 CPUFUNC(op_e3f8_0)(uae_u32 opcode) /* LSLW */
27562: {
27563: OpcodeFamily = 75; CurrentInstrCycles = 16;
27564: {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2);
27565: { uae_s16 data = get_word(dataa);
27566: { uae_u16 val = data;
27567: uae_u32 carry = val & 0x8000;
27568: val <<= 1;
27569: CLEAR_CZNV;
27570: SET_ZFLG (((uae_s16)(val)) == 0);
27571: SET_NFLG (((uae_s16)(val)) < 0);
27572: SET_CFLG (carry >> 15);
27573: COPY_CARRY;
27574: put_word(dataa,val);
27575: }}}}m68k_incpc(4);
27576: return 16;
27577: }
27578: unsigned long REGPARAM2 CPUFUNC(op_e3f9_0)(uae_u32 opcode) /* LSLW */
27579: {
27580: OpcodeFamily = 75; CurrentInstrCycles = 20;
27581: {{ uaecptr dataa = get_ilong(2);
27582: { uae_s16 data = get_word(dataa);
27583: { uae_u16 val = data;
27584: uae_u32 carry = val & 0x8000;
27585: val <<= 1;
27586: CLEAR_CZNV;
27587: SET_ZFLG (((uae_s16)(val)) == 0);
27588: SET_NFLG (((uae_s16)(val)) < 0);
27589: SET_CFLG (carry >> 15);
27590: COPY_CARRY;
27591: put_word(dataa,val);
27592: }}}}m68k_incpc(6);
27593: return 20;
27594: }
27595: unsigned long REGPARAM2 CPUFUNC(op_e4d0_0)(uae_u32 opcode) /* ROXRW */
27596: {
27597: uae_u32 srcreg = (opcode & 7);
27598: OpcodeFamily = 79; CurrentInstrCycles = 12;
27599: {{ uaecptr dataa = m68k_areg(regs, srcreg);
27600: { uae_s16 data = get_word(dataa);
27601: { uae_u16 val = data;
27602: uae_u32 carry = val & 1;
27603: val >>= 1;
27604: if (GET_XFLG) val |= 0x8000;
27605: CLEAR_CZNV;
27606: SET_ZFLG (((uae_s16)(val)) == 0);
27607: SET_NFLG (((uae_s16)(val)) < 0);
27608: SET_CFLG (carry);
27609: COPY_CARRY;
27610: put_word(dataa,val);
27611: }}}}m68k_incpc(2);
27612: return 12;
27613: }
27614: unsigned long REGPARAM2 CPUFUNC(op_e4d8_0)(uae_u32 opcode) /* ROXRW */
27615: {
27616: uae_u32 srcreg = (opcode & 7);
27617: OpcodeFamily = 79; CurrentInstrCycles = 12;
27618: {{ uaecptr dataa = m68k_areg(regs, srcreg);
27619: { uae_s16 data = get_word(dataa);
27620: m68k_areg(regs, srcreg) += 2;
27621: { uae_u16 val = data;
27622: uae_u32 carry = val & 1;
27623: val >>= 1;
27624: if (GET_XFLG) val |= 0x8000;
27625: CLEAR_CZNV;
27626: SET_ZFLG (((uae_s16)(val)) == 0);
27627: SET_NFLG (((uae_s16)(val)) < 0);
27628: SET_CFLG (carry);
27629: COPY_CARRY;
27630: put_word(dataa,val);
27631: }}}}m68k_incpc(2);
27632: return 12;
27633: }
27634: unsigned long REGPARAM2 CPUFUNC(op_e4e0_0)(uae_u32 opcode) /* ROXRW */
27635: {
27636: uae_u32 srcreg = (opcode & 7);
27637: OpcodeFamily = 79; CurrentInstrCycles = 14;
27638: {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2;
27639: { uae_s16 data = get_word(dataa);
27640: m68k_areg (regs, srcreg) = dataa;
27641: { uae_u16 val = data;
27642: uae_u32 carry = val & 1;
27643: val >>= 1;
27644: if (GET_XFLG) val |= 0x8000;
27645: CLEAR_CZNV;
27646: SET_ZFLG (((uae_s16)(val)) == 0);
27647: SET_NFLG (((uae_s16)(val)) < 0);
27648: SET_CFLG (carry);
27649: COPY_CARRY;
27650: put_word(dataa,val);
27651: }}}}m68k_incpc(2);
27652: return 14;
27653: }
27654: unsigned long REGPARAM2 CPUFUNC(op_e4e8_0)(uae_u32 opcode) /* ROXRW */
27655: {
27656: uae_u32 srcreg = (opcode & 7);
27657: OpcodeFamily = 79; CurrentInstrCycles = 16;
27658: {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
27659: { uae_s16 data = get_word(dataa);
27660: { uae_u16 val = data;
27661: uae_u32 carry = val & 1;
27662: val >>= 1;
27663: if (GET_XFLG) val |= 0x8000;
27664: CLEAR_CZNV;
27665: SET_ZFLG (((uae_s16)(val)) == 0);
27666: SET_NFLG (((uae_s16)(val)) < 0);
27667: SET_CFLG (carry);
27668: COPY_CARRY;
27669: put_word(dataa,val);
27670: }}}}m68k_incpc(4);
27671: return 16;
27672: }
27673: unsigned long REGPARAM2 CPUFUNC(op_e4f0_0)(uae_u32 opcode) /* ROXRW */
27674: {
27675: uae_u32 srcreg = (opcode & 7);
27676: OpcodeFamily = 79; CurrentInstrCycles = 18;
27677: {{m68k_incpc(2);
27678: { uaecptr dataa = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
27679: BusCyclePenalty += 2;
27680: { uae_s16 data = get_word(dataa);
27681: { uae_u16 val = data;
27682: uae_u32 carry = val & 1;
27683: val >>= 1;
27684: if (GET_XFLG) val |= 0x8000;
27685: CLEAR_CZNV;
27686: SET_ZFLG (((uae_s16)(val)) == 0);
27687: SET_NFLG (((uae_s16)(val)) < 0);
27688: SET_CFLG (carry);
27689: COPY_CARRY;
27690: put_word(dataa,val);
27691: }}}}}return 18;
27692: }
27693: unsigned long REGPARAM2 CPUFUNC(op_e4f8_0)(uae_u32 opcode) /* ROXRW */
27694: {
27695: OpcodeFamily = 79; CurrentInstrCycles = 16;
27696: {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2);
27697: { uae_s16 data = get_word(dataa);
27698: { uae_u16 val = data;
27699: uae_u32 carry = val & 1;
27700: val >>= 1;
27701: if (GET_XFLG) val |= 0x8000;
27702: CLEAR_CZNV;
27703: SET_ZFLG (((uae_s16)(val)) == 0);
27704: SET_NFLG (((uae_s16)(val)) < 0);
27705: SET_CFLG (carry);
27706: COPY_CARRY;
27707: put_word(dataa,val);
27708: }}}}m68k_incpc(4);
27709: return 16;
27710: }
27711: unsigned long REGPARAM2 CPUFUNC(op_e4f9_0)(uae_u32 opcode) /* ROXRW */
27712: {
27713: OpcodeFamily = 79; CurrentInstrCycles = 20;
27714: {{ uaecptr dataa = get_ilong(2);
27715: { uae_s16 data = get_word(dataa);
27716: { uae_u16 val = data;
27717: uae_u32 carry = val & 1;
27718: val >>= 1;
27719: if (GET_XFLG) val |= 0x8000;
27720: CLEAR_CZNV;
27721: SET_ZFLG (((uae_s16)(val)) == 0);
27722: SET_NFLG (((uae_s16)(val)) < 0);
27723: SET_CFLG (carry);
27724: COPY_CARRY;
27725: put_word(dataa,val);
27726: }}}}m68k_incpc(6);
27727: return 20;
27728: }
27729: unsigned long REGPARAM2 CPUFUNC(op_e5d0_0)(uae_u32 opcode) /* ROXLW */
27730: {
27731: uae_u32 srcreg = (opcode & 7);
27732: OpcodeFamily = 78; CurrentInstrCycles = 12;
27733: {{ uaecptr dataa = m68k_areg(regs, srcreg);
27734: { uae_s16 data = get_word(dataa);
27735: { uae_u16 val = data;
27736: uae_u32 carry = val & 0x8000;
27737: val <<= 1;
27738: if (GET_XFLG) val |= 1;
27739: CLEAR_CZNV;
27740: SET_ZFLG (((uae_s16)(val)) == 0);
27741: SET_NFLG (((uae_s16)(val)) < 0);
27742: SET_CFLG (carry >> 15);
27743: COPY_CARRY;
27744: put_word(dataa,val);
27745: }}}}m68k_incpc(2);
27746: return 12;
27747: }
27748: unsigned long REGPARAM2 CPUFUNC(op_e5d8_0)(uae_u32 opcode) /* ROXLW */
27749: {
27750: uae_u32 srcreg = (opcode & 7);
27751: OpcodeFamily = 78; CurrentInstrCycles = 12;
27752: {{ uaecptr dataa = m68k_areg(regs, srcreg);
27753: { uae_s16 data = get_word(dataa);
27754: m68k_areg(regs, srcreg) += 2;
27755: { uae_u16 val = data;
27756: uae_u32 carry = val & 0x8000;
27757: val <<= 1;
27758: if (GET_XFLG) val |= 1;
27759: CLEAR_CZNV;
27760: SET_ZFLG (((uae_s16)(val)) == 0);
27761: SET_NFLG (((uae_s16)(val)) < 0);
27762: SET_CFLG (carry >> 15);
27763: COPY_CARRY;
27764: put_word(dataa,val);
27765: }}}}m68k_incpc(2);
27766: return 12;
27767: }
27768: unsigned long REGPARAM2 CPUFUNC(op_e5e0_0)(uae_u32 opcode) /* ROXLW */
27769: {
27770: uae_u32 srcreg = (opcode & 7);
27771: OpcodeFamily = 78; CurrentInstrCycles = 14;
27772: {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2;
27773: { uae_s16 data = get_word(dataa);
27774: m68k_areg (regs, srcreg) = dataa;
27775: { uae_u16 val = data;
27776: uae_u32 carry = val & 0x8000;
27777: val <<= 1;
27778: if (GET_XFLG) val |= 1;
27779: CLEAR_CZNV;
27780: SET_ZFLG (((uae_s16)(val)) == 0);
27781: SET_NFLG (((uae_s16)(val)) < 0);
27782: SET_CFLG (carry >> 15);
27783: COPY_CARRY;
27784: put_word(dataa,val);
27785: }}}}m68k_incpc(2);
27786: return 14;
27787: }
27788: unsigned long REGPARAM2 CPUFUNC(op_e5e8_0)(uae_u32 opcode) /* ROXLW */
27789: {
27790: uae_u32 srcreg = (opcode & 7);
27791: OpcodeFamily = 78; CurrentInstrCycles = 16;
27792: {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
27793: { uae_s16 data = get_word(dataa);
27794: { uae_u16 val = data;
27795: uae_u32 carry = val & 0x8000;
27796: val <<= 1;
27797: if (GET_XFLG) val |= 1;
27798: CLEAR_CZNV;
27799: SET_ZFLG (((uae_s16)(val)) == 0);
27800: SET_NFLG (((uae_s16)(val)) < 0);
27801: SET_CFLG (carry >> 15);
27802: COPY_CARRY;
27803: put_word(dataa,val);
27804: }}}}m68k_incpc(4);
27805: return 16;
27806: }
27807: unsigned long REGPARAM2 CPUFUNC(op_e5f0_0)(uae_u32 opcode) /* ROXLW */
27808: {
27809: uae_u32 srcreg = (opcode & 7);
27810: OpcodeFamily = 78; CurrentInstrCycles = 18;
27811: {{m68k_incpc(2);
27812: { uaecptr dataa = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
27813: BusCyclePenalty += 2;
27814: { uae_s16 data = get_word(dataa);
27815: { uae_u16 val = data;
27816: uae_u32 carry = val & 0x8000;
27817: val <<= 1;
27818: if (GET_XFLG) val |= 1;
27819: CLEAR_CZNV;
27820: SET_ZFLG (((uae_s16)(val)) == 0);
27821: SET_NFLG (((uae_s16)(val)) < 0);
27822: SET_CFLG (carry >> 15);
27823: COPY_CARRY;
27824: put_word(dataa,val);
27825: }}}}}return 18;
27826: }
27827: unsigned long REGPARAM2 CPUFUNC(op_e5f8_0)(uae_u32 opcode) /* ROXLW */
27828: {
27829: OpcodeFamily = 78; CurrentInstrCycles = 16;
27830: {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2);
27831: { uae_s16 data = get_word(dataa);
27832: { uae_u16 val = data;
27833: uae_u32 carry = val & 0x8000;
27834: val <<= 1;
27835: if (GET_XFLG) val |= 1;
27836: CLEAR_CZNV;
27837: SET_ZFLG (((uae_s16)(val)) == 0);
27838: SET_NFLG (((uae_s16)(val)) < 0);
27839: SET_CFLG (carry >> 15);
27840: COPY_CARRY;
27841: put_word(dataa,val);
27842: }}}}m68k_incpc(4);
27843: return 16;
27844: }
27845: unsigned long REGPARAM2 CPUFUNC(op_e5f9_0)(uae_u32 opcode) /* ROXLW */
27846: {
27847: OpcodeFamily = 78; CurrentInstrCycles = 20;
27848: {{ uaecptr dataa = get_ilong(2);
27849: { uae_s16 data = get_word(dataa);
27850: { uae_u16 val = data;
27851: uae_u32 carry = val & 0x8000;
27852: val <<= 1;
27853: if (GET_XFLG) val |= 1;
27854: CLEAR_CZNV;
27855: SET_ZFLG (((uae_s16)(val)) == 0);
27856: SET_NFLG (((uae_s16)(val)) < 0);
27857: SET_CFLG (carry >> 15);
27858: COPY_CARRY;
27859: put_word(dataa,val);
27860: }}}}m68k_incpc(6);
27861: return 20;
27862: }
27863: unsigned long REGPARAM2 CPUFUNC(op_e6d0_0)(uae_u32 opcode) /* RORW */
27864: {
27865: uae_u32 srcreg = (opcode & 7);
27866: OpcodeFamily = 77; CurrentInstrCycles = 12;
27867: {{ uaecptr dataa = m68k_areg(regs, srcreg);
27868: { uae_s16 data = get_word(dataa);
27869: { uae_u16 val = data;
27870: uae_u32 carry = val & 1;
27871: val >>= 1;
27872: if (carry) val |= 0x8000;
27873: CLEAR_CZNV;
27874: SET_ZFLG (((uae_s16)(val)) == 0);
27875: SET_NFLG (((uae_s16)(val)) < 0);
27876: SET_CFLG (carry);
27877: put_word(dataa,val);
27878: }}}}m68k_incpc(2);
27879: return 12;
27880: }
27881: unsigned long REGPARAM2 CPUFUNC(op_e6d8_0)(uae_u32 opcode) /* RORW */
27882: {
27883: uae_u32 srcreg = (opcode & 7);
27884: OpcodeFamily = 77; CurrentInstrCycles = 12;
27885: {{ uaecptr dataa = m68k_areg(regs, srcreg);
27886: { uae_s16 data = get_word(dataa);
27887: m68k_areg(regs, srcreg) += 2;
27888: { uae_u16 val = data;
27889: uae_u32 carry = val & 1;
27890: val >>= 1;
27891: if (carry) val |= 0x8000;
27892: CLEAR_CZNV;
27893: SET_ZFLG (((uae_s16)(val)) == 0);
27894: SET_NFLG (((uae_s16)(val)) < 0);
27895: SET_CFLG (carry);
27896: put_word(dataa,val);
27897: }}}}m68k_incpc(2);
27898: return 12;
27899: }
27900: unsigned long REGPARAM2 CPUFUNC(op_e6e0_0)(uae_u32 opcode) /* RORW */
27901: {
27902: uae_u32 srcreg = (opcode & 7);
27903: OpcodeFamily = 77; CurrentInstrCycles = 14;
27904: {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2;
27905: { uae_s16 data = get_word(dataa);
27906: m68k_areg (regs, srcreg) = dataa;
27907: { uae_u16 val = data;
27908: uae_u32 carry = val & 1;
27909: val >>= 1;
27910: if (carry) val |= 0x8000;
27911: CLEAR_CZNV;
27912: SET_ZFLG (((uae_s16)(val)) == 0);
27913: SET_NFLG (((uae_s16)(val)) < 0);
27914: SET_CFLG (carry);
27915: put_word(dataa,val);
27916: }}}}m68k_incpc(2);
27917: return 14;
27918: }
27919: unsigned long REGPARAM2 CPUFUNC(op_e6e8_0)(uae_u32 opcode) /* RORW */
27920: {
27921: uae_u32 srcreg = (opcode & 7);
27922: OpcodeFamily = 77; CurrentInstrCycles = 16;
27923: {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
27924: { uae_s16 data = get_word(dataa);
27925: { uae_u16 val = data;
27926: uae_u32 carry = val & 1;
27927: val >>= 1;
27928: if (carry) val |= 0x8000;
27929: CLEAR_CZNV;
27930: SET_ZFLG (((uae_s16)(val)) == 0);
27931: SET_NFLG (((uae_s16)(val)) < 0);
27932: SET_CFLG (carry);
27933: put_word(dataa,val);
27934: }}}}m68k_incpc(4);
27935: return 16;
27936: }
27937: unsigned long REGPARAM2 CPUFUNC(op_e6f0_0)(uae_u32 opcode) /* RORW */
27938: {
27939: uae_u32 srcreg = (opcode & 7);
27940: OpcodeFamily = 77; CurrentInstrCycles = 18;
27941: {{m68k_incpc(2);
27942: { uaecptr dataa = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
27943: BusCyclePenalty += 2;
27944: { uae_s16 data = get_word(dataa);
27945: { uae_u16 val = data;
27946: uae_u32 carry = val & 1;
27947: val >>= 1;
27948: if (carry) val |= 0x8000;
27949: CLEAR_CZNV;
27950: SET_ZFLG (((uae_s16)(val)) == 0);
27951: SET_NFLG (((uae_s16)(val)) < 0);
27952: SET_CFLG (carry);
27953: put_word(dataa,val);
27954: }}}}}return 18;
27955: }
27956: unsigned long REGPARAM2 CPUFUNC(op_e6f8_0)(uae_u32 opcode) /* RORW */
27957: {
27958: OpcodeFamily = 77; CurrentInstrCycles = 16;
27959: {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2);
27960: { uae_s16 data = get_word(dataa);
27961: { uae_u16 val = data;
27962: uae_u32 carry = val & 1;
27963: val >>= 1;
27964: if (carry) val |= 0x8000;
27965: CLEAR_CZNV;
27966: SET_ZFLG (((uae_s16)(val)) == 0);
27967: SET_NFLG (((uae_s16)(val)) < 0);
27968: SET_CFLG (carry);
27969: put_word(dataa,val);
27970: }}}}m68k_incpc(4);
27971: return 16;
27972: }
27973: unsigned long REGPARAM2 CPUFUNC(op_e6f9_0)(uae_u32 opcode) /* RORW */
27974: {
27975: OpcodeFamily = 77; CurrentInstrCycles = 20;
27976: {{ uaecptr dataa = get_ilong(2);
27977: { uae_s16 data = get_word(dataa);
27978: { uae_u16 val = data;
27979: uae_u32 carry = val & 1;
27980: val >>= 1;
27981: if (carry) val |= 0x8000;
27982: CLEAR_CZNV;
27983: SET_ZFLG (((uae_s16)(val)) == 0);
27984: SET_NFLG (((uae_s16)(val)) < 0);
27985: SET_CFLG (carry);
27986: put_word(dataa,val);
27987: }}}}m68k_incpc(6);
27988: return 20;
27989: }
27990: unsigned long REGPARAM2 CPUFUNC(op_e7d0_0)(uae_u32 opcode) /* ROLW */
27991: {
27992: uae_u32 srcreg = (opcode & 7);
27993: OpcodeFamily = 76; CurrentInstrCycles = 12;
27994: {{ uaecptr dataa = m68k_areg(regs, srcreg);
27995: { uae_s16 data = get_word(dataa);
27996: { uae_u16 val = data;
27997: uae_u32 carry = val & 0x8000;
27998: val <<= 1;
27999: if (carry) val |= 1;
28000: CLEAR_CZNV;
28001: SET_ZFLG (((uae_s16)(val)) == 0);
28002: SET_NFLG (((uae_s16)(val)) < 0);
28003: SET_CFLG (carry >> 15);
28004: put_word(dataa,val);
28005: }}}}m68k_incpc(2);
28006: return 12;
28007: }
28008: unsigned long REGPARAM2 CPUFUNC(op_e7d8_0)(uae_u32 opcode) /* ROLW */
28009: {
28010: uae_u32 srcreg = (opcode & 7);
28011: OpcodeFamily = 76; CurrentInstrCycles = 12;
28012: {{ uaecptr dataa = m68k_areg(regs, srcreg);
28013: { uae_s16 data = get_word(dataa);
28014: m68k_areg(regs, srcreg) += 2;
28015: { uae_u16 val = data;
28016: uae_u32 carry = val & 0x8000;
28017: val <<= 1;
28018: if (carry) val |= 1;
28019: CLEAR_CZNV;
28020: SET_ZFLG (((uae_s16)(val)) == 0);
28021: SET_NFLG (((uae_s16)(val)) < 0);
28022: SET_CFLG (carry >> 15);
28023: put_word(dataa,val);
28024: }}}}m68k_incpc(2);
28025: return 12;
28026: }
28027: unsigned long REGPARAM2 CPUFUNC(op_e7e0_0)(uae_u32 opcode) /* ROLW */
28028: {
28029: uae_u32 srcreg = (opcode & 7);
28030: OpcodeFamily = 76; CurrentInstrCycles = 14;
28031: {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2;
28032: { uae_s16 data = get_word(dataa);
28033: m68k_areg (regs, srcreg) = dataa;
28034: { uae_u16 val = data;
28035: uae_u32 carry = val & 0x8000;
28036: val <<= 1;
28037: if (carry) val |= 1;
28038: CLEAR_CZNV;
28039: SET_ZFLG (((uae_s16)(val)) == 0);
28040: SET_NFLG (((uae_s16)(val)) < 0);
28041: SET_CFLG (carry >> 15);
28042: put_word(dataa,val);
28043: }}}}m68k_incpc(2);
28044: return 14;
28045: }
28046: unsigned long REGPARAM2 CPUFUNC(op_e7e8_0)(uae_u32 opcode) /* ROLW */
28047: {
28048: uae_u32 srcreg = (opcode & 7);
28049: OpcodeFamily = 76; CurrentInstrCycles = 16;
28050: {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
28051: { uae_s16 data = get_word(dataa);
28052: { uae_u16 val = data;
28053: uae_u32 carry = val & 0x8000;
28054: val <<= 1;
28055: if (carry) val |= 1;
28056: CLEAR_CZNV;
28057: SET_ZFLG (((uae_s16)(val)) == 0);
28058: SET_NFLG (((uae_s16)(val)) < 0);
28059: SET_CFLG (carry >> 15);
28060: put_word(dataa,val);
28061: }}}}m68k_incpc(4);
28062: return 16;
28063: }
28064: unsigned long REGPARAM2 CPUFUNC(op_e7f0_0)(uae_u32 opcode) /* ROLW */
28065: {
28066: uae_u32 srcreg = (opcode & 7);
28067: OpcodeFamily = 76; CurrentInstrCycles = 18;
28068: {{m68k_incpc(2);
28069: { uaecptr dataa = get_disp_ea_020(m68k_areg(regs, srcreg), next_iword());
28070: BusCyclePenalty += 2;
28071: { uae_s16 data = get_word(dataa);
28072: { uae_u16 val = data;
28073: uae_u32 carry = val & 0x8000;
28074: val <<= 1;
28075: if (carry) val |= 1;
28076: CLEAR_CZNV;
28077: SET_ZFLG (((uae_s16)(val)) == 0);
28078: SET_NFLG (((uae_s16)(val)) < 0);
28079: SET_CFLG (carry >> 15);
28080: put_word(dataa,val);
28081: }}}}}return 18;
28082: }
28083: unsigned long REGPARAM2 CPUFUNC(op_e7f8_0)(uae_u32 opcode) /* ROLW */
28084: {
28085: OpcodeFamily = 76; CurrentInstrCycles = 16;
28086: {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword(2);
28087: { uae_s16 data = get_word(dataa);
28088: { uae_u16 val = data;
28089: uae_u32 carry = val & 0x8000;
28090: val <<= 1;
28091: if (carry) val |= 1;
28092: CLEAR_CZNV;
28093: SET_ZFLG (((uae_s16)(val)) == 0);
28094: SET_NFLG (((uae_s16)(val)) < 0);
28095: SET_CFLG (carry >> 15);
28096: put_word(dataa,val);
28097: }}}}m68k_incpc(4);
28098: return 16;
28099: }
28100: unsigned long REGPARAM2 CPUFUNC(op_e7f9_0)(uae_u32 opcode) /* ROLW */
28101: {
28102: OpcodeFamily = 76; CurrentInstrCycles = 20;
28103: {{ uaecptr dataa = get_ilong(2);
28104: { uae_s16 data = get_word(dataa);
28105: { uae_u16 val = data;
28106: uae_u32 carry = val & 0x8000;
28107: val <<= 1;
28108: if (carry) val |= 1;
28109: CLEAR_CZNV;
28110: SET_ZFLG (((uae_s16)(val)) == 0);
28111: SET_NFLG (((uae_s16)(val)) < 0);
28112: SET_CFLG (carry >> 15);
28113: put_word(dataa,val);
28114: }}}}m68k_incpc(6);
28115: return 20;
28116: }
28117: unsigned long REGPARAM2 CPUFUNC(op_e8c0_0)(uae_u32 opcode) /* BFTST */
28118: {
28119: uae_u32 dstreg = opcode & 7;
28120: OpcodeFamily = 88; CurrentInstrCycles = 8;
28121: {{ uae_s16 extra = get_iword(2);
28122: {{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28123: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28124: uae_u32 tmp = m68k_dreg(regs, dstreg) << (offset & 0x1f);
28125: tmp >>= (32 - width);
28126: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28127: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28128: }}}}m68k_incpc(4);
28129: return 8;
28130: }
28131: unsigned long REGPARAM2 CPUFUNC(op_e8d0_0)(uae_u32 opcode) /* BFTST */
28132: {
28133: uae_u32 dstreg = opcode & 7;
28134: OpcodeFamily = 88; CurrentInstrCycles = 8;
28135: {{ uae_s16 extra = get_iword(2);
28136: { uaecptr dsta = m68k_areg(regs, dstreg);
28137: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28138: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28139: uae_u32 tmp,bf0,bf1;
28140: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28141: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28142: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28143: tmp >>= (32 - width);
28144: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28145: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28146: }}}}m68k_incpc(4);
28147: return 8;
28148: }
28149: unsigned long REGPARAM2 CPUFUNC(op_e8e8_0)(uae_u32 opcode) /* BFTST */
28150: {
28151: uae_u32 dstreg = opcode & 7;
28152: OpcodeFamily = 88; CurrentInstrCycles = 12;
28153: {{ uae_s16 extra = get_iword(2);
28154: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
28155: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28156: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28157: uae_u32 tmp,bf0,bf1;
28158: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28159: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28160: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28161: tmp >>= (32 - width);
28162: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28163: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28164: }}}}m68k_incpc(6);
28165: return 12;
28166: }
28167: unsigned long REGPARAM2 CPUFUNC(op_e8f0_0)(uae_u32 opcode) /* BFTST */
28168: {
28169: uae_u32 dstreg = opcode & 7;
28170: OpcodeFamily = 88; CurrentInstrCycles = 14;
28171: {{ uae_s16 extra = get_iword(2);
28172: {m68k_incpc(4);
28173: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
28174: BusCyclePenalty += 2;
28175: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28176: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28177: uae_u32 tmp,bf0,bf1;
28178: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28179: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28180: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28181: tmp >>= (32 - width);
28182: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28183: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28184: }}}}}return 14;
28185: }
28186: unsigned long REGPARAM2 CPUFUNC(op_e8f8_0)(uae_u32 opcode) /* BFTST */
28187: {
28188: OpcodeFamily = 88; CurrentInstrCycles = 12;
28189: {{ uae_s16 extra = get_iword(2);
28190: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
28191: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28192: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28193: uae_u32 tmp,bf0,bf1;
28194: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28195: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28196: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28197: tmp >>= (32 - width);
28198: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28199: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28200: }}}}m68k_incpc(6);
28201: return 12;
28202: }
28203: unsigned long REGPARAM2 CPUFUNC(op_e8f9_0)(uae_u32 opcode) /* BFTST */
28204: {
28205: OpcodeFamily = 88; CurrentInstrCycles = 16;
28206: {{ uae_s16 extra = get_iword(2);
28207: { uaecptr dsta = get_ilong(4);
28208: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28209: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28210: uae_u32 tmp,bf0,bf1;
28211: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28212: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28213: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28214: tmp >>= (32 - width);
28215: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28216: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28217: }}}}m68k_incpc(8);
28218: return 16;
28219: }
28220: unsigned long REGPARAM2 CPUFUNC(op_e8fa_0)(uae_u32 opcode) /* BFTST */
28221: {
28222: uae_u32 dstreg = 2;
28223: OpcodeFamily = 88; CurrentInstrCycles = 12;
28224: {{ uae_s16 extra = get_iword(2);
28225: { uaecptr dsta = m68k_getpc () + 4;
28226: dsta += (uae_s32)(uae_s16)get_iword(4);
28227: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28228: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28229: uae_u32 tmp,bf0,bf1;
28230: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28231: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28232: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28233: tmp >>= (32 - width);
28234: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28235: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28236: }}}}m68k_incpc(6);
28237: return 12;
28238: }
28239: unsigned long REGPARAM2 CPUFUNC(op_e8fb_0)(uae_u32 opcode) /* BFTST */
28240: {
28241: uae_u32 dstreg = 3;
28242: OpcodeFamily = 88; CurrentInstrCycles = 14;
28243: {{ uae_s16 extra = get_iword(2);
28244: {m68k_incpc(4);
28245: { uaecptr tmppc = m68k_getpc();
28246: uaecptr dsta = get_disp_ea_020(tmppc, next_iword());
28247: BusCyclePenalty += 2;
28248: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28249: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28250: uae_u32 tmp,bf0,bf1;
28251: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28252: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28253: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28254: tmp >>= (32 - width);
28255: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28256: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28257: }}}}}return 14;
28258: }
28259: unsigned long REGPARAM2 CPUFUNC(op_e9c0_0)(uae_u32 opcode) /* BFEXTU */
28260: {
28261: uae_u32 dstreg = opcode & 7;
28262: OpcodeFamily = 89; CurrentInstrCycles = 8;
28263: {{ uae_s16 extra = get_iword(2);
28264: {{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28265: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28266: uae_u32 tmp = m68k_dreg(regs, dstreg) << (offset & 0x1f);
28267: tmp >>= (32 - width);
28268: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28269: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28270: m68k_dreg(regs, (extra >> 12) & 7) = tmp;
28271: }}}}m68k_incpc(4);
28272: return 8;
28273: }
28274: unsigned long REGPARAM2 CPUFUNC(op_e9d0_0)(uae_u32 opcode) /* BFEXTU */
28275: {
28276: uae_u32 dstreg = opcode & 7;
28277: OpcodeFamily = 89; CurrentInstrCycles = 8;
28278: {{ uae_s16 extra = get_iword(2);
28279: { uaecptr dsta = m68k_areg(regs, dstreg);
28280: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28281: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28282: uae_u32 tmp,bf0,bf1;
28283: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28284: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28285: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28286: tmp >>= (32 - width);
28287: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28288: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28289: m68k_dreg(regs, (extra >> 12) & 7) = tmp;
28290: }}}}m68k_incpc(4);
28291: return 8;
28292: }
28293: unsigned long REGPARAM2 CPUFUNC(op_e9e8_0)(uae_u32 opcode) /* BFEXTU */
28294: {
28295: uae_u32 dstreg = opcode & 7;
28296: OpcodeFamily = 89; CurrentInstrCycles = 12;
28297: {{ uae_s16 extra = get_iword(2);
28298: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
28299: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28300: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28301: uae_u32 tmp,bf0,bf1;
28302: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28303: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28304: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28305: tmp >>= (32 - width);
28306: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28307: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28308: m68k_dreg(regs, (extra >> 12) & 7) = tmp;
28309: }}}}m68k_incpc(6);
28310: return 12;
28311: }
28312: unsigned long REGPARAM2 CPUFUNC(op_e9f0_0)(uae_u32 opcode) /* BFEXTU */
28313: {
28314: uae_u32 dstreg = opcode & 7;
28315: OpcodeFamily = 89; CurrentInstrCycles = 14;
28316: {{ uae_s16 extra = get_iword(2);
28317: {m68k_incpc(4);
28318: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
28319: BusCyclePenalty += 2;
28320: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28321: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28322: uae_u32 tmp,bf0,bf1;
28323: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28324: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28325: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28326: tmp >>= (32 - width);
28327: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28328: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28329: m68k_dreg(regs, (extra >> 12) & 7) = tmp;
28330: }}}}}return 14;
28331: }
28332: unsigned long REGPARAM2 CPUFUNC(op_e9f8_0)(uae_u32 opcode) /* BFEXTU */
28333: {
28334: OpcodeFamily = 89; CurrentInstrCycles = 12;
28335: {{ uae_s16 extra = get_iword(2);
28336: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
28337: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28338: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28339: uae_u32 tmp,bf0,bf1;
28340: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28341: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28342: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28343: tmp >>= (32 - width);
28344: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28345: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28346: m68k_dreg(regs, (extra >> 12) & 7) = tmp;
28347: }}}}m68k_incpc(6);
28348: return 12;
28349: }
28350: unsigned long REGPARAM2 CPUFUNC(op_e9f9_0)(uae_u32 opcode) /* BFEXTU */
28351: {
28352: OpcodeFamily = 89; CurrentInstrCycles = 16;
28353: {{ uae_s16 extra = get_iword(2);
28354: { uaecptr dsta = get_ilong(4);
28355: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28356: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28357: uae_u32 tmp,bf0,bf1;
28358: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28359: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28360: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28361: tmp >>= (32 - width);
28362: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28363: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28364: m68k_dreg(regs, (extra >> 12) & 7) = tmp;
28365: }}}}m68k_incpc(8);
28366: return 16;
28367: }
28368: unsigned long REGPARAM2 CPUFUNC(op_e9fa_0)(uae_u32 opcode) /* BFEXTU */
28369: {
28370: uae_u32 dstreg = 2;
28371: OpcodeFamily = 89; CurrentInstrCycles = 12;
28372: {{ uae_s16 extra = get_iword(2);
28373: { uaecptr dsta = m68k_getpc () + 4;
28374: dsta += (uae_s32)(uae_s16)get_iword(4);
28375: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28376: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28377: uae_u32 tmp,bf0,bf1;
28378: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28379: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28380: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28381: tmp >>= (32 - width);
28382: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28383: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28384: m68k_dreg(regs, (extra >> 12) & 7) = tmp;
28385: }}}}m68k_incpc(6);
28386: return 12;
28387: }
28388: unsigned long REGPARAM2 CPUFUNC(op_e9fb_0)(uae_u32 opcode) /* BFEXTU */
28389: {
28390: uae_u32 dstreg = 3;
28391: OpcodeFamily = 89; CurrentInstrCycles = 14;
28392: {{ uae_s16 extra = get_iword(2);
28393: {m68k_incpc(4);
28394: { uaecptr tmppc = m68k_getpc();
28395: uaecptr dsta = get_disp_ea_020(tmppc, next_iword());
28396: BusCyclePenalty += 2;
28397: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28398: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28399: uae_u32 tmp,bf0,bf1;
28400: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28401: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28402: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28403: tmp >>= (32 - width);
28404: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28405: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28406: m68k_dreg(regs, (extra >> 12) & 7) = tmp;
28407: }}}}}return 14;
28408: }
28409: unsigned long REGPARAM2 CPUFUNC(op_eac0_0)(uae_u32 opcode) /* BFCHG */
28410: {
28411: uae_u32 dstreg = opcode & 7;
28412: OpcodeFamily = 90; CurrentInstrCycles = 8;
28413: {{ uae_s16 extra = get_iword(2);
28414: {{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28415: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28416: uae_u32 tmp = m68k_dreg(regs, dstreg) << (offset & 0x1f);
28417: tmp >>= (32 - width);
28418: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28419: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28420: tmp = ~tmp;
28421: tmp <<= (32 - width);
28422: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ((offset & 0x1f) == 0 ? 0 :
28423: (0xffffffff << (32 - (offset & 0x1f))))) |
28424: (tmp >> (offset & 0x1f)) |
28425: (((offset & 0x1f) + width) >= 32 ? 0 :
28426: (m68k_dreg(regs, dstreg) & ((uae_u32)0xffffffff >> ((offset & 0x1f) + width))));
28427: }}}}m68k_incpc(4);
28428: return 8;
28429: }
28430: unsigned long REGPARAM2 CPUFUNC(op_ead0_0)(uae_u32 opcode) /* BFCHG */
28431: {
28432: uae_u32 dstreg = opcode & 7;
28433: OpcodeFamily = 90; CurrentInstrCycles = 8;
28434: {{ uae_s16 extra = get_iword(2);
28435: { uaecptr dsta = m68k_areg(regs, dstreg);
28436: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28437: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28438: uae_u32 tmp,bf0,bf1;
28439: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28440: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28441: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28442: tmp >>= (32 - width);
28443: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28444: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28445: tmp = ~tmp;
28446: tmp <<= (32 - width);
28447: bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) |
28448: (tmp >> (offset & 7)) |
28449: (((offset & 7) + width) >= 32 ? 0 :
28450: (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width))));
28451: put_long(dsta,bf0 );
28452: if (((offset & 7) + width) > 32) {
28453: bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) |
28454: (tmp << (8 - (offset & 7)));
28455: put_byte(dsta+4,bf1);
28456: }
28457: }}}}m68k_incpc(4);
28458: return 8;
28459: }
28460: unsigned long REGPARAM2 CPUFUNC(op_eae8_0)(uae_u32 opcode) /* BFCHG */
28461: {
28462: uae_u32 dstreg = opcode & 7;
28463: OpcodeFamily = 90; CurrentInstrCycles = 12;
28464: {{ uae_s16 extra = get_iword(2);
28465: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
28466: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28467: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28468: uae_u32 tmp,bf0,bf1;
28469: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28470: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28471: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28472: tmp >>= (32 - width);
28473: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28474: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28475: tmp = ~tmp;
28476: tmp <<= (32 - width);
28477: bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) |
28478: (tmp >> (offset & 7)) |
28479: (((offset & 7) + width) >= 32 ? 0 :
28480: (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width))));
28481: put_long(dsta,bf0 );
28482: if (((offset & 7) + width) > 32) {
28483: bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) |
28484: (tmp << (8 - (offset & 7)));
28485: put_byte(dsta+4,bf1);
28486: }
28487: }}}}m68k_incpc(6);
28488: return 12;
28489: }
28490: unsigned long REGPARAM2 CPUFUNC(op_eaf0_0)(uae_u32 opcode) /* BFCHG */
28491: {
28492: uae_u32 dstreg = opcode & 7;
28493: OpcodeFamily = 90; CurrentInstrCycles = 14;
28494: {{ uae_s16 extra = get_iword(2);
28495: {m68k_incpc(4);
28496: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
28497: BusCyclePenalty += 2;
28498: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28499: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28500: uae_u32 tmp,bf0,bf1;
28501: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28502: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28503: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28504: tmp >>= (32 - width);
28505: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28506: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28507: tmp = ~tmp;
28508: tmp <<= (32 - width);
28509: bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) |
28510: (tmp >> (offset & 7)) |
28511: (((offset & 7) + width) >= 32 ? 0 :
28512: (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width))));
28513: put_long(dsta,bf0 );
28514: if (((offset & 7) + width) > 32) {
28515: bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) |
28516: (tmp << (8 - (offset & 7)));
28517: put_byte(dsta+4,bf1);
28518: }
28519: }}}}}return 14;
28520: }
28521: unsigned long REGPARAM2 CPUFUNC(op_eaf8_0)(uae_u32 opcode) /* BFCHG */
28522: {
28523: OpcodeFamily = 90; CurrentInstrCycles = 12;
28524: {{ uae_s16 extra = get_iword(2);
28525: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
28526: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28527: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28528: uae_u32 tmp,bf0,bf1;
28529: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28530: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28531: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28532: tmp >>= (32 - width);
28533: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28534: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28535: tmp = ~tmp;
28536: tmp <<= (32 - width);
28537: bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) |
28538: (tmp >> (offset & 7)) |
28539: (((offset & 7) + width) >= 32 ? 0 :
28540: (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width))));
28541: put_long(dsta,bf0 );
28542: if (((offset & 7) + width) > 32) {
28543: bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) |
28544: (tmp << (8 - (offset & 7)));
28545: put_byte(dsta+4,bf1);
28546: }
28547: }}}}m68k_incpc(6);
28548: return 12;
28549: }
28550: unsigned long REGPARAM2 CPUFUNC(op_eaf9_0)(uae_u32 opcode) /* BFCHG */
28551: {
28552: OpcodeFamily = 90; CurrentInstrCycles = 16;
28553: {{ uae_s16 extra = get_iword(2);
28554: { uaecptr dsta = get_ilong(4);
28555: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28556: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28557: uae_u32 tmp,bf0,bf1;
28558: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28559: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28560: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28561: tmp >>= (32 - width);
28562: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28563: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28564: tmp = ~tmp;
28565: tmp <<= (32 - width);
28566: bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) |
28567: (tmp >> (offset & 7)) |
28568: (((offset & 7) + width) >= 32 ? 0 :
28569: (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width))));
28570: put_long(dsta,bf0 );
28571: if (((offset & 7) + width) > 32) {
28572: bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) |
28573: (tmp << (8 - (offset & 7)));
28574: put_byte(dsta+4,bf1);
28575: }
28576: }}}}m68k_incpc(8);
28577: return 16;
28578: }
28579: unsigned long REGPARAM2 CPUFUNC(op_ebc0_0)(uae_u32 opcode) /* BFEXTS */
28580: {
28581: uae_u32 dstreg = opcode & 7;
28582: OpcodeFamily = 91; CurrentInstrCycles = 8;
28583: {{ uae_s16 extra = get_iword(2);
28584: {{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28585: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28586: uae_u32 tmp = m68k_dreg(regs, dstreg) << (offset & 0x1f);
28587: tmp >>= (32 - width);
28588: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28589: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28590: if (GET_NFLG) tmp |= width == 32 ? 0 : (-1 << width);
28591: m68k_dreg(regs, (extra >> 12) & 7) = tmp;
28592: }}}}m68k_incpc(4);
28593: return 8;
28594: }
28595: unsigned long REGPARAM2 CPUFUNC(op_ebd0_0)(uae_u32 opcode) /* BFEXTS */
28596: {
28597: uae_u32 dstreg = opcode & 7;
28598: OpcodeFamily = 91; CurrentInstrCycles = 8;
28599: {{ uae_s16 extra = get_iword(2);
28600: { uaecptr dsta = m68k_areg(regs, dstreg);
28601: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28602: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28603: uae_u32 tmp,bf0,bf1;
28604: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28605: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28606: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28607: tmp >>= (32 - width);
28608: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28609: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28610: if (GET_NFLG) tmp |= width == 32 ? 0 : (-1 << width);
28611: m68k_dreg(regs, (extra >> 12) & 7) = tmp;
28612: }}}}m68k_incpc(4);
28613: return 8;
28614: }
28615: unsigned long REGPARAM2 CPUFUNC(op_ebe8_0)(uae_u32 opcode) /* BFEXTS */
28616: {
28617: uae_u32 dstreg = opcode & 7;
28618: OpcodeFamily = 91; CurrentInstrCycles = 12;
28619: {{ uae_s16 extra = get_iword(2);
28620: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
28621: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28622: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28623: uae_u32 tmp,bf0,bf1;
28624: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28625: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28626: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28627: tmp >>= (32 - width);
28628: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28629: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28630: if (GET_NFLG) tmp |= width == 32 ? 0 : (-1 << width);
28631: m68k_dreg(regs, (extra >> 12) & 7) = tmp;
28632: }}}}m68k_incpc(6);
28633: return 12;
28634: }
28635: unsigned long REGPARAM2 CPUFUNC(op_ebf0_0)(uae_u32 opcode) /* BFEXTS */
28636: {
28637: uae_u32 dstreg = opcode & 7;
28638: OpcodeFamily = 91; CurrentInstrCycles = 14;
28639: {{ uae_s16 extra = get_iword(2);
28640: {m68k_incpc(4);
28641: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
28642: BusCyclePenalty += 2;
28643: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28644: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28645: uae_u32 tmp,bf0,bf1;
28646: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28647: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28648: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28649: tmp >>= (32 - width);
28650: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28651: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28652: if (GET_NFLG) tmp |= width == 32 ? 0 : (-1 << width);
28653: m68k_dreg(regs, (extra >> 12) & 7) = tmp;
28654: }}}}}return 14;
28655: }
28656: unsigned long REGPARAM2 CPUFUNC(op_ebf8_0)(uae_u32 opcode) /* BFEXTS */
28657: {
28658: OpcodeFamily = 91; CurrentInstrCycles = 12;
28659: {{ uae_s16 extra = get_iword(2);
28660: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
28661: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28662: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28663: uae_u32 tmp,bf0,bf1;
28664: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28665: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28666: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28667: tmp >>= (32 - width);
28668: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28669: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28670: if (GET_NFLG) tmp |= width == 32 ? 0 : (-1 << width);
28671: m68k_dreg(regs, (extra >> 12) & 7) = tmp;
28672: }}}}m68k_incpc(6);
28673: return 12;
28674: }
28675: unsigned long REGPARAM2 CPUFUNC(op_ebf9_0)(uae_u32 opcode) /* BFEXTS */
28676: {
28677: OpcodeFamily = 91; CurrentInstrCycles = 16;
28678: {{ uae_s16 extra = get_iword(2);
28679: { uaecptr dsta = get_ilong(4);
28680: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28681: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28682: uae_u32 tmp,bf0,bf1;
28683: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28684: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28685: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28686: tmp >>= (32 - width);
28687: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28688: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28689: if (GET_NFLG) tmp |= width == 32 ? 0 : (-1 << width);
28690: m68k_dreg(regs, (extra >> 12) & 7) = tmp;
28691: }}}}m68k_incpc(8);
28692: return 16;
28693: }
28694: unsigned long REGPARAM2 CPUFUNC(op_ebfa_0)(uae_u32 opcode) /* BFEXTS */
28695: {
28696: uae_u32 dstreg = 2;
28697: OpcodeFamily = 91; CurrentInstrCycles = 12;
28698: {{ uae_s16 extra = get_iword(2);
28699: { uaecptr dsta = m68k_getpc () + 4;
28700: dsta += (uae_s32)(uae_s16)get_iword(4);
28701: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28702: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28703: uae_u32 tmp,bf0,bf1;
28704: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28705: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28706: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28707: tmp >>= (32 - width);
28708: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28709: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28710: if (GET_NFLG) tmp |= width == 32 ? 0 : (-1 << width);
28711: m68k_dreg(regs, (extra >> 12) & 7) = tmp;
28712: }}}}m68k_incpc(6);
28713: return 12;
28714: }
28715: unsigned long REGPARAM2 CPUFUNC(op_ebfb_0)(uae_u32 opcode) /* BFEXTS */
28716: {
28717: uae_u32 dstreg = 3;
28718: OpcodeFamily = 91; CurrentInstrCycles = 14;
28719: {{ uae_s16 extra = get_iword(2);
28720: {m68k_incpc(4);
28721: { uaecptr tmppc = m68k_getpc();
28722: uaecptr dsta = get_disp_ea_020(tmppc, next_iword());
28723: BusCyclePenalty += 2;
28724: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28725: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28726: uae_u32 tmp,bf0,bf1;
28727: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28728: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28729: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28730: tmp >>= (32 - width);
28731: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28732: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28733: if (GET_NFLG) tmp |= width == 32 ? 0 : (-1 << width);
28734: m68k_dreg(regs, (extra >> 12) & 7) = tmp;
28735: }}}}}return 14;
28736: }
28737: unsigned long REGPARAM2 CPUFUNC(op_ecc0_0)(uae_u32 opcode) /* BFCLR */
28738: {
28739: uae_u32 dstreg = opcode & 7;
28740: OpcodeFamily = 92; CurrentInstrCycles = 8;
28741: {{ uae_s16 extra = get_iword(2);
28742: {{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28743: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28744: uae_u32 tmp = m68k_dreg(regs, dstreg) << (offset & 0x1f);
28745: tmp >>= (32 - width);
28746: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28747: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28748: tmp = 0;
28749: tmp <<= (32 - width);
28750: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ((offset & 0x1f) == 0 ? 0 :
28751: (0xffffffff << (32 - (offset & 0x1f))))) |
28752: (tmp >> (offset & 0x1f)) |
28753: (((offset & 0x1f) + width) >= 32 ? 0 :
28754: (m68k_dreg(regs, dstreg) & ((uae_u32)0xffffffff >> ((offset & 0x1f) + width))));
28755: }}}}m68k_incpc(4);
28756: return 8;
28757: }
28758: unsigned long REGPARAM2 CPUFUNC(op_ecd0_0)(uae_u32 opcode) /* BFCLR */
28759: {
28760: uae_u32 dstreg = opcode & 7;
28761: OpcodeFamily = 92; CurrentInstrCycles = 8;
28762: {{ uae_s16 extra = get_iword(2);
28763: { uaecptr dsta = m68k_areg(regs, dstreg);
28764: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28765: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28766: uae_u32 tmp,bf0,bf1;
28767: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28768: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28769: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28770: tmp >>= (32 - width);
28771: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28772: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28773: tmp = 0;
28774: tmp <<= (32 - width);
28775: bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) |
28776: (tmp >> (offset & 7)) |
28777: (((offset & 7) + width) >= 32 ? 0 :
28778: (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width))));
28779: put_long(dsta,bf0 );
28780: if (((offset & 7) + width) > 32) {
28781: bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) |
28782: (tmp << (8 - (offset & 7)));
28783: put_byte(dsta+4,bf1);
28784: }
28785: }}}}m68k_incpc(4);
28786: return 8;
28787: }
28788: unsigned long REGPARAM2 CPUFUNC(op_ece8_0)(uae_u32 opcode) /* BFCLR */
28789: {
28790: uae_u32 dstreg = opcode & 7;
28791: OpcodeFamily = 92; CurrentInstrCycles = 12;
28792: {{ uae_s16 extra = get_iword(2);
28793: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
28794: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28795: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28796: uae_u32 tmp,bf0,bf1;
28797: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28798: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28799: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28800: tmp >>= (32 - width);
28801: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28802: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28803: tmp = 0;
28804: tmp <<= (32 - width);
28805: bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) |
28806: (tmp >> (offset & 7)) |
28807: (((offset & 7) + width) >= 32 ? 0 :
28808: (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width))));
28809: put_long(dsta,bf0 );
28810: if (((offset & 7) + width) > 32) {
28811: bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) |
28812: (tmp << (8 - (offset & 7)));
28813: put_byte(dsta+4,bf1);
28814: }
28815: }}}}m68k_incpc(6);
28816: return 12;
28817: }
28818: unsigned long REGPARAM2 CPUFUNC(op_ecf0_0)(uae_u32 opcode) /* BFCLR */
28819: {
28820: uae_u32 dstreg = opcode & 7;
28821: OpcodeFamily = 92; CurrentInstrCycles = 14;
28822: {{ uae_s16 extra = get_iword(2);
28823: {m68k_incpc(4);
28824: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
28825: BusCyclePenalty += 2;
28826: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28827: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28828: uae_u32 tmp,bf0,bf1;
28829: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28830: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28831: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28832: tmp >>= (32 - width);
28833: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28834: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28835: tmp = 0;
28836: tmp <<= (32 - width);
28837: bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) |
28838: (tmp >> (offset & 7)) |
28839: (((offset & 7) + width) >= 32 ? 0 :
28840: (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width))));
28841: put_long(dsta,bf0 );
28842: if (((offset & 7) + width) > 32) {
28843: bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) |
28844: (tmp << (8 - (offset & 7)));
28845: put_byte(dsta+4,bf1);
28846: }
28847: }}}}}return 14;
28848: }
28849: unsigned long REGPARAM2 CPUFUNC(op_ecf8_0)(uae_u32 opcode) /* BFCLR */
28850: {
28851: OpcodeFamily = 92; CurrentInstrCycles = 12;
28852: {{ uae_s16 extra = get_iword(2);
28853: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
28854: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28855: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28856: uae_u32 tmp,bf0,bf1;
28857: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28858: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28859: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28860: tmp >>= (32 - width);
28861: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28862: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28863: tmp = 0;
28864: tmp <<= (32 - width);
28865: bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) |
28866: (tmp >> (offset & 7)) |
28867: (((offset & 7) + width) >= 32 ? 0 :
28868: (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width))));
28869: put_long(dsta,bf0 );
28870: if (((offset & 7) + width) > 32) {
28871: bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) |
28872: (tmp << (8 - (offset & 7)));
28873: put_byte(dsta+4,bf1);
28874: }
28875: }}}}m68k_incpc(6);
28876: return 12;
28877: }
28878: unsigned long REGPARAM2 CPUFUNC(op_ecf9_0)(uae_u32 opcode) /* BFCLR */
28879: {
28880: OpcodeFamily = 92; CurrentInstrCycles = 16;
28881: {{ uae_s16 extra = get_iword(2);
28882: { uaecptr dsta = get_ilong(4);
28883: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28884: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28885: uae_u32 tmp,bf0,bf1;
28886: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28887: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28888: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28889: tmp >>= (32 - width);
28890: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28891: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28892: tmp = 0;
28893: tmp <<= (32 - width);
28894: bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) |
28895: (tmp >> (offset & 7)) |
28896: (((offset & 7) + width) >= 32 ? 0 :
28897: (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width))));
28898: put_long(dsta,bf0 );
28899: if (((offset & 7) + width) > 32) {
28900: bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) |
28901: (tmp << (8 - (offset & 7)));
28902: put_byte(dsta+4,bf1);
28903: }
28904: }}}}m68k_incpc(8);
28905: return 16;
28906: }
28907: unsigned long REGPARAM2 CPUFUNC(op_edc0_0)(uae_u32 opcode) /* BFFFO */
28908: {
28909: uae_u32 dstreg = opcode & 7;
28910: OpcodeFamily = 93; CurrentInstrCycles = 8;
28911: {{ uae_s16 extra = get_iword(2);
28912: {{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28913: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28914: uae_u32 tmp = m68k_dreg(regs, dstreg) << (offset & 0x1f);
28915: tmp >>= (32 - width);
28916: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28917: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28918: { uae_u32 mask = 1 << (width-1);
28919: while (mask) { if (tmp & mask) break; mask >>= 1; offset++; }}
28920: m68k_dreg(regs, (extra >> 12) & 7) = offset;
28921: }}}}m68k_incpc(4);
28922: return 8;
28923: }
28924: unsigned long REGPARAM2 CPUFUNC(op_edd0_0)(uae_u32 opcode) /* BFFFO */
28925: {
28926: uae_u32 dstreg = opcode & 7;
28927: OpcodeFamily = 93; CurrentInstrCycles = 8;
28928: {{ uae_s16 extra = get_iword(2);
28929: { uaecptr dsta = m68k_areg(regs, dstreg);
28930: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28931: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28932: uae_u32 tmp,bf0,bf1;
28933: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28934: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28935: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28936: tmp >>= (32 - width);
28937: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28938: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28939: { uae_u32 mask = 1 << (width-1);
28940: while (mask) { if (tmp & mask) break; mask >>= 1; offset++; }}
28941: m68k_dreg(regs, (extra >> 12) & 7) = offset;
28942: }}}}m68k_incpc(4);
28943: return 8;
28944: }
28945: unsigned long REGPARAM2 CPUFUNC(op_ede8_0)(uae_u32 opcode) /* BFFFO */
28946: {
28947: uae_u32 dstreg = opcode & 7;
28948: OpcodeFamily = 93; CurrentInstrCycles = 12;
28949: {{ uae_s16 extra = get_iword(2);
28950: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
28951: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28952: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28953: uae_u32 tmp,bf0,bf1;
28954: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28955: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28956: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28957: tmp >>= (32 - width);
28958: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28959: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28960: { uae_u32 mask = 1 << (width-1);
28961: while (mask) { if (tmp & mask) break; mask >>= 1; offset++; }}
28962: m68k_dreg(regs, (extra >> 12) & 7) = offset;
28963: }}}}m68k_incpc(6);
28964: return 12;
28965: }
28966: unsigned long REGPARAM2 CPUFUNC(op_edf0_0)(uae_u32 opcode) /* BFFFO */
28967: {
28968: uae_u32 dstreg = opcode & 7;
28969: OpcodeFamily = 93; CurrentInstrCycles = 14;
28970: {{ uae_s16 extra = get_iword(2);
28971: {m68k_incpc(4);
28972: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
28973: BusCyclePenalty += 2;
28974: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28975: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28976: uae_u32 tmp,bf0,bf1;
28977: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28978: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28979: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28980: tmp >>= (32 - width);
28981: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
28982: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
28983: { uae_u32 mask = 1 << (width-1);
28984: while (mask) { if (tmp & mask) break; mask >>= 1; offset++; }}
28985: m68k_dreg(regs, (extra >> 12) & 7) = offset;
28986: }}}}}return 14;
28987: }
28988: unsigned long REGPARAM2 CPUFUNC(op_edf8_0)(uae_u32 opcode) /* BFFFO */
28989: {
28990: OpcodeFamily = 93; CurrentInstrCycles = 12;
28991: {{ uae_s16 extra = get_iword(2);
28992: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
28993: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
28994: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
28995: uae_u32 tmp,bf0,bf1;
28996: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
28997: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
28998: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
28999: tmp >>= (32 - width);
29000: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
29001: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
29002: { uae_u32 mask = 1 << (width-1);
29003: while (mask) { if (tmp & mask) break; mask >>= 1; offset++; }}
29004: m68k_dreg(regs, (extra >> 12) & 7) = offset;
29005: }}}}m68k_incpc(6);
29006: return 12;
29007: }
29008: unsigned long REGPARAM2 CPUFUNC(op_edf9_0)(uae_u32 opcode) /* BFFFO */
29009: {
29010: OpcodeFamily = 93; CurrentInstrCycles = 16;
29011: {{ uae_s16 extra = get_iword(2);
29012: { uaecptr dsta = get_ilong(4);
29013: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
29014: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
29015: uae_u32 tmp,bf0,bf1;
29016: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
29017: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
29018: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
29019: tmp >>= (32 - width);
29020: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
29021: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
29022: { uae_u32 mask = 1 << (width-1);
29023: while (mask) { if (tmp & mask) break; mask >>= 1; offset++; }}
29024: m68k_dreg(regs, (extra >> 12) & 7) = offset;
29025: }}}}m68k_incpc(8);
29026: return 16;
29027: }
29028: unsigned long REGPARAM2 CPUFUNC(op_edfa_0)(uae_u32 opcode) /* BFFFO */
29029: {
29030: uae_u32 dstreg = 2;
29031: OpcodeFamily = 93; CurrentInstrCycles = 12;
29032: {{ uae_s16 extra = get_iword(2);
29033: { uaecptr dsta = m68k_getpc () + 4;
29034: dsta += (uae_s32)(uae_s16)get_iword(4);
29035: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
29036: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
29037: uae_u32 tmp,bf0,bf1;
29038: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
29039: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
29040: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
29041: tmp >>= (32 - width);
29042: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
29043: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
29044: { uae_u32 mask = 1 << (width-1);
29045: while (mask) { if (tmp & mask) break; mask >>= 1; offset++; }}
29046: m68k_dreg(regs, (extra >> 12) & 7) = offset;
29047: }}}}m68k_incpc(6);
29048: return 12;
29049: }
29050: unsigned long REGPARAM2 CPUFUNC(op_edfb_0)(uae_u32 opcode) /* BFFFO */
29051: {
29052: uae_u32 dstreg = 3;
29053: OpcodeFamily = 93; CurrentInstrCycles = 14;
29054: {{ uae_s16 extra = get_iword(2);
29055: {m68k_incpc(4);
29056: { uaecptr tmppc = m68k_getpc();
29057: uaecptr dsta = get_disp_ea_020(tmppc, next_iword());
29058: BusCyclePenalty += 2;
29059: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
29060: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
29061: uae_u32 tmp,bf0,bf1;
29062: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
29063: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
29064: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
29065: tmp >>= (32 - width);
29066: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
29067: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
29068: { uae_u32 mask = 1 << (width-1);
29069: while (mask) { if (tmp & mask) break; mask >>= 1; offset++; }}
29070: m68k_dreg(regs, (extra >> 12) & 7) = offset;
29071: }}}}}return 14;
29072: }
29073: unsigned long REGPARAM2 CPUFUNC(op_eec0_0)(uae_u32 opcode) /* BFSET */
29074: {
29075: uae_u32 dstreg = opcode & 7;
29076: OpcodeFamily = 94; CurrentInstrCycles = 8;
29077: {{ uae_s16 extra = get_iword(2);
29078: {{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
29079: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
29080: uae_u32 tmp = m68k_dreg(regs, dstreg) << (offset & 0x1f);
29081: tmp >>= (32 - width);
29082: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
29083: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
29084: tmp = 0xffffffff;
29085: tmp <<= (32 - width);
29086: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ((offset & 0x1f) == 0 ? 0 :
29087: (0xffffffff << (32 - (offset & 0x1f))))) |
29088: (tmp >> (offset & 0x1f)) |
29089: (((offset & 0x1f) + width) >= 32 ? 0 :
29090: (m68k_dreg(regs, dstreg) & ((uae_u32)0xffffffff >> ((offset & 0x1f) + width))));
29091: }}}}m68k_incpc(4);
29092: return 8;
29093: }
29094: unsigned long REGPARAM2 CPUFUNC(op_eed0_0)(uae_u32 opcode) /* BFSET */
29095: {
29096: uae_u32 dstreg = opcode & 7;
29097: OpcodeFamily = 94; CurrentInstrCycles = 8;
29098: {{ uae_s16 extra = get_iword(2);
29099: { uaecptr dsta = m68k_areg(regs, dstreg);
29100: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
29101: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
29102: uae_u32 tmp,bf0,bf1;
29103: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
29104: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
29105: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
29106: tmp >>= (32 - width);
29107: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
29108: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
29109: tmp = 0xffffffff;
29110: tmp <<= (32 - width);
29111: bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) |
29112: (tmp >> (offset & 7)) |
29113: (((offset & 7) + width) >= 32 ? 0 :
29114: (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width))));
29115: put_long(dsta,bf0 );
29116: if (((offset & 7) + width) > 32) {
29117: bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) |
29118: (tmp << (8 - (offset & 7)));
29119: put_byte(dsta+4,bf1);
29120: }
29121: }}}}m68k_incpc(4);
29122: return 8;
29123: }
29124: unsigned long REGPARAM2 CPUFUNC(op_eee8_0)(uae_u32 opcode) /* BFSET */
29125: {
29126: uae_u32 dstreg = opcode & 7;
29127: OpcodeFamily = 94; CurrentInstrCycles = 12;
29128: {{ uae_s16 extra = get_iword(2);
29129: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
29130: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
29131: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
29132: uae_u32 tmp,bf0,bf1;
29133: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
29134: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
29135: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
29136: tmp >>= (32 - width);
29137: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
29138: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
29139: tmp = 0xffffffff;
29140: tmp <<= (32 - width);
29141: bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) |
29142: (tmp >> (offset & 7)) |
29143: (((offset & 7) + width) >= 32 ? 0 :
29144: (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width))));
29145: put_long(dsta,bf0 );
29146: if (((offset & 7) + width) > 32) {
29147: bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) |
29148: (tmp << (8 - (offset & 7)));
29149: put_byte(dsta+4,bf1);
29150: }
29151: }}}}m68k_incpc(6);
29152: return 12;
29153: }
29154: unsigned long REGPARAM2 CPUFUNC(op_eef0_0)(uae_u32 opcode) /* BFSET */
29155: {
29156: uae_u32 dstreg = opcode & 7;
29157: OpcodeFamily = 94; CurrentInstrCycles = 14;
29158: {{ uae_s16 extra = get_iword(2);
29159: {m68k_incpc(4);
29160: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
29161: BusCyclePenalty += 2;
29162: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
29163: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
29164: uae_u32 tmp,bf0,bf1;
29165: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
29166: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
29167: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
29168: tmp >>= (32 - width);
29169: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
29170: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
29171: tmp = 0xffffffff;
29172: tmp <<= (32 - width);
29173: bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) |
29174: (tmp >> (offset & 7)) |
29175: (((offset & 7) + width) >= 32 ? 0 :
29176: (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width))));
29177: put_long(dsta,bf0 );
29178: if (((offset & 7) + width) > 32) {
29179: bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) |
29180: (tmp << (8 - (offset & 7)));
29181: put_byte(dsta+4,bf1);
29182: }
29183: }}}}}return 14;
29184: }
29185: unsigned long REGPARAM2 CPUFUNC(op_eef8_0)(uae_u32 opcode) /* BFSET */
29186: {
29187: OpcodeFamily = 94; CurrentInstrCycles = 12;
29188: {{ uae_s16 extra = get_iword(2);
29189: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
29190: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
29191: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
29192: uae_u32 tmp,bf0,bf1;
29193: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
29194: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
29195: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
29196: tmp >>= (32 - width);
29197: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
29198: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
29199: tmp = 0xffffffff;
29200: tmp <<= (32 - width);
29201: bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) |
29202: (tmp >> (offset & 7)) |
29203: (((offset & 7) + width) >= 32 ? 0 :
29204: (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width))));
29205: put_long(dsta,bf0 );
29206: if (((offset & 7) + width) > 32) {
29207: bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) |
29208: (tmp << (8 - (offset & 7)));
29209: put_byte(dsta+4,bf1);
29210: }
29211: }}}}m68k_incpc(6);
29212: return 12;
29213: }
29214: unsigned long REGPARAM2 CPUFUNC(op_eef9_0)(uae_u32 opcode) /* BFSET */
29215: {
29216: OpcodeFamily = 94; CurrentInstrCycles = 16;
29217: {{ uae_s16 extra = get_iword(2);
29218: { uaecptr dsta = get_ilong(4);
29219: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
29220: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
29221: uae_u32 tmp,bf0,bf1;
29222: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
29223: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
29224: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
29225: tmp >>= (32 - width);
29226: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
29227: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
29228: tmp = 0xffffffff;
29229: tmp <<= (32 - width);
29230: bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) |
29231: (tmp >> (offset & 7)) |
29232: (((offset & 7) + width) >= 32 ? 0 :
29233: (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width))));
29234: put_long(dsta,bf0 );
29235: if (((offset & 7) + width) > 32) {
29236: bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) |
29237: (tmp << (8 - (offset & 7)));
29238: put_byte(dsta+4,bf1);
29239: }
29240: }}}}m68k_incpc(8);
29241: return 16;
29242: }
29243: unsigned long REGPARAM2 CPUFUNC(op_efc0_0)(uae_u32 opcode) /* BFINS */
29244: {
29245: uae_u32 dstreg = opcode & 7;
29246: OpcodeFamily = 95; CurrentInstrCycles = 8;
29247: {{ uae_s16 extra = get_iword(2);
29248: {{ uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
29249: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
29250: uae_u32 tmp = m68k_dreg(regs, dstreg) << (offset & 0x1f);
29251: tmp >>= (32 - width);
29252: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
29253: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
29254: tmp = m68k_dreg(regs, (extra >> 12) & 7);
29255: SET_NFLG (tmp & (1 << (width - 1)) ? 1 : 0);
29256: SET_ZFLG (tmp == 0);
29257: tmp <<= (32 - width);
29258: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ((offset & 0x1f) == 0 ? 0 :
29259: (0xffffffff << (32 - (offset & 0x1f))))) |
29260: (tmp >> (offset & 0x1f)) |
29261: (((offset & 0x1f) + width) >= 32 ? 0 :
29262: (m68k_dreg(regs, dstreg) & ((uae_u32)0xffffffff >> ((offset & 0x1f) + width))));
29263: }}}}m68k_incpc(4);
29264: return 8;
29265: }
29266: unsigned long REGPARAM2 CPUFUNC(op_efd0_0)(uae_u32 opcode) /* BFINS */
29267: {
29268: uae_u32 dstreg = opcode & 7;
29269: OpcodeFamily = 95; CurrentInstrCycles = 8;
29270: {{ uae_s16 extra = get_iword(2);
29271: { uaecptr dsta = m68k_areg(regs, dstreg);
29272: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
29273: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
29274: uae_u32 tmp,bf0,bf1;
29275: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
29276: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
29277: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
29278: tmp >>= (32 - width);
29279: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
29280: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
29281: tmp = m68k_dreg(regs, (extra >> 12) & 7);
29282: SET_NFLG (tmp & (1 << (width - 1)) ? 1 : 0);
29283: SET_ZFLG (tmp == 0);
29284: tmp <<= (32 - width);
29285: bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) |
29286: (tmp >> (offset & 7)) |
29287: (((offset & 7) + width) >= 32 ? 0 :
29288: (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width))));
29289: put_long(dsta,bf0 );
29290: if (((offset & 7) + width) > 32) {
29291: bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) |
29292: (tmp << (8 - (offset & 7)));
29293: put_byte(dsta+4,bf1);
29294: }
29295: }}}}m68k_incpc(4);
29296: return 8;
29297: }
29298: unsigned long REGPARAM2 CPUFUNC(op_efe8_0)(uae_u32 opcode) /* BFINS */
29299: {
29300: uae_u32 dstreg = opcode & 7;
29301: OpcodeFamily = 95; CurrentInstrCycles = 12;
29302: {{ uae_s16 extra = get_iword(2);
29303: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
29304: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
29305: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
29306: uae_u32 tmp,bf0,bf1;
29307: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
29308: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
29309: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
29310: tmp >>= (32 - width);
29311: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
29312: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
29313: tmp = m68k_dreg(regs, (extra >> 12) & 7);
29314: SET_NFLG (tmp & (1 << (width - 1)) ? 1 : 0);
29315: SET_ZFLG (tmp == 0);
29316: tmp <<= (32 - width);
29317: bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) |
29318: (tmp >> (offset & 7)) |
29319: (((offset & 7) + width) >= 32 ? 0 :
29320: (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width))));
29321: put_long(dsta,bf0 );
29322: if (((offset & 7) + width) > 32) {
29323: bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) |
29324: (tmp << (8 - (offset & 7)));
29325: put_byte(dsta+4,bf1);
29326: }
29327: }}}}m68k_incpc(6);
29328: return 12;
29329: }
29330: unsigned long REGPARAM2 CPUFUNC(op_eff0_0)(uae_u32 opcode) /* BFINS */
29331: {
29332: uae_u32 dstreg = opcode & 7;
29333: OpcodeFamily = 95; CurrentInstrCycles = 14;
29334: {{ uae_s16 extra = get_iword(2);
29335: {m68k_incpc(4);
29336: { uaecptr dsta = get_disp_ea_020(m68k_areg(regs, dstreg), next_iword());
29337: BusCyclePenalty += 2;
29338: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
29339: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
29340: uae_u32 tmp,bf0,bf1;
29341: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
29342: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
29343: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
29344: tmp >>= (32 - width);
29345: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
29346: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
29347: tmp = m68k_dreg(regs, (extra >> 12) & 7);
29348: SET_NFLG (tmp & (1 << (width - 1)) ? 1 : 0);
29349: SET_ZFLG (tmp == 0);
29350: tmp <<= (32 - width);
29351: bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) |
29352: (tmp >> (offset & 7)) |
29353: (((offset & 7) + width) >= 32 ? 0 :
29354: (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width))));
29355: put_long(dsta,bf0 );
29356: if (((offset & 7) + width) > 32) {
29357: bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) |
29358: (tmp << (8 - (offset & 7)));
29359: put_byte(dsta+4,bf1);
29360: }
29361: }}}}}return 14;
29362: }
29363: unsigned long REGPARAM2 CPUFUNC(op_eff8_0)(uae_u32 opcode) /* BFINS */
29364: {
29365: OpcodeFamily = 95; CurrentInstrCycles = 12;
29366: {{ uae_s16 extra = get_iword(2);
29367: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
29368: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
29369: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
29370: uae_u32 tmp,bf0,bf1;
29371: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
29372: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
29373: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
29374: tmp >>= (32 - width);
29375: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
29376: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
29377: tmp = m68k_dreg(regs, (extra >> 12) & 7);
29378: SET_NFLG (tmp & (1 << (width - 1)) ? 1 : 0);
29379: SET_ZFLG (tmp == 0);
29380: tmp <<= (32 - width);
29381: bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) |
29382: (tmp >> (offset & 7)) |
29383: (((offset & 7) + width) >= 32 ? 0 :
29384: (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width))));
29385: put_long(dsta,bf0 );
29386: if (((offset & 7) + width) > 32) {
29387: bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) |
29388: (tmp << (8 - (offset & 7)));
29389: put_byte(dsta+4,bf1);
29390: }
29391: }}}}m68k_incpc(6);
29392: return 12;
29393: }
29394: unsigned long REGPARAM2 CPUFUNC(op_eff9_0)(uae_u32 opcode) /* BFINS */
29395: {
29396: OpcodeFamily = 95; CurrentInstrCycles = 16;
29397: {{ uae_s16 extra = get_iword(2);
29398: { uaecptr dsta = get_ilong(4);
29399: { uae_s32 offset = extra & 0x800 ? m68k_dreg(regs, (extra >> 6) & 7) : (extra >> 6) & 0x1f;
29400: int width = (((extra & 0x20 ? m68k_dreg(regs, extra & 7) : extra) -1) & 0x1f) +1;
29401: uae_u32 tmp,bf0,bf1;
29402: dsta += (offset >> 3) | (offset & 0x80000000 ? ~0x1fffffff : 0);
29403: bf0 = get_long(dsta);bf1 = get_byte(dsta+4) & 0xff;
29404: tmp = (bf0 << (offset & 7)) | (bf1 >> (8 - (offset & 7)));
29405: tmp >>= (32 - width);
29406: SET_NFLG (tmp & (1 << (width-1)) ? 1 : 0);
29407: SET_ZFLG (tmp == 0); SET_VFLG (0); SET_CFLG (0);
29408: tmp = m68k_dreg(regs, (extra >> 12) & 7);
29409: SET_NFLG (tmp & (1 << (width - 1)) ? 1 : 0);
29410: SET_ZFLG (tmp == 0);
29411: tmp <<= (32 - width);
29412: bf0 = (bf0 & (0xff000000 << (8 - (offset & 7)))) |
29413: (tmp >> (offset & 7)) |
29414: (((offset & 7) + width) >= 32 ? 0 :
29415: (bf0 & ((uae_u32)0xffffffff >> ((offset & 7) + width))));
29416: put_long(dsta,bf0 );
29417: if (((offset & 7) + width) > 32) {
29418: bf1 = (bf1 & (0xff >> (width - 32 + (offset & 7)))) |
29419: (tmp << (8 - (offset & 7)));
29420: put_byte(dsta+4,bf1);
29421: }
29422: }}}}m68k_incpc(8);
29423: return 16;
29424: }
29425: unsigned long REGPARAM2 CPUFUNC(op_f200_0)(uae_u32 opcode) /* FPP */
29426: {
29427: uae_u32 dstreg = opcode & 7;
29428: OpcodeFamily = 104; CurrentInstrCycles = 8;
29429: {{ uae_s16 extra = get_iword(2);
29430: m68k_incpc(4);
29431: fpp_opp(opcode,extra);
29432: }}return 8;
29433: }
29434: unsigned long REGPARAM2 CPUFUNC(op_f208_0)(uae_u32 opcode) /* FPP */
29435: {
29436: uae_u32 dstreg = opcode & 7;
29437: OpcodeFamily = 104; CurrentInstrCycles = 8;
29438: {{ uae_s16 extra = get_iword(2);
29439: m68k_incpc(4);
29440: fpp_opp(opcode,extra);
29441: }}return 8;
29442: }
29443: unsigned long REGPARAM2 CPUFUNC(op_f210_0)(uae_u32 opcode) /* FPP */
29444: {
29445: uae_u32 dstreg = opcode & 7;
29446: OpcodeFamily = 104; CurrentInstrCycles = 8;
29447: {{ uae_s16 extra = get_iword(2);
29448: m68k_incpc(4);
29449: fpp_opp(opcode,extra);
29450: }}return 8;
29451: }
29452: unsigned long REGPARAM2 CPUFUNC(op_f218_0)(uae_u32 opcode) /* FPP */
29453: {
29454: uae_u32 dstreg = opcode & 7;
29455: OpcodeFamily = 104; CurrentInstrCycles = 8;
29456: {{ uae_s16 extra = get_iword(2);
29457: m68k_incpc(4);
29458: fpp_opp(opcode,extra);
29459: }}return 8;
29460: }
29461: unsigned long REGPARAM2 CPUFUNC(op_f220_0)(uae_u32 opcode) /* FPP */
29462: {
29463: uae_u32 dstreg = opcode & 7;
29464: OpcodeFamily = 104; CurrentInstrCycles = 8;
29465: {{ uae_s16 extra = get_iword(2);
29466: m68k_incpc(4);
29467: fpp_opp(opcode,extra);
29468: }}return 8;
29469: }
29470: unsigned long REGPARAM2 CPUFUNC(op_f228_0)(uae_u32 opcode) /* FPP */
29471: {
29472: uae_u32 dstreg = opcode & 7;
29473: OpcodeFamily = 104; CurrentInstrCycles = 8;
29474: {{ uae_s16 extra = get_iword(2);
29475: m68k_incpc(4);
29476: fpp_opp(opcode,extra);
29477: }}return 8;
29478: }
29479: unsigned long REGPARAM2 CPUFUNC(op_f230_0)(uae_u32 opcode) /* FPP */
29480: {
29481: uae_u32 dstreg = opcode & 7;
29482: OpcodeFamily = 104; CurrentInstrCycles = 8;
29483: {{ uae_s16 extra = get_iword(2);
29484: m68k_incpc(4);
29485: fpp_opp(opcode,extra);
29486: }}return 8;
29487: }
29488: unsigned long REGPARAM2 CPUFUNC(op_f238_0)(uae_u32 opcode) /* FPP */
29489: {
29490: OpcodeFamily = 104; CurrentInstrCycles = 8;
29491: {{ uae_s16 extra = get_iword(2);
29492: m68k_incpc(4);
29493: fpp_opp(opcode,extra);
29494: }}return 8;
29495: }
29496: unsigned long REGPARAM2 CPUFUNC(op_f239_0)(uae_u32 opcode) /* FPP */
29497: {
29498: OpcodeFamily = 104; CurrentInstrCycles = 8;
29499: {{ uae_s16 extra = get_iword(2);
29500: m68k_incpc(4);
29501: fpp_opp(opcode,extra);
29502: }}return 8;
29503: }
29504: unsigned long REGPARAM2 CPUFUNC(op_f23a_0)(uae_u32 opcode) /* FPP */
29505: {
29506: uae_u32 dstreg = 2;
29507: OpcodeFamily = 104; CurrentInstrCycles = 8;
29508: {{ uae_s16 extra = get_iword(2);
29509: m68k_incpc(4);
29510: fpp_opp(opcode,extra);
29511: }}return 8;
29512: }
29513: unsigned long REGPARAM2 CPUFUNC(op_f23b_0)(uae_u32 opcode) /* FPP */
29514: {
29515: uae_u32 dstreg = 3;
29516: OpcodeFamily = 104; CurrentInstrCycles = 8;
29517: {{ uae_s16 extra = get_iword(2);
29518: m68k_incpc(4);
29519: fpp_opp(opcode,extra);
29520: }}return 8;
29521: }
29522: unsigned long REGPARAM2 CPUFUNC(op_f23c_0)(uae_u32 opcode) /* FPP */
29523: {
29524: OpcodeFamily = 104; CurrentInstrCycles = 8;
29525: {{ uae_s16 extra = get_iword(2);
29526: m68k_incpc(4);
29527: fpp_opp(opcode,extra);
29528: }}return 8;
29529: }
29530: unsigned long REGPARAM2 CPUFUNC(op_f240_0)(uae_u32 opcode) /* FScc */
29531: {
29532: uae_u32 dstreg = opcode & 7;
29533: OpcodeFamily = 106; CurrentInstrCycles = 8;
29534: {{ uae_s16 extra = get_iword(2);
29535: m68k_incpc(4);
29536: fscc_opp(opcode,extra);
29537: }}return 8;
29538: }
29539: unsigned long REGPARAM2 CPUFUNC(op_f248_0)(uae_u32 opcode) /* FDBcc */
29540: {
29541: uae_u32 dstreg = opcode & 7;
29542: OpcodeFamily = 105; CurrentInstrCycles = 8;
29543: {{ uae_s16 extra = get_iword(2);
29544: m68k_incpc(4);
29545: fdbcc_opp(opcode,extra);
29546: }}return 8;
29547: }
29548: unsigned long REGPARAM2 CPUFUNC(op_f250_0)(uae_u32 opcode) /* FScc */
29549: {
29550: uae_u32 dstreg = opcode & 7;
29551: OpcodeFamily = 106; CurrentInstrCycles = 8;
29552: {{ uae_s16 extra = get_iword(2);
29553: m68k_incpc(4);
29554: fscc_opp(opcode,extra);
29555: }}return 8;
29556: }
29557: unsigned long REGPARAM2 CPUFUNC(op_f258_0)(uae_u32 opcode) /* FScc */
29558: {
29559: uae_u32 dstreg = opcode & 7;
29560: OpcodeFamily = 106; CurrentInstrCycles = 8;
29561: {{ uae_s16 extra = get_iword(2);
29562: m68k_incpc(4);
29563: fscc_opp(opcode,extra);
29564: }}return 8;
29565: }
29566: unsigned long REGPARAM2 CPUFUNC(op_f260_0)(uae_u32 opcode) /* FScc */
29567: {
29568: uae_u32 dstreg = opcode & 7;
29569: OpcodeFamily = 106; CurrentInstrCycles = 8;
29570: {{ uae_s16 extra = get_iword(2);
29571: m68k_incpc(4);
29572: fscc_opp(opcode,extra);
29573: }}return 8;
29574: }
29575: unsigned long REGPARAM2 CPUFUNC(op_f268_0)(uae_u32 opcode) /* FScc */
29576: {
29577: uae_u32 dstreg = opcode & 7;
29578: OpcodeFamily = 106; CurrentInstrCycles = 8;
29579: {{ uae_s16 extra = get_iword(2);
29580: m68k_incpc(4);
29581: fscc_opp(opcode,extra);
29582: }}return 8;
29583: }
29584: unsigned long REGPARAM2 CPUFUNC(op_f270_0)(uae_u32 opcode) /* FScc */
29585: {
29586: uae_u32 dstreg = opcode & 7;
29587: OpcodeFamily = 106; CurrentInstrCycles = 8;
29588: {{ uae_s16 extra = get_iword(2);
29589: m68k_incpc(4);
29590: fscc_opp(opcode,extra);
29591: }}return 8;
29592: }
29593: unsigned long REGPARAM2 CPUFUNC(op_f278_0)(uae_u32 opcode) /* FScc */
29594: {
29595: OpcodeFamily = 106; CurrentInstrCycles = 8;
29596: {{ uae_s16 extra = get_iword(2);
29597: m68k_incpc(4);
29598: fscc_opp(opcode,extra);
29599: }}return 8;
29600: }
29601: unsigned long REGPARAM2 CPUFUNC(op_f279_0)(uae_u32 opcode) /* FScc */
29602: {
29603: OpcodeFamily = 106; CurrentInstrCycles = 8;
29604: {{ uae_s16 extra = get_iword(2);
29605: m68k_incpc(4);
29606: fscc_opp(opcode,extra);
29607: }}return 8;
29608: }
29609: unsigned long REGPARAM2 CPUFUNC(op_f27a_0)(uae_u32 opcode) /* FTRAPcc */
29610: {
29611: OpcodeFamily = 107; CurrentInstrCycles = 8;
29612: {m68k_incpc(2);
29613: { uaecptr oldpc = m68k_getpc();
29614: { uae_s16 dummy = get_iword(0);
29615: m68k_incpc(2);
29616: ftrapcc_opp(opcode,oldpc);
29617: }}}return 8;
29618: }
29619: unsigned long REGPARAM2 CPUFUNC(op_f27b_0)(uae_u32 opcode) /* FTRAPcc */
29620: {
29621: OpcodeFamily = 107; CurrentInstrCycles = 12;
29622: {m68k_incpc(2);
29623: { uaecptr oldpc = m68k_getpc();
29624: { uae_s32 dummy = get_ilong(0);
29625: m68k_incpc(4);
29626: ftrapcc_opp(opcode,oldpc);
29627: }}}return 12;
29628: }
29629: unsigned long REGPARAM2 CPUFUNC(op_f27c_0)(uae_u32 opcode) /* FTRAPcc */
29630: {
29631: OpcodeFamily = 107; CurrentInstrCycles = 4;
29632: {m68k_incpc(2);
29633: { uaecptr oldpc = m68k_getpc();
29634: ftrapcc_opp(opcode,oldpc);
29635: }}return 4;
29636: }
29637: unsigned long REGPARAM2 CPUFUNC(op_f280_0)(uae_u32 opcode) /* FBcc */
29638: {
29639: uae_u32 srcreg = (opcode & 63);
29640: OpcodeFamily = 108; CurrentInstrCycles = 8;
29641: {m68k_incpc(2);
29642: { uaecptr pc = m68k_getpc();
29643: { uae_s16 extra = get_iword(0);
29644: m68k_incpc(2);
29645: fbcc_opp(opcode,pc,extra);
29646: }}}return 8;
29647: }
29648: unsigned long REGPARAM2 CPUFUNC(op_f2c0_0)(uae_u32 opcode) /* FBcc */
29649: {
29650: uae_u32 srcreg = (opcode & 63);
29651: OpcodeFamily = 108; CurrentInstrCycles = 12;
29652: {m68k_incpc(2);
29653: { uaecptr pc = m68k_getpc();
29654: { uae_s32 extra = get_ilong(0);
29655: m68k_incpc(4);
29656: fbcc_opp(opcode,pc,extra);
29657: }}}return 12;
29658: }
29659: unsigned long REGPARAM2 CPUFUNC(op_f310_0)(uae_u32 opcode) /* FSAVE */
29660: {
29661: uae_u32 srcreg = (opcode & 7);
29662: OpcodeFamily = 109; CurrentInstrCycles = 4;
29663: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1835; }
29664: {m68k_incpc(2);
29665: fsave_opp(opcode);
29666: }}endlabel1835: ;
29667: return 4;
29668: }
29669: unsigned long REGPARAM2 CPUFUNC(op_f320_0)(uae_u32 opcode) /* FSAVE */
29670: {
29671: uae_u32 srcreg = (opcode & 7);
29672: OpcodeFamily = 109; CurrentInstrCycles = 4;
29673: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1836; }
29674: {m68k_incpc(2);
29675: fsave_opp(opcode);
29676: }}endlabel1836: ;
29677: return 4;
29678: }
29679: unsigned long REGPARAM2 CPUFUNC(op_f328_0)(uae_u32 opcode) /* FSAVE */
29680: {
29681: uae_u32 srcreg = (opcode & 7);
29682: OpcodeFamily = 109; CurrentInstrCycles = 4;
29683: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1837; }
29684: {m68k_incpc(2);
29685: fsave_opp(opcode);
29686: }}endlabel1837: ;
29687: return 4;
29688: }
29689: unsigned long REGPARAM2 CPUFUNC(op_f330_0)(uae_u32 opcode) /* FSAVE */
29690: {
29691: uae_u32 srcreg = (opcode & 7);
29692: OpcodeFamily = 109; CurrentInstrCycles = 4;
29693: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1838; }
29694: {m68k_incpc(2);
29695: fsave_opp(opcode);
29696: }}endlabel1838: ;
29697: return 4;
29698: }
29699: unsigned long REGPARAM2 CPUFUNC(op_f338_0)(uae_u32 opcode) /* FSAVE */
29700: {
29701: OpcodeFamily = 109; CurrentInstrCycles = 4;
29702: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1839; }
29703: {m68k_incpc(2);
29704: fsave_opp(opcode);
29705: }}endlabel1839: ;
29706: return 4;
29707: }
29708: unsigned long REGPARAM2 CPUFUNC(op_f339_0)(uae_u32 opcode) /* FSAVE */
29709: {
29710: OpcodeFamily = 109; CurrentInstrCycles = 4;
29711: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1840; }
29712: {m68k_incpc(2);
29713: fsave_opp(opcode);
29714: }}endlabel1840: ;
29715: return 4;
29716: }
29717: unsigned long REGPARAM2 CPUFUNC(op_f350_0)(uae_u32 opcode) /* FRESTORE */
29718: {
29719: uae_u32 srcreg = (opcode & 7);
29720: OpcodeFamily = 110; CurrentInstrCycles = 4;
29721: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1841; }
29722: {m68k_incpc(2);
29723: frestore_opp(opcode);
29724: }}endlabel1841: ;
29725: return 4;
29726: }
29727: unsigned long REGPARAM2 CPUFUNC(op_f358_0)(uae_u32 opcode) /* FRESTORE */
29728: {
29729: uae_u32 srcreg = (opcode & 7);
29730: OpcodeFamily = 110; CurrentInstrCycles = 4;
29731: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1842; }
29732: {m68k_incpc(2);
29733: frestore_opp(opcode);
29734: }}endlabel1842: ;
29735: return 4;
29736: }
29737: unsigned long REGPARAM2 CPUFUNC(op_f368_0)(uae_u32 opcode) /* FRESTORE */
29738: {
29739: uae_u32 srcreg = (opcode & 7);
29740: OpcodeFamily = 110; CurrentInstrCycles = 4;
29741: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1843; }
29742: {m68k_incpc(2);
29743: frestore_opp(opcode);
29744: }}endlabel1843: ;
29745: return 4;
29746: }
29747: unsigned long REGPARAM2 CPUFUNC(op_f370_0)(uae_u32 opcode) /* FRESTORE */
29748: {
29749: uae_u32 srcreg = (opcode & 7);
29750: OpcodeFamily = 110; CurrentInstrCycles = 4;
29751: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1844; }
29752: {m68k_incpc(2);
29753: frestore_opp(opcode);
29754: }}endlabel1844: ;
29755: return 4;
29756: }
29757: unsigned long REGPARAM2 CPUFUNC(op_f378_0)(uae_u32 opcode) /* FRESTORE */
29758: {
29759: OpcodeFamily = 110; CurrentInstrCycles = 4;
29760: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1845; }
29761: {m68k_incpc(2);
29762: frestore_opp(opcode);
29763: }}endlabel1845: ;
29764: return 4;
29765: }
29766: unsigned long REGPARAM2 CPUFUNC(op_f379_0)(uae_u32 opcode) /* FRESTORE */
29767: {
29768: OpcodeFamily = 110; CurrentInstrCycles = 4;
29769: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1846; }
29770: {m68k_incpc(2);
29771: frestore_opp(opcode);
29772: }}endlabel1846: ;
29773: return 4;
29774: }
29775: unsigned long REGPARAM2 CPUFUNC(op_f37a_0)(uae_u32 opcode) /* FRESTORE */
29776: {
29777: OpcodeFamily = 110; CurrentInstrCycles = 4;
29778: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1847; }
29779: {m68k_incpc(2);
29780: frestore_opp(opcode);
29781: }}endlabel1847: ;
29782: return 4;
29783: }
29784: unsigned long REGPARAM2 CPUFUNC(op_f37b_0)(uae_u32 opcode) /* FRESTORE */
29785: {
29786: OpcodeFamily = 110; CurrentInstrCycles = 4;
29787: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1848; }
29788: {m68k_incpc(2);
29789: frestore_opp(opcode);
29790: }}endlabel1848: ;
29791: return 4;
29792: }
29793: unsigned long REGPARAM2 CPUFUNC(op_f408_0)(uae_u32 opcode) /* CINVL */
29794: {
29795: uae_u32 srcreg = ((opcode >> 6) & 3);
29796: uae_u32 dstreg = opcode & 7;
29797: OpcodeFamily = 111; CurrentInstrCycles = 4;
29798: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1849; }
29799: {}}m68k_incpc(2);
29800: endlabel1849: ;
29801: return 4;
29802: }
29803: unsigned long REGPARAM2 CPUFUNC(op_f410_0)(uae_u32 opcode) /* CINVP */
29804: {
29805: uae_u32 srcreg = ((opcode >> 6) & 3);
29806: uae_u32 dstreg = opcode & 7;
29807: OpcodeFamily = 112; CurrentInstrCycles = 4;
29808: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1850; }
29809: {}}m68k_incpc(2);
29810: endlabel1850: ;
29811: return 4;
29812: }
29813: unsigned long REGPARAM2 CPUFUNC(op_f418_0)(uae_u32 opcode) /* CINVA */
29814: {
29815: uae_u32 srcreg = ((opcode >> 6) & 3);
29816: OpcodeFamily = 113; CurrentInstrCycles = 4;
29817: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1851; }
29818: {}}m68k_incpc(2);
29819: endlabel1851: ;
29820: return 4;
29821: }
29822: unsigned long REGPARAM2 CPUFUNC(op_f419_0)(uae_u32 opcode) /* CINVA */
29823: {
29824: uae_u32 srcreg = ((opcode >> 6) & 3);
29825: OpcodeFamily = 113; CurrentInstrCycles = 4;
29826: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1852; }
29827: {}}m68k_incpc(2);
29828: endlabel1852: ;
29829: return 4;
29830: }
29831: unsigned long REGPARAM2 CPUFUNC(op_f41a_0)(uae_u32 opcode) /* CINVA */
29832: {
29833: uae_u32 srcreg = ((opcode >> 6) & 3);
29834: OpcodeFamily = 113; CurrentInstrCycles = 4;
29835: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1853; }
29836: {}}m68k_incpc(2);
29837: endlabel1853: ;
29838: return 4;
29839: }
29840: unsigned long REGPARAM2 CPUFUNC(op_f41b_0)(uae_u32 opcode) /* CINVA */
29841: {
29842: uae_u32 srcreg = ((opcode >> 6) & 3);
29843: OpcodeFamily = 113; CurrentInstrCycles = 4;
29844: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1854; }
29845: {}}m68k_incpc(2);
29846: endlabel1854: ;
29847: return 4;
29848: }
29849: unsigned long REGPARAM2 CPUFUNC(op_f41c_0)(uae_u32 opcode) /* CINVA */
29850: {
29851: uae_u32 srcreg = ((opcode >> 6) & 3);
29852: OpcodeFamily = 113; CurrentInstrCycles = 4;
29853: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1855; }
29854: {}}m68k_incpc(2);
29855: endlabel1855: ;
29856: return 4;
29857: }
29858: unsigned long REGPARAM2 CPUFUNC(op_f41d_0)(uae_u32 opcode) /* CINVA */
29859: {
29860: uae_u32 srcreg = ((opcode >> 6) & 3);
29861: OpcodeFamily = 113; CurrentInstrCycles = 4;
29862: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1856; }
29863: {}}m68k_incpc(2);
29864: endlabel1856: ;
29865: return 4;
29866: }
29867: unsigned long REGPARAM2 CPUFUNC(op_f41e_0)(uae_u32 opcode) /* CINVA */
29868: {
29869: uae_u32 srcreg = ((opcode >> 6) & 3);
29870: OpcodeFamily = 113; CurrentInstrCycles = 4;
29871: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1857; }
29872: {}}m68k_incpc(2);
29873: endlabel1857: ;
29874: return 4;
29875: }
29876: unsigned long REGPARAM2 CPUFUNC(op_f41f_0)(uae_u32 opcode) /* CINVA */
29877: {
29878: uae_u32 srcreg = ((opcode >> 6) & 3);
29879: OpcodeFamily = 113; CurrentInstrCycles = 4;
29880: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1858; }
29881: {}}m68k_incpc(2);
29882: endlabel1858: ;
29883: return 4;
29884: }
29885: unsigned long REGPARAM2 CPUFUNC(op_f428_0)(uae_u32 opcode) /* CPUSHL */
29886: {
29887: uae_u32 srcreg = ((opcode >> 6) & 3);
29888: uae_u32 dstreg = opcode & 7;
29889: OpcodeFamily = 114; CurrentInstrCycles = 4;
29890: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1859; }
29891: {}}m68k_incpc(2);
29892: endlabel1859: ;
29893: return 4;
29894: }
29895: unsigned long REGPARAM2 CPUFUNC(op_f430_0)(uae_u32 opcode) /* CPUSHP */
29896: {
29897: uae_u32 srcreg = ((opcode >> 6) & 3);
29898: uae_u32 dstreg = opcode & 7;
29899: OpcodeFamily = 115; CurrentInstrCycles = 4;
29900: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1860; }
29901: {}}m68k_incpc(2);
29902: endlabel1860: ;
29903: return 4;
29904: }
29905: unsigned long REGPARAM2 CPUFUNC(op_f438_0)(uae_u32 opcode) /* CPUSHA */
29906: {
29907: uae_u32 srcreg = ((opcode >> 6) & 3);
29908: OpcodeFamily = 116; CurrentInstrCycles = 4;
29909: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1861; }
29910: {}}m68k_incpc(2);
29911: endlabel1861: ;
29912: return 4;
29913: }
29914: unsigned long REGPARAM2 CPUFUNC(op_f439_0)(uae_u32 opcode) /* CPUSHA */
29915: {
29916: uae_u32 srcreg = ((opcode >> 6) & 3);
29917: OpcodeFamily = 116; CurrentInstrCycles = 4;
29918: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1862; }
29919: {}}m68k_incpc(2);
29920: endlabel1862: ;
29921: return 4;
29922: }
29923: unsigned long REGPARAM2 CPUFUNC(op_f43a_0)(uae_u32 opcode) /* CPUSHA */
29924: {
29925: uae_u32 srcreg = ((opcode >> 6) & 3);
29926: OpcodeFamily = 116; CurrentInstrCycles = 4;
29927: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1863; }
29928: {}}m68k_incpc(2);
29929: endlabel1863: ;
29930: return 4;
29931: }
29932: unsigned long REGPARAM2 CPUFUNC(op_f43b_0)(uae_u32 opcode) /* CPUSHA */
29933: {
29934: uae_u32 srcreg = ((opcode >> 6) & 3);
29935: OpcodeFamily = 116; CurrentInstrCycles = 4;
29936: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1864; }
29937: {}}m68k_incpc(2);
29938: endlabel1864: ;
29939: return 4;
29940: }
29941: unsigned long REGPARAM2 CPUFUNC(op_f43c_0)(uae_u32 opcode) /* CPUSHA */
29942: {
29943: uae_u32 srcreg = ((opcode >> 6) & 3);
29944: OpcodeFamily = 116; CurrentInstrCycles = 4;
29945: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1865; }
29946: {}}m68k_incpc(2);
29947: endlabel1865: ;
29948: return 4;
29949: }
29950: unsigned long REGPARAM2 CPUFUNC(op_f43d_0)(uae_u32 opcode) /* CPUSHA */
29951: {
29952: uae_u32 srcreg = ((opcode >> 6) & 3);
29953: OpcodeFamily = 116; CurrentInstrCycles = 4;
29954: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1866; }
29955: {}}m68k_incpc(2);
29956: endlabel1866: ;
29957: return 4;
29958: }
29959: unsigned long REGPARAM2 CPUFUNC(op_f43e_0)(uae_u32 opcode) /* CPUSHA */
29960: {
29961: uae_u32 srcreg = ((opcode >> 6) & 3);
29962: OpcodeFamily = 116; CurrentInstrCycles = 4;
29963: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1867; }
29964: {}}m68k_incpc(2);
29965: endlabel1867: ;
29966: return 4;
29967: }
29968: unsigned long REGPARAM2 CPUFUNC(op_f43f_0)(uae_u32 opcode) /* CPUSHA */
29969: {
29970: uae_u32 srcreg = ((opcode >> 6) & 3);
29971: OpcodeFamily = 116; CurrentInstrCycles = 4;
29972: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1868; }
29973: {}}m68k_incpc(2);
29974: endlabel1868: ;
29975: return 4;
29976: }
29977: unsigned long REGPARAM2 CPUFUNC(op_f500_0)(uae_u32 opcode) /* MMUOP */
29978: {
29979: uae_u32 srcreg = (uae_s32)(uae_s8)((opcode >> 3) & 255);
29980: uae_u32 dstreg = opcode & 7;
29981: OpcodeFamily = 118; CurrentInstrCycles = 4;
29982: {{ uae_u32 extra = srcreg;
29983: m68k_incpc(2);
29984: mmu_op(opcode,extra);
29985: }}return 4;
29986: }
29987: unsigned long REGPARAM2 CPUFUNC(op_f600_0)(uae_u32 opcode) /* MOVE16 */
29988: {
29989: uae_u32 srcreg = (opcode & 7);
29990: OpcodeFamily = 117; CurrentInstrCycles = 12;
29991: {{ uaecptr memsa = m68k_areg(regs, srcreg);
29992: { uaecptr memda = get_ilong(2);
29993: memsa &= ~15;
29994: memda &= ~15;
29995: put_long(memda, get_long(memsa));
29996: put_long(memda+4, get_long(memsa+4));
29997: put_long(memda+8, get_long(memsa+8));
29998: put_long(memda+12, get_long(memsa+12));
29999: m68k_areg(regs, srcreg) += 16;
30000: }}}m68k_incpc(6);
30001: return 12;
30002: }
30003: unsigned long REGPARAM2 CPUFUNC(op_f608_0)(uae_u32 opcode) /* MOVE16 */
30004: {
30005: uae_u32 dstreg = opcode & 7;
30006: OpcodeFamily = 117; CurrentInstrCycles = 12;
30007: {{ uaecptr memsa = get_ilong(2);
30008: { uaecptr memda = m68k_areg(regs, dstreg);
30009: memsa &= ~15;
30010: memda &= ~15;
30011: put_long(memda, get_long(memsa));
30012: put_long(memda+4, get_long(memsa+4));
30013: put_long(memda+8, get_long(memsa+8));
30014: put_long(memda+12, get_long(memsa+12));
30015: m68k_areg(regs, dstreg) += 16;
30016: }}}m68k_incpc(6);
30017: return 12;
30018: }
30019: unsigned long REGPARAM2 CPUFUNC(op_f610_0)(uae_u32 opcode) /* MOVE16 */
30020: {
30021: uae_u32 srcreg = (opcode & 7);
30022: OpcodeFamily = 117; CurrentInstrCycles = 12;
30023: {{ uaecptr memsa = m68k_areg(regs, srcreg);
30024: { uaecptr memda = get_ilong(2);
30025: memsa &= ~15;
30026: memda &= ~15;
30027: put_long(memda, get_long(memsa));
30028: put_long(memda+4, get_long(memsa+4));
30029: put_long(memda+8, get_long(memsa+8));
30030: put_long(memda+12, get_long(memsa+12));
30031: }}}m68k_incpc(6);
30032: return 12;
30033: }
30034: unsigned long REGPARAM2 CPUFUNC(op_f618_0)(uae_u32 opcode) /* MOVE16 */
30035: {
30036: uae_u32 dstreg = opcode & 7;
30037: OpcodeFamily = 117; CurrentInstrCycles = 12;
30038: {{ uaecptr memsa = get_ilong(2);
30039: { uaecptr memda = m68k_areg(regs, dstreg);
30040: memsa &= ~15;
30041: memda &= ~15;
30042: put_long(memda, get_long(memsa));
30043: put_long(memda+4, get_long(memsa+4));
30044: put_long(memda+8, get_long(memsa+8));
30045: put_long(memda+12, get_long(memsa+12));
30046: }}}m68k_incpc(6);
30047: return 12;
30048: }
30049: unsigned long REGPARAM2 CPUFUNC(op_f620_0)(uae_u32 opcode) /* MOVE16 */
30050: {
30051: uae_u32 srcreg = (opcode & 7);
30052: uae_u32 dstreg = 0;
30053: OpcodeFamily = 117; CurrentInstrCycles = 8;
30054: { uaecptr mems = m68k_areg(regs, srcreg) & ~15, memd;
30055: dstreg = (get_iword(2) >> 12) & 7;
30056: memd = m68k_areg(regs, dstreg) & ~15;
30057: put_long(memd, get_long(mems));
30058: put_long(memd+4, get_long(mems+4));
30059: put_long(memd+8, get_long(mems+8));
30060: put_long(memd+12, get_long(mems+12));
30061: if (srcreg != dstreg)
30062: m68k_areg(regs, srcreg) += 16;
30063: m68k_areg(regs, dstreg) += 16;
30064: }m68k_incpc(4);
30065: return 8;
30066: }
30067: #endif
30068:
30069:
30070: #if !defined(PART_1) && !defined(PART_2) && !defined(PART_3) && !defined(PART_4) && !defined(PART_5) && !defined(PART_6) && !defined(PART_7) && !defined(PART_8)
30071: #define PART_1 1
30072: #define PART_2 1
30073: #define PART_3 1
30074: #define PART_4 1
30075: #define PART_5 1
30076: #define PART_6 1
30077: #define PART_7 1
30078: #define PART_8 1
30079: #endif
30080:
30081: #ifdef PART_1
30082: #endif
30083:
30084: #ifdef PART_2
30085: #endif
30086:
30087: #ifdef PART_3
30088: #endif
30089:
30090: #ifdef PART_4
30091: #endif
30092:
30093: #ifdef PART_5
30094: #endif
30095:
30096: #ifdef PART_6
30097: #endif
30098:
30099: #ifdef PART_7
30100: #endif
30101:
30102: #ifdef PART_8
30103: #endif
30104:
30105:
30106: #if !defined(PART_1) && !defined(PART_2) && !defined(PART_3) && !defined(PART_4) && !defined(PART_5) && !defined(PART_6) && !defined(PART_7) && !defined(PART_8)
30107: #define PART_1 1
30108: #define PART_2 1
30109: #define PART_3 1
30110: #define PART_4 1
30111: #define PART_5 1
30112: #define PART_6 1
30113: #define PART_7 1
30114: #define PART_8 1
30115: #endif
30116:
30117: #ifdef PART_1
30118: #endif
30119:
30120: #ifdef PART_2
30121: #endif
30122:
30123: #ifdef PART_3
30124: #endif
30125:
30126: #ifdef PART_4
30127: #endif
30128:
30129: #ifdef PART_5
30130: #endif
30131:
30132: #ifdef PART_6
30133: #endif
30134:
30135: #ifdef PART_7
30136: #endif
30137:
30138: #ifdef PART_8
30139: #endif
30140:
30141:
30142: #if !defined(PART_1) && !defined(PART_2) && !defined(PART_3) && !defined(PART_4) && !defined(PART_5) && !defined(PART_6) && !defined(PART_7) && !defined(PART_8)
30143: #define PART_1 1
30144: #define PART_2 1
30145: #define PART_3 1
30146: #define PART_4 1
30147: #define PART_5 1
30148: #define PART_6 1
30149: #define PART_7 1
30150: #define PART_8 1
30151: #endif
30152:
30153: #ifdef PART_1
30154: unsigned long REGPARAM2 CPUFUNC(op_30_3)(uae_u32 opcode) /* OR */
30155: {
30156: uae_u32 dstreg = opcode & 7;
30157: OpcodeFamily = 1; CurrentInstrCycles = 22;
30158: {{ uae_s8 src = get_ibyte(2);
30159: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
30160: BusCyclePenalty += 2;
30161: { uae_s8 dst = get_byte(dsta);
30162: src |= dst;
30163: CLEAR_CZNV;
30164: SET_ZFLG (((uae_s8)(src)) == 0);
30165: SET_NFLG (((uae_s8)(src)) < 0);
30166: put_byte(dsta,src);
30167: }}}}m68k_incpc(6);
30168: return 22;
30169: }
30170: unsigned long REGPARAM2 CPUFUNC(op_70_3)(uae_u32 opcode) /* OR */
30171: {
30172: uae_u32 dstreg = opcode & 7;
30173: OpcodeFamily = 1; CurrentInstrCycles = 22;
30174: {{ uae_s16 src = get_iword(2);
30175: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
30176: BusCyclePenalty += 2;
30177: { uae_s16 dst = get_word(dsta);
30178: src |= dst;
30179: CLEAR_CZNV;
30180: SET_ZFLG (((uae_s16)(src)) == 0);
30181: SET_NFLG (((uae_s16)(src)) < 0);
30182: put_word(dsta,src);
30183: }}}}m68k_incpc(6);
30184: return 22;
30185: }
30186: unsigned long REGPARAM2 CPUFUNC(op_b0_3)(uae_u32 opcode) /* OR */
30187: {
30188: uae_u32 dstreg = opcode & 7;
30189: OpcodeFamily = 1; CurrentInstrCycles = 34;
30190: {{ uae_s32 src = get_ilong(2);
30191: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6));
30192: BusCyclePenalty += 2;
30193: { uae_s32 dst = get_long(dsta);
30194: src |= dst;
30195: CLEAR_CZNV;
30196: SET_ZFLG (((uae_s32)(src)) == 0);
30197: SET_NFLG (((uae_s32)(src)) < 0);
30198: put_long(dsta,src);
30199: }}}}m68k_incpc(8);
30200: return 34;
30201: }
30202: unsigned long REGPARAM2 CPUFUNC(op_130_3)(uae_u32 opcode) /* BTST */
30203: {
30204: uae_u32 srcreg = ((opcode >> 9) & 7);
30205: uae_u32 dstreg = opcode & 7;
30206: OpcodeFamily = 21; CurrentInstrCycles = 14;
30207: {{ uae_s8 src = m68k_dreg(regs, srcreg);
30208: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
30209: BusCyclePenalty += 2;
30210: { uae_s8 dst = get_byte(dsta);
30211: src &= 7;
30212: SET_ZFLG (1 ^ ((dst >> src) & 1));
30213: }}}}m68k_incpc(4);
30214: return 14;
30215: }
30216: unsigned long REGPARAM2 CPUFUNC(op_13b_3)(uae_u32 opcode) /* BTST */
30217: {
30218: uae_u32 srcreg = ((opcode >> 9) & 7);
30219: uae_u32 dstreg = 3;
30220: OpcodeFamily = 21; CurrentInstrCycles = 14;
30221: {{ uae_s8 src = m68k_dreg(regs, srcreg);
30222: { uaecptr tmppc = m68k_getpc() + 2;
30223: uaecptr dsta = get_disp_ea_000(tmppc, get_iword(2));
30224: BusCyclePenalty += 2;
30225: { uae_s8 dst = get_byte(dsta);
30226: src &= 7;
30227: SET_ZFLG (1 ^ ((dst >> src) & 1));
30228: }}}}m68k_incpc(4);
30229: return 14;
30230: }
30231: unsigned long REGPARAM2 CPUFUNC(op_170_3)(uae_u32 opcode) /* BCHG */
30232: {
30233: uae_u32 srcreg = ((opcode >> 9) & 7);
30234: uae_u32 dstreg = opcode & 7;
30235: OpcodeFamily = 22; CurrentInstrCycles = 18;
30236: {{ uae_s8 src = m68k_dreg(regs, srcreg);
30237: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
30238: BusCyclePenalty += 2;
30239: { uae_s8 dst = get_byte(dsta);
30240: src &= 7;
30241: dst ^= (1 << src);
30242: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
30243: put_byte(dsta,dst);
30244: }}}}m68k_incpc(4);
30245: return 18;
30246: }
30247: unsigned long REGPARAM2 CPUFUNC(op_17b_3)(uae_u32 opcode) /* BCHG */
30248: {
30249: uae_u32 srcreg = ((opcode >> 9) & 7);
30250: uae_u32 dstreg = 3;
30251: OpcodeFamily = 22; CurrentInstrCycles = 18;
30252: {{ uae_s8 src = m68k_dreg(regs, srcreg);
30253: { uaecptr tmppc = m68k_getpc() + 2;
30254: uaecptr dsta = get_disp_ea_000(tmppc, get_iword(2));
30255: BusCyclePenalty += 2;
30256: { uae_s8 dst = get_byte(dsta);
30257: src &= 7;
30258: dst ^= (1 << src);
30259: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
30260: put_byte(dsta,dst);
30261: }}}}m68k_incpc(4);
30262: return 18;
30263: }
30264: unsigned long REGPARAM2 CPUFUNC(op_1b0_3)(uae_u32 opcode) /* BCLR */
30265: {
30266: uae_u32 srcreg = ((opcode >> 9) & 7);
30267: uae_u32 dstreg = opcode & 7;
30268: OpcodeFamily = 23; CurrentInstrCycles = 18;
30269: {{ uae_s8 src = m68k_dreg(regs, srcreg);
30270: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
30271: BusCyclePenalty += 2;
30272: { uae_s8 dst = get_byte(dsta);
30273: src &= 7;
30274: SET_ZFLG (1 ^ ((dst >> src) & 1));
30275: dst &= ~(1 << src);
30276: put_byte(dsta,dst);
30277: }}}}m68k_incpc(4);
30278: return 18;
30279: }
30280: unsigned long REGPARAM2 CPUFUNC(op_1bb_3)(uae_u32 opcode) /* BCLR */
30281: {
30282: uae_u32 srcreg = ((opcode >> 9) & 7);
30283: uae_u32 dstreg = 3;
30284: OpcodeFamily = 23; CurrentInstrCycles = 18;
30285: {{ uae_s8 src = m68k_dreg(regs, srcreg);
30286: { uaecptr tmppc = m68k_getpc() + 2;
30287: uaecptr dsta = get_disp_ea_000(tmppc, get_iword(2));
30288: BusCyclePenalty += 2;
30289: { uae_s8 dst = get_byte(dsta);
30290: src &= 7;
30291: SET_ZFLG (1 ^ ((dst >> src) & 1));
30292: dst &= ~(1 << src);
30293: put_byte(dsta,dst);
30294: }}}}m68k_incpc(4);
30295: return 18;
30296: }
30297: unsigned long REGPARAM2 CPUFUNC(op_1f0_3)(uae_u32 opcode) /* BSET */
30298: {
30299: uae_u32 srcreg = ((opcode >> 9) & 7);
30300: uae_u32 dstreg = opcode & 7;
30301: OpcodeFamily = 24; CurrentInstrCycles = 18;
30302: {{ uae_s8 src = m68k_dreg(regs, srcreg);
30303: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
30304: BusCyclePenalty += 2;
30305: { uae_s8 dst = get_byte(dsta);
30306: src &= 7;
30307: SET_ZFLG (1 ^ ((dst >> src) & 1));
30308: dst |= (1 << src);
30309: put_byte(dsta,dst);
30310: }}}}m68k_incpc(4);
30311: return 18;
30312: }
30313: unsigned long REGPARAM2 CPUFUNC(op_1fb_3)(uae_u32 opcode) /* BSET */
30314: {
30315: uae_u32 srcreg = ((opcode >> 9) & 7);
30316: uae_u32 dstreg = 3;
30317: OpcodeFamily = 24; CurrentInstrCycles = 18;
30318: {{ uae_s8 src = m68k_dreg(regs, srcreg);
30319: { uaecptr tmppc = m68k_getpc() + 2;
30320: uaecptr dsta = get_disp_ea_000(tmppc, get_iword(2));
30321: BusCyclePenalty += 2;
30322: { uae_s8 dst = get_byte(dsta);
30323: src &= 7;
30324: SET_ZFLG (1 ^ ((dst >> src) & 1));
30325: dst |= (1 << src);
30326: put_byte(dsta,dst);
30327: }}}}m68k_incpc(4);
30328: return 18;
30329: }
30330: unsigned long REGPARAM2 CPUFUNC(op_230_3)(uae_u32 opcode) /* AND */
30331: {
30332: uae_u32 dstreg = opcode & 7;
30333: OpcodeFamily = 2; CurrentInstrCycles = 22;
30334: {{ uae_s8 src = get_ibyte(2);
30335: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
30336: BusCyclePenalty += 2;
30337: { uae_s8 dst = get_byte(dsta);
30338: src &= dst;
30339: CLEAR_CZNV;
30340: SET_ZFLG (((uae_s8)(src)) == 0);
30341: SET_NFLG (((uae_s8)(src)) < 0);
30342: put_byte(dsta,src);
30343: }}}}m68k_incpc(6);
30344: return 22;
30345: }
30346: unsigned long REGPARAM2 CPUFUNC(op_270_3)(uae_u32 opcode) /* AND */
30347: {
30348: uae_u32 dstreg = opcode & 7;
30349: OpcodeFamily = 2; CurrentInstrCycles = 22;
30350: {{ uae_s16 src = get_iword(2);
30351: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
30352: BusCyclePenalty += 2;
30353: { uae_s16 dst = get_word(dsta);
30354: src &= dst;
30355: CLEAR_CZNV;
30356: SET_ZFLG (((uae_s16)(src)) == 0);
30357: SET_NFLG (((uae_s16)(src)) < 0);
30358: put_word(dsta,src);
30359: }}}}m68k_incpc(6);
30360: return 22;
30361: }
30362: unsigned long REGPARAM2 CPUFUNC(op_2b0_3)(uae_u32 opcode) /* AND */
30363: {
30364: uae_u32 dstreg = opcode & 7;
30365: OpcodeFamily = 2; CurrentInstrCycles = 34;
30366: {{ uae_s32 src = get_ilong(2);
30367: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6));
30368: BusCyclePenalty += 2;
30369: { uae_s32 dst = get_long(dsta);
30370: src &= dst;
30371: CLEAR_CZNV;
30372: SET_ZFLG (((uae_s32)(src)) == 0);
30373: SET_NFLG (((uae_s32)(src)) < 0);
30374: put_long(dsta,src);
30375: }}}}m68k_incpc(8);
30376: return 34;
30377: }
30378: unsigned long REGPARAM2 CPUFUNC(op_430_3)(uae_u32 opcode) /* SUB */
30379: {
30380: uae_u32 dstreg = opcode & 7;
30381: OpcodeFamily = 7; CurrentInstrCycles = 22;
30382: {{ uae_s8 src = get_ibyte(2);
30383: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
30384: BusCyclePenalty += 2;
30385: { uae_s8 dst = get_byte(dsta);
30386: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
30387: { int flgs = ((uae_s8)(src)) < 0;
30388: int flgo = ((uae_s8)(dst)) < 0;
30389: int flgn = ((uae_s8)(newv)) < 0;
30390: SET_ZFLG (((uae_s8)(newv)) == 0);
30391: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
30392: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
30393: COPY_CARRY;
30394: SET_NFLG (flgn != 0);
30395: put_byte(dsta,newv);
30396: }}}}}}}m68k_incpc(6);
30397: return 22;
30398: }
30399: unsigned long REGPARAM2 CPUFUNC(op_470_3)(uae_u32 opcode) /* SUB */
30400: {
30401: uae_u32 dstreg = opcode & 7;
30402: OpcodeFamily = 7; CurrentInstrCycles = 22;
30403: {{ uae_s16 src = get_iword(2);
30404: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
30405: BusCyclePenalty += 2;
30406: { uae_s16 dst = get_word(dsta);
30407: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
30408: { int flgs = ((uae_s16)(src)) < 0;
30409: int flgo = ((uae_s16)(dst)) < 0;
30410: int flgn = ((uae_s16)(newv)) < 0;
30411: SET_ZFLG (((uae_s16)(newv)) == 0);
30412: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
30413: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
30414: COPY_CARRY;
30415: SET_NFLG (flgn != 0);
30416: put_word(dsta,newv);
30417: }}}}}}}m68k_incpc(6);
30418: return 22;
30419: }
30420: unsigned long REGPARAM2 CPUFUNC(op_4b0_3)(uae_u32 opcode) /* SUB */
30421: {
30422: uae_u32 dstreg = opcode & 7;
30423: OpcodeFamily = 7; CurrentInstrCycles = 34;
30424: {{ uae_s32 src = get_ilong(2);
30425: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6));
30426: BusCyclePenalty += 2;
30427: { uae_s32 dst = get_long(dsta);
30428: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
30429: { int flgs = ((uae_s32)(src)) < 0;
30430: int flgo = ((uae_s32)(dst)) < 0;
30431: int flgn = ((uae_s32)(newv)) < 0;
30432: SET_ZFLG (((uae_s32)(newv)) == 0);
30433: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
30434: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
30435: COPY_CARRY;
30436: SET_NFLG (flgn != 0);
30437: put_long(dsta,newv);
30438: }}}}}}}m68k_incpc(8);
30439: return 34;
30440: }
30441: unsigned long REGPARAM2 CPUFUNC(op_630_3)(uae_u32 opcode) /* ADD */
30442: {
30443: uae_u32 dstreg = opcode & 7;
30444: OpcodeFamily = 11; CurrentInstrCycles = 22;
30445: {{ uae_s8 src = get_ibyte(2);
30446: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
30447: BusCyclePenalty += 2;
30448: { uae_s8 dst = get_byte(dsta);
30449: { refill_prefetch (m68k_getpc(), 2);
30450: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
30451: { int flgs = ((uae_s8)(src)) < 0;
30452: int flgo = ((uae_s8)(dst)) < 0;
30453: int flgn = ((uae_s8)(newv)) < 0;
30454: SET_ZFLG (((uae_s8)(newv)) == 0);
30455: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
30456: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
30457: COPY_CARRY;
30458: SET_NFLG (flgn != 0);
30459: put_byte(dsta,newv);
30460: }}}}}}}m68k_incpc(6);
30461: return 22;
30462: }
30463: unsigned long REGPARAM2 CPUFUNC(op_670_3)(uae_u32 opcode) /* ADD */
30464: {
30465: uae_u32 dstreg = opcode & 7;
30466: OpcodeFamily = 11; CurrentInstrCycles = 22;
30467: {{ uae_s16 src = get_iword(2);
30468: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
30469: BusCyclePenalty += 2;
30470: { uae_s16 dst = get_word(dsta);
30471: { refill_prefetch (m68k_getpc(), 2);
30472: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
30473: { int flgs = ((uae_s16)(src)) < 0;
30474: int flgo = ((uae_s16)(dst)) < 0;
30475: int flgn = ((uae_s16)(newv)) < 0;
30476: SET_ZFLG (((uae_s16)(newv)) == 0);
30477: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
30478: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
30479: COPY_CARRY;
30480: SET_NFLG (flgn != 0);
30481: put_word(dsta,newv);
30482: }}}}}}}m68k_incpc(6);
30483: return 22;
30484: }
30485: unsigned long REGPARAM2 CPUFUNC(op_6b0_3)(uae_u32 opcode) /* ADD */
30486: {
30487: uae_u32 dstreg = opcode & 7;
30488: OpcodeFamily = 11; CurrentInstrCycles = 34;
30489: {{ uae_s32 src = get_ilong(2);
30490: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6));
30491: BusCyclePenalty += 2;
30492: { uae_s32 dst = get_long(dsta);
30493: { refill_prefetch (m68k_getpc(), 2);
30494: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
30495: { int flgs = ((uae_s32)(src)) < 0;
30496: int flgo = ((uae_s32)(dst)) < 0;
30497: int flgn = ((uae_s32)(newv)) < 0;
30498: SET_ZFLG (((uae_s32)(newv)) == 0);
30499: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
30500: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
30501: COPY_CARRY;
30502: SET_NFLG (flgn != 0);
30503: put_long(dsta,newv);
30504: }}}}}}}m68k_incpc(8);
30505: return 34;
30506: }
30507: unsigned long REGPARAM2 CPUFUNC(op_830_3)(uae_u32 opcode) /* BTST */
30508: {
30509: uae_u32 dstreg = opcode & 7;
30510: OpcodeFamily = 21; CurrentInstrCycles = 18;
30511: {{ uae_s16 src = get_iword(2);
30512: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
30513: BusCyclePenalty += 2;
30514: { uae_s8 dst = get_byte(dsta);
30515: src &= 7;
30516: SET_ZFLG (1 ^ ((dst >> src) & 1));
30517: }}}}m68k_incpc(6);
30518: return 18;
30519: }
30520: unsigned long REGPARAM2 CPUFUNC(op_83b_3)(uae_u32 opcode) /* BTST */
30521: {
30522: uae_u32 dstreg = 3;
30523: OpcodeFamily = 21; CurrentInstrCycles = 18;
30524: {{ uae_s16 src = get_iword(2);
30525: { uaecptr tmppc = m68k_getpc() + 4;
30526: uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4));
30527: BusCyclePenalty += 2;
30528: { uae_s8 dst = get_byte(dsta);
30529: src &= 7;
30530: SET_ZFLG (1 ^ ((dst >> src) & 1));
30531: }}}}m68k_incpc(6);
30532: return 18;
30533: }
30534: unsigned long REGPARAM2 CPUFUNC(op_870_3)(uae_u32 opcode) /* BCHG */
30535: {
30536: uae_u32 dstreg = opcode & 7;
30537: OpcodeFamily = 22; CurrentInstrCycles = 22;
30538: {{ uae_s16 src = get_iword(2);
30539: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
30540: BusCyclePenalty += 2;
30541: { uae_s8 dst = get_byte(dsta);
30542: src &= 7;
30543: dst ^= (1 << src);
30544: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
30545: put_byte(dsta,dst);
30546: }}}}m68k_incpc(6);
30547: return 22;
30548: }
30549: unsigned long REGPARAM2 CPUFUNC(op_87b_3)(uae_u32 opcode) /* BCHG */
30550: {
30551: uae_u32 dstreg = 3;
30552: OpcodeFamily = 22; CurrentInstrCycles = 22;
30553: {{ uae_s16 src = get_iword(2);
30554: { uaecptr tmppc = m68k_getpc() + 4;
30555: uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4));
30556: BusCyclePenalty += 2;
30557: { uae_s8 dst = get_byte(dsta);
30558: src &= 7;
30559: dst ^= (1 << src);
30560: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
30561: put_byte(dsta,dst);
30562: }}}}m68k_incpc(6);
30563: return 22;
30564: }
30565: unsigned long REGPARAM2 CPUFUNC(op_8b0_3)(uae_u32 opcode) /* BCLR */
30566: {
30567: uae_u32 dstreg = opcode & 7;
30568: OpcodeFamily = 23; CurrentInstrCycles = 22;
30569: {{ uae_s16 src = get_iword(2);
30570: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
30571: BusCyclePenalty += 2;
30572: { uae_s8 dst = get_byte(dsta);
30573: src &= 7;
30574: SET_ZFLG (1 ^ ((dst >> src) & 1));
30575: dst &= ~(1 << src);
30576: put_byte(dsta,dst);
30577: }}}}m68k_incpc(6);
30578: return 22;
30579: }
30580: unsigned long REGPARAM2 CPUFUNC(op_8bb_3)(uae_u32 opcode) /* BCLR */
30581: {
30582: uae_u32 dstreg = 3;
30583: OpcodeFamily = 23; CurrentInstrCycles = 22;
30584: {{ uae_s16 src = get_iword(2);
30585: { uaecptr tmppc = m68k_getpc() + 4;
30586: uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4));
30587: BusCyclePenalty += 2;
30588: { uae_s8 dst = get_byte(dsta);
30589: src &= 7;
30590: SET_ZFLG (1 ^ ((dst >> src) & 1));
30591: dst &= ~(1 << src);
30592: put_byte(dsta,dst);
30593: }}}}m68k_incpc(6);
30594: return 22;
30595: }
30596: unsigned long REGPARAM2 CPUFUNC(op_8f0_3)(uae_u32 opcode) /* BSET */
30597: {
30598: uae_u32 dstreg = opcode & 7;
30599: OpcodeFamily = 24; CurrentInstrCycles = 22;
30600: {{ uae_s16 src = get_iword(2);
30601: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
30602: BusCyclePenalty += 2;
30603: { uae_s8 dst = get_byte(dsta);
30604: src &= 7;
30605: SET_ZFLG (1 ^ ((dst >> src) & 1));
30606: dst |= (1 << src);
30607: put_byte(dsta,dst);
30608: }}}}m68k_incpc(6);
30609: return 22;
30610: }
30611: unsigned long REGPARAM2 CPUFUNC(op_8fb_3)(uae_u32 opcode) /* BSET */
30612: {
30613: uae_u32 dstreg = 3;
30614: OpcodeFamily = 24; CurrentInstrCycles = 22;
30615: {{ uae_s16 src = get_iword(2);
30616: { uaecptr tmppc = m68k_getpc() + 4;
30617: uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4));
30618: BusCyclePenalty += 2;
30619: { uae_s8 dst = get_byte(dsta);
30620: src &= 7;
30621: SET_ZFLG (1 ^ ((dst >> src) & 1));
30622: dst |= (1 << src);
30623: put_byte(dsta,dst);
30624: }}}}m68k_incpc(6);
30625: return 22;
30626: }
30627: unsigned long REGPARAM2 CPUFUNC(op_a30_3)(uae_u32 opcode) /* EOR */
30628: {
30629: uae_u32 dstreg = opcode & 7;
30630: OpcodeFamily = 3; CurrentInstrCycles = 22;
30631: {{ uae_s8 src = get_ibyte(2);
30632: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
30633: BusCyclePenalty += 2;
30634: { uae_s8 dst = get_byte(dsta);
30635: src ^= dst;
30636: CLEAR_CZNV;
30637: SET_ZFLG (((uae_s8)(src)) == 0);
30638: SET_NFLG (((uae_s8)(src)) < 0);
30639: put_byte(dsta,src);
30640: }}}}m68k_incpc(6);
30641: return 22;
30642: }
30643: unsigned long REGPARAM2 CPUFUNC(op_a70_3)(uae_u32 opcode) /* EOR */
30644: {
30645: uae_u32 dstreg = opcode & 7;
30646: OpcodeFamily = 3; CurrentInstrCycles = 22;
30647: {{ uae_s16 src = get_iword(2);
30648: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
30649: BusCyclePenalty += 2;
30650: { uae_s16 dst = get_word(dsta);
30651: src ^= dst;
30652: CLEAR_CZNV;
30653: SET_ZFLG (((uae_s16)(src)) == 0);
30654: SET_NFLG (((uae_s16)(src)) < 0);
30655: put_word(dsta,src);
30656: }}}}m68k_incpc(6);
30657: return 22;
30658: }
30659: #endif
30660:
30661: #ifdef PART_2
30662: unsigned long REGPARAM2 CPUFUNC(op_ab0_3)(uae_u32 opcode) /* EOR */
30663: {
30664: uae_u32 dstreg = opcode & 7;
30665: OpcodeFamily = 3; CurrentInstrCycles = 34;
30666: {{ uae_s32 src = get_ilong(2);
30667: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6));
30668: BusCyclePenalty += 2;
30669: { uae_s32 dst = get_long(dsta);
30670: src ^= dst;
30671: CLEAR_CZNV;
30672: SET_ZFLG (((uae_s32)(src)) == 0);
30673: SET_NFLG (((uae_s32)(src)) < 0);
30674: put_long(dsta,src);
30675: }}}}m68k_incpc(8);
30676: return 34;
30677: }
30678: unsigned long REGPARAM2 CPUFUNC(op_c30_3)(uae_u32 opcode) /* CMP */
30679: {
30680: uae_u32 dstreg = opcode & 7;
30681: OpcodeFamily = 25; CurrentInstrCycles = 18;
30682: {{ uae_s8 src = get_ibyte(2);
30683: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
30684: BusCyclePenalty += 2;
30685: { uae_s8 dst = get_byte(dsta);
30686: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
30687: { int flgs = ((uae_s8)(src)) < 0;
30688: int flgo = ((uae_s8)(dst)) < 0;
30689: int flgn = ((uae_s8)(newv)) < 0;
30690: SET_ZFLG (((uae_s8)(newv)) == 0);
30691: SET_VFLG ((flgs != flgo) && (flgn != flgo));
30692: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
30693: SET_NFLG (flgn != 0);
30694: }}}}}}}m68k_incpc(6);
30695: return 18;
30696: }
30697: unsigned long REGPARAM2 CPUFUNC(op_c3b_3)(uae_u32 opcode) /* CMP */
30698: {
30699: uae_u32 dstreg = 3;
30700: OpcodeFamily = 25; CurrentInstrCycles = 18;
30701: {{ uae_s8 src = get_ibyte(2);
30702: { uaecptr tmppc = m68k_getpc() + 4;
30703: uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4));
30704: BusCyclePenalty += 2;
30705: { uae_s8 dst = get_byte(dsta);
30706: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
30707: { int flgs = ((uae_s8)(src)) < 0;
30708: int flgo = ((uae_s8)(dst)) < 0;
30709: int flgn = ((uae_s8)(newv)) < 0;
30710: SET_ZFLG (((uae_s8)(newv)) == 0);
30711: SET_VFLG ((flgs != flgo) && (flgn != flgo));
30712: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
30713: SET_NFLG (flgn != 0);
30714: }}}}}}}m68k_incpc(6);
30715: return 18;
30716: }
30717: unsigned long REGPARAM2 CPUFUNC(op_c70_3)(uae_u32 opcode) /* CMP */
30718: {
30719: uae_u32 dstreg = opcode & 7;
30720: OpcodeFamily = 25; CurrentInstrCycles = 18;
30721: {{ uae_s16 src = get_iword(2);
30722: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
30723: BusCyclePenalty += 2;
30724: { uae_s16 dst = get_word(dsta);
30725: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
30726: { int flgs = ((uae_s16)(src)) < 0;
30727: int flgo = ((uae_s16)(dst)) < 0;
30728: int flgn = ((uae_s16)(newv)) < 0;
30729: SET_ZFLG (((uae_s16)(newv)) == 0);
30730: SET_VFLG ((flgs != flgo) && (flgn != flgo));
30731: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
30732: SET_NFLG (flgn != 0);
30733: }}}}}}}m68k_incpc(6);
30734: return 18;
30735: }
30736: unsigned long REGPARAM2 CPUFUNC(op_c7b_3)(uae_u32 opcode) /* CMP */
30737: {
30738: uae_u32 dstreg = 3;
30739: OpcodeFamily = 25; CurrentInstrCycles = 18;
30740: {{ uae_s16 src = get_iword(2);
30741: { uaecptr tmppc = m68k_getpc() + 4;
30742: uaecptr dsta = get_disp_ea_000(tmppc, get_iword(4));
30743: BusCyclePenalty += 2;
30744: { uae_s16 dst = get_word(dsta);
30745: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
30746: { int flgs = ((uae_s16)(src)) < 0;
30747: int flgo = ((uae_s16)(dst)) < 0;
30748: int flgn = ((uae_s16)(newv)) < 0;
30749: SET_ZFLG (((uae_s16)(newv)) == 0);
30750: SET_VFLG ((flgs != flgo) && (flgn != flgo));
30751: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
30752: SET_NFLG (flgn != 0);
30753: }}}}}}}m68k_incpc(6);
30754: return 18;
30755: }
30756: unsigned long REGPARAM2 CPUFUNC(op_cb0_3)(uae_u32 opcode) /* CMP */
30757: {
30758: uae_u32 dstreg = opcode & 7;
30759: OpcodeFamily = 25; CurrentInstrCycles = 26;
30760: {{ uae_s32 src = get_ilong(2);
30761: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6));
30762: BusCyclePenalty += 2;
30763: { uae_s32 dst = get_long(dsta);
30764: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
30765: { int flgs = ((uae_s32)(src)) < 0;
30766: int flgo = ((uae_s32)(dst)) < 0;
30767: int flgn = ((uae_s32)(newv)) < 0;
30768: SET_ZFLG (((uae_s32)(newv)) == 0);
30769: SET_VFLG ((flgs != flgo) && (flgn != flgo));
30770: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
30771: SET_NFLG (flgn != 0);
30772: }}}}}}}m68k_incpc(8);
30773: return 26;
30774: }
30775: unsigned long REGPARAM2 CPUFUNC(op_cbb_3)(uae_u32 opcode) /* CMP */
30776: {
30777: uae_u32 dstreg = 3;
30778: OpcodeFamily = 25; CurrentInstrCycles = 26;
30779: {{ uae_s32 src = get_ilong(2);
30780: { uaecptr tmppc = m68k_getpc() + 6;
30781: uaecptr dsta = get_disp_ea_000(tmppc, get_iword(6));
30782: BusCyclePenalty += 2;
30783: { uae_s32 dst = get_long(dsta);
30784: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
30785: { int flgs = ((uae_s32)(src)) < 0;
30786: int flgo = ((uae_s32)(dst)) < 0;
30787: int flgn = ((uae_s32)(newv)) < 0;
30788: SET_ZFLG (((uae_s32)(newv)) == 0);
30789: SET_VFLG ((flgs != flgo) && (flgn != flgo));
30790: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
30791: SET_NFLG (flgn != 0);
30792: }}}}}}}m68k_incpc(8);
30793: return 26;
30794: }
30795: unsigned long REGPARAM2 CPUFUNC(op_1030_3)(uae_u32 opcode) /* MOVE */
30796: {
30797: uae_u32 srcreg = (opcode & 7);
30798: uae_u32 dstreg = (opcode >> 9) & 7;
30799: OpcodeFamily = 30; CurrentInstrCycles = 14;
30800: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
30801: BusCyclePenalty += 2;
30802: { uae_s8 src = get_byte(srca);
30803: { CLEAR_CZNV;
30804: SET_ZFLG (((uae_s8)(src)) == 0);
30805: SET_NFLG (((uae_s8)(src)) < 0);
30806: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
30807: }}}}m68k_incpc(4);
30808: return 14;
30809: }
30810: unsigned long REGPARAM2 CPUFUNC(op_103b_3)(uae_u32 opcode) /* MOVE */
30811: {
30812: uae_u32 dstreg = (opcode >> 9) & 7;
30813: OpcodeFamily = 30; CurrentInstrCycles = 14;
30814: {{ uaecptr tmppc = m68k_getpc() + 2;
30815: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
30816: BusCyclePenalty += 2;
30817: { uae_s8 src = get_byte(srca);
30818: { CLEAR_CZNV;
30819: SET_ZFLG (((uae_s8)(src)) == 0);
30820: SET_NFLG (((uae_s8)(src)) < 0);
30821: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
30822: }}}}m68k_incpc(4);
30823: return 14;
30824: }
30825: unsigned long REGPARAM2 CPUFUNC(op_10b0_3)(uae_u32 opcode) /* MOVE */
30826: {
30827: uae_u32 srcreg = (opcode & 7);
30828: uae_u32 dstreg = (opcode >> 9) & 7;
30829: OpcodeFamily = 30; CurrentInstrCycles = 18;
30830: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
30831: BusCyclePenalty += 2;
30832: { uae_s8 src = get_byte(srca);
30833: { uaecptr dsta = m68k_areg(regs, dstreg);
30834: CLEAR_CZNV;
30835: SET_ZFLG (((uae_s8)(src)) == 0);
30836: SET_NFLG (((uae_s8)(src)) < 0);
30837: put_byte(dsta,src);
30838: }}}}m68k_incpc(4);
30839: return 18;
30840: }
30841: unsigned long REGPARAM2 CPUFUNC(op_10bb_3)(uae_u32 opcode) /* MOVE */
30842: {
30843: uae_u32 dstreg = (opcode >> 9) & 7;
30844: OpcodeFamily = 30; CurrentInstrCycles = 18;
30845: {{ uaecptr tmppc = m68k_getpc() + 2;
30846: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
30847: BusCyclePenalty += 2;
30848: { uae_s8 src = get_byte(srca);
30849: { uaecptr dsta = m68k_areg(regs, dstreg);
30850: CLEAR_CZNV;
30851: SET_ZFLG (((uae_s8)(src)) == 0);
30852: SET_NFLG (((uae_s8)(src)) < 0);
30853: put_byte(dsta,src);
30854: }}}}m68k_incpc(4);
30855: return 18;
30856: }
30857: unsigned long REGPARAM2 CPUFUNC(op_10f0_3)(uae_u32 opcode) /* MOVE */
30858: {
30859: uae_u32 srcreg = (opcode & 7);
30860: uae_u32 dstreg = (opcode >> 9) & 7;
30861: OpcodeFamily = 30; CurrentInstrCycles = 18;
30862: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
30863: BusCyclePenalty += 2;
30864: { uae_s8 src = get_byte(srca);
30865: { uaecptr dsta = m68k_areg(regs, dstreg);
30866: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
30867: CLEAR_CZNV;
30868: SET_ZFLG (((uae_s8)(src)) == 0);
30869: SET_NFLG (((uae_s8)(src)) < 0);
30870: put_byte(dsta,src);
30871: }}}}m68k_incpc(4);
30872: return 18;
30873: }
30874: unsigned long REGPARAM2 CPUFUNC(op_10fb_3)(uae_u32 opcode) /* MOVE */
30875: {
30876: uae_u32 dstreg = (opcode >> 9) & 7;
30877: OpcodeFamily = 30; CurrentInstrCycles = 18;
30878: {{ uaecptr tmppc = m68k_getpc() + 2;
30879: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
30880: BusCyclePenalty += 2;
30881: { uae_s8 src = get_byte(srca);
30882: { uaecptr dsta = m68k_areg(regs, dstreg);
30883: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
30884: CLEAR_CZNV;
30885: SET_ZFLG (((uae_s8)(src)) == 0);
30886: SET_NFLG (((uae_s8)(src)) < 0);
30887: put_byte(dsta,src);
30888: }}}}m68k_incpc(4);
30889: return 18;
30890: }
30891: unsigned long REGPARAM2 CPUFUNC(op_1130_3)(uae_u32 opcode) /* MOVE */
30892: {
30893: uae_u32 srcreg = (opcode & 7);
30894: uae_u32 dstreg = (opcode >> 9) & 7;
30895: OpcodeFamily = 30; CurrentInstrCycles = 18;
30896: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
30897: BusCyclePenalty += 2;
30898: { uae_s8 src = get_byte(srca);
30899: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
30900: m68k_areg (regs, dstreg) = dsta;
30901: CLEAR_CZNV;
30902: SET_ZFLG (((uae_s8)(src)) == 0);
30903: SET_NFLG (((uae_s8)(src)) < 0);
30904: put_byte(dsta,src);
30905: }}}}m68k_incpc(4);
30906: return 18;
30907: }
30908: unsigned long REGPARAM2 CPUFUNC(op_113b_3)(uae_u32 opcode) /* MOVE */
30909: {
30910: uae_u32 dstreg = (opcode >> 9) & 7;
30911: OpcodeFamily = 30; CurrentInstrCycles = 18;
30912: {{ uaecptr tmppc = m68k_getpc() + 2;
30913: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
30914: BusCyclePenalty += 2;
30915: { uae_s8 src = get_byte(srca);
30916: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
30917: m68k_areg (regs, dstreg) = dsta;
30918: CLEAR_CZNV;
30919: SET_ZFLG (((uae_s8)(src)) == 0);
30920: SET_NFLG (((uae_s8)(src)) < 0);
30921: put_byte(dsta,src);
30922: }}}}m68k_incpc(4);
30923: return 18;
30924: }
30925: unsigned long REGPARAM2 CPUFUNC(op_1170_3)(uae_u32 opcode) /* MOVE */
30926: {
30927: uae_u32 srcreg = (opcode & 7);
30928: uae_u32 dstreg = (opcode >> 9) & 7;
30929: OpcodeFamily = 30; CurrentInstrCycles = 22;
30930: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
30931: BusCyclePenalty += 2;
30932: { uae_s8 src = get_byte(srca);
30933: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
30934: CLEAR_CZNV;
30935: SET_ZFLG (((uae_s8)(src)) == 0);
30936: SET_NFLG (((uae_s8)(src)) < 0);
30937: put_byte(dsta,src);
30938: }}}}m68k_incpc(6);
30939: return 22;
30940: }
30941: unsigned long REGPARAM2 CPUFUNC(op_117b_3)(uae_u32 opcode) /* MOVE */
30942: {
30943: uae_u32 dstreg = (opcode >> 9) & 7;
30944: OpcodeFamily = 30; CurrentInstrCycles = 22;
30945: {{ uaecptr tmppc = m68k_getpc() + 2;
30946: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
30947: BusCyclePenalty += 2;
30948: { uae_s8 src = get_byte(srca);
30949: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
30950: CLEAR_CZNV;
30951: SET_ZFLG (((uae_s8)(src)) == 0);
30952: SET_NFLG (((uae_s8)(src)) < 0);
30953: put_byte(dsta,src);
30954: }}}}m68k_incpc(6);
30955: return 22;
30956: }
30957: unsigned long REGPARAM2 CPUFUNC(op_1180_3)(uae_u32 opcode) /* MOVE */
30958: {
30959: uae_u32 srcreg = (opcode & 7);
30960: uae_u32 dstreg = (opcode >> 9) & 7;
30961: OpcodeFamily = 30; CurrentInstrCycles = 14;
30962: {{ uae_s8 src = m68k_dreg(regs, srcreg);
30963: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
30964: BusCyclePenalty += 2;
30965: CLEAR_CZNV;
30966: SET_ZFLG (((uae_s8)(src)) == 0);
30967: SET_NFLG (((uae_s8)(src)) < 0);
30968: put_byte(dsta,src);
30969: }}}m68k_incpc(4);
30970: return 14;
30971: }
30972: unsigned long REGPARAM2 CPUFUNC(op_1188_3)(uae_u32 opcode) /* MOVE */
30973: {
30974: uae_u32 srcreg = (opcode & 7);
30975: uae_u32 dstreg = (opcode >> 9) & 7;
30976: OpcodeFamily = 30; CurrentInstrCycles = 14;
30977: {{ uae_s8 src = m68k_areg(regs, srcreg);
30978: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
30979: BusCyclePenalty += 2;
30980: CLEAR_CZNV;
30981: SET_ZFLG (((uae_s8)(src)) == 0);
30982: SET_NFLG (((uae_s8)(src)) < 0);
30983: put_byte(dsta,src);
30984: }}}m68k_incpc(4);
30985: return 14;
30986: }
30987: unsigned long REGPARAM2 CPUFUNC(op_1190_3)(uae_u32 opcode) /* MOVE */
30988: {
30989: uae_u32 srcreg = (opcode & 7);
30990: uae_u32 dstreg = (opcode >> 9) & 7;
30991: OpcodeFamily = 30; CurrentInstrCycles = 18;
30992: {{ uaecptr srca = m68k_areg(regs, srcreg);
30993: { uae_s8 src = get_byte(srca);
30994: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
30995: BusCyclePenalty += 2;
30996: CLEAR_CZNV;
30997: SET_ZFLG (((uae_s8)(src)) == 0);
30998: SET_NFLG (((uae_s8)(src)) < 0);
30999: put_byte(dsta,src);
31000: }}}}m68k_incpc(4);
31001: return 18;
31002: }
31003: unsigned long REGPARAM2 CPUFUNC(op_1198_3)(uae_u32 opcode) /* MOVE */
31004: {
31005: uae_u32 srcreg = (opcode & 7);
31006: uae_u32 dstreg = (opcode >> 9) & 7;
31007: OpcodeFamily = 30; CurrentInstrCycles = 18;
31008: {{ uaecptr srca = m68k_areg(regs, srcreg);
31009: { uae_s8 src = get_byte(srca);
31010: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
31011: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
31012: BusCyclePenalty += 2;
31013: CLEAR_CZNV;
31014: SET_ZFLG (((uae_s8)(src)) == 0);
31015: SET_NFLG (((uae_s8)(src)) < 0);
31016: put_byte(dsta,src);
31017: }}}}m68k_incpc(4);
31018: return 18;
31019: }
31020: unsigned long REGPARAM2 CPUFUNC(op_11a0_3)(uae_u32 opcode) /* MOVE */
31021: {
31022: uae_u32 srcreg = (opcode & 7);
31023: uae_u32 dstreg = (opcode >> 9) & 7;
31024: OpcodeFamily = 30; CurrentInstrCycles = 20;
31025: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
31026: { uae_s8 src = get_byte(srca);
31027: m68k_areg (regs, srcreg) = srca;
31028: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
31029: BusCyclePenalty += 2;
31030: CLEAR_CZNV;
31031: SET_ZFLG (((uae_s8)(src)) == 0);
31032: SET_NFLG (((uae_s8)(src)) < 0);
31033: put_byte(dsta,src);
31034: }}}}m68k_incpc(4);
31035: return 20;
31036: }
31037: unsigned long REGPARAM2 CPUFUNC(op_11a8_3)(uae_u32 opcode) /* MOVE */
31038: {
31039: uae_u32 srcreg = (opcode & 7);
31040: uae_u32 dstreg = (opcode >> 9) & 7;
31041: OpcodeFamily = 30; CurrentInstrCycles = 22;
31042: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
31043: { uae_s8 src = get_byte(srca);
31044: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
31045: BusCyclePenalty += 2;
31046: CLEAR_CZNV;
31047: SET_ZFLG (((uae_s8)(src)) == 0);
31048: SET_NFLG (((uae_s8)(src)) < 0);
31049: put_byte(dsta,src);
31050: }}}}m68k_incpc(6);
31051: return 22;
31052: }
31053: unsigned long REGPARAM2 CPUFUNC(op_11b0_3)(uae_u32 opcode) /* MOVE */
31054: {
31055: uae_u32 srcreg = (opcode & 7);
31056: uae_u32 dstreg = (opcode >> 9) & 7;
31057: OpcodeFamily = 30; CurrentInstrCycles = 24;
31058: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
31059: BusCyclePenalty += 2;
31060: { uae_s8 src = get_byte(srca);
31061: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
31062: BusCyclePenalty += 2;
31063: CLEAR_CZNV;
31064: SET_ZFLG (((uae_s8)(src)) == 0);
31065: SET_NFLG (((uae_s8)(src)) < 0);
31066: put_byte(dsta,src);
31067: }}}}m68k_incpc(6);
31068: return 24;
31069: }
31070: unsigned long REGPARAM2 CPUFUNC(op_11b8_3)(uae_u32 opcode) /* MOVE */
31071: {
31072: uae_u32 dstreg = (opcode >> 9) & 7;
31073: OpcodeFamily = 30; CurrentInstrCycles = 22;
31074: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
31075: { uae_s8 src = get_byte(srca);
31076: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
31077: BusCyclePenalty += 2;
31078: CLEAR_CZNV;
31079: SET_ZFLG (((uae_s8)(src)) == 0);
31080: SET_NFLG (((uae_s8)(src)) < 0);
31081: put_byte(dsta,src);
31082: }}}}m68k_incpc(6);
31083: return 22;
31084: }
31085: unsigned long REGPARAM2 CPUFUNC(op_11b9_3)(uae_u32 opcode) /* MOVE */
31086: {
31087: uae_u32 dstreg = (opcode >> 9) & 7;
31088: OpcodeFamily = 30; CurrentInstrCycles = 26;
31089: {{ uaecptr srca = get_ilong(2);
31090: { uae_s8 src = get_byte(srca);
31091: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6));
31092: BusCyclePenalty += 2;
31093: CLEAR_CZNV;
31094: SET_ZFLG (((uae_s8)(src)) == 0);
31095: SET_NFLG (((uae_s8)(src)) < 0);
31096: put_byte(dsta,src);
31097: }}}}m68k_incpc(8);
31098: return 26;
31099: }
31100: unsigned long REGPARAM2 CPUFUNC(op_11ba_3)(uae_u32 opcode) /* MOVE */
31101: {
31102: uae_u32 dstreg = (opcode >> 9) & 7;
31103: OpcodeFamily = 30; CurrentInstrCycles = 22;
31104: {{ uaecptr srca = m68k_getpc () + 2;
31105: srca += (uae_s32)(uae_s16)get_iword(2);
31106: { uae_s8 src = get_byte(srca);
31107: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
31108: BusCyclePenalty += 2;
31109: CLEAR_CZNV;
31110: SET_ZFLG (((uae_s8)(src)) == 0);
31111: SET_NFLG (((uae_s8)(src)) < 0);
31112: put_byte(dsta,src);
31113: }}}}m68k_incpc(6);
31114: return 22;
31115: }
31116: unsigned long REGPARAM2 CPUFUNC(op_11bb_3)(uae_u32 opcode) /* MOVE */
31117: {
31118: uae_u32 dstreg = (opcode >> 9) & 7;
31119: OpcodeFamily = 30; CurrentInstrCycles = 24;
31120: {{ uaecptr tmppc = m68k_getpc() + 2;
31121: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
31122: BusCyclePenalty += 2;
31123: { uae_s8 src = get_byte(srca);
31124: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
31125: BusCyclePenalty += 2;
31126: CLEAR_CZNV;
31127: SET_ZFLG (((uae_s8)(src)) == 0);
31128: SET_NFLG (((uae_s8)(src)) < 0);
31129: put_byte(dsta,src);
31130: }}}}m68k_incpc(6);
31131: return 24;
31132: }
31133: unsigned long REGPARAM2 CPUFUNC(op_11bc_3)(uae_u32 opcode) /* MOVE */
31134: {
31135: uae_u32 dstreg = (opcode >> 9) & 7;
31136: OpcodeFamily = 30; CurrentInstrCycles = 18;
31137: {{ uae_s8 src = get_ibyte(2);
31138: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
31139: BusCyclePenalty += 2;
31140: CLEAR_CZNV;
31141: SET_ZFLG (((uae_s8)(src)) == 0);
31142: SET_NFLG (((uae_s8)(src)) < 0);
31143: put_byte(dsta,src);
31144: }}}m68k_incpc(6);
31145: return 18;
31146: }
31147: unsigned long REGPARAM2 CPUFUNC(op_11f0_3)(uae_u32 opcode) /* MOVE */
31148: {
31149: uae_u32 srcreg = (opcode & 7);
31150: OpcodeFamily = 30; CurrentInstrCycles = 22;
31151: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
31152: BusCyclePenalty += 2;
31153: { uae_s8 src = get_byte(srca);
31154: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
31155: CLEAR_CZNV;
31156: SET_ZFLG (((uae_s8)(src)) == 0);
31157: SET_NFLG (((uae_s8)(src)) < 0);
31158: put_byte(dsta,src);
31159: }}}}m68k_incpc(6);
31160: return 22;
31161: }
31162: unsigned long REGPARAM2 CPUFUNC(op_11fb_3)(uae_u32 opcode) /* MOVE */
31163: {
31164: OpcodeFamily = 30; CurrentInstrCycles = 22;
31165: {{ uaecptr tmppc = m68k_getpc() + 2;
31166: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
31167: BusCyclePenalty += 2;
31168: { uae_s8 src = get_byte(srca);
31169: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
31170: CLEAR_CZNV;
31171: SET_ZFLG (((uae_s8)(src)) == 0);
31172: SET_NFLG (((uae_s8)(src)) < 0);
31173: put_byte(dsta,src);
31174: }}}}m68k_incpc(6);
31175: return 22;
31176: }
31177: unsigned long REGPARAM2 CPUFUNC(op_13f0_3)(uae_u32 opcode) /* MOVE */
31178: {
31179: uae_u32 srcreg = (opcode & 7);
31180: OpcodeFamily = 30; CurrentInstrCycles = 26;
31181: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
31182: BusCyclePenalty += 2;
31183: { uae_s8 src = get_byte(srca);
31184: { uaecptr dsta = get_ilong(4);
31185: CLEAR_CZNV;
31186: SET_ZFLG (((uae_s8)(src)) == 0);
31187: SET_NFLG (((uae_s8)(src)) < 0);
31188: put_byte(dsta,src);
31189: }}}}m68k_incpc(8);
31190: return 26;
31191: }
31192: unsigned long REGPARAM2 CPUFUNC(op_13fb_3)(uae_u32 opcode) /* MOVE */
31193: {
31194: OpcodeFamily = 30; CurrentInstrCycles = 26;
31195: {{ uaecptr tmppc = m68k_getpc() + 2;
31196: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
31197: BusCyclePenalty += 2;
31198: { uae_s8 src = get_byte(srca);
31199: { uaecptr dsta = get_ilong(4);
31200: CLEAR_CZNV;
31201: SET_ZFLG (((uae_s8)(src)) == 0);
31202: SET_NFLG (((uae_s8)(src)) < 0);
31203: put_byte(dsta,src);
31204: }}}}m68k_incpc(8);
31205: return 26;
31206: }
31207: unsigned long REGPARAM2 CPUFUNC(op_2030_3)(uae_u32 opcode) /* MOVE */
31208: {
31209: uae_u32 srcreg = (opcode & 7);
31210: uae_u32 dstreg = (opcode >> 9) & 7;
31211: OpcodeFamily = 30; CurrentInstrCycles = 18;
31212: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
31213: BusCyclePenalty += 2;
31214: { uae_s32 src = get_long(srca);
31215: { CLEAR_CZNV;
31216: SET_ZFLG (((uae_s32)(src)) == 0);
31217: SET_NFLG (((uae_s32)(src)) < 0);
31218: m68k_dreg(regs, dstreg) = (src);
31219: }}}}m68k_incpc(4);
31220: return 18;
31221: }
31222: unsigned long REGPARAM2 CPUFUNC(op_203b_3)(uae_u32 opcode) /* MOVE */
31223: {
31224: uae_u32 dstreg = (opcode >> 9) & 7;
31225: OpcodeFamily = 30; CurrentInstrCycles = 18;
31226: {{ uaecptr tmppc = m68k_getpc() + 2;
31227: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
31228: BusCyclePenalty += 2;
31229: { uae_s32 src = get_long(srca);
31230: { CLEAR_CZNV;
31231: SET_ZFLG (((uae_s32)(src)) == 0);
31232: SET_NFLG (((uae_s32)(src)) < 0);
31233: m68k_dreg(regs, dstreg) = (src);
31234: }}}}m68k_incpc(4);
31235: return 18;
31236: }
31237: unsigned long REGPARAM2 CPUFUNC(op_2070_3)(uae_u32 opcode) /* MOVEA */
31238: {
31239: uae_u32 srcreg = (opcode & 7);
31240: uae_u32 dstreg = (opcode >> 9) & 7;
31241: OpcodeFamily = 31; CurrentInstrCycles = 18;
31242: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
31243: BusCyclePenalty += 2;
31244: { uae_s32 src = get_long(srca);
31245: { uae_u32 val = src;
31246: m68k_areg(regs, dstreg) = (val);
31247: }}}}m68k_incpc(4);
31248: return 18;
31249: }
31250: unsigned long REGPARAM2 CPUFUNC(op_207b_3)(uae_u32 opcode) /* MOVEA */
31251: {
31252: uae_u32 dstreg = (opcode >> 9) & 7;
31253: OpcodeFamily = 31; CurrentInstrCycles = 18;
31254: {{ uaecptr tmppc = m68k_getpc() + 2;
31255: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
31256: BusCyclePenalty += 2;
31257: { uae_s32 src = get_long(srca);
31258: { uae_u32 val = src;
31259: m68k_areg(regs, dstreg) = (val);
31260: }}}}m68k_incpc(4);
31261: return 18;
31262: }
31263: unsigned long REGPARAM2 CPUFUNC(op_20b0_3)(uae_u32 opcode) /* MOVE */
31264: {
31265: uae_u32 srcreg = (opcode & 7);
31266: uae_u32 dstreg = (opcode >> 9) & 7;
31267: OpcodeFamily = 30; CurrentInstrCycles = 26;
31268: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
31269: BusCyclePenalty += 2;
31270: { uae_s32 src = get_long(srca);
31271: { uaecptr dsta = m68k_areg(regs, dstreg);
31272: CLEAR_CZNV;
31273: SET_ZFLG (((uae_s32)(src)) == 0);
31274: SET_NFLG (((uae_s32)(src)) < 0);
31275: put_long(dsta,src);
31276: }}}}m68k_incpc(4);
31277: return 26;
31278: }
31279: unsigned long REGPARAM2 CPUFUNC(op_20bb_3)(uae_u32 opcode) /* MOVE */
31280: {
31281: uae_u32 dstreg = (opcode >> 9) & 7;
31282: OpcodeFamily = 30; CurrentInstrCycles = 26;
31283: {{ uaecptr tmppc = m68k_getpc() + 2;
31284: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
31285: BusCyclePenalty += 2;
31286: { uae_s32 src = get_long(srca);
31287: { uaecptr dsta = m68k_areg(regs, dstreg);
31288: CLEAR_CZNV;
31289: SET_ZFLG (((uae_s32)(src)) == 0);
31290: SET_NFLG (((uae_s32)(src)) < 0);
31291: put_long(dsta,src);
31292: }}}}m68k_incpc(4);
31293: return 26;
31294: }
31295: unsigned long REGPARAM2 CPUFUNC(op_20f0_3)(uae_u32 opcode) /* MOVE */
31296: {
31297: uae_u32 srcreg = (opcode & 7);
31298: uae_u32 dstreg = (opcode >> 9) & 7;
31299: OpcodeFamily = 30; CurrentInstrCycles = 26;
31300: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
31301: BusCyclePenalty += 2;
31302: { uae_s32 src = get_long(srca);
31303: { uaecptr dsta = m68k_areg(regs, dstreg);
31304: m68k_areg(regs, dstreg) += 4;
31305: CLEAR_CZNV;
31306: SET_ZFLG (((uae_s32)(src)) == 0);
31307: SET_NFLG (((uae_s32)(src)) < 0);
31308: put_long(dsta,src);
31309: }}}}m68k_incpc(4);
31310: return 26;
31311: }
31312: unsigned long REGPARAM2 CPUFUNC(op_20fb_3)(uae_u32 opcode) /* MOVE */
31313: {
31314: uae_u32 dstreg = (opcode >> 9) & 7;
31315: OpcodeFamily = 30; CurrentInstrCycles = 26;
31316: {{ uaecptr tmppc = m68k_getpc() + 2;
31317: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
31318: BusCyclePenalty += 2;
31319: { uae_s32 src = get_long(srca);
31320: { uaecptr dsta = m68k_areg(regs, dstreg);
31321: m68k_areg(regs, dstreg) += 4;
31322: CLEAR_CZNV;
31323: SET_ZFLG (((uae_s32)(src)) == 0);
31324: SET_NFLG (((uae_s32)(src)) < 0);
31325: put_long(dsta,src);
31326: }}}}m68k_incpc(4);
31327: return 26;
31328: }
31329: unsigned long REGPARAM2 CPUFUNC(op_2130_3)(uae_u32 opcode) /* MOVE */
31330: {
31331: uae_u32 srcreg = (opcode & 7);
31332: uae_u32 dstreg = (opcode >> 9) & 7;
31333: OpcodeFamily = 30; CurrentInstrCycles = 26;
31334: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
31335: BusCyclePenalty += 2;
31336: { uae_s32 src = get_long(srca);
31337: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
31338: m68k_areg (regs, dstreg) = dsta;
31339: CLEAR_CZNV;
31340: SET_ZFLG (((uae_s32)(src)) == 0);
31341: SET_NFLG (((uae_s32)(src)) < 0);
31342: put_long(dsta,src);
31343: }}}}m68k_incpc(4);
31344: return 26;
31345: }
31346: #endif
31347:
31348: #ifdef PART_3
31349: unsigned long REGPARAM2 CPUFUNC(op_213b_3)(uae_u32 opcode) /* MOVE */
31350: {
31351: uae_u32 dstreg = (opcode >> 9) & 7;
31352: OpcodeFamily = 30; CurrentInstrCycles = 26;
31353: {{ uaecptr tmppc = m68k_getpc() + 2;
31354: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
31355: BusCyclePenalty += 2;
31356: { uae_s32 src = get_long(srca);
31357: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
31358: m68k_areg (regs, dstreg) = dsta;
31359: CLEAR_CZNV;
31360: SET_ZFLG (((uae_s32)(src)) == 0);
31361: SET_NFLG (((uae_s32)(src)) < 0);
31362: put_long(dsta,src);
31363: }}}}m68k_incpc(4);
31364: return 26;
31365: }
31366: unsigned long REGPARAM2 CPUFUNC(op_2170_3)(uae_u32 opcode) /* MOVE */
31367: {
31368: uae_u32 srcreg = (opcode & 7);
31369: uae_u32 dstreg = (opcode >> 9) & 7;
31370: OpcodeFamily = 30; CurrentInstrCycles = 30;
31371: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
31372: BusCyclePenalty += 2;
31373: { uae_s32 src = get_long(srca);
31374: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
31375: CLEAR_CZNV;
31376: SET_ZFLG (((uae_s32)(src)) == 0);
31377: SET_NFLG (((uae_s32)(src)) < 0);
31378: put_long(dsta,src);
31379: }}}}m68k_incpc(6);
31380: return 30;
31381: }
31382: unsigned long REGPARAM2 CPUFUNC(op_217b_3)(uae_u32 opcode) /* MOVE */
31383: {
31384: uae_u32 dstreg = (opcode >> 9) & 7;
31385: OpcodeFamily = 30; CurrentInstrCycles = 30;
31386: {{ uaecptr tmppc = m68k_getpc() + 2;
31387: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
31388: BusCyclePenalty += 2;
31389: { uae_s32 src = get_long(srca);
31390: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
31391: CLEAR_CZNV;
31392: SET_ZFLG (((uae_s32)(src)) == 0);
31393: SET_NFLG (((uae_s32)(src)) < 0);
31394: put_long(dsta,src);
31395: }}}}m68k_incpc(6);
31396: return 30;
31397: }
31398: unsigned long REGPARAM2 CPUFUNC(op_2180_3)(uae_u32 opcode) /* MOVE */
31399: {
31400: uae_u32 srcreg = (opcode & 7);
31401: uae_u32 dstreg = (opcode >> 9) & 7;
31402: OpcodeFamily = 30; CurrentInstrCycles = 18;
31403: {{ uae_s32 src = m68k_dreg(regs, srcreg);
31404: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
31405: BusCyclePenalty += 2;
31406: CLEAR_CZNV;
31407: SET_ZFLG (((uae_s32)(src)) == 0);
31408: SET_NFLG (((uae_s32)(src)) < 0);
31409: put_long(dsta,src);
31410: }}}m68k_incpc(4);
31411: return 18;
31412: }
31413: unsigned long REGPARAM2 CPUFUNC(op_2188_3)(uae_u32 opcode) /* MOVE */
31414: {
31415: uae_u32 srcreg = (opcode & 7);
31416: uae_u32 dstreg = (opcode >> 9) & 7;
31417: OpcodeFamily = 30; CurrentInstrCycles = 18;
31418: {{ uae_s32 src = m68k_areg(regs, srcreg);
31419: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
31420: BusCyclePenalty += 2;
31421: CLEAR_CZNV;
31422: SET_ZFLG (((uae_s32)(src)) == 0);
31423: SET_NFLG (((uae_s32)(src)) < 0);
31424: put_long(dsta,src);
31425: }}}m68k_incpc(4);
31426: return 18;
31427: }
31428: unsigned long REGPARAM2 CPUFUNC(op_2190_3)(uae_u32 opcode) /* MOVE */
31429: {
31430: uae_u32 srcreg = (opcode & 7);
31431: uae_u32 dstreg = (opcode >> 9) & 7;
31432: OpcodeFamily = 30; CurrentInstrCycles = 26;
31433: {{ uaecptr srca = m68k_areg(regs, srcreg);
31434: { uae_s32 src = get_long(srca);
31435: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
31436: BusCyclePenalty += 2;
31437: CLEAR_CZNV;
31438: SET_ZFLG (((uae_s32)(src)) == 0);
31439: SET_NFLG (((uae_s32)(src)) < 0);
31440: put_long(dsta,src);
31441: }}}}m68k_incpc(4);
31442: return 26;
31443: }
31444: unsigned long REGPARAM2 CPUFUNC(op_2198_3)(uae_u32 opcode) /* MOVE */
31445: {
31446: uae_u32 srcreg = (opcode & 7);
31447: uae_u32 dstreg = (opcode >> 9) & 7;
31448: OpcodeFamily = 30; CurrentInstrCycles = 26;
31449: {{ uaecptr srca = m68k_areg(regs, srcreg);
31450: { uae_s32 src = get_long(srca);
31451: m68k_areg(regs, srcreg) += 4;
31452: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
31453: BusCyclePenalty += 2;
31454: CLEAR_CZNV;
31455: SET_ZFLG (((uae_s32)(src)) == 0);
31456: SET_NFLG (((uae_s32)(src)) < 0);
31457: put_long(dsta,src);
31458: }}}}m68k_incpc(4);
31459: return 26;
31460: }
31461: unsigned long REGPARAM2 CPUFUNC(op_21a0_3)(uae_u32 opcode) /* MOVE */
31462: {
31463: uae_u32 srcreg = (opcode & 7);
31464: uae_u32 dstreg = (opcode >> 9) & 7;
31465: OpcodeFamily = 30; CurrentInstrCycles = 28;
31466: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
31467: { uae_s32 src = get_long(srca);
31468: m68k_areg (regs, srcreg) = srca;
31469: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
31470: BusCyclePenalty += 2;
31471: CLEAR_CZNV;
31472: SET_ZFLG (((uae_s32)(src)) == 0);
31473: SET_NFLG (((uae_s32)(src)) < 0);
31474: put_long(dsta,src);
31475: }}}}m68k_incpc(4);
31476: return 28;
31477: }
31478: unsigned long REGPARAM2 CPUFUNC(op_21a8_3)(uae_u32 opcode) /* MOVE */
31479: {
31480: uae_u32 srcreg = (opcode & 7);
31481: uae_u32 dstreg = (opcode >> 9) & 7;
31482: OpcodeFamily = 30; CurrentInstrCycles = 30;
31483: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
31484: { uae_s32 src = get_long(srca);
31485: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
31486: BusCyclePenalty += 2;
31487: CLEAR_CZNV;
31488: SET_ZFLG (((uae_s32)(src)) == 0);
31489: SET_NFLG (((uae_s32)(src)) < 0);
31490: put_long(dsta,src);
31491: }}}}m68k_incpc(6);
31492: return 30;
31493: }
31494: unsigned long REGPARAM2 CPUFUNC(op_21b0_3)(uae_u32 opcode) /* MOVE */
31495: {
31496: uae_u32 srcreg = (opcode & 7);
31497: uae_u32 dstreg = (opcode >> 9) & 7;
31498: OpcodeFamily = 30; CurrentInstrCycles = 32;
31499: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
31500: BusCyclePenalty += 2;
31501: { uae_s32 src = get_long(srca);
31502: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
31503: BusCyclePenalty += 2;
31504: CLEAR_CZNV;
31505: SET_ZFLG (((uae_s32)(src)) == 0);
31506: SET_NFLG (((uae_s32)(src)) < 0);
31507: put_long(dsta,src);
31508: }}}}m68k_incpc(6);
31509: return 32;
31510: }
31511: unsigned long REGPARAM2 CPUFUNC(op_21b8_3)(uae_u32 opcode) /* MOVE */
31512: {
31513: uae_u32 dstreg = (opcode >> 9) & 7;
31514: OpcodeFamily = 30; CurrentInstrCycles = 30;
31515: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
31516: { uae_s32 src = get_long(srca);
31517: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
31518: BusCyclePenalty += 2;
31519: CLEAR_CZNV;
31520: SET_ZFLG (((uae_s32)(src)) == 0);
31521: SET_NFLG (((uae_s32)(src)) < 0);
31522: put_long(dsta,src);
31523: }}}}m68k_incpc(6);
31524: return 30;
31525: }
31526: unsigned long REGPARAM2 CPUFUNC(op_21b9_3)(uae_u32 opcode) /* MOVE */
31527: {
31528: uae_u32 dstreg = (opcode >> 9) & 7;
31529: OpcodeFamily = 30; CurrentInstrCycles = 34;
31530: {{ uaecptr srca = get_ilong(2);
31531: { uae_s32 src = get_long(srca);
31532: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6));
31533: BusCyclePenalty += 2;
31534: CLEAR_CZNV;
31535: SET_ZFLG (((uae_s32)(src)) == 0);
31536: SET_NFLG (((uae_s32)(src)) < 0);
31537: put_long(dsta,src);
31538: }}}}m68k_incpc(8);
31539: return 34;
31540: }
31541: unsigned long REGPARAM2 CPUFUNC(op_21ba_3)(uae_u32 opcode) /* MOVE */
31542: {
31543: uae_u32 dstreg = (opcode >> 9) & 7;
31544: OpcodeFamily = 30; CurrentInstrCycles = 30;
31545: {{ uaecptr srca = m68k_getpc () + 2;
31546: srca += (uae_s32)(uae_s16)get_iword(2);
31547: { uae_s32 src = get_long(srca);
31548: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
31549: BusCyclePenalty += 2;
31550: CLEAR_CZNV;
31551: SET_ZFLG (((uae_s32)(src)) == 0);
31552: SET_NFLG (((uae_s32)(src)) < 0);
31553: put_long(dsta,src);
31554: }}}}m68k_incpc(6);
31555: return 30;
31556: }
31557: unsigned long REGPARAM2 CPUFUNC(op_21bb_3)(uae_u32 opcode) /* MOVE */
31558: {
31559: uae_u32 dstreg = (opcode >> 9) & 7;
31560: OpcodeFamily = 30; CurrentInstrCycles = 32;
31561: {{ uaecptr tmppc = m68k_getpc() + 2;
31562: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
31563: BusCyclePenalty += 2;
31564: { uae_s32 src = get_long(srca);
31565: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
31566: BusCyclePenalty += 2;
31567: CLEAR_CZNV;
31568: SET_ZFLG (((uae_s32)(src)) == 0);
31569: SET_NFLG (((uae_s32)(src)) < 0);
31570: put_long(dsta,src);
31571: }}}}m68k_incpc(6);
31572: return 32;
31573: }
31574: unsigned long REGPARAM2 CPUFUNC(op_21bc_3)(uae_u32 opcode) /* MOVE */
31575: {
31576: uae_u32 dstreg = (opcode >> 9) & 7;
31577: OpcodeFamily = 30; CurrentInstrCycles = 26;
31578: {{ uae_s32 src = get_ilong(2);
31579: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6));
31580: BusCyclePenalty += 2;
31581: CLEAR_CZNV;
31582: SET_ZFLG (((uae_s32)(src)) == 0);
31583: SET_NFLG (((uae_s32)(src)) < 0);
31584: put_long(dsta,src);
31585: }}}m68k_incpc(8);
31586: return 26;
31587: }
31588: unsigned long REGPARAM2 CPUFUNC(op_21f0_3)(uae_u32 opcode) /* MOVE */
31589: {
31590: uae_u32 srcreg = (opcode & 7);
31591: OpcodeFamily = 30; CurrentInstrCycles = 30;
31592: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
31593: BusCyclePenalty += 2;
31594: { uae_s32 src = get_long(srca);
31595: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
31596: CLEAR_CZNV;
31597: SET_ZFLG (((uae_s32)(src)) == 0);
31598: SET_NFLG (((uae_s32)(src)) < 0);
31599: put_long(dsta,src);
31600: }}}}m68k_incpc(6);
31601: return 30;
31602: }
31603: unsigned long REGPARAM2 CPUFUNC(op_21fb_3)(uae_u32 opcode) /* MOVE */
31604: {
31605: OpcodeFamily = 30; CurrentInstrCycles = 30;
31606: {{ uaecptr tmppc = m68k_getpc() + 2;
31607: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
31608: BusCyclePenalty += 2;
31609: { uae_s32 src = get_long(srca);
31610: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
31611: CLEAR_CZNV;
31612: SET_ZFLG (((uae_s32)(src)) == 0);
31613: SET_NFLG (((uae_s32)(src)) < 0);
31614: put_long(dsta,src);
31615: }}}}m68k_incpc(6);
31616: return 30;
31617: }
31618: unsigned long REGPARAM2 CPUFUNC(op_23f0_3)(uae_u32 opcode) /* MOVE */
31619: {
31620: uae_u32 srcreg = (opcode & 7);
31621: OpcodeFamily = 30; CurrentInstrCycles = 34;
31622: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
31623: BusCyclePenalty += 2;
31624: { uae_s32 src = get_long(srca);
31625: { uaecptr dsta = get_ilong(4);
31626: CLEAR_CZNV;
31627: SET_ZFLG (((uae_s32)(src)) == 0);
31628: SET_NFLG (((uae_s32)(src)) < 0);
31629: put_long(dsta,src);
31630: }}}}m68k_incpc(8);
31631: return 34;
31632: }
31633: unsigned long REGPARAM2 CPUFUNC(op_23fb_3)(uae_u32 opcode) /* MOVE */
31634: {
31635: OpcodeFamily = 30; CurrentInstrCycles = 34;
31636: {{ uaecptr tmppc = m68k_getpc() + 2;
31637: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
31638: BusCyclePenalty += 2;
31639: { uae_s32 src = get_long(srca);
31640: { uaecptr dsta = get_ilong(4);
31641: CLEAR_CZNV;
31642: SET_ZFLG (((uae_s32)(src)) == 0);
31643: SET_NFLG (((uae_s32)(src)) < 0);
31644: put_long(dsta,src);
31645: }}}}m68k_incpc(8);
31646: return 34;
31647: }
31648: unsigned long REGPARAM2 CPUFUNC(op_3030_3)(uae_u32 opcode) /* MOVE */
31649: {
31650: uae_u32 srcreg = (opcode & 7);
31651: uae_u32 dstreg = (opcode >> 9) & 7;
31652: OpcodeFamily = 30; CurrentInstrCycles = 14;
31653: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
31654: BusCyclePenalty += 2;
31655: { uae_s16 src = get_word(srca);
31656: { CLEAR_CZNV;
31657: SET_ZFLG (((uae_s16)(src)) == 0);
31658: SET_NFLG (((uae_s16)(src)) < 0);
31659: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
31660: }}}}m68k_incpc(4);
31661: return 14;
31662: }
31663: unsigned long REGPARAM2 CPUFUNC(op_303b_3)(uae_u32 opcode) /* MOVE */
31664: {
31665: uae_u32 dstreg = (opcode >> 9) & 7;
31666: OpcodeFamily = 30; CurrentInstrCycles = 14;
31667: {{ uaecptr tmppc = m68k_getpc() + 2;
31668: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
31669: BusCyclePenalty += 2;
31670: { uae_s16 src = get_word(srca);
31671: { CLEAR_CZNV;
31672: SET_ZFLG (((uae_s16)(src)) == 0);
31673: SET_NFLG (((uae_s16)(src)) < 0);
31674: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
31675: }}}}m68k_incpc(4);
31676: return 14;
31677: }
31678: unsigned long REGPARAM2 CPUFUNC(op_3070_3)(uae_u32 opcode) /* MOVEA */
31679: {
31680: uae_u32 srcreg = (opcode & 7);
31681: uae_u32 dstreg = (opcode >> 9) & 7;
31682: OpcodeFamily = 31; CurrentInstrCycles = 14;
31683: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
31684: BusCyclePenalty += 2;
31685: { uae_s16 src = get_word(srca);
31686: { uae_u32 val = (uae_s32)(uae_s16)src;
31687: m68k_areg(regs, dstreg) = (val);
31688: }}}}m68k_incpc(4);
31689: return 14;
31690: }
31691: unsigned long REGPARAM2 CPUFUNC(op_307b_3)(uae_u32 opcode) /* MOVEA */
31692: {
31693: uae_u32 dstreg = (opcode >> 9) & 7;
31694: OpcodeFamily = 31; CurrentInstrCycles = 14;
31695: {{ uaecptr tmppc = m68k_getpc() + 2;
31696: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
31697: BusCyclePenalty += 2;
31698: { uae_s16 src = get_word(srca);
31699: { uae_u32 val = (uae_s32)(uae_s16)src;
31700: m68k_areg(regs, dstreg) = (val);
31701: }}}}m68k_incpc(4);
31702: return 14;
31703: }
31704: unsigned long REGPARAM2 CPUFUNC(op_30b0_3)(uae_u32 opcode) /* MOVE */
31705: {
31706: uae_u32 srcreg = (opcode & 7);
31707: uae_u32 dstreg = (opcode >> 9) & 7;
31708: OpcodeFamily = 30; CurrentInstrCycles = 18;
31709: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
31710: BusCyclePenalty += 2;
31711: { uae_s16 src = get_word(srca);
31712: { uaecptr dsta = m68k_areg(regs, dstreg);
31713: CLEAR_CZNV;
31714: SET_ZFLG (((uae_s16)(src)) == 0);
31715: SET_NFLG (((uae_s16)(src)) < 0);
31716: put_word(dsta,src);
31717: }}}}m68k_incpc(4);
31718: return 18;
31719: }
31720: unsigned long REGPARAM2 CPUFUNC(op_30bb_3)(uae_u32 opcode) /* MOVE */
31721: {
31722: uae_u32 dstreg = (opcode >> 9) & 7;
31723: OpcodeFamily = 30; CurrentInstrCycles = 18;
31724: {{ uaecptr tmppc = m68k_getpc() + 2;
31725: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
31726: BusCyclePenalty += 2;
31727: { uae_s16 src = get_word(srca);
31728: { uaecptr dsta = m68k_areg(regs, dstreg);
31729: CLEAR_CZNV;
31730: SET_ZFLG (((uae_s16)(src)) == 0);
31731: SET_NFLG (((uae_s16)(src)) < 0);
31732: put_word(dsta,src);
31733: }}}}m68k_incpc(4);
31734: return 18;
31735: }
31736: unsigned long REGPARAM2 CPUFUNC(op_30f0_3)(uae_u32 opcode) /* MOVE */
31737: {
31738: uae_u32 srcreg = (opcode & 7);
31739: uae_u32 dstreg = (opcode >> 9) & 7;
31740: OpcodeFamily = 30; CurrentInstrCycles = 18;
31741: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
31742: BusCyclePenalty += 2;
31743: { uae_s16 src = get_word(srca);
31744: { uaecptr dsta = m68k_areg(regs, dstreg);
31745: m68k_areg(regs, dstreg) += 2;
31746: CLEAR_CZNV;
31747: SET_ZFLG (((uae_s16)(src)) == 0);
31748: SET_NFLG (((uae_s16)(src)) < 0);
31749: put_word(dsta,src);
31750: }}}}m68k_incpc(4);
31751: return 18;
31752: }
31753: unsigned long REGPARAM2 CPUFUNC(op_30fb_3)(uae_u32 opcode) /* MOVE */
31754: {
31755: uae_u32 dstreg = (opcode >> 9) & 7;
31756: OpcodeFamily = 30; CurrentInstrCycles = 18;
31757: {{ uaecptr tmppc = m68k_getpc() + 2;
31758: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
31759: BusCyclePenalty += 2;
31760: { uae_s16 src = get_word(srca);
31761: { uaecptr dsta = m68k_areg(regs, dstreg);
31762: m68k_areg(regs, dstreg) += 2;
31763: CLEAR_CZNV;
31764: SET_ZFLG (((uae_s16)(src)) == 0);
31765: SET_NFLG (((uae_s16)(src)) < 0);
31766: put_word(dsta,src);
31767: }}}}m68k_incpc(4);
31768: return 18;
31769: }
31770: unsigned long REGPARAM2 CPUFUNC(op_3130_3)(uae_u32 opcode) /* MOVE */
31771: {
31772: uae_u32 srcreg = (opcode & 7);
31773: uae_u32 dstreg = (opcode >> 9) & 7;
31774: OpcodeFamily = 30; CurrentInstrCycles = 18;
31775: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
31776: BusCyclePenalty += 2;
31777: { uae_s16 src = get_word(srca);
31778: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
31779: m68k_areg (regs, dstreg) = dsta;
31780: CLEAR_CZNV;
31781: SET_ZFLG (((uae_s16)(src)) == 0);
31782: SET_NFLG (((uae_s16)(src)) < 0);
31783: put_word(dsta,src);
31784: }}}}m68k_incpc(4);
31785: return 18;
31786: }
31787: unsigned long REGPARAM2 CPUFUNC(op_313b_3)(uae_u32 opcode) /* MOVE */
31788: {
31789: uae_u32 dstreg = (opcode >> 9) & 7;
31790: OpcodeFamily = 30; CurrentInstrCycles = 18;
31791: {{ uaecptr tmppc = m68k_getpc() + 2;
31792: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
31793: BusCyclePenalty += 2;
31794: { uae_s16 src = get_word(srca);
31795: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
31796: m68k_areg (regs, dstreg) = dsta;
31797: CLEAR_CZNV;
31798: SET_ZFLG (((uae_s16)(src)) == 0);
31799: SET_NFLG (((uae_s16)(src)) < 0);
31800: put_word(dsta,src);
31801: }}}}m68k_incpc(4);
31802: return 18;
31803: }
31804: unsigned long REGPARAM2 CPUFUNC(op_3170_3)(uae_u32 opcode) /* MOVE */
31805: {
31806: uae_u32 srcreg = (opcode & 7);
31807: uae_u32 dstreg = (opcode >> 9) & 7;
31808: OpcodeFamily = 30; CurrentInstrCycles = 22;
31809: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
31810: BusCyclePenalty += 2;
31811: { uae_s16 src = get_word(srca);
31812: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
31813: CLEAR_CZNV;
31814: SET_ZFLG (((uae_s16)(src)) == 0);
31815: SET_NFLG (((uae_s16)(src)) < 0);
31816: put_word(dsta,src);
31817: }}}}m68k_incpc(6);
31818: return 22;
31819: }
31820: unsigned long REGPARAM2 CPUFUNC(op_317b_3)(uae_u32 opcode) /* MOVE */
31821: {
31822: uae_u32 dstreg = (opcode >> 9) & 7;
31823: OpcodeFamily = 30; CurrentInstrCycles = 22;
31824: {{ uaecptr tmppc = m68k_getpc() + 2;
31825: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
31826: BusCyclePenalty += 2;
31827: { uae_s16 src = get_word(srca);
31828: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword(4);
31829: CLEAR_CZNV;
31830: SET_ZFLG (((uae_s16)(src)) == 0);
31831: SET_NFLG (((uae_s16)(src)) < 0);
31832: put_word(dsta,src);
31833: }}}}m68k_incpc(6);
31834: return 22;
31835: }
31836: unsigned long REGPARAM2 CPUFUNC(op_3180_3)(uae_u32 opcode) /* MOVE */
31837: {
31838: uae_u32 srcreg = (opcode & 7);
31839: uae_u32 dstreg = (opcode >> 9) & 7;
31840: OpcodeFamily = 30; CurrentInstrCycles = 14;
31841: {{ uae_s16 src = m68k_dreg(regs, srcreg);
31842: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
31843: BusCyclePenalty += 2;
31844: CLEAR_CZNV;
31845: SET_ZFLG (((uae_s16)(src)) == 0);
31846: SET_NFLG (((uae_s16)(src)) < 0);
31847: put_word(dsta,src);
31848: }}}m68k_incpc(4);
31849: return 14;
31850: }
31851: unsigned long REGPARAM2 CPUFUNC(op_3188_3)(uae_u32 opcode) /* MOVE */
31852: {
31853: uae_u32 srcreg = (opcode & 7);
31854: uae_u32 dstreg = (opcode >> 9) & 7;
31855: OpcodeFamily = 30; CurrentInstrCycles = 14;
31856: {{ uae_s16 src = m68k_areg(regs, srcreg);
31857: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
31858: BusCyclePenalty += 2;
31859: CLEAR_CZNV;
31860: SET_ZFLG (((uae_s16)(src)) == 0);
31861: SET_NFLG (((uae_s16)(src)) < 0);
31862: put_word(dsta,src);
31863: }}}m68k_incpc(4);
31864: return 14;
31865: }
31866: unsigned long REGPARAM2 CPUFUNC(op_3190_3)(uae_u32 opcode) /* MOVE */
31867: {
31868: uae_u32 srcreg = (opcode & 7);
31869: uae_u32 dstreg = (opcode >> 9) & 7;
31870: OpcodeFamily = 30; CurrentInstrCycles = 18;
31871: {{ uaecptr srca = m68k_areg(regs, srcreg);
31872: { uae_s16 src = get_word(srca);
31873: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
31874: BusCyclePenalty += 2;
31875: CLEAR_CZNV;
31876: SET_ZFLG (((uae_s16)(src)) == 0);
31877: SET_NFLG (((uae_s16)(src)) < 0);
31878: put_word(dsta,src);
31879: }}}}m68k_incpc(4);
31880: return 18;
31881: }
31882: unsigned long REGPARAM2 CPUFUNC(op_3198_3)(uae_u32 opcode) /* MOVE */
31883: {
31884: uae_u32 srcreg = (opcode & 7);
31885: uae_u32 dstreg = (opcode >> 9) & 7;
31886: OpcodeFamily = 30; CurrentInstrCycles = 18;
31887: {{ uaecptr srca = m68k_areg(regs, srcreg);
31888: { uae_s16 src = get_word(srca);
31889: m68k_areg(regs, srcreg) += 2;
31890: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
31891: BusCyclePenalty += 2;
31892: CLEAR_CZNV;
31893: SET_ZFLG (((uae_s16)(src)) == 0);
31894: SET_NFLG (((uae_s16)(src)) < 0);
31895: put_word(dsta,src);
31896: }}}}m68k_incpc(4);
31897: return 18;
31898: }
31899: unsigned long REGPARAM2 CPUFUNC(op_31a0_3)(uae_u32 opcode) /* MOVE */
31900: {
31901: uae_u32 srcreg = (opcode & 7);
31902: uae_u32 dstreg = (opcode >> 9) & 7;
31903: OpcodeFamily = 30; CurrentInstrCycles = 20;
31904: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
31905: { uae_s16 src = get_word(srca);
31906: m68k_areg (regs, srcreg) = srca;
31907: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
31908: BusCyclePenalty += 2;
31909: CLEAR_CZNV;
31910: SET_ZFLG (((uae_s16)(src)) == 0);
31911: SET_NFLG (((uae_s16)(src)) < 0);
31912: put_word(dsta,src);
31913: }}}}m68k_incpc(4);
31914: return 20;
31915: }
31916: unsigned long REGPARAM2 CPUFUNC(op_31a8_3)(uae_u32 opcode) /* MOVE */
31917: {
31918: uae_u32 srcreg = (opcode & 7);
31919: uae_u32 dstreg = (opcode >> 9) & 7;
31920: OpcodeFamily = 30; CurrentInstrCycles = 22;
31921: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
31922: { uae_s16 src = get_word(srca);
31923: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
31924: BusCyclePenalty += 2;
31925: CLEAR_CZNV;
31926: SET_ZFLG (((uae_s16)(src)) == 0);
31927: SET_NFLG (((uae_s16)(src)) < 0);
31928: put_word(dsta,src);
31929: }}}}m68k_incpc(6);
31930: return 22;
31931: }
31932: unsigned long REGPARAM2 CPUFUNC(op_31b0_3)(uae_u32 opcode) /* MOVE */
31933: {
31934: uae_u32 srcreg = (opcode & 7);
31935: uae_u32 dstreg = (opcode >> 9) & 7;
31936: OpcodeFamily = 30; CurrentInstrCycles = 24;
31937: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
31938: BusCyclePenalty += 2;
31939: { uae_s16 src = get_word(srca);
31940: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
31941: BusCyclePenalty += 2;
31942: CLEAR_CZNV;
31943: SET_ZFLG (((uae_s16)(src)) == 0);
31944: SET_NFLG (((uae_s16)(src)) < 0);
31945: put_word(dsta,src);
31946: }}}}m68k_incpc(6);
31947: return 24;
31948: }
31949: unsigned long REGPARAM2 CPUFUNC(op_31b8_3)(uae_u32 opcode) /* MOVE */
31950: {
31951: uae_u32 dstreg = (opcode >> 9) & 7;
31952: OpcodeFamily = 30; CurrentInstrCycles = 22;
31953: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
31954: { uae_s16 src = get_word(srca);
31955: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
31956: BusCyclePenalty += 2;
31957: CLEAR_CZNV;
31958: SET_ZFLG (((uae_s16)(src)) == 0);
31959: SET_NFLG (((uae_s16)(src)) < 0);
31960: put_word(dsta,src);
31961: }}}}m68k_incpc(6);
31962: return 22;
31963: }
31964: unsigned long REGPARAM2 CPUFUNC(op_31b9_3)(uae_u32 opcode) /* MOVE */
31965: {
31966: uae_u32 dstreg = (opcode >> 9) & 7;
31967: OpcodeFamily = 30; CurrentInstrCycles = 26;
31968: {{ uaecptr srca = get_ilong(2);
31969: { uae_s16 src = get_word(srca);
31970: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(6));
31971: BusCyclePenalty += 2;
31972: CLEAR_CZNV;
31973: SET_ZFLG (((uae_s16)(src)) == 0);
31974: SET_NFLG (((uae_s16)(src)) < 0);
31975: put_word(dsta,src);
31976: }}}}m68k_incpc(8);
31977: return 26;
31978: }
31979: unsigned long REGPARAM2 CPUFUNC(op_31ba_3)(uae_u32 opcode) /* MOVE */
31980: {
31981: uae_u32 dstreg = (opcode >> 9) & 7;
31982: OpcodeFamily = 30; CurrentInstrCycles = 22;
31983: {{ uaecptr srca = m68k_getpc () + 2;
31984: srca += (uae_s32)(uae_s16)get_iword(2);
31985: { uae_s16 src = get_word(srca);
31986: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
31987: BusCyclePenalty += 2;
31988: CLEAR_CZNV;
31989: SET_ZFLG (((uae_s16)(src)) == 0);
31990: SET_NFLG (((uae_s16)(src)) < 0);
31991: put_word(dsta,src);
31992: }}}}m68k_incpc(6);
31993: return 22;
31994: }
31995: unsigned long REGPARAM2 CPUFUNC(op_31bb_3)(uae_u32 opcode) /* MOVE */
31996: {
31997: uae_u32 dstreg = (opcode >> 9) & 7;
31998: OpcodeFamily = 30; CurrentInstrCycles = 24;
31999: {{ uaecptr tmppc = m68k_getpc() + 2;
32000: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
32001: BusCyclePenalty += 2;
32002: { uae_s16 src = get_word(srca);
32003: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
32004: BusCyclePenalty += 2;
32005: CLEAR_CZNV;
32006: SET_ZFLG (((uae_s16)(src)) == 0);
32007: SET_NFLG (((uae_s16)(src)) < 0);
32008: put_word(dsta,src);
32009: }}}}m68k_incpc(6);
32010: return 24;
32011: }
32012: unsigned long REGPARAM2 CPUFUNC(op_31bc_3)(uae_u32 opcode) /* MOVE */
32013: {
32014: uae_u32 dstreg = (opcode >> 9) & 7;
32015: OpcodeFamily = 30; CurrentInstrCycles = 18;
32016: {{ uae_s16 src = get_iword(2);
32017: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
32018: BusCyclePenalty += 2;
32019: CLEAR_CZNV;
32020: SET_ZFLG (((uae_s16)(src)) == 0);
32021: SET_NFLG (((uae_s16)(src)) < 0);
32022: put_word(dsta,src);
32023: }}}m68k_incpc(6);
32024: return 18;
32025: }
32026: unsigned long REGPARAM2 CPUFUNC(op_31f0_3)(uae_u32 opcode) /* MOVE */
32027: {
32028: uae_u32 srcreg = (opcode & 7);
32029: OpcodeFamily = 30; CurrentInstrCycles = 22;
32030: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32031: BusCyclePenalty += 2;
32032: { uae_s16 src = get_word(srca);
32033: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
32034: CLEAR_CZNV;
32035: SET_ZFLG (((uae_s16)(src)) == 0);
32036: SET_NFLG (((uae_s16)(src)) < 0);
32037: put_word(dsta,src);
32038: }}}}m68k_incpc(6);
32039: return 22;
32040: }
32041: unsigned long REGPARAM2 CPUFUNC(op_31fb_3)(uae_u32 opcode) /* MOVE */
32042: {
32043: OpcodeFamily = 30; CurrentInstrCycles = 22;
32044: {{ uaecptr tmppc = m68k_getpc() + 2;
32045: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
32046: BusCyclePenalty += 2;
32047: { uae_s16 src = get_word(srca);
32048: { uaecptr dsta = (uae_s32)(uae_s16)get_iword(4);
32049: CLEAR_CZNV;
32050: SET_ZFLG (((uae_s16)(src)) == 0);
32051: SET_NFLG (((uae_s16)(src)) < 0);
32052: put_word(dsta,src);
32053: }}}}m68k_incpc(6);
32054: return 22;
32055: }
32056: unsigned long REGPARAM2 CPUFUNC(op_33f0_3)(uae_u32 opcode) /* MOVE */
32057: {
32058: uae_u32 srcreg = (opcode & 7);
32059: OpcodeFamily = 30; CurrentInstrCycles = 26;
32060: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32061: BusCyclePenalty += 2;
32062: { uae_s16 src = get_word(srca);
32063: { uaecptr dsta = get_ilong(4);
32064: CLEAR_CZNV;
32065: SET_ZFLG (((uae_s16)(src)) == 0);
32066: SET_NFLG (((uae_s16)(src)) < 0);
32067: put_word(dsta,src);
32068: }}}}m68k_incpc(8);
32069: return 26;
32070: }
32071: unsigned long REGPARAM2 CPUFUNC(op_33fb_3)(uae_u32 opcode) /* MOVE */
32072: {
32073: OpcodeFamily = 30; CurrentInstrCycles = 26;
32074: {{ uaecptr tmppc = m68k_getpc() + 2;
32075: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
32076: BusCyclePenalty += 2;
32077: { uae_s16 src = get_word(srca);
32078: { uaecptr dsta = get_ilong(4);
32079: CLEAR_CZNV;
32080: SET_ZFLG (((uae_s16)(src)) == 0);
32081: SET_NFLG (((uae_s16)(src)) < 0);
32082: put_word(dsta,src);
32083: }}}}m68k_incpc(8);
32084: return 26;
32085: }
32086: unsigned long REGPARAM2 CPUFUNC(op_4030_3)(uae_u32 opcode) /* NEGX */
32087: {
32088: uae_u32 srcreg = (opcode & 7);
32089: OpcodeFamily = 16; CurrentInstrCycles = 18;
32090: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32091: BusCyclePenalty += 2;
32092: { uae_s8 src = get_byte(srca);
32093: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
32094: { int flgs = ((uae_s8)(src)) < 0;
32095: int flgo = ((uae_s8)(0)) < 0;
32096: int flgn = ((uae_s8)(newv)) < 0;
32097: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
32098: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
32099: COPY_CARRY;
32100: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
32101: SET_NFLG (((uae_s8)(newv)) < 0);
32102: put_byte(srca,newv);
32103: }}}}}m68k_incpc(4);
32104: return 18;
32105: }
32106: unsigned long REGPARAM2 CPUFUNC(op_4070_3)(uae_u32 opcode) /* NEGX */
32107: {
32108: uae_u32 srcreg = (opcode & 7);
32109: OpcodeFamily = 16; CurrentInstrCycles = 18;
32110: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32111: BusCyclePenalty += 2;
32112: { uae_s16 src = get_word(srca);
32113: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
32114: { int flgs = ((uae_s16)(src)) < 0;
32115: int flgo = ((uae_s16)(0)) < 0;
32116: int flgn = ((uae_s16)(newv)) < 0;
32117: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
32118: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
32119: COPY_CARRY;
32120: SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
32121: SET_NFLG (((uae_s16)(newv)) < 0);
32122: put_word(srca,newv);
32123: }}}}}m68k_incpc(4);
32124: return 18;
32125: }
32126: unsigned long REGPARAM2 CPUFUNC(op_40b0_3)(uae_u32 opcode) /* NEGX */
32127: {
32128: uae_u32 srcreg = (opcode & 7);
32129: OpcodeFamily = 16; CurrentInstrCycles = 26;
32130: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32131: BusCyclePenalty += 2;
32132: { uae_s32 src = get_long(srca);
32133: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
32134: { int flgs = ((uae_s32)(src)) < 0;
32135: int flgo = ((uae_s32)(0)) < 0;
32136: int flgn = ((uae_s32)(newv)) < 0;
32137: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
32138: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
32139: COPY_CARRY;
32140: SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
32141: SET_NFLG (((uae_s32)(newv)) < 0);
32142: put_long(srca,newv);
32143: }}}}}m68k_incpc(4);
32144: return 26;
32145: }
32146: unsigned long REGPARAM2 CPUFUNC(op_40f0_3)(uae_u32 opcode) /* MVSR2 */
32147: {
32148: uae_u32 srcreg = (opcode & 7);
32149: OpcodeFamily = 32; CurrentInstrCycles = 18;
32150: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel1997; }
32151: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32152: BusCyclePenalty += 2;
32153: MakeSR();
32154: put_word(srca,regs.sr);
32155: }}}m68k_incpc(4);
32156: endlabel1997: ;
32157: return 18;
32158: }
32159: unsigned long REGPARAM2 CPUFUNC(op_41b0_3)(uae_u32 opcode) /* CHK */
32160: {
32161: uae_u32 srcreg = (opcode & 7);
32162: uae_u32 dstreg = (opcode >> 9) & 7;
32163: OpcodeFamily = 80; CurrentInstrCycles = 20;
32164: { uaecptr oldpc = m68k_getpc();
32165: { uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32166: BusCyclePenalty += 2;
32167: { uae_s16 src = get_word(srca);
32168: { uae_s16 dst = m68k_dreg(regs, dstreg);
32169: m68k_incpc(4);
32170: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel1998; }
32171: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel1998; }
32172: }}}}endlabel1998: ;
32173: return 20;
32174: }
32175: unsigned long REGPARAM2 CPUFUNC(op_41bb_3)(uae_u32 opcode) /* CHK */
32176: {
32177: uae_u32 dstreg = (opcode >> 9) & 7;
32178: OpcodeFamily = 80; CurrentInstrCycles = 20;
32179: { uaecptr oldpc = m68k_getpc();
32180: { uaecptr tmppc = m68k_getpc() + 2;
32181: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
32182: BusCyclePenalty += 2;
32183: { uae_s16 src = get_word(srca);
32184: { uae_s16 dst = m68k_dreg(regs, dstreg);
32185: m68k_incpc(4);
32186: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel1999; }
32187: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel1999; }
32188: }}}}endlabel1999: ;
32189: return 20;
32190: }
32191: unsigned long REGPARAM2 CPUFUNC(op_41f0_3)(uae_u32 opcode) /* LEA */
32192: {
32193: uae_u32 srcreg = (opcode & 7);
32194: uae_u32 dstreg = (opcode >> 9) & 7;
32195: OpcodeFamily = 56; CurrentInstrCycles = 14;
32196: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32197: BusCyclePenalty += 2;
32198: { m68k_areg(regs, dstreg) = (srca);
32199: }}}m68k_incpc(4);
32200: return 14;
32201: }
32202: unsigned long REGPARAM2 CPUFUNC(op_41fb_3)(uae_u32 opcode) /* LEA */
32203: {
32204: uae_u32 dstreg = (opcode >> 9) & 7;
32205: OpcodeFamily = 56; CurrentInstrCycles = 14;
32206: {{ uaecptr tmppc = m68k_getpc() + 2;
32207: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
32208: BusCyclePenalty += 2;
32209: { m68k_areg(regs, dstreg) = (srca);
32210: }}}m68k_incpc(4);
32211: return 14;
32212: }
32213: unsigned long REGPARAM2 CPUFUNC(op_4230_3)(uae_u32 opcode) /* CLR */
32214: {
32215: uae_u32 srcreg = (opcode & 7);
32216: OpcodeFamily = 18; CurrentInstrCycles = 18;
32217: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32218: BusCyclePenalty += 2;
32219: uae_s8 src = get_byte(srca);
32220: CLEAR_CZNV;
32221: SET_ZFLG (((uae_s8)(0)) == 0);
32222: SET_NFLG (((uae_s8)(0)) < 0);
32223: put_byte(srca,0);
32224: }}m68k_incpc(4);
32225: return 18;
32226: }
32227: #endif
32228:
32229: #ifdef PART_4
32230: unsigned long REGPARAM2 CPUFUNC(op_4270_3)(uae_u32 opcode) /* CLR */
32231: {
32232: uae_u32 srcreg = (opcode & 7);
32233: OpcodeFamily = 18; CurrentInstrCycles = 18;
32234: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32235: BusCyclePenalty += 2;
32236: uae_s16 src = get_word(srca);
32237: CLEAR_CZNV;
32238: SET_ZFLG (((uae_s16)(0)) == 0);
32239: SET_NFLG (((uae_s16)(0)) < 0);
32240: put_word(srca,0);
32241: }}m68k_incpc(4);
32242: return 18;
32243: }
32244: unsigned long REGPARAM2 CPUFUNC(op_42b0_3)(uae_u32 opcode) /* CLR */
32245: {
32246: uae_u32 srcreg = (opcode & 7);
32247: OpcodeFamily = 18; CurrentInstrCycles = 26;
32248: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32249: BusCyclePenalty += 2;
32250: uae_s32 src = get_long(srca);
32251: CLEAR_CZNV;
32252: SET_ZFLG (((uae_s32)(0)) == 0);
32253: SET_NFLG (((uae_s32)(0)) < 0);
32254: put_long(srca,0);
32255: }}m68k_incpc(4);
32256: return 26;
32257: }
32258: unsigned long REGPARAM2 CPUFUNC(op_42f0_3)(uae_u32 opcode) /* MVSR2 */
32259: {
32260: uae_u32 srcreg = (opcode & 7);
32261: OpcodeFamily = 32; CurrentInstrCycles = 18;
32262: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32263: BusCyclePenalty += 2;
32264: MakeSR();
32265: put_word(srca,regs.sr & 0xff);
32266: }}m68k_incpc(4);
32267: return 18;
32268: }
32269: unsigned long REGPARAM2 CPUFUNC(op_4430_3)(uae_u32 opcode) /* NEG */
32270: {
32271: uae_u32 srcreg = (opcode & 7);
32272: OpcodeFamily = 15; CurrentInstrCycles = 18;
32273: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32274: BusCyclePenalty += 2;
32275: { uae_s8 src = get_byte(srca);
32276: {{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src));
32277: { int flgs = ((uae_s8)(src)) < 0;
32278: int flgo = ((uae_s8)(0)) < 0;
32279: int flgn = ((uae_s8)(dst)) < 0;
32280: SET_ZFLG (((uae_s8)(dst)) == 0);
32281: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
32282: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0)));
32283: COPY_CARRY;
32284: SET_NFLG (flgn != 0);
32285: put_byte(srca,dst);
32286: }}}}}}m68k_incpc(4);
32287: return 18;
32288: }
32289: unsigned long REGPARAM2 CPUFUNC(op_4470_3)(uae_u32 opcode) /* NEG */
32290: {
32291: uae_u32 srcreg = (opcode & 7);
32292: OpcodeFamily = 15; CurrentInstrCycles = 18;
32293: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32294: BusCyclePenalty += 2;
32295: { uae_s16 src = get_word(srca);
32296: {{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src));
32297: { int flgs = ((uae_s16)(src)) < 0;
32298: int flgo = ((uae_s16)(0)) < 0;
32299: int flgn = ((uae_s16)(dst)) < 0;
32300: SET_ZFLG (((uae_s16)(dst)) == 0);
32301: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
32302: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0)));
32303: COPY_CARRY;
32304: SET_NFLG (flgn != 0);
32305: put_word(srca,dst);
32306: }}}}}}m68k_incpc(4);
32307: return 18;
32308: }
32309: unsigned long REGPARAM2 CPUFUNC(op_44b0_3)(uae_u32 opcode) /* NEG */
32310: {
32311: uae_u32 srcreg = (opcode & 7);
32312: OpcodeFamily = 15; CurrentInstrCycles = 26;
32313: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32314: BusCyclePenalty += 2;
32315: { uae_s32 src = get_long(srca);
32316: {{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src));
32317: { int flgs = ((uae_s32)(src)) < 0;
32318: int flgo = ((uae_s32)(0)) < 0;
32319: int flgn = ((uae_s32)(dst)) < 0;
32320: SET_ZFLG (((uae_s32)(dst)) == 0);
32321: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
32322: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0)));
32323: COPY_CARRY;
32324: SET_NFLG (flgn != 0);
32325: put_long(srca,dst);
32326: }}}}}}m68k_incpc(4);
32327: return 26;
32328: }
32329: unsigned long REGPARAM2 CPUFUNC(op_44f0_3)(uae_u32 opcode) /* MV2SR */
32330: {
32331: uae_u32 srcreg = (opcode & 7);
32332: OpcodeFamily = 33; CurrentInstrCycles = 22;
32333: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32334: BusCyclePenalty += 2;
32335: { uae_s16 src = get_word(srca);
32336: MakeSR();
32337: regs.sr &= 0xFF00;
32338: regs.sr |= src & 0xFF;
32339: MakeFromSR();
32340: }}}m68k_incpc(4);
32341: return 22;
32342: }
32343: unsigned long REGPARAM2 CPUFUNC(op_44fb_3)(uae_u32 opcode) /* MV2SR */
32344: {
32345: OpcodeFamily = 33; CurrentInstrCycles = 22;
32346: {{ uaecptr tmppc = m68k_getpc() + 2;
32347: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
32348: BusCyclePenalty += 2;
32349: { uae_s16 src = get_word(srca);
32350: MakeSR();
32351: regs.sr &= 0xFF00;
32352: regs.sr |= src & 0xFF;
32353: MakeFromSR();
32354: }}}m68k_incpc(4);
32355: return 22;
32356: }
32357: unsigned long REGPARAM2 CPUFUNC(op_4630_3)(uae_u32 opcode) /* NOT */
32358: {
32359: uae_u32 srcreg = (opcode & 7);
32360: OpcodeFamily = 19; CurrentInstrCycles = 18;
32361: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32362: BusCyclePenalty += 2;
32363: { uae_s8 src = get_byte(srca);
32364: { uae_u32 dst = ~src;
32365: CLEAR_CZNV;
32366: SET_ZFLG (((uae_s8)(dst)) == 0);
32367: SET_NFLG (((uae_s8)(dst)) < 0);
32368: put_byte(srca,dst);
32369: }}}}m68k_incpc(4);
32370: return 18;
32371: }
32372: unsigned long REGPARAM2 CPUFUNC(op_4670_3)(uae_u32 opcode) /* NOT */
32373: {
32374: uae_u32 srcreg = (opcode & 7);
32375: OpcodeFamily = 19; CurrentInstrCycles = 18;
32376: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32377: BusCyclePenalty += 2;
32378: { uae_s16 src = get_word(srca);
32379: { uae_u32 dst = ~src;
32380: CLEAR_CZNV;
32381: SET_ZFLG (((uae_s16)(dst)) == 0);
32382: SET_NFLG (((uae_s16)(dst)) < 0);
32383: put_word(srca,dst);
32384: }}}}m68k_incpc(4);
32385: return 18;
32386: }
32387: unsigned long REGPARAM2 CPUFUNC(op_46b0_3)(uae_u32 opcode) /* NOT */
32388: {
32389: uae_u32 srcreg = (opcode & 7);
32390: OpcodeFamily = 19; CurrentInstrCycles = 26;
32391: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32392: BusCyclePenalty += 2;
32393: { uae_s32 src = get_long(srca);
32394: { uae_u32 dst = ~src;
32395: CLEAR_CZNV;
32396: SET_ZFLG (((uae_s32)(dst)) == 0);
32397: SET_NFLG (((uae_s32)(dst)) < 0);
32398: put_long(srca,dst);
32399: }}}}m68k_incpc(4);
32400: return 26;
32401: }
32402: unsigned long REGPARAM2 CPUFUNC(op_46f0_3)(uae_u32 opcode) /* MV2SR */
32403: {
32404: uae_u32 srcreg = (opcode & 7);
32405: OpcodeFamily = 33; CurrentInstrCycles = 22;
32406: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel2014; }
32407: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32408: BusCyclePenalty += 2;
32409: { uae_s16 src = get_word(srca);
32410: regs.sr = src;
32411: MakeFromSR();
32412: }}}}m68k_incpc(4);
32413: endlabel2014: ;
32414: return 22;
32415: }
32416: unsigned long REGPARAM2 CPUFUNC(op_46fb_3)(uae_u32 opcode) /* MV2SR */
32417: {
32418: OpcodeFamily = 33; CurrentInstrCycles = 22;
32419: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel2015; }
32420: {{ uaecptr tmppc = m68k_getpc() + 2;
32421: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
32422: BusCyclePenalty += 2;
32423: { uae_s16 src = get_word(srca);
32424: regs.sr = src;
32425: MakeFromSR();
32426: }}}}m68k_incpc(4);
32427: endlabel2015: ;
32428: return 22;
32429: }
32430: unsigned long REGPARAM2 CPUFUNC(op_4830_3)(uae_u32 opcode) /* NBCD */
32431: {
32432: uae_u32 srcreg = (opcode & 7);
32433: OpcodeFamily = 17; CurrentInstrCycles = 18;
32434: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32435: BusCyclePenalty += 2;
32436: { uae_s8 src = get_byte(srca);
32437: { uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0);
32438: uae_u16 newv_hi = - (src & 0xF0);
32439: uae_u16 newv;
32440: int cflg;
32441: if (newv_lo > 9) { newv_lo -= 6; }
32442: newv = newv_hi + newv_lo; cflg = (newv & 0x1F0) > 0x90;
32443: if (cflg) newv -= 0x60;
32444: SET_CFLG (cflg);
32445: COPY_CARRY;
32446: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
32447: SET_NFLG (((uae_s8)(newv)) < 0);
32448: put_byte(srca,newv);
32449: }}}}m68k_incpc(4);
32450: return 18;
32451: }
32452: unsigned long REGPARAM2 CPUFUNC(op_4870_3)(uae_u32 opcode) /* PEA */
32453: {
32454: uae_u32 srcreg = (opcode & 7);
32455: OpcodeFamily = 57; CurrentInstrCycles = 22;
32456: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32457: BusCyclePenalty += 2;
32458: { uaecptr dsta = m68k_areg(regs, 7) - 4;
32459: m68k_areg (regs, 7) = dsta;
32460: put_long(dsta,srca);
32461: }}}m68k_incpc(4);
32462: return 22;
32463: }
32464: unsigned long REGPARAM2 CPUFUNC(op_487b_3)(uae_u32 opcode) /* PEA */
32465: {
32466: OpcodeFamily = 57; CurrentInstrCycles = 22;
32467: {{ uaecptr tmppc = m68k_getpc() + 2;
32468: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
32469: BusCyclePenalty += 2;
32470: { uaecptr dsta = m68k_areg(regs, 7) - 4;
32471: m68k_areg (regs, 7) = dsta;
32472: put_long(dsta,srca);
32473: }}}m68k_incpc(4);
32474: return 22;
32475: }
32476: unsigned long REGPARAM2 CPUFUNC(op_48b0_3)(uae_u32 opcode) /* MVMLE */
32477: {
32478: uae_u32 dstreg = opcode & 7;
32479: unsigned int retcycles = 0;
32480: OpcodeFamily = 38; CurrentInstrCycles = 14;
32481: { uae_u16 mask = get_iword(2);
32482: retcycles = 0;
32483: { uaecptr srca = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
32484: BusCyclePenalty += 2;
32485: { uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
32486: while (dmask) { put_word(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; retcycles+=4; }
32487: while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; retcycles+=4; }
32488: }}}m68k_incpc(6);
32489: return (14+retcycles);
32490: }
32491: unsigned long REGPARAM2 CPUFUNC(op_48f0_3)(uae_u32 opcode) /* MVMLE */
32492: {
32493: uae_u32 dstreg = opcode & 7;
32494: unsigned int retcycles = 0;
32495: OpcodeFamily = 38; CurrentInstrCycles = 14;
32496: { uae_u16 mask = get_iword(2);
32497: retcycles = 0;
32498: { uaecptr srca = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
32499: BusCyclePenalty += 2;
32500: { uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
32501: while (dmask) { put_long(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; retcycles+=8; }
32502: while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; retcycles+=8; }
32503: }}}m68k_incpc(6);
32504: return (14+retcycles);
32505: }
32506: unsigned long REGPARAM2 CPUFUNC(op_4a30_3)(uae_u32 opcode) /* TST */
32507: {
32508: uae_u32 srcreg = (opcode & 7);
32509: OpcodeFamily = 20; CurrentInstrCycles = 14;
32510: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32511: BusCyclePenalty += 2;
32512: { uae_s8 src = get_byte(srca);
32513: CLEAR_CZNV;
32514: SET_ZFLG (((uae_s8)(src)) == 0);
32515: SET_NFLG (((uae_s8)(src)) < 0);
32516: }}}m68k_incpc(4);
32517: return 14;
32518: }
32519: unsigned long REGPARAM2 CPUFUNC(op_4a3b_3)(uae_u32 opcode) /* TST */
32520: {
32521: OpcodeFamily = 20; CurrentInstrCycles = 14;
32522: {{ uaecptr tmppc = m68k_getpc() + 2;
32523: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
32524: BusCyclePenalty += 2;
32525: { uae_s8 src = get_byte(srca);
32526: CLEAR_CZNV;
32527: SET_ZFLG (((uae_s8)(src)) == 0);
32528: SET_NFLG (((uae_s8)(src)) < 0);
32529: }}}m68k_incpc(4);
32530: return 14;
32531: }
32532: unsigned long REGPARAM2 CPUFUNC(op_4a70_3)(uae_u32 opcode) /* TST */
32533: {
32534: uae_u32 srcreg = (opcode & 7);
32535: OpcodeFamily = 20; CurrentInstrCycles = 14;
32536: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32537: BusCyclePenalty += 2;
32538: { uae_s16 src = get_word(srca);
32539: CLEAR_CZNV;
32540: SET_ZFLG (((uae_s16)(src)) == 0);
32541: SET_NFLG (((uae_s16)(src)) < 0);
32542: }}}m68k_incpc(4);
32543: return 14;
32544: }
32545: unsigned long REGPARAM2 CPUFUNC(op_4a7b_3)(uae_u32 opcode) /* TST */
32546: {
32547: OpcodeFamily = 20; CurrentInstrCycles = 14;
32548: {{ uaecptr tmppc = m68k_getpc() + 2;
32549: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
32550: BusCyclePenalty += 2;
32551: { uae_s16 src = get_word(srca);
32552: CLEAR_CZNV;
32553: SET_ZFLG (((uae_s16)(src)) == 0);
32554: SET_NFLG (((uae_s16)(src)) < 0);
32555: }}}m68k_incpc(4);
32556: return 14;
32557: }
32558: unsigned long REGPARAM2 CPUFUNC(op_4ab0_3)(uae_u32 opcode) /* TST */
32559: {
32560: uae_u32 srcreg = (opcode & 7);
32561: OpcodeFamily = 20; CurrentInstrCycles = 18;
32562: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32563: BusCyclePenalty += 2;
32564: { uae_s32 src = get_long(srca);
32565: CLEAR_CZNV;
32566: SET_ZFLG (((uae_s32)(src)) == 0);
32567: SET_NFLG (((uae_s32)(src)) < 0);
32568: }}}m68k_incpc(4);
32569: return 18;
32570: }
32571: unsigned long REGPARAM2 CPUFUNC(op_4abb_3)(uae_u32 opcode) /* TST */
32572: {
32573: OpcodeFamily = 20; CurrentInstrCycles = 18;
32574: {{ uaecptr tmppc = m68k_getpc() + 2;
32575: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
32576: BusCyclePenalty += 2;
32577: { uae_s32 src = get_long(srca);
32578: CLEAR_CZNV;
32579: SET_ZFLG (((uae_s32)(src)) == 0);
32580: SET_NFLG (((uae_s32)(src)) < 0);
32581: }}}m68k_incpc(4);
32582: return 18;
32583: }
32584: unsigned long REGPARAM2 CPUFUNC(op_4af0_3)(uae_u32 opcode) /* TAS */
32585: {
32586: uae_u32 srcreg = (opcode & 7);
32587: OpcodeFamily = 98; CurrentInstrCycles = 20;
32588: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32589: BusCyclePenalty += 2;
32590: { uae_s8 src = get_byte(srca);
32591: CLEAR_CZNV;
32592: SET_ZFLG (((uae_s8)(src)) == 0);
32593: SET_NFLG (((uae_s8)(src)) < 0);
32594: src |= 0x80;
32595: put_byte(srca,src);
32596: }}}m68k_incpc(4);
32597: return 20;
32598: }
32599: unsigned long REGPARAM2 CPUFUNC(op_4cb0_3)(uae_u32 opcode) /* MVMEL */
32600: {
32601: uae_u32 dstreg = opcode & 7;
32602: unsigned int retcycles = 0;
32603: OpcodeFamily = 37; CurrentInstrCycles = 18;
32604: { uae_u16 mask = get_iword(2);
32605: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
32606: retcycles = 0;
32607: { uaecptr srca = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
32608: BusCyclePenalty += 2;
32609: { while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; }
32610: while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; }
32611: }}}m68k_incpc(6);
32612: return (18+retcycles);
32613: }
32614: unsigned long REGPARAM2 CPUFUNC(op_4cbb_3)(uae_u32 opcode) /* MVMEL */
32615: {
32616: uae_u32 dstreg = 3;
32617: unsigned int retcycles = 0;
32618: OpcodeFamily = 37; CurrentInstrCycles = 18;
32619: { uae_u16 mask = get_iword(2);
32620: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
32621: retcycles = 0;
32622: { uaecptr tmppc = m68k_getpc() + 4;
32623: uaecptr srca = get_disp_ea_000(tmppc, get_iword(4));
32624: BusCyclePenalty += 2;
32625: { while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; }
32626: while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; }
32627: }}}m68k_incpc(6);
32628: return (18+retcycles);
32629: }
32630: unsigned long REGPARAM2 CPUFUNC(op_4cf0_3)(uae_u32 opcode) /* MVMEL */
32631: {
32632: uae_u32 dstreg = opcode & 7;
32633: unsigned int retcycles = 0;
32634: OpcodeFamily = 37; CurrentInstrCycles = 18;
32635: { uae_u16 mask = get_iword(2);
32636: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
32637: retcycles = 0;
32638: { uaecptr srca = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(4));
32639: BusCyclePenalty += 2;
32640: { while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; }
32641: while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; }
32642: }}}m68k_incpc(6);
32643: return (18+retcycles);
32644: }
32645: unsigned long REGPARAM2 CPUFUNC(op_4cfb_3)(uae_u32 opcode) /* MVMEL */
32646: {
32647: uae_u32 dstreg = 3;
32648: unsigned int retcycles = 0;
32649: OpcodeFamily = 37; CurrentInstrCycles = 18;
32650: { uae_u16 mask = get_iword(2);
32651: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
32652: retcycles = 0;
32653: { uaecptr tmppc = m68k_getpc() + 4;
32654: uaecptr srca = get_disp_ea_000(tmppc, get_iword(4));
32655: BusCyclePenalty += 2;
32656: { while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; }
32657: while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; }
32658: }}}m68k_incpc(6);
32659: return (18+retcycles);
32660: }
32661: unsigned long REGPARAM2 CPUFUNC(op_4eb0_3)(uae_u32 opcode) /* JSR */
32662: {
32663: uae_u32 srcreg = (opcode & 7);
32664: OpcodeFamily = 52; CurrentInstrCycles = 22;
32665: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32666: BusCyclePenalty += 2;
32667: m68k_do_jsr(m68k_getpc() + 4, srca);
32668: }}return 22;
32669: }
32670: unsigned long REGPARAM2 CPUFUNC(op_4ebb_3)(uae_u32 opcode) /* JSR */
32671: {
32672: OpcodeFamily = 52; CurrentInstrCycles = 22;
32673: {{ uaecptr tmppc = m68k_getpc() + 2;
32674: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
32675: BusCyclePenalty += 2;
32676: m68k_do_jsr(m68k_getpc() + 4, srca);
32677: }}return 22;
32678: }
32679: unsigned long REGPARAM2 CPUFUNC(op_4ef0_3)(uae_u32 opcode) /* JMP */
32680: {
32681: uae_u32 srcreg = (opcode & 7);
32682: OpcodeFamily = 53; CurrentInstrCycles = 14;
32683: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32684: BusCyclePenalty += 2;
32685: m68k_setpc(srca);
32686: }}return 14;
32687: }
32688: unsigned long REGPARAM2 CPUFUNC(op_4efb_3)(uae_u32 opcode) /* JMP */
32689: {
32690: OpcodeFamily = 53; CurrentInstrCycles = 14;
32691: {{ uaecptr tmppc = m68k_getpc() + 2;
32692: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
32693: BusCyclePenalty += 2;
32694: m68k_setpc(srca);
32695: }}return 14;
32696: }
32697: #endif
32698:
32699: #ifdef PART_5
32700: unsigned long REGPARAM2 CPUFUNC(op_5030_3)(uae_u32 opcode) /* ADD */
32701: {
32702: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
32703: uae_u32 dstreg = opcode & 7;
32704: OpcodeFamily = 11; CurrentInstrCycles = 18;
32705: {{ uae_u32 src = srcreg;
32706: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
32707: BusCyclePenalty += 2;
32708: { uae_s8 dst = get_byte(dsta);
32709: { refill_prefetch (m68k_getpc(), 2);
32710: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
32711: { int flgs = ((uae_s8)(src)) < 0;
32712: int flgo = ((uae_s8)(dst)) < 0;
32713: int flgn = ((uae_s8)(newv)) < 0;
32714: SET_ZFLG (((uae_s8)(newv)) == 0);
32715: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
32716: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
32717: COPY_CARRY;
32718: SET_NFLG (flgn != 0);
32719: put_byte(dsta,newv);
32720: }}}}}}}m68k_incpc(4);
32721: return 18;
32722: }
32723: unsigned long REGPARAM2 CPUFUNC(op_5070_3)(uae_u32 opcode) /* ADD */
32724: {
32725: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
32726: uae_u32 dstreg = opcode & 7;
32727: OpcodeFamily = 11; CurrentInstrCycles = 18;
32728: {{ uae_u32 src = srcreg;
32729: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
32730: BusCyclePenalty += 2;
32731: { uae_s16 dst = get_word(dsta);
32732: { refill_prefetch (m68k_getpc(), 2);
32733: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
32734: { int flgs = ((uae_s16)(src)) < 0;
32735: int flgo = ((uae_s16)(dst)) < 0;
32736: int flgn = ((uae_s16)(newv)) < 0;
32737: SET_ZFLG (((uae_s16)(newv)) == 0);
32738: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
32739: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
32740: COPY_CARRY;
32741: SET_NFLG (flgn != 0);
32742: put_word(dsta,newv);
32743: }}}}}}}m68k_incpc(4);
32744: return 18;
32745: }
32746: unsigned long REGPARAM2 CPUFUNC(op_50b0_3)(uae_u32 opcode) /* ADD */
32747: {
32748: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
32749: uae_u32 dstreg = opcode & 7;
32750: OpcodeFamily = 11; CurrentInstrCycles = 26;
32751: {{ uae_u32 src = srcreg;
32752: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
32753: BusCyclePenalty += 2;
32754: { uae_s32 dst = get_long(dsta);
32755: { refill_prefetch (m68k_getpc(), 2);
32756: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
32757: { int flgs = ((uae_s32)(src)) < 0;
32758: int flgo = ((uae_s32)(dst)) < 0;
32759: int flgn = ((uae_s32)(newv)) < 0;
32760: SET_ZFLG (((uae_s32)(newv)) == 0);
32761: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
32762: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
32763: COPY_CARRY;
32764: SET_NFLG (flgn != 0);
32765: put_long(dsta,newv);
32766: }}}}}}}m68k_incpc(4);
32767: return 26;
32768: }
32769: unsigned long REGPARAM2 CPUFUNC(op_50f0_3)(uae_u32 opcode) /* Scc */
32770: {
32771: uae_u32 srcreg = (opcode & 7);
32772: OpcodeFamily = 59; CurrentInstrCycles = 18;
32773: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32774: BusCyclePenalty += 2;
32775: { int val = cctrue(0) ? 0xff : 0;
32776: put_byte(srca,val);
32777: }}}m68k_incpc(4);
32778: return 18;
32779: }
32780: unsigned long REGPARAM2 CPUFUNC(op_5130_3)(uae_u32 opcode) /* SUB */
32781: {
32782: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
32783: uae_u32 dstreg = opcode & 7;
32784: OpcodeFamily = 7; CurrentInstrCycles = 18;
32785: {{ uae_u32 src = srcreg;
32786: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
32787: BusCyclePenalty += 2;
32788: { uae_s8 dst = get_byte(dsta);
32789: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
32790: { int flgs = ((uae_s8)(src)) < 0;
32791: int flgo = ((uae_s8)(dst)) < 0;
32792: int flgn = ((uae_s8)(newv)) < 0;
32793: SET_ZFLG (((uae_s8)(newv)) == 0);
32794: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
32795: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
32796: COPY_CARRY;
32797: SET_NFLG (flgn != 0);
32798: put_byte(dsta,newv);
32799: }}}}}}}m68k_incpc(4);
32800: return 18;
32801: }
32802: unsigned long REGPARAM2 CPUFUNC(op_5170_3)(uae_u32 opcode) /* SUB */
32803: {
32804: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
32805: uae_u32 dstreg = opcode & 7;
32806: OpcodeFamily = 7; CurrentInstrCycles = 18;
32807: {{ uae_u32 src = srcreg;
32808: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
32809: BusCyclePenalty += 2;
32810: { uae_s16 dst = get_word(dsta);
32811: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
32812: { int flgs = ((uae_s16)(src)) < 0;
32813: int flgo = ((uae_s16)(dst)) < 0;
32814: int flgn = ((uae_s16)(newv)) < 0;
32815: SET_ZFLG (((uae_s16)(newv)) == 0);
32816: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
32817: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
32818: COPY_CARRY;
32819: SET_NFLG (flgn != 0);
32820: put_word(dsta,newv);
32821: }}}}}}}m68k_incpc(4);
32822: return 18;
32823: }
32824: unsigned long REGPARAM2 CPUFUNC(op_51b0_3)(uae_u32 opcode) /* SUB */
32825: {
32826: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
32827: uae_u32 dstreg = opcode & 7;
32828: OpcodeFamily = 7; CurrentInstrCycles = 26;
32829: {{ uae_u32 src = srcreg;
32830: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
32831: BusCyclePenalty += 2;
32832: { uae_s32 dst = get_long(dsta);
32833: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
32834: { int flgs = ((uae_s32)(src)) < 0;
32835: int flgo = ((uae_s32)(dst)) < 0;
32836: int flgn = ((uae_s32)(newv)) < 0;
32837: SET_ZFLG (((uae_s32)(newv)) == 0);
32838: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
32839: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
32840: COPY_CARRY;
32841: SET_NFLG (flgn != 0);
32842: put_long(dsta,newv);
32843: }}}}}}}m68k_incpc(4);
32844: return 26;
32845: }
32846: unsigned long REGPARAM2 CPUFUNC(op_51f0_3)(uae_u32 opcode) /* Scc */
32847: {
32848: uae_u32 srcreg = (opcode & 7);
32849: OpcodeFamily = 59; CurrentInstrCycles = 18;
32850: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32851: BusCyclePenalty += 2;
32852: { int val = cctrue(1) ? 0xff : 0;
32853: put_byte(srca,val);
32854: }}}m68k_incpc(4);
32855: return 18;
32856: }
32857: unsigned long REGPARAM2 CPUFUNC(op_52f0_3)(uae_u32 opcode) /* Scc */
32858: {
32859: uae_u32 srcreg = (opcode & 7);
32860: OpcodeFamily = 59; CurrentInstrCycles = 18;
32861: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32862: BusCyclePenalty += 2;
32863: { int val = cctrue(2) ? 0xff : 0;
32864: put_byte(srca,val);
32865: }}}m68k_incpc(4);
32866: return 18;
32867: }
32868: unsigned long REGPARAM2 CPUFUNC(op_53f0_3)(uae_u32 opcode) /* Scc */
32869: {
32870: uae_u32 srcreg = (opcode & 7);
32871: OpcodeFamily = 59; CurrentInstrCycles = 18;
32872: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32873: BusCyclePenalty += 2;
32874: { int val = cctrue(3) ? 0xff : 0;
32875: put_byte(srca,val);
32876: }}}m68k_incpc(4);
32877: return 18;
32878: }
32879: unsigned long REGPARAM2 CPUFUNC(op_54f0_3)(uae_u32 opcode) /* Scc */
32880: {
32881: uae_u32 srcreg = (opcode & 7);
32882: OpcodeFamily = 59; CurrentInstrCycles = 18;
32883: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32884: BusCyclePenalty += 2;
32885: { int val = cctrue(4) ? 0xff : 0;
32886: put_byte(srca,val);
32887: }}}m68k_incpc(4);
32888: return 18;
32889: }
32890: unsigned long REGPARAM2 CPUFUNC(op_55f0_3)(uae_u32 opcode) /* Scc */
32891: {
32892: uae_u32 srcreg = (opcode & 7);
32893: OpcodeFamily = 59; CurrentInstrCycles = 18;
32894: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32895: BusCyclePenalty += 2;
32896: { int val = cctrue(5) ? 0xff : 0;
32897: put_byte(srca,val);
32898: }}}m68k_incpc(4);
32899: return 18;
32900: }
32901: unsigned long REGPARAM2 CPUFUNC(op_56f0_3)(uae_u32 opcode) /* Scc */
32902: {
32903: uae_u32 srcreg = (opcode & 7);
32904: OpcodeFamily = 59; CurrentInstrCycles = 18;
32905: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32906: BusCyclePenalty += 2;
32907: { int val = cctrue(6) ? 0xff : 0;
32908: put_byte(srca,val);
32909: }}}m68k_incpc(4);
32910: return 18;
32911: }
32912: unsigned long REGPARAM2 CPUFUNC(op_57f0_3)(uae_u32 opcode) /* Scc */
32913: {
32914: uae_u32 srcreg = (opcode & 7);
32915: OpcodeFamily = 59; CurrentInstrCycles = 18;
32916: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32917: BusCyclePenalty += 2;
32918: { int val = cctrue(7) ? 0xff : 0;
32919: put_byte(srca,val);
32920: }}}m68k_incpc(4);
32921: return 18;
32922: }
32923: unsigned long REGPARAM2 CPUFUNC(op_58f0_3)(uae_u32 opcode) /* Scc */
32924: {
32925: uae_u32 srcreg = (opcode & 7);
32926: OpcodeFamily = 59; CurrentInstrCycles = 18;
32927: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32928: BusCyclePenalty += 2;
32929: { int val = cctrue(8) ? 0xff : 0;
32930: put_byte(srca,val);
32931: }}}m68k_incpc(4);
32932: return 18;
32933: }
32934: unsigned long REGPARAM2 CPUFUNC(op_59f0_3)(uae_u32 opcode) /* Scc */
32935: {
32936: uae_u32 srcreg = (opcode & 7);
32937: OpcodeFamily = 59; CurrentInstrCycles = 18;
32938: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32939: BusCyclePenalty += 2;
32940: { int val = cctrue(9) ? 0xff : 0;
32941: put_byte(srca,val);
32942: }}}m68k_incpc(4);
32943: return 18;
32944: }
32945: unsigned long REGPARAM2 CPUFUNC(op_5af0_3)(uae_u32 opcode) /* Scc */
32946: {
32947: uae_u32 srcreg = (opcode & 7);
32948: OpcodeFamily = 59; CurrentInstrCycles = 18;
32949: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32950: BusCyclePenalty += 2;
32951: { int val = cctrue(10) ? 0xff : 0;
32952: put_byte(srca,val);
32953: }}}m68k_incpc(4);
32954: return 18;
32955: }
32956: unsigned long REGPARAM2 CPUFUNC(op_5bf0_3)(uae_u32 opcode) /* Scc */
32957: {
32958: uae_u32 srcreg = (opcode & 7);
32959: OpcodeFamily = 59; CurrentInstrCycles = 18;
32960: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32961: BusCyclePenalty += 2;
32962: { int val = cctrue(11) ? 0xff : 0;
32963: put_byte(srca,val);
32964: }}}m68k_incpc(4);
32965: return 18;
32966: }
32967: unsigned long REGPARAM2 CPUFUNC(op_5cf0_3)(uae_u32 opcode) /* Scc */
32968: {
32969: uae_u32 srcreg = (opcode & 7);
32970: OpcodeFamily = 59; CurrentInstrCycles = 18;
32971: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32972: BusCyclePenalty += 2;
32973: { int val = cctrue(12) ? 0xff : 0;
32974: put_byte(srca,val);
32975: }}}m68k_incpc(4);
32976: return 18;
32977: }
32978: unsigned long REGPARAM2 CPUFUNC(op_5df0_3)(uae_u32 opcode) /* Scc */
32979: {
32980: uae_u32 srcreg = (opcode & 7);
32981: OpcodeFamily = 59; CurrentInstrCycles = 18;
32982: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32983: BusCyclePenalty += 2;
32984: { int val = cctrue(13) ? 0xff : 0;
32985: put_byte(srca,val);
32986: }}}m68k_incpc(4);
32987: return 18;
32988: }
32989: unsigned long REGPARAM2 CPUFUNC(op_5ef0_3)(uae_u32 opcode) /* Scc */
32990: {
32991: uae_u32 srcreg = (opcode & 7);
32992: OpcodeFamily = 59; CurrentInstrCycles = 18;
32993: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
32994: BusCyclePenalty += 2;
32995: { int val = cctrue(14) ? 0xff : 0;
32996: put_byte(srca,val);
32997: }}}m68k_incpc(4);
32998: return 18;
32999: }
33000: #endif
33001:
33002: #ifdef PART_6
33003: unsigned long REGPARAM2 CPUFUNC(op_5ff0_3)(uae_u32 opcode) /* Scc */
33004: {
33005: uae_u32 srcreg = (opcode & 7);
33006: OpcodeFamily = 59; CurrentInstrCycles = 18;
33007: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
33008: BusCyclePenalty += 2;
33009: { int val = cctrue(15) ? 0xff : 0;
33010: put_byte(srca,val);
33011: }}}m68k_incpc(4);
33012: return 18;
33013: }
33014: unsigned long REGPARAM2 CPUFUNC(op_60ff_3)(uae_u32 opcode) /* Bcc */
33015: {
33016: OpcodeFamily = 55; CurrentInstrCycles = 12;
33017: { m68k_incpc(2);
33018: if (!cctrue(0)) goto endlabel2058;
33019: last_addr_for_exception_3 = m68k_getpc() + 2;
33020: last_fault_for_exception_3 = m68k_getpc() + 1;
33021: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel2058;
33022: { uae_s32 src = get_ilong(2);
33023: if (!cctrue(0)) goto didnt_jump;
33024: m68k_incpc ((uae_s32)src + 2);
33025: return 10;
33026: didnt_jump:;
33027: }}m68k_incpc(6);
33028: endlabel2058: ;
33029: return 12;
33030: }
33031: unsigned long REGPARAM2 CPUFUNC(op_62ff_3)(uae_u32 opcode) /* Bcc */
33032: {
33033: OpcodeFamily = 55; CurrentInstrCycles = 12;
33034: { m68k_incpc(2);
33035: if (!cctrue(2)) goto endlabel2059;
33036: last_addr_for_exception_3 = m68k_getpc() + 2;
33037: last_fault_for_exception_3 = m68k_getpc() + 1;
33038: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel2059;
33039: { uae_s32 src = get_ilong(2);
33040: if (!cctrue(2)) goto didnt_jump;
33041: m68k_incpc ((uae_s32)src + 2);
33042: return 10;
33043: didnt_jump:;
33044: }}m68k_incpc(6);
33045: endlabel2059: ;
33046: return 12;
33047: }
33048: unsigned long REGPARAM2 CPUFUNC(op_63ff_3)(uae_u32 opcode) /* Bcc */
33049: {
33050: OpcodeFamily = 55; CurrentInstrCycles = 12;
33051: { m68k_incpc(2);
33052: if (!cctrue(3)) goto endlabel2060;
33053: last_addr_for_exception_3 = m68k_getpc() + 2;
33054: last_fault_for_exception_3 = m68k_getpc() + 1;
33055: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel2060;
33056: { uae_s32 src = get_ilong(2);
33057: if (!cctrue(3)) goto didnt_jump;
33058: m68k_incpc ((uae_s32)src + 2);
33059: return 10;
33060: didnt_jump:;
33061: }}m68k_incpc(6);
33062: endlabel2060: ;
33063: return 12;
33064: }
33065: unsigned long REGPARAM2 CPUFUNC(op_64ff_3)(uae_u32 opcode) /* Bcc */
33066: {
33067: OpcodeFamily = 55; CurrentInstrCycles = 12;
33068: { m68k_incpc(2);
33069: if (!cctrue(4)) goto endlabel2061;
33070: last_addr_for_exception_3 = m68k_getpc() + 2;
33071: last_fault_for_exception_3 = m68k_getpc() + 1;
33072: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel2061;
33073: { uae_s32 src = get_ilong(2);
33074: if (!cctrue(4)) goto didnt_jump;
33075: m68k_incpc ((uae_s32)src + 2);
33076: return 10;
33077: didnt_jump:;
33078: }}m68k_incpc(6);
33079: endlabel2061: ;
33080: return 12;
33081: }
33082: unsigned long REGPARAM2 CPUFUNC(op_65ff_3)(uae_u32 opcode) /* Bcc */
33083: {
33084: OpcodeFamily = 55; CurrentInstrCycles = 12;
33085: { m68k_incpc(2);
33086: if (!cctrue(5)) goto endlabel2062;
33087: last_addr_for_exception_3 = m68k_getpc() + 2;
33088: last_fault_for_exception_3 = m68k_getpc() + 1;
33089: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel2062;
33090: { uae_s32 src = get_ilong(2);
33091: if (!cctrue(5)) goto didnt_jump;
33092: m68k_incpc ((uae_s32)src + 2);
33093: return 10;
33094: didnt_jump:;
33095: }}m68k_incpc(6);
33096: endlabel2062: ;
33097: return 12;
33098: }
33099: unsigned long REGPARAM2 CPUFUNC(op_66ff_3)(uae_u32 opcode) /* Bcc */
33100: {
33101: OpcodeFamily = 55; CurrentInstrCycles = 12;
33102: { m68k_incpc(2);
33103: if (!cctrue(6)) goto endlabel2063;
33104: last_addr_for_exception_3 = m68k_getpc() + 2;
33105: last_fault_for_exception_3 = m68k_getpc() + 1;
33106: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel2063;
33107: { uae_s32 src = get_ilong(2);
33108: if (!cctrue(6)) goto didnt_jump;
33109: m68k_incpc ((uae_s32)src + 2);
33110: return 10;
33111: didnt_jump:;
33112: }}m68k_incpc(6);
33113: endlabel2063: ;
33114: return 12;
33115: }
33116: unsigned long REGPARAM2 CPUFUNC(op_67ff_3)(uae_u32 opcode) /* Bcc */
33117: {
33118: OpcodeFamily = 55; CurrentInstrCycles = 12;
33119: { m68k_incpc(2);
33120: if (!cctrue(7)) goto endlabel2064;
33121: last_addr_for_exception_3 = m68k_getpc() + 2;
33122: last_fault_for_exception_3 = m68k_getpc() + 1;
33123: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel2064;
33124: { uae_s32 src = get_ilong(2);
33125: if (!cctrue(7)) goto didnt_jump;
33126: m68k_incpc ((uae_s32)src + 2);
33127: return 10;
33128: didnt_jump:;
33129: }}m68k_incpc(6);
33130: endlabel2064: ;
33131: return 12;
33132: }
33133: unsigned long REGPARAM2 CPUFUNC(op_68ff_3)(uae_u32 opcode) /* Bcc */
33134: {
33135: OpcodeFamily = 55; CurrentInstrCycles = 12;
33136: { m68k_incpc(2);
33137: if (!cctrue(8)) goto endlabel2065;
33138: last_addr_for_exception_3 = m68k_getpc() + 2;
33139: last_fault_for_exception_3 = m68k_getpc() + 1;
33140: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel2065;
33141: { uae_s32 src = get_ilong(2);
33142: if (!cctrue(8)) goto didnt_jump;
33143: m68k_incpc ((uae_s32)src + 2);
33144: return 10;
33145: didnt_jump:;
33146: }}m68k_incpc(6);
33147: endlabel2065: ;
33148: return 12;
33149: }
33150: unsigned long REGPARAM2 CPUFUNC(op_69ff_3)(uae_u32 opcode) /* Bcc */
33151: {
33152: OpcodeFamily = 55; CurrentInstrCycles = 12;
33153: { m68k_incpc(2);
33154: if (!cctrue(9)) goto endlabel2066;
33155: last_addr_for_exception_3 = m68k_getpc() + 2;
33156: last_fault_for_exception_3 = m68k_getpc() + 1;
33157: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel2066;
33158: { uae_s32 src = get_ilong(2);
33159: if (!cctrue(9)) goto didnt_jump;
33160: m68k_incpc ((uae_s32)src + 2);
33161: return 10;
33162: didnt_jump:;
33163: }}m68k_incpc(6);
33164: endlabel2066: ;
33165: return 12;
33166: }
33167: unsigned long REGPARAM2 CPUFUNC(op_6aff_3)(uae_u32 opcode) /* Bcc */
33168: {
33169: OpcodeFamily = 55; CurrentInstrCycles = 12;
33170: { m68k_incpc(2);
33171: if (!cctrue(10)) goto endlabel2067;
33172: last_addr_for_exception_3 = m68k_getpc() + 2;
33173: last_fault_for_exception_3 = m68k_getpc() + 1;
33174: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel2067;
33175: { uae_s32 src = get_ilong(2);
33176: if (!cctrue(10)) goto didnt_jump;
33177: m68k_incpc ((uae_s32)src + 2);
33178: return 10;
33179: didnt_jump:;
33180: }}m68k_incpc(6);
33181: endlabel2067: ;
33182: return 12;
33183: }
33184: unsigned long REGPARAM2 CPUFUNC(op_6bff_3)(uae_u32 opcode) /* Bcc */
33185: {
33186: OpcodeFamily = 55; CurrentInstrCycles = 12;
33187: { m68k_incpc(2);
33188: if (!cctrue(11)) goto endlabel2068;
33189: last_addr_for_exception_3 = m68k_getpc() + 2;
33190: last_fault_for_exception_3 = m68k_getpc() + 1;
33191: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel2068;
33192: { uae_s32 src = get_ilong(2);
33193: if (!cctrue(11)) goto didnt_jump;
33194: m68k_incpc ((uae_s32)src + 2);
33195: return 10;
33196: didnt_jump:;
33197: }}m68k_incpc(6);
33198: endlabel2068: ;
33199: return 12;
33200: }
33201: unsigned long REGPARAM2 CPUFUNC(op_6cff_3)(uae_u32 opcode) /* Bcc */
33202: {
33203: OpcodeFamily = 55; CurrentInstrCycles = 12;
33204: { m68k_incpc(2);
33205: if (!cctrue(12)) goto endlabel2069;
33206: last_addr_for_exception_3 = m68k_getpc() + 2;
33207: last_fault_for_exception_3 = m68k_getpc() + 1;
33208: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel2069;
33209: { uae_s32 src = get_ilong(2);
33210: if (!cctrue(12)) goto didnt_jump;
33211: m68k_incpc ((uae_s32)src + 2);
33212: return 10;
33213: didnt_jump:;
33214: }}m68k_incpc(6);
33215: endlabel2069: ;
33216: return 12;
33217: }
33218: unsigned long REGPARAM2 CPUFUNC(op_6dff_3)(uae_u32 opcode) /* Bcc */
33219: {
33220: OpcodeFamily = 55; CurrentInstrCycles = 12;
33221: { m68k_incpc(2);
33222: if (!cctrue(13)) goto endlabel2070;
33223: last_addr_for_exception_3 = m68k_getpc() + 2;
33224: last_fault_for_exception_3 = m68k_getpc() + 1;
33225: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel2070;
33226: { uae_s32 src = get_ilong(2);
33227: if (!cctrue(13)) goto didnt_jump;
33228: m68k_incpc ((uae_s32)src + 2);
33229: return 10;
33230: didnt_jump:;
33231: }}m68k_incpc(6);
33232: endlabel2070: ;
33233: return 12;
33234: }
33235: unsigned long REGPARAM2 CPUFUNC(op_6eff_3)(uae_u32 opcode) /* Bcc */
33236: {
33237: OpcodeFamily = 55; CurrentInstrCycles = 12;
33238: { m68k_incpc(2);
33239: if (!cctrue(14)) goto endlabel2071;
33240: last_addr_for_exception_3 = m68k_getpc() + 2;
33241: last_fault_for_exception_3 = m68k_getpc() + 1;
33242: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel2071;
33243: { uae_s32 src = get_ilong(2);
33244: if (!cctrue(14)) goto didnt_jump;
33245: m68k_incpc ((uae_s32)src + 2);
33246: return 10;
33247: didnt_jump:;
33248: }}m68k_incpc(6);
33249: endlabel2071: ;
33250: return 12;
33251: }
33252: unsigned long REGPARAM2 CPUFUNC(op_6fff_3)(uae_u32 opcode) /* Bcc */
33253: {
33254: OpcodeFamily = 55; CurrentInstrCycles = 12;
33255: { m68k_incpc(2);
33256: if (!cctrue(15)) goto endlabel2072;
33257: last_addr_for_exception_3 = m68k_getpc() + 2;
33258: last_fault_for_exception_3 = m68k_getpc() + 1;
33259: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel2072;
33260: { uae_s32 src = get_ilong(2);
33261: if (!cctrue(15)) goto didnt_jump;
33262: m68k_incpc ((uae_s32)src + 2);
33263: return 10;
33264: didnt_jump:;
33265: }}m68k_incpc(6);
33266: endlabel2072: ;
33267: return 12;
33268: }
33269: unsigned long REGPARAM2 CPUFUNC(op_8030_3)(uae_u32 opcode) /* OR */
33270: {
33271: uae_u32 srcreg = (opcode & 7);
33272: uae_u32 dstreg = (opcode >> 9) & 7;
33273: OpcodeFamily = 1; CurrentInstrCycles = 14;
33274: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
33275: BusCyclePenalty += 2;
33276: { uae_s8 src = get_byte(srca);
33277: { uae_s8 dst = m68k_dreg(regs, dstreg);
33278: src |= dst;
33279: CLEAR_CZNV;
33280: SET_ZFLG (((uae_s8)(src)) == 0);
33281: SET_NFLG (((uae_s8)(src)) < 0);
33282: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
33283: }}}}m68k_incpc(4);
33284: return 14;
33285: }
33286: unsigned long REGPARAM2 CPUFUNC(op_803b_3)(uae_u32 opcode) /* OR */
33287: {
33288: uae_u32 dstreg = (opcode >> 9) & 7;
33289: OpcodeFamily = 1; CurrentInstrCycles = 14;
33290: {{ uaecptr tmppc = m68k_getpc() + 2;
33291: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
33292: BusCyclePenalty += 2;
33293: { uae_s8 src = get_byte(srca);
33294: { uae_s8 dst = m68k_dreg(regs, dstreg);
33295: src |= dst;
33296: CLEAR_CZNV;
33297: SET_ZFLG (((uae_s8)(src)) == 0);
33298: SET_NFLG (((uae_s8)(src)) < 0);
33299: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
33300: }}}}m68k_incpc(4);
33301: return 14;
33302: }
33303: unsigned long REGPARAM2 CPUFUNC(op_8070_3)(uae_u32 opcode) /* OR */
33304: {
33305: uae_u32 srcreg = (opcode & 7);
33306: uae_u32 dstreg = (opcode >> 9) & 7;
33307: OpcodeFamily = 1; CurrentInstrCycles = 14;
33308: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
33309: BusCyclePenalty += 2;
33310: { uae_s16 src = get_word(srca);
33311: { uae_s16 dst = m68k_dreg(regs, dstreg);
33312: src |= dst;
33313: CLEAR_CZNV;
33314: SET_ZFLG (((uae_s16)(src)) == 0);
33315: SET_NFLG (((uae_s16)(src)) < 0);
33316: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
33317: }}}}m68k_incpc(4);
33318: return 14;
33319: }
33320: unsigned long REGPARAM2 CPUFUNC(op_807b_3)(uae_u32 opcode) /* OR */
33321: {
33322: uae_u32 dstreg = (opcode >> 9) & 7;
33323: OpcodeFamily = 1; CurrentInstrCycles = 14;
33324: {{ uaecptr tmppc = m68k_getpc() + 2;
33325: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
33326: BusCyclePenalty += 2;
33327: { uae_s16 src = get_word(srca);
33328: { uae_s16 dst = m68k_dreg(regs, dstreg);
33329: src |= dst;
33330: CLEAR_CZNV;
33331: SET_ZFLG (((uae_s16)(src)) == 0);
33332: SET_NFLG (((uae_s16)(src)) < 0);
33333: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
33334: }}}}m68k_incpc(4);
33335: return 14;
33336: }
33337: unsigned long REGPARAM2 CPUFUNC(op_80b0_3)(uae_u32 opcode) /* OR */
33338: {
33339: uae_u32 srcreg = (opcode & 7);
33340: uae_u32 dstreg = (opcode >> 9) & 7;
33341: OpcodeFamily = 1; CurrentInstrCycles = 20;
33342: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
33343: BusCyclePenalty += 2;
33344: { uae_s32 src = get_long(srca);
33345: { uae_s32 dst = m68k_dreg(regs, dstreg);
33346: src |= dst;
33347: CLEAR_CZNV;
33348: SET_ZFLG (((uae_s32)(src)) == 0);
33349: SET_NFLG (((uae_s32)(src)) < 0);
33350: m68k_dreg(regs, dstreg) = (src);
33351: }}}}m68k_incpc(4);
33352: return 20;
33353: }
33354: unsigned long REGPARAM2 CPUFUNC(op_80bb_3)(uae_u32 opcode) /* OR */
33355: {
33356: uae_u32 dstreg = (opcode >> 9) & 7;
33357: OpcodeFamily = 1; CurrentInstrCycles = 20;
33358: {{ uaecptr tmppc = m68k_getpc() + 2;
33359: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
33360: BusCyclePenalty += 2;
33361: { uae_s32 src = get_long(srca);
33362: { uae_s32 dst = m68k_dreg(regs, dstreg);
33363: src |= dst;
33364: CLEAR_CZNV;
33365: SET_ZFLG (((uae_s32)(src)) == 0);
33366: SET_NFLG (((uae_s32)(src)) < 0);
33367: m68k_dreg(regs, dstreg) = (src);
33368: }}}}m68k_incpc(4);
33369: return 20;
33370: }
33371: unsigned long REGPARAM2 CPUFUNC(op_80f0_3)(uae_u32 opcode) /* DIVU */
33372: {
33373: uae_u32 srcreg = (opcode & 7);
33374: uae_u32 dstreg = (opcode >> 9) & 7;
33375: unsigned int retcycles = 0;
33376: OpcodeFamily = 60; CurrentInstrCycles = 14;
33377: { uaecptr oldpc = m68k_getpc();
33378: { uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
33379: BusCyclePenalty += 2;
33380: { uae_s16 src = get_word(srca);
33381: { uae_s32 dst = m68k_dreg(regs, dstreg);
33382: m68k_incpc(4);
33383: if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel2079; } else {
33384: uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
33385: uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
33386: if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
33387: {
33388: CLEAR_CZNV;
33389: SET_ZFLG (((uae_s16)(newv)) == 0);
33390: SET_NFLG (((uae_s16)(newv)) < 0);
33391: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
33392: m68k_dreg(regs, dstreg) = (newv);
33393: }
33394: }
33395: retcycles = getDivu68kCycles((uae_u32)dst, (uae_u16)src);
33396: }}}}endlabel2079: ;
33397: return (14+retcycles);
33398: }
33399: unsigned long REGPARAM2 CPUFUNC(op_80fb_3)(uae_u32 opcode) /* DIVU */
33400: {
33401: uae_u32 dstreg = (opcode >> 9) & 7;
33402: unsigned int retcycles = 0;
33403: OpcodeFamily = 60; CurrentInstrCycles = 14;
33404: { uaecptr oldpc = m68k_getpc();
33405: { uaecptr tmppc = m68k_getpc() + 2;
33406: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
33407: BusCyclePenalty += 2;
33408: { uae_s16 src = get_word(srca);
33409: { uae_s32 dst = m68k_dreg(regs, dstreg);
33410: m68k_incpc(4);
33411: if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel2080; } else {
33412: uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
33413: uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
33414: if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
33415: {
33416: CLEAR_CZNV;
33417: SET_ZFLG (((uae_s16)(newv)) == 0);
33418: SET_NFLG (((uae_s16)(newv)) < 0);
33419: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
33420: m68k_dreg(regs, dstreg) = (newv);
33421: }
33422: }
33423: retcycles = getDivu68kCycles((uae_u32)dst, (uae_u16)src);
33424: }}}}endlabel2080: ;
33425: return (14+retcycles);
33426: }
33427: unsigned long REGPARAM2 CPUFUNC(op_8130_3)(uae_u32 opcode) /* OR */
33428: {
33429: uae_u32 srcreg = ((opcode >> 9) & 7);
33430: uae_u32 dstreg = opcode & 7;
33431: OpcodeFamily = 1; CurrentInstrCycles = 18;
33432: {{ uae_s8 src = m68k_dreg(regs, srcreg);
33433: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
33434: BusCyclePenalty += 2;
33435: { uae_s8 dst = get_byte(dsta);
33436: src |= dst;
33437: CLEAR_CZNV;
33438: SET_ZFLG (((uae_s8)(src)) == 0);
33439: SET_NFLG (((uae_s8)(src)) < 0);
33440: put_byte(dsta,src);
33441: }}}}m68k_incpc(4);
33442: return 18;
33443: }
33444: unsigned long REGPARAM2 CPUFUNC(op_8170_3)(uae_u32 opcode) /* OR */
33445: {
33446: uae_u32 srcreg = ((opcode >> 9) & 7);
33447: uae_u32 dstreg = opcode & 7;
33448: OpcodeFamily = 1; CurrentInstrCycles = 18;
33449: {{ uae_s16 src = m68k_dreg(regs, srcreg);
33450: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
33451: BusCyclePenalty += 2;
33452: { uae_s16 dst = get_word(dsta);
33453: src |= dst;
33454: CLEAR_CZNV;
33455: SET_ZFLG (((uae_s16)(src)) == 0);
33456: SET_NFLG (((uae_s16)(src)) < 0);
33457: put_word(dsta,src);
33458: }}}}m68k_incpc(4);
33459: return 18;
33460: }
33461: unsigned long REGPARAM2 CPUFUNC(op_81b0_3)(uae_u32 opcode) /* OR */
33462: {
33463: uae_u32 srcreg = ((opcode >> 9) & 7);
33464: uae_u32 dstreg = opcode & 7;
33465: OpcodeFamily = 1; CurrentInstrCycles = 26;
33466: {{ uae_s32 src = m68k_dreg(regs, srcreg);
33467: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
33468: BusCyclePenalty += 2;
33469: { uae_s32 dst = get_long(dsta);
33470: src |= dst;
33471: CLEAR_CZNV;
33472: SET_ZFLG (((uae_s32)(src)) == 0);
33473: SET_NFLG (((uae_s32)(src)) < 0);
33474: put_long(dsta,src);
33475: }}}}m68k_incpc(4);
33476: return 26;
33477: }
33478: unsigned long REGPARAM2 CPUFUNC(op_81f0_3)(uae_u32 opcode) /* DIVS */
33479: {
33480: uae_u32 srcreg = (opcode & 7);
33481: uae_u32 dstreg = (opcode >> 9) & 7;
33482: unsigned int retcycles = 0;
33483: OpcodeFamily = 61; CurrentInstrCycles = 14;
33484: { uaecptr oldpc = m68k_getpc();
33485: { uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
33486: BusCyclePenalty += 2;
33487: { uae_s16 src = get_word(srca);
33488: { uae_s32 dst = m68k_dreg(regs, dstreg);
33489: m68k_incpc(4);
33490: if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel2084; } else {
33491: uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
33492: uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
33493: if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
33494: {
33495: if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
33496: CLEAR_CZNV;
33497: SET_ZFLG (((uae_s16)(newv)) == 0);
33498: SET_NFLG (((uae_s16)(newv)) < 0);
33499: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
33500: m68k_dreg(regs, dstreg) = (newv);
33501: }
33502: }
33503: retcycles = getDivs68kCycles((uae_s32)dst, (uae_s16)src);
33504: }}}}endlabel2084: ;
33505: return (14+retcycles);
33506: }
33507: unsigned long REGPARAM2 CPUFUNC(op_81fb_3)(uae_u32 opcode) /* DIVS */
33508: {
33509: uae_u32 dstreg = (opcode >> 9) & 7;
33510: unsigned int retcycles = 0;
33511: OpcodeFamily = 61; CurrentInstrCycles = 14;
33512: { uaecptr oldpc = m68k_getpc();
33513: { uaecptr tmppc = m68k_getpc() + 2;
33514: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
33515: BusCyclePenalty += 2;
33516: { uae_s16 src = get_word(srca);
33517: { uae_s32 dst = m68k_dreg(regs, dstreg);
33518: m68k_incpc(4);
33519: if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel2085; } else {
33520: uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
33521: uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
33522: if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
33523: {
33524: if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
33525: CLEAR_CZNV;
33526: SET_ZFLG (((uae_s16)(newv)) == 0);
33527: SET_NFLG (((uae_s16)(newv)) < 0);
33528: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
33529: m68k_dreg(regs, dstreg) = (newv);
33530: }
33531: }
33532: retcycles = getDivs68kCycles((uae_s32)dst, (uae_s16)src);
33533: }}}}endlabel2085: ;
33534: return (14+retcycles);
33535: }
33536: unsigned long REGPARAM2 CPUFUNC(op_9030_3)(uae_u32 opcode) /* SUB */
33537: {
33538: uae_u32 srcreg = (opcode & 7);
33539: uae_u32 dstreg = (opcode >> 9) & 7;
33540: OpcodeFamily = 7; CurrentInstrCycles = 14;
33541: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
33542: BusCyclePenalty += 2;
33543: { uae_s8 src = get_byte(srca);
33544: { uae_s8 dst = m68k_dreg(regs, dstreg);
33545: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
33546: { int flgs = ((uae_s8)(src)) < 0;
33547: int flgo = ((uae_s8)(dst)) < 0;
33548: int flgn = ((uae_s8)(newv)) < 0;
33549: SET_ZFLG (((uae_s8)(newv)) == 0);
33550: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
33551: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
33552: COPY_CARRY;
33553: SET_NFLG (flgn != 0);
33554: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
33555: }}}}}}}m68k_incpc(4);
33556: return 14;
33557: }
33558: unsigned long REGPARAM2 CPUFUNC(op_903b_3)(uae_u32 opcode) /* SUB */
33559: {
33560: uae_u32 dstreg = (opcode >> 9) & 7;
33561: OpcodeFamily = 7; CurrentInstrCycles = 14;
33562: {{ uaecptr tmppc = m68k_getpc() + 2;
33563: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
33564: BusCyclePenalty += 2;
33565: { uae_s8 src = get_byte(srca);
33566: { uae_s8 dst = m68k_dreg(regs, dstreg);
33567: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
33568: { int flgs = ((uae_s8)(src)) < 0;
33569: int flgo = ((uae_s8)(dst)) < 0;
33570: int flgn = ((uae_s8)(newv)) < 0;
33571: SET_ZFLG (((uae_s8)(newv)) == 0);
33572: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
33573: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
33574: COPY_CARRY;
33575: SET_NFLG (flgn != 0);
33576: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
33577: }}}}}}}m68k_incpc(4);
33578: return 14;
33579: }
33580: unsigned long REGPARAM2 CPUFUNC(op_9070_3)(uae_u32 opcode) /* SUB */
33581: {
33582: uae_u32 srcreg = (opcode & 7);
33583: uae_u32 dstreg = (opcode >> 9) & 7;
33584: OpcodeFamily = 7; CurrentInstrCycles = 14;
33585: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
33586: BusCyclePenalty += 2;
33587: { uae_s16 src = get_word(srca);
33588: { uae_s16 dst = m68k_dreg(regs, dstreg);
33589: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
33590: { int flgs = ((uae_s16)(src)) < 0;
33591: int flgo = ((uae_s16)(dst)) < 0;
33592: int flgn = ((uae_s16)(newv)) < 0;
33593: SET_ZFLG (((uae_s16)(newv)) == 0);
33594: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
33595: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
33596: COPY_CARRY;
33597: SET_NFLG (flgn != 0);
33598: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
33599: }}}}}}}m68k_incpc(4);
33600: return 14;
33601: }
33602: unsigned long REGPARAM2 CPUFUNC(op_907b_3)(uae_u32 opcode) /* SUB */
33603: {
33604: uae_u32 dstreg = (opcode >> 9) & 7;
33605: OpcodeFamily = 7; CurrentInstrCycles = 14;
33606: {{ uaecptr tmppc = m68k_getpc() + 2;
33607: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
33608: BusCyclePenalty += 2;
33609: { uae_s16 src = get_word(srca);
33610: { uae_s16 dst = m68k_dreg(regs, dstreg);
33611: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
33612: { int flgs = ((uae_s16)(src)) < 0;
33613: int flgo = ((uae_s16)(dst)) < 0;
33614: int flgn = ((uae_s16)(newv)) < 0;
33615: SET_ZFLG (((uae_s16)(newv)) == 0);
33616: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
33617: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
33618: COPY_CARRY;
33619: SET_NFLG (flgn != 0);
33620: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
33621: }}}}}}}m68k_incpc(4);
33622: return 14;
33623: }
33624: unsigned long REGPARAM2 CPUFUNC(op_90b0_3)(uae_u32 opcode) /* SUB */
33625: {
33626: uae_u32 srcreg = (opcode & 7);
33627: uae_u32 dstreg = (opcode >> 9) & 7;
33628: OpcodeFamily = 7; CurrentInstrCycles = 20;
33629: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
33630: BusCyclePenalty += 2;
33631: { uae_s32 src = get_long(srca);
33632: { uae_s32 dst = m68k_dreg(regs, dstreg);
33633: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
33634: { int flgs = ((uae_s32)(src)) < 0;
33635: int flgo = ((uae_s32)(dst)) < 0;
33636: int flgn = ((uae_s32)(newv)) < 0;
33637: SET_ZFLG (((uae_s32)(newv)) == 0);
33638: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
33639: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
33640: COPY_CARRY;
33641: SET_NFLG (flgn != 0);
33642: m68k_dreg(regs, dstreg) = (newv);
33643: }}}}}}}m68k_incpc(4);
33644: return 20;
33645: }
33646: unsigned long REGPARAM2 CPUFUNC(op_90bb_3)(uae_u32 opcode) /* SUB */
33647: {
33648: uae_u32 dstreg = (opcode >> 9) & 7;
33649: OpcodeFamily = 7; CurrentInstrCycles = 20;
33650: {{ uaecptr tmppc = m68k_getpc() + 2;
33651: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
33652: BusCyclePenalty += 2;
33653: { uae_s32 src = get_long(srca);
33654: { uae_s32 dst = m68k_dreg(regs, dstreg);
33655: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
33656: { int flgs = ((uae_s32)(src)) < 0;
33657: int flgo = ((uae_s32)(dst)) < 0;
33658: int flgn = ((uae_s32)(newv)) < 0;
33659: SET_ZFLG (((uae_s32)(newv)) == 0);
33660: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
33661: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
33662: COPY_CARRY;
33663: SET_NFLG (flgn != 0);
33664: m68k_dreg(regs, dstreg) = (newv);
33665: }}}}}}}m68k_incpc(4);
33666: return 20;
33667: }
33668: unsigned long REGPARAM2 CPUFUNC(op_90f0_3)(uae_u32 opcode) /* SUBA */
33669: {
33670: uae_u32 srcreg = (opcode & 7);
33671: uae_u32 dstreg = (opcode >> 9) & 7;
33672: OpcodeFamily = 8; CurrentInstrCycles = 18;
33673: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
33674: BusCyclePenalty += 2;
33675: { uae_s16 src = get_word(srca);
33676: { uae_s32 dst = m68k_areg(regs, dstreg);
33677: { uae_u32 newv = dst - src;
33678: m68k_areg(regs, dstreg) = (newv);
33679: }}}}}m68k_incpc(4);
33680: return 18;
33681: }
33682: unsigned long REGPARAM2 CPUFUNC(op_90fb_3)(uae_u32 opcode) /* SUBA */
33683: {
33684: uae_u32 dstreg = (opcode >> 9) & 7;
33685: OpcodeFamily = 8; CurrentInstrCycles = 18;
33686: {{ uaecptr tmppc = m68k_getpc() + 2;
33687: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
33688: BusCyclePenalty += 2;
33689: { uae_s16 src = get_word(srca);
33690: { uae_s32 dst = m68k_areg(regs, dstreg);
33691: { uae_u32 newv = dst - src;
33692: m68k_areg(regs, dstreg) = (newv);
33693: }}}}}m68k_incpc(4);
33694: return 18;
33695: }
33696: unsigned long REGPARAM2 CPUFUNC(op_9130_3)(uae_u32 opcode) /* SUB */
33697: {
33698: uae_u32 srcreg = ((opcode >> 9) & 7);
33699: uae_u32 dstreg = opcode & 7;
33700: OpcodeFamily = 7; CurrentInstrCycles = 18;
33701: {{ uae_s8 src = m68k_dreg(regs, srcreg);
33702: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
33703: BusCyclePenalty += 2;
33704: { uae_s8 dst = get_byte(dsta);
33705: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
33706: { int flgs = ((uae_s8)(src)) < 0;
33707: int flgo = ((uae_s8)(dst)) < 0;
33708: int flgn = ((uae_s8)(newv)) < 0;
33709: SET_ZFLG (((uae_s8)(newv)) == 0);
33710: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
33711: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
33712: COPY_CARRY;
33713: SET_NFLG (flgn != 0);
33714: put_byte(dsta,newv);
33715: }}}}}}}m68k_incpc(4);
33716: return 18;
33717: }
33718: unsigned long REGPARAM2 CPUFUNC(op_9170_3)(uae_u32 opcode) /* SUB */
33719: {
33720: uae_u32 srcreg = ((opcode >> 9) & 7);
33721: uae_u32 dstreg = opcode & 7;
33722: OpcodeFamily = 7; CurrentInstrCycles = 18;
33723: {{ uae_s16 src = m68k_dreg(regs, srcreg);
33724: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
33725: BusCyclePenalty += 2;
33726: { uae_s16 dst = get_word(dsta);
33727: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
33728: { int flgs = ((uae_s16)(src)) < 0;
33729: int flgo = ((uae_s16)(dst)) < 0;
33730: int flgn = ((uae_s16)(newv)) < 0;
33731: SET_ZFLG (((uae_s16)(newv)) == 0);
33732: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
33733: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
33734: COPY_CARRY;
33735: SET_NFLG (flgn != 0);
33736: put_word(dsta,newv);
33737: }}}}}}}m68k_incpc(4);
33738: return 18;
33739: }
33740: unsigned long REGPARAM2 CPUFUNC(op_91b0_3)(uae_u32 opcode) /* SUB */
33741: {
33742: uae_u32 srcreg = ((opcode >> 9) & 7);
33743: uae_u32 dstreg = opcode & 7;
33744: OpcodeFamily = 7; CurrentInstrCycles = 26;
33745: {{ uae_s32 src = m68k_dreg(regs, srcreg);
33746: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
33747: BusCyclePenalty += 2;
33748: { uae_s32 dst = get_long(dsta);
33749: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
33750: { int flgs = ((uae_s32)(src)) < 0;
33751: int flgo = ((uae_s32)(dst)) < 0;
33752: int flgn = ((uae_s32)(newv)) < 0;
33753: SET_ZFLG (((uae_s32)(newv)) == 0);
33754: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
33755: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
33756: COPY_CARRY;
33757: SET_NFLG (flgn != 0);
33758: put_long(dsta,newv);
33759: }}}}}}}m68k_incpc(4);
33760: return 26;
33761: }
33762: unsigned long REGPARAM2 CPUFUNC(op_91f0_3)(uae_u32 opcode) /* SUBA */
33763: {
33764: uae_u32 srcreg = (opcode & 7);
33765: uae_u32 dstreg = (opcode >> 9) & 7;
33766: OpcodeFamily = 8; CurrentInstrCycles = 20;
33767: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
33768: BusCyclePenalty += 2;
33769: { uae_s32 src = get_long(srca);
33770: { uae_s32 dst = m68k_areg(regs, dstreg);
33771: { uae_u32 newv = dst - src;
33772: m68k_areg(regs, dstreg) = (newv);
33773: }}}}}m68k_incpc(4);
33774: return 20;
33775: }
33776: unsigned long REGPARAM2 CPUFUNC(op_91fb_3)(uae_u32 opcode) /* SUBA */
33777: {
33778: uae_u32 dstreg = (opcode >> 9) & 7;
33779: OpcodeFamily = 8; CurrentInstrCycles = 20;
33780: {{ uaecptr tmppc = m68k_getpc() + 2;
33781: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
33782: BusCyclePenalty += 2;
33783: { uae_s32 src = get_long(srca);
33784: { uae_s32 dst = m68k_areg(regs, dstreg);
33785: { uae_u32 newv = dst - src;
33786: m68k_areg(regs, dstreg) = (newv);
33787: }}}}}m68k_incpc(4);
33788: return 20;
33789: }
33790: unsigned long REGPARAM2 CPUFUNC(op_b030_3)(uae_u32 opcode) /* CMP */
33791: {
33792: uae_u32 srcreg = (opcode & 7);
33793: uae_u32 dstreg = (opcode >> 9) & 7;
33794: OpcodeFamily = 25; CurrentInstrCycles = 14;
33795: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
33796: BusCyclePenalty += 2;
33797: { uae_s8 src = get_byte(srca);
33798: { uae_s8 dst = m68k_dreg(regs, dstreg);
33799: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
33800: { int flgs = ((uae_s8)(src)) < 0;
33801: int flgo = ((uae_s8)(dst)) < 0;
33802: int flgn = ((uae_s8)(newv)) < 0;
33803: SET_ZFLG (((uae_s8)(newv)) == 0);
33804: SET_VFLG ((flgs != flgo) && (flgn != flgo));
33805: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
33806: SET_NFLG (flgn != 0);
33807: }}}}}}}m68k_incpc(4);
33808: return 14;
33809: }
33810: unsigned long REGPARAM2 CPUFUNC(op_b03b_3)(uae_u32 opcode) /* CMP */
33811: {
33812: uae_u32 dstreg = (opcode >> 9) & 7;
33813: OpcodeFamily = 25; CurrentInstrCycles = 14;
33814: {{ uaecptr tmppc = m68k_getpc() + 2;
33815: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
33816: BusCyclePenalty += 2;
33817: { uae_s8 src = get_byte(srca);
33818: { uae_s8 dst = m68k_dreg(regs, dstreg);
33819: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
33820: { int flgs = ((uae_s8)(src)) < 0;
33821: int flgo = ((uae_s8)(dst)) < 0;
33822: int flgn = ((uae_s8)(newv)) < 0;
33823: SET_ZFLG (((uae_s8)(newv)) == 0);
33824: SET_VFLG ((flgs != flgo) && (flgn != flgo));
33825: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
33826: SET_NFLG (flgn != 0);
33827: }}}}}}}m68k_incpc(4);
33828: return 14;
33829: }
33830: #endif
33831:
33832: #ifdef PART_7
33833: unsigned long REGPARAM2 CPUFUNC(op_b070_3)(uae_u32 opcode) /* CMP */
33834: {
33835: uae_u32 srcreg = (opcode & 7);
33836: uae_u32 dstreg = (opcode >> 9) & 7;
33837: OpcodeFamily = 25; CurrentInstrCycles = 14;
33838: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
33839: BusCyclePenalty += 2;
33840: { uae_s16 src = get_word(srca);
33841: { uae_s16 dst = m68k_dreg(regs, dstreg);
33842: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
33843: { int flgs = ((uae_s16)(src)) < 0;
33844: int flgo = ((uae_s16)(dst)) < 0;
33845: int flgn = ((uae_s16)(newv)) < 0;
33846: SET_ZFLG (((uae_s16)(newv)) == 0);
33847: SET_VFLG ((flgs != flgo) && (flgn != flgo));
33848: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
33849: SET_NFLG (flgn != 0);
33850: }}}}}}}m68k_incpc(4);
33851: return 14;
33852: }
33853: unsigned long REGPARAM2 CPUFUNC(op_b07b_3)(uae_u32 opcode) /* CMP */
33854: {
33855: uae_u32 dstreg = (opcode >> 9) & 7;
33856: OpcodeFamily = 25; CurrentInstrCycles = 14;
33857: {{ uaecptr tmppc = m68k_getpc() + 2;
33858: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
33859: BusCyclePenalty += 2;
33860: { uae_s16 src = get_word(srca);
33861: { uae_s16 dst = m68k_dreg(regs, dstreg);
33862: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
33863: { int flgs = ((uae_s16)(src)) < 0;
33864: int flgo = ((uae_s16)(dst)) < 0;
33865: int flgn = ((uae_s16)(newv)) < 0;
33866: SET_ZFLG (((uae_s16)(newv)) == 0);
33867: SET_VFLG ((flgs != flgo) && (flgn != flgo));
33868: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
33869: SET_NFLG (flgn != 0);
33870: }}}}}}}m68k_incpc(4);
33871: return 14;
33872: }
33873: unsigned long REGPARAM2 CPUFUNC(op_b0b0_3)(uae_u32 opcode) /* CMP */
33874: {
33875: uae_u32 srcreg = (opcode & 7);
33876: uae_u32 dstreg = (opcode >> 9) & 7;
33877: OpcodeFamily = 25; CurrentInstrCycles = 20;
33878: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
33879: BusCyclePenalty += 2;
33880: { uae_s32 src = get_long(srca);
33881: { uae_s32 dst = m68k_dreg(regs, dstreg);
33882: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
33883: { int flgs = ((uae_s32)(src)) < 0;
33884: int flgo = ((uae_s32)(dst)) < 0;
33885: int flgn = ((uae_s32)(newv)) < 0;
33886: SET_ZFLG (((uae_s32)(newv)) == 0);
33887: SET_VFLG ((flgs != flgo) && (flgn != flgo));
33888: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
33889: SET_NFLG (flgn != 0);
33890: }}}}}}}m68k_incpc(4);
33891: return 20;
33892: }
33893: unsigned long REGPARAM2 CPUFUNC(op_b0bb_3)(uae_u32 opcode) /* CMP */
33894: {
33895: uae_u32 dstreg = (opcode >> 9) & 7;
33896: OpcodeFamily = 25; CurrentInstrCycles = 20;
33897: {{ uaecptr tmppc = m68k_getpc() + 2;
33898: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
33899: BusCyclePenalty += 2;
33900: { uae_s32 src = get_long(srca);
33901: { uae_s32 dst = m68k_dreg(regs, dstreg);
33902: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
33903: { int flgs = ((uae_s32)(src)) < 0;
33904: int flgo = ((uae_s32)(dst)) < 0;
33905: int flgn = ((uae_s32)(newv)) < 0;
33906: SET_ZFLG (((uae_s32)(newv)) == 0);
33907: SET_VFLG ((flgs != flgo) && (flgn != flgo));
33908: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
33909: SET_NFLG (flgn != 0);
33910: }}}}}}}m68k_incpc(4);
33911: return 20;
33912: }
33913: unsigned long REGPARAM2 CPUFUNC(op_b0f0_3)(uae_u32 opcode) /* CMPA */
33914: {
33915: uae_u32 srcreg = (opcode & 7);
33916: uae_u32 dstreg = (opcode >> 9) & 7;
33917: OpcodeFamily = 27; CurrentInstrCycles = 16;
33918: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
33919: BusCyclePenalty += 2;
33920: { uae_s16 src = get_word(srca);
33921: { uae_s32 dst = m68k_areg(regs, dstreg);
33922: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
33923: { int flgs = ((uae_s32)(src)) < 0;
33924: int flgo = ((uae_s32)(dst)) < 0;
33925: int flgn = ((uae_s32)(newv)) < 0;
33926: SET_ZFLG (((uae_s32)(newv)) == 0);
33927: SET_VFLG ((flgs != flgo) && (flgn != flgo));
33928: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
33929: SET_NFLG (flgn != 0);
33930: }}}}}}}m68k_incpc(4);
33931: return 16;
33932: }
33933: unsigned long REGPARAM2 CPUFUNC(op_b0fb_3)(uae_u32 opcode) /* CMPA */
33934: {
33935: uae_u32 dstreg = (opcode >> 9) & 7;
33936: OpcodeFamily = 27; CurrentInstrCycles = 16;
33937: {{ uaecptr tmppc = m68k_getpc() + 2;
33938: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
33939: BusCyclePenalty += 2;
33940: { uae_s16 src = get_word(srca);
33941: { uae_s32 dst = m68k_areg(regs, dstreg);
33942: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
33943: { int flgs = ((uae_s32)(src)) < 0;
33944: int flgo = ((uae_s32)(dst)) < 0;
33945: int flgn = ((uae_s32)(newv)) < 0;
33946: SET_ZFLG (((uae_s32)(newv)) == 0);
33947: SET_VFLG ((flgs != flgo) && (flgn != flgo));
33948: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
33949: SET_NFLG (flgn != 0);
33950: }}}}}}}m68k_incpc(4);
33951: return 16;
33952: }
33953: unsigned long REGPARAM2 CPUFUNC(op_b130_3)(uae_u32 opcode) /* EOR */
33954: {
33955: uae_u32 srcreg = ((opcode >> 9) & 7);
33956: uae_u32 dstreg = opcode & 7;
33957: OpcodeFamily = 3; CurrentInstrCycles = 18;
33958: {{ uae_s8 src = m68k_dreg(regs, srcreg);
33959: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
33960: BusCyclePenalty += 2;
33961: { uae_s8 dst = get_byte(dsta);
33962: src ^= dst;
33963: CLEAR_CZNV;
33964: SET_ZFLG (((uae_s8)(src)) == 0);
33965: SET_NFLG (((uae_s8)(src)) < 0);
33966: put_byte(dsta,src);
33967: }}}}m68k_incpc(4);
33968: return 18;
33969: }
33970: unsigned long REGPARAM2 CPUFUNC(op_b170_3)(uae_u32 opcode) /* EOR */
33971: {
33972: uae_u32 srcreg = ((opcode >> 9) & 7);
33973: uae_u32 dstreg = opcode & 7;
33974: OpcodeFamily = 3; CurrentInstrCycles = 18;
33975: {{ uae_s16 src = m68k_dreg(regs, srcreg);
33976: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
33977: BusCyclePenalty += 2;
33978: { uae_s16 dst = get_word(dsta);
33979: src ^= dst;
33980: CLEAR_CZNV;
33981: SET_ZFLG (((uae_s16)(src)) == 0);
33982: SET_NFLG (((uae_s16)(src)) < 0);
33983: put_word(dsta,src);
33984: }}}}m68k_incpc(4);
33985: return 18;
33986: }
33987: unsigned long REGPARAM2 CPUFUNC(op_b1b0_3)(uae_u32 opcode) /* EOR */
33988: {
33989: uae_u32 srcreg = ((opcode >> 9) & 7);
33990: uae_u32 dstreg = opcode & 7;
33991: OpcodeFamily = 3; CurrentInstrCycles = 26;
33992: {{ uae_s32 src = m68k_dreg(regs, srcreg);
33993: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
33994: BusCyclePenalty += 2;
33995: { uae_s32 dst = get_long(dsta);
33996: src ^= dst;
33997: CLEAR_CZNV;
33998: SET_ZFLG (((uae_s32)(src)) == 0);
33999: SET_NFLG (((uae_s32)(src)) < 0);
34000: put_long(dsta,src);
34001: }}}}m68k_incpc(4);
34002: return 26;
34003: }
34004: unsigned long REGPARAM2 CPUFUNC(op_b1f0_3)(uae_u32 opcode) /* CMPA */
34005: {
34006: uae_u32 srcreg = (opcode & 7);
34007: uae_u32 dstreg = (opcode >> 9) & 7;
34008: OpcodeFamily = 27; CurrentInstrCycles = 20;
34009: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
34010: BusCyclePenalty += 2;
34011: { uae_s32 src = get_long(srca);
34012: { uae_s32 dst = m68k_areg(regs, dstreg);
34013: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
34014: { int flgs = ((uae_s32)(src)) < 0;
34015: int flgo = ((uae_s32)(dst)) < 0;
34016: int flgn = ((uae_s32)(newv)) < 0;
34017: SET_ZFLG (((uae_s32)(newv)) == 0);
34018: SET_VFLG ((flgs != flgo) && (flgn != flgo));
34019: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
34020: SET_NFLG (flgn != 0);
34021: }}}}}}}m68k_incpc(4);
34022: return 20;
34023: }
34024: unsigned long REGPARAM2 CPUFUNC(op_b1fb_3)(uae_u32 opcode) /* CMPA */
34025: {
34026: uae_u32 dstreg = (opcode >> 9) & 7;
34027: OpcodeFamily = 27; CurrentInstrCycles = 20;
34028: {{ uaecptr tmppc = m68k_getpc() + 2;
34029: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
34030: BusCyclePenalty += 2;
34031: { uae_s32 src = get_long(srca);
34032: { uae_s32 dst = m68k_areg(regs, dstreg);
34033: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
34034: { int flgs = ((uae_s32)(src)) < 0;
34035: int flgo = ((uae_s32)(dst)) < 0;
34036: int flgn = ((uae_s32)(newv)) < 0;
34037: SET_ZFLG (((uae_s32)(newv)) == 0);
34038: SET_VFLG ((flgs != flgo) && (flgn != flgo));
34039: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
34040: SET_NFLG (flgn != 0);
34041: }}}}}}}m68k_incpc(4);
34042: return 20;
34043: }
34044: unsigned long REGPARAM2 CPUFUNC(op_c030_3)(uae_u32 opcode) /* AND */
34045: {
34046: uae_u32 srcreg = (opcode & 7);
34047: uae_u32 dstreg = (opcode >> 9) & 7;
34048: OpcodeFamily = 2; CurrentInstrCycles = 14;
34049: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
34050: BusCyclePenalty += 2;
34051: { uae_s8 src = get_byte(srca);
34052: { uae_s8 dst = m68k_dreg(regs, dstreg);
34053: src &= dst;
34054: CLEAR_CZNV;
34055: SET_ZFLG (((uae_s8)(src)) == 0);
34056: SET_NFLG (((uae_s8)(src)) < 0);
34057: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
34058: }}}}m68k_incpc(4);
34059: return 14;
34060: }
34061: unsigned long REGPARAM2 CPUFUNC(op_c03b_3)(uae_u32 opcode) /* AND */
34062: {
34063: uae_u32 dstreg = (opcode >> 9) & 7;
34064: OpcodeFamily = 2; CurrentInstrCycles = 14;
34065: {{ uaecptr tmppc = m68k_getpc() + 2;
34066: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
34067: BusCyclePenalty += 2;
34068: { uae_s8 src = get_byte(srca);
34069: { uae_s8 dst = m68k_dreg(regs, dstreg);
34070: src &= dst;
34071: CLEAR_CZNV;
34072: SET_ZFLG (((uae_s8)(src)) == 0);
34073: SET_NFLG (((uae_s8)(src)) < 0);
34074: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
34075: }}}}m68k_incpc(4);
34076: return 14;
34077: }
34078: unsigned long REGPARAM2 CPUFUNC(op_c070_3)(uae_u32 opcode) /* AND */
34079: {
34080: uae_u32 srcreg = (opcode & 7);
34081: uae_u32 dstreg = (opcode >> 9) & 7;
34082: OpcodeFamily = 2; CurrentInstrCycles = 14;
34083: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
34084: BusCyclePenalty += 2;
34085: { uae_s16 src = get_word(srca);
34086: { uae_s16 dst = m68k_dreg(regs, dstreg);
34087: src &= dst;
34088: CLEAR_CZNV;
34089: SET_ZFLG (((uae_s16)(src)) == 0);
34090: SET_NFLG (((uae_s16)(src)) < 0);
34091: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
34092: }}}}m68k_incpc(4);
34093: return 14;
34094: }
34095: unsigned long REGPARAM2 CPUFUNC(op_c07b_3)(uae_u32 opcode) /* AND */
34096: {
34097: uae_u32 dstreg = (opcode >> 9) & 7;
34098: OpcodeFamily = 2; CurrentInstrCycles = 14;
34099: {{ uaecptr tmppc = m68k_getpc() + 2;
34100: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
34101: BusCyclePenalty += 2;
34102: { uae_s16 src = get_word(srca);
34103: { uae_s16 dst = m68k_dreg(regs, dstreg);
34104: src &= dst;
34105: CLEAR_CZNV;
34106: SET_ZFLG (((uae_s16)(src)) == 0);
34107: SET_NFLG (((uae_s16)(src)) < 0);
34108: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
34109: }}}}m68k_incpc(4);
34110: return 14;
34111: }
34112: unsigned long REGPARAM2 CPUFUNC(op_c0b0_3)(uae_u32 opcode) /* AND */
34113: {
34114: uae_u32 srcreg = (opcode & 7);
34115: uae_u32 dstreg = (opcode >> 9) & 7;
34116: OpcodeFamily = 2; CurrentInstrCycles = 20;
34117: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
34118: BusCyclePenalty += 2;
34119: { uae_s32 src = get_long(srca);
34120: { uae_s32 dst = m68k_dreg(regs, dstreg);
34121: src &= dst;
34122: CLEAR_CZNV;
34123: SET_ZFLG (((uae_s32)(src)) == 0);
34124: SET_NFLG (((uae_s32)(src)) < 0);
34125: m68k_dreg(regs, dstreg) = (src);
34126: }}}}m68k_incpc(4);
34127: return 20;
34128: }
34129: unsigned long REGPARAM2 CPUFUNC(op_c0bb_3)(uae_u32 opcode) /* AND */
34130: {
34131: uae_u32 dstreg = (opcode >> 9) & 7;
34132: OpcodeFamily = 2; CurrentInstrCycles = 20;
34133: {{ uaecptr tmppc = m68k_getpc() + 2;
34134: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
34135: BusCyclePenalty += 2;
34136: { uae_s32 src = get_long(srca);
34137: { uae_s32 dst = m68k_dreg(regs, dstreg);
34138: src &= dst;
34139: CLEAR_CZNV;
34140: SET_ZFLG (((uae_s32)(src)) == 0);
34141: SET_NFLG (((uae_s32)(src)) < 0);
34142: m68k_dreg(regs, dstreg) = (src);
34143: }}}}m68k_incpc(4);
34144: return 20;
34145: }
34146: unsigned long REGPARAM2 CPUFUNC(op_c0f0_3)(uae_u32 opcode) /* MULU */
34147: {
34148: uae_u32 srcreg = (opcode & 7);
34149: uae_u32 dstreg = (opcode >> 9) & 7;
34150: unsigned int retcycles = 0;
34151: OpcodeFamily = 62; CurrentInstrCycles = 48;
34152: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
34153: BusCyclePenalty += 2;
34154: { uae_s16 src = get_word(srca);
34155: { uae_s16 dst = m68k_dreg(regs, dstreg);
34156: { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
34157: CLEAR_CZNV;
34158: SET_ZFLG (((uae_s32)(newv)) == 0);
34159: SET_NFLG (((uae_s32)(newv)) < 0);
34160: m68k_dreg(regs, dstreg) = (newv);
34161: while (src) { if (src & 1) retcycles++; src = (uae_u16)src >> 1; }
34162: }}}}}m68k_incpc(4);
34163: return (48+retcycles*2);
34164: }
34165: unsigned long REGPARAM2 CPUFUNC(op_c0fb_3)(uae_u32 opcode) /* MULU */
34166: {
34167: uae_u32 dstreg = (opcode >> 9) & 7;
34168: unsigned int retcycles = 0;
34169: OpcodeFamily = 62; CurrentInstrCycles = 48;
34170: {{ uaecptr tmppc = m68k_getpc() + 2;
34171: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
34172: BusCyclePenalty += 2;
34173: { uae_s16 src = get_word(srca);
34174: { uae_s16 dst = m68k_dreg(regs, dstreg);
34175: { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
34176: CLEAR_CZNV;
34177: SET_ZFLG (((uae_s32)(newv)) == 0);
34178: SET_NFLG (((uae_s32)(newv)) < 0);
34179: m68k_dreg(regs, dstreg) = (newv);
34180: while (src) { if (src & 1) retcycles++; src = (uae_u16)src >> 1; }
34181: }}}}}m68k_incpc(4);
34182: return (48+retcycles*2);
34183: }
34184: unsigned long REGPARAM2 CPUFUNC(op_c130_3)(uae_u32 opcode) /* AND */
34185: {
34186: uae_u32 srcreg = ((opcode >> 9) & 7);
34187: uae_u32 dstreg = opcode & 7;
34188: OpcodeFamily = 2; CurrentInstrCycles = 18;
34189: {{ uae_s8 src = m68k_dreg(regs, srcreg);
34190: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
34191: BusCyclePenalty += 2;
34192: { uae_s8 dst = get_byte(dsta);
34193: src &= dst;
34194: CLEAR_CZNV;
34195: SET_ZFLG (((uae_s8)(src)) == 0);
34196: SET_NFLG (((uae_s8)(src)) < 0);
34197: put_byte(dsta,src);
34198: }}}}m68k_incpc(4);
34199: return 18;
34200: }
34201: unsigned long REGPARAM2 CPUFUNC(op_c170_3)(uae_u32 opcode) /* AND */
34202: {
34203: uae_u32 srcreg = ((opcode >> 9) & 7);
34204: uae_u32 dstreg = opcode & 7;
34205: OpcodeFamily = 2; CurrentInstrCycles = 18;
34206: {{ uae_s16 src = m68k_dreg(regs, srcreg);
34207: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
34208: BusCyclePenalty += 2;
34209: { uae_s16 dst = get_word(dsta);
34210: src &= dst;
34211: CLEAR_CZNV;
34212: SET_ZFLG (((uae_s16)(src)) == 0);
34213: SET_NFLG (((uae_s16)(src)) < 0);
34214: put_word(dsta,src);
34215: }}}}m68k_incpc(4);
34216: return 18;
34217: }
34218: unsigned long REGPARAM2 CPUFUNC(op_c1b0_3)(uae_u32 opcode) /* AND */
34219: {
34220: uae_u32 srcreg = ((opcode >> 9) & 7);
34221: uae_u32 dstreg = opcode & 7;
34222: OpcodeFamily = 2; CurrentInstrCycles = 26;
34223: {{ uae_s32 src = m68k_dreg(regs, srcreg);
34224: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
34225: BusCyclePenalty += 2;
34226: { uae_s32 dst = get_long(dsta);
34227: src &= dst;
34228: CLEAR_CZNV;
34229: SET_ZFLG (((uae_s32)(src)) == 0);
34230: SET_NFLG (((uae_s32)(src)) < 0);
34231: put_long(dsta,src);
34232: }}}}m68k_incpc(4);
34233: return 26;
34234: }
34235: unsigned long REGPARAM2 CPUFUNC(op_c1f0_3)(uae_u32 opcode) /* MULS */
34236: {
34237: uae_u32 srcreg = (opcode & 7);
34238: uae_u32 dstreg = (opcode >> 9) & 7;
34239: unsigned int retcycles = 0;
34240: OpcodeFamily = 63; CurrentInstrCycles = 48;
34241: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
34242: BusCyclePenalty += 2;
34243: { uae_s16 src = get_word(srca);
34244: { uae_s16 dst = m68k_dreg(regs, dstreg);
34245: { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
34246: uae_u32 src2;
34247: CLEAR_CZNV;
34248: SET_ZFLG (((uae_s32)(newv)) == 0);
34249: SET_NFLG (((uae_s32)(newv)) < 0);
34250: m68k_dreg(regs, dstreg) = (newv);
34251: src2 = ((uae_u32)src) << 1;
34252: while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; }
34253: }}}}}m68k_incpc(4);
34254: return (48+retcycles*2);
34255: }
34256: unsigned long REGPARAM2 CPUFUNC(op_c1fb_3)(uae_u32 opcode) /* MULS */
34257: {
34258: uae_u32 dstreg = (opcode >> 9) & 7;
34259: unsigned int retcycles = 0;
34260: OpcodeFamily = 63; CurrentInstrCycles = 48;
34261: {{ uaecptr tmppc = m68k_getpc() + 2;
34262: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
34263: BusCyclePenalty += 2;
34264: { uae_s16 src = get_word(srca);
34265: { uae_s16 dst = m68k_dreg(regs, dstreg);
34266: { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
34267: uae_u32 src2;
34268: CLEAR_CZNV;
34269: SET_ZFLG (((uae_s32)(newv)) == 0);
34270: SET_NFLG (((uae_s32)(newv)) < 0);
34271: m68k_dreg(regs, dstreg) = (newv);
34272: src2 = ((uae_u32)src) << 1;
34273: while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; }
34274: }}}}}m68k_incpc(4);
34275: return (48+retcycles*2);
34276: }
34277: unsigned long REGPARAM2 CPUFUNC(op_d030_3)(uae_u32 opcode) /* ADD */
34278: {
34279: uae_u32 srcreg = (opcode & 7);
34280: uae_u32 dstreg = (opcode >> 9) & 7;
34281: OpcodeFamily = 11; CurrentInstrCycles = 14;
34282: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
34283: BusCyclePenalty += 2;
34284: { uae_s8 src = get_byte(srca);
34285: { uae_s8 dst = m68k_dreg(regs, dstreg);
34286: { refill_prefetch (m68k_getpc(), 2);
34287: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
34288: { int flgs = ((uae_s8)(src)) < 0;
34289: int flgo = ((uae_s8)(dst)) < 0;
34290: int flgn = ((uae_s8)(newv)) < 0;
34291: SET_ZFLG (((uae_s8)(newv)) == 0);
34292: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
34293: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
34294: COPY_CARRY;
34295: SET_NFLG (flgn != 0);
34296: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
34297: }}}}}}}m68k_incpc(4);
34298: return 14;
34299: }
34300: unsigned long REGPARAM2 CPUFUNC(op_d03b_3)(uae_u32 opcode) /* ADD */
34301: {
34302: uae_u32 dstreg = (opcode >> 9) & 7;
34303: OpcodeFamily = 11; CurrentInstrCycles = 14;
34304: {{ uaecptr tmppc = m68k_getpc() + 2;
34305: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
34306: BusCyclePenalty += 2;
34307: { uae_s8 src = get_byte(srca);
34308: { uae_s8 dst = m68k_dreg(regs, dstreg);
34309: { refill_prefetch (m68k_getpc(), 2);
34310: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
34311: { int flgs = ((uae_s8)(src)) < 0;
34312: int flgo = ((uae_s8)(dst)) < 0;
34313: int flgn = ((uae_s8)(newv)) < 0;
34314: SET_ZFLG (((uae_s8)(newv)) == 0);
34315: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
34316: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
34317: COPY_CARRY;
34318: SET_NFLG (flgn != 0);
34319: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
34320: }}}}}}}m68k_incpc(4);
34321: return 14;
34322: }
34323: unsigned long REGPARAM2 CPUFUNC(op_d070_3)(uae_u32 opcode) /* ADD */
34324: {
34325: uae_u32 srcreg = (opcode & 7);
34326: uae_u32 dstreg = (opcode >> 9) & 7;
34327: OpcodeFamily = 11; CurrentInstrCycles = 14;
34328: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
34329: BusCyclePenalty += 2;
34330: { uae_s16 src = get_word(srca);
34331: { uae_s16 dst = m68k_dreg(regs, dstreg);
34332: { refill_prefetch (m68k_getpc(), 2);
34333: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
34334: { int flgs = ((uae_s16)(src)) < 0;
34335: int flgo = ((uae_s16)(dst)) < 0;
34336: int flgn = ((uae_s16)(newv)) < 0;
34337: SET_ZFLG (((uae_s16)(newv)) == 0);
34338: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
34339: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
34340: COPY_CARRY;
34341: SET_NFLG (flgn != 0);
34342: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
34343: }}}}}}}m68k_incpc(4);
34344: return 14;
34345: }
34346: unsigned long REGPARAM2 CPUFUNC(op_d07b_3)(uae_u32 opcode) /* ADD */
34347: {
34348: uae_u32 dstreg = (opcode >> 9) & 7;
34349: OpcodeFamily = 11; CurrentInstrCycles = 14;
34350: {{ uaecptr tmppc = m68k_getpc() + 2;
34351: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
34352: BusCyclePenalty += 2;
34353: { uae_s16 src = get_word(srca);
34354: { uae_s16 dst = m68k_dreg(regs, dstreg);
34355: { refill_prefetch (m68k_getpc(), 2);
34356: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
34357: { int flgs = ((uae_s16)(src)) < 0;
34358: int flgo = ((uae_s16)(dst)) < 0;
34359: int flgn = ((uae_s16)(newv)) < 0;
34360: SET_ZFLG (((uae_s16)(newv)) == 0);
34361: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
34362: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
34363: COPY_CARRY;
34364: SET_NFLG (flgn != 0);
34365: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
34366: }}}}}}}m68k_incpc(4);
34367: return 14;
34368: }
34369: unsigned long REGPARAM2 CPUFUNC(op_d0b0_3)(uae_u32 opcode) /* ADD */
34370: {
34371: uae_u32 srcreg = (opcode & 7);
34372: uae_u32 dstreg = (opcode >> 9) & 7;
34373: OpcodeFamily = 11; CurrentInstrCycles = 20;
34374: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
34375: BusCyclePenalty += 2;
34376: { uae_s32 src = get_long(srca);
34377: { uae_s32 dst = m68k_dreg(regs, dstreg);
34378: { refill_prefetch (m68k_getpc(), 2);
34379: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
34380: { int flgs = ((uae_s32)(src)) < 0;
34381: int flgo = ((uae_s32)(dst)) < 0;
34382: int flgn = ((uae_s32)(newv)) < 0;
34383: SET_ZFLG (((uae_s32)(newv)) == 0);
34384: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
34385: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
34386: COPY_CARRY;
34387: SET_NFLG (flgn != 0);
34388: m68k_dreg(regs, dstreg) = (newv);
34389: }}}}}}}m68k_incpc(4);
34390: return 20;
34391: }
34392: unsigned long REGPARAM2 CPUFUNC(op_d0bb_3)(uae_u32 opcode) /* ADD */
34393: {
34394: uae_u32 dstreg = (opcode >> 9) & 7;
34395: OpcodeFamily = 11; CurrentInstrCycles = 20;
34396: {{ uaecptr tmppc = m68k_getpc() + 2;
34397: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
34398: BusCyclePenalty += 2;
34399: { uae_s32 src = get_long(srca);
34400: { uae_s32 dst = m68k_dreg(regs, dstreg);
34401: { refill_prefetch (m68k_getpc(), 2);
34402: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
34403: { int flgs = ((uae_s32)(src)) < 0;
34404: int flgo = ((uae_s32)(dst)) < 0;
34405: int flgn = ((uae_s32)(newv)) < 0;
34406: SET_ZFLG (((uae_s32)(newv)) == 0);
34407: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
34408: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
34409: COPY_CARRY;
34410: SET_NFLG (flgn != 0);
34411: m68k_dreg(regs, dstreg) = (newv);
34412: }}}}}}}m68k_incpc(4);
34413: return 20;
34414: }
34415: unsigned long REGPARAM2 CPUFUNC(op_d0f0_3)(uae_u32 opcode) /* ADDA */
34416: {
34417: uae_u32 srcreg = (opcode & 7);
34418: uae_u32 dstreg = (opcode >> 9) & 7;
34419: OpcodeFamily = 12; CurrentInstrCycles = 18;
34420: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
34421: BusCyclePenalty += 2;
34422: { uae_s16 src = get_word(srca);
34423: { uae_s32 dst = m68k_areg(regs, dstreg);
34424: { uae_u32 newv = dst + src;
34425: m68k_areg(regs, dstreg) = (newv);
34426: }}}}}m68k_incpc(4);
34427: return 18;
34428: }
34429: unsigned long REGPARAM2 CPUFUNC(op_d0fb_3)(uae_u32 opcode) /* ADDA */
34430: {
34431: uae_u32 dstreg = (opcode >> 9) & 7;
34432: OpcodeFamily = 12; CurrentInstrCycles = 18;
34433: {{ uaecptr tmppc = m68k_getpc() + 2;
34434: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
34435: BusCyclePenalty += 2;
34436: { uae_s16 src = get_word(srca);
34437: { uae_s32 dst = m68k_areg(regs, dstreg);
34438: { uae_u32 newv = dst + src;
34439: m68k_areg(regs, dstreg) = (newv);
34440: }}}}}m68k_incpc(4);
34441: return 18;
34442: }
34443: unsigned long REGPARAM2 CPUFUNC(op_d130_3)(uae_u32 opcode) /* ADD */
34444: {
34445: uae_u32 srcreg = ((opcode >> 9) & 7);
34446: uae_u32 dstreg = opcode & 7;
34447: OpcodeFamily = 11; CurrentInstrCycles = 18;
34448: {{ uae_s8 src = m68k_dreg(regs, srcreg);
34449: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
34450: BusCyclePenalty += 2;
34451: { uae_s8 dst = get_byte(dsta);
34452: { refill_prefetch (m68k_getpc(), 2);
34453: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
34454: { int flgs = ((uae_s8)(src)) < 0;
34455: int flgo = ((uae_s8)(dst)) < 0;
34456: int flgn = ((uae_s8)(newv)) < 0;
34457: SET_ZFLG (((uae_s8)(newv)) == 0);
34458: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
34459: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
34460: COPY_CARRY;
34461: SET_NFLG (flgn != 0);
34462: put_byte(dsta,newv);
34463: }}}}}}}m68k_incpc(4);
34464: return 18;
34465: }
34466: unsigned long REGPARAM2 CPUFUNC(op_d170_3)(uae_u32 opcode) /* ADD */
34467: {
34468: uae_u32 srcreg = ((opcode >> 9) & 7);
34469: uae_u32 dstreg = opcode & 7;
34470: OpcodeFamily = 11; CurrentInstrCycles = 18;
34471: {{ uae_s16 src = m68k_dreg(regs, srcreg);
34472: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
34473: BusCyclePenalty += 2;
34474: { uae_s16 dst = get_word(dsta);
34475: { refill_prefetch (m68k_getpc(), 2);
34476: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
34477: { int flgs = ((uae_s16)(src)) < 0;
34478: int flgo = ((uae_s16)(dst)) < 0;
34479: int flgn = ((uae_s16)(newv)) < 0;
34480: SET_ZFLG (((uae_s16)(newv)) == 0);
34481: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
34482: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
34483: COPY_CARRY;
34484: SET_NFLG (flgn != 0);
34485: put_word(dsta,newv);
34486: }}}}}}}m68k_incpc(4);
34487: return 18;
34488: }
34489: unsigned long REGPARAM2 CPUFUNC(op_d1b0_3)(uae_u32 opcode) /* ADD */
34490: {
34491: uae_u32 srcreg = ((opcode >> 9) & 7);
34492: uae_u32 dstreg = opcode & 7;
34493: OpcodeFamily = 11; CurrentInstrCycles = 26;
34494: {{ uae_s32 src = m68k_dreg(regs, srcreg);
34495: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword(2));
34496: BusCyclePenalty += 2;
34497: { uae_s32 dst = get_long(dsta);
34498: { refill_prefetch (m68k_getpc(), 2);
34499: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
34500: { int flgs = ((uae_s32)(src)) < 0;
34501: int flgo = ((uae_s32)(dst)) < 0;
34502: int flgn = ((uae_s32)(newv)) < 0;
34503: SET_ZFLG (((uae_s32)(newv)) == 0);
34504: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
34505: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
34506: COPY_CARRY;
34507: SET_NFLG (flgn != 0);
34508: put_long(dsta,newv);
34509: }}}}}}}m68k_incpc(4);
34510: return 26;
34511: }
34512: #endif
34513:
34514: #ifdef PART_8
34515: unsigned long REGPARAM2 CPUFUNC(op_d1f0_3)(uae_u32 opcode) /* ADDA */
34516: {
34517: uae_u32 srcreg = (opcode & 7);
34518: uae_u32 dstreg = (opcode >> 9) & 7;
34519: OpcodeFamily = 12; CurrentInstrCycles = 20;
34520: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
34521: BusCyclePenalty += 2;
34522: { uae_s32 src = get_long(srca);
34523: { uae_s32 dst = m68k_areg(regs, dstreg);
34524: { uae_u32 newv = dst + src;
34525: m68k_areg(regs, dstreg) = (newv);
34526: }}}}}m68k_incpc(4);
34527: return 20;
34528: }
34529: unsigned long REGPARAM2 CPUFUNC(op_d1fb_3)(uae_u32 opcode) /* ADDA */
34530: {
34531: uae_u32 dstreg = (opcode >> 9) & 7;
34532: OpcodeFamily = 12; CurrentInstrCycles = 20;
34533: {{ uaecptr tmppc = m68k_getpc() + 2;
34534: uaecptr srca = get_disp_ea_000(tmppc, get_iword(2));
34535: BusCyclePenalty += 2;
34536: { uae_s32 src = get_long(srca);
34537: { uae_s32 dst = m68k_areg(regs, dstreg);
34538: { uae_u32 newv = dst + src;
34539: m68k_areg(regs, dstreg) = (newv);
34540: }}}}}m68k_incpc(4);
34541: return 20;
34542: }
34543: unsigned long REGPARAM2 CPUFUNC(op_e0f0_3)(uae_u32 opcode) /* ASRW */
34544: {
34545: uae_u32 srcreg = (opcode & 7);
34546: OpcodeFamily = 72; CurrentInstrCycles = 18;
34547: {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
34548: BusCyclePenalty += 2;
34549: { uae_s16 data = get_word(dataa);
34550: { uae_u32 val = (uae_u16)data;
34551: uae_u32 sign = 0x8000 & val;
34552: uae_u32 cflg = val & 1;
34553: val = (val >> 1) | sign;
34554: CLEAR_CZNV;
34555: SET_ZFLG (((uae_s16)(val)) == 0);
34556: SET_NFLG (((uae_s16)(val)) < 0);
34557: SET_CFLG (cflg);
34558: COPY_CARRY;
34559: put_word(dataa,val);
34560: }}}}m68k_incpc(4);
34561: return 18;
34562: }
34563: unsigned long REGPARAM2 CPUFUNC(op_e1f0_3)(uae_u32 opcode) /* ASLW */
34564: {
34565: uae_u32 srcreg = (opcode & 7);
34566: OpcodeFamily = 73; CurrentInstrCycles = 18;
34567: {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
34568: BusCyclePenalty += 2;
34569: { uae_s16 data = get_word(dataa);
34570: { uae_u32 val = (uae_u16)data;
34571: uae_u32 sign = 0x8000 & val;
34572: uae_u32 sign2;
34573: val <<= 1;
34574: CLEAR_CZNV;
34575: SET_ZFLG (((uae_s16)(val)) == 0);
34576: SET_NFLG (((uae_s16)(val)) < 0);
34577: sign2 = 0x8000 & val;
34578: SET_CFLG (sign != 0);
34579: COPY_CARRY;
34580: SET_VFLG (GET_VFLG | (sign2 != sign));
34581: put_word(dataa,val);
34582: }}}}m68k_incpc(4);
34583: return 18;
34584: }
34585: unsigned long REGPARAM2 CPUFUNC(op_e2f0_3)(uae_u32 opcode) /* LSRW */
34586: {
34587: uae_u32 srcreg = (opcode & 7);
34588: OpcodeFamily = 74; CurrentInstrCycles = 18;
34589: {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
34590: BusCyclePenalty += 2;
34591: { uae_s16 data = get_word(dataa);
34592: { uae_u32 val = (uae_u16)data;
34593: uae_u32 carry = val & 1;
34594: val >>= 1;
34595: CLEAR_CZNV;
34596: SET_ZFLG (((uae_s16)(val)) == 0);
34597: SET_NFLG (((uae_s16)(val)) < 0);
34598: SET_CFLG (carry);
34599: COPY_CARRY;
34600: put_word(dataa,val);
34601: }}}}m68k_incpc(4);
34602: return 18;
34603: }
34604: unsigned long REGPARAM2 CPUFUNC(op_e3f0_3)(uae_u32 opcode) /* LSLW */
34605: {
34606: uae_u32 srcreg = (opcode & 7);
34607: OpcodeFamily = 75; CurrentInstrCycles = 18;
34608: {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
34609: BusCyclePenalty += 2;
34610: { uae_s16 data = get_word(dataa);
34611: { uae_u16 val = data;
34612: uae_u32 carry = val & 0x8000;
34613: val <<= 1;
34614: CLEAR_CZNV;
34615: SET_ZFLG (((uae_s16)(val)) == 0);
34616: SET_NFLG (((uae_s16)(val)) < 0);
34617: SET_CFLG (carry >> 15);
34618: COPY_CARRY;
34619: put_word(dataa,val);
34620: }}}}m68k_incpc(4);
34621: return 18;
34622: }
34623: unsigned long REGPARAM2 CPUFUNC(op_e4f0_3)(uae_u32 opcode) /* ROXRW */
34624: {
34625: uae_u32 srcreg = (opcode & 7);
34626: OpcodeFamily = 79; CurrentInstrCycles = 18;
34627: {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
34628: BusCyclePenalty += 2;
34629: { uae_s16 data = get_word(dataa);
34630: { uae_u16 val = data;
34631: uae_u32 carry = val & 1;
34632: val >>= 1;
34633: if (GET_XFLG) val |= 0x8000;
34634: CLEAR_CZNV;
34635: SET_ZFLG (((uae_s16)(val)) == 0);
34636: SET_NFLG (((uae_s16)(val)) < 0);
34637: SET_CFLG (carry);
34638: COPY_CARRY;
34639: put_word(dataa,val);
34640: }}}}m68k_incpc(4);
34641: return 18;
34642: }
34643: unsigned long REGPARAM2 CPUFUNC(op_e5f0_3)(uae_u32 opcode) /* ROXLW */
34644: {
34645: uae_u32 srcreg = (opcode & 7);
34646: OpcodeFamily = 78; CurrentInstrCycles = 18;
34647: {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
34648: BusCyclePenalty += 2;
34649: { uae_s16 data = get_word(dataa);
34650: { uae_u16 val = data;
34651: uae_u32 carry = val & 0x8000;
34652: val <<= 1;
34653: if (GET_XFLG) val |= 1;
34654: CLEAR_CZNV;
34655: SET_ZFLG (((uae_s16)(val)) == 0);
34656: SET_NFLG (((uae_s16)(val)) < 0);
34657: SET_CFLG (carry >> 15);
34658: COPY_CARRY;
34659: put_word(dataa,val);
34660: }}}}m68k_incpc(4);
34661: return 18;
34662: }
34663: unsigned long REGPARAM2 CPUFUNC(op_e6f0_3)(uae_u32 opcode) /* RORW */
34664: {
34665: uae_u32 srcreg = (opcode & 7);
34666: OpcodeFamily = 77; CurrentInstrCycles = 18;
34667: {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
34668: BusCyclePenalty += 2;
34669: { uae_s16 data = get_word(dataa);
34670: { uae_u16 val = data;
34671: uae_u32 carry = val & 1;
34672: val >>= 1;
34673: if (carry) val |= 0x8000;
34674: CLEAR_CZNV;
34675: SET_ZFLG (((uae_s16)(val)) == 0);
34676: SET_NFLG (((uae_s16)(val)) < 0);
34677: SET_CFLG (carry);
34678: put_word(dataa,val);
34679: }}}}m68k_incpc(4);
34680: return 18;
34681: }
34682: unsigned long REGPARAM2 CPUFUNC(op_e7f0_3)(uae_u32 opcode) /* ROLW */
34683: {
34684: uae_u32 srcreg = (opcode & 7);
34685: OpcodeFamily = 76; CurrentInstrCycles = 18;
34686: {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
34687: BusCyclePenalty += 2;
34688: { uae_s16 data = get_word(dataa);
34689: { uae_u16 val = data;
34690: uae_u32 carry = val & 0x8000;
34691: val <<= 1;
34692: if (carry) val |= 1;
34693: CLEAR_CZNV;
34694: SET_ZFLG (((uae_s16)(val)) == 0);
34695: SET_NFLG (((uae_s16)(val)) < 0);
34696: SET_CFLG (carry >> 15);
34697: put_word(dataa,val);
34698: }}}}m68k_incpc(4);
34699: return 18;
34700: }
34701: #endif
34702:
34703:
34704: #if !defined(PART_1) && !defined(PART_2) && !defined(PART_3) && !defined(PART_4) && !defined(PART_5) && !defined(PART_6) && !defined(PART_7) && !defined(PART_8)
34705: #define PART_1 1
34706: #define PART_2 1
34707: #define PART_3 1
34708: #define PART_4 1
34709: #define PART_5 1
34710: #define PART_6 1
34711: #define PART_7 1
34712: #define PART_8 1
34713: #endif
34714:
34715: #ifdef PART_1
34716: #endif
34717:
34718: #ifdef PART_2
34719: #endif
34720:
34721: #ifdef PART_3
34722: unsigned long REGPARAM2 CPUFUNC(op_40c0_4)(uae_u32 opcode) /* MVSR2 */
34723: {
34724: uae_u32 srcreg = (opcode & 7);
34725: OpcodeFamily = 32; CurrentInstrCycles = 6;
34726: {{ MakeSR();
34727: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((regs.sr) & 0xffff);
34728: }}m68k_incpc(2);
34729: return 6;
34730: }
34731: unsigned long REGPARAM2 CPUFUNC(op_40d0_4)(uae_u32 opcode) /* MVSR2 */
34732: {
34733: uae_u32 srcreg = (opcode & 7);
34734: OpcodeFamily = 32; CurrentInstrCycles = 12;
34735: {{ uaecptr srca = m68k_areg(regs, srcreg);
34736: MakeSR();
34737: put_word(srca,regs.sr);
34738: }}m68k_incpc(2);
34739: return 12;
34740: }
34741: unsigned long REGPARAM2 CPUFUNC(op_40d8_4)(uae_u32 opcode) /* MVSR2 */
34742: {
34743: uae_u32 srcreg = (opcode & 7);
34744: OpcodeFamily = 32; CurrentInstrCycles = 12;
34745: {{ uaecptr srca = m68k_areg(regs, srcreg);
34746: m68k_areg(regs, srcreg) += 2;
34747: MakeSR();
34748: put_word(srca,regs.sr);
34749: }}m68k_incpc(2);
34750: return 12;
34751: }
34752: unsigned long REGPARAM2 CPUFUNC(op_40e0_4)(uae_u32 opcode) /* MVSR2 */
34753: {
34754: uae_u32 srcreg = (opcode & 7);
34755: OpcodeFamily = 32; CurrentInstrCycles = 14;
34756: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
34757: m68k_areg (regs, srcreg) = srca;
34758: MakeSR();
34759: put_word(srca,regs.sr);
34760: }}m68k_incpc(2);
34761: return 14;
34762: }
34763: unsigned long REGPARAM2 CPUFUNC(op_40e8_4)(uae_u32 opcode) /* MVSR2 */
34764: {
34765: uae_u32 srcreg = (opcode & 7);
34766: OpcodeFamily = 32; CurrentInstrCycles = 16;
34767: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword(2);
34768: MakeSR();
34769: put_word(srca,regs.sr);
34770: }}m68k_incpc(4);
34771: return 16;
34772: }
34773: unsigned long REGPARAM2 CPUFUNC(op_40f0_4)(uae_u32 opcode) /* MVSR2 */
34774: {
34775: uae_u32 srcreg = (opcode & 7);
34776: OpcodeFamily = 32; CurrentInstrCycles = 18;
34777: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword(2));
34778: BusCyclePenalty += 2;
34779: MakeSR();
34780: put_word(srca,regs.sr);
34781: }}m68k_incpc(4);
34782: return 18;
34783: }
34784: unsigned long REGPARAM2 CPUFUNC(op_40f8_4)(uae_u32 opcode) /* MVSR2 */
34785: {
34786: OpcodeFamily = 32; CurrentInstrCycles = 16;
34787: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword(2);
34788: MakeSR();
34789: put_word(srca,regs.sr);
34790: }}m68k_incpc(4);
34791: return 16;
34792: }
34793: unsigned long REGPARAM2 CPUFUNC(op_40f9_4)(uae_u32 opcode) /* MVSR2 */
34794: {
34795: OpcodeFamily = 32; CurrentInstrCycles = 20;
34796: {{ uaecptr srca = get_ilong(2);
34797: MakeSR();
34798: put_word(srca,regs.sr);
34799: }}m68k_incpc(6);
34800: return 20;
34801: }
34802: #endif
34803:
34804: #ifdef PART_4
34805: unsigned long REGPARAM2 CPUFUNC(op_4e73_4)(uae_u32 opcode) /* RTE */
34806: {
34807: OpcodeFamily = 45; CurrentInstrCycles = 20;
34808: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel2154; }
34809: {{ uaecptr sra = m68k_areg(regs, 7);
34810: { uae_s16 sr = get_word(sra);
34811: m68k_areg(regs, 7) += 2;
34812: { uaecptr pca = m68k_areg(regs, 7);
34813: { uae_s32 pc = get_long(pca);
34814: m68k_areg(regs, 7) += 4;
34815: regs.sr = sr; m68k_setpc_rte(pc);
34816: MakeFromSR();
34817: }}}}}}endlabel2154: ;
34818: return 20;
34819: }
34820: #endif
34821:
34822: #ifdef PART_5
34823: #endif
34824:
34825: #ifdef PART_6
34826: #endif
34827:
34828: #ifdef PART_7
34829: #endif
34830:
34831: #ifdef PART_8
34832: #endif
34833:
34834:
34835: #if !defined(PART_1) && !defined(PART_2) && !defined(PART_3) && !defined(PART_4) && !defined(PART_5) && !defined(PART_6) && !defined(PART_7) && !defined(PART_8)
34836: #define PART_1 1
34837: #define PART_2 1
34838: #define PART_3 1
34839: #define PART_4 1
34840: #define PART_5 1
34841: #define PART_6 1
34842: #define PART_7 1
34843: #define PART_8 1
34844: #endif
34845:
34846: #ifdef PART_1
34847: unsigned long REGPARAM2 CPUFUNC(op_0_5)(uae_u32 opcode) /* OR */
34848: {
34849: uae_u32 dstreg = opcode & 7;
34850: OpcodeFamily = 1; CurrentInstrCycles = 8;
34851: {{ uae_s8 src = get_ibyte_prefetch(2);
34852: { uae_s8 dst = m68k_dreg(regs, dstreg);
34853: src |= dst;
34854: CLEAR_CZNV;
34855: SET_ZFLG (((uae_s8)(src)) == 0);
34856: SET_NFLG (((uae_s8)(src)) < 0);
34857: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
34858: }}}m68k_incpc(4);
34859: fill_prefetch_0 ();
34860: return 8;
34861: }
34862: unsigned long REGPARAM2 CPUFUNC(op_10_5)(uae_u32 opcode) /* OR */
34863: {
34864: uae_u32 dstreg = opcode & 7;
34865: OpcodeFamily = 1; CurrentInstrCycles = 16;
34866: {{ uae_s8 src = get_ibyte_prefetch(2);
34867: { uaecptr dsta = m68k_areg(regs, dstreg);
34868: { uae_s8 dst = get_byte(dsta);
34869: src |= dst;
34870: CLEAR_CZNV;
34871: SET_ZFLG (((uae_s8)(src)) == 0);
34872: SET_NFLG (((uae_s8)(src)) < 0);
34873: m68k_incpc(4);
34874: fill_prefetch_0 ();
34875: put_byte(dsta,src);
34876: }}}}return 16;
34877: }
34878: unsigned long REGPARAM2 CPUFUNC(op_18_5)(uae_u32 opcode) /* OR */
34879: {
34880: uae_u32 dstreg = opcode & 7;
34881: OpcodeFamily = 1; CurrentInstrCycles = 16;
34882: {{ uae_s8 src = get_ibyte_prefetch(2);
34883: { uaecptr dsta = m68k_areg(regs, dstreg);
34884: { uae_s8 dst = get_byte(dsta);
34885: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
34886: src |= dst;
34887: CLEAR_CZNV;
34888: SET_ZFLG (((uae_s8)(src)) == 0);
34889: SET_NFLG (((uae_s8)(src)) < 0);
34890: m68k_incpc(4);
34891: fill_prefetch_0 ();
34892: put_byte(dsta,src);
34893: }}}}return 16;
34894: }
34895: unsigned long REGPARAM2 CPUFUNC(op_20_5)(uae_u32 opcode) /* OR */
34896: {
34897: uae_u32 dstreg = opcode & 7;
34898: OpcodeFamily = 1; CurrentInstrCycles = 18;
34899: {{ uae_s8 src = get_ibyte_prefetch(2);
34900: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
34901: { uae_s8 dst = get_byte(dsta);
34902: m68k_areg (regs, dstreg) = dsta;
34903: src |= dst;
34904: CLEAR_CZNV;
34905: SET_ZFLG (((uae_s8)(src)) == 0);
34906: SET_NFLG (((uae_s8)(src)) < 0);
34907: m68k_incpc(4);
34908: fill_prefetch_0 ();
34909: put_byte(dsta,src);
34910: }}}}return 18;
34911: }
34912: unsigned long REGPARAM2 CPUFUNC(op_28_5)(uae_u32 opcode) /* OR */
34913: {
34914: uae_u32 dstreg = opcode & 7;
34915: OpcodeFamily = 1; CurrentInstrCycles = 20;
34916: {{ uae_s8 src = get_ibyte_prefetch(2);
34917: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
34918: { uae_s8 dst = get_byte(dsta);
34919: src |= dst;
34920: CLEAR_CZNV;
34921: SET_ZFLG (((uae_s8)(src)) == 0);
34922: SET_NFLG (((uae_s8)(src)) < 0);
34923: m68k_incpc(6);
34924: fill_prefetch_0 ();
34925: put_byte(dsta,src);
34926: }}}}return 20;
34927: }
34928: unsigned long REGPARAM2 CPUFUNC(op_30_5)(uae_u32 opcode) /* OR */
34929: {
34930: uae_u32 dstreg = opcode & 7;
34931: OpcodeFamily = 1; CurrentInstrCycles = 22;
34932: {{ uae_s8 src = get_ibyte_prefetch(2);
34933: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
34934: BusCyclePenalty += 2;
34935: { uae_s8 dst = get_byte(dsta);
34936: src |= dst;
34937: CLEAR_CZNV;
34938: SET_ZFLG (((uae_s8)(src)) == 0);
34939: SET_NFLG (((uae_s8)(src)) < 0);
34940: m68k_incpc(6);
34941: fill_prefetch_0 ();
34942: put_byte(dsta,src);
34943: }}}}return 22;
34944: }
34945: unsigned long REGPARAM2 CPUFUNC(op_38_5)(uae_u32 opcode) /* OR */
34946: {
34947: OpcodeFamily = 1; CurrentInstrCycles = 20;
34948: {{ uae_s8 src = get_ibyte_prefetch(2);
34949: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
34950: { uae_s8 dst = get_byte(dsta);
34951: src |= dst;
34952: CLEAR_CZNV;
34953: SET_ZFLG (((uae_s8)(src)) == 0);
34954: SET_NFLG (((uae_s8)(src)) < 0);
34955: m68k_incpc(6);
34956: fill_prefetch_0 ();
34957: put_byte(dsta,src);
34958: }}}}return 20;
34959: }
34960: unsigned long REGPARAM2 CPUFUNC(op_39_5)(uae_u32 opcode) /* OR */
34961: {
34962: OpcodeFamily = 1; CurrentInstrCycles = 24;
34963: {{ uae_s8 src = get_ibyte_prefetch(2);
34964: { uaecptr dsta = get_ilong_prefetch(4);
34965: { uae_s8 dst = get_byte(dsta);
34966: src |= dst;
34967: CLEAR_CZNV;
34968: SET_ZFLG (((uae_s8)(src)) == 0);
34969: SET_NFLG (((uae_s8)(src)) < 0);
34970: m68k_incpc(8);
34971: fill_prefetch_0 ();
34972: put_byte(dsta,src);
34973: }}}}return 24;
34974: }
34975: unsigned long REGPARAM2 CPUFUNC(op_3c_5)(uae_u32 opcode) /* ORSR */
34976: {
34977: OpcodeFamily = 4; CurrentInstrCycles = 20;
34978: { MakeSR();
34979: { uae_s16 src = get_iword_prefetch(2);
34980: src &= 0xFF;
34981: regs.sr |= src;
34982: MakeFromSR();
34983: }}m68k_incpc(4);
34984: fill_prefetch_0 ();
34985: return 20;
34986: }
34987: unsigned long REGPARAM2 CPUFUNC(op_40_5)(uae_u32 opcode) /* OR */
34988: {
34989: uae_u32 dstreg = opcode & 7;
34990: OpcodeFamily = 1; CurrentInstrCycles = 8;
34991: {{ uae_s16 src = get_iword_prefetch(2);
34992: { uae_s16 dst = m68k_dreg(regs, dstreg);
34993: src |= dst;
34994: CLEAR_CZNV;
34995: SET_ZFLG (((uae_s16)(src)) == 0);
34996: SET_NFLG (((uae_s16)(src)) < 0);
34997: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
34998: }}}m68k_incpc(4);
34999: fill_prefetch_0 ();
35000: return 8;
35001: }
35002: unsigned long REGPARAM2 CPUFUNC(op_50_5)(uae_u32 opcode) /* OR */
35003: {
35004: uae_u32 dstreg = opcode & 7;
35005: OpcodeFamily = 1; CurrentInstrCycles = 16;
35006: {{ uae_s16 src = get_iword_prefetch(2);
35007: { uaecptr dsta = m68k_areg(regs, dstreg);
35008: if ((dsta & 1) != 0) {
35009: last_fault_for_exception_3 = dsta;
35010: last_op_for_exception_3 = opcode;
35011: last_addr_for_exception_3 = m68k_getpc() + 4;
35012: Exception(3, 0, M68000_EXC_SRC_CPU);
35013: goto endlabel2165;
35014: }
35015: {{ uae_s16 dst = get_word(dsta);
35016: src |= dst;
35017: CLEAR_CZNV;
35018: SET_ZFLG (((uae_s16)(src)) == 0);
35019: SET_NFLG (((uae_s16)(src)) < 0);
35020: m68k_incpc(4);
35021: fill_prefetch_0 ();
35022: put_word(dsta,src);
35023: }}}}}endlabel2165: ;
35024: return 16;
35025: }
35026: unsigned long REGPARAM2 CPUFUNC(op_58_5)(uae_u32 opcode) /* OR */
35027: {
35028: uae_u32 dstreg = opcode & 7;
35029: OpcodeFamily = 1; CurrentInstrCycles = 16;
35030: {{ uae_s16 src = get_iword_prefetch(2);
35031: { uaecptr dsta = m68k_areg(regs, dstreg);
35032: if ((dsta & 1) != 0) {
35033: last_fault_for_exception_3 = dsta;
35034: last_op_for_exception_3 = opcode;
35035: last_addr_for_exception_3 = m68k_getpc() + 4;
35036: Exception(3, 0, M68000_EXC_SRC_CPU);
35037: goto endlabel2166;
35038: }
35039: {{ uae_s16 dst = get_word(dsta);
35040: m68k_areg(regs, dstreg) += 2;
35041: src |= dst;
35042: CLEAR_CZNV;
35043: SET_ZFLG (((uae_s16)(src)) == 0);
35044: SET_NFLG (((uae_s16)(src)) < 0);
35045: m68k_incpc(4);
35046: fill_prefetch_0 ();
35047: put_word(dsta,src);
35048: }}}}}endlabel2166: ;
35049: return 16;
35050: }
35051: unsigned long REGPARAM2 CPUFUNC(op_60_5)(uae_u32 opcode) /* OR */
35052: {
35053: uae_u32 dstreg = opcode & 7;
35054: OpcodeFamily = 1; CurrentInstrCycles = 18;
35055: {{ uae_s16 src = get_iword_prefetch(2);
35056: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
35057: if ((dsta & 1) != 0) {
35058: last_fault_for_exception_3 = dsta;
35059: last_op_for_exception_3 = opcode;
35060: last_addr_for_exception_3 = m68k_getpc() + 4;
35061: Exception(3, 0, M68000_EXC_SRC_CPU);
35062: goto endlabel2167;
35063: }
35064: {{ uae_s16 dst = get_word(dsta);
35065: m68k_areg (regs, dstreg) = dsta;
35066: src |= dst;
35067: CLEAR_CZNV;
35068: SET_ZFLG (((uae_s16)(src)) == 0);
35069: SET_NFLG (((uae_s16)(src)) < 0);
35070: m68k_incpc(4);
35071: fill_prefetch_0 ();
35072: put_word(dsta,src);
35073: }}}}}endlabel2167: ;
35074: return 18;
35075: }
35076: unsigned long REGPARAM2 CPUFUNC(op_68_5)(uae_u32 opcode) /* OR */
35077: {
35078: uae_u32 dstreg = opcode & 7;
35079: OpcodeFamily = 1; CurrentInstrCycles = 20;
35080: {{ uae_s16 src = get_iword_prefetch(2);
35081: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
35082: if ((dsta & 1) != 0) {
35083: last_fault_for_exception_3 = dsta;
35084: last_op_for_exception_3 = opcode;
35085: last_addr_for_exception_3 = m68k_getpc() + 6;
35086: Exception(3, 0, M68000_EXC_SRC_CPU);
35087: goto endlabel2168;
35088: }
35089: {{ uae_s16 dst = get_word(dsta);
35090: src |= dst;
35091: CLEAR_CZNV;
35092: SET_ZFLG (((uae_s16)(src)) == 0);
35093: SET_NFLG (((uae_s16)(src)) < 0);
35094: m68k_incpc(6);
35095: fill_prefetch_0 ();
35096: put_word(dsta,src);
35097: }}}}}endlabel2168: ;
35098: return 20;
35099: }
35100: unsigned long REGPARAM2 CPUFUNC(op_70_5)(uae_u32 opcode) /* OR */
35101: {
35102: uae_u32 dstreg = opcode & 7;
35103: OpcodeFamily = 1; CurrentInstrCycles = 22;
35104: {{ uae_s16 src = get_iword_prefetch(2);
35105: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
35106: BusCyclePenalty += 2;
35107: if ((dsta & 1) != 0) {
35108: last_fault_for_exception_3 = dsta;
35109: last_op_for_exception_3 = opcode;
35110: last_addr_for_exception_3 = m68k_getpc() + 6;
35111: Exception(3, 0, M68000_EXC_SRC_CPU);
35112: goto endlabel2169;
35113: }
35114: {{ uae_s16 dst = get_word(dsta);
35115: src |= dst;
35116: CLEAR_CZNV;
35117: SET_ZFLG (((uae_s16)(src)) == 0);
35118: SET_NFLG (((uae_s16)(src)) < 0);
35119: m68k_incpc(6);
35120: fill_prefetch_0 ();
35121: put_word(dsta,src);
35122: }}}}}endlabel2169: ;
35123: return 22;
35124: }
35125: unsigned long REGPARAM2 CPUFUNC(op_78_5)(uae_u32 opcode) /* OR */
35126: {
35127: OpcodeFamily = 1; CurrentInstrCycles = 20;
35128: {{ uae_s16 src = get_iword_prefetch(2);
35129: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
35130: if ((dsta & 1) != 0) {
35131: last_fault_for_exception_3 = dsta;
35132: last_op_for_exception_3 = opcode;
35133: last_addr_for_exception_3 = m68k_getpc() + 6;
35134: Exception(3, 0, M68000_EXC_SRC_CPU);
35135: goto endlabel2170;
35136: }
35137: {{ uae_s16 dst = get_word(dsta);
35138: src |= dst;
35139: CLEAR_CZNV;
35140: SET_ZFLG (((uae_s16)(src)) == 0);
35141: SET_NFLG (((uae_s16)(src)) < 0);
35142: m68k_incpc(6);
35143: fill_prefetch_0 ();
35144: put_word(dsta,src);
35145: }}}}}endlabel2170: ;
35146: return 20;
35147: }
35148: unsigned long REGPARAM2 CPUFUNC(op_79_5)(uae_u32 opcode) /* OR */
35149: {
35150: OpcodeFamily = 1; CurrentInstrCycles = 24;
35151: {{ uae_s16 src = get_iword_prefetch(2);
35152: { uaecptr dsta = get_ilong_prefetch(4);
35153: if ((dsta & 1) != 0) {
35154: last_fault_for_exception_3 = dsta;
35155: last_op_for_exception_3 = opcode;
35156: last_addr_for_exception_3 = m68k_getpc() + 8;
35157: Exception(3, 0, M68000_EXC_SRC_CPU);
35158: goto endlabel2171;
35159: }
35160: {{ uae_s16 dst = get_word(dsta);
35161: src |= dst;
35162: CLEAR_CZNV;
35163: SET_ZFLG (((uae_s16)(src)) == 0);
35164: SET_NFLG (((uae_s16)(src)) < 0);
35165: m68k_incpc(8);
35166: fill_prefetch_0 ();
35167: put_word(dsta,src);
35168: }}}}}endlabel2171: ;
35169: return 24;
35170: }
35171: unsigned long REGPARAM2 CPUFUNC(op_7c_5)(uae_u32 opcode) /* ORSR */
35172: {
35173: OpcodeFamily = 4; CurrentInstrCycles = 20;
35174: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel2172; }
35175: { MakeSR();
35176: { uae_s16 src = get_iword_prefetch(2);
35177: regs.sr |= src;
35178: MakeFromSR();
35179: }}}m68k_incpc(4);
35180: fill_prefetch_0 ();
35181: endlabel2172: ;
35182: return 20;
35183: }
35184: unsigned long REGPARAM2 CPUFUNC(op_80_5)(uae_u32 opcode) /* OR */
35185: {
35186: uae_u32 dstreg = opcode & 7;
35187: OpcodeFamily = 1; CurrentInstrCycles = 16;
35188: {{ uae_s32 src = get_ilong_prefetch(2);
35189: { uae_s32 dst = m68k_dreg(regs, dstreg);
35190: src |= dst;
35191: CLEAR_CZNV;
35192: SET_ZFLG (((uae_s32)(src)) == 0);
35193: SET_NFLG (((uae_s32)(src)) < 0);
35194: m68k_dreg(regs, dstreg) = (src);
35195: }}}m68k_incpc(6);
35196: fill_prefetch_0 ();
35197: return 16;
35198: }
35199: unsigned long REGPARAM2 CPUFUNC(op_90_5)(uae_u32 opcode) /* OR */
35200: {
35201: uae_u32 dstreg = opcode & 7;
35202: OpcodeFamily = 1; CurrentInstrCycles = 28;
35203: {{ uae_s32 src = get_ilong_prefetch(2);
35204: { uaecptr dsta = m68k_areg(regs, dstreg);
35205: if ((dsta & 1) != 0) {
35206: last_fault_for_exception_3 = dsta;
35207: last_op_for_exception_3 = opcode;
35208: last_addr_for_exception_3 = m68k_getpc() + 6;
35209: Exception(3, 0, M68000_EXC_SRC_CPU);
35210: goto endlabel2174;
35211: }
35212: {{ uae_s32 dst = get_long(dsta);
35213: src |= dst;
35214: CLEAR_CZNV;
35215: SET_ZFLG (((uae_s32)(src)) == 0);
35216: SET_NFLG (((uae_s32)(src)) < 0);
35217: m68k_incpc(6);
35218: fill_prefetch_0 ();
35219: put_long(dsta,src);
35220: }}}}}endlabel2174: ;
35221: return 28;
35222: }
35223: unsigned long REGPARAM2 CPUFUNC(op_98_5)(uae_u32 opcode) /* OR */
35224: {
35225: uae_u32 dstreg = opcode & 7;
35226: OpcodeFamily = 1; CurrentInstrCycles = 28;
35227: {{ uae_s32 src = get_ilong_prefetch(2);
35228: { uaecptr dsta = m68k_areg(regs, dstreg);
35229: if ((dsta & 1) != 0) {
35230: last_fault_for_exception_3 = dsta;
35231: last_op_for_exception_3 = opcode;
35232: last_addr_for_exception_3 = m68k_getpc() + 6;
35233: Exception(3, 0, M68000_EXC_SRC_CPU);
35234: goto endlabel2175;
35235: }
35236: {{ uae_s32 dst = get_long(dsta);
35237: m68k_areg(regs, dstreg) += 4;
35238: src |= dst;
35239: CLEAR_CZNV;
35240: SET_ZFLG (((uae_s32)(src)) == 0);
35241: SET_NFLG (((uae_s32)(src)) < 0);
35242: m68k_incpc(6);
35243: fill_prefetch_0 ();
35244: put_long(dsta,src);
35245: }}}}}endlabel2175: ;
35246: return 28;
35247: }
35248: unsigned long REGPARAM2 CPUFUNC(op_a0_5)(uae_u32 opcode) /* OR */
35249: {
35250: uae_u32 dstreg = opcode & 7;
35251: OpcodeFamily = 1; CurrentInstrCycles = 30;
35252: {{ uae_s32 src = get_ilong_prefetch(2);
35253: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
35254: if ((dsta & 1) != 0) {
35255: last_fault_for_exception_3 = dsta;
35256: last_op_for_exception_3 = opcode;
35257: last_addr_for_exception_3 = m68k_getpc() + 6;
35258: Exception(3, 0, M68000_EXC_SRC_CPU);
35259: goto endlabel2176;
35260: }
35261: {{ uae_s32 dst = get_long(dsta);
35262: m68k_areg (regs, dstreg) = dsta;
35263: src |= dst;
35264: CLEAR_CZNV;
35265: SET_ZFLG (((uae_s32)(src)) == 0);
35266: SET_NFLG (((uae_s32)(src)) < 0);
35267: m68k_incpc(6);
35268: fill_prefetch_0 ();
35269: put_long(dsta,src);
35270: }}}}}endlabel2176: ;
35271: return 30;
35272: }
35273: unsigned long REGPARAM2 CPUFUNC(op_a8_5)(uae_u32 opcode) /* OR */
35274: {
35275: uae_u32 dstreg = opcode & 7;
35276: OpcodeFamily = 1; CurrentInstrCycles = 32;
35277: {{ uae_s32 src = get_ilong_prefetch(2);
35278: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(6);
35279: if ((dsta & 1) != 0) {
35280: last_fault_for_exception_3 = dsta;
35281: last_op_for_exception_3 = opcode;
35282: last_addr_for_exception_3 = m68k_getpc() + 8;
35283: Exception(3, 0, M68000_EXC_SRC_CPU);
35284: goto endlabel2177;
35285: }
35286: {{ uae_s32 dst = get_long(dsta);
35287: src |= dst;
35288: CLEAR_CZNV;
35289: SET_ZFLG (((uae_s32)(src)) == 0);
35290: SET_NFLG (((uae_s32)(src)) < 0);
35291: m68k_incpc(8);
35292: fill_prefetch_0 ();
35293: put_long(dsta,src);
35294: }}}}}endlabel2177: ;
35295: return 32;
35296: }
35297: unsigned long REGPARAM2 CPUFUNC(op_b0_5)(uae_u32 opcode) /* OR */
35298: {
35299: uae_u32 dstreg = opcode & 7;
35300: OpcodeFamily = 1; CurrentInstrCycles = 34;
35301: {{ uae_s32 src = get_ilong_prefetch(2);
35302: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(6));
35303: BusCyclePenalty += 2;
35304: if ((dsta & 1) != 0) {
35305: last_fault_for_exception_3 = dsta;
35306: last_op_for_exception_3 = opcode;
35307: last_addr_for_exception_3 = m68k_getpc() + 8;
35308: Exception(3, 0, M68000_EXC_SRC_CPU);
35309: goto endlabel2178;
35310: }
35311: {{ uae_s32 dst = get_long(dsta);
35312: src |= dst;
35313: CLEAR_CZNV;
35314: SET_ZFLG (((uae_s32)(src)) == 0);
35315: SET_NFLG (((uae_s32)(src)) < 0);
35316: m68k_incpc(8);
35317: fill_prefetch_0 ();
35318: put_long(dsta,src);
35319: }}}}}endlabel2178: ;
35320: return 34;
35321: }
35322: unsigned long REGPARAM2 CPUFUNC(op_b8_5)(uae_u32 opcode) /* OR */
35323: {
35324: OpcodeFamily = 1; CurrentInstrCycles = 32;
35325: {{ uae_s32 src = get_ilong_prefetch(2);
35326: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(6);
35327: if ((dsta & 1) != 0) {
35328: last_fault_for_exception_3 = dsta;
35329: last_op_for_exception_3 = opcode;
35330: last_addr_for_exception_3 = m68k_getpc() + 8;
35331: Exception(3, 0, M68000_EXC_SRC_CPU);
35332: goto endlabel2179;
35333: }
35334: {{ uae_s32 dst = get_long(dsta);
35335: src |= dst;
35336: CLEAR_CZNV;
35337: SET_ZFLG (((uae_s32)(src)) == 0);
35338: SET_NFLG (((uae_s32)(src)) < 0);
35339: m68k_incpc(8);
35340: fill_prefetch_0 ();
35341: put_long(dsta,src);
35342: }}}}}endlabel2179: ;
35343: return 32;
35344: }
35345: unsigned long REGPARAM2 CPUFUNC(op_b9_5)(uae_u32 opcode) /* OR */
35346: {
35347: OpcodeFamily = 1; CurrentInstrCycles = 36;
35348: {{ uae_s32 src = get_ilong_prefetch(2);
35349: { uaecptr dsta = get_ilong_prefetch(6);
35350: if ((dsta & 1) != 0) {
35351: last_fault_for_exception_3 = dsta;
35352: last_op_for_exception_3 = opcode;
35353: last_addr_for_exception_3 = m68k_getpc() + 10;
35354: Exception(3, 0, M68000_EXC_SRC_CPU);
35355: goto endlabel2180;
35356: }
35357: {{ uae_s32 dst = get_long(dsta);
35358: src |= dst;
35359: CLEAR_CZNV;
35360: SET_ZFLG (((uae_s32)(src)) == 0);
35361: SET_NFLG (((uae_s32)(src)) < 0);
35362: m68k_incpc(10);
35363: fill_prefetch_0 ();
35364: put_long(dsta,src);
35365: }}}}}endlabel2180: ;
35366: return 36;
35367: }
35368: unsigned long REGPARAM2 CPUFUNC(op_100_5)(uae_u32 opcode) /* BTST */
35369: {
35370: uae_u32 srcreg = ((opcode >> 9) & 7);
35371: uae_u32 dstreg = opcode & 7;
35372: OpcodeFamily = 21; CurrentInstrCycles = 6;
35373: {{ uae_s32 src = m68k_dreg(regs, srcreg);
35374: { uae_s32 dst = m68k_dreg(regs, dstreg);
35375: src &= 31;
35376: SET_ZFLG (1 ^ ((dst >> src) & 1));
35377: }}}m68k_incpc(2);
35378: fill_prefetch_2 ();
35379: return 6;
35380: }
35381: unsigned long REGPARAM2 CPUFUNC(op_108_5)(uae_u32 opcode) /* MVPMR */
35382: {
35383: uae_u32 srcreg = (opcode & 7);
35384: uae_u32 dstreg = (opcode >> 9) & 7;
35385: OpcodeFamily = 29; CurrentInstrCycles = 16;
35386: { uaecptr memp = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
35387: { uae_u16 val = (get_byte(memp) << 8) + get_byte(memp + 2);
35388: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
35389: }}m68k_incpc(4);
35390: fill_prefetch_0 ();
35391: return 16;
35392: }
35393: unsigned long REGPARAM2 CPUFUNC(op_110_5)(uae_u32 opcode) /* BTST */
35394: {
35395: uae_u32 srcreg = ((opcode >> 9) & 7);
35396: uae_u32 dstreg = opcode & 7;
35397: OpcodeFamily = 21; CurrentInstrCycles = 8;
35398: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35399: { uaecptr dsta = m68k_areg(regs, dstreg);
35400: { uae_s8 dst = get_byte(dsta);
35401: src &= 7;
35402: SET_ZFLG (1 ^ ((dst >> src) & 1));
35403: }}}}m68k_incpc(2);
35404: fill_prefetch_2 ();
35405: return 8;
35406: }
35407: unsigned long REGPARAM2 CPUFUNC(op_118_5)(uae_u32 opcode) /* BTST */
35408: {
35409: uae_u32 srcreg = ((opcode >> 9) & 7);
35410: uae_u32 dstreg = opcode & 7;
35411: OpcodeFamily = 21; CurrentInstrCycles = 8;
35412: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35413: { uaecptr dsta = m68k_areg(regs, dstreg);
35414: { uae_s8 dst = get_byte(dsta);
35415: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
35416: src &= 7;
35417: SET_ZFLG (1 ^ ((dst >> src) & 1));
35418: }}}}m68k_incpc(2);
35419: fill_prefetch_2 ();
35420: return 8;
35421: }
35422: unsigned long REGPARAM2 CPUFUNC(op_120_5)(uae_u32 opcode) /* BTST */
35423: {
35424: uae_u32 srcreg = ((opcode >> 9) & 7);
35425: uae_u32 dstreg = opcode & 7;
35426: OpcodeFamily = 21; CurrentInstrCycles = 10;
35427: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35428: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
35429: { uae_s8 dst = get_byte(dsta);
35430: m68k_areg (regs, dstreg) = dsta;
35431: src &= 7;
35432: SET_ZFLG (1 ^ ((dst >> src) & 1));
35433: }}}}m68k_incpc(2);
35434: fill_prefetch_2 ();
35435: return 10;
35436: }
35437: unsigned long REGPARAM2 CPUFUNC(op_128_5)(uae_u32 opcode) /* BTST */
35438: {
35439: uae_u32 srcreg = ((opcode >> 9) & 7);
35440: uae_u32 dstreg = opcode & 7;
35441: OpcodeFamily = 21; CurrentInstrCycles = 12;
35442: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35443: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
35444: { uae_s8 dst = get_byte(dsta);
35445: src &= 7;
35446: SET_ZFLG (1 ^ ((dst >> src) & 1));
35447: }}}}m68k_incpc(4);
35448: fill_prefetch_0 ();
35449: return 12;
35450: }
35451: unsigned long REGPARAM2 CPUFUNC(op_130_5)(uae_u32 opcode) /* BTST */
35452: {
35453: uae_u32 srcreg = ((opcode >> 9) & 7);
35454: uae_u32 dstreg = opcode & 7;
35455: OpcodeFamily = 21; CurrentInstrCycles = 14;
35456: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35457: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
35458: BusCyclePenalty += 2;
35459: { uae_s8 dst = get_byte(dsta);
35460: src &= 7;
35461: SET_ZFLG (1 ^ ((dst >> src) & 1));
35462: }}}}m68k_incpc(4);
35463: fill_prefetch_0 ();
35464: return 14;
35465: }
35466: unsigned long REGPARAM2 CPUFUNC(op_138_5)(uae_u32 opcode) /* BTST */
35467: {
35468: uae_u32 srcreg = ((opcode >> 9) & 7);
35469: OpcodeFamily = 21; CurrentInstrCycles = 12;
35470: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35471: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
35472: { uae_s8 dst = get_byte(dsta);
35473: src &= 7;
35474: SET_ZFLG (1 ^ ((dst >> src) & 1));
35475: }}}}m68k_incpc(4);
35476: fill_prefetch_0 ();
35477: return 12;
35478: }
35479: unsigned long REGPARAM2 CPUFUNC(op_139_5)(uae_u32 opcode) /* BTST */
35480: {
35481: uae_u32 srcreg = ((opcode >> 9) & 7);
35482: OpcodeFamily = 21; CurrentInstrCycles = 16;
35483: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35484: { uaecptr dsta = get_ilong_prefetch(2);
35485: { uae_s8 dst = get_byte(dsta);
35486: src &= 7;
35487: SET_ZFLG (1 ^ ((dst >> src) & 1));
35488: }}}}m68k_incpc(6);
35489: fill_prefetch_0 ();
35490: return 16;
35491: }
35492: unsigned long REGPARAM2 CPUFUNC(op_13a_5)(uae_u32 opcode) /* BTST */
35493: {
35494: uae_u32 srcreg = ((opcode >> 9) & 7);
35495: uae_u32 dstreg = 2;
35496: OpcodeFamily = 21; CurrentInstrCycles = 12;
35497: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35498: { uaecptr dsta = m68k_getpc () + 2;
35499: dsta += (uae_s32)(uae_s16)get_iword_prefetch(2);
35500: { uae_s8 dst = get_byte(dsta);
35501: src &= 7;
35502: SET_ZFLG (1 ^ ((dst >> src) & 1));
35503: }}}}m68k_incpc(4);
35504: fill_prefetch_0 ();
35505: return 12;
35506: }
35507: unsigned long REGPARAM2 CPUFUNC(op_13b_5)(uae_u32 opcode) /* BTST */
35508: {
35509: uae_u32 srcreg = ((opcode >> 9) & 7);
35510: uae_u32 dstreg = 3;
35511: OpcodeFamily = 21; CurrentInstrCycles = 14;
35512: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35513: { uaecptr tmppc = m68k_getpc() + 2;
35514: uaecptr dsta = get_disp_ea_000(tmppc, get_iword_prefetch(2));
35515: BusCyclePenalty += 2;
35516: { uae_s8 dst = get_byte(dsta);
35517: src &= 7;
35518: SET_ZFLG (1 ^ ((dst >> src) & 1));
35519: }}}}m68k_incpc(4);
35520: fill_prefetch_0 ();
35521: return 14;
35522: }
35523: unsigned long REGPARAM2 CPUFUNC(op_13c_5)(uae_u32 opcode) /* BTST */
35524: {
35525: uae_u32 srcreg = ((opcode >> 9) & 7);
35526: OpcodeFamily = 21; CurrentInstrCycles = 8;
35527: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35528: { uae_s8 dst = get_ibyte_prefetch(2);
35529: src &= 7;
35530: SET_ZFLG (1 ^ ((dst >> src) & 1));
35531: }}}m68k_incpc(4);
35532: fill_prefetch_0 ();
35533: return 8;
35534: }
35535: unsigned long REGPARAM2 CPUFUNC(op_140_5)(uae_u32 opcode) /* BCHG */
35536: {
35537: uae_u32 srcreg = ((opcode >> 9) & 7);
35538: uae_u32 dstreg = opcode & 7;
35539: OpcodeFamily = 22; CurrentInstrCycles = 8;
35540: {{ uae_s32 src = m68k_dreg(regs, srcreg);
35541: { uae_s32 dst = m68k_dreg(regs, dstreg);
35542: src &= 31;
35543: dst ^= (1 << src);
35544: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
35545: m68k_dreg(regs, dstreg) = (dst);
35546: }}}m68k_incpc(2);
35547: fill_prefetch_2 ();
35548: return 8;
35549: }
35550: unsigned long REGPARAM2 CPUFUNC(op_148_5)(uae_u32 opcode) /* MVPMR */
35551: {
35552: uae_u32 srcreg = (opcode & 7);
35553: uae_u32 dstreg = (opcode >> 9) & 7;
35554: OpcodeFamily = 29; CurrentInstrCycles = 24;
35555: { uaecptr memp = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
35556: { uae_u32 val = (get_byte(memp) << 24) + (get_byte(memp + 2) << 16)
35557: + (get_byte(memp + 4) << 8) + get_byte(memp + 6);
35558: m68k_dreg(regs, dstreg) = (val);
35559: }}m68k_incpc(4);
35560: fill_prefetch_0 ();
35561: return 24;
35562: }
35563: unsigned long REGPARAM2 CPUFUNC(op_150_5)(uae_u32 opcode) /* BCHG */
35564: {
35565: uae_u32 srcreg = ((opcode >> 9) & 7);
35566: uae_u32 dstreg = opcode & 7;
35567: OpcodeFamily = 22; CurrentInstrCycles = 12;
35568: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35569: { uaecptr dsta = m68k_areg(regs, dstreg);
35570: { uae_s8 dst = get_byte(dsta);
35571: src &= 7;
35572: dst ^= (1 << src);
35573: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
35574: m68k_incpc(2);
35575: fill_prefetch_2 ();
35576: put_byte(dsta,dst);
35577: }}}}return 12;
35578: }
35579: unsigned long REGPARAM2 CPUFUNC(op_158_5)(uae_u32 opcode) /* BCHG */
35580: {
35581: uae_u32 srcreg = ((opcode >> 9) & 7);
35582: uae_u32 dstreg = opcode & 7;
35583: OpcodeFamily = 22; CurrentInstrCycles = 12;
35584: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35585: { uaecptr dsta = m68k_areg(regs, dstreg);
35586: { uae_s8 dst = get_byte(dsta);
35587: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
35588: src &= 7;
35589: dst ^= (1 << src);
35590: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
35591: m68k_incpc(2);
35592: fill_prefetch_2 ();
35593: put_byte(dsta,dst);
35594: }}}}return 12;
35595: }
35596: unsigned long REGPARAM2 CPUFUNC(op_160_5)(uae_u32 opcode) /* BCHG */
35597: {
35598: uae_u32 srcreg = ((opcode >> 9) & 7);
35599: uae_u32 dstreg = opcode & 7;
35600: OpcodeFamily = 22; CurrentInstrCycles = 14;
35601: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35602: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
35603: { uae_s8 dst = get_byte(dsta);
35604: m68k_areg (regs, dstreg) = dsta;
35605: src &= 7;
35606: dst ^= (1 << src);
35607: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
35608: m68k_incpc(2);
35609: fill_prefetch_2 ();
35610: put_byte(dsta,dst);
35611: }}}}return 14;
35612: }
35613: unsigned long REGPARAM2 CPUFUNC(op_168_5)(uae_u32 opcode) /* BCHG */
35614: {
35615: uae_u32 srcreg = ((opcode >> 9) & 7);
35616: uae_u32 dstreg = opcode & 7;
35617: OpcodeFamily = 22; CurrentInstrCycles = 16;
35618: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35619: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
35620: { uae_s8 dst = get_byte(dsta);
35621: src &= 7;
35622: dst ^= (1 << src);
35623: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
35624: m68k_incpc(4);
35625: fill_prefetch_0 ();
35626: put_byte(dsta,dst);
35627: }}}}return 16;
35628: }
35629: unsigned long REGPARAM2 CPUFUNC(op_170_5)(uae_u32 opcode) /* BCHG */
35630: {
35631: uae_u32 srcreg = ((opcode >> 9) & 7);
35632: uae_u32 dstreg = opcode & 7;
35633: OpcodeFamily = 22; CurrentInstrCycles = 18;
35634: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35635: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
35636: BusCyclePenalty += 2;
35637: { uae_s8 dst = get_byte(dsta);
35638: src &= 7;
35639: dst ^= (1 << src);
35640: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
35641: m68k_incpc(4);
35642: fill_prefetch_0 ();
35643: put_byte(dsta,dst);
35644: }}}}return 18;
35645: }
35646: unsigned long REGPARAM2 CPUFUNC(op_178_5)(uae_u32 opcode) /* BCHG */
35647: {
35648: uae_u32 srcreg = ((opcode >> 9) & 7);
35649: OpcodeFamily = 22; CurrentInstrCycles = 16;
35650: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35651: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
35652: { uae_s8 dst = get_byte(dsta);
35653: src &= 7;
35654: dst ^= (1 << src);
35655: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
35656: m68k_incpc(4);
35657: fill_prefetch_0 ();
35658: put_byte(dsta,dst);
35659: }}}}return 16;
35660: }
35661: unsigned long REGPARAM2 CPUFUNC(op_179_5)(uae_u32 opcode) /* BCHG */
35662: {
35663: uae_u32 srcreg = ((opcode >> 9) & 7);
35664: OpcodeFamily = 22; CurrentInstrCycles = 20;
35665: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35666: { uaecptr dsta = get_ilong_prefetch(2);
35667: { uae_s8 dst = get_byte(dsta);
35668: src &= 7;
35669: dst ^= (1 << src);
35670: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
35671: m68k_incpc(6);
35672: fill_prefetch_0 ();
35673: put_byte(dsta,dst);
35674: }}}}return 20;
35675: }
35676: unsigned long REGPARAM2 CPUFUNC(op_17a_5)(uae_u32 opcode) /* BCHG */
35677: {
35678: uae_u32 srcreg = ((opcode >> 9) & 7);
35679: uae_u32 dstreg = 2;
35680: OpcodeFamily = 22; CurrentInstrCycles = 16;
35681: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35682: { uaecptr dsta = m68k_getpc () + 2;
35683: dsta += (uae_s32)(uae_s16)get_iword_prefetch(2);
35684: { uae_s8 dst = get_byte(dsta);
35685: src &= 7;
35686: dst ^= (1 << src);
35687: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
35688: m68k_incpc(4);
35689: fill_prefetch_0 ();
35690: put_byte(dsta,dst);
35691: }}}}return 16;
35692: }
35693: unsigned long REGPARAM2 CPUFUNC(op_17b_5)(uae_u32 opcode) /* BCHG */
35694: {
35695: uae_u32 srcreg = ((opcode >> 9) & 7);
35696: uae_u32 dstreg = 3;
35697: OpcodeFamily = 22; CurrentInstrCycles = 18;
35698: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35699: { uaecptr tmppc = m68k_getpc() + 2;
35700: uaecptr dsta = get_disp_ea_000(tmppc, get_iword_prefetch(2));
35701: BusCyclePenalty += 2;
35702: { uae_s8 dst = get_byte(dsta);
35703: src &= 7;
35704: dst ^= (1 << src);
35705: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
35706: m68k_incpc(4);
35707: fill_prefetch_0 ();
35708: put_byte(dsta,dst);
35709: }}}}return 18;
35710: }
35711: unsigned long REGPARAM2 CPUFUNC(op_180_5)(uae_u32 opcode) /* BCLR */
35712: {
35713: uae_u32 srcreg = ((opcode >> 9) & 7);
35714: uae_u32 dstreg = opcode & 7;
35715: OpcodeFamily = 23; CurrentInstrCycles = 10;
35716: {{ uae_s32 src = m68k_dreg(regs, srcreg);
35717: { uae_s32 dst = m68k_dreg(regs, dstreg);
35718: src &= 31;
35719: SET_ZFLG (1 ^ ((dst >> src) & 1));
35720: dst &= ~(1 << src);
35721: m68k_dreg(regs, dstreg) = (dst);
35722: if ( src < 16 ) { m68k_incpc(2); return 8; }
35723: }}}m68k_incpc(2);
35724: fill_prefetch_2 ();
35725: return 10;
35726: }
35727: unsigned long REGPARAM2 CPUFUNC(op_188_5)(uae_u32 opcode) /* MVPRM */
35728: {
35729: uae_u32 srcreg = ((opcode >> 9) & 7);
35730: uae_u32 dstreg = opcode & 7;
35731: OpcodeFamily = 28; CurrentInstrCycles = 16;
35732: {{ uae_s16 src = m68k_dreg(regs, srcreg);
35733: uaecptr memp = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
35734: put_byte(memp, src >> 8); put_byte(memp + 2, src);
35735: }}m68k_incpc(4);
35736: fill_prefetch_0 ();
35737: return 16;
35738: }
35739: unsigned long REGPARAM2 CPUFUNC(op_190_5)(uae_u32 opcode) /* BCLR */
35740: {
35741: uae_u32 srcreg = ((opcode >> 9) & 7);
35742: uae_u32 dstreg = opcode & 7;
35743: OpcodeFamily = 23; CurrentInstrCycles = 12;
35744: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35745: { uaecptr dsta = m68k_areg(regs, dstreg);
35746: { uae_s8 dst = get_byte(dsta);
35747: src &= 7;
35748: SET_ZFLG (1 ^ ((dst >> src) & 1));
35749: dst &= ~(1 << src);
35750: m68k_incpc(2);
35751: fill_prefetch_2 ();
35752: put_byte(dsta,dst);
35753: }}}}return 12;
35754: }
35755: unsigned long REGPARAM2 CPUFUNC(op_198_5)(uae_u32 opcode) /* BCLR */
35756: {
35757: uae_u32 srcreg = ((opcode >> 9) & 7);
35758: uae_u32 dstreg = opcode & 7;
35759: OpcodeFamily = 23; CurrentInstrCycles = 12;
35760: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35761: { uaecptr dsta = m68k_areg(regs, dstreg);
35762: { uae_s8 dst = get_byte(dsta);
35763: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
35764: src &= 7;
35765: SET_ZFLG (1 ^ ((dst >> src) & 1));
35766: dst &= ~(1 << src);
35767: m68k_incpc(2);
35768: fill_prefetch_2 ();
35769: put_byte(dsta,dst);
35770: }}}}return 12;
35771: }
35772: unsigned long REGPARAM2 CPUFUNC(op_1a0_5)(uae_u32 opcode) /* BCLR */
35773: {
35774: uae_u32 srcreg = ((opcode >> 9) & 7);
35775: uae_u32 dstreg = opcode & 7;
35776: OpcodeFamily = 23; CurrentInstrCycles = 14;
35777: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35778: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
35779: { uae_s8 dst = get_byte(dsta);
35780: m68k_areg (regs, dstreg) = dsta;
35781: src &= 7;
35782: SET_ZFLG (1 ^ ((dst >> src) & 1));
35783: dst &= ~(1 << src);
35784: m68k_incpc(2);
35785: fill_prefetch_2 ();
35786: put_byte(dsta,dst);
35787: }}}}return 14;
35788: }
35789: unsigned long REGPARAM2 CPUFUNC(op_1a8_5)(uae_u32 opcode) /* BCLR */
35790: {
35791: uae_u32 srcreg = ((opcode >> 9) & 7);
35792: uae_u32 dstreg = opcode & 7;
35793: OpcodeFamily = 23; CurrentInstrCycles = 16;
35794: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35795: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
35796: { uae_s8 dst = get_byte(dsta);
35797: src &= 7;
35798: SET_ZFLG (1 ^ ((dst >> src) & 1));
35799: dst &= ~(1 << src);
35800: m68k_incpc(4);
35801: fill_prefetch_0 ();
35802: put_byte(dsta,dst);
35803: }}}}return 16;
35804: }
35805: unsigned long REGPARAM2 CPUFUNC(op_1b0_5)(uae_u32 opcode) /* BCLR */
35806: {
35807: uae_u32 srcreg = ((opcode >> 9) & 7);
35808: uae_u32 dstreg = opcode & 7;
35809: OpcodeFamily = 23; CurrentInstrCycles = 18;
35810: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35811: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
35812: BusCyclePenalty += 2;
35813: { uae_s8 dst = get_byte(dsta);
35814: src &= 7;
35815: SET_ZFLG (1 ^ ((dst >> src) & 1));
35816: dst &= ~(1 << src);
35817: m68k_incpc(4);
35818: fill_prefetch_0 ();
35819: put_byte(dsta,dst);
35820: }}}}return 18;
35821: }
35822: unsigned long REGPARAM2 CPUFUNC(op_1b8_5)(uae_u32 opcode) /* BCLR */
35823: {
35824: uae_u32 srcreg = ((opcode >> 9) & 7);
35825: OpcodeFamily = 23; CurrentInstrCycles = 16;
35826: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35827: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
35828: { uae_s8 dst = get_byte(dsta);
35829: src &= 7;
35830: SET_ZFLG (1 ^ ((dst >> src) & 1));
35831: dst &= ~(1 << src);
35832: m68k_incpc(4);
35833: fill_prefetch_0 ();
35834: put_byte(dsta,dst);
35835: }}}}return 16;
35836: }
35837: unsigned long REGPARAM2 CPUFUNC(op_1b9_5)(uae_u32 opcode) /* BCLR */
35838: {
35839: uae_u32 srcreg = ((opcode >> 9) & 7);
35840: OpcodeFamily = 23; CurrentInstrCycles = 20;
35841: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35842: { uaecptr dsta = get_ilong_prefetch(2);
35843: { uae_s8 dst = get_byte(dsta);
35844: src &= 7;
35845: SET_ZFLG (1 ^ ((dst >> src) & 1));
35846: dst &= ~(1 << src);
35847: m68k_incpc(6);
35848: fill_prefetch_0 ();
35849: put_byte(dsta,dst);
35850: }}}}return 20;
35851: }
35852: unsigned long REGPARAM2 CPUFUNC(op_1ba_5)(uae_u32 opcode) /* BCLR */
35853: {
35854: uae_u32 srcreg = ((opcode >> 9) & 7);
35855: uae_u32 dstreg = 2;
35856: OpcodeFamily = 23; CurrentInstrCycles = 16;
35857: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35858: { uaecptr dsta = m68k_getpc () + 2;
35859: dsta += (uae_s32)(uae_s16)get_iword_prefetch(2);
35860: { uae_s8 dst = get_byte(dsta);
35861: src &= 7;
35862: SET_ZFLG (1 ^ ((dst >> src) & 1));
35863: dst &= ~(1 << src);
35864: m68k_incpc(4);
35865: fill_prefetch_0 ();
35866: put_byte(dsta,dst);
35867: }}}}return 16;
35868: }
35869: unsigned long REGPARAM2 CPUFUNC(op_1bb_5)(uae_u32 opcode) /* BCLR */
35870: {
35871: uae_u32 srcreg = ((opcode >> 9) & 7);
35872: uae_u32 dstreg = 3;
35873: OpcodeFamily = 23; CurrentInstrCycles = 18;
35874: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35875: { uaecptr tmppc = m68k_getpc() + 2;
35876: uaecptr dsta = get_disp_ea_000(tmppc, get_iword_prefetch(2));
35877: BusCyclePenalty += 2;
35878: { uae_s8 dst = get_byte(dsta);
35879: src &= 7;
35880: SET_ZFLG (1 ^ ((dst >> src) & 1));
35881: dst &= ~(1 << src);
35882: m68k_incpc(4);
35883: fill_prefetch_0 ();
35884: put_byte(dsta,dst);
35885: }}}}return 18;
35886: }
35887: unsigned long REGPARAM2 CPUFUNC(op_1c0_5)(uae_u32 opcode) /* BSET */
35888: {
35889: uae_u32 srcreg = ((opcode >> 9) & 7);
35890: uae_u32 dstreg = opcode & 7;
35891: OpcodeFamily = 24; CurrentInstrCycles = 8;
35892: {{ uae_s32 src = m68k_dreg(regs, srcreg);
35893: { uae_s32 dst = m68k_dreg(regs, dstreg);
35894: src &= 31;
35895: SET_ZFLG (1 ^ ((dst >> src) & 1));
35896: dst |= (1 << src);
35897: m68k_dreg(regs, dstreg) = (dst);
35898: }}}m68k_incpc(2);
35899: fill_prefetch_2 ();
35900: return 8;
35901: }
35902: unsigned long REGPARAM2 CPUFUNC(op_1c8_5)(uae_u32 opcode) /* MVPRM */
35903: {
35904: uae_u32 srcreg = ((opcode >> 9) & 7);
35905: uae_u32 dstreg = opcode & 7;
35906: OpcodeFamily = 28; CurrentInstrCycles = 24;
35907: {{ uae_s32 src = m68k_dreg(regs, srcreg);
35908: uaecptr memp = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
35909: put_byte(memp, src >> 24); put_byte(memp + 2, src >> 16);
35910: put_byte(memp + 4, src >> 8); put_byte(memp + 6, src);
35911: }}m68k_incpc(4);
35912: fill_prefetch_0 ();
35913: return 24;
35914: }
35915: unsigned long REGPARAM2 CPUFUNC(op_1d0_5)(uae_u32 opcode) /* BSET */
35916: {
35917: uae_u32 srcreg = ((opcode >> 9) & 7);
35918: uae_u32 dstreg = opcode & 7;
35919: OpcodeFamily = 24; CurrentInstrCycles = 12;
35920: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35921: { uaecptr dsta = m68k_areg(regs, dstreg);
35922: { uae_s8 dst = get_byte(dsta);
35923: src &= 7;
35924: SET_ZFLG (1 ^ ((dst >> src) & 1));
35925: dst |= (1 << src);
35926: m68k_incpc(2);
35927: fill_prefetch_2 ();
35928: put_byte(dsta,dst);
35929: }}}}return 12;
35930: }
35931: unsigned long REGPARAM2 CPUFUNC(op_1d8_5)(uae_u32 opcode) /* BSET */
35932: {
35933: uae_u32 srcreg = ((opcode >> 9) & 7);
35934: uae_u32 dstreg = opcode & 7;
35935: OpcodeFamily = 24; CurrentInstrCycles = 12;
35936: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35937: { uaecptr dsta = m68k_areg(regs, dstreg);
35938: { uae_s8 dst = get_byte(dsta);
35939: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
35940: src &= 7;
35941: SET_ZFLG (1 ^ ((dst >> src) & 1));
35942: dst |= (1 << src);
35943: m68k_incpc(2);
35944: fill_prefetch_2 ();
35945: put_byte(dsta,dst);
35946: }}}}return 12;
35947: }
35948: unsigned long REGPARAM2 CPUFUNC(op_1e0_5)(uae_u32 opcode) /* BSET */
35949: {
35950: uae_u32 srcreg = ((opcode >> 9) & 7);
35951: uae_u32 dstreg = opcode & 7;
35952: OpcodeFamily = 24; CurrentInstrCycles = 14;
35953: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35954: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
35955: { uae_s8 dst = get_byte(dsta);
35956: m68k_areg (regs, dstreg) = dsta;
35957: src &= 7;
35958: SET_ZFLG (1 ^ ((dst >> src) & 1));
35959: dst |= (1 << src);
35960: m68k_incpc(2);
35961: fill_prefetch_2 ();
35962: put_byte(dsta,dst);
35963: }}}}return 14;
35964: }
35965: unsigned long REGPARAM2 CPUFUNC(op_1e8_5)(uae_u32 opcode) /* BSET */
35966: {
35967: uae_u32 srcreg = ((opcode >> 9) & 7);
35968: uae_u32 dstreg = opcode & 7;
35969: OpcodeFamily = 24; CurrentInstrCycles = 16;
35970: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35971: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
35972: { uae_s8 dst = get_byte(dsta);
35973: src &= 7;
35974: SET_ZFLG (1 ^ ((dst >> src) & 1));
35975: dst |= (1 << src);
35976: m68k_incpc(4);
35977: fill_prefetch_0 ();
35978: put_byte(dsta,dst);
35979: }}}}return 16;
35980: }
35981: unsigned long REGPARAM2 CPUFUNC(op_1f0_5)(uae_u32 opcode) /* BSET */
35982: {
35983: uae_u32 srcreg = ((opcode >> 9) & 7);
35984: uae_u32 dstreg = opcode & 7;
35985: OpcodeFamily = 24; CurrentInstrCycles = 18;
35986: {{ uae_s8 src = m68k_dreg(regs, srcreg);
35987: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
35988: BusCyclePenalty += 2;
35989: { uae_s8 dst = get_byte(dsta);
35990: src &= 7;
35991: SET_ZFLG (1 ^ ((dst >> src) & 1));
35992: dst |= (1 << src);
35993: m68k_incpc(4);
35994: fill_prefetch_0 ();
35995: put_byte(dsta,dst);
35996: }}}}return 18;
35997: }
35998: unsigned long REGPARAM2 CPUFUNC(op_1f8_5)(uae_u32 opcode) /* BSET */
35999: {
36000: uae_u32 srcreg = ((opcode >> 9) & 7);
36001: OpcodeFamily = 24; CurrentInstrCycles = 16;
36002: {{ uae_s8 src = m68k_dreg(regs, srcreg);
36003: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
36004: { uae_s8 dst = get_byte(dsta);
36005: src &= 7;
36006: SET_ZFLG (1 ^ ((dst >> src) & 1));
36007: dst |= (1 << src);
36008: m68k_incpc(4);
36009: fill_prefetch_0 ();
36010: put_byte(dsta,dst);
36011: }}}}return 16;
36012: }
36013: unsigned long REGPARAM2 CPUFUNC(op_1f9_5)(uae_u32 opcode) /* BSET */
36014: {
36015: uae_u32 srcreg = ((opcode >> 9) & 7);
36016: OpcodeFamily = 24; CurrentInstrCycles = 20;
36017: {{ uae_s8 src = m68k_dreg(regs, srcreg);
36018: { uaecptr dsta = get_ilong_prefetch(2);
36019: { uae_s8 dst = get_byte(dsta);
36020: src &= 7;
36021: SET_ZFLG (1 ^ ((dst >> src) & 1));
36022: dst |= (1 << src);
36023: m68k_incpc(6);
36024: fill_prefetch_0 ();
36025: put_byte(dsta,dst);
36026: }}}}return 20;
36027: }
36028: unsigned long REGPARAM2 CPUFUNC(op_1fa_5)(uae_u32 opcode) /* BSET */
36029: {
36030: uae_u32 srcreg = ((opcode >> 9) & 7);
36031: uae_u32 dstreg = 2;
36032: OpcodeFamily = 24; CurrentInstrCycles = 16;
36033: {{ uae_s8 src = m68k_dreg(regs, srcreg);
36034: { uaecptr dsta = m68k_getpc () + 2;
36035: dsta += (uae_s32)(uae_s16)get_iword_prefetch(2);
36036: { uae_s8 dst = get_byte(dsta);
36037: src &= 7;
36038: SET_ZFLG (1 ^ ((dst >> src) & 1));
36039: dst |= (1 << src);
36040: m68k_incpc(4);
36041: fill_prefetch_0 ();
36042: put_byte(dsta,dst);
36043: }}}}return 16;
36044: }
36045: unsigned long REGPARAM2 CPUFUNC(op_1fb_5)(uae_u32 opcode) /* BSET */
36046: {
36047: uae_u32 srcreg = ((opcode >> 9) & 7);
36048: uae_u32 dstreg = 3;
36049: OpcodeFamily = 24; CurrentInstrCycles = 18;
36050: {{ uae_s8 src = m68k_dreg(regs, srcreg);
36051: { uaecptr tmppc = m68k_getpc() + 2;
36052: uaecptr dsta = get_disp_ea_000(tmppc, get_iword_prefetch(2));
36053: BusCyclePenalty += 2;
36054: { uae_s8 dst = get_byte(dsta);
36055: src &= 7;
36056: SET_ZFLG (1 ^ ((dst >> src) & 1));
36057: dst |= (1 << src);
36058: m68k_incpc(4);
36059: fill_prefetch_0 ();
36060: put_byte(dsta,dst);
36061: }}}}return 18;
36062: }
36063: unsigned long REGPARAM2 CPUFUNC(op_200_5)(uae_u32 opcode) /* AND */
36064: {
36065: uae_u32 dstreg = opcode & 7;
36066: OpcodeFamily = 2; CurrentInstrCycles = 8;
36067: {{ uae_s8 src = get_ibyte_prefetch(2);
36068: { uae_s8 dst = m68k_dreg(regs, dstreg);
36069: src &= dst;
36070: CLEAR_CZNV;
36071: SET_ZFLG (((uae_s8)(src)) == 0);
36072: SET_NFLG (((uae_s8)(src)) < 0);
36073: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
36074: }}}m68k_incpc(4);
36075: fill_prefetch_0 ();
36076: return 8;
36077: }
36078: unsigned long REGPARAM2 CPUFUNC(op_210_5)(uae_u32 opcode) /* AND */
36079: {
36080: uae_u32 dstreg = opcode & 7;
36081: OpcodeFamily = 2; CurrentInstrCycles = 16;
36082: {{ uae_s8 src = get_ibyte_prefetch(2);
36083: { uaecptr dsta = m68k_areg(regs, dstreg);
36084: { uae_s8 dst = get_byte(dsta);
36085: src &= dst;
36086: CLEAR_CZNV;
36087: SET_ZFLG (((uae_s8)(src)) == 0);
36088: SET_NFLG (((uae_s8)(src)) < 0);
36089: m68k_incpc(4);
36090: fill_prefetch_0 ();
36091: put_byte(dsta,src);
36092: }}}}return 16;
36093: }
36094: unsigned long REGPARAM2 CPUFUNC(op_218_5)(uae_u32 opcode) /* AND */
36095: {
36096: uae_u32 dstreg = opcode & 7;
36097: OpcodeFamily = 2; CurrentInstrCycles = 16;
36098: {{ uae_s8 src = get_ibyte_prefetch(2);
36099: { uaecptr dsta = m68k_areg(regs, dstreg);
36100: { uae_s8 dst = get_byte(dsta);
36101: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
36102: src &= dst;
36103: CLEAR_CZNV;
36104: SET_ZFLG (((uae_s8)(src)) == 0);
36105: SET_NFLG (((uae_s8)(src)) < 0);
36106: m68k_incpc(4);
36107: fill_prefetch_0 ();
36108: put_byte(dsta,src);
36109: }}}}return 16;
36110: }
36111: unsigned long REGPARAM2 CPUFUNC(op_220_5)(uae_u32 opcode) /* AND */
36112: {
36113: uae_u32 dstreg = opcode & 7;
36114: OpcodeFamily = 2; CurrentInstrCycles = 18;
36115: {{ uae_s8 src = get_ibyte_prefetch(2);
36116: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
36117: { uae_s8 dst = get_byte(dsta);
36118: m68k_areg (regs, dstreg) = dsta;
36119: src &= dst;
36120: CLEAR_CZNV;
36121: SET_ZFLG (((uae_s8)(src)) == 0);
36122: SET_NFLG (((uae_s8)(src)) < 0);
36123: m68k_incpc(4);
36124: fill_prefetch_0 ();
36125: put_byte(dsta,src);
36126: }}}}return 18;
36127: }
36128: unsigned long REGPARAM2 CPUFUNC(op_228_5)(uae_u32 opcode) /* AND */
36129: {
36130: uae_u32 dstreg = opcode & 7;
36131: OpcodeFamily = 2; CurrentInstrCycles = 20;
36132: {{ uae_s8 src = get_ibyte_prefetch(2);
36133: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
36134: { uae_s8 dst = get_byte(dsta);
36135: src &= dst;
36136: CLEAR_CZNV;
36137: SET_ZFLG (((uae_s8)(src)) == 0);
36138: SET_NFLG (((uae_s8)(src)) < 0);
36139: m68k_incpc(6);
36140: fill_prefetch_0 ();
36141: put_byte(dsta,src);
36142: }}}}return 20;
36143: }
36144: unsigned long REGPARAM2 CPUFUNC(op_230_5)(uae_u32 opcode) /* AND */
36145: {
36146: uae_u32 dstreg = opcode & 7;
36147: OpcodeFamily = 2; CurrentInstrCycles = 22;
36148: {{ uae_s8 src = get_ibyte_prefetch(2);
36149: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
36150: BusCyclePenalty += 2;
36151: { uae_s8 dst = get_byte(dsta);
36152: src &= dst;
36153: CLEAR_CZNV;
36154: SET_ZFLG (((uae_s8)(src)) == 0);
36155: SET_NFLG (((uae_s8)(src)) < 0);
36156: m68k_incpc(6);
36157: fill_prefetch_0 ();
36158: put_byte(dsta,src);
36159: }}}}return 22;
36160: }
36161: unsigned long REGPARAM2 CPUFUNC(op_238_5)(uae_u32 opcode) /* AND */
36162: {
36163: OpcodeFamily = 2; CurrentInstrCycles = 20;
36164: {{ uae_s8 src = get_ibyte_prefetch(2);
36165: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
36166: { uae_s8 dst = get_byte(dsta);
36167: src &= dst;
36168: CLEAR_CZNV;
36169: SET_ZFLG (((uae_s8)(src)) == 0);
36170: SET_NFLG (((uae_s8)(src)) < 0);
36171: m68k_incpc(6);
36172: fill_prefetch_0 ();
36173: put_byte(dsta,src);
36174: }}}}return 20;
36175: }
36176: unsigned long REGPARAM2 CPUFUNC(op_239_5)(uae_u32 opcode) /* AND */
36177: {
36178: OpcodeFamily = 2; CurrentInstrCycles = 24;
36179: {{ uae_s8 src = get_ibyte_prefetch(2);
36180: { uaecptr dsta = get_ilong_prefetch(4);
36181: { uae_s8 dst = get_byte(dsta);
36182: src &= dst;
36183: CLEAR_CZNV;
36184: SET_ZFLG (((uae_s8)(src)) == 0);
36185: SET_NFLG (((uae_s8)(src)) < 0);
36186: m68k_incpc(8);
36187: fill_prefetch_0 ();
36188: put_byte(dsta,src);
36189: }}}}return 24;
36190: }
36191: unsigned long REGPARAM2 CPUFUNC(op_23c_5)(uae_u32 opcode) /* ANDSR */
36192: {
36193: OpcodeFamily = 5; CurrentInstrCycles = 20;
36194: { MakeSR();
36195: { uae_s16 src = get_iword_prefetch(2);
36196: src |= 0xFF00;
36197: regs.sr &= src;
36198: MakeFromSR();
36199: }}m68k_incpc(4);
36200: fill_prefetch_0 ();
36201: return 20;
36202: }
36203: unsigned long REGPARAM2 CPUFUNC(op_240_5)(uae_u32 opcode) /* AND */
36204: {
36205: uae_u32 dstreg = opcode & 7;
36206: OpcodeFamily = 2; CurrentInstrCycles = 8;
36207: {{ uae_s16 src = get_iword_prefetch(2);
36208: { uae_s16 dst = m68k_dreg(regs, dstreg);
36209: src &= dst;
36210: CLEAR_CZNV;
36211: SET_ZFLG (((uae_s16)(src)) == 0);
36212: SET_NFLG (((uae_s16)(src)) < 0);
36213: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
36214: }}}m68k_incpc(4);
36215: fill_prefetch_0 ();
36216: return 8;
36217: }
36218: unsigned long REGPARAM2 CPUFUNC(op_250_5)(uae_u32 opcode) /* AND */
36219: {
36220: uae_u32 dstreg = opcode & 7;
36221: OpcodeFamily = 2; CurrentInstrCycles = 16;
36222: {{ uae_s16 src = get_iword_prefetch(2);
36223: { uaecptr dsta = m68k_areg(regs, dstreg);
36224: if ((dsta & 1) != 0) {
36225: last_fault_for_exception_3 = dsta;
36226: last_op_for_exception_3 = opcode;
36227: last_addr_for_exception_3 = m68k_getpc() + 4;
36228: Exception(3, 0, M68000_EXC_SRC_CPU);
36229: goto endlabel2236;
36230: }
36231: {{ uae_s16 dst = get_word(dsta);
36232: src &= dst;
36233: CLEAR_CZNV;
36234: SET_ZFLG (((uae_s16)(src)) == 0);
36235: SET_NFLG (((uae_s16)(src)) < 0);
36236: m68k_incpc(4);
36237: fill_prefetch_0 ();
36238: put_word(dsta,src);
36239: }}}}}endlabel2236: ;
36240: return 16;
36241: }
36242: unsigned long REGPARAM2 CPUFUNC(op_258_5)(uae_u32 opcode) /* AND */
36243: {
36244: uae_u32 dstreg = opcode & 7;
36245: OpcodeFamily = 2; CurrentInstrCycles = 16;
36246: {{ uae_s16 src = get_iword_prefetch(2);
36247: { uaecptr dsta = m68k_areg(regs, dstreg);
36248: if ((dsta & 1) != 0) {
36249: last_fault_for_exception_3 = dsta;
36250: last_op_for_exception_3 = opcode;
36251: last_addr_for_exception_3 = m68k_getpc() + 4;
36252: Exception(3, 0, M68000_EXC_SRC_CPU);
36253: goto endlabel2237;
36254: }
36255: {{ uae_s16 dst = get_word(dsta);
36256: m68k_areg(regs, dstreg) += 2;
36257: src &= dst;
36258: CLEAR_CZNV;
36259: SET_ZFLG (((uae_s16)(src)) == 0);
36260: SET_NFLG (((uae_s16)(src)) < 0);
36261: m68k_incpc(4);
36262: fill_prefetch_0 ();
36263: put_word(dsta,src);
36264: }}}}}endlabel2237: ;
36265: return 16;
36266: }
36267: unsigned long REGPARAM2 CPUFUNC(op_260_5)(uae_u32 opcode) /* AND */
36268: {
36269: uae_u32 dstreg = opcode & 7;
36270: OpcodeFamily = 2; CurrentInstrCycles = 18;
36271: {{ uae_s16 src = get_iword_prefetch(2);
36272: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
36273: if ((dsta & 1) != 0) {
36274: last_fault_for_exception_3 = dsta;
36275: last_op_for_exception_3 = opcode;
36276: last_addr_for_exception_3 = m68k_getpc() + 4;
36277: Exception(3, 0, M68000_EXC_SRC_CPU);
36278: goto endlabel2238;
36279: }
36280: {{ uae_s16 dst = get_word(dsta);
36281: m68k_areg (regs, dstreg) = dsta;
36282: src &= dst;
36283: CLEAR_CZNV;
36284: SET_ZFLG (((uae_s16)(src)) == 0);
36285: SET_NFLG (((uae_s16)(src)) < 0);
36286: m68k_incpc(4);
36287: fill_prefetch_0 ();
36288: put_word(dsta,src);
36289: }}}}}endlabel2238: ;
36290: return 18;
36291: }
36292: unsigned long REGPARAM2 CPUFUNC(op_268_5)(uae_u32 opcode) /* AND */
36293: {
36294: uae_u32 dstreg = opcode & 7;
36295: OpcodeFamily = 2; CurrentInstrCycles = 20;
36296: {{ uae_s16 src = get_iword_prefetch(2);
36297: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
36298: if ((dsta & 1) != 0) {
36299: last_fault_for_exception_3 = dsta;
36300: last_op_for_exception_3 = opcode;
36301: last_addr_for_exception_3 = m68k_getpc() + 6;
36302: Exception(3, 0, M68000_EXC_SRC_CPU);
36303: goto endlabel2239;
36304: }
36305: {{ uae_s16 dst = get_word(dsta);
36306: src &= dst;
36307: CLEAR_CZNV;
36308: SET_ZFLG (((uae_s16)(src)) == 0);
36309: SET_NFLG (((uae_s16)(src)) < 0);
36310: m68k_incpc(6);
36311: fill_prefetch_0 ();
36312: put_word(dsta,src);
36313: }}}}}endlabel2239: ;
36314: return 20;
36315: }
36316: unsigned long REGPARAM2 CPUFUNC(op_270_5)(uae_u32 opcode) /* AND */
36317: {
36318: uae_u32 dstreg = opcode & 7;
36319: OpcodeFamily = 2; CurrentInstrCycles = 22;
36320: {{ uae_s16 src = get_iword_prefetch(2);
36321: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
36322: BusCyclePenalty += 2;
36323: if ((dsta & 1) != 0) {
36324: last_fault_for_exception_3 = dsta;
36325: last_op_for_exception_3 = opcode;
36326: last_addr_for_exception_3 = m68k_getpc() + 6;
36327: Exception(3, 0, M68000_EXC_SRC_CPU);
36328: goto endlabel2240;
36329: }
36330: {{ uae_s16 dst = get_word(dsta);
36331: src &= dst;
36332: CLEAR_CZNV;
36333: SET_ZFLG (((uae_s16)(src)) == 0);
36334: SET_NFLG (((uae_s16)(src)) < 0);
36335: m68k_incpc(6);
36336: fill_prefetch_0 ();
36337: put_word(dsta,src);
36338: }}}}}endlabel2240: ;
36339: return 22;
36340: }
36341: unsigned long REGPARAM2 CPUFUNC(op_278_5)(uae_u32 opcode) /* AND */
36342: {
36343: OpcodeFamily = 2; CurrentInstrCycles = 20;
36344: {{ uae_s16 src = get_iword_prefetch(2);
36345: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
36346: if ((dsta & 1) != 0) {
36347: last_fault_for_exception_3 = dsta;
36348: last_op_for_exception_3 = opcode;
36349: last_addr_for_exception_3 = m68k_getpc() + 6;
36350: Exception(3, 0, M68000_EXC_SRC_CPU);
36351: goto endlabel2241;
36352: }
36353: {{ uae_s16 dst = get_word(dsta);
36354: src &= dst;
36355: CLEAR_CZNV;
36356: SET_ZFLG (((uae_s16)(src)) == 0);
36357: SET_NFLG (((uae_s16)(src)) < 0);
36358: m68k_incpc(6);
36359: fill_prefetch_0 ();
36360: put_word(dsta,src);
36361: }}}}}endlabel2241: ;
36362: return 20;
36363: }
36364: unsigned long REGPARAM2 CPUFUNC(op_279_5)(uae_u32 opcode) /* AND */
36365: {
36366: OpcodeFamily = 2; CurrentInstrCycles = 24;
36367: {{ uae_s16 src = get_iword_prefetch(2);
36368: { uaecptr dsta = get_ilong_prefetch(4);
36369: if ((dsta & 1) != 0) {
36370: last_fault_for_exception_3 = dsta;
36371: last_op_for_exception_3 = opcode;
36372: last_addr_for_exception_3 = m68k_getpc() + 8;
36373: Exception(3, 0, M68000_EXC_SRC_CPU);
36374: goto endlabel2242;
36375: }
36376: {{ uae_s16 dst = get_word(dsta);
36377: src &= dst;
36378: CLEAR_CZNV;
36379: SET_ZFLG (((uae_s16)(src)) == 0);
36380: SET_NFLG (((uae_s16)(src)) < 0);
36381: m68k_incpc(8);
36382: fill_prefetch_0 ();
36383: put_word(dsta,src);
36384: }}}}}endlabel2242: ;
36385: return 24;
36386: }
36387: unsigned long REGPARAM2 CPUFUNC(op_27c_5)(uae_u32 opcode) /* ANDSR */
36388: {
36389: OpcodeFamily = 5; CurrentInstrCycles = 20;
36390: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel2243; }
36391: { MakeSR();
36392: { uae_s16 src = get_iword_prefetch(2);
36393: regs.sr &= src;
36394: MakeFromSR();
36395: }}}m68k_incpc(4);
36396: fill_prefetch_0 ();
36397: endlabel2243: ;
36398: return 20;
36399: }
36400: unsigned long REGPARAM2 CPUFUNC(op_280_5)(uae_u32 opcode) /* AND */
36401: {
36402: uae_u32 dstreg = opcode & 7;
36403: OpcodeFamily = 2; CurrentInstrCycles = 16;
36404: {{ uae_s32 src = get_ilong_prefetch(2);
36405: { uae_s32 dst = m68k_dreg(regs, dstreg);
36406: src &= dst;
36407: CLEAR_CZNV;
36408: SET_ZFLG (((uae_s32)(src)) == 0);
36409: SET_NFLG (((uae_s32)(src)) < 0);
36410: m68k_dreg(regs, dstreg) = (src);
36411: }}}m68k_incpc(6);
36412: fill_prefetch_0 ();
36413: return 16;
36414: }
36415: unsigned long REGPARAM2 CPUFUNC(op_290_5)(uae_u32 opcode) /* AND */
36416: {
36417: uae_u32 dstreg = opcode & 7;
36418: OpcodeFamily = 2; CurrentInstrCycles = 28;
36419: {{ uae_s32 src = get_ilong_prefetch(2);
36420: { uaecptr dsta = m68k_areg(regs, dstreg);
36421: if ((dsta & 1) != 0) {
36422: last_fault_for_exception_3 = dsta;
36423: last_op_for_exception_3 = opcode;
36424: last_addr_for_exception_3 = m68k_getpc() + 6;
36425: Exception(3, 0, M68000_EXC_SRC_CPU);
36426: goto endlabel2245;
36427: }
36428: {{ uae_s32 dst = get_long(dsta);
36429: src &= dst;
36430: CLEAR_CZNV;
36431: SET_ZFLG (((uae_s32)(src)) == 0);
36432: SET_NFLG (((uae_s32)(src)) < 0);
36433: m68k_incpc(6);
36434: fill_prefetch_0 ();
36435: put_long(dsta,src);
36436: }}}}}endlabel2245: ;
36437: return 28;
36438: }
36439: unsigned long REGPARAM2 CPUFUNC(op_298_5)(uae_u32 opcode) /* AND */
36440: {
36441: uae_u32 dstreg = opcode & 7;
36442: OpcodeFamily = 2; CurrentInstrCycles = 28;
36443: {{ uae_s32 src = get_ilong_prefetch(2);
36444: { uaecptr dsta = m68k_areg(regs, dstreg);
36445: if ((dsta & 1) != 0) {
36446: last_fault_for_exception_3 = dsta;
36447: last_op_for_exception_3 = opcode;
36448: last_addr_for_exception_3 = m68k_getpc() + 6;
36449: Exception(3, 0, M68000_EXC_SRC_CPU);
36450: goto endlabel2246;
36451: }
36452: {{ uae_s32 dst = get_long(dsta);
36453: m68k_areg(regs, dstreg) += 4;
36454: src &= dst;
36455: CLEAR_CZNV;
36456: SET_ZFLG (((uae_s32)(src)) == 0);
36457: SET_NFLG (((uae_s32)(src)) < 0);
36458: m68k_incpc(6);
36459: fill_prefetch_0 ();
36460: put_long(dsta,src);
36461: }}}}}endlabel2246: ;
36462: return 28;
36463: }
36464: unsigned long REGPARAM2 CPUFUNC(op_2a0_5)(uae_u32 opcode) /* AND */
36465: {
36466: uae_u32 dstreg = opcode & 7;
36467: OpcodeFamily = 2; CurrentInstrCycles = 30;
36468: {{ uae_s32 src = get_ilong_prefetch(2);
36469: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
36470: if ((dsta & 1) != 0) {
36471: last_fault_for_exception_3 = dsta;
36472: last_op_for_exception_3 = opcode;
36473: last_addr_for_exception_3 = m68k_getpc() + 6;
36474: Exception(3, 0, M68000_EXC_SRC_CPU);
36475: goto endlabel2247;
36476: }
36477: {{ uae_s32 dst = get_long(dsta);
36478: m68k_areg (regs, dstreg) = dsta;
36479: src &= dst;
36480: CLEAR_CZNV;
36481: SET_ZFLG (((uae_s32)(src)) == 0);
36482: SET_NFLG (((uae_s32)(src)) < 0);
36483: m68k_incpc(6);
36484: fill_prefetch_0 ();
36485: put_long(dsta,src);
36486: }}}}}endlabel2247: ;
36487: return 30;
36488: }
36489: unsigned long REGPARAM2 CPUFUNC(op_2a8_5)(uae_u32 opcode) /* AND */
36490: {
36491: uae_u32 dstreg = opcode & 7;
36492: OpcodeFamily = 2; CurrentInstrCycles = 32;
36493: {{ uae_s32 src = get_ilong_prefetch(2);
36494: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(6);
36495: if ((dsta & 1) != 0) {
36496: last_fault_for_exception_3 = dsta;
36497: last_op_for_exception_3 = opcode;
36498: last_addr_for_exception_3 = m68k_getpc() + 8;
36499: Exception(3, 0, M68000_EXC_SRC_CPU);
36500: goto endlabel2248;
36501: }
36502: {{ uae_s32 dst = get_long(dsta);
36503: src &= dst;
36504: CLEAR_CZNV;
36505: SET_ZFLG (((uae_s32)(src)) == 0);
36506: SET_NFLG (((uae_s32)(src)) < 0);
36507: m68k_incpc(8);
36508: fill_prefetch_0 ();
36509: put_long(dsta,src);
36510: }}}}}endlabel2248: ;
36511: return 32;
36512: }
36513: unsigned long REGPARAM2 CPUFUNC(op_2b0_5)(uae_u32 opcode) /* AND */
36514: {
36515: uae_u32 dstreg = opcode & 7;
36516: OpcodeFamily = 2; CurrentInstrCycles = 34;
36517: {{ uae_s32 src = get_ilong_prefetch(2);
36518: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(6));
36519: BusCyclePenalty += 2;
36520: if ((dsta & 1) != 0) {
36521: last_fault_for_exception_3 = dsta;
36522: last_op_for_exception_3 = opcode;
36523: last_addr_for_exception_3 = m68k_getpc() + 8;
36524: Exception(3, 0, M68000_EXC_SRC_CPU);
36525: goto endlabel2249;
36526: }
36527: {{ uae_s32 dst = get_long(dsta);
36528: src &= dst;
36529: CLEAR_CZNV;
36530: SET_ZFLG (((uae_s32)(src)) == 0);
36531: SET_NFLG (((uae_s32)(src)) < 0);
36532: m68k_incpc(8);
36533: fill_prefetch_0 ();
36534: put_long(dsta,src);
36535: }}}}}endlabel2249: ;
36536: return 34;
36537: }
36538: unsigned long REGPARAM2 CPUFUNC(op_2b8_5)(uae_u32 opcode) /* AND */
36539: {
36540: OpcodeFamily = 2; CurrentInstrCycles = 32;
36541: {{ uae_s32 src = get_ilong_prefetch(2);
36542: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(6);
36543: if ((dsta & 1) != 0) {
36544: last_fault_for_exception_3 = dsta;
36545: last_op_for_exception_3 = opcode;
36546: last_addr_for_exception_3 = m68k_getpc() + 8;
36547: Exception(3, 0, M68000_EXC_SRC_CPU);
36548: goto endlabel2250;
36549: }
36550: {{ uae_s32 dst = get_long(dsta);
36551: src &= dst;
36552: CLEAR_CZNV;
36553: SET_ZFLG (((uae_s32)(src)) == 0);
36554: SET_NFLG (((uae_s32)(src)) < 0);
36555: m68k_incpc(8);
36556: fill_prefetch_0 ();
36557: put_long(dsta,src);
36558: }}}}}endlabel2250: ;
36559: return 32;
36560: }
36561: unsigned long REGPARAM2 CPUFUNC(op_2b9_5)(uae_u32 opcode) /* AND */
36562: {
36563: OpcodeFamily = 2; CurrentInstrCycles = 36;
36564: {{ uae_s32 src = get_ilong_prefetch(2);
36565: { uaecptr dsta = get_ilong_prefetch(6);
36566: if ((dsta & 1) != 0) {
36567: last_fault_for_exception_3 = dsta;
36568: last_op_for_exception_3 = opcode;
36569: last_addr_for_exception_3 = m68k_getpc() + 10;
36570: Exception(3, 0, M68000_EXC_SRC_CPU);
36571: goto endlabel2251;
36572: }
36573: {{ uae_s32 dst = get_long(dsta);
36574: src &= dst;
36575: CLEAR_CZNV;
36576: SET_ZFLG (((uae_s32)(src)) == 0);
36577: SET_NFLG (((uae_s32)(src)) < 0);
36578: m68k_incpc(10);
36579: fill_prefetch_0 ();
36580: put_long(dsta,src);
36581: }}}}}endlabel2251: ;
36582: return 36;
36583: }
36584: unsigned long REGPARAM2 CPUFUNC(op_400_5)(uae_u32 opcode) /* SUB */
36585: {
36586: uae_u32 dstreg = opcode & 7;
36587: OpcodeFamily = 7; CurrentInstrCycles = 8;
36588: {{ uae_s8 src = get_ibyte_prefetch(2);
36589: { uae_s8 dst = m68k_dreg(regs, dstreg);
36590: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
36591: { int flgs = ((uae_s8)(src)) < 0;
36592: int flgo = ((uae_s8)(dst)) < 0;
36593: int flgn = ((uae_s8)(newv)) < 0;
36594: SET_ZFLG (((uae_s8)(newv)) == 0);
36595: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
36596: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
36597: COPY_CARRY;
36598: SET_NFLG (flgn != 0);
36599: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
36600: }}}}}}m68k_incpc(4);
36601: fill_prefetch_0 ();
36602: return 8;
36603: }
36604: unsigned long REGPARAM2 CPUFUNC(op_410_5)(uae_u32 opcode) /* SUB */
36605: {
36606: uae_u32 dstreg = opcode & 7;
36607: OpcodeFamily = 7; CurrentInstrCycles = 16;
36608: {{ uae_s8 src = get_ibyte_prefetch(2);
36609: { uaecptr dsta = m68k_areg(regs, dstreg);
36610: { uae_s8 dst = get_byte(dsta);
36611: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
36612: { int flgs = ((uae_s8)(src)) < 0;
36613: int flgo = ((uae_s8)(dst)) < 0;
36614: int flgn = ((uae_s8)(newv)) < 0;
36615: SET_ZFLG (((uae_s8)(newv)) == 0);
36616: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
36617: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
36618: COPY_CARRY;
36619: SET_NFLG (flgn != 0);
36620: m68k_incpc(4);
36621: fill_prefetch_0 ();
36622: put_byte(dsta,newv);
36623: }}}}}}}return 16;
36624: }
36625: unsigned long REGPARAM2 CPUFUNC(op_418_5)(uae_u32 opcode) /* SUB */
36626: {
36627: uae_u32 dstreg = opcode & 7;
36628: OpcodeFamily = 7; CurrentInstrCycles = 16;
36629: {{ uae_s8 src = get_ibyte_prefetch(2);
36630: { uaecptr dsta = m68k_areg(regs, dstreg);
36631: { uae_s8 dst = get_byte(dsta);
36632: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
36633: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
36634: { int flgs = ((uae_s8)(src)) < 0;
36635: int flgo = ((uae_s8)(dst)) < 0;
36636: int flgn = ((uae_s8)(newv)) < 0;
36637: SET_ZFLG (((uae_s8)(newv)) == 0);
36638: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
36639: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
36640: COPY_CARRY;
36641: SET_NFLG (flgn != 0);
36642: m68k_incpc(4);
36643: fill_prefetch_0 ();
36644: put_byte(dsta,newv);
36645: }}}}}}}return 16;
36646: }
36647: unsigned long REGPARAM2 CPUFUNC(op_420_5)(uae_u32 opcode) /* SUB */
36648: {
36649: uae_u32 dstreg = opcode & 7;
36650: OpcodeFamily = 7; CurrentInstrCycles = 18;
36651: {{ uae_s8 src = get_ibyte_prefetch(2);
36652: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
36653: { uae_s8 dst = get_byte(dsta);
36654: m68k_areg (regs, dstreg) = dsta;
36655: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
36656: { int flgs = ((uae_s8)(src)) < 0;
36657: int flgo = ((uae_s8)(dst)) < 0;
36658: int flgn = ((uae_s8)(newv)) < 0;
36659: SET_ZFLG (((uae_s8)(newv)) == 0);
36660: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
36661: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
36662: COPY_CARRY;
36663: SET_NFLG (flgn != 0);
36664: m68k_incpc(4);
36665: fill_prefetch_0 ();
36666: put_byte(dsta,newv);
36667: }}}}}}}return 18;
36668: }
36669: unsigned long REGPARAM2 CPUFUNC(op_428_5)(uae_u32 opcode) /* SUB */
36670: {
36671: uae_u32 dstreg = opcode & 7;
36672: OpcodeFamily = 7; CurrentInstrCycles = 20;
36673: {{ uae_s8 src = get_ibyte_prefetch(2);
36674: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
36675: { uae_s8 dst = get_byte(dsta);
36676: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
36677: { int flgs = ((uae_s8)(src)) < 0;
36678: int flgo = ((uae_s8)(dst)) < 0;
36679: int flgn = ((uae_s8)(newv)) < 0;
36680: SET_ZFLG (((uae_s8)(newv)) == 0);
36681: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
36682: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
36683: COPY_CARRY;
36684: SET_NFLG (flgn != 0);
36685: m68k_incpc(6);
36686: fill_prefetch_0 ();
36687: put_byte(dsta,newv);
36688: }}}}}}}return 20;
36689: }
36690: unsigned long REGPARAM2 CPUFUNC(op_430_5)(uae_u32 opcode) /* SUB */
36691: {
36692: uae_u32 dstreg = opcode & 7;
36693: OpcodeFamily = 7; CurrentInstrCycles = 22;
36694: {{ uae_s8 src = get_ibyte_prefetch(2);
36695: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
36696: BusCyclePenalty += 2;
36697: { uae_s8 dst = get_byte(dsta);
36698: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
36699: { int flgs = ((uae_s8)(src)) < 0;
36700: int flgo = ((uae_s8)(dst)) < 0;
36701: int flgn = ((uae_s8)(newv)) < 0;
36702: SET_ZFLG (((uae_s8)(newv)) == 0);
36703: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
36704: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
36705: COPY_CARRY;
36706: SET_NFLG (flgn != 0);
36707: m68k_incpc(6);
36708: fill_prefetch_0 ();
36709: put_byte(dsta,newv);
36710: }}}}}}}return 22;
36711: }
36712: unsigned long REGPARAM2 CPUFUNC(op_438_5)(uae_u32 opcode) /* SUB */
36713: {
36714: OpcodeFamily = 7; CurrentInstrCycles = 20;
36715: {{ uae_s8 src = get_ibyte_prefetch(2);
36716: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
36717: { uae_s8 dst = get_byte(dsta);
36718: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
36719: { int flgs = ((uae_s8)(src)) < 0;
36720: int flgo = ((uae_s8)(dst)) < 0;
36721: int flgn = ((uae_s8)(newv)) < 0;
36722: SET_ZFLG (((uae_s8)(newv)) == 0);
36723: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
36724: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
36725: COPY_CARRY;
36726: SET_NFLG (flgn != 0);
36727: m68k_incpc(6);
36728: fill_prefetch_0 ();
36729: put_byte(dsta,newv);
36730: }}}}}}}return 20;
36731: }
36732: unsigned long REGPARAM2 CPUFUNC(op_439_5)(uae_u32 opcode) /* SUB */
36733: {
36734: OpcodeFamily = 7; CurrentInstrCycles = 24;
36735: {{ uae_s8 src = get_ibyte_prefetch(2);
36736: { uaecptr dsta = get_ilong_prefetch(4);
36737: { uae_s8 dst = get_byte(dsta);
36738: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
36739: { int flgs = ((uae_s8)(src)) < 0;
36740: int flgo = ((uae_s8)(dst)) < 0;
36741: int flgn = ((uae_s8)(newv)) < 0;
36742: SET_ZFLG (((uae_s8)(newv)) == 0);
36743: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
36744: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
36745: COPY_CARRY;
36746: SET_NFLG (flgn != 0);
36747: m68k_incpc(8);
36748: fill_prefetch_0 ();
36749: put_byte(dsta,newv);
36750: }}}}}}}return 24;
36751: }
36752: unsigned long REGPARAM2 CPUFUNC(op_440_5)(uae_u32 opcode) /* SUB */
36753: {
36754: uae_u32 dstreg = opcode & 7;
36755: OpcodeFamily = 7; CurrentInstrCycles = 8;
36756: {{ uae_s16 src = get_iword_prefetch(2);
36757: { uae_s16 dst = m68k_dreg(regs, dstreg);
36758: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
36759: { int flgs = ((uae_s16)(src)) < 0;
36760: int flgo = ((uae_s16)(dst)) < 0;
36761: int flgn = ((uae_s16)(newv)) < 0;
36762: SET_ZFLG (((uae_s16)(newv)) == 0);
36763: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
36764: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
36765: COPY_CARRY;
36766: SET_NFLG (flgn != 0);
36767: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
36768: }}}}}}m68k_incpc(4);
36769: fill_prefetch_0 ();
36770: return 8;
36771: }
36772: unsigned long REGPARAM2 CPUFUNC(op_450_5)(uae_u32 opcode) /* SUB */
36773: {
36774: uae_u32 dstreg = opcode & 7;
36775: OpcodeFamily = 7; CurrentInstrCycles = 16;
36776: {{ uae_s16 src = get_iword_prefetch(2);
36777: { uaecptr dsta = m68k_areg(regs, dstreg);
36778: if ((dsta & 1) != 0) {
36779: last_fault_for_exception_3 = dsta;
36780: last_op_for_exception_3 = opcode;
36781: last_addr_for_exception_3 = m68k_getpc() + 4;
36782: Exception(3, 0, M68000_EXC_SRC_CPU);
36783: goto endlabel2261;
36784: }
36785: {{ uae_s16 dst = get_word(dsta);
36786: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
36787: { int flgs = ((uae_s16)(src)) < 0;
36788: int flgo = ((uae_s16)(dst)) < 0;
36789: int flgn = ((uae_s16)(newv)) < 0;
36790: SET_ZFLG (((uae_s16)(newv)) == 0);
36791: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
36792: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
36793: COPY_CARRY;
36794: SET_NFLG (flgn != 0);
36795: m68k_incpc(4);
36796: fill_prefetch_0 ();
36797: put_word(dsta,newv);
36798: }}}}}}}}endlabel2261: ;
36799: return 16;
36800: }
36801: unsigned long REGPARAM2 CPUFUNC(op_458_5)(uae_u32 opcode) /* SUB */
36802: {
36803: uae_u32 dstreg = opcode & 7;
36804: OpcodeFamily = 7; CurrentInstrCycles = 16;
36805: {{ uae_s16 src = get_iword_prefetch(2);
36806: { uaecptr dsta = m68k_areg(regs, dstreg);
36807: if ((dsta & 1) != 0) {
36808: last_fault_for_exception_3 = dsta;
36809: last_op_for_exception_3 = opcode;
36810: last_addr_for_exception_3 = m68k_getpc() + 4;
36811: Exception(3, 0, M68000_EXC_SRC_CPU);
36812: goto endlabel2262;
36813: }
36814: {{ uae_s16 dst = get_word(dsta);
36815: m68k_areg(regs, dstreg) += 2;
36816: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
36817: { int flgs = ((uae_s16)(src)) < 0;
36818: int flgo = ((uae_s16)(dst)) < 0;
36819: int flgn = ((uae_s16)(newv)) < 0;
36820: SET_ZFLG (((uae_s16)(newv)) == 0);
36821: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
36822: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
36823: COPY_CARRY;
36824: SET_NFLG (flgn != 0);
36825: m68k_incpc(4);
36826: fill_prefetch_0 ();
36827: put_word(dsta,newv);
36828: }}}}}}}}endlabel2262: ;
36829: return 16;
36830: }
36831: unsigned long REGPARAM2 CPUFUNC(op_460_5)(uae_u32 opcode) /* SUB */
36832: {
36833: uae_u32 dstreg = opcode & 7;
36834: OpcodeFamily = 7; CurrentInstrCycles = 18;
36835: {{ uae_s16 src = get_iword_prefetch(2);
36836: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
36837: if ((dsta & 1) != 0) {
36838: last_fault_for_exception_3 = dsta;
36839: last_op_for_exception_3 = opcode;
36840: last_addr_for_exception_3 = m68k_getpc() + 4;
36841: Exception(3, 0, M68000_EXC_SRC_CPU);
36842: goto endlabel2263;
36843: }
36844: {{ uae_s16 dst = get_word(dsta);
36845: m68k_areg (regs, dstreg) = dsta;
36846: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
36847: { int flgs = ((uae_s16)(src)) < 0;
36848: int flgo = ((uae_s16)(dst)) < 0;
36849: int flgn = ((uae_s16)(newv)) < 0;
36850: SET_ZFLG (((uae_s16)(newv)) == 0);
36851: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
36852: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
36853: COPY_CARRY;
36854: SET_NFLG (flgn != 0);
36855: m68k_incpc(4);
36856: fill_prefetch_0 ();
36857: put_word(dsta,newv);
36858: }}}}}}}}endlabel2263: ;
36859: return 18;
36860: }
36861: unsigned long REGPARAM2 CPUFUNC(op_468_5)(uae_u32 opcode) /* SUB */
36862: {
36863: uae_u32 dstreg = opcode & 7;
36864: OpcodeFamily = 7; CurrentInstrCycles = 20;
36865: {{ uae_s16 src = get_iword_prefetch(2);
36866: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
36867: if ((dsta & 1) != 0) {
36868: last_fault_for_exception_3 = dsta;
36869: last_op_for_exception_3 = opcode;
36870: last_addr_for_exception_3 = m68k_getpc() + 6;
36871: Exception(3, 0, M68000_EXC_SRC_CPU);
36872: goto endlabel2264;
36873: }
36874: {{ uae_s16 dst = get_word(dsta);
36875: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
36876: { int flgs = ((uae_s16)(src)) < 0;
36877: int flgo = ((uae_s16)(dst)) < 0;
36878: int flgn = ((uae_s16)(newv)) < 0;
36879: SET_ZFLG (((uae_s16)(newv)) == 0);
36880: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
36881: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
36882: COPY_CARRY;
36883: SET_NFLG (flgn != 0);
36884: m68k_incpc(6);
36885: fill_prefetch_0 ();
36886: put_word(dsta,newv);
36887: }}}}}}}}endlabel2264: ;
36888: return 20;
36889: }
36890: unsigned long REGPARAM2 CPUFUNC(op_470_5)(uae_u32 opcode) /* SUB */
36891: {
36892: uae_u32 dstreg = opcode & 7;
36893: OpcodeFamily = 7; CurrentInstrCycles = 22;
36894: {{ uae_s16 src = get_iword_prefetch(2);
36895: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
36896: BusCyclePenalty += 2;
36897: if ((dsta & 1) != 0) {
36898: last_fault_for_exception_3 = dsta;
36899: last_op_for_exception_3 = opcode;
36900: last_addr_for_exception_3 = m68k_getpc() + 6;
36901: Exception(3, 0, M68000_EXC_SRC_CPU);
36902: goto endlabel2265;
36903: }
36904: {{ uae_s16 dst = get_word(dsta);
36905: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
36906: { int flgs = ((uae_s16)(src)) < 0;
36907: int flgo = ((uae_s16)(dst)) < 0;
36908: int flgn = ((uae_s16)(newv)) < 0;
36909: SET_ZFLG (((uae_s16)(newv)) == 0);
36910: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
36911: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
36912: COPY_CARRY;
36913: SET_NFLG (flgn != 0);
36914: m68k_incpc(6);
36915: fill_prefetch_0 ();
36916: put_word(dsta,newv);
36917: }}}}}}}}endlabel2265: ;
36918: return 22;
36919: }
36920: unsigned long REGPARAM2 CPUFUNC(op_478_5)(uae_u32 opcode) /* SUB */
36921: {
36922: OpcodeFamily = 7; CurrentInstrCycles = 20;
36923: {{ uae_s16 src = get_iword_prefetch(2);
36924: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
36925: if ((dsta & 1) != 0) {
36926: last_fault_for_exception_3 = dsta;
36927: last_op_for_exception_3 = opcode;
36928: last_addr_for_exception_3 = m68k_getpc() + 6;
36929: Exception(3, 0, M68000_EXC_SRC_CPU);
36930: goto endlabel2266;
36931: }
36932: {{ uae_s16 dst = get_word(dsta);
36933: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
36934: { int flgs = ((uae_s16)(src)) < 0;
36935: int flgo = ((uae_s16)(dst)) < 0;
36936: int flgn = ((uae_s16)(newv)) < 0;
36937: SET_ZFLG (((uae_s16)(newv)) == 0);
36938: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
36939: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
36940: COPY_CARRY;
36941: SET_NFLG (flgn != 0);
36942: m68k_incpc(6);
36943: fill_prefetch_0 ();
36944: put_word(dsta,newv);
36945: }}}}}}}}endlabel2266: ;
36946: return 20;
36947: }
36948: unsigned long REGPARAM2 CPUFUNC(op_479_5)(uae_u32 opcode) /* SUB */
36949: {
36950: OpcodeFamily = 7; CurrentInstrCycles = 24;
36951: {{ uae_s16 src = get_iword_prefetch(2);
36952: { uaecptr dsta = get_ilong_prefetch(4);
36953: if ((dsta & 1) != 0) {
36954: last_fault_for_exception_3 = dsta;
36955: last_op_for_exception_3 = opcode;
36956: last_addr_for_exception_3 = m68k_getpc() + 8;
36957: Exception(3, 0, M68000_EXC_SRC_CPU);
36958: goto endlabel2267;
36959: }
36960: {{ uae_s16 dst = get_word(dsta);
36961: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
36962: { int flgs = ((uae_s16)(src)) < 0;
36963: int flgo = ((uae_s16)(dst)) < 0;
36964: int flgn = ((uae_s16)(newv)) < 0;
36965: SET_ZFLG (((uae_s16)(newv)) == 0);
36966: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
36967: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
36968: COPY_CARRY;
36969: SET_NFLG (flgn != 0);
36970: m68k_incpc(8);
36971: fill_prefetch_0 ();
36972: put_word(dsta,newv);
36973: }}}}}}}}endlabel2267: ;
36974: return 24;
36975: }
36976: unsigned long REGPARAM2 CPUFUNC(op_480_5)(uae_u32 opcode) /* SUB */
36977: {
36978: uae_u32 dstreg = opcode & 7;
36979: OpcodeFamily = 7; CurrentInstrCycles = 16;
36980: {{ uae_s32 src = get_ilong_prefetch(2);
36981: { uae_s32 dst = m68k_dreg(regs, dstreg);
36982: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
36983: { int flgs = ((uae_s32)(src)) < 0;
36984: int flgo = ((uae_s32)(dst)) < 0;
36985: int flgn = ((uae_s32)(newv)) < 0;
36986: SET_ZFLG (((uae_s32)(newv)) == 0);
36987: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
36988: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
36989: COPY_CARRY;
36990: SET_NFLG (flgn != 0);
36991: m68k_dreg(regs, dstreg) = (newv);
36992: }}}}}}m68k_incpc(6);
36993: fill_prefetch_0 ();
36994: return 16;
36995: }
36996: unsigned long REGPARAM2 CPUFUNC(op_490_5)(uae_u32 opcode) /* SUB */
36997: {
36998: uae_u32 dstreg = opcode & 7;
36999: OpcodeFamily = 7; CurrentInstrCycles = 28;
37000: {{ uae_s32 src = get_ilong_prefetch(2);
37001: { uaecptr dsta = m68k_areg(regs, dstreg);
37002: if ((dsta & 1) != 0) {
37003: last_fault_for_exception_3 = dsta;
37004: last_op_for_exception_3 = opcode;
37005: last_addr_for_exception_3 = m68k_getpc() + 6;
37006: Exception(3, 0, M68000_EXC_SRC_CPU);
37007: goto endlabel2269;
37008: }
37009: {{ uae_s32 dst = get_long(dsta);
37010: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
37011: { int flgs = ((uae_s32)(src)) < 0;
37012: int flgo = ((uae_s32)(dst)) < 0;
37013: int flgn = ((uae_s32)(newv)) < 0;
37014: SET_ZFLG (((uae_s32)(newv)) == 0);
37015: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
37016: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
37017: COPY_CARRY;
37018: SET_NFLG (flgn != 0);
37019: m68k_incpc(6);
37020: fill_prefetch_0 ();
37021: put_long(dsta,newv);
37022: }}}}}}}}endlabel2269: ;
37023: return 28;
37024: }
37025: unsigned long REGPARAM2 CPUFUNC(op_498_5)(uae_u32 opcode) /* SUB */
37026: {
37027: uae_u32 dstreg = opcode & 7;
37028: OpcodeFamily = 7; CurrentInstrCycles = 28;
37029: {{ uae_s32 src = get_ilong_prefetch(2);
37030: { uaecptr dsta = m68k_areg(regs, dstreg);
37031: if ((dsta & 1) != 0) {
37032: last_fault_for_exception_3 = dsta;
37033: last_op_for_exception_3 = opcode;
37034: last_addr_for_exception_3 = m68k_getpc() + 6;
37035: Exception(3, 0, M68000_EXC_SRC_CPU);
37036: goto endlabel2270;
37037: }
37038: {{ uae_s32 dst = get_long(dsta);
37039: m68k_areg(regs, dstreg) += 4;
37040: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
37041: { int flgs = ((uae_s32)(src)) < 0;
37042: int flgo = ((uae_s32)(dst)) < 0;
37043: int flgn = ((uae_s32)(newv)) < 0;
37044: SET_ZFLG (((uae_s32)(newv)) == 0);
37045: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
37046: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
37047: COPY_CARRY;
37048: SET_NFLG (flgn != 0);
37049: m68k_incpc(6);
37050: fill_prefetch_0 ();
37051: put_long(dsta,newv);
37052: }}}}}}}}endlabel2270: ;
37053: return 28;
37054: }
37055: unsigned long REGPARAM2 CPUFUNC(op_4a0_5)(uae_u32 opcode) /* SUB */
37056: {
37057: uae_u32 dstreg = opcode & 7;
37058: OpcodeFamily = 7; CurrentInstrCycles = 30;
37059: {{ uae_s32 src = get_ilong_prefetch(2);
37060: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
37061: if ((dsta & 1) != 0) {
37062: last_fault_for_exception_3 = dsta;
37063: last_op_for_exception_3 = opcode;
37064: last_addr_for_exception_3 = m68k_getpc() + 6;
37065: Exception(3, 0, M68000_EXC_SRC_CPU);
37066: goto endlabel2271;
37067: }
37068: {{ uae_s32 dst = get_long(dsta);
37069: m68k_areg (regs, dstreg) = dsta;
37070: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
37071: { int flgs = ((uae_s32)(src)) < 0;
37072: int flgo = ((uae_s32)(dst)) < 0;
37073: int flgn = ((uae_s32)(newv)) < 0;
37074: SET_ZFLG (((uae_s32)(newv)) == 0);
37075: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
37076: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
37077: COPY_CARRY;
37078: SET_NFLG (flgn != 0);
37079: m68k_incpc(6);
37080: fill_prefetch_0 ();
37081: put_long(dsta,newv);
37082: }}}}}}}}endlabel2271: ;
37083: return 30;
37084: }
37085: unsigned long REGPARAM2 CPUFUNC(op_4a8_5)(uae_u32 opcode) /* SUB */
37086: {
37087: uae_u32 dstreg = opcode & 7;
37088: OpcodeFamily = 7; CurrentInstrCycles = 32;
37089: {{ uae_s32 src = get_ilong_prefetch(2);
37090: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(6);
37091: if ((dsta & 1) != 0) {
37092: last_fault_for_exception_3 = dsta;
37093: last_op_for_exception_3 = opcode;
37094: last_addr_for_exception_3 = m68k_getpc() + 8;
37095: Exception(3, 0, M68000_EXC_SRC_CPU);
37096: goto endlabel2272;
37097: }
37098: {{ uae_s32 dst = get_long(dsta);
37099: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
37100: { int flgs = ((uae_s32)(src)) < 0;
37101: int flgo = ((uae_s32)(dst)) < 0;
37102: int flgn = ((uae_s32)(newv)) < 0;
37103: SET_ZFLG (((uae_s32)(newv)) == 0);
37104: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
37105: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
37106: COPY_CARRY;
37107: SET_NFLG (flgn != 0);
37108: m68k_incpc(8);
37109: fill_prefetch_0 ();
37110: put_long(dsta,newv);
37111: }}}}}}}}endlabel2272: ;
37112: return 32;
37113: }
37114: unsigned long REGPARAM2 CPUFUNC(op_4b0_5)(uae_u32 opcode) /* SUB */
37115: {
37116: uae_u32 dstreg = opcode & 7;
37117: OpcodeFamily = 7; CurrentInstrCycles = 34;
37118: {{ uae_s32 src = get_ilong_prefetch(2);
37119: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(6));
37120: BusCyclePenalty += 2;
37121: if ((dsta & 1) != 0) {
37122: last_fault_for_exception_3 = dsta;
37123: last_op_for_exception_3 = opcode;
37124: last_addr_for_exception_3 = m68k_getpc() + 8;
37125: Exception(3, 0, M68000_EXC_SRC_CPU);
37126: goto endlabel2273;
37127: }
37128: {{ uae_s32 dst = get_long(dsta);
37129: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
37130: { int flgs = ((uae_s32)(src)) < 0;
37131: int flgo = ((uae_s32)(dst)) < 0;
37132: int flgn = ((uae_s32)(newv)) < 0;
37133: SET_ZFLG (((uae_s32)(newv)) == 0);
37134: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
37135: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
37136: COPY_CARRY;
37137: SET_NFLG (flgn != 0);
37138: m68k_incpc(8);
37139: fill_prefetch_0 ();
37140: put_long(dsta,newv);
37141: }}}}}}}}endlabel2273: ;
37142: return 34;
37143: }
37144: unsigned long REGPARAM2 CPUFUNC(op_4b8_5)(uae_u32 opcode) /* SUB */
37145: {
37146: OpcodeFamily = 7; CurrentInstrCycles = 32;
37147: {{ uae_s32 src = get_ilong_prefetch(2);
37148: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(6);
37149: if ((dsta & 1) != 0) {
37150: last_fault_for_exception_3 = dsta;
37151: last_op_for_exception_3 = opcode;
37152: last_addr_for_exception_3 = m68k_getpc() + 8;
37153: Exception(3, 0, M68000_EXC_SRC_CPU);
37154: goto endlabel2274;
37155: }
37156: {{ uae_s32 dst = get_long(dsta);
37157: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
37158: { int flgs = ((uae_s32)(src)) < 0;
37159: int flgo = ((uae_s32)(dst)) < 0;
37160: int flgn = ((uae_s32)(newv)) < 0;
37161: SET_ZFLG (((uae_s32)(newv)) == 0);
37162: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
37163: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
37164: COPY_CARRY;
37165: SET_NFLG (flgn != 0);
37166: m68k_incpc(8);
37167: fill_prefetch_0 ();
37168: put_long(dsta,newv);
37169: }}}}}}}}endlabel2274: ;
37170: return 32;
37171: }
37172: unsigned long REGPARAM2 CPUFUNC(op_4b9_5)(uae_u32 opcode) /* SUB */
37173: {
37174: OpcodeFamily = 7; CurrentInstrCycles = 36;
37175: {{ uae_s32 src = get_ilong_prefetch(2);
37176: { uaecptr dsta = get_ilong_prefetch(6);
37177: if ((dsta & 1) != 0) {
37178: last_fault_for_exception_3 = dsta;
37179: last_op_for_exception_3 = opcode;
37180: last_addr_for_exception_3 = m68k_getpc() + 10;
37181: Exception(3, 0, M68000_EXC_SRC_CPU);
37182: goto endlabel2275;
37183: }
37184: {{ uae_s32 dst = get_long(dsta);
37185: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
37186: { int flgs = ((uae_s32)(src)) < 0;
37187: int flgo = ((uae_s32)(dst)) < 0;
37188: int flgn = ((uae_s32)(newv)) < 0;
37189: SET_ZFLG (((uae_s32)(newv)) == 0);
37190: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
37191: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
37192: COPY_CARRY;
37193: SET_NFLG (flgn != 0);
37194: m68k_incpc(10);
37195: fill_prefetch_0 ();
37196: put_long(dsta,newv);
37197: }}}}}}}}endlabel2275: ;
37198: return 36;
37199: }
37200: unsigned long REGPARAM2 CPUFUNC(op_600_5)(uae_u32 opcode) /* ADD */
37201: {
37202: uae_u32 dstreg = opcode & 7;
37203: OpcodeFamily = 11; CurrentInstrCycles = 8;
37204: {{ uae_s8 src = get_ibyte_prefetch(2);
37205: { uae_s8 dst = m68k_dreg(regs, dstreg);
37206: { refill_prefetch (m68k_getpc(), 2);
37207: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
37208: { int flgs = ((uae_s8)(src)) < 0;
37209: int flgo = ((uae_s8)(dst)) < 0;
37210: int flgn = ((uae_s8)(newv)) < 0;
37211: SET_ZFLG (((uae_s8)(newv)) == 0);
37212: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
37213: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
37214: COPY_CARRY;
37215: SET_NFLG (flgn != 0);
37216: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
37217: }}}}}}m68k_incpc(4);
37218: fill_prefetch_0 ();
37219: return 8;
37220: }
37221: unsigned long REGPARAM2 CPUFUNC(op_610_5)(uae_u32 opcode) /* ADD */
37222: {
37223: uae_u32 dstreg = opcode & 7;
37224: OpcodeFamily = 11; CurrentInstrCycles = 16;
37225: {{ uae_s8 src = get_ibyte_prefetch(2);
37226: { uaecptr dsta = m68k_areg(regs, dstreg);
37227: { uae_s8 dst = get_byte(dsta);
37228: { refill_prefetch (m68k_getpc(), 2);
37229: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
37230: { int flgs = ((uae_s8)(src)) < 0;
37231: int flgo = ((uae_s8)(dst)) < 0;
37232: int flgn = ((uae_s8)(newv)) < 0;
37233: SET_ZFLG (((uae_s8)(newv)) == 0);
37234: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
37235: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
37236: COPY_CARRY;
37237: SET_NFLG (flgn != 0);
37238: m68k_incpc(4);
37239: fill_prefetch_0 ();
37240: put_byte(dsta,newv);
37241: }}}}}}}return 16;
37242: }
37243: unsigned long REGPARAM2 CPUFUNC(op_618_5)(uae_u32 opcode) /* ADD */
37244: {
37245: uae_u32 dstreg = opcode & 7;
37246: OpcodeFamily = 11; CurrentInstrCycles = 16;
37247: {{ uae_s8 src = get_ibyte_prefetch(2);
37248: { uaecptr dsta = m68k_areg(regs, dstreg);
37249: { uae_s8 dst = get_byte(dsta);
37250: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
37251: { refill_prefetch (m68k_getpc(), 2);
37252: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
37253: { int flgs = ((uae_s8)(src)) < 0;
37254: int flgo = ((uae_s8)(dst)) < 0;
37255: int flgn = ((uae_s8)(newv)) < 0;
37256: SET_ZFLG (((uae_s8)(newv)) == 0);
37257: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
37258: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
37259: COPY_CARRY;
37260: SET_NFLG (flgn != 0);
37261: m68k_incpc(4);
37262: fill_prefetch_0 ();
37263: put_byte(dsta,newv);
37264: }}}}}}}return 16;
37265: }
37266: unsigned long REGPARAM2 CPUFUNC(op_620_5)(uae_u32 opcode) /* ADD */
37267: {
37268: uae_u32 dstreg = opcode & 7;
37269: OpcodeFamily = 11; CurrentInstrCycles = 18;
37270: {{ uae_s8 src = get_ibyte_prefetch(2);
37271: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
37272: { uae_s8 dst = get_byte(dsta);
37273: m68k_areg (regs, dstreg) = dsta;
37274: { refill_prefetch (m68k_getpc(), 2);
37275: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
37276: { int flgs = ((uae_s8)(src)) < 0;
37277: int flgo = ((uae_s8)(dst)) < 0;
37278: int flgn = ((uae_s8)(newv)) < 0;
37279: SET_ZFLG (((uae_s8)(newv)) == 0);
37280: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
37281: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
37282: COPY_CARRY;
37283: SET_NFLG (flgn != 0);
37284: m68k_incpc(4);
37285: fill_prefetch_0 ();
37286: put_byte(dsta,newv);
37287: }}}}}}}return 18;
37288: }
37289: unsigned long REGPARAM2 CPUFUNC(op_628_5)(uae_u32 opcode) /* ADD */
37290: {
37291: uae_u32 dstreg = opcode & 7;
37292: OpcodeFamily = 11; CurrentInstrCycles = 20;
37293: {{ uae_s8 src = get_ibyte_prefetch(2);
37294: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
37295: { uae_s8 dst = get_byte(dsta);
37296: { refill_prefetch (m68k_getpc(), 2);
37297: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
37298: { int flgs = ((uae_s8)(src)) < 0;
37299: int flgo = ((uae_s8)(dst)) < 0;
37300: int flgn = ((uae_s8)(newv)) < 0;
37301: SET_ZFLG (((uae_s8)(newv)) == 0);
37302: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
37303: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
37304: COPY_CARRY;
37305: SET_NFLG (flgn != 0);
37306: m68k_incpc(6);
37307: fill_prefetch_0 ();
37308: put_byte(dsta,newv);
37309: }}}}}}}return 20;
37310: }
37311: unsigned long REGPARAM2 CPUFUNC(op_630_5)(uae_u32 opcode) /* ADD */
37312: {
37313: uae_u32 dstreg = opcode & 7;
37314: OpcodeFamily = 11; CurrentInstrCycles = 22;
37315: {{ uae_s8 src = get_ibyte_prefetch(2);
37316: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
37317: BusCyclePenalty += 2;
37318: { uae_s8 dst = get_byte(dsta);
37319: { refill_prefetch (m68k_getpc(), 2);
37320: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
37321: { int flgs = ((uae_s8)(src)) < 0;
37322: int flgo = ((uae_s8)(dst)) < 0;
37323: int flgn = ((uae_s8)(newv)) < 0;
37324: SET_ZFLG (((uae_s8)(newv)) == 0);
37325: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
37326: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
37327: COPY_CARRY;
37328: SET_NFLG (flgn != 0);
37329: m68k_incpc(6);
37330: fill_prefetch_0 ();
37331: put_byte(dsta,newv);
37332: }}}}}}}return 22;
37333: }
37334: unsigned long REGPARAM2 CPUFUNC(op_638_5)(uae_u32 opcode) /* ADD */
37335: {
37336: OpcodeFamily = 11; CurrentInstrCycles = 20;
37337: {{ uae_s8 src = get_ibyte_prefetch(2);
37338: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
37339: { uae_s8 dst = get_byte(dsta);
37340: { refill_prefetch (m68k_getpc(), 2);
37341: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
37342: { int flgs = ((uae_s8)(src)) < 0;
37343: int flgo = ((uae_s8)(dst)) < 0;
37344: int flgn = ((uae_s8)(newv)) < 0;
37345: SET_ZFLG (((uae_s8)(newv)) == 0);
37346: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
37347: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
37348: COPY_CARRY;
37349: SET_NFLG (flgn != 0);
37350: m68k_incpc(6);
37351: fill_prefetch_0 ();
37352: put_byte(dsta,newv);
37353: }}}}}}}return 20;
37354: }
37355: unsigned long REGPARAM2 CPUFUNC(op_639_5)(uae_u32 opcode) /* ADD */
37356: {
37357: OpcodeFamily = 11; CurrentInstrCycles = 24;
37358: {{ uae_s8 src = get_ibyte_prefetch(2);
37359: { uaecptr dsta = get_ilong_prefetch(4);
37360: { uae_s8 dst = get_byte(dsta);
37361: { refill_prefetch (m68k_getpc(), 2);
37362: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
37363: { int flgs = ((uae_s8)(src)) < 0;
37364: int flgo = ((uae_s8)(dst)) < 0;
37365: int flgn = ((uae_s8)(newv)) < 0;
37366: SET_ZFLG (((uae_s8)(newv)) == 0);
37367: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
37368: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
37369: COPY_CARRY;
37370: SET_NFLG (flgn != 0);
37371: m68k_incpc(8);
37372: fill_prefetch_0 ();
37373: put_byte(dsta,newv);
37374: }}}}}}}return 24;
37375: }
37376: unsigned long REGPARAM2 CPUFUNC(op_640_5)(uae_u32 opcode) /* ADD */
37377: {
37378: uae_u32 dstreg = opcode & 7;
37379: OpcodeFamily = 11; CurrentInstrCycles = 8;
37380: {{ uae_s16 src = get_iword_prefetch(2);
37381: { uae_s16 dst = m68k_dreg(regs, dstreg);
37382: { refill_prefetch (m68k_getpc(), 2);
37383: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
37384: { int flgs = ((uae_s16)(src)) < 0;
37385: int flgo = ((uae_s16)(dst)) < 0;
37386: int flgn = ((uae_s16)(newv)) < 0;
37387: SET_ZFLG (((uae_s16)(newv)) == 0);
37388: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
37389: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
37390: COPY_CARRY;
37391: SET_NFLG (flgn != 0);
37392: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
37393: }}}}}}m68k_incpc(4);
37394: fill_prefetch_0 ();
37395: return 8;
37396: }
37397: unsigned long REGPARAM2 CPUFUNC(op_650_5)(uae_u32 opcode) /* ADD */
37398: {
37399: uae_u32 dstreg = opcode & 7;
37400: OpcodeFamily = 11; CurrentInstrCycles = 16;
37401: {{ uae_s16 src = get_iword_prefetch(2);
37402: { uaecptr dsta = m68k_areg(regs, dstreg);
37403: if ((dsta & 1) != 0) {
37404: last_fault_for_exception_3 = dsta;
37405: last_op_for_exception_3 = opcode;
37406: last_addr_for_exception_3 = m68k_getpc() + 4;
37407: Exception(3, 0, M68000_EXC_SRC_CPU);
37408: goto endlabel2285;
37409: }
37410: {{ uae_s16 dst = get_word(dsta);
37411: { refill_prefetch (m68k_getpc(), 2);
37412: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
37413: { int flgs = ((uae_s16)(src)) < 0;
37414: int flgo = ((uae_s16)(dst)) < 0;
37415: int flgn = ((uae_s16)(newv)) < 0;
37416: SET_ZFLG (((uae_s16)(newv)) == 0);
37417: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
37418: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
37419: COPY_CARRY;
37420: SET_NFLG (flgn != 0);
37421: m68k_incpc(4);
37422: fill_prefetch_0 ();
37423: put_word(dsta,newv);
37424: }}}}}}}}endlabel2285: ;
37425: return 16;
37426: }
37427: unsigned long REGPARAM2 CPUFUNC(op_658_5)(uae_u32 opcode) /* ADD */
37428: {
37429: uae_u32 dstreg = opcode & 7;
37430: OpcodeFamily = 11; CurrentInstrCycles = 16;
37431: {{ uae_s16 src = get_iword_prefetch(2);
37432: { uaecptr dsta = m68k_areg(regs, dstreg);
37433: if ((dsta & 1) != 0) {
37434: last_fault_for_exception_3 = dsta;
37435: last_op_for_exception_3 = opcode;
37436: last_addr_for_exception_3 = m68k_getpc() + 4;
37437: Exception(3, 0, M68000_EXC_SRC_CPU);
37438: goto endlabel2286;
37439: }
37440: {{ uae_s16 dst = get_word(dsta);
37441: m68k_areg(regs, dstreg) += 2;
37442: { refill_prefetch (m68k_getpc(), 2);
37443: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
37444: { int flgs = ((uae_s16)(src)) < 0;
37445: int flgo = ((uae_s16)(dst)) < 0;
37446: int flgn = ((uae_s16)(newv)) < 0;
37447: SET_ZFLG (((uae_s16)(newv)) == 0);
37448: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
37449: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
37450: COPY_CARRY;
37451: SET_NFLG (flgn != 0);
37452: m68k_incpc(4);
37453: fill_prefetch_0 ();
37454: put_word(dsta,newv);
37455: }}}}}}}}endlabel2286: ;
37456: return 16;
37457: }
37458: unsigned long REGPARAM2 CPUFUNC(op_660_5)(uae_u32 opcode) /* ADD */
37459: {
37460: uae_u32 dstreg = opcode & 7;
37461: OpcodeFamily = 11; CurrentInstrCycles = 18;
37462: {{ uae_s16 src = get_iword_prefetch(2);
37463: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
37464: if ((dsta & 1) != 0) {
37465: last_fault_for_exception_3 = dsta;
37466: last_op_for_exception_3 = opcode;
37467: last_addr_for_exception_3 = m68k_getpc() + 4;
37468: Exception(3, 0, M68000_EXC_SRC_CPU);
37469: goto endlabel2287;
37470: }
37471: {{ uae_s16 dst = get_word(dsta);
37472: m68k_areg (regs, dstreg) = dsta;
37473: { refill_prefetch (m68k_getpc(), 2);
37474: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
37475: { int flgs = ((uae_s16)(src)) < 0;
37476: int flgo = ((uae_s16)(dst)) < 0;
37477: int flgn = ((uae_s16)(newv)) < 0;
37478: SET_ZFLG (((uae_s16)(newv)) == 0);
37479: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
37480: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
37481: COPY_CARRY;
37482: SET_NFLG (flgn != 0);
37483: m68k_incpc(4);
37484: fill_prefetch_0 ();
37485: put_word(dsta,newv);
37486: }}}}}}}}endlabel2287: ;
37487: return 18;
37488: }
37489: unsigned long REGPARAM2 CPUFUNC(op_668_5)(uae_u32 opcode) /* ADD */
37490: {
37491: uae_u32 dstreg = opcode & 7;
37492: OpcodeFamily = 11; CurrentInstrCycles = 20;
37493: {{ uae_s16 src = get_iword_prefetch(2);
37494: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
37495: if ((dsta & 1) != 0) {
37496: last_fault_for_exception_3 = dsta;
37497: last_op_for_exception_3 = opcode;
37498: last_addr_for_exception_3 = m68k_getpc() + 6;
37499: Exception(3, 0, M68000_EXC_SRC_CPU);
37500: goto endlabel2288;
37501: }
37502: {{ uae_s16 dst = get_word(dsta);
37503: { refill_prefetch (m68k_getpc(), 2);
37504: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
37505: { int flgs = ((uae_s16)(src)) < 0;
37506: int flgo = ((uae_s16)(dst)) < 0;
37507: int flgn = ((uae_s16)(newv)) < 0;
37508: SET_ZFLG (((uae_s16)(newv)) == 0);
37509: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
37510: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
37511: COPY_CARRY;
37512: SET_NFLG (flgn != 0);
37513: m68k_incpc(6);
37514: fill_prefetch_0 ();
37515: put_word(dsta,newv);
37516: }}}}}}}}endlabel2288: ;
37517: return 20;
37518: }
37519: unsigned long REGPARAM2 CPUFUNC(op_670_5)(uae_u32 opcode) /* ADD */
37520: {
37521: uae_u32 dstreg = opcode & 7;
37522: OpcodeFamily = 11; CurrentInstrCycles = 22;
37523: {{ uae_s16 src = get_iword_prefetch(2);
37524: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
37525: BusCyclePenalty += 2;
37526: if ((dsta & 1) != 0) {
37527: last_fault_for_exception_3 = dsta;
37528: last_op_for_exception_3 = opcode;
37529: last_addr_for_exception_3 = m68k_getpc() + 6;
37530: Exception(3, 0, M68000_EXC_SRC_CPU);
37531: goto endlabel2289;
37532: }
37533: {{ uae_s16 dst = get_word(dsta);
37534: { refill_prefetch (m68k_getpc(), 2);
37535: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
37536: { int flgs = ((uae_s16)(src)) < 0;
37537: int flgo = ((uae_s16)(dst)) < 0;
37538: int flgn = ((uae_s16)(newv)) < 0;
37539: SET_ZFLG (((uae_s16)(newv)) == 0);
37540: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
37541: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
37542: COPY_CARRY;
37543: SET_NFLG (flgn != 0);
37544: m68k_incpc(6);
37545: fill_prefetch_0 ();
37546: put_word(dsta,newv);
37547: }}}}}}}}endlabel2289: ;
37548: return 22;
37549: }
37550: unsigned long REGPARAM2 CPUFUNC(op_678_5)(uae_u32 opcode) /* ADD */
37551: {
37552: OpcodeFamily = 11; CurrentInstrCycles = 20;
37553: {{ uae_s16 src = get_iword_prefetch(2);
37554: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
37555: if ((dsta & 1) != 0) {
37556: last_fault_for_exception_3 = dsta;
37557: last_op_for_exception_3 = opcode;
37558: last_addr_for_exception_3 = m68k_getpc() + 6;
37559: Exception(3, 0, M68000_EXC_SRC_CPU);
37560: goto endlabel2290;
37561: }
37562: {{ uae_s16 dst = get_word(dsta);
37563: { refill_prefetch (m68k_getpc(), 2);
37564: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
37565: { int flgs = ((uae_s16)(src)) < 0;
37566: int flgo = ((uae_s16)(dst)) < 0;
37567: int flgn = ((uae_s16)(newv)) < 0;
37568: SET_ZFLG (((uae_s16)(newv)) == 0);
37569: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
37570: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
37571: COPY_CARRY;
37572: SET_NFLG (flgn != 0);
37573: m68k_incpc(6);
37574: fill_prefetch_0 ();
37575: put_word(dsta,newv);
37576: }}}}}}}}endlabel2290: ;
37577: return 20;
37578: }
37579: unsigned long REGPARAM2 CPUFUNC(op_679_5)(uae_u32 opcode) /* ADD */
37580: {
37581: OpcodeFamily = 11; CurrentInstrCycles = 24;
37582: {{ uae_s16 src = get_iword_prefetch(2);
37583: { uaecptr dsta = get_ilong_prefetch(4);
37584: if ((dsta & 1) != 0) {
37585: last_fault_for_exception_3 = dsta;
37586: last_op_for_exception_3 = opcode;
37587: last_addr_for_exception_3 = m68k_getpc() + 8;
37588: Exception(3, 0, M68000_EXC_SRC_CPU);
37589: goto endlabel2291;
37590: }
37591: {{ uae_s16 dst = get_word(dsta);
37592: { refill_prefetch (m68k_getpc(), 2);
37593: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
37594: { int flgs = ((uae_s16)(src)) < 0;
37595: int flgo = ((uae_s16)(dst)) < 0;
37596: int flgn = ((uae_s16)(newv)) < 0;
37597: SET_ZFLG (((uae_s16)(newv)) == 0);
37598: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
37599: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
37600: COPY_CARRY;
37601: SET_NFLG (flgn != 0);
37602: m68k_incpc(8);
37603: fill_prefetch_0 ();
37604: put_word(dsta,newv);
37605: }}}}}}}}endlabel2291: ;
37606: return 24;
37607: }
37608: unsigned long REGPARAM2 CPUFUNC(op_680_5)(uae_u32 opcode) /* ADD */
37609: {
37610: uae_u32 dstreg = opcode & 7;
37611: OpcodeFamily = 11; CurrentInstrCycles = 16;
37612: {{ uae_s32 src = get_ilong_prefetch(2);
37613: { uae_s32 dst = m68k_dreg(regs, dstreg);
37614: { refill_prefetch (m68k_getpc(), 2);
37615: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
37616: { int flgs = ((uae_s32)(src)) < 0;
37617: int flgo = ((uae_s32)(dst)) < 0;
37618: int flgn = ((uae_s32)(newv)) < 0;
37619: SET_ZFLG (((uae_s32)(newv)) == 0);
37620: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
37621: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
37622: COPY_CARRY;
37623: SET_NFLG (flgn != 0);
37624: m68k_dreg(regs, dstreg) = (newv);
37625: }}}}}}m68k_incpc(6);
37626: fill_prefetch_0 ();
37627: return 16;
37628: }
37629: unsigned long REGPARAM2 CPUFUNC(op_690_5)(uae_u32 opcode) /* ADD */
37630: {
37631: uae_u32 dstreg = opcode & 7;
37632: OpcodeFamily = 11; CurrentInstrCycles = 28;
37633: {{ uae_s32 src = get_ilong_prefetch(2);
37634: { uaecptr dsta = m68k_areg(regs, dstreg);
37635: if ((dsta & 1) != 0) {
37636: last_fault_for_exception_3 = dsta;
37637: last_op_for_exception_3 = opcode;
37638: last_addr_for_exception_3 = m68k_getpc() + 6;
37639: Exception(3, 0, M68000_EXC_SRC_CPU);
37640: goto endlabel2293;
37641: }
37642: {{ uae_s32 dst = get_long(dsta);
37643: { refill_prefetch (m68k_getpc(), 2);
37644: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
37645: { int flgs = ((uae_s32)(src)) < 0;
37646: int flgo = ((uae_s32)(dst)) < 0;
37647: int flgn = ((uae_s32)(newv)) < 0;
37648: SET_ZFLG (((uae_s32)(newv)) == 0);
37649: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
37650: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
37651: COPY_CARRY;
37652: SET_NFLG (flgn != 0);
37653: m68k_incpc(6);
37654: fill_prefetch_0 ();
37655: put_long(dsta,newv);
37656: }}}}}}}}endlabel2293: ;
37657: return 28;
37658: }
37659: unsigned long REGPARAM2 CPUFUNC(op_698_5)(uae_u32 opcode) /* ADD */
37660: {
37661: uae_u32 dstreg = opcode & 7;
37662: OpcodeFamily = 11; CurrentInstrCycles = 28;
37663: {{ uae_s32 src = get_ilong_prefetch(2);
37664: { uaecptr dsta = m68k_areg(regs, dstreg);
37665: if ((dsta & 1) != 0) {
37666: last_fault_for_exception_3 = dsta;
37667: last_op_for_exception_3 = opcode;
37668: last_addr_for_exception_3 = m68k_getpc() + 6;
37669: Exception(3, 0, M68000_EXC_SRC_CPU);
37670: goto endlabel2294;
37671: }
37672: {{ uae_s32 dst = get_long(dsta);
37673: m68k_areg(regs, dstreg) += 4;
37674: { refill_prefetch (m68k_getpc(), 2);
37675: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
37676: { int flgs = ((uae_s32)(src)) < 0;
37677: int flgo = ((uae_s32)(dst)) < 0;
37678: int flgn = ((uae_s32)(newv)) < 0;
37679: SET_ZFLG (((uae_s32)(newv)) == 0);
37680: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
37681: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
37682: COPY_CARRY;
37683: SET_NFLG (flgn != 0);
37684: m68k_incpc(6);
37685: fill_prefetch_0 ();
37686: put_long(dsta,newv);
37687: }}}}}}}}endlabel2294: ;
37688: return 28;
37689: }
37690: unsigned long REGPARAM2 CPUFUNC(op_6a0_5)(uae_u32 opcode) /* ADD */
37691: {
37692: uae_u32 dstreg = opcode & 7;
37693: OpcodeFamily = 11; CurrentInstrCycles = 30;
37694: {{ uae_s32 src = get_ilong_prefetch(2);
37695: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
37696: if ((dsta & 1) != 0) {
37697: last_fault_for_exception_3 = dsta;
37698: last_op_for_exception_3 = opcode;
37699: last_addr_for_exception_3 = m68k_getpc() + 6;
37700: Exception(3, 0, M68000_EXC_SRC_CPU);
37701: goto endlabel2295;
37702: }
37703: {{ uae_s32 dst = get_long(dsta);
37704: m68k_areg (regs, dstreg) = dsta;
37705: { refill_prefetch (m68k_getpc(), 2);
37706: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
37707: { int flgs = ((uae_s32)(src)) < 0;
37708: int flgo = ((uae_s32)(dst)) < 0;
37709: int flgn = ((uae_s32)(newv)) < 0;
37710: SET_ZFLG (((uae_s32)(newv)) == 0);
37711: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
37712: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
37713: COPY_CARRY;
37714: SET_NFLG (flgn != 0);
37715: m68k_incpc(6);
37716: fill_prefetch_0 ();
37717: put_long(dsta,newv);
37718: }}}}}}}}endlabel2295: ;
37719: return 30;
37720: }
37721: unsigned long REGPARAM2 CPUFUNC(op_6a8_5)(uae_u32 opcode) /* ADD */
37722: {
37723: uae_u32 dstreg = opcode & 7;
37724: OpcodeFamily = 11; CurrentInstrCycles = 32;
37725: {{ uae_s32 src = get_ilong_prefetch(2);
37726: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(6);
37727: if ((dsta & 1) != 0) {
37728: last_fault_for_exception_3 = dsta;
37729: last_op_for_exception_3 = opcode;
37730: last_addr_for_exception_3 = m68k_getpc() + 8;
37731: Exception(3, 0, M68000_EXC_SRC_CPU);
37732: goto endlabel2296;
37733: }
37734: {{ uae_s32 dst = get_long(dsta);
37735: { refill_prefetch (m68k_getpc(), 2);
37736: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
37737: { int flgs = ((uae_s32)(src)) < 0;
37738: int flgo = ((uae_s32)(dst)) < 0;
37739: int flgn = ((uae_s32)(newv)) < 0;
37740: SET_ZFLG (((uae_s32)(newv)) == 0);
37741: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
37742: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
37743: COPY_CARRY;
37744: SET_NFLG (flgn != 0);
37745: m68k_incpc(8);
37746: fill_prefetch_0 ();
37747: put_long(dsta,newv);
37748: }}}}}}}}endlabel2296: ;
37749: return 32;
37750: }
37751: unsigned long REGPARAM2 CPUFUNC(op_6b0_5)(uae_u32 opcode) /* ADD */
37752: {
37753: uae_u32 dstreg = opcode & 7;
37754: OpcodeFamily = 11; CurrentInstrCycles = 34;
37755: {{ uae_s32 src = get_ilong_prefetch(2);
37756: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(6));
37757: BusCyclePenalty += 2;
37758: if ((dsta & 1) != 0) {
37759: last_fault_for_exception_3 = dsta;
37760: last_op_for_exception_3 = opcode;
37761: last_addr_for_exception_3 = m68k_getpc() + 8;
37762: Exception(3, 0, M68000_EXC_SRC_CPU);
37763: goto endlabel2297;
37764: }
37765: {{ uae_s32 dst = get_long(dsta);
37766: { refill_prefetch (m68k_getpc(), 2);
37767: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
37768: { int flgs = ((uae_s32)(src)) < 0;
37769: int flgo = ((uae_s32)(dst)) < 0;
37770: int flgn = ((uae_s32)(newv)) < 0;
37771: SET_ZFLG (((uae_s32)(newv)) == 0);
37772: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
37773: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
37774: COPY_CARRY;
37775: SET_NFLG (flgn != 0);
37776: m68k_incpc(8);
37777: fill_prefetch_0 ();
37778: put_long(dsta,newv);
37779: }}}}}}}}endlabel2297: ;
37780: return 34;
37781: }
37782: unsigned long REGPARAM2 CPUFUNC(op_6b8_5)(uae_u32 opcode) /* ADD */
37783: {
37784: OpcodeFamily = 11; CurrentInstrCycles = 32;
37785: {{ uae_s32 src = get_ilong_prefetch(2);
37786: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(6);
37787: if ((dsta & 1) != 0) {
37788: last_fault_for_exception_3 = dsta;
37789: last_op_for_exception_3 = opcode;
37790: last_addr_for_exception_3 = m68k_getpc() + 8;
37791: Exception(3, 0, M68000_EXC_SRC_CPU);
37792: goto endlabel2298;
37793: }
37794: {{ uae_s32 dst = get_long(dsta);
37795: { refill_prefetch (m68k_getpc(), 2);
37796: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
37797: { int flgs = ((uae_s32)(src)) < 0;
37798: int flgo = ((uae_s32)(dst)) < 0;
37799: int flgn = ((uae_s32)(newv)) < 0;
37800: SET_ZFLG (((uae_s32)(newv)) == 0);
37801: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
37802: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
37803: COPY_CARRY;
37804: SET_NFLG (flgn != 0);
37805: m68k_incpc(8);
37806: fill_prefetch_0 ();
37807: put_long(dsta,newv);
37808: }}}}}}}}endlabel2298: ;
37809: return 32;
37810: }
37811: unsigned long REGPARAM2 CPUFUNC(op_6b9_5)(uae_u32 opcode) /* ADD */
37812: {
37813: OpcodeFamily = 11; CurrentInstrCycles = 36;
37814: {{ uae_s32 src = get_ilong_prefetch(2);
37815: { uaecptr dsta = get_ilong_prefetch(6);
37816: if ((dsta & 1) != 0) {
37817: last_fault_for_exception_3 = dsta;
37818: last_op_for_exception_3 = opcode;
37819: last_addr_for_exception_3 = m68k_getpc() + 10;
37820: Exception(3, 0, M68000_EXC_SRC_CPU);
37821: goto endlabel2299;
37822: }
37823: {{ uae_s32 dst = get_long(dsta);
37824: { refill_prefetch (m68k_getpc(), 2);
37825: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
37826: { int flgs = ((uae_s32)(src)) < 0;
37827: int flgo = ((uae_s32)(dst)) < 0;
37828: int flgn = ((uae_s32)(newv)) < 0;
37829: SET_ZFLG (((uae_s32)(newv)) == 0);
37830: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
37831: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
37832: COPY_CARRY;
37833: SET_NFLG (flgn != 0);
37834: m68k_incpc(10);
37835: fill_prefetch_0 ();
37836: put_long(dsta,newv);
37837: }}}}}}}}endlabel2299: ;
37838: return 36;
37839: }
37840: unsigned long REGPARAM2 CPUFUNC(op_800_5)(uae_u32 opcode) /* BTST */
37841: {
37842: uae_u32 dstreg = opcode & 7;
37843: OpcodeFamily = 21; CurrentInstrCycles = 10;
37844: {{ uae_s16 src = get_iword_prefetch(2);
37845: { uae_s32 dst = m68k_dreg(regs, dstreg);
37846: src &= 31;
37847: SET_ZFLG (1 ^ ((dst >> src) & 1));
37848: }}}m68k_incpc(4);
37849: fill_prefetch_0 ();
37850: return 10;
37851: }
37852: unsigned long REGPARAM2 CPUFUNC(op_810_5)(uae_u32 opcode) /* BTST */
37853: {
37854: uae_u32 dstreg = opcode & 7;
37855: OpcodeFamily = 21; CurrentInstrCycles = 12;
37856: {{ uae_s16 src = get_iword_prefetch(2);
37857: { uaecptr dsta = m68k_areg(regs, dstreg);
37858: { uae_s8 dst = get_byte(dsta);
37859: src &= 7;
37860: SET_ZFLG (1 ^ ((dst >> src) & 1));
37861: }}}}m68k_incpc(4);
37862: fill_prefetch_0 ();
37863: return 12;
37864: }
37865: unsigned long REGPARAM2 CPUFUNC(op_818_5)(uae_u32 opcode) /* BTST */
37866: {
37867: uae_u32 dstreg = opcode & 7;
37868: OpcodeFamily = 21; CurrentInstrCycles = 12;
37869: {{ uae_s16 src = get_iword_prefetch(2);
37870: { uaecptr dsta = m68k_areg(regs, dstreg);
37871: { uae_s8 dst = get_byte(dsta);
37872: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
37873: src &= 7;
37874: SET_ZFLG (1 ^ ((dst >> src) & 1));
37875: }}}}m68k_incpc(4);
37876: fill_prefetch_0 ();
37877: return 12;
37878: }
37879: unsigned long REGPARAM2 CPUFUNC(op_820_5)(uae_u32 opcode) /* BTST */
37880: {
37881: uae_u32 dstreg = opcode & 7;
37882: OpcodeFamily = 21; CurrentInstrCycles = 14;
37883: {{ uae_s16 src = get_iword_prefetch(2);
37884: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
37885: { uae_s8 dst = get_byte(dsta);
37886: m68k_areg (regs, dstreg) = dsta;
37887: src &= 7;
37888: SET_ZFLG (1 ^ ((dst >> src) & 1));
37889: }}}}m68k_incpc(4);
37890: fill_prefetch_0 ();
37891: return 14;
37892: }
37893: unsigned long REGPARAM2 CPUFUNC(op_828_5)(uae_u32 opcode) /* BTST */
37894: {
37895: uae_u32 dstreg = opcode & 7;
37896: OpcodeFamily = 21; CurrentInstrCycles = 16;
37897: {{ uae_s16 src = get_iword_prefetch(2);
37898: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
37899: { uae_s8 dst = get_byte(dsta);
37900: src &= 7;
37901: SET_ZFLG (1 ^ ((dst >> src) & 1));
37902: }}}}m68k_incpc(6);
37903: fill_prefetch_0 ();
37904: return 16;
37905: }
37906: unsigned long REGPARAM2 CPUFUNC(op_830_5)(uae_u32 opcode) /* BTST */
37907: {
37908: uae_u32 dstreg = opcode & 7;
37909: OpcodeFamily = 21; CurrentInstrCycles = 18;
37910: {{ uae_s16 src = get_iword_prefetch(2);
37911: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
37912: BusCyclePenalty += 2;
37913: { uae_s8 dst = get_byte(dsta);
37914: src &= 7;
37915: SET_ZFLG (1 ^ ((dst >> src) & 1));
37916: }}}}m68k_incpc(6);
37917: fill_prefetch_0 ();
37918: return 18;
37919: }
37920: unsigned long REGPARAM2 CPUFUNC(op_838_5)(uae_u32 opcode) /* BTST */
37921: {
37922: OpcodeFamily = 21; CurrentInstrCycles = 16;
37923: {{ uae_s16 src = get_iword_prefetch(2);
37924: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
37925: { uae_s8 dst = get_byte(dsta);
37926: src &= 7;
37927: SET_ZFLG (1 ^ ((dst >> src) & 1));
37928: }}}}m68k_incpc(6);
37929: fill_prefetch_0 ();
37930: return 16;
37931: }
37932: unsigned long REGPARAM2 CPUFUNC(op_839_5)(uae_u32 opcode) /* BTST */
37933: {
37934: OpcodeFamily = 21; CurrentInstrCycles = 20;
37935: {{ uae_s16 src = get_iword_prefetch(2);
37936: { uaecptr dsta = get_ilong_prefetch(4);
37937: { uae_s8 dst = get_byte(dsta);
37938: src &= 7;
37939: SET_ZFLG (1 ^ ((dst >> src) & 1));
37940: }}}}m68k_incpc(8);
37941: fill_prefetch_0 ();
37942: return 20;
37943: }
37944: unsigned long REGPARAM2 CPUFUNC(op_83a_5)(uae_u32 opcode) /* BTST */
37945: {
37946: uae_u32 dstreg = 2;
37947: OpcodeFamily = 21; CurrentInstrCycles = 16;
37948: {{ uae_s16 src = get_iword_prefetch(2);
37949: { uaecptr dsta = m68k_getpc () + 4;
37950: dsta += (uae_s32)(uae_s16)get_iword_prefetch(4);
37951: { uae_s8 dst = get_byte(dsta);
37952: src &= 7;
37953: SET_ZFLG (1 ^ ((dst >> src) & 1));
37954: }}}}m68k_incpc(6);
37955: fill_prefetch_0 ();
37956: return 16;
37957: }
37958: unsigned long REGPARAM2 CPUFUNC(op_83b_5)(uae_u32 opcode) /* BTST */
37959: {
37960: uae_u32 dstreg = 3;
37961: OpcodeFamily = 21; CurrentInstrCycles = 18;
37962: {{ uae_s16 src = get_iword_prefetch(2);
37963: { uaecptr tmppc = m68k_getpc() + 4;
37964: uaecptr dsta = get_disp_ea_000(tmppc, get_iword_prefetch(4));
37965: BusCyclePenalty += 2;
37966: { uae_s8 dst = get_byte(dsta);
37967: src &= 7;
37968: SET_ZFLG (1 ^ ((dst >> src) & 1));
37969: }}}}m68k_incpc(6);
37970: fill_prefetch_0 ();
37971: return 18;
37972: }
37973: unsigned long REGPARAM2 CPUFUNC(op_83c_5)(uae_u32 opcode) /* BTST */
37974: {
37975: OpcodeFamily = 21; CurrentInstrCycles = 12;
37976: {{ uae_s16 src = get_iword_prefetch(2);
37977: { uae_s8 dst = get_ibyte_prefetch(4);
37978: src &= 7;
37979: SET_ZFLG (1 ^ ((dst >> src) & 1));
37980: }}}m68k_incpc(6);
37981: fill_prefetch_0 ();
37982: return 12;
37983: }
37984: unsigned long REGPARAM2 CPUFUNC(op_840_5)(uae_u32 opcode) /* BCHG */
37985: {
37986: uae_u32 dstreg = opcode & 7;
37987: OpcodeFamily = 22; CurrentInstrCycles = 12;
37988: {{ uae_s16 src = get_iword_prefetch(2);
37989: { uae_s32 dst = m68k_dreg(regs, dstreg);
37990: src &= 31;
37991: dst ^= (1 << src);
37992: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
37993: m68k_dreg(regs, dstreg) = (dst);
37994: }}}m68k_incpc(4);
37995: fill_prefetch_0 ();
37996: return 12;
37997: }
37998: unsigned long REGPARAM2 CPUFUNC(op_850_5)(uae_u32 opcode) /* BCHG */
37999: {
38000: uae_u32 dstreg = opcode & 7;
38001: OpcodeFamily = 22; CurrentInstrCycles = 16;
38002: {{ uae_s16 src = get_iword_prefetch(2);
38003: { uaecptr dsta = m68k_areg(regs, dstreg);
38004: { uae_s8 dst = get_byte(dsta);
38005: src &= 7;
38006: dst ^= (1 << src);
38007: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
38008: m68k_incpc(4);
38009: fill_prefetch_0 ();
38010: put_byte(dsta,dst);
38011: }}}}return 16;
38012: }
38013: unsigned long REGPARAM2 CPUFUNC(op_858_5)(uae_u32 opcode) /* BCHG */
38014: {
38015: uae_u32 dstreg = opcode & 7;
38016: OpcodeFamily = 22; CurrentInstrCycles = 16;
38017: {{ uae_s16 src = get_iword_prefetch(2);
38018: { uaecptr dsta = m68k_areg(regs, dstreg);
38019: { uae_s8 dst = get_byte(dsta);
38020: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
38021: src &= 7;
38022: dst ^= (1 << src);
38023: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
38024: m68k_incpc(4);
38025: fill_prefetch_0 ();
38026: put_byte(dsta,dst);
38027: }}}}return 16;
38028: }
38029: unsigned long REGPARAM2 CPUFUNC(op_860_5)(uae_u32 opcode) /* BCHG */
38030: {
38031: uae_u32 dstreg = opcode & 7;
38032: OpcodeFamily = 22; CurrentInstrCycles = 18;
38033: {{ uae_s16 src = get_iword_prefetch(2);
38034: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
38035: { uae_s8 dst = get_byte(dsta);
38036: m68k_areg (regs, dstreg) = dsta;
38037: src &= 7;
38038: dst ^= (1 << src);
38039: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
38040: m68k_incpc(4);
38041: fill_prefetch_0 ();
38042: put_byte(dsta,dst);
38043: }}}}return 18;
38044: }
38045: unsigned long REGPARAM2 CPUFUNC(op_868_5)(uae_u32 opcode) /* BCHG */
38046: {
38047: uae_u32 dstreg = opcode & 7;
38048: OpcodeFamily = 22; CurrentInstrCycles = 20;
38049: {{ uae_s16 src = get_iword_prefetch(2);
38050: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
38051: { uae_s8 dst = get_byte(dsta);
38052: src &= 7;
38053: dst ^= (1 << src);
38054: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
38055: m68k_incpc(6);
38056: fill_prefetch_0 ();
38057: put_byte(dsta,dst);
38058: }}}}return 20;
38059: }
38060: unsigned long REGPARAM2 CPUFUNC(op_870_5)(uae_u32 opcode) /* BCHG */
38061: {
38062: uae_u32 dstreg = opcode & 7;
38063: OpcodeFamily = 22; CurrentInstrCycles = 22;
38064: {{ uae_s16 src = get_iword_prefetch(2);
38065: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
38066: BusCyclePenalty += 2;
38067: { uae_s8 dst = get_byte(dsta);
38068: src &= 7;
38069: dst ^= (1 << src);
38070: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
38071: m68k_incpc(6);
38072: fill_prefetch_0 ();
38073: put_byte(dsta,dst);
38074: }}}}return 22;
38075: }
38076: unsigned long REGPARAM2 CPUFUNC(op_878_5)(uae_u32 opcode) /* BCHG */
38077: {
38078: OpcodeFamily = 22; CurrentInstrCycles = 20;
38079: {{ uae_s16 src = get_iword_prefetch(2);
38080: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
38081: { uae_s8 dst = get_byte(dsta);
38082: src &= 7;
38083: dst ^= (1 << src);
38084: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
38085: m68k_incpc(6);
38086: fill_prefetch_0 ();
38087: put_byte(dsta,dst);
38088: }}}}return 20;
38089: }
38090: unsigned long REGPARAM2 CPUFUNC(op_879_5)(uae_u32 opcode) /* BCHG */
38091: {
38092: OpcodeFamily = 22; CurrentInstrCycles = 24;
38093: {{ uae_s16 src = get_iword_prefetch(2);
38094: { uaecptr dsta = get_ilong_prefetch(4);
38095: { uae_s8 dst = get_byte(dsta);
38096: src &= 7;
38097: dst ^= (1 << src);
38098: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
38099: m68k_incpc(8);
38100: fill_prefetch_0 ();
38101: put_byte(dsta,dst);
38102: }}}}return 24;
38103: }
38104: unsigned long REGPARAM2 CPUFUNC(op_87a_5)(uae_u32 opcode) /* BCHG */
38105: {
38106: uae_u32 dstreg = 2;
38107: OpcodeFamily = 22; CurrentInstrCycles = 20;
38108: {{ uae_s16 src = get_iword_prefetch(2);
38109: { uaecptr dsta = m68k_getpc () + 4;
38110: dsta += (uae_s32)(uae_s16)get_iword_prefetch(4);
38111: { uae_s8 dst = get_byte(dsta);
38112: src &= 7;
38113: dst ^= (1 << src);
38114: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
38115: m68k_incpc(6);
38116: fill_prefetch_0 ();
38117: put_byte(dsta,dst);
38118: }}}}return 20;
38119: }
38120: unsigned long REGPARAM2 CPUFUNC(op_87b_5)(uae_u32 opcode) /* BCHG */
38121: {
38122: uae_u32 dstreg = 3;
38123: OpcodeFamily = 22; CurrentInstrCycles = 22;
38124: {{ uae_s16 src = get_iword_prefetch(2);
38125: { uaecptr tmppc = m68k_getpc() + 4;
38126: uaecptr dsta = get_disp_ea_000(tmppc, get_iword_prefetch(4));
38127: BusCyclePenalty += 2;
38128: { uae_s8 dst = get_byte(dsta);
38129: src &= 7;
38130: dst ^= (1 << src);
38131: SET_ZFLG (((uae_u32)dst & (1 << src)) >> src);
38132: m68k_incpc(6);
38133: fill_prefetch_0 ();
38134: put_byte(dsta,dst);
38135: }}}}return 22;
38136: }
38137: unsigned long REGPARAM2 CPUFUNC(op_880_5)(uae_u32 opcode) /* BCLR */
38138: {
38139: uae_u32 dstreg = opcode & 7;
38140: OpcodeFamily = 23; CurrentInstrCycles = 14;
38141: {{ uae_s16 src = get_iword_prefetch(2);
38142: { uae_s32 dst = m68k_dreg(regs, dstreg);
38143: src &= 31;
38144: SET_ZFLG (1 ^ ((dst >> src) & 1));
38145: dst &= ~(1 << src);
38146: m68k_dreg(regs, dstreg) = (dst);
38147: if ( src < 16 ) { m68k_incpc(4); return 12; }
38148: }}}m68k_incpc(4);
38149: fill_prefetch_0 ();
38150: return 14;
38151: }
38152: unsigned long REGPARAM2 CPUFUNC(op_890_5)(uae_u32 opcode) /* BCLR */
38153: {
38154: uae_u32 dstreg = opcode & 7;
38155: OpcodeFamily = 23; CurrentInstrCycles = 16;
38156: {{ uae_s16 src = get_iword_prefetch(2);
38157: { uaecptr dsta = m68k_areg(regs, dstreg);
38158: { uae_s8 dst = get_byte(dsta);
38159: src &= 7;
38160: SET_ZFLG (1 ^ ((dst >> src) & 1));
38161: dst &= ~(1 << src);
38162: m68k_incpc(4);
38163: fill_prefetch_0 ();
38164: put_byte(dsta,dst);
38165: }}}}return 16;
38166: }
38167: unsigned long REGPARAM2 CPUFUNC(op_898_5)(uae_u32 opcode) /* BCLR */
38168: {
38169: uae_u32 dstreg = opcode & 7;
38170: OpcodeFamily = 23; CurrentInstrCycles = 16;
38171: {{ uae_s16 src = get_iword_prefetch(2);
38172: { uaecptr dsta = m68k_areg(regs, dstreg);
38173: { uae_s8 dst = get_byte(dsta);
38174: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
38175: src &= 7;
38176: SET_ZFLG (1 ^ ((dst >> src) & 1));
38177: dst &= ~(1 << src);
38178: m68k_incpc(4);
38179: fill_prefetch_0 ();
38180: put_byte(dsta,dst);
38181: }}}}return 16;
38182: }
38183: unsigned long REGPARAM2 CPUFUNC(op_8a0_5)(uae_u32 opcode) /* BCLR */
38184: {
38185: uae_u32 dstreg = opcode & 7;
38186: OpcodeFamily = 23; CurrentInstrCycles = 18;
38187: {{ uae_s16 src = get_iword_prefetch(2);
38188: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
38189: { uae_s8 dst = get_byte(dsta);
38190: m68k_areg (regs, dstreg) = dsta;
38191: src &= 7;
38192: SET_ZFLG (1 ^ ((dst >> src) & 1));
38193: dst &= ~(1 << src);
38194: m68k_incpc(4);
38195: fill_prefetch_0 ();
38196: put_byte(dsta,dst);
38197: }}}}return 18;
38198: }
38199: unsigned long REGPARAM2 CPUFUNC(op_8a8_5)(uae_u32 opcode) /* BCLR */
38200: {
38201: uae_u32 dstreg = opcode & 7;
38202: OpcodeFamily = 23; CurrentInstrCycles = 20;
38203: {{ uae_s16 src = get_iword_prefetch(2);
38204: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
38205: { uae_s8 dst = get_byte(dsta);
38206: src &= 7;
38207: SET_ZFLG (1 ^ ((dst >> src) & 1));
38208: dst &= ~(1 << src);
38209: m68k_incpc(6);
38210: fill_prefetch_0 ();
38211: put_byte(dsta,dst);
38212: }}}}return 20;
38213: }
38214: unsigned long REGPARAM2 CPUFUNC(op_8b0_5)(uae_u32 opcode) /* BCLR */
38215: {
38216: uae_u32 dstreg = opcode & 7;
38217: OpcodeFamily = 23; CurrentInstrCycles = 22;
38218: {{ uae_s16 src = get_iword_prefetch(2);
38219: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
38220: BusCyclePenalty += 2;
38221: { uae_s8 dst = get_byte(dsta);
38222: src &= 7;
38223: SET_ZFLG (1 ^ ((dst >> src) & 1));
38224: dst &= ~(1 << src);
38225: m68k_incpc(6);
38226: fill_prefetch_0 ();
38227: put_byte(dsta,dst);
38228: }}}}return 22;
38229: }
38230: unsigned long REGPARAM2 CPUFUNC(op_8b8_5)(uae_u32 opcode) /* BCLR */
38231: {
38232: OpcodeFamily = 23; CurrentInstrCycles = 20;
38233: {{ uae_s16 src = get_iword_prefetch(2);
38234: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
38235: { uae_s8 dst = get_byte(dsta);
38236: src &= 7;
38237: SET_ZFLG (1 ^ ((dst >> src) & 1));
38238: dst &= ~(1 << src);
38239: m68k_incpc(6);
38240: fill_prefetch_0 ();
38241: put_byte(dsta,dst);
38242: }}}}return 20;
38243: }
38244: unsigned long REGPARAM2 CPUFUNC(op_8b9_5)(uae_u32 opcode) /* BCLR */
38245: {
38246: OpcodeFamily = 23; CurrentInstrCycles = 24;
38247: {{ uae_s16 src = get_iword_prefetch(2);
38248: { uaecptr dsta = get_ilong_prefetch(4);
38249: { uae_s8 dst = get_byte(dsta);
38250: src &= 7;
38251: SET_ZFLG (1 ^ ((dst >> src) & 1));
38252: dst &= ~(1 << src);
38253: m68k_incpc(8);
38254: fill_prefetch_0 ();
38255: put_byte(dsta,dst);
38256: }}}}return 24;
38257: }
38258: unsigned long REGPARAM2 CPUFUNC(op_8ba_5)(uae_u32 opcode) /* BCLR */
38259: {
38260: uae_u32 dstreg = 2;
38261: OpcodeFamily = 23; CurrentInstrCycles = 20;
38262: {{ uae_s16 src = get_iword_prefetch(2);
38263: { uaecptr dsta = m68k_getpc () + 4;
38264: dsta += (uae_s32)(uae_s16)get_iword_prefetch(4);
38265: { uae_s8 dst = get_byte(dsta);
38266: src &= 7;
38267: SET_ZFLG (1 ^ ((dst >> src) & 1));
38268: dst &= ~(1 << src);
38269: m68k_incpc(6);
38270: fill_prefetch_0 ();
38271: put_byte(dsta,dst);
38272: }}}}return 20;
38273: }
38274: unsigned long REGPARAM2 CPUFUNC(op_8bb_5)(uae_u32 opcode) /* BCLR */
38275: {
38276: uae_u32 dstreg = 3;
38277: OpcodeFamily = 23; CurrentInstrCycles = 22;
38278: {{ uae_s16 src = get_iword_prefetch(2);
38279: { uaecptr tmppc = m68k_getpc() + 4;
38280: uaecptr dsta = get_disp_ea_000(tmppc, get_iword_prefetch(4));
38281: BusCyclePenalty += 2;
38282: { uae_s8 dst = get_byte(dsta);
38283: src &= 7;
38284: SET_ZFLG (1 ^ ((dst >> src) & 1));
38285: dst &= ~(1 << src);
38286: m68k_incpc(6);
38287: fill_prefetch_0 ();
38288: put_byte(dsta,dst);
38289: }}}}return 22;
38290: }
38291: unsigned long REGPARAM2 CPUFUNC(op_8c0_5)(uae_u32 opcode) /* BSET */
38292: {
38293: uae_u32 dstreg = opcode & 7;
38294: OpcodeFamily = 24; CurrentInstrCycles = 12;
38295: {{ uae_s16 src = get_iword_prefetch(2);
38296: { uae_s32 dst = m68k_dreg(regs, dstreg);
38297: src &= 31;
38298: SET_ZFLG (1 ^ ((dst >> src) & 1));
38299: dst |= (1 << src);
38300: m68k_dreg(regs, dstreg) = (dst);
38301: }}}m68k_incpc(4);
38302: fill_prefetch_0 ();
38303: return 12;
38304: }
38305: unsigned long REGPARAM2 CPUFUNC(op_8d0_5)(uae_u32 opcode) /* BSET */
38306: {
38307: uae_u32 dstreg = opcode & 7;
38308: OpcodeFamily = 24; CurrentInstrCycles = 16;
38309: {{ uae_s16 src = get_iword_prefetch(2);
38310: { uaecptr dsta = m68k_areg(regs, dstreg);
38311: { uae_s8 dst = get_byte(dsta);
38312: src &= 7;
38313: SET_ZFLG (1 ^ ((dst >> src) & 1));
38314: dst |= (1 << src);
38315: m68k_incpc(4);
38316: fill_prefetch_0 ();
38317: put_byte(dsta,dst);
38318: }}}}return 16;
38319: }
38320: unsigned long REGPARAM2 CPUFUNC(op_8d8_5)(uae_u32 opcode) /* BSET */
38321: {
38322: uae_u32 dstreg = opcode & 7;
38323: OpcodeFamily = 24; CurrentInstrCycles = 16;
38324: {{ uae_s16 src = get_iword_prefetch(2);
38325: { uaecptr dsta = m68k_areg(regs, dstreg);
38326: { uae_s8 dst = get_byte(dsta);
38327: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
38328: src &= 7;
38329: SET_ZFLG (1 ^ ((dst >> src) & 1));
38330: dst |= (1 << src);
38331: m68k_incpc(4);
38332: fill_prefetch_0 ();
38333: put_byte(dsta,dst);
38334: }}}}return 16;
38335: }
38336: unsigned long REGPARAM2 CPUFUNC(op_8e0_5)(uae_u32 opcode) /* BSET */
38337: {
38338: uae_u32 dstreg = opcode & 7;
38339: OpcodeFamily = 24; CurrentInstrCycles = 18;
38340: {{ uae_s16 src = get_iword_prefetch(2);
38341: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
38342: { uae_s8 dst = get_byte(dsta);
38343: m68k_areg (regs, dstreg) = dsta;
38344: src &= 7;
38345: SET_ZFLG (1 ^ ((dst >> src) & 1));
38346: dst |= (1 << src);
38347: m68k_incpc(4);
38348: fill_prefetch_0 ();
38349: put_byte(dsta,dst);
38350: }}}}return 18;
38351: }
38352: unsigned long REGPARAM2 CPUFUNC(op_8e8_5)(uae_u32 opcode) /* BSET */
38353: {
38354: uae_u32 dstreg = opcode & 7;
38355: OpcodeFamily = 24; CurrentInstrCycles = 20;
38356: {{ uae_s16 src = get_iword_prefetch(2);
38357: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
38358: { uae_s8 dst = get_byte(dsta);
38359: src &= 7;
38360: SET_ZFLG (1 ^ ((dst >> src) & 1));
38361: dst |= (1 << src);
38362: m68k_incpc(6);
38363: fill_prefetch_0 ();
38364: put_byte(dsta,dst);
38365: }}}}return 20;
38366: }
38367: unsigned long REGPARAM2 CPUFUNC(op_8f0_5)(uae_u32 opcode) /* BSET */
38368: {
38369: uae_u32 dstreg = opcode & 7;
38370: OpcodeFamily = 24; CurrentInstrCycles = 22;
38371: {{ uae_s16 src = get_iword_prefetch(2);
38372: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
38373: BusCyclePenalty += 2;
38374: { uae_s8 dst = get_byte(dsta);
38375: src &= 7;
38376: SET_ZFLG (1 ^ ((dst >> src) & 1));
38377: dst |= (1 << src);
38378: m68k_incpc(6);
38379: fill_prefetch_0 ();
38380: put_byte(dsta,dst);
38381: }}}}return 22;
38382: }
38383: unsigned long REGPARAM2 CPUFUNC(op_8f8_5)(uae_u32 opcode) /* BSET */
38384: {
38385: OpcodeFamily = 24; CurrentInstrCycles = 20;
38386: {{ uae_s16 src = get_iword_prefetch(2);
38387: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
38388: { uae_s8 dst = get_byte(dsta);
38389: src &= 7;
38390: SET_ZFLG (1 ^ ((dst >> src) & 1));
38391: dst |= (1 << src);
38392: m68k_incpc(6);
38393: fill_prefetch_0 ();
38394: put_byte(dsta,dst);
38395: }}}}return 20;
38396: }
38397: unsigned long REGPARAM2 CPUFUNC(op_8f9_5)(uae_u32 opcode) /* BSET */
38398: {
38399: OpcodeFamily = 24; CurrentInstrCycles = 24;
38400: {{ uae_s16 src = get_iword_prefetch(2);
38401: { uaecptr dsta = get_ilong_prefetch(4);
38402: { uae_s8 dst = get_byte(dsta);
38403: src &= 7;
38404: SET_ZFLG (1 ^ ((dst >> src) & 1));
38405: dst |= (1 << src);
38406: m68k_incpc(8);
38407: fill_prefetch_0 ();
38408: put_byte(dsta,dst);
38409: }}}}return 24;
38410: }
38411: unsigned long REGPARAM2 CPUFUNC(op_8fa_5)(uae_u32 opcode) /* BSET */
38412: {
38413: uae_u32 dstreg = 2;
38414: OpcodeFamily = 24; CurrentInstrCycles = 20;
38415: {{ uae_s16 src = get_iword_prefetch(2);
38416: { uaecptr dsta = m68k_getpc () + 4;
38417: dsta += (uae_s32)(uae_s16)get_iword_prefetch(4);
38418: { uae_s8 dst = get_byte(dsta);
38419: src &= 7;
38420: SET_ZFLG (1 ^ ((dst >> src) & 1));
38421: dst |= (1 << src);
38422: m68k_incpc(6);
38423: fill_prefetch_0 ();
38424: put_byte(dsta,dst);
38425: }}}}return 20;
38426: }
38427: unsigned long REGPARAM2 CPUFUNC(op_8fb_5)(uae_u32 opcode) /* BSET */
38428: {
38429: uae_u32 dstreg = 3;
38430: OpcodeFamily = 24; CurrentInstrCycles = 22;
38431: {{ uae_s16 src = get_iword_prefetch(2);
38432: { uaecptr tmppc = m68k_getpc() + 4;
38433: uaecptr dsta = get_disp_ea_000(tmppc, get_iword_prefetch(4));
38434: BusCyclePenalty += 2;
38435: { uae_s8 dst = get_byte(dsta);
38436: src &= 7;
38437: SET_ZFLG (1 ^ ((dst >> src) & 1));
38438: dst |= (1 << src);
38439: m68k_incpc(6);
38440: fill_prefetch_0 ();
38441: put_byte(dsta,dst);
38442: }}}}return 22;
38443: }
38444: unsigned long REGPARAM2 CPUFUNC(op_a00_5)(uae_u32 opcode) /* EOR */
38445: {
38446: uae_u32 dstreg = opcode & 7;
38447: OpcodeFamily = 3; CurrentInstrCycles = 8;
38448: {{ uae_s8 src = get_ibyte_prefetch(2);
38449: { uae_s8 dst = m68k_dreg(regs, dstreg);
38450: src ^= dst;
38451: CLEAR_CZNV;
38452: SET_ZFLG (((uae_s8)(src)) == 0);
38453: SET_NFLG (((uae_s8)(src)) < 0);
38454: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
38455: }}}m68k_incpc(4);
38456: fill_prefetch_0 ();
38457: return 8;
38458: }
38459: unsigned long REGPARAM2 CPUFUNC(op_a10_5)(uae_u32 opcode) /* EOR */
38460: {
38461: uae_u32 dstreg = opcode & 7;
38462: OpcodeFamily = 3; CurrentInstrCycles = 16;
38463: {{ uae_s8 src = get_ibyte_prefetch(2);
38464: { uaecptr dsta = m68k_areg(regs, dstreg);
38465: { uae_s8 dst = get_byte(dsta);
38466: src ^= dst;
38467: CLEAR_CZNV;
38468: SET_ZFLG (((uae_s8)(src)) == 0);
38469: SET_NFLG (((uae_s8)(src)) < 0);
38470: m68k_incpc(4);
38471: fill_prefetch_0 ();
38472: put_byte(dsta,src);
38473: }}}}return 16;
38474: }
38475: unsigned long REGPARAM2 CPUFUNC(op_a18_5)(uae_u32 opcode) /* EOR */
38476: {
38477: uae_u32 dstreg = opcode & 7;
38478: OpcodeFamily = 3; CurrentInstrCycles = 16;
38479: {{ uae_s8 src = get_ibyte_prefetch(2);
38480: { uaecptr dsta = m68k_areg(regs, dstreg);
38481: { uae_s8 dst = get_byte(dsta);
38482: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
38483: src ^= dst;
38484: CLEAR_CZNV;
38485: SET_ZFLG (((uae_s8)(src)) == 0);
38486: SET_NFLG (((uae_s8)(src)) < 0);
38487: m68k_incpc(4);
38488: fill_prefetch_0 ();
38489: put_byte(dsta,src);
38490: }}}}return 16;
38491: }
38492: unsigned long REGPARAM2 CPUFUNC(op_a20_5)(uae_u32 opcode) /* EOR */
38493: {
38494: uae_u32 dstreg = opcode & 7;
38495: OpcodeFamily = 3; CurrentInstrCycles = 18;
38496: {{ uae_s8 src = get_ibyte_prefetch(2);
38497: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
38498: { uae_s8 dst = get_byte(dsta);
38499: m68k_areg (regs, dstreg) = dsta;
38500: src ^= dst;
38501: CLEAR_CZNV;
38502: SET_ZFLG (((uae_s8)(src)) == 0);
38503: SET_NFLG (((uae_s8)(src)) < 0);
38504: m68k_incpc(4);
38505: fill_prefetch_0 ();
38506: put_byte(dsta,src);
38507: }}}}return 18;
38508: }
38509: unsigned long REGPARAM2 CPUFUNC(op_a28_5)(uae_u32 opcode) /* EOR */
38510: {
38511: uae_u32 dstreg = opcode & 7;
38512: OpcodeFamily = 3; CurrentInstrCycles = 20;
38513: {{ uae_s8 src = get_ibyte_prefetch(2);
38514: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
38515: { uae_s8 dst = get_byte(dsta);
38516: src ^= dst;
38517: CLEAR_CZNV;
38518: SET_ZFLG (((uae_s8)(src)) == 0);
38519: SET_NFLG (((uae_s8)(src)) < 0);
38520: m68k_incpc(6);
38521: fill_prefetch_0 ();
38522: put_byte(dsta,src);
38523: }}}}return 20;
38524: }
38525: unsigned long REGPARAM2 CPUFUNC(op_a30_5)(uae_u32 opcode) /* EOR */
38526: {
38527: uae_u32 dstreg = opcode & 7;
38528: OpcodeFamily = 3; CurrentInstrCycles = 22;
38529: {{ uae_s8 src = get_ibyte_prefetch(2);
38530: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
38531: BusCyclePenalty += 2;
38532: { uae_s8 dst = get_byte(dsta);
38533: src ^= dst;
38534: CLEAR_CZNV;
38535: SET_ZFLG (((uae_s8)(src)) == 0);
38536: SET_NFLG (((uae_s8)(src)) < 0);
38537: m68k_incpc(6);
38538: fill_prefetch_0 ();
38539: put_byte(dsta,src);
38540: }}}}return 22;
38541: }
38542: unsigned long REGPARAM2 CPUFUNC(op_a38_5)(uae_u32 opcode) /* EOR */
38543: {
38544: OpcodeFamily = 3; CurrentInstrCycles = 20;
38545: {{ uae_s8 src = get_ibyte_prefetch(2);
38546: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
38547: { uae_s8 dst = get_byte(dsta);
38548: src ^= dst;
38549: CLEAR_CZNV;
38550: SET_ZFLG (((uae_s8)(src)) == 0);
38551: SET_NFLG (((uae_s8)(src)) < 0);
38552: m68k_incpc(6);
38553: fill_prefetch_0 ();
38554: put_byte(dsta,src);
38555: }}}}return 20;
38556: }
38557: unsigned long REGPARAM2 CPUFUNC(op_a39_5)(uae_u32 opcode) /* EOR */
38558: {
38559: OpcodeFamily = 3; CurrentInstrCycles = 24;
38560: {{ uae_s8 src = get_ibyte_prefetch(2);
38561: { uaecptr dsta = get_ilong_prefetch(4);
38562: { uae_s8 dst = get_byte(dsta);
38563: src ^= dst;
38564: CLEAR_CZNV;
38565: SET_ZFLG (((uae_s8)(src)) == 0);
38566: SET_NFLG (((uae_s8)(src)) < 0);
38567: m68k_incpc(8);
38568: fill_prefetch_0 ();
38569: put_byte(dsta,src);
38570: }}}}return 24;
38571: }
38572: unsigned long REGPARAM2 CPUFUNC(op_a3c_5)(uae_u32 opcode) /* EORSR */
38573: {
38574: OpcodeFamily = 6; CurrentInstrCycles = 20;
38575: { MakeSR();
38576: { uae_s16 src = get_iword_prefetch(2);
38577: src &= 0xFF;
38578: regs.sr ^= src;
38579: MakeFromSR();
38580: }}m68k_incpc(4);
38581: fill_prefetch_0 ();
38582: return 20;
38583: }
38584: unsigned long REGPARAM2 CPUFUNC(op_a40_5)(uae_u32 opcode) /* EOR */
38585: {
38586: uae_u32 dstreg = opcode & 7;
38587: OpcodeFamily = 3; CurrentInstrCycles = 8;
38588: {{ uae_s16 src = get_iword_prefetch(2);
38589: { uae_s16 dst = m68k_dreg(regs, dstreg);
38590: src ^= dst;
38591: CLEAR_CZNV;
38592: SET_ZFLG (((uae_s16)(src)) == 0);
38593: SET_NFLG (((uae_s16)(src)) < 0);
38594: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
38595: }}}m68k_incpc(4);
38596: fill_prefetch_0 ();
38597: return 8;
38598: }
38599: unsigned long REGPARAM2 CPUFUNC(op_a50_5)(uae_u32 opcode) /* EOR */
38600: {
38601: uae_u32 dstreg = opcode & 7;
38602: OpcodeFamily = 3; CurrentInstrCycles = 16;
38603: {{ uae_s16 src = get_iword_prefetch(2);
38604: { uaecptr dsta = m68k_areg(regs, dstreg);
38605: if ((dsta & 1) != 0) {
38606: last_fault_for_exception_3 = dsta;
38607: last_op_for_exception_3 = opcode;
38608: last_addr_for_exception_3 = m68k_getpc() + 4;
38609: Exception(3, 0, M68000_EXC_SRC_CPU);
38610: goto endlabel2351;
38611: }
38612: {{ uae_s16 dst = get_word(dsta);
38613: src ^= dst;
38614: CLEAR_CZNV;
38615: SET_ZFLG (((uae_s16)(src)) == 0);
38616: SET_NFLG (((uae_s16)(src)) < 0);
38617: m68k_incpc(4);
38618: fill_prefetch_0 ();
38619: put_word(dsta,src);
38620: }}}}}endlabel2351: ;
38621: return 16;
38622: }
38623: unsigned long REGPARAM2 CPUFUNC(op_a58_5)(uae_u32 opcode) /* EOR */
38624: {
38625: uae_u32 dstreg = opcode & 7;
38626: OpcodeFamily = 3; CurrentInstrCycles = 16;
38627: {{ uae_s16 src = get_iword_prefetch(2);
38628: { uaecptr dsta = m68k_areg(regs, dstreg);
38629: if ((dsta & 1) != 0) {
38630: last_fault_for_exception_3 = dsta;
38631: last_op_for_exception_3 = opcode;
38632: last_addr_for_exception_3 = m68k_getpc() + 4;
38633: Exception(3, 0, M68000_EXC_SRC_CPU);
38634: goto endlabel2352;
38635: }
38636: {{ uae_s16 dst = get_word(dsta);
38637: m68k_areg(regs, dstreg) += 2;
38638: src ^= dst;
38639: CLEAR_CZNV;
38640: SET_ZFLG (((uae_s16)(src)) == 0);
38641: SET_NFLG (((uae_s16)(src)) < 0);
38642: m68k_incpc(4);
38643: fill_prefetch_0 ();
38644: put_word(dsta,src);
38645: }}}}}endlabel2352: ;
38646: return 16;
38647: }
38648: unsigned long REGPARAM2 CPUFUNC(op_a60_5)(uae_u32 opcode) /* EOR */
38649: {
38650: uae_u32 dstreg = opcode & 7;
38651: OpcodeFamily = 3; CurrentInstrCycles = 18;
38652: {{ uae_s16 src = get_iword_prefetch(2);
38653: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
38654: if ((dsta & 1) != 0) {
38655: last_fault_for_exception_3 = dsta;
38656: last_op_for_exception_3 = opcode;
38657: last_addr_for_exception_3 = m68k_getpc() + 4;
38658: Exception(3, 0, M68000_EXC_SRC_CPU);
38659: goto endlabel2353;
38660: }
38661: {{ uae_s16 dst = get_word(dsta);
38662: m68k_areg (regs, dstreg) = dsta;
38663: src ^= dst;
38664: CLEAR_CZNV;
38665: SET_ZFLG (((uae_s16)(src)) == 0);
38666: SET_NFLG (((uae_s16)(src)) < 0);
38667: m68k_incpc(4);
38668: fill_prefetch_0 ();
38669: put_word(dsta,src);
38670: }}}}}endlabel2353: ;
38671: return 18;
38672: }
38673: unsigned long REGPARAM2 CPUFUNC(op_a68_5)(uae_u32 opcode) /* EOR */
38674: {
38675: uae_u32 dstreg = opcode & 7;
38676: OpcodeFamily = 3; CurrentInstrCycles = 20;
38677: {{ uae_s16 src = get_iword_prefetch(2);
38678: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
38679: if ((dsta & 1) != 0) {
38680: last_fault_for_exception_3 = dsta;
38681: last_op_for_exception_3 = opcode;
38682: last_addr_for_exception_3 = m68k_getpc() + 6;
38683: Exception(3, 0, M68000_EXC_SRC_CPU);
38684: goto endlabel2354;
38685: }
38686: {{ uae_s16 dst = get_word(dsta);
38687: src ^= dst;
38688: CLEAR_CZNV;
38689: SET_ZFLG (((uae_s16)(src)) == 0);
38690: SET_NFLG (((uae_s16)(src)) < 0);
38691: m68k_incpc(6);
38692: fill_prefetch_0 ();
38693: put_word(dsta,src);
38694: }}}}}endlabel2354: ;
38695: return 20;
38696: }
38697: unsigned long REGPARAM2 CPUFUNC(op_a70_5)(uae_u32 opcode) /* EOR */
38698: {
38699: uae_u32 dstreg = opcode & 7;
38700: OpcodeFamily = 3; CurrentInstrCycles = 22;
38701: {{ uae_s16 src = get_iword_prefetch(2);
38702: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
38703: BusCyclePenalty += 2;
38704: if ((dsta & 1) != 0) {
38705: last_fault_for_exception_3 = dsta;
38706: last_op_for_exception_3 = opcode;
38707: last_addr_for_exception_3 = m68k_getpc() + 6;
38708: Exception(3, 0, M68000_EXC_SRC_CPU);
38709: goto endlabel2355;
38710: }
38711: {{ uae_s16 dst = get_word(dsta);
38712: src ^= dst;
38713: CLEAR_CZNV;
38714: SET_ZFLG (((uae_s16)(src)) == 0);
38715: SET_NFLG (((uae_s16)(src)) < 0);
38716: m68k_incpc(6);
38717: fill_prefetch_0 ();
38718: put_word(dsta,src);
38719: }}}}}endlabel2355: ;
38720: return 22;
38721: }
38722: unsigned long REGPARAM2 CPUFUNC(op_a78_5)(uae_u32 opcode) /* EOR */
38723: {
38724: OpcodeFamily = 3; CurrentInstrCycles = 20;
38725: {{ uae_s16 src = get_iword_prefetch(2);
38726: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
38727: if ((dsta & 1) != 0) {
38728: last_fault_for_exception_3 = dsta;
38729: last_op_for_exception_3 = opcode;
38730: last_addr_for_exception_3 = m68k_getpc() + 6;
38731: Exception(3, 0, M68000_EXC_SRC_CPU);
38732: goto endlabel2356;
38733: }
38734: {{ uae_s16 dst = get_word(dsta);
38735: src ^= dst;
38736: CLEAR_CZNV;
38737: SET_ZFLG (((uae_s16)(src)) == 0);
38738: SET_NFLG (((uae_s16)(src)) < 0);
38739: m68k_incpc(6);
38740: fill_prefetch_0 ();
38741: put_word(dsta,src);
38742: }}}}}endlabel2356: ;
38743: return 20;
38744: }
38745: unsigned long REGPARAM2 CPUFUNC(op_a79_5)(uae_u32 opcode) /* EOR */
38746: {
38747: OpcodeFamily = 3; CurrentInstrCycles = 24;
38748: {{ uae_s16 src = get_iword_prefetch(2);
38749: { uaecptr dsta = get_ilong_prefetch(4);
38750: if ((dsta & 1) != 0) {
38751: last_fault_for_exception_3 = dsta;
38752: last_op_for_exception_3 = opcode;
38753: last_addr_for_exception_3 = m68k_getpc() + 8;
38754: Exception(3, 0, M68000_EXC_SRC_CPU);
38755: goto endlabel2357;
38756: }
38757: {{ uae_s16 dst = get_word(dsta);
38758: src ^= dst;
38759: CLEAR_CZNV;
38760: SET_ZFLG (((uae_s16)(src)) == 0);
38761: SET_NFLG (((uae_s16)(src)) < 0);
38762: m68k_incpc(8);
38763: fill_prefetch_0 ();
38764: put_word(dsta,src);
38765: }}}}}endlabel2357: ;
38766: return 24;
38767: }
38768: unsigned long REGPARAM2 CPUFUNC(op_a7c_5)(uae_u32 opcode) /* EORSR */
38769: {
38770: OpcodeFamily = 6; CurrentInstrCycles = 20;
38771: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel2358; }
38772: { MakeSR();
38773: { uae_s16 src = get_iword_prefetch(2);
38774: regs.sr ^= src;
38775: MakeFromSR();
38776: }}}m68k_incpc(4);
38777: fill_prefetch_0 ();
38778: endlabel2358: ;
38779: return 20;
38780: }
38781: #endif
38782:
38783: #ifdef PART_2
38784: unsigned long REGPARAM2 CPUFUNC(op_a80_5)(uae_u32 opcode) /* EOR */
38785: {
38786: uae_u32 dstreg = opcode & 7;
38787: OpcodeFamily = 3; CurrentInstrCycles = 16;
38788: {{ uae_s32 src = get_ilong_prefetch(2);
38789: { uae_s32 dst = m68k_dreg(regs, dstreg);
38790: src ^= dst;
38791: CLEAR_CZNV;
38792: SET_ZFLG (((uae_s32)(src)) == 0);
38793: SET_NFLG (((uae_s32)(src)) < 0);
38794: m68k_dreg(regs, dstreg) = (src);
38795: }}}m68k_incpc(6);
38796: fill_prefetch_0 ();
38797: return 16;
38798: }
38799: unsigned long REGPARAM2 CPUFUNC(op_a90_5)(uae_u32 opcode) /* EOR */
38800: {
38801: uae_u32 dstreg = opcode & 7;
38802: OpcodeFamily = 3; CurrentInstrCycles = 28;
38803: {{ uae_s32 src = get_ilong_prefetch(2);
38804: { uaecptr dsta = m68k_areg(regs, dstreg);
38805: if ((dsta & 1) != 0) {
38806: last_fault_for_exception_3 = dsta;
38807: last_op_for_exception_3 = opcode;
38808: last_addr_for_exception_3 = m68k_getpc() + 6;
38809: Exception(3, 0, M68000_EXC_SRC_CPU);
38810: goto endlabel2360;
38811: }
38812: {{ uae_s32 dst = get_long(dsta);
38813: src ^= dst;
38814: CLEAR_CZNV;
38815: SET_ZFLG (((uae_s32)(src)) == 0);
38816: SET_NFLG (((uae_s32)(src)) < 0);
38817: m68k_incpc(6);
38818: fill_prefetch_0 ();
38819: put_long(dsta,src);
38820: }}}}}endlabel2360: ;
38821: return 28;
38822: }
38823: unsigned long REGPARAM2 CPUFUNC(op_a98_5)(uae_u32 opcode) /* EOR */
38824: {
38825: uae_u32 dstreg = opcode & 7;
38826: OpcodeFamily = 3; CurrentInstrCycles = 28;
38827: {{ uae_s32 src = get_ilong_prefetch(2);
38828: { uaecptr dsta = m68k_areg(regs, dstreg);
38829: if ((dsta & 1) != 0) {
38830: last_fault_for_exception_3 = dsta;
38831: last_op_for_exception_3 = opcode;
38832: last_addr_for_exception_3 = m68k_getpc() + 6;
38833: Exception(3, 0, M68000_EXC_SRC_CPU);
38834: goto endlabel2361;
38835: }
38836: {{ uae_s32 dst = get_long(dsta);
38837: m68k_areg(regs, dstreg) += 4;
38838: src ^= dst;
38839: CLEAR_CZNV;
38840: SET_ZFLG (((uae_s32)(src)) == 0);
38841: SET_NFLG (((uae_s32)(src)) < 0);
38842: m68k_incpc(6);
38843: fill_prefetch_0 ();
38844: put_long(dsta,src);
38845: }}}}}endlabel2361: ;
38846: return 28;
38847: }
38848: unsigned long REGPARAM2 CPUFUNC(op_aa0_5)(uae_u32 opcode) /* EOR */
38849: {
38850: uae_u32 dstreg = opcode & 7;
38851: OpcodeFamily = 3; CurrentInstrCycles = 30;
38852: {{ uae_s32 src = get_ilong_prefetch(2);
38853: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
38854: if ((dsta & 1) != 0) {
38855: last_fault_for_exception_3 = dsta;
38856: last_op_for_exception_3 = opcode;
38857: last_addr_for_exception_3 = m68k_getpc() + 6;
38858: Exception(3, 0, M68000_EXC_SRC_CPU);
38859: goto endlabel2362;
38860: }
38861: {{ uae_s32 dst = get_long(dsta);
38862: m68k_areg (regs, dstreg) = dsta;
38863: src ^= dst;
38864: CLEAR_CZNV;
38865: SET_ZFLG (((uae_s32)(src)) == 0);
38866: SET_NFLG (((uae_s32)(src)) < 0);
38867: m68k_incpc(6);
38868: fill_prefetch_0 ();
38869: put_long(dsta,src);
38870: }}}}}endlabel2362: ;
38871: return 30;
38872: }
38873: unsigned long REGPARAM2 CPUFUNC(op_aa8_5)(uae_u32 opcode) /* EOR */
38874: {
38875: uae_u32 dstreg = opcode & 7;
38876: OpcodeFamily = 3; CurrentInstrCycles = 32;
38877: {{ uae_s32 src = get_ilong_prefetch(2);
38878: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(6);
38879: if ((dsta & 1) != 0) {
38880: last_fault_for_exception_3 = dsta;
38881: last_op_for_exception_3 = opcode;
38882: last_addr_for_exception_3 = m68k_getpc() + 8;
38883: Exception(3, 0, M68000_EXC_SRC_CPU);
38884: goto endlabel2363;
38885: }
38886: {{ uae_s32 dst = get_long(dsta);
38887: src ^= dst;
38888: CLEAR_CZNV;
38889: SET_ZFLG (((uae_s32)(src)) == 0);
38890: SET_NFLG (((uae_s32)(src)) < 0);
38891: m68k_incpc(8);
38892: fill_prefetch_0 ();
38893: put_long(dsta,src);
38894: }}}}}endlabel2363: ;
38895: return 32;
38896: }
38897: unsigned long REGPARAM2 CPUFUNC(op_ab0_5)(uae_u32 opcode) /* EOR */
38898: {
38899: uae_u32 dstreg = opcode & 7;
38900: OpcodeFamily = 3; CurrentInstrCycles = 34;
38901: {{ uae_s32 src = get_ilong_prefetch(2);
38902: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(6));
38903: BusCyclePenalty += 2;
38904: if ((dsta & 1) != 0) {
38905: last_fault_for_exception_3 = dsta;
38906: last_op_for_exception_3 = opcode;
38907: last_addr_for_exception_3 = m68k_getpc() + 8;
38908: Exception(3, 0, M68000_EXC_SRC_CPU);
38909: goto endlabel2364;
38910: }
38911: {{ uae_s32 dst = get_long(dsta);
38912: src ^= dst;
38913: CLEAR_CZNV;
38914: SET_ZFLG (((uae_s32)(src)) == 0);
38915: SET_NFLG (((uae_s32)(src)) < 0);
38916: m68k_incpc(8);
38917: fill_prefetch_0 ();
38918: put_long(dsta,src);
38919: }}}}}endlabel2364: ;
38920: return 34;
38921: }
38922: unsigned long REGPARAM2 CPUFUNC(op_ab8_5)(uae_u32 opcode) /* EOR */
38923: {
38924: OpcodeFamily = 3; CurrentInstrCycles = 32;
38925: {{ uae_s32 src = get_ilong_prefetch(2);
38926: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(6);
38927: if ((dsta & 1) != 0) {
38928: last_fault_for_exception_3 = dsta;
38929: last_op_for_exception_3 = opcode;
38930: last_addr_for_exception_3 = m68k_getpc() + 8;
38931: Exception(3, 0, M68000_EXC_SRC_CPU);
38932: goto endlabel2365;
38933: }
38934: {{ uae_s32 dst = get_long(dsta);
38935: src ^= dst;
38936: CLEAR_CZNV;
38937: SET_ZFLG (((uae_s32)(src)) == 0);
38938: SET_NFLG (((uae_s32)(src)) < 0);
38939: m68k_incpc(8);
38940: fill_prefetch_0 ();
38941: put_long(dsta,src);
38942: }}}}}endlabel2365: ;
38943: return 32;
38944: }
38945: unsigned long REGPARAM2 CPUFUNC(op_ab9_5)(uae_u32 opcode) /* EOR */
38946: {
38947: OpcodeFamily = 3; CurrentInstrCycles = 36;
38948: {{ uae_s32 src = get_ilong_prefetch(2);
38949: { uaecptr dsta = get_ilong_prefetch(6);
38950: if ((dsta & 1) != 0) {
38951: last_fault_for_exception_3 = dsta;
38952: last_op_for_exception_3 = opcode;
38953: last_addr_for_exception_3 = m68k_getpc() + 10;
38954: Exception(3, 0, M68000_EXC_SRC_CPU);
38955: goto endlabel2366;
38956: }
38957: {{ uae_s32 dst = get_long(dsta);
38958: src ^= dst;
38959: CLEAR_CZNV;
38960: SET_ZFLG (((uae_s32)(src)) == 0);
38961: SET_NFLG (((uae_s32)(src)) < 0);
38962: m68k_incpc(10);
38963: fill_prefetch_0 ();
38964: put_long(dsta,src);
38965: }}}}}endlabel2366: ;
38966: return 36;
38967: }
38968: unsigned long REGPARAM2 CPUFUNC(op_c00_5)(uae_u32 opcode) /* CMP */
38969: {
38970: uae_u32 dstreg = opcode & 7;
38971: OpcodeFamily = 25; CurrentInstrCycles = 8;
38972: {{ uae_s8 src = get_ibyte_prefetch(2);
38973: { uae_s8 dst = m68k_dreg(regs, dstreg);
38974: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
38975: { int flgs = ((uae_s8)(src)) < 0;
38976: int flgo = ((uae_s8)(dst)) < 0;
38977: int flgn = ((uae_s8)(newv)) < 0;
38978: SET_ZFLG (((uae_s8)(newv)) == 0);
38979: SET_VFLG ((flgs != flgo) && (flgn != flgo));
38980: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
38981: SET_NFLG (flgn != 0);
38982: }}}}}}m68k_incpc(4);
38983: fill_prefetch_0 ();
38984: return 8;
38985: }
38986: unsigned long REGPARAM2 CPUFUNC(op_c10_5)(uae_u32 opcode) /* CMP */
38987: {
38988: uae_u32 dstreg = opcode & 7;
38989: OpcodeFamily = 25; CurrentInstrCycles = 12;
38990: {{ uae_s8 src = get_ibyte_prefetch(2);
38991: { uaecptr dsta = m68k_areg(regs, dstreg);
38992: { uae_s8 dst = get_byte(dsta);
38993: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
38994: { int flgs = ((uae_s8)(src)) < 0;
38995: int flgo = ((uae_s8)(dst)) < 0;
38996: int flgn = ((uae_s8)(newv)) < 0;
38997: SET_ZFLG (((uae_s8)(newv)) == 0);
38998: SET_VFLG ((flgs != flgo) && (flgn != flgo));
38999: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
39000: SET_NFLG (flgn != 0);
39001: }}}}}}}m68k_incpc(4);
39002: fill_prefetch_0 ();
39003: return 12;
39004: }
39005: unsigned long REGPARAM2 CPUFUNC(op_c18_5)(uae_u32 opcode) /* CMP */
39006: {
39007: uae_u32 dstreg = opcode & 7;
39008: OpcodeFamily = 25; CurrentInstrCycles = 12;
39009: {{ uae_s8 src = get_ibyte_prefetch(2);
39010: { uaecptr dsta = m68k_areg(regs, dstreg);
39011: { uae_s8 dst = get_byte(dsta);
39012: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
39013: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
39014: { int flgs = ((uae_s8)(src)) < 0;
39015: int flgo = ((uae_s8)(dst)) < 0;
39016: int flgn = ((uae_s8)(newv)) < 0;
39017: SET_ZFLG (((uae_s8)(newv)) == 0);
39018: SET_VFLG ((flgs != flgo) && (flgn != flgo));
39019: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
39020: SET_NFLG (flgn != 0);
39021: }}}}}}}m68k_incpc(4);
39022: fill_prefetch_0 ();
39023: return 12;
39024: }
39025: unsigned long REGPARAM2 CPUFUNC(op_c20_5)(uae_u32 opcode) /* CMP */
39026: {
39027: uae_u32 dstreg = opcode & 7;
39028: OpcodeFamily = 25; CurrentInstrCycles = 14;
39029: {{ uae_s8 src = get_ibyte_prefetch(2);
39030: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
39031: { uae_s8 dst = get_byte(dsta);
39032: m68k_areg (regs, dstreg) = dsta;
39033: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
39034: { int flgs = ((uae_s8)(src)) < 0;
39035: int flgo = ((uae_s8)(dst)) < 0;
39036: int flgn = ((uae_s8)(newv)) < 0;
39037: SET_ZFLG (((uae_s8)(newv)) == 0);
39038: SET_VFLG ((flgs != flgo) && (flgn != flgo));
39039: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
39040: SET_NFLG (flgn != 0);
39041: }}}}}}}m68k_incpc(4);
39042: fill_prefetch_0 ();
39043: return 14;
39044: }
39045: unsigned long REGPARAM2 CPUFUNC(op_c28_5)(uae_u32 opcode) /* CMP */
39046: {
39047: uae_u32 dstreg = opcode & 7;
39048: OpcodeFamily = 25; CurrentInstrCycles = 16;
39049: {{ uae_s8 src = get_ibyte_prefetch(2);
39050: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
39051: { uae_s8 dst = get_byte(dsta);
39052: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
39053: { int flgs = ((uae_s8)(src)) < 0;
39054: int flgo = ((uae_s8)(dst)) < 0;
39055: int flgn = ((uae_s8)(newv)) < 0;
39056: SET_ZFLG (((uae_s8)(newv)) == 0);
39057: SET_VFLG ((flgs != flgo) && (flgn != flgo));
39058: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
39059: SET_NFLG (flgn != 0);
39060: }}}}}}}m68k_incpc(6);
39061: fill_prefetch_0 ();
39062: return 16;
39063: }
39064: unsigned long REGPARAM2 CPUFUNC(op_c30_5)(uae_u32 opcode) /* CMP */
39065: {
39066: uae_u32 dstreg = opcode & 7;
39067: OpcodeFamily = 25; CurrentInstrCycles = 18;
39068: {{ uae_s8 src = get_ibyte_prefetch(2);
39069: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
39070: BusCyclePenalty += 2;
39071: { uae_s8 dst = get_byte(dsta);
39072: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
39073: { int flgs = ((uae_s8)(src)) < 0;
39074: int flgo = ((uae_s8)(dst)) < 0;
39075: int flgn = ((uae_s8)(newv)) < 0;
39076: SET_ZFLG (((uae_s8)(newv)) == 0);
39077: SET_VFLG ((flgs != flgo) && (flgn != flgo));
39078: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
39079: SET_NFLG (flgn != 0);
39080: }}}}}}}m68k_incpc(6);
39081: fill_prefetch_0 ();
39082: return 18;
39083: }
39084: unsigned long REGPARAM2 CPUFUNC(op_c38_5)(uae_u32 opcode) /* CMP */
39085: {
39086: OpcodeFamily = 25; CurrentInstrCycles = 16;
39087: {{ uae_s8 src = get_ibyte_prefetch(2);
39088: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
39089: { uae_s8 dst = get_byte(dsta);
39090: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
39091: { int flgs = ((uae_s8)(src)) < 0;
39092: int flgo = ((uae_s8)(dst)) < 0;
39093: int flgn = ((uae_s8)(newv)) < 0;
39094: SET_ZFLG (((uae_s8)(newv)) == 0);
39095: SET_VFLG ((flgs != flgo) && (flgn != flgo));
39096: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
39097: SET_NFLG (flgn != 0);
39098: }}}}}}}m68k_incpc(6);
39099: fill_prefetch_0 ();
39100: return 16;
39101: }
39102: unsigned long REGPARAM2 CPUFUNC(op_c39_5)(uae_u32 opcode) /* CMP */
39103: {
39104: OpcodeFamily = 25; CurrentInstrCycles = 20;
39105: {{ uae_s8 src = get_ibyte_prefetch(2);
39106: { uaecptr dsta = get_ilong_prefetch(4);
39107: { uae_s8 dst = get_byte(dsta);
39108: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
39109: { int flgs = ((uae_s8)(src)) < 0;
39110: int flgo = ((uae_s8)(dst)) < 0;
39111: int flgn = ((uae_s8)(newv)) < 0;
39112: SET_ZFLG (((uae_s8)(newv)) == 0);
39113: SET_VFLG ((flgs != flgo) && (flgn != flgo));
39114: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
39115: SET_NFLG (flgn != 0);
39116: }}}}}}}m68k_incpc(8);
39117: fill_prefetch_0 ();
39118: return 20;
39119: }
39120: unsigned long REGPARAM2 CPUFUNC(op_c3a_5)(uae_u32 opcode) /* CMP */
39121: {
39122: uae_u32 dstreg = 2;
39123: OpcodeFamily = 25; CurrentInstrCycles = 16;
39124: {{ uae_s8 src = get_ibyte_prefetch(2);
39125: { uaecptr dsta = m68k_getpc () + 4;
39126: dsta += (uae_s32)(uae_s16)get_iword_prefetch(4);
39127: { uae_s8 dst = get_byte(dsta);
39128: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
39129: { int flgs = ((uae_s8)(src)) < 0;
39130: int flgo = ((uae_s8)(dst)) < 0;
39131: int flgn = ((uae_s8)(newv)) < 0;
39132: SET_ZFLG (((uae_s8)(newv)) == 0);
39133: SET_VFLG ((flgs != flgo) && (flgn != flgo));
39134: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
39135: SET_NFLG (flgn != 0);
39136: }}}}}}}m68k_incpc(6);
39137: fill_prefetch_0 ();
39138: return 16;
39139: }
39140: unsigned long REGPARAM2 CPUFUNC(op_c3b_5)(uae_u32 opcode) /* CMP */
39141: {
39142: uae_u32 dstreg = 3;
39143: OpcodeFamily = 25; CurrentInstrCycles = 18;
39144: {{ uae_s8 src = get_ibyte_prefetch(2);
39145: { uaecptr tmppc = m68k_getpc() + 4;
39146: uaecptr dsta = get_disp_ea_000(tmppc, get_iword_prefetch(4));
39147: BusCyclePenalty += 2;
39148: { uae_s8 dst = get_byte(dsta);
39149: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
39150: { int flgs = ((uae_s8)(src)) < 0;
39151: int flgo = ((uae_s8)(dst)) < 0;
39152: int flgn = ((uae_s8)(newv)) < 0;
39153: SET_ZFLG (((uae_s8)(newv)) == 0);
39154: SET_VFLG ((flgs != flgo) && (flgn != flgo));
39155: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
39156: SET_NFLG (flgn != 0);
39157: }}}}}}}m68k_incpc(6);
39158: fill_prefetch_0 ();
39159: return 18;
39160: }
39161: unsigned long REGPARAM2 CPUFUNC(op_c40_5)(uae_u32 opcode) /* CMP */
39162: {
39163: uae_u32 dstreg = opcode & 7;
39164: OpcodeFamily = 25; CurrentInstrCycles = 8;
39165: {{ uae_s16 src = get_iword_prefetch(2);
39166: { uae_s16 dst = m68k_dreg(regs, dstreg);
39167: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
39168: { int flgs = ((uae_s16)(src)) < 0;
39169: int flgo = ((uae_s16)(dst)) < 0;
39170: int flgn = ((uae_s16)(newv)) < 0;
39171: SET_ZFLG (((uae_s16)(newv)) == 0);
39172: SET_VFLG ((flgs != flgo) && (flgn != flgo));
39173: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
39174: SET_NFLG (flgn != 0);
39175: }}}}}}m68k_incpc(4);
39176: fill_prefetch_0 ();
39177: return 8;
39178: }
39179: unsigned long REGPARAM2 CPUFUNC(op_c50_5)(uae_u32 opcode) /* CMP */
39180: {
39181: uae_u32 dstreg = opcode & 7;
39182: OpcodeFamily = 25; CurrentInstrCycles = 12;
39183: {{ uae_s16 src = get_iword_prefetch(2);
39184: { uaecptr dsta = m68k_areg(regs, dstreg);
39185: if ((dsta & 1) != 0) {
39186: last_fault_for_exception_3 = dsta;
39187: last_op_for_exception_3 = opcode;
39188: last_addr_for_exception_3 = m68k_getpc() + 4;
39189: Exception(3, 0, M68000_EXC_SRC_CPU);
39190: goto endlabel2378;
39191: }
39192: {{ uae_s16 dst = get_word(dsta);
39193: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
39194: { int flgs = ((uae_s16)(src)) < 0;
39195: int flgo = ((uae_s16)(dst)) < 0;
39196: int flgn = ((uae_s16)(newv)) < 0;
39197: SET_ZFLG (((uae_s16)(newv)) == 0);
39198: SET_VFLG ((flgs != flgo) && (flgn != flgo));
39199: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
39200: SET_NFLG (flgn != 0);
39201: }}}}}}}}m68k_incpc(4);
39202: fill_prefetch_0 ();
39203: endlabel2378: ;
39204: return 12;
39205: }
39206: unsigned long REGPARAM2 CPUFUNC(op_c58_5)(uae_u32 opcode) /* CMP */
39207: {
39208: uae_u32 dstreg = opcode & 7;
39209: OpcodeFamily = 25; CurrentInstrCycles = 12;
39210: {{ uae_s16 src = get_iword_prefetch(2);
39211: { uaecptr dsta = m68k_areg(regs, dstreg);
39212: if ((dsta & 1) != 0) {
39213: last_fault_for_exception_3 = dsta;
39214: last_op_for_exception_3 = opcode;
39215: last_addr_for_exception_3 = m68k_getpc() + 4;
39216: Exception(3, 0, M68000_EXC_SRC_CPU);
39217: goto endlabel2379;
39218: }
39219: {{ uae_s16 dst = get_word(dsta);
39220: m68k_areg(regs, dstreg) += 2;
39221: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
39222: { int flgs = ((uae_s16)(src)) < 0;
39223: int flgo = ((uae_s16)(dst)) < 0;
39224: int flgn = ((uae_s16)(newv)) < 0;
39225: SET_ZFLG (((uae_s16)(newv)) == 0);
39226: SET_VFLG ((flgs != flgo) && (flgn != flgo));
39227: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
39228: SET_NFLG (flgn != 0);
39229: }}}}}}}}m68k_incpc(4);
39230: fill_prefetch_0 ();
39231: endlabel2379: ;
39232: return 12;
39233: }
39234: unsigned long REGPARAM2 CPUFUNC(op_c60_5)(uae_u32 opcode) /* CMP */
39235: {
39236: uae_u32 dstreg = opcode & 7;
39237: OpcodeFamily = 25; CurrentInstrCycles = 14;
39238: {{ uae_s16 src = get_iword_prefetch(2);
39239: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
39240: if ((dsta & 1) != 0) {
39241: last_fault_for_exception_3 = dsta;
39242: last_op_for_exception_3 = opcode;
39243: last_addr_for_exception_3 = m68k_getpc() + 4;
39244: Exception(3, 0, M68000_EXC_SRC_CPU);
39245: goto endlabel2380;
39246: }
39247: {{ uae_s16 dst = get_word(dsta);
39248: m68k_areg (regs, dstreg) = dsta;
39249: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
39250: { int flgs = ((uae_s16)(src)) < 0;
39251: int flgo = ((uae_s16)(dst)) < 0;
39252: int flgn = ((uae_s16)(newv)) < 0;
39253: SET_ZFLG (((uae_s16)(newv)) == 0);
39254: SET_VFLG ((flgs != flgo) && (flgn != flgo));
39255: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
39256: SET_NFLG (flgn != 0);
39257: }}}}}}}}m68k_incpc(4);
39258: fill_prefetch_0 ();
39259: endlabel2380: ;
39260: return 14;
39261: }
39262: unsigned long REGPARAM2 CPUFUNC(op_c68_5)(uae_u32 opcode) /* CMP */
39263: {
39264: uae_u32 dstreg = opcode & 7;
39265: OpcodeFamily = 25; CurrentInstrCycles = 16;
39266: {{ uae_s16 src = get_iword_prefetch(2);
39267: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
39268: if ((dsta & 1) != 0) {
39269: last_fault_for_exception_3 = dsta;
39270: last_op_for_exception_3 = opcode;
39271: last_addr_for_exception_3 = m68k_getpc() + 6;
39272: Exception(3, 0, M68000_EXC_SRC_CPU);
39273: goto endlabel2381;
39274: }
39275: {{ uae_s16 dst = get_word(dsta);
39276: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
39277: { int flgs = ((uae_s16)(src)) < 0;
39278: int flgo = ((uae_s16)(dst)) < 0;
39279: int flgn = ((uae_s16)(newv)) < 0;
39280: SET_ZFLG (((uae_s16)(newv)) == 0);
39281: SET_VFLG ((flgs != flgo) && (flgn != flgo));
39282: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
39283: SET_NFLG (flgn != 0);
39284: }}}}}}}}m68k_incpc(6);
39285: fill_prefetch_0 ();
39286: endlabel2381: ;
39287: return 16;
39288: }
39289: unsigned long REGPARAM2 CPUFUNC(op_c70_5)(uae_u32 opcode) /* CMP */
39290: {
39291: uae_u32 dstreg = opcode & 7;
39292: OpcodeFamily = 25; CurrentInstrCycles = 18;
39293: {{ uae_s16 src = get_iword_prefetch(2);
39294: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
39295: BusCyclePenalty += 2;
39296: if ((dsta & 1) != 0) {
39297: last_fault_for_exception_3 = dsta;
39298: last_op_for_exception_3 = opcode;
39299: last_addr_for_exception_3 = m68k_getpc() + 6;
39300: Exception(3, 0, M68000_EXC_SRC_CPU);
39301: goto endlabel2382;
39302: }
39303: {{ uae_s16 dst = get_word(dsta);
39304: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
39305: { int flgs = ((uae_s16)(src)) < 0;
39306: int flgo = ((uae_s16)(dst)) < 0;
39307: int flgn = ((uae_s16)(newv)) < 0;
39308: SET_ZFLG (((uae_s16)(newv)) == 0);
39309: SET_VFLG ((flgs != flgo) && (flgn != flgo));
39310: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
39311: SET_NFLG (flgn != 0);
39312: }}}}}}}}m68k_incpc(6);
39313: fill_prefetch_0 ();
39314: endlabel2382: ;
39315: return 18;
39316: }
39317: unsigned long REGPARAM2 CPUFUNC(op_c78_5)(uae_u32 opcode) /* CMP */
39318: {
39319: OpcodeFamily = 25; CurrentInstrCycles = 16;
39320: {{ uae_s16 src = get_iword_prefetch(2);
39321: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
39322: if ((dsta & 1) != 0) {
39323: last_fault_for_exception_3 = dsta;
39324: last_op_for_exception_3 = opcode;
39325: last_addr_for_exception_3 = m68k_getpc() + 6;
39326: Exception(3, 0, M68000_EXC_SRC_CPU);
39327: goto endlabel2383;
39328: }
39329: {{ uae_s16 dst = get_word(dsta);
39330: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
39331: { int flgs = ((uae_s16)(src)) < 0;
39332: int flgo = ((uae_s16)(dst)) < 0;
39333: int flgn = ((uae_s16)(newv)) < 0;
39334: SET_ZFLG (((uae_s16)(newv)) == 0);
39335: SET_VFLG ((flgs != flgo) && (flgn != flgo));
39336: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
39337: SET_NFLG (flgn != 0);
39338: }}}}}}}}m68k_incpc(6);
39339: fill_prefetch_0 ();
39340: endlabel2383: ;
39341: return 16;
39342: }
39343: unsigned long REGPARAM2 CPUFUNC(op_c79_5)(uae_u32 opcode) /* CMP */
39344: {
39345: OpcodeFamily = 25; CurrentInstrCycles = 20;
39346: {{ uae_s16 src = get_iword_prefetch(2);
39347: { uaecptr dsta = get_ilong_prefetch(4);
39348: if ((dsta & 1) != 0) {
39349: last_fault_for_exception_3 = dsta;
39350: last_op_for_exception_3 = opcode;
39351: last_addr_for_exception_3 = m68k_getpc() + 8;
39352: Exception(3, 0, M68000_EXC_SRC_CPU);
39353: goto endlabel2384;
39354: }
39355: {{ uae_s16 dst = get_word(dsta);
39356: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
39357: { int flgs = ((uae_s16)(src)) < 0;
39358: int flgo = ((uae_s16)(dst)) < 0;
39359: int flgn = ((uae_s16)(newv)) < 0;
39360: SET_ZFLG (((uae_s16)(newv)) == 0);
39361: SET_VFLG ((flgs != flgo) && (flgn != flgo));
39362: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
39363: SET_NFLG (flgn != 0);
39364: }}}}}}}}m68k_incpc(8);
39365: fill_prefetch_0 ();
39366: endlabel2384: ;
39367: return 20;
39368: }
39369: unsigned long REGPARAM2 CPUFUNC(op_c7a_5)(uae_u32 opcode) /* CMP */
39370: {
39371: uae_u32 dstreg = 2;
39372: OpcodeFamily = 25; CurrentInstrCycles = 16;
39373: {{ uae_s16 src = get_iword_prefetch(2);
39374: { uaecptr dsta = m68k_getpc () + 4;
39375: dsta += (uae_s32)(uae_s16)get_iword_prefetch(4);
39376: if ((dsta & 1) != 0) {
39377: last_fault_for_exception_3 = dsta;
39378: last_op_for_exception_3 = opcode;
39379: last_addr_for_exception_3 = m68k_getpc() + 6;
39380: Exception(3, 0, M68000_EXC_SRC_CPU);
39381: goto endlabel2385;
39382: }
39383: {{ uae_s16 dst = get_word(dsta);
39384: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
39385: { int flgs = ((uae_s16)(src)) < 0;
39386: int flgo = ((uae_s16)(dst)) < 0;
39387: int flgn = ((uae_s16)(newv)) < 0;
39388: SET_ZFLG (((uae_s16)(newv)) == 0);
39389: SET_VFLG ((flgs != flgo) && (flgn != flgo));
39390: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
39391: SET_NFLG (flgn != 0);
39392: }}}}}}}}m68k_incpc(6);
39393: fill_prefetch_0 ();
39394: endlabel2385: ;
39395: return 16;
39396: }
39397: unsigned long REGPARAM2 CPUFUNC(op_c7b_5)(uae_u32 opcode) /* CMP */
39398: {
39399: uae_u32 dstreg = 3;
39400: OpcodeFamily = 25; CurrentInstrCycles = 18;
39401: {{ uae_s16 src = get_iword_prefetch(2);
39402: { uaecptr tmppc = m68k_getpc() + 4;
39403: uaecptr dsta = get_disp_ea_000(tmppc, get_iword_prefetch(4));
39404: BusCyclePenalty += 2;
39405: if ((dsta & 1) != 0) {
39406: last_fault_for_exception_3 = dsta;
39407: last_op_for_exception_3 = opcode;
39408: last_addr_for_exception_3 = m68k_getpc() + 6;
39409: Exception(3, 0, M68000_EXC_SRC_CPU);
39410: goto endlabel2386;
39411: }
39412: {{ uae_s16 dst = get_word(dsta);
39413: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
39414: { int flgs = ((uae_s16)(src)) < 0;
39415: int flgo = ((uae_s16)(dst)) < 0;
39416: int flgn = ((uae_s16)(newv)) < 0;
39417: SET_ZFLG (((uae_s16)(newv)) == 0);
39418: SET_VFLG ((flgs != flgo) && (flgn != flgo));
39419: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
39420: SET_NFLG (flgn != 0);
39421: }}}}}}}}m68k_incpc(6);
39422: fill_prefetch_0 ();
39423: endlabel2386: ;
39424: return 18;
39425: }
39426: unsigned long REGPARAM2 CPUFUNC(op_c80_5)(uae_u32 opcode) /* CMP */
39427: {
39428: uae_u32 dstreg = opcode & 7;
39429: OpcodeFamily = 25; CurrentInstrCycles = 14;
39430: {{ uae_s32 src = get_ilong_prefetch(2);
39431: { uae_s32 dst = m68k_dreg(regs, dstreg);
39432: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
39433: { int flgs = ((uae_s32)(src)) < 0;
39434: int flgo = ((uae_s32)(dst)) < 0;
39435: int flgn = ((uae_s32)(newv)) < 0;
39436: SET_ZFLG (((uae_s32)(newv)) == 0);
39437: SET_VFLG ((flgs != flgo) && (flgn != flgo));
39438: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
39439: SET_NFLG (flgn != 0);
39440: }}}}}}m68k_incpc(6);
39441: fill_prefetch_0 ();
39442: return 14;
39443: }
39444: unsigned long REGPARAM2 CPUFUNC(op_c90_5)(uae_u32 opcode) /* CMP */
39445: {
39446: uae_u32 dstreg = opcode & 7;
39447: OpcodeFamily = 25; CurrentInstrCycles = 20;
39448: {{ uae_s32 src = get_ilong_prefetch(2);
39449: { uaecptr dsta = m68k_areg(regs, dstreg);
39450: if ((dsta & 1) != 0) {
39451: last_fault_for_exception_3 = dsta;
39452: last_op_for_exception_3 = opcode;
39453: last_addr_for_exception_3 = m68k_getpc() + 6;
39454: Exception(3, 0, M68000_EXC_SRC_CPU);
39455: goto endlabel2388;
39456: }
39457: {{ uae_s32 dst = get_long(dsta);
39458: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
39459: { int flgs = ((uae_s32)(src)) < 0;
39460: int flgo = ((uae_s32)(dst)) < 0;
39461: int flgn = ((uae_s32)(newv)) < 0;
39462: SET_ZFLG (((uae_s32)(newv)) == 0);
39463: SET_VFLG ((flgs != flgo) && (flgn != flgo));
39464: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
39465: SET_NFLG (flgn != 0);
39466: }}}}}}}}m68k_incpc(6);
39467: fill_prefetch_0 ();
39468: endlabel2388: ;
39469: return 20;
39470: }
39471: unsigned long REGPARAM2 CPUFUNC(op_c98_5)(uae_u32 opcode) /* CMP */
39472: {
39473: uae_u32 dstreg = opcode & 7;
39474: OpcodeFamily = 25; CurrentInstrCycles = 20;
39475: {{ uae_s32 src = get_ilong_prefetch(2);
39476: { uaecptr dsta = m68k_areg(regs, dstreg);
39477: if ((dsta & 1) != 0) {
39478: last_fault_for_exception_3 = dsta;
39479: last_op_for_exception_3 = opcode;
39480: last_addr_for_exception_3 = m68k_getpc() + 6;
39481: Exception(3, 0, M68000_EXC_SRC_CPU);
39482: goto endlabel2389;
39483: }
39484: {{ uae_s32 dst = get_long(dsta);
39485: m68k_areg(regs, dstreg) += 4;
39486: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
39487: { int flgs = ((uae_s32)(src)) < 0;
39488: int flgo = ((uae_s32)(dst)) < 0;
39489: int flgn = ((uae_s32)(newv)) < 0;
39490: SET_ZFLG (((uae_s32)(newv)) == 0);
39491: SET_VFLG ((flgs != flgo) && (flgn != flgo));
39492: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
39493: SET_NFLG (flgn != 0);
39494: }}}}}}}}m68k_incpc(6);
39495: fill_prefetch_0 ();
39496: endlabel2389: ;
39497: return 20;
39498: }
39499: unsigned long REGPARAM2 CPUFUNC(op_ca0_5)(uae_u32 opcode) /* CMP */
39500: {
39501: uae_u32 dstreg = opcode & 7;
39502: OpcodeFamily = 25; CurrentInstrCycles = 22;
39503: {{ uae_s32 src = get_ilong_prefetch(2);
39504: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
39505: if ((dsta & 1) != 0) {
39506: last_fault_for_exception_3 = dsta;
39507: last_op_for_exception_3 = opcode;
39508: last_addr_for_exception_3 = m68k_getpc() + 6;
39509: Exception(3, 0, M68000_EXC_SRC_CPU);
39510: goto endlabel2390;
39511: }
39512: {{ uae_s32 dst = get_long(dsta);
39513: m68k_areg (regs, dstreg) = dsta;
39514: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
39515: { int flgs = ((uae_s32)(src)) < 0;
39516: int flgo = ((uae_s32)(dst)) < 0;
39517: int flgn = ((uae_s32)(newv)) < 0;
39518: SET_ZFLG (((uae_s32)(newv)) == 0);
39519: SET_VFLG ((flgs != flgo) && (flgn != flgo));
39520: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
39521: SET_NFLG (flgn != 0);
39522: }}}}}}}}m68k_incpc(6);
39523: fill_prefetch_0 ();
39524: endlabel2390: ;
39525: return 22;
39526: }
39527: unsigned long REGPARAM2 CPUFUNC(op_ca8_5)(uae_u32 opcode) /* CMP */
39528: {
39529: uae_u32 dstreg = opcode & 7;
39530: OpcodeFamily = 25; CurrentInstrCycles = 24;
39531: {{ uae_s32 src = get_ilong_prefetch(2);
39532: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(6);
39533: if ((dsta & 1) != 0) {
39534: last_fault_for_exception_3 = dsta;
39535: last_op_for_exception_3 = opcode;
39536: last_addr_for_exception_3 = m68k_getpc() + 8;
39537: Exception(3, 0, M68000_EXC_SRC_CPU);
39538: goto endlabel2391;
39539: }
39540: {{ uae_s32 dst = get_long(dsta);
39541: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
39542: { int flgs = ((uae_s32)(src)) < 0;
39543: int flgo = ((uae_s32)(dst)) < 0;
39544: int flgn = ((uae_s32)(newv)) < 0;
39545: SET_ZFLG (((uae_s32)(newv)) == 0);
39546: SET_VFLG ((flgs != flgo) && (flgn != flgo));
39547: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
39548: SET_NFLG (flgn != 0);
39549: }}}}}}}}m68k_incpc(8);
39550: fill_prefetch_0 ();
39551: endlabel2391: ;
39552: return 24;
39553: }
39554: unsigned long REGPARAM2 CPUFUNC(op_cb0_5)(uae_u32 opcode) /* CMP */
39555: {
39556: uae_u32 dstreg = opcode & 7;
39557: OpcodeFamily = 25; CurrentInstrCycles = 26;
39558: {{ uae_s32 src = get_ilong_prefetch(2);
39559: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(6));
39560: BusCyclePenalty += 2;
39561: if ((dsta & 1) != 0) {
39562: last_fault_for_exception_3 = dsta;
39563: last_op_for_exception_3 = opcode;
39564: last_addr_for_exception_3 = m68k_getpc() + 8;
39565: Exception(3, 0, M68000_EXC_SRC_CPU);
39566: goto endlabel2392;
39567: }
39568: {{ uae_s32 dst = get_long(dsta);
39569: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
39570: { int flgs = ((uae_s32)(src)) < 0;
39571: int flgo = ((uae_s32)(dst)) < 0;
39572: int flgn = ((uae_s32)(newv)) < 0;
39573: SET_ZFLG (((uae_s32)(newv)) == 0);
39574: SET_VFLG ((flgs != flgo) && (flgn != flgo));
39575: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
39576: SET_NFLG (flgn != 0);
39577: }}}}}}}}m68k_incpc(8);
39578: fill_prefetch_0 ();
39579: endlabel2392: ;
39580: return 26;
39581: }
39582: unsigned long REGPARAM2 CPUFUNC(op_cb8_5)(uae_u32 opcode) /* CMP */
39583: {
39584: OpcodeFamily = 25; CurrentInstrCycles = 24;
39585: {{ uae_s32 src = get_ilong_prefetch(2);
39586: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(6);
39587: if ((dsta & 1) != 0) {
39588: last_fault_for_exception_3 = dsta;
39589: last_op_for_exception_3 = opcode;
39590: last_addr_for_exception_3 = m68k_getpc() + 8;
39591: Exception(3, 0, M68000_EXC_SRC_CPU);
39592: goto endlabel2393;
39593: }
39594: {{ uae_s32 dst = get_long(dsta);
39595: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
39596: { int flgs = ((uae_s32)(src)) < 0;
39597: int flgo = ((uae_s32)(dst)) < 0;
39598: int flgn = ((uae_s32)(newv)) < 0;
39599: SET_ZFLG (((uae_s32)(newv)) == 0);
39600: SET_VFLG ((flgs != flgo) && (flgn != flgo));
39601: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
39602: SET_NFLG (flgn != 0);
39603: }}}}}}}}m68k_incpc(8);
39604: fill_prefetch_0 ();
39605: endlabel2393: ;
39606: return 24;
39607: }
39608: unsigned long REGPARAM2 CPUFUNC(op_cb9_5)(uae_u32 opcode) /* CMP */
39609: {
39610: OpcodeFamily = 25; CurrentInstrCycles = 28;
39611: {{ uae_s32 src = get_ilong_prefetch(2);
39612: { uaecptr dsta = get_ilong_prefetch(6);
39613: if ((dsta & 1) != 0) {
39614: last_fault_for_exception_3 = dsta;
39615: last_op_for_exception_3 = opcode;
39616: last_addr_for_exception_3 = m68k_getpc() + 10;
39617: Exception(3, 0, M68000_EXC_SRC_CPU);
39618: goto endlabel2394;
39619: }
39620: {{ uae_s32 dst = get_long(dsta);
39621: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
39622: { int flgs = ((uae_s32)(src)) < 0;
39623: int flgo = ((uae_s32)(dst)) < 0;
39624: int flgn = ((uae_s32)(newv)) < 0;
39625: SET_ZFLG (((uae_s32)(newv)) == 0);
39626: SET_VFLG ((flgs != flgo) && (flgn != flgo));
39627: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
39628: SET_NFLG (flgn != 0);
39629: }}}}}}}}m68k_incpc(10);
39630: fill_prefetch_0 ();
39631: endlabel2394: ;
39632: return 28;
39633: }
39634: unsigned long REGPARAM2 CPUFUNC(op_cba_5)(uae_u32 opcode) /* CMP */
39635: {
39636: uae_u32 dstreg = 2;
39637: OpcodeFamily = 25; CurrentInstrCycles = 24;
39638: {{ uae_s32 src = get_ilong_prefetch(2);
39639: { uaecptr dsta = m68k_getpc () + 6;
39640: dsta += (uae_s32)(uae_s16)get_iword_prefetch(6);
39641: if ((dsta & 1) != 0) {
39642: last_fault_for_exception_3 = dsta;
39643: last_op_for_exception_3 = opcode;
39644: last_addr_for_exception_3 = m68k_getpc() + 8;
39645: Exception(3, 0, M68000_EXC_SRC_CPU);
39646: goto endlabel2395;
39647: }
39648: {{ uae_s32 dst = get_long(dsta);
39649: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
39650: { int flgs = ((uae_s32)(src)) < 0;
39651: int flgo = ((uae_s32)(dst)) < 0;
39652: int flgn = ((uae_s32)(newv)) < 0;
39653: SET_ZFLG (((uae_s32)(newv)) == 0);
39654: SET_VFLG ((flgs != flgo) && (flgn != flgo));
39655: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
39656: SET_NFLG (flgn != 0);
39657: }}}}}}}}m68k_incpc(8);
39658: fill_prefetch_0 ();
39659: endlabel2395: ;
39660: return 24;
39661: }
39662: unsigned long REGPARAM2 CPUFUNC(op_cbb_5)(uae_u32 opcode) /* CMP */
39663: {
39664: uae_u32 dstreg = 3;
39665: OpcodeFamily = 25; CurrentInstrCycles = 26;
39666: {{ uae_s32 src = get_ilong_prefetch(2);
39667: { uaecptr tmppc = m68k_getpc() + 6;
39668: uaecptr dsta = get_disp_ea_000(tmppc, get_iword_prefetch(6));
39669: BusCyclePenalty += 2;
39670: if ((dsta & 1) != 0) {
39671: last_fault_for_exception_3 = dsta;
39672: last_op_for_exception_3 = opcode;
39673: last_addr_for_exception_3 = m68k_getpc() + 8;
39674: Exception(3, 0, M68000_EXC_SRC_CPU);
39675: goto endlabel2396;
39676: }
39677: {{ uae_s32 dst = get_long(dsta);
39678: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
39679: { int flgs = ((uae_s32)(src)) < 0;
39680: int flgo = ((uae_s32)(dst)) < 0;
39681: int flgn = ((uae_s32)(newv)) < 0;
39682: SET_ZFLG (((uae_s32)(newv)) == 0);
39683: SET_VFLG ((flgs != flgo) && (flgn != flgo));
39684: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
39685: SET_NFLG (flgn != 0);
39686: }}}}}}}}m68k_incpc(8);
39687: fill_prefetch_0 ();
39688: endlabel2396: ;
39689: return 26;
39690: }
39691: unsigned long REGPARAM2 CPUFUNC(op_1000_5)(uae_u32 opcode) /* MOVE */
39692: {
39693: uae_u32 srcreg = (opcode & 7);
39694: uae_u32 dstreg = (opcode >> 9) & 7;
39695: OpcodeFamily = 30; CurrentInstrCycles = 4;
39696: {{ uae_s8 src = m68k_dreg(regs, srcreg);
39697: { CLEAR_CZNV;
39698: SET_ZFLG (((uae_s8)(src)) == 0);
39699: SET_NFLG (((uae_s8)(src)) < 0);
39700: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
39701: }}}m68k_incpc(2);
39702: fill_prefetch_2 ();
39703: return 4;
39704: }
39705: unsigned long REGPARAM2 CPUFUNC(op_1008_5)(uae_u32 opcode) /* MOVE */
39706: {
39707: uae_u32 srcreg = (opcode & 7);
39708: uae_u32 dstreg = (opcode >> 9) & 7;
39709: OpcodeFamily = 30; CurrentInstrCycles = 4;
39710: {{ uae_s8 src = m68k_areg(regs, srcreg);
39711: { CLEAR_CZNV;
39712: SET_ZFLG (((uae_s8)(src)) == 0);
39713: SET_NFLG (((uae_s8)(src)) < 0);
39714: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
39715: }}}m68k_incpc(2);
39716: fill_prefetch_2 ();
39717: return 4;
39718: }
39719: unsigned long REGPARAM2 CPUFUNC(op_1010_5)(uae_u32 opcode) /* MOVE */
39720: {
39721: uae_u32 srcreg = (opcode & 7);
39722: uae_u32 dstreg = (opcode >> 9) & 7;
39723: OpcodeFamily = 30; CurrentInstrCycles = 8;
39724: {{ uaecptr srca = m68k_areg(regs, srcreg);
39725: { uae_s8 src = get_byte(srca);
39726: { CLEAR_CZNV;
39727: SET_ZFLG (((uae_s8)(src)) == 0);
39728: SET_NFLG (((uae_s8)(src)) < 0);
39729: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
39730: }}}}m68k_incpc(2);
39731: fill_prefetch_2 ();
39732: return 8;
39733: }
39734: unsigned long REGPARAM2 CPUFUNC(op_1018_5)(uae_u32 opcode) /* MOVE */
39735: {
39736: uae_u32 srcreg = (opcode & 7);
39737: uae_u32 dstreg = (opcode >> 9) & 7;
39738: OpcodeFamily = 30; CurrentInstrCycles = 8;
39739: {{ uaecptr srca = m68k_areg(regs, srcreg);
39740: { uae_s8 src = get_byte(srca);
39741: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
39742: { CLEAR_CZNV;
39743: SET_ZFLG (((uae_s8)(src)) == 0);
39744: SET_NFLG (((uae_s8)(src)) < 0);
39745: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
39746: }}}}m68k_incpc(2);
39747: fill_prefetch_2 ();
39748: return 8;
39749: }
39750: unsigned long REGPARAM2 CPUFUNC(op_1020_5)(uae_u32 opcode) /* MOVE */
39751: {
39752: uae_u32 srcreg = (opcode & 7);
39753: uae_u32 dstreg = (opcode >> 9) & 7;
39754: OpcodeFamily = 30; CurrentInstrCycles = 10;
39755: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
39756: { uae_s8 src = get_byte(srca);
39757: m68k_areg (regs, srcreg) = srca;
39758: { CLEAR_CZNV;
39759: SET_ZFLG (((uae_s8)(src)) == 0);
39760: SET_NFLG (((uae_s8)(src)) < 0);
39761: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
39762: }}}}m68k_incpc(2);
39763: fill_prefetch_2 ();
39764: return 10;
39765: }
39766: unsigned long REGPARAM2 CPUFUNC(op_1028_5)(uae_u32 opcode) /* MOVE */
39767: {
39768: uae_u32 srcreg = (opcode & 7);
39769: uae_u32 dstreg = (opcode >> 9) & 7;
39770: OpcodeFamily = 30; CurrentInstrCycles = 12;
39771: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
39772: { uae_s8 src = get_byte(srca);
39773: { CLEAR_CZNV;
39774: SET_ZFLG (((uae_s8)(src)) == 0);
39775: SET_NFLG (((uae_s8)(src)) < 0);
39776: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
39777: }}}}m68k_incpc(4);
39778: fill_prefetch_0 ();
39779: return 12;
39780: }
39781: unsigned long REGPARAM2 CPUFUNC(op_1030_5)(uae_u32 opcode) /* MOVE */
39782: {
39783: uae_u32 srcreg = (opcode & 7);
39784: uae_u32 dstreg = (opcode >> 9) & 7;
39785: OpcodeFamily = 30; CurrentInstrCycles = 14;
39786: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
39787: BusCyclePenalty += 2;
39788: { uae_s8 src = get_byte(srca);
39789: { CLEAR_CZNV;
39790: SET_ZFLG (((uae_s8)(src)) == 0);
39791: SET_NFLG (((uae_s8)(src)) < 0);
39792: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
39793: }}}}m68k_incpc(4);
39794: fill_prefetch_0 ();
39795: return 14;
39796: }
39797: unsigned long REGPARAM2 CPUFUNC(op_1038_5)(uae_u32 opcode) /* MOVE */
39798: {
39799: uae_u32 dstreg = (opcode >> 9) & 7;
39800: OpcodeFamily = 30; CurrentInstrCycles = 12;
39801: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
39802: { uae_s8 src = get_byte(srca);
39803: { CLEAR_CZNV;
39804: SET_ZFLG (((uae_s8)(src)) == 0);
39805: SET_NFLG (((uae_s8)(src)) < 0);
39806: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
39807: }}}}m68k_incpc(4);
39808: fill_prefetch_0 ();
39809: return 12;
39810: }
39811: unsigned long REGPARAM2 CPUFUNC(op_1039_5)(uae_u32 opcode) /* MOVE */
39812: {
39813: uae_u32 dstreg = (opcode >> 9) & 7;
39814: OpcodeFamily = 30; CurrentInstrCycles = 16;
39815: {{ uaecptr srca = get_ilong_prefetch(2);
39816: { uae_s8 src = get_byte(srca);
39817: { CLEAR_CZNV;
39818: SET_ZFLG (((uae_s8)(src)) == 0);
39819: SET_NFLG (((uae_s8)(src)) < 0);
39820: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
39821: }}}}m68k_incpc(6);
39822: fill_prefetch_0 ();
39823: return 16;
39824: }
39825: unsigned long REGPARAM2 CPUFUNC(op_103a_5)(uae_u32 opcode) /* MOVE */
39826: {
39827: uae_u32 dstreg = (opcode >> 9) & 7;
39828: OpcodeFamily = 30; CurrentInstrCycles = 12;
39829: {{ uaecptr srca = m68k_getpc () + 2;
39830: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
39831: { uae_s8 src = get_byte(srca);
39832: { CLEAR_CZNV;
39833: SET_ZFLG (((uae_s8)(src)) == 0);
39834: SET_NFLG (((uae_s8)(src)) < 0);
39835: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
39836: }}}}m68k_incpc(4);
39837: fill_prefetch_0 ();
39838: return 12;
39839: }
39840: unsigned long REGPARAM2 CPUFUNC(op_103b_5)(uae_u32 opcode) /* MOVE */
39841: {
39842: uae_u32 dstreg = (opcode >> 9) & 7;
39843: OpcodeFamily = 30; CurrentInstrCycles = 14;
39844: {{ uaecptr tmppc = m68k_getpc() + 2;
39845: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
39846: BusCyclePenalty += 2;
39847: { uae_s8 src = get_byte(srca);
39848: { CLEAR_CZNV;
39849: SET_ZFLG (((uae_s8)(src)) == 0);
39850: SET_NFLG (((uae_s8)(src)) < 0);
39851: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
39852: }}}}m68k_incpc(4);
39853: fill_prefetch_0 ();
39854: return 14;
39855: }
39856: unsigned long REGPARAM2 CPUFUNC(op_103c_5)(uae_u32 opcode) /* MOVE */
39857: {
39858: uae_u32 dstreg = (opcode >> 9) & 7;
39859: OpcodeFamily = 30; CurrentInstrCycles = 8;
39860: {{ uae_s8 src = get_ibyte_prefetch(2);
39861: { CLEAR_CZNV;
39862: SET_ZFLG (((uae_s8)(src)) == 0);
39863: SET_NFLG (((uae_s8)(src)) < 0);
39864: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
39865: }}}m68k_incpc(4);
39866: fill_prefetch_0 ();
39867: return 8;
39868: }
39869: unsigned long REGPARAM2 CPUFUNC(op_1080_5)(uae_u32 opcode) /* MOVE */
39870: {
39871: uae_u32 srcreg = (opcode & 7);
39872: uae_u32 dstreg = (opcode >> 9) & 7;
39873: OpcodeFamily = 30; CurrentInstrCycles = 8;
39874: {{ uae_s8 src = m68k_dreg(regs, srcreg);
39875: { uaecptr dsta = m68k_areg(regs, dstreg);
39876: CLEAR_CZNV;
39877: SET_ZFLG (((uae_s8)(src)) == 0);
39878: SET_NFLG (((uae_s8)(src)) < 0);
39879: m68k_incpc(2);
39880: fill_prefetch_2 ();
39881: put_byte(dsta,src);
39882: }}}return 8;
39883: }
39884: unsigned long REGPARAM2 CPUFUNC(op_1088_5)(uae_u32 opcode) /* MOVE */
39885: {
39886: uae_u32 srcreg = (opcode & 7);
39887: uae_u32 dstreg = (opcode >> 9) & 7;
39888: OpcodeFamily = 30; CurrentInstrCycles = 8;
39889: {{ uae_s8 src = m68k_areg(regs, srcreg);
39890: { uaecptr dsta = m68k_areg(regs, dstreg);
39891: CLEAR_CZNV;
39892: SET_ZFLG (((uae_s8)(src)) == 0);
39893: SET_NFLG (((uae_s8)(src)) < 0);
39894: m68k_incpc(2);
39895: fill_prefetch_2 ();
39896: put_byte(dsta,src);
39897: }}}return 8;
39898: }
39899: unsigned long REGPARAM2 CPUFUNC(op_1090_5)(uae_u32 opcode) /* MOVE */
39900: {
39901: uae_u32 srcreg = (opcode & 7);
39902: uae_u32 dstreg = (opcode >> 9) & 7;
39903: OpcodeFamily = 30; CurrentInstrCycles = 12;
39904: {{ uaecptr srca = m68k_areg(regs, srcreg);
39905: { uae_s8 src = get_byte(srca);
39906: { uaecptr dsta = m68k_areg(regs, dstreg);
39907: CLEAR_CZNV;
39908: SET_ZFLG (((uae_s8)(src)) == 0);
39909: SET_NFLG (((uae_s8)(src)) < 0);
39910: m68k_incpc(2);
39911: fill_prefetch_2 ();
39912: put_byte(dsta,src);
39913: }}}}return 12;
39914: }
39915: unsigned long REGPARAM2 CPUFUNC(op_1098_5)(uae_u32 opcode) /* MOVE */
39916: {
39917: uae_u32 srcreg = (opcode & 7);
39918: uae_u32 dstreg = (opcode >> 9) & 7;
39919: OpcodeFamily = 30; CurrentInstrCycles = 12;
39920: {{ uaecptr srca = m68k_areg(regs, srcreg);
39921: { uae_s8 src = get_byte(srca);
39922: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
39923: { uaecptr dsta = m68k_areg(regs, dstreg);
39924: CLEAR_CZNV;
39925: SET_ZFLG (((uae_s8)(src)) == 0);
39926: SET_NFLG (((uae_s8)(src)) < 0);
39927: m68k_incpc(2);
39928: fill_prefetch_2 ();
39929: put_byte(dsta,src);
39930: }}}}return 12;
39931: }
39932: unsigned long REGPARAM2 CPUFUNC(op_10a0_5)(uae_u32 opcode) /* MOVE */
39933: {
39934: uae_u32 srcreg = (opcode & 7);
39935: uae_u32 dstreg = (opcode >> 9) & 7;
39936: OpcodeFamily = 30; CurrentInstrCycles = 14;
39937: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
39938: { uae_s8 src = get_byte(srca);
39939: m68k_areg (regs, srcreg) = srca;
39940: { uaecptr dsta = m68k_areg(regs, dstreg);
39941: CLEAR_CZNV;
39942: SET_ZFLG (((uae_s8)(src)) == 0);
39943: SET_NFLG (((uae_s8)(src)) < 0);
39944: m68k_incpc(2);
39945: fill_prefetch_2 ();
39946: put_byte(dsta,src);
39947: }}}}return 14;
39948: }
39949: unsigned long REGPARAM2 CPUFUNC(op_10a8_5)(uae_u32 opcode) /* MOVE */
39950: {
39951: uae_u32 srcreg = (opcode & 7);
39952: uae_u32 dstreg = (opcode >> 9) & 7;
39953: OpcodeFamily = 30; CurrentInstrCycles = 16;
39954: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
39955: { uae_s8 src = get_byte(srca);
39956: { uaecptr dsta = m68k_areg(regs, dstreg);
39957: CLEAR_CZNV;
39958: SET_ZFLG (((uae_s8)(src)) == 0);
39959: SET_NFLG (((uae_s8)(src)) < 0);
39960: m68k_incpc(4);
39961: fill_prefetch_0 ();
39962: put_byte(dsta,src);
39963: }}}}return 16;
39964: }
39965: unsigned long REGPARAM2 CPUFUNC(op_10b0_5)(uae_u32 opcode) /* MOVE */
39966: {
39967: uae_u32 srcreg = (opcode & 7);
39968: uae_u32 dstreg = (opcode >> 9) & 7;
39969: OpcodeFamily = 30; CurrentInstrCycles = 18;
39970: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
39971: BusCyclePenalty += 2;
39972: { uae_s8 src = get_byte(srca);
39973: { uaecptr dsta = m68k_areg(regs, dstreg);
39974: CLEAR_CZNV;
39975: SET_ZFLG (((uae_s8)(src)) == 0);
39976: SET_NFLG (((uae_s8)(src)) < 0);
39977: m68k_incpc(4);
39978: fill_prefetch_0 ();
39979: put_byte(dsta,src);
39980: }}}}return 18;
39981: }
39982: unsigned long REGPARAM2 CPUFUNC(op_10b8_5)(uae_u32 opcode) /* MOVE */
39983: {
39984: uae_u32 dstreg = (opcode >> 9) & 7;
39985: OpcodeFamily = 30; CurrentInstrCycles = 16;
39986: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
39987: { uae_s8 src = get_byte(srca);
39988: { uaecptr dsta = m68k_areg(regs, dstreg);
39989: CLEAR_CZNV;
39990: SET_ZFLG (((uae_s8)(src)) == 0);
39991: SET_NFLG (((uae_s8)(src)) < 0);
39992: m68k_incpc(4);
39993: fill_prefetch_0 ();
39994: put_byte(dsta,src);
39995: }}}}return 16;
39996: }
39997: unsigned long REGPARAM2 CPUFUNC(op_10b9_5)(uae_u32 opcode) /* MOVE */
39998: {
39999: uae_u32 dstreg = (opcode >> 9) & 7;
40000: OpcodeFamily = 30; CurrentInstrCycles = 20;
40001: {{ uaecptr srca = get_ilong_prefetch(2);
40002: { uae_s8 src = get_byte(srca);
40003: { uaecptr dsta = m68k_areg(regs, dstreg);
40004: CLEAR_CZNV;
40005: SET_ZFLG (((uae_s8)(src)) == 0);
40006: SET_NFLG (((uae_s8)(src)) < 0);
40007: m68k_incpc(6);
40008: fill_prefetch_0 ();
40009: put_byte(dsta,src);
40010: }}}}return 20;
40011: }
40012: unsigned long REGPARAM2 CPUFUNC(op_10ba_5)(uae_u32 opcode) /* MOVE */
40013: {
40014: uae_u32 dstreg = (opcode >> 9) & 7;
40015: OpcodeFamily = 30; CurrentInstrCycles = 16;
40016: {{ uaecptr srca = m68k_getpc () + 2;
40017: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
40018: { uae_s8 src = get_byte(srca);
40019: { uaecptr dsta = m68k_areg(regs, dstreg);
40020: CLEAR_CZNV;
40021: SET_ZFLG (((uae_s8)(src)) == 0);
40022: SET_NFLG (((uae_s8)(src)) < 0);
40023: m68k_incpc(4);
40024: fill_prefetch_0 ();
40025: put_byte(dsta,src);
40026: }}}}return 16;
40027: }
40028: unsigned long REGPARAM2 CPUFUNC(op_10bb_5)(uae_u32 opcode) /* MOVE */
40029: {
40030: uae_u32 dstreg = (opcode >> 9) & 7;
40031: OpcodeFamily = 30; CurrentInstrCycles = 18;
40032: {{ uaecptr tmppc = m68k_getpc() + 2;
40033: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
40034: BusCyclePenalty += 2;
40035: { uae_s8 src = get_byte(srca);
40036: { uaecptr dsta = m68k_areg(regs, dstreg);
40037: CLEAR_CZNV;
40038: SET_ZFLG (((uae_s8)(src)) == 0);
40039: SET_NFLG (((uae_s8)(src)) < 0);
40040: m68k_incpc(4);
40041: fill_prefetch_0 ();
40042: put_byte(dsta,src);
40043: }}}}return 18;
40044: }
40045: unsigned long REGPARAM2 CPUFUNC(op_10bc_5)(uae_u32 opcode) /* MOVE */
40046: {
40047: uae_u32 dstreg = (opcode >> 9) & 7;
40048: OpcodeFamily = 30; CurrentInstrCycles = 12;
40049: {{ uae_s8 src = get_ibyte_prefetch(2);
40050: { uaecptr dsta = m68k_areg(regs, dstreg);
40051: CLEAR_CZNV;
40052: SET_ZFLG (((uae_s8)(src)) == 0);
40053: SET_NFLG (((uae_s8)(src)) < 0);
40054: m68k_incpc(4);
40055: fill_prefetch_0 ();
40056: put_byte(dsta,src);
40057: }}}return 12;
40058: }
40059: unsigned long REGPARAM2 CPUFUNC(op_10c0_5)(uae_u32 opcode) /* MOVE */
40060: {
40061: uae_u32 srcreg = (opcode & 7);
40062: uae_u32 dstreg = (opcode >> 9) & 7;
40063: OpcodeFamily = 30; CurrentInstrCycles = 8;
40064: {{ uae_s8 src = m68k_dreg(regs, srcreg);
40065: { uaecptr dsta = m68k_areg(regs, dstreg);
40066: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
40067: CLEAR_CZNV;
40068: SET_ZFLG (((uae_s8)(src)) == 0);
40069: SET_NFLG (((uae_s8)(src)) < 0);
40070: m68k_incpc(2);
40071: fill_prefetch_2 ();
40072: put_byte(dsta,src);
40073: }}}return 8;
40074: }
40075: unsigned long REGPARAM2 CPUFUNC(op_10c8_5)(uae_u32 opcode) /* MOVE */
40076: {
40077: uae_u32 srcreg = (opcode & 7);
40078: uae_u32 dstreg = (opcode >> 9) & 7;
40079: OpcodeFamily = 30; CurrentInstrCycles = 8;
40080: {{ uae_s8 src = m68k_areg(regs, srcreg);
40081: { uaecptr dsta = m68k_areg(regs, dstreg);
40082: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
40083: CLEAR_CZNV;
40084: SET_ZFLG (((uae_s8)(src)) == 0);
40085: SET_NFLG (((uae_s8)(src)) < 0);
40086: m68k_incpc(2);
40087: fill_prefetch_2 ();
40088: put_byte(dsta,src);
40089: }}}return 8;
40090: }
40091: unsigned long REGPARAM2 CPUFUNC(op_10d0_5)(uae_u32 opcode) /* MOVE */
40092: {
40093: uae_u32 srcreg = (opcode & 7);
40094: uae_u32 dstreg = (opcode >> 9) & 7;
40095: OpcodeFamily = 30; CurrentInstrCycles = 12;
40096: {{ uaecptr srca = m68k_areg(regs, srcreg);
40097: { uae_s8 src = get_byte(srca);
40098: { uaecptr dsta = m68k_areg(regs, dstreg);
40099: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
40100: CLEAR_CZNV;
40101: SET_ZFLG (((uae_s8)(src)) == 0);
40102: SET_NFLG (((uae_s8)(src)) < 0);
40103: m68k_incpc(2);
40104: fill_prefetch_2 ();
40105: put_byte(dsta,src);
40106: }}}}return 12;
40107: }
40108: unsigned long REGPARAM2 CPUFUNC(op_10d8_5)(uae_u32 opcode) /* MOVE */
40109: {
40110: uae_u32 srcreg = (opcode & 7);
40111: uae_u32 dstreg = (opcode >> 9) & 7;
40112: OpcodeFamily = 30; CurrentInstrCycles = 12;
40113: {{ uaecptr srca = m68k_areg(regs, srcreg);
40114: { uae_s8 src = get_byte(srca);
40115: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
40116: { uaecptr dsta = m68k_areg(regs, dstreg);
40117: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
40118: CLEAR_CZNV;
40119: SET_ZFLG (((uae_s8)(src)) == 0);
40120: SET_NFLG (((uae_s8)(src)) < 0);
40121: m68k_incpc(2);
40122: fill_prefetch_2 ();
40123: put_byte(dsta,src);
40124: }}}}return 12;
40125: }
40126: unsigned long REGPARAM2 CPUFUNC(op_10e0_5)(uae_u32 opcode) /* MOVE */
40127: {
40128: uae_u32 srcreg = (opcode & 7);
40129: uae_u32 dstreg = (opcode >> 9) & 7;
40130: OpcodeFamily = 30; CurrentInstrCycles = 14;
40131: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
40132: { uae_s8 src = get_byte(srca);
40133: m68k_areg (regs, srcreg) = srca;
40134: { uaecptr dsta = m68k_areg(regs, dstreg);
40135: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
40136: CLEAR_CZNV;
40137: SET_ZFLG (((uae_s8)(src)) == 0);
40138: SET_NFLG (((uae_s8)(src)) < 0);
40139: m68k_incpc(2);
40140: fill_prefetch_2 ();
40141: put_byte(dsta,src);
40142: }}}}return 14;
40143: }
40144: unsigned long REGPARAM2 CPUFUNC(op_10e8_5)(uae_u32 opcode) /* MOVE */
40145: {
40146: uae_u32 srcreg = (opcode & 7);
40147: uae_u32 dstreg = (opcode >> 9) & 7;
40148: OpcodeFamily = 30; CurrentInstrCycles = 16;
40149: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
40150: { uae_s8 src = get_byte(srca);
40151: { uaecptr dsta = m68k_areg(regs, dstreg);
40152: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
40153: CLEAR_CZNV;
40154: SET_ZFLG (((uae_s8)(src)) == 0);
40155: SET_NFLG (((uae_s8)(src)) < 0);
40156: m68k_incpc(4);
40157: fill_prefetch_0 ();
40158: put_byte(dsta,src);
40159: }}}}return 16;
40160: }
40161: unsigned long REGPARAM2 CPUFUNC(op_10f0_5)(uae_u32 opcode) /* MOVE */
40162: {
40163: uae_u32 srcreg = (opcode & 7);
40164: uae_u32 dstreg = (opcode >> 9) & 7;
40165: OpcodeFamily = 30; CurrentInstrCycles = 18;
40166: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
40167: BusCyclePenalty += 2;
40168: { uae_s8 src = get_byte(srca);
40169: { uaecptr dsta = m68k_areg(regs, dstreg);
40170: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
40171: CLEAR_CZNV;
40172: SET_ZFLG (((uae_s8)(src)) == 0);
40173: SET_NFLG (((uae_s8)(src)) < 0);
40174: m68k_incpc(4);
40175: fill_prefetch_0 ();
40176: put_byte(dsta,src);
40177: }}}}return 18;
40178: }
40179: unsigned long REGPARAM2 CPUFUNC(op_10f8_5)(uae_u32 opcode) /* MOVE */
40180: {
40181: uae_u32 dstreg = (opcode >> 9) & 7;
40182: OpcodeFamily = 30; CurrentInstrCycles = 16;
40183: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
40184: { uae_s8 src = get_byte(srca);
40185: { uaecptr dsta = m68k_areg(regs, dstreg);
40186: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
40187: CLEAR_CZNV;
40188: SET_ZFLG (((uae_s8)(src)) == 0);
40189: SET_NFLG (((uae_s8)(src)) < 0);
40190: m68k_incpc(4);
40191: fill_prefetch_0 ();
40192: put_byte(dsta,src);
40193: }}}}return 16;
40194: }
40195: unsigned long REGPARAM2 CPUFUNC(op_10f9_5)(uae_u32 opcode) /* MOVE */
40196: {
40197: uae_u32 dstreg = (opcode >> 9) & 7;
40198: OpcodeFamily = 30; CurrentInstrCycles = 20;
40199: {{ uaecptr srca = get_ilong_prefetch(2);
40200: { uae_s8 src = get_byte(srca);
40201: { uaecptr dsta = m68k_areg(regs, dstreg);
40202: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
40203: CLEAR_CZNV;
40204: SET_ZFLG (((uae_s8)(src)) == 0);
40205: SET_NFLG (((uae_s8)(src)) < 0);
40206: m68k_incpc(6);
40207: fill_prefetch_0 ();
40208: put_byte(dsta,src);
40209: }}}}return 20;
40210: }
40211: unsigned long REGPARAM2 CPUFUNC(op_10fa_5)(uae_u32 opcode) /* MOVE */
40212: {
40213: uae_u32 dstreg = (opcode >> 9) & 7;
40214: OpcodeFamily = 30; CurrentInstrCycles = 16;
40215: {{ uaecptr srca = m68k_getpc () + 2;
40216: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
40217: { uae_s8 src = get_byte(srca);
40218: { uaecptr dsta = m68k_areg(regs, dstreg);
40219: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
40220: CLEAR_CZNV;
40221: SET_ZFLG (((uae_s8)(src)) == 0);
40222: SET_NFLG (((uae_s8)(src)) < 0);
40223: m68k_incpc(4);
40224: fill_prefetch_0 ();
40225: put_byte(dsta,src);
40226: }}}}return 16;
40227: }
40228: unsigned long REGPARAM2 CPUFUNC(op_10fb_5)(uae_u32 opcode) /* MOVE */
40229: {
40230: uae_u32 dstreg = (opcode >> 9) & 7;
40231: OpcodeFamily = 30; CurrentInstrCycles = 18;
40232: {{ uaecptr tmppc = m68k_getpc() + 2;
40233: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
40234: BusCyclePenalty += 2;
40235: { uae_s8 src = get_byte(srca);
40236: { uaecptr dsta = m68k_areg(regs, dstreg);
40237: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
40238: CLEAR_CZNV;
40239: SET_ZFLG (((uae_s8)(src)) == 0);
40240: SET_NFLG (((uae_s8)(src)) < 0);
40241: m68k_incpc(4);
40242: fill_prefetch_0 ();
40243: put_byte(dsta,src);
40244: }}}}return 18;
40245: }
40246: unsigned long REGPARAM2 CPUFUNC(op_10fc_5)(uae_u32 opcode) /* MOVE */
40247: {
40248: uae_u32 dstreg = (opcode >> 9) & 7;
40249: OpcodeFamily = 30; CurrentInstrCycles = 12;
40250: {{ uae_s8 src = get_ibyte_prefetch(2);
40251: { uaecptr dsta = m68k_areg(regs, dstreg);
40252: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
40253: CLEAR_CZNV;
40254: SET_ZFLG (((uae_s8)(src)) == 0);
40255: SET_NFLG (((uae_s8)(src)) < 0);
40256: m68k_incpc(4);
40257: fill_prefetch_0 ();
40258: put_byte(dsta,src);
40259: }}}return 12;
40260: }
40261: unsigned long REGPARAM2 CPUFUNC(op_1100_5)(uae_u32 opcode) /* MOVE */
40262: {
40263: uae_u32 srcreg = (opcode & 7);
40264: uae_u32 dstreg = (opcode >> 9) & 7;
40265: OpcodeFamily = 30; CurrentInstrCycles = 8;
40266: {{ uae_s8 src = m68k_dreg(regs, srcreg);
40267: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
40268: m68k_areg (regs, dstreg) = dsta;
40269: CLEAR_CZNV;
40270: SET_ZFLG (((uae_s8)(src)) == 0);
40271: SET_NFLG (((uae_s8)(src)) < 0);
40272: m68k_incpc(2);
40273: fill_prefetch_2 ();
40274: put_byte(dsta,src);
40275: }}}return 8;
40276: }
40277: unsigned long REGPARAM2 CPUFUNC(op_1108_5)(uae_u32 opcode) /* MOVE */
40278: {
40279: uae_u32 srcreg = (opcode & 7);
40280: uae_u32 dstreg = (opcode >> 9) & 7;
40281: OpcodeFamily = 30; CurrentInstrCycles = 8;
40282: {{ uae_s8 src = m68k_areg(regs, srcreg);
40283: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
40284: m68k_areg (regs, dstreg) = dsta;
40285: CLEAR_CZNV;
40286: SET_ZFLG (((uae_s8)(src)) == 0);
40287: SET_NFLG (((uae_s8)(src)) < 0);
40288: m68k_incpc(2);
40289: fill_prefetch_2 ();
40290: put_byte(dsta,src);
40291: }}}return 8;
40292: }
40293: unsigned long REGPARAM2 CPUFUNC(op_1110_5)(uae_u32 opcode) /* MOVE */
40294: {
40295: uae_u32 srcreg = (opcode & 7);
40296: uae_u32 dstreg = (opcode >> 9) & 7;
40297: OpcodeFamily = 30; CurrentInstrCycles = 12;
40298: {{ uaecptr srca = m68k_areg(regs, srcreg);
40299: { uae_s8 src = get_byte(srca);
40300: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
40301: m68k_areg (regs, dstreg) = dsta;
40302: CLEAR_CZNV;
40303: SET_ZFLG (((uae_s8)(src)) == 0);
40304: SET_NFLG (((uae_s8)(src)) < 0);
40305: m68k_incpc(2);
40306: fill_prefetch_2 ();
40307: put_byte(dsta,src);
40308: }}}}return 12;
40309: }
40310: unsigned long REGPARAM2 CPUFUNC(op_1118_5)(uae_u32 opcode) /* MOVE */
40311: {
40312: uae_u32 srcreg = (opcode & 7);
40313: uae_u32 dstreg = (opcode >> 9) & 7;
40314: OpcodeFamily = 30; CurrentInstrCycles = 12;
40315: {{ uaecptr srca = m68k_areg(regs, srcreg);
40316: { uae_s8 src = get_byte(srca);
40317: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
40318: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
40319: m68k_areg (regs, dstreg) = dsta;
40320: CLEAR_CZNV;
40321: SET_ZFLG (((uae_s8)(src)) == 0);
40322: SET_NFLG (((uae_s8)(src)) < 0);
40323: m68k_incpc(2);
40324: fill_prefetch_2 ();
40325: put_byte(dsta,src);
40326: }}}}return 12;
40327: }
40328: unsigned long REGPARAM2 CPUFUNC(op_1120_5)(uae_u32 opcode) /* MOVE */
40329: {
40330: uae_u32 srcreg = (opcode & 7);
40331: uae_u32 dstreg = (opcode >> 9) & 7;
40332: OpcodeFamily = 30; CurrentInstrCycles = 14;
40333: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
40334: { uae_s8 src = get_byte(srca);
40335: m68k_areg (regs, srcreg) = srca;
40336: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
40337: m68k_areg (regs, dstreg) = dsta;
40338: CLEAR_CZNV;
40339: SET_ZFLG (((uae_s8)(src)) == 0);
40340: SET_NFLG (((uae_s8)(src)) < 0);
40341: m68k_incpc(2);
40342: fill_prefetch_2 ();
40343: put_byte(dsta,src);
40344: }}}}return 14;
40345: }
40346: unsigned long REGPARAM2 CPUFUNC(op_1128_5)(uae_u32 opcode) /* MOVE */
40347: {
40348: uae_u32 srcreg = (opcode & 7);
40349: uae_u32 dstreg = (opcode >> 9) & 7;
40350: OpcodeFamily = 30; CurrentInstrCycles = 16;
40351: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
40352: { uae_s8 src = get_byte(srca);
40353: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
40354: m68k_areg (regs, dstreg) = dsta;
40355: CLEAR_CZNV;
40356: SET_ZFLG (((uae_s8)(src)) == 0);
40357: SET_NFLG (((uae_s8)(src)) < 0);
40358: m68k_incpc(4);
40359: fill_prefetch_0 ();
40360: put_byte(dsta,src);
40361: }}}}return 16;
40362: }
40363: unsigned long REGPARAM2 CPUFUNC(op_1130_5)(uae_u32 opcode) /* MOVE */
40364: {
40365: uae_u32 srcreg = (opcode & 7);
40366: uae_u32 dstreg = (opcode >> 9) & 7;
40367: OpcodeFamily = 30; CurrentInstrCycles = 18;
40368: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
40369: BusCyclePenalty += 2;
40370: { uae_s8 src = get_byte(srca);
40371: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
40372: m68k_areg (regs, dstreg) = dsta;
40373: CLEAR_CZNV;
40374: SET_ZFLG (((uae_s8)(src)) == 0);
40375: SET_NFLG (((uae_s8)(src)) < 0);
40376: m68k_incpc(4);
40377: fill_prefetch_0 ();
40378: put_byte(dsta,src);
40379: }}}}return 18;
40380: }
40381: unsigned long REGPARAM2 CPUFUNC(op_1138_5)(uae_u32 opcode) /* MOVE */
40382: {
40383: uae_u32 dstreg = (opcode >> 9) & 7;
40384: OpcodeFamily = 30; CurrentInstrCycles = 16;
40385: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
40386: { uae_s8 src = get_byte(srca);
40387: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
40388: m68k_areg (regs, dstreg) = dsta;
40389: CLEAR_CZNV;
40390: SET_ZFLG (((uae_s8)(src)) == 0);
40391: SET_NFLG (((uae_s8)(src)) < 0);
40392: m68k_incpc(4);
40393: fill_prefetch_0 ();
40394: put_byte(dsta,src);
40395: }}}}return 16;
40396: }
40397: unsigned long REGPARAM2 CPUFUNC(op_1139_5)(uae_u32 opcode) /* MOVE */
40398: {
40399: uae_u32 dstreg = (opcode >> 9) & 7;
40400: OpcodeFamily = 30; CurrentInstrCycles = 20;
40401: {{ uaecptr srca = get_ilong_prefetch(2);
40402: { uae_s8 src = get_byte(srca);
40403: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
40404: m68k_areg (regs, dstreg) = dsta;
40405: CLEAR_CZNV;
40406: SET_ZFLG (((uae_s8)(src)) == 0);
40407: SET_NFLG (((uae_s8)(src)) < 0);
40408: m68k_incpc(6);
40409: fill_prefetch_0 ();
40410: put_byte(dsta,src);
40411: }}}}return 20;
40412: }
40413: unsigned long REGPARAM2 CPUFUNC(op_113a_5)(uae_u32 opcode) /* MOVE */
40414: {
40415: uae_u32 dstreg = (opcode >> 9) & 7;
40416: OpcodeFamily = 30; CurrentInstrCycles = 16;
40417: {{ uaecptr srca = m68k_getpc () + 2;
40418: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
40419: { uae_s8 src = get_byte(srca);
40420: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
40421: m68k_areg (regs, dstreg) = dsta;
40422: CLEAR_CZNV;
40423: SET_ZFLG (((uae_s8)(src)) == 0);
40424: SET_NFLG (((uae_s8)(src)) < 0);
40425: m68k_incpc(4);
40426: fill_prefetch_0 ();
40427: put_byte(dsta,src);
40428: }}}}return 16;
40429: }
40430: unsigned long REGPARAM2 CPUFUNC(op_113b_5)(uae_u32 opcode) /* MOVE */
40431: {
40432: uae_u32 dstreg = (opcode >> 9) & 7;
40433: OpcodeFamily = 30; CurrentInstrCycles = 18;
40434: {{ uaecptr tmppc = m68k_getpc() + 2;
40435: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
40436: BusCyclePenalty += 2;
40437: { uae_s8 src = get_byte(srca);
40438: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
40439: m68k_areg (regs, dstreg) = dsta;
40440: CLEAR_CZNV;
40441: SET_ZFLG (((uae_s8)(src)) == 0);
40442: SET_NFLG (((uae_s8)(src)) < 0);
40443: m68k_incpc(4);
40444: fill_prefetch_0 ();
40445: put_byte(dsta,src);
40446: }}}}return 18;
40447: }
40448: unsigned long REGPARAM2 CPUFUNC(op_113c_5)(uae_u32 opcode) /* MOVE */
40449: {
40450: uae_u32 dstreg = (opcode >> 9) & 7;
40451: OpcodeFamily = 30; CurrentInstrCycles = 12;
40452: {{ uae_s8 src = get_ibyte_prefetch(2);
40453: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
40454: m68k_areg (regs, dstreg) = dsta;
40455: CLEAR_CZNV;
40456: SET_ZFLG (((uae_s8)(src)) == 0);
40457: SET_NFLG (((uae_s8)(src)) < 0);
40458: m68k_incpc(4);
40459: fill_prefetch_0 ();
40460: put_byte(dsta,src);
40461: }}}return 12;
40462: }
40463: unsigned long REGPARAM2 CPUFUNC(op_1140_5)(uae_u32 opcode) /* MOVE */
40464: {
40465: uae_u32 srcreg = (opcode & 7);
40466: uae_u32 dstreg = (opcode >> 9) & 7;
40467: OpcodeFamily = 30; CurrentInstrCycles = 12;
40468: {{ uae_s8 src = m68k_dreg(regs, srcreg);
40469: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
40470: CLEAR_CZNV;
40471: SET_ZFLG (((uae_s8)(src)) == 0);
40472: SET_NFLG (((uae_s8)(src)) < 0);
40473: m68k_incpc(4);
40474: fill_prefetch_0 ();
40475: put_byte(dsta,src);
40476: }}}return 12;
40477: }
40478: unsigned long REGPARAM2 CPUFUNC(op_1148_5)(uae_u32 opcode) /* MOVE */
40479: {
40480: uae_u32 srcreg = (opcode & 7);
40481: uae_u32 dstreg = (opcode >> 9) & 7;
40482: OpcodeFamily = 30; CurrentInstrCycles = 12;
40483: {{ uae_s8 src = m68k_areg(regs, srcreg);
40484: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
40485: CLEAR_CZNV;
40486: SET_ZFLG (((uae_s8)(src)) == 0);
40487: SET_NFLG (((uae_s8)(src)) < 0);
40488: m68k_incpc(4);
40489: fill_prefetch_0 ();
40490: put_byte(dsta,src);
40491: }}}return 12;
40492: }
40493: unsigned long REGPARAM2 CPUFUNC(op_1150_5)(uae_u32 opcode) /* MOVE */
40494: {
40495: uae_u32 srcreg = (opcode & 7);
40496: uae_u32 dstreg = (opcode >> 9) & 7;
40497: OpcodeFamily = 30; CurrentInstrCycles = 16;
40498: {{ uaecptr srca = m68k_areg(regs, srcreg);
40499: { uae_s8 src = get_byte(srca);
40500: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
40501: CLEAR_CZNV;
40502: SET_ZFLG (((uae_s8)(src)) == 0);
40503: SET_NFLG (((uae_s8)(src)) < 0);
40504: m68k_incpc(4);
40505: fill_prefetch_0 ();
40506: put_byte(dsta,src);
40507: }}}}return 16;
40508: }
40509: unsigned long REGPARAM2 CPUFUNC(op_1158_5)(uae_u32 opcode) /* MOVE */
40510: {
40511: uae_u32 srcreg = (opcode & 7);
40512: uae_u32 dstreg = (opcode >> 9) & 7;
40513: OpcodeFamily = 30; CurrentInstrCycles = 16;
40514: {{ uaecptr srca = m68k_areg(regs, srcreg);
40515: { uae_s8 src = get_byte(srca);
40516: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
40517: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
40518: CLEAR_CZNV;
40519: SET_ZFLG (((uae_s8)(src)) == 0);
40520: SET_NFLG (((uae_s8)(src)) < 0);
40521: m68k_incpc(4);
40522: fill_prefetch_0 ();
40523: put_byte(dsta,src);
40524: }}}}return 16;
40525: }
40526: unsigned long REGPARAM2 CPUFUNC(op_1160_5)(uae_u32 opcode) /* MOVE */
40527: {
40528: uae_u32 srcreg = (opcode & 7);
40529: uae_u32 dstreg = (opcode >> 9) & 7;
40530: OpcodeFamily = 30; CurrentInstrCycles = 18;
40531: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
40532: { uae_s8 src = get_byte(srca);
40533: m68k_areg (regs, srcreg) = srca;
40534: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
40535: CLEAR_CZNV;
40536: SET_ZFLG (((uae_s8)(src)) == 0);
40537: SET_NFLG (((uae_s8)(src)) < 0);
40538: m68k_incpc(4);
40539: fill_prefetch_0 ();
40540: put_byte(dsta,src);
40541: }}}}return 18;
40542: }
40543: unsigned long REGPARAM2 CPUFUNC(op_1168_5)(uae_u32 opcode) /* MOVE */
40544: {
40545: uae_u32 srcreg = (opcode & 7);
40546: uae_u32 dstreg = (opcode >> 9) & 7;
40547: OpcodeFamily = 30; CurrentInstrCycles = 20;
40548: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
40549: { uae_s8 src = get_byte(srca);
40550: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
40551: CLEAR_CZNV;
40552: SET_ZFLG (((uae_s8)(src)) == 0);
40553: SET_NFLG (((uae_s8)(src)) < 0);
40554: m68k_incpc(6);
40555: fill_prefetch_0 ();
40556: put_byte(dsta,src);
40557: }}}}return 20;
40558: }
40559: unsigned long REGPARAM2 CPUFUNC(op_1170_5)(uae_u32 opcode) /* MOVE */
40560: {
40561: uae_u32 srcreg = (opcode & 7);
40562: uae_u32 dstreg = (opcode >> 9) & 7;
40563: OpcodeFamily = 30; CurrentInstrCycles = 22;
40564: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
40565: BusCyclePenalty += 2;
40566: { uae_s8 src = get_byte(srca);
40567: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
40568: CLEAR_CZNV;
40569: SET_ZFLG (((uae_s8)(src)) == 0);
40570: SET_NFLG (((uae_s8)(src)) < 0);
40571: m68k_incpc(6);
40572: fill_prefetch_0 ();
40573: put_byte(dsta,src);
40574: }}}}return 22;
40575: }
40576: unsigned long REGPARAM2 CPUFUNC(op_1178_5)(uae_u32 opcode) /* MOVE */
40577: {
40578: uae_u32 dstreg = (opcode >> 9) & 7;
40579: OpcodeFamily = 30; CurrentInstrCycles = 20;
40580: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
40581: { uae_s8 src = get_byte(srca);
40582: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
40583: CLEAR_CZNV;
40584: SET_ZFLG (((uae_s8)(src)) == 0);
40585: SET_NFLG (((uae_s8)(src)) < 0);
40586: m68k_incpc(6);
40587: fill_prefetch_0 ();
40588: put_byte(dsta,src);
40589: }}}}return 20;
40590: }
40591: unsigned long REGPARAM2 CPUFUNC(op_1179_5)(uae_u32 opcode) /* MOVE */
40592: {
40593: uae_u32 dstreg = (opcode >> 9) & 7;
40594: OpcodeFamily = 30; CurrentInstrCycles = 24;
40595: {{ uaecptr srca = get_ilong_prefetch(2);
40596: { uae_s8 src = get_byte(srca);
40597: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(6);
40598: CLEAR_CZNV;
40599: SET_ZFLG (((uae_s8)(src)) == 0);
40600: SET_NFLG (((uae_s8)(src)) < 0);
40601: m68k_incpc(8);
40602: fill_prefetch_0 ();
40603: put_byte(dsta,src);
40604: }}}}return 24;
40605: }
40606: unsigned long REGPARAM2 CPUFUNC(op_117a_5)(uae_u32 opcode) /* MOVE */
40607: {
40608: uae_u32 dstreg = (opcode >> 9) & 7;
40609: OpcodeFamily = 30; CurrentInstrCycles = 20;
40610: {{ uaecptr srca = m68k_getpc () + 2;
40611: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
40612: { uae_s8 src = get_byte(srca);
40613: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
40614: CLEAR_CZNV;
40615: SET_ZFLG (((uae_s8)(src)) == 0);
40616: SET_NFLG (((uae_s8)(src)) < 0);
40617: m68k_incpc(6);
40618: fill_prefetch_0 ();
40619: put_byte(dsta,src);
40620: }}}}return 20;
40621: }
40622: unsigned long REGPARAM2 CPUFUNC(op_117b_5)(uae_u32 opcode) /* MOVE */
40623: {
40624: uae_u32 dstreg = (opcode >> 9) & 7;
40625: OpcodeFamily = 30; CurrentInstrCycles = 22;
40626: {{ uaecptr tmppc = m68k_getpc() + 2;
40627: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
40628: BusCyclePenalty += 2;
40629: { uae_s8 src = get_byte(srca);
40630: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
40631: CLEAR_CZNV;
40632: SET_ZFLG (((uae_s8)(src)) == 0);
40633: SET_NFLG (((uae_s8)(src)) < 0);
40634: m68k_incpc(6);
40635: fill_prefetch_0 ();
40636: put_byte(dsta,src);
40637: }}}}return 22;
40638: }
40639: unsigned long REGPARAM2 CPUFUNC(op_117c_5)(uae_u32 opcode) /* MOVE */
40640: {
40641: uae_u32 dstreg = (opcode >> 9) & 7;
40642: OpcodeFamily = 30; CurrentInstrCycles = 16;
40643: {{ uae_s8 src = get_ibyte_prefetch(2);
40644: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
40645: CLEAR_CZNV;
40646: SET_ZFLG (((uae_s8)(src)) == 0);
40647: SET_NFLG (((uae_s8)(src)) < 0);
40648: m68k_incpc(6);
40649: fill_prefetch_0 ();
40650: put_byte(dsta,src);
40651: }}}return 16;
40652: }
40653: unsigned long REGPARAM2 CPUFUNC(op_1180_5)(uae_u32 opcode) /* MOVE */
40654: {
40655: uae_u32 srcreg = (opcode & 7);
40656: uae_u32 dstreg = (opcode >> 9) & 7;
40657: OpcodeFamily = 30; CurrentInstrCycles = 14;
40658: {{ uae_s8 src = m68k_dreg(regs, srcreg);
40659: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
40660: BusCyclePenalty += 2;
40661: CLEAR_CZNV;
40662: SET_ZFLG (((uae_s8)(src)) == 0);
40663: SET_NFLG (((uae_s8)(src)) < 0);
40664: m68k_incpc(4);
40665: fill_prefetch_0 ();
40666: put_byte(dsta,src);
40667: }}}return 14;
40668: }
40669: unsigned long REGPARAM2 CPUFUNC(op_1188_5)(uae_u32 opcode) /* MOVE */
40670: {
40671: uae_u32 srcreg = (opcode & 7);
40672: uae_u32 dstreg = (opcode >> 9) & 7;
40673: OpcodeFamily = 30; CurrentInstrCycles = 14;
40674: {{ uae_s8 src = m68k_areg(regs, srcreg);
40675: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
40676: BusCyclePenalty += 2;
40677: CLEAR_CZNV;
40678: SET_ZFLG (((uae_s8)(src)) == 0);
40679: SET_NFLG (((uae_s8)(src)) < 0);
40680: m68k_incpc(4);
40681: fill_prefetch_0 ();
40682: put_byte(dsta,src);
40683: }}}return 14;
40684: }
40685: unsigned long REGPARAM2 CPUFUNC(op_1190_5)(uae_u32 opcode) /* MOVE */
40686: {
40687: uae_u32 srcreg = (opcode & 7);
40688: uae_u32 dstreg = (opcode >> 9) & 7;
40689: OpcodeFamily = 30; CurrentInstrCycles = 18;
40690: {{ uaecptr srca = m68k_areg(regs, srcreg);
40691: { uae_s8 src = get_byte(srca);
40692: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
40693: BusCyclePenalty += 2;
40694: CLEAR_CZNV;
40695: SET_ZFLG (((uae_s8)(src)) == 0);
40696: SET_NFLG (((uae_s8)(src)) < 0);
40697: m68k_incpc(4);
40698: fill_prefetch_0 ();
40699: put_byte(dsta,src);
40700: }}}}return 18;
40701: }
40702: unsigned long REGPARAM2 CPUFUNC(op_1198_5)(uae_u32 opcode) /* MOVE */
40703: {
40704: uae_u32 srcreg = (opcode & 7);
40705: uae_u32 dstreg = (opcode >> 9) & 7;
40706: OpcodeFamily = 30; CurrentInstrCycles = 18;
40707: {{ uaecptr srca = m68k_areg(regs, srcreg);
40708: { uae_s8 src = get_byte(srca);
40709: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
40710: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
40711: BusCyclePenalty += 2;
40712: CLEAR_CZNV;
40713: SET_ZFLG (((uae_s8)(src)) == 0);
40714: SET_NFLG (((uae_s8)(src)) < 0);
40715: m68k_incpc(4);
40716: fill_prefetch_0 ();
40717: put_byte(dsta,src);
40718: }}}}return 18;
40719: }
40720: unsigned long REGPARAM2 CPUFUNC(op_11a0_5)(uae_u32 opcode) /* MOVE */
40721: {
40722: uae_u32 srcreg = (opcode & 7);
40723: uae_u32 dstreg = (opcode >> 9) & 7;
40724: OpcodeFamily = 30; CurrentInstrCycles = 20;
40725: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
40726: { uae_s8 src = get_byte(srca);
40727: m68k_areg (regs, srcreg) = srca;
40728: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
40729: BusCyclePenalty += 2;
40730: CLEAR_CZNV;
40731: SET_ZFLG (((uae_s8)(src)) == 0);
40732: SET_NFLG (((uae_s8)(src)) < 0);
40733: m68k_incpc(4);
40734: fill_prefetch_0 ();
40735: put_byte(dsta,src);
40736: }}}}return 20;
40737: }
40738: unsigned long REGPARAM2 CPUFUNC(op_11a8_5)(uae_u32 opcode) /* MOVE */
40739: {
40740: uae_u32 srcreg = (opcode & 7);
40741: uae_u32 dstreg = (opcode >> 9) & 7;
40742: OpcodeFamily = 30; CurrentInstrCycles = 22;
40743: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
40744: { uae_s8 src = get_byte(srca);
40745: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
40746: BusCyclePenalty += 2;
40747: CLEAR_CZNV;
40748: SET_ZFLG (((uae_s8)(src)) == 0);
40749: SET_NFLG (((uae_s8)(src)) < 0);
40750: m68k_incpc(6);
40751: fill_prefetch_0 ();
40752: put_byte(dsta,src);
40753: }}}}return 22;
40754: }
40755: unsigned long REGPARAM2 CPUFUNC(op_11b0_5)(uae_u32 opcode) /* MOVE */
40756: {
40757: uae_u32 srcreg = (opcode & 7);
40758: uae_u32 dstreg = (opcode >> 9) & 7;
40759: OpcodeFamily = 30; CurrentInstrCycles = 24;
40760: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
40761: BusCyclePenalty += 2;
40762: { uae_s8 src = get_byte(srca);
40763: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
40764: BusCyclePenalty += 2;
40765: CLEAR_CZNV;
40766: SET_ZFLG (((uae_s8)(src)) == 0);
40767: SET_NFLG (((uae_s8)(src)) < 0);
40768: m68k_incpc(6);
40769: fill_prefetch_0 ();
40770: put_byte(dsta,src);
40771: }}}}return 24;
40772: }
40773: unsigned long REGPARAM2 CPUFUNC(op_11b8_5)(uae_u32 opcode) /* MOVE */
40774: {
40775: uae_u32 dstreg = (opcode >> 9) & 7;
40776: OpcodeFamily = 30; CurrentInstrCycles = 22;
40777: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
40778: { uae_s8 src = get_byte(srca);
40779: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
40780: BusCyclePenalty += 2;
40781: CLEAR_CZNV;
40782: SET_ZFLG (((uae_s8)(src)) == 0);
40783: SET_NFLG (((uae_s8)(src)) < 0);
40784: m68k_incpc(6);
40785: fill_prefetch_0 ();
40786: put_byte(dsta,src);
40787: }}}}return 22;
40788: }
40789: unsigned long REGPARAM2 CPUFUNC(op_11b9_5)(uae_u32 opcode) /* MOVE */
40790: {
40791: uae_u32 dstreg = (opcode >> 9) & 7;
40792: OpcodeFamily = 30; CurrentInstrCycles = 26;
40793: {{ uaecptr srca = get_ilong_prefetch(2);
40794: { uae_s8 src = get_byte(srca);
40795: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(6));
40796: BusCyclePenalty += 2;
40797: CLEAR_CZNV;
40798: SET_ZFLG (((uae_s8)(src)) == 0);
40799: SET_NFLG (((uae_s8)(src)) < 0);
40800: m68k_incpc(8);
40801: fill_prefetch_0 ();
40802: put_byte(dsta,src);
40803: }}}}return 26;
40804: }
40805: unsigned long REGPARAM2 CPUFUNC(op_11ba_5)(uae_u32 opcode) /* MOVE */
40806: {
40807: uae_u32 dstreg = (opcode >> 9) & 7;
40808: OpcodeFamily = 30; CurrentInstrCycles = 22;
40809: {{ uaecptr srca = m68k_getpc () + 2;
40810: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
40811: { uae_s8 src = get_byte(srca);
40812: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
40813: BusCyclePenalty += 2;
40814: CLEAR_CZNV;
40815: SET_ZFLG (((uae_s8)(src)) == 0);
40816: SET_NFLG (((uae_s8)(src)) < 0);
40817: m68k_incpc(6);
40818: fill_prefetch_0 ();
40819: put_byte(dsta,src);
40820: }}}}return 22;
40821: }
40822: unsigned long REGPARAM2 CPUFUNC(op_11bb_5)(uae_u32 opcode) /* MOVE */
40823: {
40824: uae_u32 dstreg = (opcode >> 9) & 7;
40825: OpcodeFamily = 30; CurrentInstrCycles = 24;
40826: {{ uaecptr tmppc = m68k_getpc() + 2;
40827: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
40828: BusCyclePenalty += 2;
40829: { uae_s8 src = get_byte(srca);
40830: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
40831: BusCyclePenalty += 2;
40832: CLEAR_CZNV;
40833: SET_ZFLG (((uae_s8)(src)) == 0);
40834: SET_NFLG (((uae_s8)(src)) < 0);
40835: m68k_incpc(6);
40836: fill_prefetch_0 ();
40837: put_byte(dsta,src);
40838: }}}}return 24;
40839: }
40840: unsigned long REGPARAM2 CPUFUNC(op_11bc_5)(uae_u32 opcode) /* MOVE */
40841: {
40842: uae_u32 dstreg = (opcode >> 9) & 7;
40843: OpcodeFamily = 30; CurrentInstrCycles = 18;
40844: {{ uae_s8 src = get_ibyte_prefetch(2);
40845: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
40846: BusCyclePenalty += 2;
40847: CLEAR_CZNV;
40848: SET_ZFLG (((uae_s8)(src)) == 0);
40849: SET_NFLG (((uae_s8)(src)) < 0);
40850: m68k_incpc(6);
40851: fill_prefetch_0 ();
40852: put_byte(dsta,src);
40853: }}}return 18;
40854: }
40855: unsigned long REGPARAM2 CPUFUNC(op_11c0_5)(uae_u32 opcode) /* MOVE */
40856: {
40857: uae_u32 srcreg = (opcode & 7);
40858: OpcodeFamily = 30; CurrentInstrCycles = 12;
40859: {{ uae_s8 src = m68k_dreg(regs, srcreg);
40860: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
40861: CLEAR_CZNV;
40862: SET_ZFLG (((uae_s8)(src)) == 0);
40863: SET_NFLG (((uae_s8)(src)) < 0);
40864: m68k_incpc(4);
40865: fill_prefetch_0 ();
40866: put_byte(dsta,src);
40867: }}}return 12;
40868: }
40869: unsigned long REGPARAM2 CPUFUNC(op_11c8_5)(uae_u32 opcode) /* MOVE */
40870: {
40871: uae_u32 srcreg = (opcode & 7);
40872: OpcodeFamily = 30; CurrentInstrCycles = 12;
40873: {{ uae_s8 src = m68k_areg(regs, srcreg);
40874: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
40875: CLEAR_CZNV;
40876: SET_ZFLG (((uae_s8)(src)) == 0);
40877: SET_NFLG (((uae_s8)(src)) < 0);
40878: m68k_incpc(4);
40879: fill_prefetch_0 ();
40880: put_byte(dsta,src);
40881: }}}return 12;
40882: }
40883: unsigned long REGPARAM2 CPUFUNC(op_11d0_5)(uae_u32 opcode) /* MOVE */
40884: {
40885: uae_u32 srcreg = (opcode & 7);
40886: OpcodeFamily = 30; CurrentInstrCycles = 16;
40887: {{ uaecptr srca = m68k_areg(regs, srcreg);
40888: { uae_s8 src = get_byte(srca);
40889: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
40890: CLEAR_CZNV;
40891: SET_ZFLG (((uae_s8)(src)) == 0);
40892: SET_NFLG (((uae_s8)(src)) < 0);
40893: m68k_incpc(4);
40894: fill_prefetch_0 ();
40895: put_byte(dsta,src);
40896: }}}}return 16;
40897: }
40898: unsigned long REGPARAM2 CPUFUNC(op_11d8_5)(uae_u32 opcode) /* MOVE */
40899: {
40900: uae_u32 srcreg = (opcode & 7);
40901: OpcodeFamily = 30; CurrentInstrCycles = 16;
40902: {{ uaecptr srca = m68k_areg(regs, srcreg);
40903: { uae_s8 src = get_byte(srca);
40904: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
40905: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
40906: CLEAR_CZNV;
40907: SET_ZFLG (((uae_s8)(src)) == 0);
40908: SET_NFLG (((uae_s8)(src)) < 0);
40909: m68k_incpc(4);
40910: fill_prefetch_0 ();
40911: put_byte(dsta,src);
40912: }}}}return 16;
40913: }
40914: unsigned long REGPARAM2 CPUFUNC(op_11e0_5)(uae_u32 opcode) /* MOVE */
40915: {
40916: uae_u32 srcreg = (opcode & 7);
40917: OpcodeFamily = 30; CurrentInstrCycles = 18;
40918: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
40919: { uae_s8 src = get_byte(srca);
40920: m68k_areg (regs, srcreg) = srca;
40921: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
40922: CLEAR_CZNV;
40923: SET_ZFLG (((uae_s8)(src)) == 0);
40924: SET_NFLG (((uae_s8)(src)) < 0);
40925: m68k_incpc(4);
40926: fill_prefetch_0 ();
40927: put_byte(dsta,src);
40928: }}}}return 18;
40929: }
40930: unsigned long REGPARAM2 CPUFUNC(op_11e8_5)(uae_u32 opcode) /* MOVE */
40931: {
40932: uae_u32 srcreg = (opcode & 7);
40933: OpcodeFamily = 30; CurrentInstrCycles = 20;
40934: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
40935: { uae_s8 src = get_byte(srca);
40936: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
40937: CLEAR_CZNV;
40938: SET_ZFLG (((uae_s8)(src)) == 0);
40939: SET_NFLG (((uae_s8)(src)) < 0);
40940: m68k_incpc(6);
40941: fill_prefetch_0 ();
40942: put_byte(dsta,src);
40943: }}}}return 20;
40944: }
40945: unsigned long REGPARAM2 CPUFUNC(op_11f0_5)(uae_u32 opcode) /* MOVE */
40946: {
40947: uae_u32 srcreg = (opcode & 7);
40948: OpcodeFamily = 30; CurrentInstrCycles = 22;
40949: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
40950: BusCyclePenalty += 2;
40951: { uae_s8 src = get_byte(srca);
40952: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
40953: CLEAR_CZNV;
40954: SET_ZFLG (((uae_s8)(src)) == 0);
40955: SET_NFLG (((uae_s8)(src)) < 0);
40956: m68k_incpc(6);
40957: fill_prefetch_0 ();
40958: put_byte(dsta,src);
40959: }}}}return 22;
40960: }
40961: unsigned long REGPARAM2 CPUFUNC(op_11f8_5)(uae_u32 opcode) /* MOVE */
40962: {
40963: OpcodeFamily = 30; CurrentInstrCycles = 20;
40964: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
40965: { uae_s8 src = get_byte(srca);
40966: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
40967: CLEAR_CZNV;
40968: SET_ZFLG (((uae_s8)(src)) == 0);
40969: SET_NFLG (((uae_s8)(src)) < 0);
40970: m68k_incpc(6);
40971: fill_prefetch_0 ();
40972: put_byte(dsta,src);
40973: }}}}return 20;
40974: }
40975: unsigned long REGPARAM2 CPUFUNC(op_11f9_5)(uae_u32 opcode) /* MOVE */
40976: {
40977: OpcodeFamily = 30; CurrentInstrCycles = 24;
40978: {{ uaecptr srca = get_ilong_prefetch(2);
40979: { uae_s8 src = get_byte(srca);
40980: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(6);
40981: CLEAR_CZNV;
40982: SET_ZFLG (((uae_s8)(src)) == 0);
40983: SET_NFLG (((uae_s8)(src)) < 0);
40984: m68k_incpc(8);
40985: fill_prefetch_0 ();
40986: put_byte(dsta,src);
40987: }}}}return 24;
40988: }
40989: unsigned long REGPARAM2 CPUFUNC(op_11fa_5)(uae_u32 opcode) /* MOVE */
40990: {
40991: OpcodeFamily = 30; CurrentInstrCycles = 20;
40992: {{ uaecptr srca = m68k_getpc () + 2;
40993: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
40994: { uae_s8 src = get_byte(srca);
40995: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
40996: CLEAR_CZNV;
40997: SET_ZFLG (((uae_s8)(src)) == 0);
40998: SET_NFLG (((uae_s8)(src)) < 0);
40999: m68k_incpc(6);
41000: fill_prefetch_0 ();
41001: put_byte(dsta,src);
41002: }}}}return 20;
41003: }
41004: unsigned long REGPARAM2 CPUFUNC(op_11fb_5)(uae_u32 opcode) /* MOVE */
41005: {
41006: OpcodeFamily = 30; CurrentInstrCycles = 22;
41007: {{ uaecptr tmppc = m68k_getpc() + 2;
41008: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
41009: BusCyclePenalty += 2;
41010: { uae_s8 src = get_byte(srca);
41011: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
41012: CLEAR_CZNV;
41013: SET_ZFLG (((uae_s8)(src)) == 0);
41014: SET_NFLG (((uae_s8)(src)) < 0);
41015: m68k_incpc(6);
41016: fill_prefetch_0 ();
41017: put_byte(dsta,src);
41018: }}}}return 22;
41019: }
41020: unsigned long REGPARAM2 CPUFUNC(op_11fc_5)(uae_u32 opcode) /* MOVE */
41021: {
41022: OpcodeFamily = 30; CurrentInstrCycles = 16;
41023: {{ uae_s8 src = get_ibyte_prefetch(2);
41024: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
41025: CLEAR_CZNV;
41026: SET_ZFLG (((uae_s8)(src)) == 0);
41027: SET_NFLG (((uae_s8)(src)) < 0);
41028: m68k_incpc(6);
41029: fill_prefetch_0 ();
41030: put_byte(dsta,src);
41031: }}}return 16;
41032: }
41033: unsigned long REGPARAM2 CPUFUNC(op_13c0_5)(uae_u32 opcode) /* MOVE */
41034: {
41035: uae_u32 srcreg = (opcode & 7);
41036: OpcodeFamily = 30; CurrentInstrCycles = 16;
41037: {{ uae_s8 src = m68k_dreg(regs, srcreg);
41038: { uaecptr dsta = get_ilong_prefetch(2);
41039: CLEAR_CZNV;
41040: SET_ZFLG (((uae_s8)(src)) == 0);
41041: SET_NFLG (((uae_s8)(src)) < 0);
41042: m68k_incpc(6);
41043: fill_prefetch_0 ();
41044: put_byte(dsta,src);
41045: }}}return 16;
41046: }
41047: unsigned long REGPARAM2 CPUFUNC(op_13c8_5)(uae_u32 opcode) /* MOVE */
41048: {
41049: uae_u32 srcreg = (opcode & 7);
41050: OpcodeFamily = 30; CurrentInstrCycles = 16;
41051: {{ uae_s8 src = m68k_areg(regs, srcreg);
41052: { uaecptr dsta = get_ilong_prefetch(2);
41053: CLEAR_CZNV;
41054: SET_ZFLG (((uae_s8)(src)) == 0);
41055: SET_NFLG (((uae_s8)(src)) < 0);
41056: m68k_incpc(6);
41057: fill_prefetch_0 ();
41058: put_byte(dsta,src);
41059: }}}return 16;
41060: }
41061: unsigned long REGPARAM2 CPUFUNC(op_13d0_5)(uae_u32 opcode) /* MOVE */
41062: {
41063: uae_u32 srcreg = (opcode & 7);
41064: OpcodeFamily = 30; CurrentInstrCycles = 20;
41065: {{ uaecptr srca = m68k_areg(regs, srcreg);
41066: { uae_s8 src = get_byte(srca);
41067: { uaecptr dsta = get_ilong_prefetch(2);
41068: CLEAR_CZNV;
41069: SET_ZFLG (((uae_s8)(src)) == 0);
41070: SET_NFLG (((uae_s8)(src)) < 0);
41071: m68k_incpc(6);
41072: fill_prefetch_0 ();
41073: put_byte(dsta,src);
41074: }}}}return 20;
41075: }
41076: unsigned long REGPARAM2 CPUFUNC(op_13d8_5)(uae_u32 opcode) /* MOVE */
41077: {
41078: uae_u32 srcreg = (opcode & 7);
41079: OpcodeFamily = 30; CurrentInstrCycles = 20;
41080: {{ uaecptr srca = m68k_areg(regs, srcreg);
41081: { uae_s8 src = get_byte(srca);
41082: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
41083: { uaecptr dsta = get_ilong_prefetch(2);
41084: CLEAR_CZNV;
41085: SET_ZFLG (((uae_s8)(src)) == 0);
41086: SET_NFLG (((uae_s8)(src)) < 0);
41087: m68k_incpc(6);
41088: fill_prefetch_0 ();
41089: put_byte(dsta,src);
41090: }}}}return 20;
41091: }
41092: unsigned long REGPARAM2 CPUFUNC(op_13e0_5)(uae_u32 opcode) /* MOVE */
41093: {
41094: uae_u32 srcreg = (opcode & 7);
41095: OpcodeFamily = 30; CurrentInstrCycles = 22;
41096: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
41097: { uae_s8 src = get_byte(srca);
41098: m68k_areg (regs, srcreg) = srca;
41099: { uaecptr dsta = get_ilong_prefetch(2);
41100: CLEAR_CZNV;
41101: SET_ZFLG (((uae_s8)(src)) == 0);
41102: SET_NFLG (((uae_s8)(src)) < 0);
41103: m68k_incpc(6);
41104: fill_prefetch_0 ();
41105: put_byte(dsta,src);
41106: }}}}return 22;
41107: }
41108: unsigned long REGPARAM2 CPUFUNC(op_13e8_5)(uae_u32 opcode) /* MOVE */
41109: {
41110: uae_u32 srcreg = (opcode & 7);
41111: OpcodeFamily = 30; CurrentInstrCycles = 24;
41112: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
41113: { uae_s8 src = get_byte(srca);
41114: { uaecptr dsta = get_ilong_prefetch(4);
41115: CLEAR_CZNV;
41116: SET_ZFLG (((uae_s8)(src)) == 0);
41117: SET_NFLG (((uae_s8)(src)) < 0);
41118: m68k_incpc(8);
41119: fill_prefetch_0 ();
41120: put_byte(dsta,src);
41121: }}}}return 24;
41122: }
41123: unsigned long REGPARAM2 CPUFUNC(op_13f0_5)(uae_u32 opcode) /* MOVE */
41124: {
41125: uae_u32 srcreg = (opcode & 7);
41126: OpcodeFamily = 30; CurrentInstrCycles = 26;
41127: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
41128: BusCyclePenalty += 2;
41129: { uae_s8 src = get_byte(srca);
41130: { uaecptr dsta = get_ilong_prefetch(4);
41131: CLEAR_CZNV;
41132: SET_ZFLG (((uae_s8)(src)) == 0);
41133: SET_NFLG (((uae_s8)(src)) < 0);
41134: m68k_incpc(8);
41135: fill_prefetch_0 ();
41136: put_byte(dsta,src);
41137: }}}}return 26;
41138: }
41139: unsigned long REGPARAM2 CPUFUNC(op_13f8_5)(uae_u32 opcode) /* MOVE */
41140: {
41141: OpcodeFamily = 30; CurrentInstrCycles = 24;
41142: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
41143: { uae_s8 src = get_byte(srca);
41144: { uaecptr dsta = get_ilong_prefetch(4);
41145: CLEAR_CZNV;
41146: SET_ZFLG (((uae_s8)(src)) == 0);
41147: SET_NFLG (((uae_s8)(src)) < 0);
41148: m68k_incpc(8);
41149: fill_prefetch_0 ();
41150: put_byte(dsta,src);
41151: }}}}return 24;
41152: }
41153: unsigned long REGPARAM2 CPUFUNC(op_13f9_5)(uae_u32 opcode) /* MOVE */
41154: {
41155: OpcodeFamily = 30; CurrentInstrCycles = 28;
41156: {{ uaecptr srca = get_ilong_prefetch(2);
41157: { uae_s8 src = get_byte(srca);
41158: { uaecptr dsta = get_ilong_prefetch(6);
41159: CLEAR_CZNV;
41160: SET_ZFLG (((uae_s8)(src)) == 0);
41161: SET_NFLG (((uae_s8)(src)) < 0);
41162: m68k_incpc(10);
41163: fill_prefetch_0 ();
41164: put_byte(dsta,src);
41165: }}}}return 28;
41166: }
41167: unsigned long REGPARAM2 CPUFUNC(op_13fa_5)(uae_u32 opcode) /* MOVE */
41168: {
41169: OpcodeFamily = 30; CurrentInstrCycles = 24;
41170: {{ uaecptr srca = m68k_getpc () + 2;
41171: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
41172: { uae_s8 src = get_byte(srca);
41173: { uaecptr dsta = get_ilong_prefetch(4);
41174: CLEAR_CZNV;
41175: SET_ZFLG (((uae_s8)(src)) == 0);
41176: SET_NFLG (((uae_s8)(src)) < 0);
41177: m68k_incpc(8);
41178: fill_prefetch_0 ();
41179: put_byte(dsta,src);
41180: }}}}return 24;
41181: }
41182: unsigned long REGPARAM2 CPUFUNC(op_13fb_5)(uae_u32 opcode) /* MOVE */
41183: {
41184: OpcodeFamily = 30; CurrentInstrCycles = 26;
41185: {{ uaecptr tmppc = m68k_getpc() + 2;
41186: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
41187: BusCyclePenalty += 2;
41188: { uae_s8 src = get_byte(srca);
41189: { uaecptr dsta = get_ilong_prefetch(4);
41190: CLEAR_CZNV;
41191: SET_ZFLG (((uae_s8)(src)) == 0);
41192: SET_NFLG (((uae_s8)(src)) < 0);
41193: m68k_incpc(8);
41194: fill_prefetch_0 ();
41195: put_byte(dsta,src);
41196: }}}}return 26;
41197: }
41198: unsigned long REGPARAM2 CPUFUNC(op_13fc_5)(uae_u32 opcode) /* MOVE */
41199: {
41200: OpcodeFamily = 30; CurrentInstrCycles = 20;
41201: {{ uae_s8 src = get_ibyte_prefetch(2);
41202: { uaecptr dsta = get_ilong_prefetch(4);
41203: CLEAR_CZNV;
41204: SET_ZFLG (((uae_s8)(src)) == 0);
41205: SET_NFLG (((uae_s8)(src)) < 0);
41206: m68k_incpc(8);
41207: fill_prefetch_0 ();
41208: put_byte(dsta,src);
41209: }}}return 20;
41210: }
41211: unsigned long REGPARAM2 CPUFUNC(op_2000_5)(uae_u32 opcode) /* MOVE */
41212: {
41213: uae_u32 srcreg = (opcode & 7);
41214: uae_u32 dstreg = (opcode >> 9) & 7;
41215: OpcodeFamily = 30; CurrentInstrCycles = 4;
41216: {{ uae_s32 src = m68k_dreg(regs, srcreg);
41217: { CLEAR_CZNV;
41218: SET_ZFLG (((uae_s32)(src)) == 0);
41219: SET_NFLG (((uae_s32)(src)) < 0);
41220: m68k_dreg(regs, dstreg) = (src);
41221: }}}m68k_incpc(2);
41222: fill_prefetch_2 ();
41223: return 4;
41224: }
41225: unsigned long REGPARAM2 CPUFUNC(op_2008_5)(uae_u32 opcode) /* MOVE */
41226: {
41227: uae_u32 srcreg = (opcode & 7);
41228: uae_u32 dstreg = (opcode >> 9) & 7;
41229: OpcodeFamily = 30; CurrentInstrCycles = 4;
41230: {{ uae_s32 src = m68k_areg(regs, srcreg);
41231: { CLEAR_CZNV;
41232: SET_ZFLG (((uae_s32)(src)) == 0);
41233: SET_NFLG (((uae_s32)(src)) < 0);
41234: m68k_dreg(regs, dstreg) = (src);
41235: }}}m68k_incpc(2);
41236: fill_prefetch_2 ();
41237: return 4;
41238: }
41239: unsigned long REGPARAM2 CPUFUNC(op_2010_5)(uae_u32 opcode) /* MOVE */
41240: {
41241: uae_u32 srcreg = (opcode & 7);
41242: uae_u32 dstreg = (opcode >> 9) & 7;
41243: OpcodeFamily = 30; CurrentInstrCycles = 12;
41244: {{ uaecptr srca = m68k_areg(regs, srcreg);
41245: if ((srca & 1) != 0) {
41246: last_fault_for_exception_3 = srca;
41247: last_op_for_exception_3 = opcode;
41248: last_addr_for_exception_3 = m68k_getpc() + 2;
41249: Exception(3, 0, M68000_EXC_SRC_CPU);
41250: goto endlabel2495;
41251: }
41252: {{ uae_s32 src = get_long(srca);
41253: { CLEAR_CZNV;
41254: SET_ZFLG (((uae_s32)(src)) == 0);
41255: SET_NFLG (((uae_s32)(src)) < 0);
41256: m68k_dreg(regs, dstreg) = (src);
41257: }}}}}m68k_incpc(2);
41258: fill_prefetch_2 ();
41259: endlabel2495: ;
41260: return 12;
41261: }
41262: unsigned long REGPARAM2 CPUFUNC(op_2018_5)(uae_u32 opcode) /* MOVE */
41263: {
41264: uae_u32 srcreg = (opcode & 7);
41265: uae_u32 dstreg = (opcode >> 9) & 7;
41266: OpcodeFamily = 30; CurrentInstrCycles = 12;
41267: {{ uaecptr srca = m68k_areg(regs, srcreg);
41268: if ((srca & 1) != 0) {
41269: last_fault_for_exception_3 = srca;
41270: last_op_for_exception_3 = opcode;
41271: last_addr_for_exception_3 = m68k_getpc() + 2;
41272: Exception(3, 0, M68000_EXC_SRC_CPU);
41273: goto endlabel2496;
41274: }
41275: {{ uae_s32 src = get_long(srca);
41276: m68k_areg(regs, srcreg) += 4;
41277: { CLEAR_CZNV;
41278: SET_ZFLG (((uae_s32)(src)) == 0);
41279: SET_NFLG (((uae_s32)(src)) < 0);
41280: m68k_dreg(regs, dstreg) = (src);
41281: }}}}}m68k_incpc(2);
41282: fill_prefetch_2 ();
41283: endlabel2496: ;
41284: return 12;
41285: }
41286: unsigned long REGPARAM2 CPUFUNC(op_2020_5)(uae_u32 opcode) /* MOVE */
41287: {
41288: uae_u32 srcreg = (opcode & 7);
41289: uae_u32 dstreg = (opcode >> 9) & 7;
41290: OpcodeFamily = 30; CurrentInstrCycles = 14;
41291: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
41292: if ((srca & 1) != 0) {
41293: last_fault_for_exception_3 = srca;
41294: last_op_for_exception_3 = opcode;
41295: last_addr_for_exception_3 = m68k_getpc() + 2;
41296: Exception(3, 0, M68000_EXC_SRC_CPU);
41297: goto endlabel2497;
41298: }
41299: {{ uae_s32 src = get_long(srca);
41300: m68k_areg (regs, srcreg) = srca;
41301: { CLEAR_CZNV;
41302: SET_ZFLG (((uae_s32)(src)) == 0);
41303: SET_NFLG (((uae_s32)(src)) < 0);
41304: m68k_dreg(regs, dstreg) = (src);
41305: }}}}}m68k_incpc(2);
41306: fill_prefetch_2 ();
41307: endlabel2497: ;
41308: return 14;
41309: }
41310: unsigned long REGPARAM2 CPUFUNC(op_2028_5)(uae_u32 opcode) /* MOVE */
41311: {
41312: uae_u32 srcreg = (opcode & 7);
41313: uae_u32 dstreg = (opcode >> 9) & 7;
41314: OpcodeFamily = 30; CurrentInstrCycles = 16;
41315: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
41316: if ((srca & 1) != 0) {
41317: last_fault_for_exception_3 = srca;
41318: last_op_for_exception_3 = opcode;
41319: last_addr_for_exception_3 = m68k_getpc() + 4;
41320: Exception(3, 0, M68000_EXC_SRC_CPU);
41321: goto endlabel2498;
41322: }
41323: {{ uae_s32 src = get_long(srca);
41324: { CLEAR_CZNV;
41325: SET_ZFLG (((uae_s32)(src)) == 0);
41326: SET_NFLG (((uae_s32)(src)) < 0);
41327: m68k_dreg(regs, dstreg) = (src);
41328: }}}}}m68k_incpc(4);
41329: fill_prefetch_0 ();
41330: endlabel2498: ;
41331: return 16;
41332: }
41333: unsigned long REGPARAM2 CPUFUNC(op_2030_5)(uae_u32 opcode) /* MOVE */
41334: {
41335: uae_u32 srcreg = (opcode & 7);
41336: uae_u32 dstreg = (opcode >> 9) & 7;
41337: OpcodeFamily = 30; CurrentInstrCycles = 18;
41338: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
41339: BusCyclePenalty += 2;
41340: if ((srca & 1) != 0) {
41341: last_fault_for_exception_3 = srca;
41342: last_op_for_exception_3 = opcode;
41343: last_addr_for_exception_3 = m68k_getpc() + 4;
41344: Exception(3, 0, M68000_EXC_SRC_CPU);
41345: goto endlabel2499;
41346: }
41347: {{ uae_s32 src = get_long(srca);
41348: { CLEAR_CZNV;
41349: SET_ZFLG (((uae_s32)(src)) == 0);
41350: SET_NFLG (((uae_s32)(src)) < 0);
41351: m68k_dreg(regs, dstreg) = (src);
41352: }}}}}m68k_incpc(4);
41353: fill_prefetch_0 ();
41354: endlabel2499: ;
41355: return 18;
41356: }
41357: unsigned long REGPARAM2 CPUFUNC(op_2038_5)(uae_u32 opcode) /* MOVE */
41358: {
41359: uae_u32 dstreg = (opcode >> 9) & 7;
41360: OpcodeFamily = 30; CurrentInstrCycles = 16;
41361: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
41362: if ((srca & 1) != 0) {
41363: last_fault_for_exception_3 = srca;
41364: last_op_for_exception_3 = opcode;
41365: last_addr_for_exception_3 = m68k_getpc() + 4;
41366: Exception(3, 0, M68000_EXC_SRC_CPU);
41367: goto endlabel2500;
41368: }
41369: {{ uae_s32 src = get_long(srca);
41370: { CLEAR_CZNV;
41371: SET_ZFLG (((uae_s32)(src)) == 0);
41372: SET_NFLG (((uae_s32)(src)) < 0);
41373: m68k_dreg(regs, dstreg) = (src);
41374: }}}}}m68k_incpc(4);
41375: fill_prefetch_0 ();
41376: endlabel2500: ;
41377: return 16;
41378: }
41379: unsigned long REGPARAM2 CPUFUNC(op_2039_5)(uae_u32 opcode) /* MOVE */
41380: {
41381: uae_u32 dstreg = (opcode >> 9) & 7;
41382: OpcodeFamily = 30; CurrentInstrCycles = 20;
41383: {{ uaecptr srca = get_ilong_prefetch(2);
41384: if ((srca & 1) != 0) {
41385: last_fault_for_exception_3 = srca;
41386: last_op_for_exception_3 = opcode;
41387: last_addr_for_exception_3 = m68k_getpc() + 6;
41388: Exception(3, 0, M68000_EXC_SRC_CPU);
41389: goto endlabel2501;
41390: }
41391: {{ uae_s32 src = get_long(srca);
41392: { CLEAR_CZNV;
41393: SET_ZFLG (((uae_s32)(src)) == 0);
41394: SET_NFLG (((uae_s32)(src)) < 0);
41395: m68k_dreg(regs, dstreg) = (src);
41396: }}}}}m68k_incpc(6);
41397: fill_prefetch_0 ();
41398: endlabel2501: ;
41399: return 20;
41400: }
41401: unsigned long REGPARAM2 CPUFUNC(op_203a_5)(uae_u32 opcode) /* MOVE */
41402: {
41403: uae_u32 dstreg = (opcode >> 9) & 7;
41404: OpcodeFamily = 30; CurrentInstrCycles = 16;
41405: {{ uaecptr srca = m68k_getpc () + 2;
41406: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
41407: if ((srca & 1) != 0) {
41408: last_fault_for_exception_3 = srca;
41409: last_op_for_exception_3 = opcode;
41410: last_addr_for_exception_3 = m68k_getpc() + 4;
41411: Exception(3, 0, M68000_EXC_SRC_CPU);
41412: goto endlabel2502;
41413: }
41414: {{ uae_s32 src = get_long(srca);
41415: { CLEAR_CZNV;
41416: SET_ZFLG (((uae_s32)(src)) == 0);
41417: SET_NFLG (((uae_s32)(src)) < 0);
41418: m68k_dreg(regs, dstreg) = (src);
41419: }}}}}m68k_incpc(4);
41420: fill_prefetch_0 ();
41421: endlabel2502: ;
41422: return 16;
41423: }
41424: unsigned long REGPARAM2 CPUFUNC(op_203b_5)(uae_u32 opcode) /* MOVE */
41425: {
41426: uae_u32 dstreg = (opcode >> 9) & 7;
41427: OpcodeFamily = 30; CurrentInstrCycles = 18;
41428: {{ uaecptr tmppc = m68k_getpc() + 2;
41429: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
41430: BusCyclePenalty += 2;
41431: if ((srca & 1) != 0) {
41432: last_fault_for_exception_3 = srca;
41433: last_op_for_exception_3 = opcode;
41434: last_addr_for_exception_3 = m68k_getpc() + 4;
41435: Exception(3, 0, M68000_EXC_SRC_CPU);
41436: goto endlabel2503;
41437: }
41438: {{ uae_s32 src = get_long(srca);
41439: { CLEAR_CZNV;
41440: SET_ZFLG (((uae_s32)(src)) == 0);
41441: SET_NFLG (((uae_s32)(src)) < 0);
41442: m68k_dreg(regs, dstreg) = (src);
41443: }}}}}m68k_incpc(4);
41444: fill_prefetch_0 ();
41445: endlabel2503: ;
41446: return 18;
41447: }
41448: unsigned long REGPARAM2 CPUFUNC(op_203c_5)(uae_u32 opcode) /* MOVE */
41449: {
41450: uae_u32 dstreg = (opcode >> 9) & 7;
41451: OpcodeFamily = 30; CurrentInstrCycles = 12;
41452: {{ uae_s32 src = get_ilong_prefetch(2);
41453: { CLEAR_CZNV;
41454: SET_ZFLG (((uae_s32)(src)) == 0);
41455: SET_NFLG (((uae_s32)(src)) < 0);
41456: m68k_dreg(regs, dstreg) = (src);
41457: }}}m68k_incpc(6);
41458: fill_prefetch_0 ();
41459: return 12;
41460: }
41461: unsigned long REGPARAM2 CPUFUNC(op_2040_5)(uae_u32 opcode) /* MOVEA */
41462: {
41463: uae_u32 srcreg = (opcode & 7);
41464: uae_u32 dstreg = (opcode >> 9) & 7;
41465: OpcodeFamily = 31; CurrentInstrCycles = 4;
41466: {{ uae_s32 src = m68k_dreg(regs, srcreg);
41467: { uae_u32 val = src;
41468: m68k_areg(regs, dstreg) = (val);
41469: }}}m68k_incpc(2);
41470: fill_prefetch_2 ();
41471: return 4;
41472: }
41473: unsigned long REGPARAM2 CPUFUNC(op_2048_5)(uae_u32 opcode) /* MOVEA */
41474: {
41475: uae_u32 srcreg = (opcode & 7);
41476: uae_u32 dstreg = (opcode >> 9) & 7;
41477: OpcodeFamily = 31; CurrentInstrCycles = 4;
41478: {{ uae_s32 src = m68k_areg(regs, srcreg);
41479: { uae_u32 val = src;
41480: m68k_areg(regs, dstreg) = (val);
41481: }}}m68k_incpc(2);
41482: fill_prefetch_2 ();
41483: return 4;
41484: }
41485: unsigned long REGPARAM2 CPUFUNC(op_2050_5)(uae_u32 opcode) /* MOVEA */
41486: {
41487: uae_u32 srcreg = (opcode & 7);
41488: uae_u32 dstreg = (opcode >> 9) & 7;
41489: OpcodeFamily = 31; CurrentInstrCycles = 12;
41490: {{ uaecptr srca = m68k_areg(regs, srcreg);
41491: if ((srca & 1) != 0) {
41492: last_fault_for_exception_3 = srca;
41493: last_op_for_exception_3 = opcode;
41494: last_addr_for_exception_3 = m68k_getpc() + 2;
41495: Exception(3, 0, M68000_EXC_SRC_CPU);
41496: goto endlabel2507;
41497: }
41498: {{ uae_s32 src = get_long(srca);
41499: { uae_u32 val = src;
41500: m68k_areg(regs, dstreg) = (val);
41501: }}}}}m68k_incpc(2);
41502: fill_prefetch_2 ();
41503: endlabel2507: ;
41504: return 12;
41505: }
41506: unsigned long REGPARAM2 CPUFUNC(op_2058_5)(uae_u32 opcode) /* MOVEA */
41507: {
41508: uae_u32 srcreg = (opcode & 7);
41509: uae_u32 dstreg = (opcode >> 9) & 7;
41510: OpcodeFamily = 31; CurrentInstrCycles = 12;
41511: {{ uaecptr srca = m68k_areg(regs, srcreg);
41512: if ((srca & 1) != 0) {
41513: last_fault_for_exception_3 = srca;
41514: last_op_for_exception_3 = opcode;
41515: last_addr_for_exception_3 = m68k_getpc() + 2;
41516: Exception(3, 0, M68000_EXC_SRC_CPU);
41517: goto endlabel2508;
41518: }
41519: {{ uae_s32 src = get_long(srca);
41520: m68k_areg(regs, srcreg) += 4;
41521: { uae_u32 val = src;
41522: m68k_areg(regs, dstreg) = (val);
41523: }}}}}m68k_incpc(2);
41524: fill_prefetch_2 ();
41525: endlabel2508: ;
41526: return 12;
41527: }
41528: unsigned long REGPARAM2 CPUFUNC(op_2060_5)(uae_u32 opcode) /* MOVEA */
41529: {
41530: uae_u32 srcreg = (opcode & 7);
41531: uae_u32 dstreg = (opcode >> 9) & 7;
41532: OpcodeFamily = 31; CurrentInstrCycles = 14;
41533: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
41534: if ((srca & 1) != 0) {
41535: last_fault_for_exception_3 = srca;
41536: last_op_for_exception_3 = opcode;
41537: last_addr_for_exception_3 = m68k_getpc() + 2;
41538: Exception(3, 0, M68000_EXC_SRC_CPU);
41539: goto endlabel2509;
41540: }
41541: {{ uae_s32 src = get_long(srca);
41542: m68k_areg (regs, srcreg) = srca;
41543: { uae_u32 val = src;
41544: m68k_areg(regs, dstreg) = (val);
41545: }}}}}m68k_incpc(2);
41546: fill_prefetch_2 ();
41547: endlabel2509: ;
41548: return 14;
41549: }
41550: unsigned long REGPARAM2 CPUFUNC(op_2068_5)(uae_u32 opcode) /* MOVEA */
41551: {
41552: uae_u32 srcreg = (opcode & 7);
41553: uae_u32 dstreg = (opcode >> 9) & 7;
41554: OpcodeFamily = 31; CurrentInstrCycles = 16;
41555: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
41556: if ((srca & 1) != 0) {
41557: last_fault_for_exception_3 = srca;
41558: last_op_for_exception_3 = opcode;
41559: last_addr_for_exception_3 = m68k_getpc() + 4;
41560: Exception(3, 0, M68000_EXC_SRC_CPU);
41561: goto endlabel2510;
41562: }
41563: {{ uae_s32 src = get_long(srca);
41564: { uae_u32 val = src;
41565: m68k_areg(regs, dstreg) = (val);
41566: }}}}}m68k_incpc(4);
41567: fill_prefetch_0 ();
41568: endlabel2510: ;
41569: return 16;
41570: }
41571: unsigned long REGPARAM2 CPUFUNC(op_2070_5)(uae_u32 opcode) /* MOVEA */
41572: {
41573: uae_u32 srcreg = (opcode & 7);
41574: uae_u32 dstreg = (opcode >> 9) & 7;
41575: OpcodeFamily = 31; CurrentInstrCycles = 18;
41576: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
41577: BusCyclePenalty += 2;
41578: if ((srca & 1) != 0) {
41579: last_fault_for_exception_3 = srca;
41580: last_op_for_exception_3 = opcode;
41581: last_addr_for_exception_3 = m68k_getpc() + 4;
41582: Exception(3, 0, M68000_EXC_SRC_CPU);
41583: goto endlabel2511;
41584: }
41585: {{ uae_s32 src = get_long(srca);
41586: { uae_u32 val = src;
41587: m68k_areg(regs, dstreg) = (val);
41588: }}}}}m68k_incpc(4);
41589: fill_prefetch_0 ();
41590: endlabel2511: ;
41591: return 18;
41592: }
41593: unsigned long REGPARAM2 CPUFUNC(op_2078_5)(uae_u32 opcode) /* MOVEA */
41594: {
41595: uae_u32 dstreg = (opcode >> 9) & 7;
41596: OpcodeFamily = 31; CurrentInstrCycles = 16;
41597: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
41598: if ((srca & 1) != 0) {
41599: last_fault_for_exception_3 = srca;
41600: last_op_for_exception_3 = opcode;
41601: last_addr_for_exception_3 = m68k_getpc() + 4;
41602: Exception(3, 0, M68000_EXC_SRC_CPU);
41603: goto endlabel2512;
41604: }
41605: {{ uae_s32 src = get_long(srca);
41606: { uae_u32 val = src;
41607: m68k_areg(regs, dstreg) = (val);
41608: }}}}}m68k_incpc(4);
41609: fill_prefetch_0 ();
41610: endlabel2512: ;
41611: return 16;
41612: }
41613: unsigned long REGPARAM2 CPUFUNC(op_2079_5)(uae_u32 opcode) /* MOVEA */
41614: {
41615: uae_u32 dstreg = (opcode >> 9) & 7;
41616: OpcodeFamily = 31; CurrentInstrCycles = 20;
41617: {{ uaecptr srca = get_ilong_prefetch(2);
41618: if ((srca & 1) != 0) {
41619: last_fault_for_exception_3 = srca;
41620: last_op_for_exception_3 = opcode;
41621: last_addr_for_exception_3 = m68k_getpc() + 6;
41622: Exception(3, 0, M68000_EXC_SRC_CPU);
41623: goto endlabel2513;
41624: }
41625: {{ uae_s32 src = get_long(srca);
41626: { uae_u32 val = src;
41627: m68k_areg(regs, dstreg) = (val);
41628: }}}}}m68k_incpc(6);
41629: fill_prefetch_0 ();
41630: endlabel2513: ;
41631: return 20;
41632: }
41633: unsigned long REGPARAM2 CPUFUNC(op_207a_5)(uae_u32 opcode) /* MOVEA */
41634: {
41635: uae_u32 dstreg = (opcode >> 9) & 7;
41636: OpcodeFamily = 31; CurrentInstrCycles = 16;
41637: {{ uaecptr srca = m68k_getpc () + 2;
41638: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
41639: if ((srca & 1) != 0) {
41640: last_fault_for_exception_3 = srca;
41641: last_op_for_exception_3 = opcode;
41642: last_addr_for_exception_3 = m68k_getpc() + 4;
41643: Exception(3, 0, M68000_EXC_SRC_CPU);
41644: goto endlabel2514;
41645: }
41646: {{ uae_s32 src = get_long(srca);
41647: { uae_u32 val = src;
41648: m68k_areg(regs, dstreg) = (val);
41649: }}}}}m68k_incpc(4);
41650: fill_prefetch_0 ();
41651: endlabel2514: ;
41652: return 16;
41653: }
41654: unsigned long REGPARAM2 CPUFUNC(op_207b_5)(uae_u32 opcode) /* MOVEA */
41655: {
41656: uae_u32 dstreg = (opcode >> 9) & 7;
41657: OpcodeFamily = 31; CurrentInstrCycles = 18;
41658: {{ uaecptr tmppc = m68k_getpc() + 2;
41659: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
41660: BusCyclePenalty += 2;
41661: if ((srca & 1) != 0) {
41662: last_fault_for_exception_3 = srca;
41663: last_op_for_exception_3 = opcode;
41664: last_addr_for_exception_3 = m68k_getpc() + 4;
41665: Exception(3, 0, M68000_EXC_SRC_CPU);
41666: goto endlabel2515;
41667: }
41668: {{ uae_s32 src = get_long(srca);
41669: { uae_u32 val = src;
41670: m68k_areg(regs, dstreg) = (val);
41671: }}}}}m68k_incpc(4);
41672: fill_prefetch_0 ();
41673: endlabel2515: ;
41674: return 18;
41675: }
41676: unsigned long REGPARAM2 CPUFUNC(op_207c_5)(uae_u32 opcode) /* MOVEA */
41677: {
41678: uae_u32 dstreg = (opcode >> 9) & 7;
41679: OpcodeFamily = 31; CurrentInstrCycles = 12;
41680: {{ uae_s32 src = get_ilong_prefetch(2);
41681: { uae_u32 val = src;
41682: m68k_areg(regs, dstreg) = (val);
41683: }}}m68k_incpc(6);
41684: fill_prefetch_0 ();
41685: return 12;
41686: }
41687: unsigned long REGPARAM2 CPUFUNC(op_2080_5)(uae_u32 opcode) /* MOVE */
41688: {
41689: uae_u32 srcreg = (opcode & 7);
41690: uae_u32 dstreg = (opcode >> 9) & 7;
41691: OpcodeFamily = 30; CurrentInstrCycles = 12;
41692: {{ uae_s32 src = m68k_dreg(regs, srcreg);
41693: { uaecptr dsta = m68k_areg(regs, dstreg);
41694: if ((dsta & 1) != 0) {
41695: last_fault_for_exception_3 = dsta;
41696: last_op_for_exception_3 = opcode;
41697: last_addr_for_exception_3 = m68k_getpc() + 2;
41698: Exception(3, 0, M68000_EXC_SRC_CPU);
41699: goto endlabel2517;
41700: }
41701: { CLEAR_CZNV;
41702: SET_ZFLG (((uae_s32)(src)) == 0);
41703: SET_NFLG (((uae_s32)(src)) < 0);
41704: m68k_incpc(2);
41705: fill_prefetch_2 ();
41706: put_long(dsta,src);
41707: }}}}endlabel2517: ;
41708: return 12;
41709: }
41710: unsigned long REGPARAM2 CPUFUNC(op_2088_5)(uae_u32 opcode) /* MOVE */
41711: {
41712: uae_u32 srcreg = (opcode & 7);
41713: uae_u32 dstreg = (opcode >> 9) & 7;
41714: OpcodeFamily = 30; CurrentInstrCycles = 12;
41715: {{ uae_s32 src = m68k_areg(regs, srcreg);
41716: { uaecptr dsta = m68k_areg(regs, dstreg);
41717: if ((dsta & 1) != 0) {
41718: last_fault_for_exception_3 = dsta;
41719: last_op_for_exception_3 = opcode;
41720: last_addr_for_exception_3 = m68k_getpc() + 2;
41721: Exception(3, 0, M68000_EXC_SRC_CPU);
41722: goto endlabel2518;
41723: }
41724: { CLEAR_CZNV;
41725: SET_ZFLG (((uae_s32)(src)) == 0);
41726: SET_NFLG (((uae_s32)(src)) < 0);
41727: m68k_incpc(2);
41728: fill_prefetch_2 ();
41729: put_long(dsta,src);
41730: }}}}endlabel2518: ;
41731: return 12;
41732: }
41733: unsigned long REGPARAM2 CPUFUNC(op_2090_5)(uae_u32 opcode) /* MOVE */
41734: {
41735: uae_u32 srcreg = (opcode & 7);
41736: uae_u32 dstreg = (opcode >> 9) & 7;
41737: OpcodeFamily = 30; CurrentInstrCycles = 20;
41738: {{ uaecptr srca = m68k_areg(regs, srcreg);
41739: if ((srca & 1) != 0) {
41740: last_fault_for_exception_3 = srca;
41741: last_op_for_exception_3 = opcode;
41742: last_addr_for_exception_3 = m68k_getpc() + 2;
41743: Exception(3, 0, M68000_EXC_SRC_CPU);
41744: goto endlabel2519;
41745: }
41746: {{ uae_s32 src = get_long(srca);
41747: { uaecptr dsta = m68k_areg(regs, dstreg);
41748: if ((dsta & 1) != 0) {
41749: last_fault_for_exception_3 = dsta;
41750: last_op_for_exception_3 = opcode;
41751: last_addr_for_exception_3 = m68k_getpc() + 2;
41752: Exception(3, 0, M68000_EXC_SRC_CPU);
41753: goto endlabel2519;
41754: }
41755: { CLEAR_CZNV;
41756: SET_ZFLG (((uae_s32)(src)) == 0);
41757: SET_NFLG (((uae_s32)(src)) < 0);
41758: m68k_incpc(2);
41759: fill_prefetch_2 ();
41760: put_long(dsta,src);
41761: }}}}}}endlabel2519: ;
41762: return 20;
41763: }
41764: unsigned long REGPARAM2 CPUFUNC(op_2098_5)(uae_u32 opcode) /* MOVE */
41765: {
41766: uae_u32 srcreg = (opcode & 7);
41767: uae_u32 dstreg = (opcode >> 9) & 7;
41768: OpcodeFamily = 30; CurrentInstrCycles = 20;
41769: {{ uaecptr srca = m68k_areg(regs, srcreg);
41770: if ((srca & 1) != 0) {
41771: last_fault_for_exception_3 = srca;
41772: last_op_for_exception_3 = opcode;
41773: last_addr_for_exception_3 = m68k_getpc() + 2;
41774: Exception(3, 0, M68000_EXC_SRC_CPU);
41775: goto endlabel2520;
41776: }
41777: {{ uae_s32 src = get_long(srca);
41778: m68k_areg(regs, srcreg) += 4;
41779: { uaecptr dsta = m68k_areg(regs, dstreg);
41780: if ((dsta & 1) != 0) {
41781: last_fault_for_exception_3 = dsta;
41782: last_op_for_exception_3 = opcode;
41783: last_addr_for_exception_3 = m68k_getpc() + 2;
41784: Exception(3, 0, M68000_EXC_SRC_CPU);
41785: goto endlabel2520;
41786: }
41787: { CLEAR_CZNV;
41788: SET_ZFLG (((uae_s32)(src)) == 0);
41789: SET_NFLG (((uae_s32)(src)) < 0);
41790: m68k_incpc(2);
41791: fill_prefetch_2 ();
41792: put_long(dsta,src);
41793: }}}}}}endlabel2520: ;
41794: return 20;
41795: }
41796: unsigned long REGPARAM2 CPUFUNC(op_20a0_5)(uae_u32 opcode) /* MOVE */
41797: {
41798: uae_u32 srcreg = (opcode & 7);
41799: uae_u32 dstreg = (opcode >> 9) & 7;
41800: OpcodeFamily = 30; CurrentInstrCycles = 22;
41801: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
41802: if ((srca & 1) != 0) {
41803: last_fault_for_exception_3 = srca;
41804: last_op_for_exception_3 = opcode;
41805: last_addr_for_exception_3 = m68k_getpc() + 2;
41806: Exception(3, 0, M68000_EXC_SRC_CPU);
41807: goto endlabel2521;
41808: }
41809: {{ uae_s32 src = get_long(srca);
41810: m68k_areg (regs, srcreg) = srca;
41811: { uaecptr dsta = m68k_areg(regs, dstreg);
41812: if ((dsta & 1) != 0) {
41813: last_fault_for_exception_3 = dsta;
41814: last_op_for_exception_3 = opcode;
41815: last_addr_for_exception_3 = m68k_getpc() + 2;
41816: Exception(3, 0, M68000_EXC_SRC_CPU);
41817: goto endlabel2521;
41818: }
41819: { CLEAR_CZNV;
41820: SET_ZFLG (((uae_s32)(src)) == 0);
41821: SET_NFLG (((uae_s32)(src)) < 0);
41822: m68k_incpc(2);
41823: fill_prefetch_2 ();
41824: put_long(dsta,src);
41825: }}}}}}endlabel2521: ;
41826: return 22;
41827: }
41828: unsigned long REGPARAM2 CPUFUNC(op_20a8_5)(uae_u32 opcode) /* MOVE */
41829: {
41830: uae_u32 srcreg = (opcode & 7);
41831: uae_u32 dstreg = (opcode >> 9) & 7;
41832: OpcodeFamily = 30; CurrentInstrCycles = 24;
41833: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
41834: if ((srca & 1) != 0) {
41835: last_fault_for_exception_3 = srca;
41836: last_op_for_exception_3 = opcode;
41837: last_addr_for_exception_3 = m68k_getpc() + 4;
41838: Exception(3, 0, M68000_EXC_SRC_CPU);
41839: goto endlabel2522;
41840: }
41841: {{ uae_s32 src = get_long(srca);
41842: { uaecptr dsta = m68k_areg(regs, dstreg);
41843: if ((dsta & 1) != 0) {
41844: last_fault_for_exception_3 = dsta;
41845: last_op_for_exception_3 = opcode;
41846: last_addr_for_exception_3 = m68k_getpc() + 4;
41847: Exception(3, 0, M68000_EXC_SRC_CPU);
41848: goto endlabel2522;
41849: }
41850: { CLEAR_CZNV;
41851: SET_ZFLG (((uae_s32)(src)) == 0);
41852: SET_NFLG (((uae_s32)(src)) < 0);
41853: m68k_incpc(4);
41854: fill_prefetch_0 ();
41855: put_long(dsta,src);
41856: }}}}}}endlabel2522: ;
41857: return 24;
41858: }
41859: unsigned long REGPARAM2 CPUFUNC(op_20b0_5)(uae_u32 opcode) /* MOVE */
41860: {
41861: uae_u32 srcreg = (opcode & 7);
41862: uae_u32 dstreg = (opcode >> 9) & 7;
41863: OpcodeFamily = 30; CurrentInstrCycles = 26;
41864: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
41865: BusCyclePenalty += 2;
41866: if ((srca & 1) != 0) {
41867: last_fault_for_exception_3 = srca;
41868: last_op_for_exception_3 = opcode;
41869: last_addr_for_exception_3 = m68k_getpc() + 4;
41870: Exception(3, 0, M68000_EXC_SRC_CPU);
41871: goto endlabel2523;
41872: }
41873: {{ uae_s32 src = get_long(srca);
41874: { uaecptr dsta = m68k_areg(regs, dstreg);
41875: if ((dsta & 1) != 0) {
41876: last_fault_for_exception_3 = dsta;
41877: last_op_for_exception_3 = opcode;
41878: last_addr_for_exception_3 = m68k_getpc() + 4;
41879: Exception(3, 0, M68000_EXC_SRC_CPU);
41880: goto endlabel2523;
41881: }
41882: { CLEAR_CZNV;
41883: SET_ZFLG (((uae_s32)(src)) == 0);
41884: SET_NFLG (((uae_s32)(src)) < 0);
41885: m68k_incpc(4);
41886: fill_prefetch_0 ();
41887: put_long(dsta,src);
41888: }}}}}}endlabel2523: ;
41889: return 26;
41890: }
41891: unsigned long REGPARAM2 CPUFUNC(op_20b8_5)(uae_u32 opcode) /* MOVE */
41892: {
41893: uae_u32 dstreg = (opcode >> 9) & 7;
41894: OpcodeFamily = 30; CurrentInstrCycles = 24;
41895: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
41896: if ((srca & 1) != 0) {
41897: last_fault_for_exception_3 = srca;
41898: last_op_for_exception_3 = opcode;
41899: last_addr_for_exception_3 = m68k_getpc() + 4;
41900: Exception(3, 0, M68000_EXC_SRC_CPU);
41901: goto endlabel2524;
41902: }
41903: {{ uae_s32 src = get_long(srca);
41904: { uaecptr dsta = m68k_areg(regs, dstreg);
41905: if ((dsta & 1) != 0) {
41906: last_fault_for_exception_3 = dsta;
41907: last_op_for_exception_3 = opcode;
41908: last_addr_for_exception_3 = m68k_getpc() + 4;
41909: Exception(3, 0, M68000_EXC_SRC_CPU);
41910: goto endlabel2524;
41911: }
41912: { CLEAR_CZNV;
41913: SET_ZFLG (((uae_s32)(src)) == 0);
41914: SET_NFLG (((uae_s32)(src)) < 0);
41915: m68k_incpc(4);
41916: fill_prefetch_0 ();
41917: put_long(dsta,src);
41918: }}}}}}endlabel2524: ;
41919: return 24;
41920: }
41921: unsigned long REGPARAM2 CPUFUNC(op_20b9_5)(uae_u32 opcode) /* MOVE */
41922: {
41923: uae_u32 dstreg = (opcode >> 9) & 7;
41924: OpcodeFamily = 30; CurrentInstrCycles = 28;
41925: {{ uaecptr srca = get_ilong_prefetch(2);
41926: if ((srca & 1) != 0) {
41927: last_fault_for_exception_3 = srca;
41928: last_op_for_exception_3 = opcode;
41929: last_addr_for_exception_3 = m68k_getpc() + 6;
41930: Exception(3, 0, M68000_EXC_SRC_CPU);
41931: goto endlabel2525;
41932: }
41933: {{ uae_s32 src = get_long(srca);
41934: { uaecptr dsta = m68k_areg(regs, dstreg);
41935: if ((dsta & 1) != 0) {
41936: last_fault_for_exception_3 = dsta;
41937: last_op_for_exception_3 = opcode;
41938: last_addr_for_exception_3 = m68k_getpc() + 6;
41939: Exception(3, 0, M68000_EXC_SRC_CPU);
41940: goto endlabel2525;
41941: }
41942: { CLEAR_CZNV;
41943: SET_ZFLG (((uae_s32)(src)) == 0);
41944: SET_NFLG (((uae_s32)(src)) < 0);
41945: m68k_incpc(6);
41946: fill_prefetch_0 ();
41947: put_long(dsta,src);
41948: }}}}}}endlabel2525: ;
41949: return 28;
41950: }
41951: unsigned long REGPARAM2 CPUFUNC(op_20ba_5)(uae_u32 opcode) /* MOVE */
41952: {
41953: uae_u32 dstreg = (opcode >> 9) & 7;
41954: OpcodeFamily = 30; CurrentInstrCycles = 24;
41955: {{ uaecptr srca = m68k_getpc () + 2;
41956: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
41957: if ((srca & 1) != 0) {
41958: last_fault_for_exception_3 = srca;
41959: last_op_for_exception_3 = opcode;
41960: last_addr_for_exception_3 = m68k_getpc() + 4;
41961: Exception(3, 0, M68000_EXC_SRC_CPU);
41962: goto endlabel2526;
41963: }
41964: {{ uae_s32 src = get_long(srca);
41965: { uaecptr dsta = m68k_areg(regs, dstreg);
41966: if ((dsta & 1) != 0) {
41967: last_fault_for_exception_3 = dsta;
41968: last_op_for_exception_3 = opcode;
41969: last_addr_for_exception_3 = m68k_getpc() + 4;
41970: Exception(3, 0, M68000_EXC_SRC_CPU);
41971: goto endlabel2526;
41972: }
41973: { CLEAR_CZNV;
41974: SET_ZFLG (((uae_s32)(src)) == 0);
41975: SET_NFLG (((uae_s32)(src)) < 0);
41976: m68k_incpc(4);
41977: fill_prefetch_0 ();
41978: put_long(dsta,src);
41979: }}}}}}endlabel2526: ;
41980: return 24;
41981: }
41982: unsigned long REGPARAM2 CPUFUNC(op_20bb_5)(uae_u32 opcode) /* MOVE */
41983: {
41984: uae_u32 dstreg = (opcode >> 9) & 7;
41985: OpcodeFamily = 30; CurrentInstrCycles = 26;
41986: {{ uaecptr tmppc = m68k_getpc() + 2;
41987: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
41988: BusCyclePenalty += 2;
41989: if ((srca & 1) != 0) {
41990: last_fault_for_exception_3 = srca;
41991: last_op_for_exception_3 = opcode;
41992: last_addr_for_exception_3 = m68k_getpc() + 4;
41993: Exception(3, 0, M68000_EXC_SRC_CPU);
41994: goto endlabel2527;
41995: }
41996: {{ uae_s32 src = get_long(srca);
41997: { uaecptr dsta = m68k_areg(regs, dstreg);
41998: if ((dsta & 1) != 0) {
41999: last_fault_for_exception_3 = dsta;
42000: last_op_for_exception_3 = opcode;
42001: last_addr_for_exception_3 = m68k_getpc() + 4;
42002: Exception(3, 0, M68000_EXC_SRC_CPU);
42003: goto endlabel2527;
42004: }
42005: { CLEAR_CZNV;
42006: SET_ZFLG (((uae_s32)(src)) == 0);
42007: SET_NFLG (((uae_s32)(src)) < 0);
42008: m68k_incpc(4);
42009: fill_prefetch_0 ();
42010: put_long(dsta,src);
42011: }}}}}}endlabel2527: ;
42012: return 26;
42013: }
42014: unsigned long REGPARAM2 CPUFUNC(op_20bc_5)(uae_u32 opcode) /* MOVE */
42015: {
42016: uae_u32 dstreg = (opcode >> 9) & 7;
42017: OpcodeFamily = 30; CurrentInstrCycles = 20;
42018: {{ uae_s32 src = get_ilong_prefetch(2);
42019: { uaecptr dsta = m68k_areg(regs, dstreg);
42020: if ((dsta & 1) != 0) {
42021: last_fault_for_exception_3 = dsta;
42022: last_op_for_exception_3 = opcode;
42023: last_addr_for_exception_3 = m68k_getpc() + 6;
42024: Exception(3, 0, M68000_EXC_SRC_CPU);
42025: goto endlabel2528;
42026: }
42027: { CLEAR_CZNV;
42028: SET_ZFLG (((uae_s32)(src)) == 0);
42029: SET_NFLG (((uae_s32)(src)) < 0);
42030: m68k_incpc(6);
42031: fill_prefetch_0 ();
42032: put_long(dsta,src);
42033: }}}}endlabel2528: ;
42034: return 20;
42035: }
42036: unsigned long REGPARAM2 CPUFUNC(op_20c0_5)(uae_u32 opcode) /* MOVE */
42037: {
42038: uae_u32 srcreg = (opcode & 7);
42039: uae_u32 dstreg = (opcode >> 9) & 7;
42040: OpcodeFamily = 30; CurrentInstrCycles = 12;
42041: {{ uae_s32 src = m68k_dreg(regs, srcreg);
42042: { uaecptr dsta = m68k_areg(regs, dstreg);
42043: if ((dsta & 1) != 0) {
42044: last_fault_for_exception_3 = dsta;
42045: last_op_for_exception_3 = opcode;
42046: last_addr_for_exception_3 = m68k_getpc() + 2;
42047: Exception(3, 0, M68000_EXC_SRC_CPU);
42048: goto endlabel2529;
42049: }
42050: { m68k_areg(regs, dstreg) += 4;
42051: CLEAR_CZNV;
42052: SET_ZFLG (((uae_s32)(src)) == 0);
42053: SET_NFLG (((uae_s32)(src)) < 0);
42054: m68k_incpc(2);
42055: fill_prefetch_2 ();
42056: put_long(dsta,src);
42057: }}}}endlabel2529: ;
42058: return 12;
42059: }
42060: unsigned long REGPARAM2 CPUFUNC(op_20c8_5)(uae_u32 opcode) /* MOVE */
42061: {
42062: uae_u32 srcreg = (opcode & 7);
42063: uae_u32 dstreg = (opcode >> 9) & 7;
42064: OpcodeFamily = 30; CurrentInstrCycles = 12;
42065: {{ uae_s32 src = m68k_areg(regs, srcreg);
42066: { uaecptr dsta = m68k_areg(regs, dstreg);
42067: if ((dsta & 1) != 0) {
42068: last_fault_for_exception_3 = dsta;
42069: last_op_for_exception_3 = opcode;
42070: last_addr_for_exception_3 = m68k_getpc() + 2;
42071: Exception(3, 0, M68000_EXC_SRC_CPU);
42072: goto endlabel2530;
42073: }
42074: { m68k_areg(regs, dstreg) += 4;
42075: CLEAR_CZNV;
42076: SET_ZFLG (((uae_s32)(src)) == 0);
42077: SET_NFLG (((uae_s32)(src)) < 0);
42078: m68k_incpc(2);
42079: fill_prefetch_2 ();
42080: put_long(dsta,src);
42081: }}}}endlabel2530: ;
42082: return 12;
42083: }
42084: unsigned long REGPARAM2 CPUFUNC(op_20d0_5)(uae_u32 opcode) /* MOVE */
42085: {
42086: uae_u32 srcreg = (opcode & 7);
42087: uae_u32 dstreg = (opcode >> 9) & 7;
42088: OpcodeFamily = 30; CurrentInstrCycles = 20;
42089: {{ uaecptr srca = m68k_areg(regs, srcreg);
42090: if ((srca & 1) != 0) {
42091: last_fault_for_exception_3 = srca;
42092: last_op_for_exception_3 = opcode;
42093: last_addr_for_exception_3 = m68k_getpc() + 2;
42094: Exception(3, 0, M68000_EXC_SRC_CPU);
42095: goto endlabel2531;
42096: }
42097: {{ uae_s32 src = get_long(srca);
42098: { uaecptr dsta = m68k_areg(regs, dstreg);
42099: if ((dsta & 1) != 0) {
42100: last_fault_for_exception_3 = dsta;
42101: last_op_for_exception_3 = opcode;
42102: last_addr_for_exception_3 = m68k_getpc() + 2;
42103: Exception(3, 0, M68000_EXC_SRC_CPU);
42104: goto endlabel2531;
42105: }
42106: { m68k_areg(regs, dstreg) += 4;
42107: CLEAR_CZNV;
42108: SET_ZFLG (((uae_s32)(src)) == 0);
42109: SET_NFLG (((uae_s32)(src)) < 0);
42110: m68k_incpc(2);
42111: fill_prefetch_2 ();
42112: put_long(dsta,src);
42113: }}}}}}endlabel2531: ;
42114: return 20;
42115: }
42116: unsigned long REGPARAM2 CPUFUNC(op_20d8_5)(uae_u32 opcode) /* MOVE */
42117: {
42118: uae_u32 srcreg = (opcode & 7);
42119: uae_u32 dstreg = (opcode >> 9) & 7;
42120: OpcodeFamily = 30; CurrentInstrCycles = 20;
42121: {{ uaecptr srca = m68k_areg(regs, srcreg);
42122: if ((srca & 1) != 0) {
42123: last_fault_for_exception_3 = srca;
42124: last_op_for_exception_3 = opcode;
42125: last_addr_for_exception_3 = m68k_getpc() + 2;
42126: Exception(3, 0, M68000_EXC_SRC_CPU);
42127: goto endlabel2532;
42128: }
42129: {{ uae_s32 src = get_long(srca);
42130: m68k_areg(regs, srcreg) += 4;
42131: { uaecptr dsta = m68k_areg(regs, dstreg);
42132: if ((dsta & 1) != 0) {
42133: last_fault_for_exception_3 = dsta;
42134: last_op_for_exception_3 = opcode;
42135: last_addr_for_exception_3 = m68k_getpc() + 2;
42136: Exception(3, 0, M68000_EXC_SRC_CPU);
42137: goto endlabel2532;
42138: }
42139: { m68k_areg(regs, dstreg) += 4;
42140: CLEAR_CZNV;
42141: SET_ZFLG (((uae_s32)(src)) == 0);
42142: SET_NFLG (((uae_s32)(src)) < 0);
42143: m68k_incpc(2);
42144: fill_prefetch_2 ();
42145: put_long(dsta,src);
42146: }}}}}}endlabel2532: ;
42147: return 20;
42148: }
42149: unsigned long REGPARAM2 CPUFUNC(op_20e0_5)(uae_u32 opcode) /* MOVE */
42150: {
42151: uae_u32 srcreg = (opcode & 7);
42152: uae_u32 dstreg = (opcode >> 9) & 7;
42153: OpcodeFamily = 30; CurrentInstrCycles = 22;
42154: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
42155: if ((srca & 1) != 0) {
42156: last_fault_for_exception_3 = srca;
42157: last_op_for_exception_3 = opcode;
42158: last_addr_for_exception_3 = m68k_getpc() + 2;
42159: Exception(3, 0, M68000_EXC_SRC_CPU);
42160: goto endlabel2533;
42161: }
42162: {{ uae_s32 src = get_long(srca);
42163: m68k_areg (regs, srcreg) = srca;
42164: { uaecptr dsta = m68k_areg(regs, dstreg);
42165: if ((dsta & 1) != 0) {
42166: last_fault_for_exception_3 = dsta;
42167: last_op_for_exception_3 = opcode;
42168: last_addr_for_exception_3 = m68k_getpc() + 2;
42169: Exception(3, 0, M68000_EXC_SRC_CPU);
42170: goto endlabel2533;
42171: }
42172: { m68k_areg(regs, dstreg) += 4;
42173: CLEAR_CZNV;
42174: SET_ZFLG (((uae_s32)(src)) == 0);
42175: SET_NFLG (((uae_s32)(src)) < 0);
42176: m68k_incpc(2);
42177: fill_prefetch_2 ();
42178: put_long(dsta,src);
42179: }}}}}}endlabel2533: ;
42180: return 22;
42181: }
42182: unsigned long REGPARAM2 CPUFUNC(op_20e8_5)(uae_u32 opcode) /* MOVE */
42183: {
42184: uae_u32 srcreg = (opcode & 7);
42185: uae_u32 dstreg = (opcode >> 9) & 7;
42186: OpcodeFamily = 30; CurrentInstrCycles = 24;
42187: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
42188: if ((srca & 1) != 0) {
42189: last_fault_for_exception_3 = srca;
42190: last_op_for_exception_3 = opcode;
42191: last_addr_for_exception_3 = m68k_getpc() + 4;
42192: Exception(3, 0, M68000_EXC_SRC_CPU);
42193: goto endlabel2534;
42194: }
42195: {{ uae_s32 src = get_long(srca);
42196: { uaecptr dsta = m68k_areg(regs, dstreg);
42197: if ((dsta & 1) != 0) {
42198: last_fault_for_exception_3 = dsta;
42199: last_op_for_exception_3 = opcode;
42200: last_addr_for_exception_3 = m68k_getpc() + 4;
42201: Exception(3, 0, M68000_EXC_SRC_CPU);
42202: goto endlabel2534;
42203: }
42204: { m68k_areg(regs, dstreg) += 4;
42205: CLEAR_CZNV;
42206: SET_ZFLG (((uae_s32)(src)) == 0);
42207: SET_NFLG (((uae_s32)(src)) < 0);
42208: m68k_incpc(4);
42209: fill_prefetch_0 ();
42210: put_long(dsta,src);
42211: }}}}}}endlabel2534: ;
42212: return 24;
42213: }
42214: unsigned long REGPARAM2 CPUFUNC(op_20f0_5)(uae_u32 opcode) /* MOVE */
42215: {
42216: uae_u32 srcreg = (opcode & 7);
42217: uae_u32 dstreg = (opcode >> 9) & 7;
42218: OpcodeFamily = 30; CurrentInstrCycles = 26;
42219: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
42220: BusCyclePenalty += 2;
42221: if ((srca & 1) != 0) {
42222: last_fault_for_exception_3 = srca;
42223: last_op_for_exception_3 = opcode;
42224: last_addr_for_exception_3 = m68k_getpc() + 4;
42225: Exception(3, 0, M68000_EXC_SRC_CPU);
42226: goto endlabel2535;
42227: }
42228: {{ uae_s32 src = get_long(srca);
42229: { uaecptr dsta = m68k_areg(regs, dstreg);
42230: if ((dsta & 1) != 0) {
42231: last_fault_for_exception_3 = dsta;
42232: last_op_for_exception_3 = opcode;
42233: last_addr_for_exception_3 = m68k_getpc() + 4;
42234: Exception(3, 0, M68000_EXC_SRC_CPU);
42235: goto endlabel2535;
42236: }
42237: { m68k_areg(regs, dstreg) += 4;
42238: CLEAR_CZNV;
42239: SET_ZFLG (((uae_s32)(src)) == 0);
42240: SET_NFLG (((uae_s32)(src)) < 0);
42241: m68k_incpc(4);
42242: fill_prefetch_0 ();
42243: put_long(dsta,src);
42244: }}}}}}endlabel2535: ;
42245: return 26;
42246: }
42247: unsigned long REGPARAM2 CPUFUNC(op_20f8_5)(uae_u32 opcode) /* MOVE */
42248: {
42249: uae_u32 dstreg = (opcode >> 9) & 7;
42250: OpcodeFamily = 30; CurrentInstrCycles = 24;
42251: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
42252: if ((srca & 1) != 0) {
42253: last_fault_for_exception_3 = srca;
42254: last_op_for_exception_3 = opcode;
42255: last_addr_for_exception_3 = m68k_getpc() + 4;
42256: Exception(3, 0, M68000_EXC_SRC_CPU);
42257: goto endlabel2536;
42258: }
42259: {{ uae_s32 src = get_long(srca);
42260: { uaecptr dsta = m68k_areg(regs, dstreg);
42261: if ((dsta & 1) != 0) {
42262: last_fault_for_exception_3 = dsta;
42263: last_op_for_exception_3 = opcode;
42264: last_addr_for_exception_3 = m68k_getpc() + 4;
42265: Exception(3, 0, M68000_EXC_SRC_CPU);
42266: goto endlabel2536;
42267: }
42268: { m68k_areg(regs, dstreg) += 4;
42269: CLEAR_CZNV;
42270: SET_ZFLG (((uae_s32)(src)) == 0);
42271: SET_NFLG (((uae_s32)(src)) < 0);
42272: m68k_incpc(4);
42273: fill_prefetch_0 ();
42274: put_long(dsta,src);
42275: }}}}}}endlabel2536: ;
42276: return 24;
42277: }
42278: unsigned long REGPARAM2 CPUFUNC(op_20f9_5)(uae_u32 opcode) /* MOVE */
42279: {
42280: uae_u32 dstreg = (opcode >> 9) & 7;
42281: OpcodeFamily = 30; CurrentInstrCycles = 28;
42282: {{ uaecptr srca = get_ilong_prefetch(2);
42283: if ((srca & 1) != 0) {
42284: last_fault_for_exception_3 = srca;
42285: last_op_for_exception_3 = opcode;
42286: last_addr_for_exception_3 = m68k_getpc() + 6;
42287: Exception(3, 0, M68000_EXC_SRC_CPU);
42288: goto endlabel2537;
42289: }
42290: {{ uae_s32 src = get_long(srca);
42291: { uaecptr dsta = m68k_areg(regs, dstreg);
42292: if ((dsta & 1) != 0) {
42293: last_fault_for_exception_3 = dsta;
42294: last_op_for_exception_3 = opcode;
42295: last_addr_for_exception_3 = m68k_getpc() + 6;
42296: Exception(3, 0, M68000_EXC_SRC_CPU);
42297: goto endlabel2537;
42298: }
42299: { m68k_areg(regs, dstreg) += 4;
42300: CLEAR_CZNV;
42301: SET_ZFLG (((uae_s32)(src)) == 0);
42302: SET_NFLG (((uae_s32)(src)) < 0);
42303: m68k_incpc(6);
42304: fill_prefetch_0 ();
42305: put_long(dsta,src);
42306: }}}}}}endlabel2537: ;
42307: return 28;
42308: }
42309: unsigned long REGPARAM2 CPUFUNC(op_20fa_5)(uae_u32 opcode) /* MOVE */
42310: {
42311: uae_u32 dstreg = (opcode >> 9) & 7;
42312: OpcodeFamily = 30; CurrentInstrCycles = 24;
42313: {{ uaecptr srca = m68k_getpc () + 2;
42314: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
42315: if ((srca & 1) != 0) {
42316: last_fault_for_exception_3 = srca;
42317: last_op_for_exception_3 = opcode;
42318: last_addr_for_exception_3 = m68k_getpc() + 4;
42319: Exception(3, 0, M68000_EXC_SRC_CPU);
42320: goto endlabel2538;
42321: }
42322: {{ uae_s32 src = get_long(srca);
42323: { uaecptr dsta = m68k_areg(regs, dstreg);
42324: if ((dsta & 1) != 0) {
42325: last_fault_for_exception_3 = dsta;
42326: last_op_for_exception_3 = opcode;
42327: last_addr_for_exception_3 = m68k_getpc() + 4;
42328: Exception(3, 0, M68000_EXC_SRC_CPU);
42329: goto endlabel2538;
42330: }
42331: { m68k_areg(regs, dstreg) += 4;
42332: CLEAR_CZNV;
42333: SET_ZFLG (((uae_s32)(src)) == 0);
42334: SET_NFLG (((uae_s32)(src)) < 0);
42335: m68k_incpc(4);
42336: fill_prefetch_0 ();
42337: put_long(dsta,src);
42338: }}}}}}endlabel2538: ;
42339: return 24;
42340: }
42341: unsigned long REGPARAM2 CPUFUNC(op_20fb_5)(uae_u32 opcode) /* MOVE */
42342: {
42343: uae_u32 dstreg = (opcode >> 9) & 7;
42344: OpcodeFamily = 30; CurrentInstrCycles = 26;
42345: {{ uaecptr tmppc = m68k_getpc() + 2;
42346: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
42347: BusCyclePenalty += 2;
42348: if ((srca & 1) != 0) {
42349: last_fault_for_exception_3 = srca;
42350: last_op_for_exception_3 = opcode;
42351: last_addr_for_exception_3 = m68k_getpc() + 4;
42352: Exception(3, 0, M68000_EXC_SRC_CPU);
42353: goto endlabel2539;
42354: }
42355: {{ uae_s32 src = get_long(srca);
42356: { uaecptr dsta = m68k_areg(regs, dstreg);
42357: if ((dsta & 1) != 0) {
42358: last_fault_for_exception_3 = dsta;
42359: last_op_for_exception_3 = opcode;
42360: last_addr_for_exception_3 = m68k_getpc() + 4;
42361: Exception(3, 0, M68000_EXC_SRC_CPU);
42362: goto endlabel2539;
42363: }
42364: { m68k_areg(regs, dstreg) += 4;
42365: CLEAR_CZNV;
42366: SET_ZFLG (((uae_s32)(src)) == 0);
42367: SET_NFLG (((uae_s32)(src)) < 0);
42368: m68k_incpc(4);
42369: fill_prefetch_0 ();
42370: put_long(dsta,src);
42371: }}}}}}endlabel2539: ;
42372: return 26;
42373: }
42374: unsigned long REGPARAM2 CPUFUNC(op_20fc_5)(uae_u32 opcode) /* MOVE */
42375: {
42376: uae_u32 dstreg = (opcode >> 9) & 7;
42377: OpcodeFamily = 30; CurrentInstrCycles = 20;
42378: {{ uae_s32 src = get_ilong_prefetch(2);
42379: { uaecptr dsta = m68k_areg(regs, dstreg);
42380: if ((dsta & 1) != 0) {
42381: last_fault_for_exception_3 = dsta;
42382: last_op_for_exception_3 = opcode;
42383: last_addr_for_exception_3 = m68k_getpc() + 6;
42384: Exception(3, 0, M68000_EXC_SRC_CPU);
42385: goto endlabel2540;
42386: }
42387: { m68k_areg(regs, dstreg) += 4;
42388: CLEAR_CZNV;
42389: SET_ZFLG (((uae_s32)(src)) == 0);
42390: SET_NFLG (((uae_s32)(src)) < 0);
42391: m68k_incpc(6);
42392: fill_prefetch_0 ();
42393: put_long(dsta,src);
42394: }}}}endlabel2540: ;
42395: return 20;
42396: }
42397: unsigned long REGPARAM2 CPUFUNC(op_2100_5)(uae_u32 opcode) /* MOVE */
42398: {
42399: uae_u32 srcreg = (opcode & 7);
42400: uae_u32 dstreg = (opcode >> 9) & 7;
42401: OpcodeFamily = 30; CurrentInstrCycles = 12;
42402: {{ uae_s32 src = m68k_dreg(regs, srcreg);
42403: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
42404: if ((dsta & 1) != 0) {
42405: last_fault_for_exception_3 = dsta;
42406: last_op_for_exception_3 = opcode;
42407: last_addr_for_exception_3 = m68k_getpc() + 2;
42408: Exception(3, 0, M68000_EXC_SRC_CPU);
42409: goto endlabel2541;
42410: }
42411: { m68k_areg (regs, dstreg) = dsta;
42412: CLEAR_CZNV;
42413: SET_ZFLG (((uae_s32)(src)) == 0);
42414: SET_NFLG (((uae_s32)(src)) < 0);
42415: m68k_incpc(2);
42416: fill_prefetch_2 ();
42417: put_long(dsta,src);
42418: }}}}endlabel2541: ;
42419: return 12;
42420: }
42421: unsigned long REGPARAM2 CPUFUNC(op_2108_5)(uae_u32 opcode) /* MOVE */
42422: {
42423: uae_u32 srcreg = (opcode & 7);
42424: uae_u32 dstreg = (opcode >> 9) & 7;
42425: OpcodeFamily = 30; CurrentInstrCycles = 12;
42426: {{ uae_s32 src = m68k_areg(regs, srcreg);
42427: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
42428: if ((dsta & 1) != 0) {
42429: last_fault_for_exception_3 = dsta;
42430: last_op_for_exception_3 = opcode;
42431: last_addr_for_exception_3 = m68k_getpc() + 2;
42432: Exception(3, 0, M68000_EXC_SRC_CPU);
42433: goto endlabel2542;
42434: }
42435: { m68k_areg (regs, dstreg) = dsta;
42436: CLEAR_CZNV;
42437: SET_ZFLG (((uae_s32)(src)) == 0);
42438: SET_NFLG (((uae_s32)(src)) < 0);
42439: m68k_incpc(2);
42440: fill_prefetch_2 ();
42441: put_long(dsta,src);
42442: }}}}endlabel2542: ;
42443: return 12;
42444: }
42445: unsigned long REGPARAM2 CPUFUNC(op_2110_5)(uae_u32 opcode) /* MOVE */
42446: {
42447: uae_u32 srcreg = (opcode & 7);
42448: uae_u32 dstreg = (opcode >> 9) & 7;
42449: OpcodeFamily = 30; CurrentInstrCycles = 20;
42450: {{ uaecptr srca = m68k_areg(regs, srcreg);
42451: if ((srca & 1) != 0) {
42452: last_fault_for_exception_3 = srca;
42453: last_op_for_exception_3 = opcode;
42454: last_addr_for_exception_3 = m68k_getpc() + 2;
42455: Exception(3, 0, M68000_EXC_SRC_CPU);
42456: goto endlabel2543;
42457: }
42458: {{ uae_s32 src = get_long(srca);
42459: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
42460: if ((dsta & 1) != 0) {
42461: last_fault_for_exception_3 = dsta;
42462: last_op_for_exception_3 = opcode;
42463: last_addr_for_exception_3 = m68k_getpc() + 2;
42464: Exception(3, 0, M68000_EXC_SRC_CPU);
42465: goto endlabel2543;
42466: }
42467: { m68k_areg (regs, dstreg) = dsta;
42468: CLEAR_CZNV;
42469: SET_ZFLG (((uae_s32)(src)) == 0);
42470: SET_NFLG (((uae_s32)(src)) < 0);
42471: m68k_incpc(2);
42472: fill_prefetch_2 ();
42473: put_long(dsta,src);
42474: }}}}}}endlabel2543: ;
42475: return 20;
42476: }
42477: unsigned long REGPARAM2 CPUFUNC(op_2118_5)(uae_u32 opcode) /* MOVE */
42478: {
42479: uae_u32 srcreg = (opcode & 7);
42480: uae_u32 dstreg = (opcode >> 9) & 7;
42481: OpcodeFamily = 30; CurrentInstrCycles = 20;
42482: {{ uaecptr srca = m68k_areg(regs, srcreg);
42483: if ((srca & 1) != 0) {
42484: last_fault_for_exception_3 = srca;
42485: last_op_for_exception_3 = opcode;
42486: last_addr_for_exception_3 = m68k_getpc() + 2;
42487: Exception(3, 0, M68000_EXC_SRC_CPU);
42488: goto endlabel2544;
42489: }
42490: {{ uae_s32 src = get_long(srca);
42491: m68k_areg(regs, srcreg) += 4;
42492: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
42493: if ((dsta & 1) != 0) {
42494: last_fault_for_exception_3 = dsta;
42495: last_op_for_exception_3 = opcode;
42496: last_addr_for_exception_3 = m68k_getpc() + 2;
42497: Exception(3, 0, M68000_EXC_SRC_CPU);
42498: goto endlabel2544;
42499: }
42500: { m68k_areg (regs, dstreg) = dsta;
42501: CLEAR_CZNV;
42502: SET_ZFLG (((uae_s32)(src)) == 0);
42503: SET_NFLG (((uae_s32)(src)) < 0);
42504: m68k_incpc(2);
42505: fill_prefetch_2 ();
42506: put_long(dsta,src);
42507: }}}}}}endlabel2544: ;
42508: return 20;
42509: }
42510: unsigned long REGPARAM2 CPUFUNC(op_2120_5)(uae_u32 opcode) /* MOVE */
42511: {
42512: uae_u32 srcreg = (opcode & 7);
42513: uae_u32 dstreg = (opcode >> 9) & 7;
42514: OpcodeFamily = 30; CurrentInstrCycles = 22;
42515: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
42516: if ((srca & 1) != 0) {
42517: last_fault_for_exception_3 = srca;
42518: last_op_for_exception_3 = opcode;
42519: last_addr_for_exception_3 = m68k_getpc() + 2;
42520: Exception(3, 0, M68000_EXC_SRC_CPU);
42521: goto endlabel2545;
42522: }
42523: {{ uae_s32 src = get_long(srca);
42524: m68k_areg (regs, srcreg) = srca;
42525: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
42526: if ((dsta & 1) != 0) {
42527: last_fault_for_exception_3 = dsta;
42528: last_op_for_exception_3 = opcode;
42529: last_addr_for_exception_3 = m68k_getpc() + 2;
42530: Exception(3, 0, M68000_EXC_SRC_CPU);
42531: goto endlabel2545;
42532: }
42533: { m68k_areg (regs, dstreg) = dsta;
42534: CLEAR_CZNV;
42535: SET_ZFLG (((uae_s32)(src)) == 0);
42536: SET_NFLG (((uae_s32)(src)) < 0);
42537: m68k_incpc(2);
42538: fill_prefetch_2 ();
42539: put_long(dsta,src);
42540: }}}}}}endlabel2545: ;
42541: return 22;
42542: }
42543: unsigned long REGPARAM2 CPUFUNC(op_2128_5)(uae_u32 opcode) /* MOVE */
42544: {
42545: uae_u32 srcreg = (opcode & 7);
42546: uae_u32 dstreg = (opcode >> 9) & 7;
42547: OpcodeFamily = 30; CurrentInstrCycles = 24;
42548: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
42549: if ((srca & 1) != 0) {
42550: last_fault_for_exception_3 = srca;
42551: last_op_for_exception_3 = opcode;
42552: last_addr_for_exception_3 = m68k_getpc() + 4;
42553: Exception(3, 0, M68000_EXC_SRC_CPU);
42554: goto endlabel2546;
42555: }
42556: {{ uae_s32 src = get_long(srca);
42557: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
42558: if ((dsta & 1) != 0) {
42559: last_fault_for_exception_3 = dsta;
42560: last_op_for_exception_3 = opcode;
42561: last_addr_for_exception_3 = m68k_getpc() + 4;
42562: Exception(3, 0, M68000_EXC_SRC_CPU);
42563: goto endlabel2546;
42564: }
42565: { m68k_areg (regs, dstreg) = dsta;
42566: CLEAR_CZNV;
42567: SET_ZFLG (((uae_s32)(src)) == 0);
42568: SET_NFLG (((uae_s32)(src)) < 0);
42569: m68k_incpc(4);
42570: fill_prefetch_0 ();
42571: put_long(dsta,src);
42572: }}}}}}endlabel2546: ;
42573: return 24;
42574: }
42575: unsigned long REGPARAM2 CPUFUNC(op_2130_5)(uae_u32 opcode) /* MOVE */
42576: {
42577: uae_u32 srcreg = (opcode & 7);
42578: uae_u32 dstreg = (opcode >> 9) & 7;
42579: OpcodeFamily = 30; CurrentInstrCycles = 26;
42580: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
42581: BusCyclePenalty += 2;
42582: if ((srca & 1) != 0) {
42583: last_fault_for_exception_3 = srca;
42584: last_op_for_exception_3 = opcode;
42585: last_addr_for_exception_3 = m68k_getpc() + 4;
42586: Exception(3, 0, M68000_EXC_SRC_CPU);
42587: goto endlabel2547;
42588: }
42589: {{ uae_s32 src = get_long(srca);
42590: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
42591: if ((dsta & 1) != 0) {
42592: last_fault_for_exception_3 = dsta;
42593: last_op_for_exception_3 = opcode;
42594: last_addr_for_exception_3 = m68k_getpc() + 4;
42595: Exception(3, 0, M68000_EXC_SRC_CPU);
42596: goto endlabel2547;
42597: }
42598: { m68k_areg (regs, dstreg) = dsta;
42599: CLEAR_CZNV;
42600: SET_ZFLG (((uae_s32)(src)) == 0);
42601: SET_NFLG (((uae_s32)(src)) < 0);
42602: m68k_incpc(4);
42603: fill_prefetch_0 ();
42604: put_long(dsta,src);
42605: }}}}}}endlabel2547: ;
42606: return 26;
42607: }
42608: unsigned long REGPARAM2 CPUFUNC(op_2138_5)(uae_u32 opcode) /* MOVE */
42609: {
42610: uae_u32 dstreg = (opcode >> 9) & 7;
42611: OpcodeFamily = 30; CurrentInstrCycles = 24;
42612: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
42613: if ((srca & 1) != 0) {
42614: last_fault_for_exception_3 = srca;
42615: last_op_for_exception_3 = opcode;
42616: last_addr_for_exception_3 = m68k_getpc() + 4;
42617: Exception(3, 0, M68000_EXC_SRC_CPU);
42618: goto endlabel2548;
42619: }
42620: {{ uae_s32 src = get_long(srca);
42621: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
42622: if ((dsta & 1) != 0) {
42623: last_fault_for_exception_3 = dsta;
42624: last_op_for_exception_3 = opcode;
42625: last_addr_for_exception_3 = m68k_getpc() + 4;
42626: Exception(3, 0, M68000_EXC_SRC_CPU);
42627: goto endlabel2548;
42628: }
42629: { m68k_areg (regs, dstreg) = dsta;
42630: CLEAR_CZNV;
42631: SET_ZFLG (((uae_s32)(src)) == 0);
42632: SET_NFLG (((uae_s32)(src)) < 0);
42633: m68k_incpc(4);
42634: fill_prefetch_0 ();
42635: put_long(dsta,src);
42636: }}}}}}endlabel2548: ;
42637: return 24;
42638: }
42639: #endif
42640:
42641: #ifdef PART_3
42642: unsigned long REGPARAM2 CPUFUNC(op_2139_5)(uae_u32 opcode) /* MOVE */
42643: {
42644: uae_u32 dstreg = (opcode >> 9) & 7;
42645: OpcodeFamily = 30; CurrentInstrCycles = 28;
42646: {{ uaecptr srca = get_ilong_prefetch(2);
42647: if ((srca & 1) != 0) {
42648: last_fault_for_exception_3 = srca;
42649: last_op_for_exception_3 = opcode;
42650: last_addr_for_exception_3 = m68k_getpc() + 6;
42651: Exception(3, 0, M68000_EXC_SRC_CPU);
42652: goto endlabel2549;
42653: }
42654: {{ uae_s32 src = get_long(srca);
42655: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
42656: if ((dsta & 1) != 0) {
42657: last_fault_for_exception_3 = dsta;
42658: last_op_for_exception_3 = opcode;
42659: last_addr_for_exception_3 = m68k_getpc() + 6;
42660: Exception(3, 0, M68000_EXC_SRC_CPU);
42661: goto endlabel2549;
42662: }
42663: { m68k_areg (regs, dstreg) = dsta;
42664: CLEAR_CZNV;
42665: SET_ZFLG (((uae_s32)(src)) == 0);
42666: SET_NFLG (((uae_s32)(src)) < 0);
42667: m68k_incpc(6);
42668: fill_prefetch_0 ();
42669: put_long(dsta,src);
42670: }}}}}}endlabel2549: ;
42671: return 28;
42672: }
42673: unsigned long REGPARAM2 CPUFUNC(op_213a_5)(uae_u32 opcode) /* MOVE */
42674: {
42675: uae_u32 dstreg = (opcode >> 9) & 7;
42676: OpcodeFamily = 30; CurrentInstrCycles = 24;
42677: {{ uaecptr srca = m68k_getpc () + 2;
42678: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
42679: if ((srca & 1) != 0) {
42680: last_fault_for_exception_3 = srca;
42681: last_op_for_exception_3 = opcode;
42682: last_addr_for_exception_3 = m68k_getpc() + 4;
42683: Exception(3, 0, M68000_EXC_SRC_CPU);
42684: goto endlabel2550;
42685: }
42686: {{ uae_s32 src = get_long(srca);
42687: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
42688: if ((dsta & 1) != 0) {
42689: last_fault_for_exception_3 = dsta;
42690: last_op_for_exception_3 = opcode;
42691: last_addr_for_exception_3 = m68k_getpc() + 4;
42692: Exception(3, 0, M68000_EXC_SRC_CPU);
42693: goto endlabel2550;
42694: }
42695: { m68k_areg (regs, dstreg) = dsta;
42696: CLEAR_CZNV;
42697: SET_ZFLG (((uae_s32)(src)) == 0);
42698: SET_NFLG (((uae_s32)(src)) < 0);
42699: m68k_incpc(4);
42700: fill_prefetch_0 ();
42701: put_long(dsta,src);
42702: }}}}}}endlabel2550: ;
42703: return 24;
42704: }
42705: unsigned long REGPARAM2 CPUFUNC(op_213b_5)(uae_u32 opcode) /* MOVE */
42706: {
42707: uae_u32 dstreg = (opcode >> 9) & 7;
42708: OpcodeFamily = 30; CurrentInstrCycles = 26;
42709: {{ uaecptr tmppc = m68k_getpc() + 2;
42710: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
42711: BusCyclePenalty += 2;
42712: if ((srca & 1) != 0) {
42713: last_fault_for_exception_3 = srca;
42714: last_op_for_exception_3 = opcode;
42715: last_addr_for_exception_3 = m68k_getpc() + 4;
42716: Exception(3, 0, M68000_EXC_SRC_CPU);
42717: goto endlabel2551;
42718: }
42719: {{ uae_s32 src = get_long(srca);
42720: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
42721: if ((dsta & 1) != 0) {
42722: last_fault_for_exception_3 = dsta;
42723: last_op_for_exception_3 = opcode;
42724: last_addr_for_exception_3 = m68k_getpc() + 4;
42725: Exception(3, 0, M68000_EXC_SRC_CPU);
42726: goto endlabel2551;
42727: }
42728: { m68k_areg (regs, dstreg) = dsta;
42729: CLEAR_CZNV;
42730: SET_ZFLG (((uae_s32)(src)) == 0);
42731: SET_NFLG (((uae_s32)(src)) < 0);
42732: m68k_incpc(4);
42733: fill_prefetch_0 ();
42734: put_long(dsta,src);
42735: }}}}}}endlabel2551: ;
42736: return 26;
42737: }
42738: unsigned long REGPARAM2 CPUFUNC(op_213c_5)(uae_u32 opcode) /* MOVE */
42739: {
42740: uae_u32 dstreg = (opcode >> 9) & 7;
42741: OpcodeFamily = 30; CurrentInstrCycles = 20;
42742: {{ uae_s32 src = get_ilong_prefetch(2);
42743: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
42744: if ((dsta & 1) != 0) {
42745: last_fault_for_exception_3 = dsta;
42746: last_op_for_exception_3 = opcode;
42747: last_addr_for_exception_3 = m68k_getpc() + 6;
42748: Exception(3, 0, M68000_EXC_SRC_CPU);
42749: goto endlabel2552;
42750: }
42751: { m68k_areg (regs, dstreg) = dsta;
42752: CLEAR_CZNV;
42753: SET_ZFLG (((uae_s32)(src)) == 0);
42754: SET_NFLG (((uae_s32)(src)) < 0);
42755: m68k_incpc(6);
42756: fill_prefetch_0 ();
42757: put_long(dsta,src);
42758: }}}}endlabel2552: ;
42759: return 20;
42760: }
42761: unsigned long REGPARAM2 CPUFUNC(op_2140_5)(uae_u32 opcode) /* MOVE */
42762: {
42763: uae_u32 srcreg = (opcode & 7);
42764: uae_u32 dstreg = (opcode >> 9) & 7;
42765: OpcodeFamily = 30; CurrentInstrCycles = 16;
42766: {{ uae_s32 src = m68k_dreg(regs, srcreg);
42767: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
42768: if ((dsta & 1) != 0) {
42769: last_fault_for_exception_3 = dsta;
42770: last_op_for_exception_3 = opcode;
42771: last_addr_for_exception_3 = m68k_getpc() + 4;
42772: Exception(3, 0, M68000_EXC_SRC_CPU);
42773: goto endlabel2553;
42774: }
42775: { CLEAR_CZNV;
42776: SET_ZFLG (((uae_s32)(src)) == 0);
42777: SET_NFLG (((uae_s32)(src)) < 0);
42778: m68k_incpc(4);
42779: fill_prefetch_0 ();
42780: put_long(dsta,src);
42781: }}}}endlabel2553: ;
42782: return 16;
42783: }
42784: unsigned long REGPARAM2 CPUFUNC(op_2148_5)(uae_u32 opcode) /* MOVE */
42785: {
42786: uae_u32 srcreg = (opcode & 7);
42787: uae_u32 dstreg = (opcode >> 9) & 7;
42788: OpcodeFamily = 30; CurrentInstrCycles = 16;
42789: {{ uae_s32 src = m68k_areg(regs, srcreg);
42790: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
42791: if ((dsta & 1) != 0) {
42792: last_fault_for_exception_3 = dsta;
42793: last_op_for_exception_3 = opcode;
42794: last_addr_for_exception_3 = m68k_getpc() + 4;
42795: Exception(3, 0, M68000_EXC_SRC_CPU);
42796: goto endlabel2554;
42797: }
42798: { CLEAR_CZNV;
42799: SET_ZFLG (((uae_s32)(src)) == 0);
42800: SET_NFLG (((uae_s32)(src)) < 0);
42801: m68k_incpc(4);
42802: fill_prefetch_0 ();
42803: put_long(dsta,src);
42804: }}}}endlabel2554: ;
42805: return 16;
42806: }
42807: unsigned long REGPARAM2 CPUFUNC(op_2150_5)(uae_u32 opcode) /* MOVE */
42808: {
42809: uae_u32 srcreg = (opcode & 7);
42810: uae_u32 dstreg = (opcode >> 9) & 7;
42811: OpcodeFamily = 30; CurrentInstrCycles = 24;
42812: {{ uaecptr srca = m68k_areg(regs, srcreg);
42813: if ((srca & 1) != 0) {
42814: last_fault_for_exception_3 = srca;
42815: last_op_for_exception_3 = opcode;
42816: last_addr_for_exception_3 = m68k_getpc() + 2;
42817: Exception(3, 0, M68000_EXC_SRC_CPU);
42818: goto endlabel2555;
42819: }
42820: {{ uae_s32 src = get_long(srca);
42821: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
42822: if ((dsta & 1) != 0) {
42823: last_fault_for_exception_3 = dsta;
42824: last_op_for_exception_3 = opcode;
42825: last_addr_for_exception_3 = m68k_getpc() + 4;
42826: Exception(3, 0, M68000_EXC_SRC_CPU);
42827: goto endlabel2555;
42828: }
42829: { CLEAR_CZNV;
42830: SET_ZFLG (((uae_s32)(src)) == 0);
42831: SET_NFLG (((uae_s32)(src)) < 0);
42832: m68k_incpc(4);
42833: fill_prefetch_0 ();
42834: put_long(dsta,src);
42835: }}}}}}endlabel2555: ;
42836: return 24;
42837: }
42838: unsigned long REGPARAM2 CPUFUNC(op_2158_5)(uae_u32 opcode) /* MOVE */
42839: {
42840: uae_u32 srcreg = (opcode & 7);
42841: uae_u32 dstreg = (opcode >> 9) & 7;
42842: OpcodeFamily = 30; CurrentInstrCycles = 24;
42843: {{ uaecptr srca = m68k_areg(regs, srcreg);
42844: if ((srca & 1) != 0) {
42845: last_fault_for_exception_3 = srca;
42846: last_op_for_exception_3 = opcode;
42847: last_addr_for_exception_3 = m68k_getpc() + 2;
42848: Exception(3, 0, M68000_EXC_SRC_CPU);
42849: goto endlabel2556;
42850: }
42851: {{ uae_s32 src = get_long(srca);
42852: m68k_areg(regs, srcreg) += 4;
42853: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
42854: if ((dsta & 1) != 0) {
42855: last_fault_for_exception_3 = dsta;
42856: last_op_for_exception_3 = opcode;
42857: last_addr_for_exception_3 = m68k_getpc() + 4;
42858: Exception(3, 0, M68000_EXC_SRC_CPU);
42859: goto endlabel2556;
42860: }
42861: { CLEAR_CZNV;
42862: SET_ZFLG (((uae_s32)(src)) == 0);
42863: SET_NFLG (((uae_s32)(src)) < 0);
42864: m68k_incpc(4);
42865: fill_prefetch_0 ();
42866: put_long(dsta,src);
42867: }}}}}}endlabel2556: ;
42868: return 24;
42869: }
42870: unsigned long REGPARAM2 CPUFUNC(op_2160_5)(uae_u32 opcode) /* MOVE */
42871: {
42872: uae_u32 srcreg = (opcode & 7);
42873: uae_u32 dstreg = (opcode >> 9) & 7;
42874: OpcodeFamily = 30; CurrentInstrCycles = 26;
42875: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
42876: if ((srca & 1) != 0) {
42877: last_fault_for_exception_3 = srca;
42878: last_op_for_exception_3 = opcode;
42879: last_addr_for_exception_3 = m68k_getpc() + 2;
42880: Exception(3, 0, M68000_EXC_SRC_CPU);
42881: goto endlabel2557;
42882: }
42883: {{ uae_s32 src = get_long(srca);
42884: m68k_areg (regs, srcreg) = srca;
42885: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
42886: if ((dsta & 1) != 0) {
42887: last_fault_for_exception_3 = dsta;
42888: last_op_for_exception_3 = opcode;
42889: last_addr_for_exception_3 = m68k_getpc() + 4;
42890: Exception(3, 0, M68000_EXC_SRC_CPU);
42891: goto endlabel2557;
42892: }
42893: { CLEAR_CZNV;
42894: SET_ZFLG (((uae_s32)(src)) == 0);
42895: SET_NFLG (((uae_s32)(src)) < 0);
42896: m68k_incpc(4);
42897: fill_prefetch_0 ();
42898: put_long(dsta,src);
42899: }}}}}}endlabel2557: ;
42900: return 26;
42901: }
42902: unsigned long REGPARAM2 CPUFUNC(op_2168_5)(uae_u32 opcode) /* MOVE */
42903: {
42904: uae_u32 srcreg = (opcode & 7);
42905: uae_u32 dstreg = (opcode >> 9) & 7;
42906: OpcodeFamily = 30; CurrentInstrCycles = 28;
42907: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
42908: if ((srca & 1) != 0) {
42909: last_fault_for_exception_3 = srca;
42910: last_op_for_exception_3 = opcode;
42911: last_addr_for_exception_3 = m68k_getpc() + 4;
42912: Exception(3, 0, M68000_EXC_SRC_CPU);
42913: goto endlabel2558;
42914: }
42915: {{ uae_s32 src = get_long(srca);
42916: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
42917: if ((dsta & 1) != 0) {
42918: last_fault_for_exception_3 = dsta;
42919: last_op_for_exception_3 = opcode;
42920: last_addr_for_exception_3 = m68k_getpc() + 6;
42921: Exception(3, 0, M68000_EXC_SRC_CPU);
42922: goto endlabel2558;
42923: }
42924: { CLEAR_CZNV;
42925: SET_ZFLG (((uae_s32)(src)) == 0);
42926: SET_NFLG (((uae_s32)(src)) < 0);
42927: m68k_incpc(6);
42928: fill_prefetch_0 ();
42929: put_long(dsta,src);
42930: }}}}}}endlabel2558: ;
42931: return 28;
42932: }
42933: unsigned long REGPARAM2 CPUFUNC(op_2170_5)(uae_u32 opcode) /* MOVE */
42934: {
42935: uae_u32 srcreg = (opcode & 7);
42936: uae_u32 dstreg = (opcode >> 9) & 7;
42937: OpcodeFamily = 30; CurrentInstrCycles = 30;
42938: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
42939: BusCyclePenalty += 2;
42940: if ((srca & 1) != 0) {
42941: last_fault_for_exception_3 = srca;
42942: last_op_for_exception_3 = opcode;
42943: last_addr_for_exception_3 = m68k_getpc() + 4;
42944: Exception(3, 0, M68000_EXC_SRC_CPU);
42945: goto endlabel2559;
42946: }
42947: {{ uae_s32 src = get_long(srca);
42948: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
42949: if ((dsta & 1) != 0) {
42950: last_fault_for_exception_3 = dsta;
42951: last_op_for_exception_3 = opcode;
42952: last_addr_for_exception_3 = m68k_getpc() + 6;
42953: Exception(3, 0, M68000_EXC_SRC_CPU);
42954: goto endlabel2559;
42955: }
42956: { CLEAR_CZNV;
42957: SET_ZFLG (((uae_s32)(src)) == 0);
42958: SET_NFLG (((uae_s32)(src)) < 0);
42959: m68k_incpc(6);
42960: fill_prefetch_0 ();
42961: put_long(dsta,src);
42962: }}}}}}endlabel2559: ;
42963: return 30;
42964: }
42965: unsigned long REGPARAM2 CPUFUNC(op_2178_5)(uae_u32 opcode) /* MOVE */
42966: {
42967: uae_u32 dstreg = (opcode >> 9) & 7;
42968: OpcodeFamily = 30; CurrentInstrCycles = 28;
42969: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
42970: if ((srca & 1) != 0) {
42971: last_fault_for_exception_3 = srca;
42972: last_op_for_exception_3 = opcode;
42973: last_addr_for_exception_3 = m68k_getpc() + 4;
42974: Exception(3, 0, M68000_EXC_SRC_CPU);
42975: goto endlabel2560;
42976: }
42977: {{ uae_s32 src = get_long(srca);
42978: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
42979: if ((dsta & 1) != 0) {
42980: last_fault_for_exception_3 = dsta;
42981: last_op_for_exception_3 = opcode;
42982: last_addr_for_exception_3 = m68k_getpc() + 6;
42983: Exception(3, 0, M68000_EXC_SRC_CPU);
42984: goto endlabel2560;
42985: }
42986: { CLEAR_CZNV;
42987: SET_ZFLG (((uae_s32)(src)) == 0);
42988: SET_NFLG (((uae_s32)(src)) < 0);
42989: m68k_incpc(6);
42990: fill_prefetch_0 ();
42991: put_long(dsta,src);
42992: }}}}}}endlabel2560: ;
42993: return 28;
42994: }
42995: unsigned long REGPARAM2 CPUFUNC(op_2179_5)(uae_u32 opcode) /* MOVE */
42996: {
42997: uae_u32 dstreg = (opcode >> 9) & 7;
42998: OpcodeFamily = 30; CurrentInstrCycles = 32;
42999: {{ uaecptr srca = get_ilong_prefetch(2);
43000: if ((srca & 1) != 0) {
43001: last_fault_for_exception_3 = srca;
43002: last_op_for_exception_3 = opcode;
43003: last_addr_for_exception_3 = m68k_getpc() + 6;
43004: Exception(3, 0, M68000_EXC_SRC_CPU);
43005: goto endlabel2561;
43006: }
43007: {{ uae_s32 src = get_long(srca);
43008: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(6);
43009: if ((dsta & 1) != 0) {
43010: last_fault_for_exception_3 = dsta;
43011: last_op_for_exception_3 = opcode;
43012: last_addr_for_exception_3 = m68k_getpc() + 8;
43013: Exception(3, 0, M68000_EXC_SRC_CPU);
43014: goto endlabel2561;
43015: }
43016: { CLEAR_CZNV;
43017: SET_ZFLG (((uae_s32)(src)) == 0);
43018: SET_NFLG (((uae_s32)(src)) < 0);
43019: m68k_incpc(8);
43020: fill_prefetch_0 ();
43021: put_long(dsta,src);
43022: }}}}}}endlabel2561: ;
43023: return 32;
43024: }
43025: unsigned long REGPARAM2 CPUFUNC(op_217a_5)(uae_u32 opcode) /* MOVE */
43026: {
43027: uae_u32 dstreg = (opcode >> 9) & 7;
43028: OpcodeFamily = 30; CurrentInstrCycles = 28;
43029: {{ uaecptr srca = m68k_getpc () + 2;
43030: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
43031: if ((srca & 1) != 0) {
43032: last_fault_for_exception_3 = srca;
43033: last_op_for_exception_3 = opcode;
43034: last_addr_for_exception_3 = m68k_getpc() + 4;
43035: Exception(3, 0, M68000_EXC_SRC_CPU);
43036: goto endlabel2562;
43037: }
43038: {{ uae_s32 src = get_long(srca);
43039: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
43040: if ((dsta & 1) != 0) {
43041: last_fault_for_exception_3 = dsta;
43042: last_op_for_exception_3 = opcode;
43043: last_addr_for_exception_3 = m68k_getpc() + 6;
43044: Exception(3, 0, M68000_EXC_SRC_CPU);
43045: goto endlabel2562;
43046: }
43047: { CLEAR_CZNV;
43048: SET_ZFLG (((uae_s32)(src)) == 0);
43049: SET_NFLG (((uae_s32)(src)) < 0);
43050: m68k_incpc(6);
43051: fill_prefetch_0 ();
43052: put_long(dsta,src);
43053: }}}}}}endlabel2562: ;
43054: return 28;
43055: }
43056: unsigned long REGPARAM2 CPUFUNC(op_217b_5)(uae_u32 opcode) /* MOVE */
43057: {
43058: uae_u32 dstreg = (opcode >> 9) & 7;
43059: OpcodeFamily = 30; CurrentInstrCycles = 30;
43060: {{ uaecptr tmppc = m68k_getpc() + 2;
43061: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
43062: BusCyclePenalty += 2;
43063: if ((srca & 1) != 0) {
43064: last_fault_for_exception_3 = srca;
43065: last_op_for_exception_3 = opcode;
43066: last_addr_for_exception_3 = m68k_getpc() + 4;
43067: Exception(3, 0, M68000_EXC_SRC_CPU);
43068: goto endlabel2563;
43069: }
43070: {{ uae_s32 src = get_long(srca);
43071: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
43072: if ((dsta & 1) != 0) {
43073: last_fault_for_exception_3 = dsta;
43074: last_op_for_exception_3 = opcode;
43075: last_addr_for_exception_3 = m68k_getpc() + 6;
43076: Exception(3, 0, M68000_EXC_SRC_CPU);
43077: goto endlabel2563;
43078: }
43079: { CLEAR_CZNV;
43080: SET_ZFLG (((uae_s32)(src)) == 0);
43081: SET_NFLG (((uae_s32)(src)) < 0);
43082: m68k_incpc(6);
43083: fill_prefetch_0 ();
43084: put_long(dsta,src);
43085: }}}}}}endlabel2563: ;
43086: return 30;
43087: }
43088: unsigned long REGPARAM2 CPUFUNC(op_217c_5)(uae_u32 opcode) /* MOVE */
43089: {
43090: uae_u32 dstreg = (opcode >> 9) & 7;
43091: OpcodeFamily = 30; CurrentInstrCycles = 24;
43092: {{ uae_s32 src = get_ilong_prefetch(2);
43093: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(6);
43094: if ((dsta & 1) != 0) {
43095: last_fault_for_exception_3 = dsta;
43096: last_op_for_exception_3 = opcode;
43097: last_addr_for_exception_3 = m68k_getpc() + 8;
43098: Exception(3, 0, M68000_EXC_SRC_CPU);
43099: goto endlabel2564;
43100: }
43101: { CLEAR_CZNV;
43102: SET_ZFLG (((uae_s32)(src)) == 0);
43103: SET_NFLG (((uae_s32)(src)) < 0);
43104: m68k_incpc(8);
43105: fill_prefetch_0 ();
43106: put_long(dsta,src);
43107: }}}}endlabel2564: ;
43108: return 24;
43109: }
43110: unsigned long REGPARAM2 CPUFUNC(op_2180_5)(uae_u32 opcode) /* MOVE */
43111: {
43112: uae_u32 srcreg = (opcode & 7);
43113: uae_u32 dstreg = (opcode >> 9) & 7;
43114: OpcodeFamily = 30; CurrentInstrCycles = 18;
43115: {{ uae_s32 src = m68k_dreg(regs, srcreg);
43116: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
43117: BusCyclePenalty += 2;
43118: if ((dsta & 1) != 0) {
43119: last_fault_for_exception_3 = dsta;
43120: last_op_for_exception_3 = opcode;
43121: last_addr_for_exception_3 = m68k_getpc() + 4;
43122: Exception(3, 0, M68000_EXC_SRC_CPU);
43123: goto endlabel2565;
43124: }
43125: { CLEAR_CZNV;
43126: SET_ZFLG (((uae_s32)(src)) == 0);
43127: SET_NFLG (((uae_s32)(src)) < 0);
43128: m68k_incpc(4);
43129: fill_prefetch_0 ();
43130: put_long(dsta,src);
43131: }}}}endlabel2565: ;
43132: return 18;
43133: }
43134: unsigned long REGPARAM2 CPUFUNC(op_2188_5)(uae_u32 opcode) /* MOVE */
43135: {
43136: uae_u32 srcreg = (opcode & 7);
43137: uae_u32 dstreg = (opcode >> 9) & 7;
43138: OpcodeFamily = 30; CurrentInstrCycles = 18;
43139: {{ uae_s32 src = m68k_areg(regs, srcreg);
43140: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
43141: BusCyclePenalty += 2;
43142: if ((dsta & 1) != 0) {
43143: last_fault_for_exception_3 = dsta;
43144: last_op_for_exception_3 = opcode;
43145: last_addr_for_exception_3 = m68k_getpc() + 4;
43146: Exception(3, 0, M68000_EXC_SRC_CPU);
43147: goto endlabel2566;
43148: }
43149: { CLEAR_CZNV;
43150: SET_ZFLG (((uae_s32)(src)) == 0);
43151: SET_NFLG (((uae_s32)(src)) < 0);
43152: m68k_incpc(4);
43153: fill_prefetch_0 ();
43154: put_long(dsta,src);
43155: }}}}endlabel2566: ;
43156: return 18;
43157: }
43158: unsigned long REGPARAM2 CPUFUNC(op_2190_5)(uae_u32 opcode) /* MOVE */
43159: {
43160: uae_u32 srcreg = (opcode & 7);
43161: uae_u32 dstreg = (opcode >> 9) & 7;
43162: OpcodeFamily = 30; CurrentInstrCycles = 26;
43163: {{ uaecptr srca = m68k_areg(regs, srcreg);
43164: if ((srca & 1) != 0) {
43165: last_fault_for_exception_3 = srca;
43166: last_op_for_exception_3 = opcode;
43167: last_addr_for_exception_3 = m68k_getpc() + 2;
43168: Exception(3, 0, M68000_EXC_SRC_CPU);
43169: goto endlabel2567;
43170: }
43171: {{ uae_s32 src = get_long(srca);
43172: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
43173: BusCyclePenalty += 2;
43174: if ((dsta & 1) != 0) {
43175: last_fault_for_exception_3 = dsta;
43176: last_op_for_exception_3 = opcode;
43177: last_addr_for_exception_3 = m68k_getpc() + 4;
43178: Exception(3, 0, M68000_EXC_SRC_CPU);
43179: goto endlabel2567;
43180: }
43181: { CLEAR_CZNV;
43182: SET_ZFLG (((uae_s32)(src)) == 0);
43183: SET_NFLG (((uae_s32)(src)) < 0);
43184: m68k_incpc(4);
43185: fill_prefetch_0 ();
43186: put_long(dsta,src);
43187: }}}}}}endlabel2567: ;
43188: return 26;
43189: }
43190: unsigned long REGPARAM2 CPUFUNC(op_2198_5)(uae_u32 opcode) /* MOVE */
43191: {
43192: uae_u32 srcreg = (opcode & 7);
43193: uae_u32 dstreg = (opcode >> 9) & 7;
43194: OpcodeFamily = 30; CurrentInstrCycles = 26;
43195: {{ uaecptr srca = m68k_areg(regs, srcreg);
43196: if ((srca & 1) != 0) {
43197: last_fault_for_exception_3 = srca;
43198: last_op_for_exception_3 = opcode;
43199: last_addr_for_exception_3 = m68k_getpc() + 2;
43200: Exception(3, 0, M68000_EXC_SRC_CPU);
43201: goto endlabel2568;
43202: }
43203: {{ uae_s32 src = get_long(srca);
43204: m68k_areg(regs, srcreg) += 4;
43205: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
43206: BusCyclePenalty += 2;
43207: if ((dsta & 1) != 0) {
43208: last_fault_for_exception_3 = dsta;
43209: last_op_for_exception_3 = opcode;
43210: last_addr_for_exception_3 = m68k_getpc() + 4;
43211: Exception(3, 0, M68000_EXC_SRC_CPU);
43212: goto endlabel2568;
43213: }
43214: { CLEAR_CZNV;
43215: SET_ZFLG (((uae_s32)(src)) == 0);
43216: SET_NFLG (((uae_s32)(src)) < 0);
43217: m68k_incpc(4);
43218: fill_prefetch_0 ();
43219: put_long(dsta,src);
43220: }}}}}}endlabel2568: ;
43221: return 26;
43222: }
43223: unsigned long REGPARAM2 CPUFUNC(op_21a0_5)(uae_u32 opcode) /* MOVE */
43224: {
43225: uae_u32 srcreg = (opcode & 7);
43226: uae_u32 dstreg = (opcode >> 9) & 7;
43227: OpcodeFamily = 30; CurrentInstrCycles = 28;
43228: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
43229: if ((srca & 1) != 0) {
43230: last_fault_for_exception_3 = srca;
43231: last_op_for_exception_3 = opcode;
43232: last_addr_for_exception_3 = m68k_getpc() + 2;
43233: Exception(3, 0, M68000_EXC_SRC_CPU);
43234: goto endlabel2569;
43235: }
43236: {{ uae_s32 src = get_long(srca);
43237: m68k_areg (regs, srcreg) = srca;
43238: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
43239: BusCyclePenalty += 2;
43240: if ((dsta & 1) != 0) {
43241: last_fault_for_exception_3 = dsta;
43242: last_op_for_exception_3 = opcode;
43243: last_addr_for_exception_3 = m68k_getpc() + 4;
43244: Exception(3, 0, M68000_EXC_SRC_CPU);
43245: goto endlabel2569;
43246: }
43247: { CLEAR_CZNV;
43248: SET_ZFLG (((uae_s32)(src)) == 0);
43249: SET_NFLG (((uae_s32)(src)) < 0);
43250: m68k_incpc(4);
43251: fill_prefetch_0 ();
43252: put_long(dsta,src);
43253: }}}}}}endlabel2569: ;
43254: return 28;
43255: }
43256: unsigned long REGPARAM2 CPUFUNC(op_21a8_5)(uae_u32 opcode) /* MOVE */
43257: {
43258: uae_u32 srcreg = (opcode & 7);
43259: uae_u32 dstreg = (opcode >> 9) & 7;
43260: OpcodeFamily = 30; CurrentInstrCycles = 30;
43261: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
43262: if ((srca & 1) != 0) {
43263: last_fault_for_exception_3 = srca;
43264: last_op_for_exception_3 = opcode;
43265: last_addr_for_exception_3 = m68k_getpc() + 4;
43266: Exception(3, 0, M68000_EXC_SRC_CPU);
43267: goto endlabel2570;
43268: }
43269: {{ uae_s32 src = get_long(srca);
43270: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
43271: BusCyclePenalty += 2;
43272: if ((dsta & 1) != 0) {
43273: last_fault_for_exception_3 = dsta;
43274: last_op_for_exception_3 = opcode;
43275: last_addr_for_exception_3 = m68k_getpc() + 6;
43276: Exception(3, 0, M68000_EXC_SRC_CPU);
43277: goto endlabel2570;
43278: }
43279: { CLEAR_CZNV;
43280: SET_ZFLG (((uae_s32)(src)) == 0);
43281: SET_NFLG (((uae_s32)(src)) < 0);
43282: m68k_incpc(6);
43283: fill_prefetch_0 ();
43284: put_long(dsta,src);
43285: }}}}}}endlabel2570: ;
43286: return 30;
43287: }
43288: unsigned long REGPARAM2 CPUFUNC(op_21b0_5)(uae_u32 opcode) /* MOVE */
43289: {
43290: uae_u32 srcreg = (opcode & 7);
43291: uae_u32 dstreg = (opcode >> 9) & 7;
43292: OpcodeFamily = 30; CurrentInstrCycles = 32;
43293: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
43294: BusCyclePenalty += 2;
43295: if ((srca & 1) != 0) {
43296: last_fault_for_exception_3 = srca;
43297: last_op_for_exception_3 = opcode;
43298: last_addr_for_exception_3 = m68k_getpc() + 4;
43299: Exception(3, 0, M68000_EXC_SRC_CPU);
43300: goto endlabel2571;
43301: }
43302: {{ uae_s32 src = get_long(srca);
43303: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
43304: BusCyclePenalty += 2;
43305: if ((dsta & 1) != 0) {
43306: last_fault_for_exception_3 = dsta;
43307: last_op_for_exception_3 = opcode;
43308: last_addr_for_exception_3 = m68k_getpc() + 6;
43309: Exception(3, 0, M68000_EXC_SRC_CPU);
43310: goto endlabel2571;
43311: }
43312: { CLEAR_CZNV;
43313: SET_ZFLG (((uae_s32)(src)) == 0);
43314: SET_NFLG (((uae_s32)(src)) < 0);
43315: m68k_incpc(6);
43316: fill_prefetch_0 ();
43317: put_long(dsta,src);
43318: }}}}}}endlabel2571: ;
43319: return 32;
43320: }
43321: unsigned long REGPARAM2 CPUFUNC(op_21b8_5)(uae_u32 opcode) /* MOVE */
43322: {
43323: uae_u32 dstreg = (opcode >> 9) & 7;
43324: OpcodeFamily = 30; CurrentInstrCycles = 30;
43325: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
43326: if ((srca & 1) != 0) {
43327: last_fault_for_exception_3 = srca;
43328: last_op_for_exception_3 = opcode;
43329: last_addr_for_exception_3 = m68k_getpc() + 4;
43330: Exception(3, 0, M68000_EXC_SRC_CPU);
43331: goto endlabel2572;
43332: }
43333: {{ uae_s32 src = get_long(srca);
43334: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
43335: BusCyclePenalty += 2;
43336: if ((dsta & 1) != 0) {
43337: last_fault_for_exception_3 = dsta;
43338: last_op_for_exception_3 = opcode;
43339: last_addr_for_exception_3 = m68k_getpc() + 6;
43340: Exception(3, 0, M68000_EXC_SRC_CPU);
43341: goto endlabel2572;
43342: }
43343: { CLEAR_CZNV;
43344: SET_ZFLG (((uae_s32)(src)) == 0);
43345: SET_NFLG (((uae_s32)(src)) < 0);
43346: m68k_incpc(6);
43347: fill_prefetch_0 ();
43348: put_long(dsta,src);
43349: }}}}}}endlabel2572: ;
43350: return 30;
43351: }
43352: unsigned long REGPARAM2 CPUFUNC(op_21b9_5)(uae_u32 opcode) /* MOVE */
43353: {
43354: uae_u32 dstreg = (opcode >> 9) & 7;
43355: OpcodeFamily = 30; CurrentInstrCycles = 34;
43356: {{ uaecptr srca = get_ilong_prefetch(2);
43357: if ((srca & 1) != 0) {
43358: last_fault_for_exception_3 = srca;
43359: last_op_for_exception_3 = opcode;
43360: last_addr_for_exception_3 = m68k_getpc() + 6;
43361: Exception(3, 0, M68000_EXC_SRC_CPU);
43362: goto endlabel2573;
43363: }
43364: {{ uae_s32 src = get_long(srca);
43365: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(6));
43366: BusCyclePenalty += 2;
43367: if ((dsta & 1) != 0) {
43368: last_fault_for_exception_3 = dsta;
43369: last_op_for_exception_3 = opcode;
43370: last_addr_for_exception_3 = m68k_getpc() + 8;
43371: Exception(3, 0, M68000_EXC_SRC_CPU);
43372: goto endlabel2573;
43373: }
43374: { CLEAR_CZNV;
43375: SET_ZFLG (((uae_s32)(src)) == 0);
43376: SET_NFLG (((uae_s32)(src)) < 0);
43377: m68k_incpc(8);
43378: fill_prefetch_0 ();
43379: put_long(dsta,src);
43380: }}}}}}endlabel2573: ;
43381: return 34;
43382: }
43383: unsigned long REGPARAM2 CPUFUNC(op_21ba_5)(uae_u32 opcode) /* MOVE */
43384: {
43385: uae_u32 dstreg = (opcode >> 9) & 7;
43386: OpcodeFamily = 30; CurrentInstrCycles = 30;
43387: {{ uaecptr srca = m68k_getpc () + 2;
43388: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
43389: if ((srca & 1) != 0) {
43390: last_fault_for_exception_3 = srca;
43391: last_op_for_exception_3 = opcode;
43392: last_addr_for_exception_3 = m68k_getpc() + 4;
43393: Exception(3, 0, M68000_EXC_SRC_CPU);
43394: goto endlabel2574;
43395: }
43396: {{ uae_s32 src = get_long(srca);
43397: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
43398: BusCyclePenalty += 2;
43399: if ((dsta & 1) != 0) {
43400: last_fault_for_exception_3 = dsta;
43401: last_op_for_exception_3 = opcode;
43402: last_addr_for_exception_3 = m68k_getpc() + 6;
43403: Exception(3, 0, M68000_EXC_SRC_CPU);
43404: goto endlabel2574;
43405: }
43406: { CLEAR_CZNV;
43407: SET_ZFLG (((uae_s32)(src)) == 0);
43408: SET_NFLG (((uae_s32)(src)) < 0);
43409: m68k_incpc(6);
43410: fill_prefetch_0 ();
43411: put_long(dsta,src);
43412: }}}}}}endlabel2574: ;
43413: return 30;
43414: }
43415: unsigned long REGPARAM2 CPUFUNC(op_21bb_5)(uae_u32 opcode) /* MOVE */
43416: {
43417: uae_u32 dstreg = (opcode >> 9) & 7;
43418: OpcodeFamily = 30; CurrentInstrCycles = 32;
43419: {{ uaecptr tmppc = m68k_getpc() + 2;
43420: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
43421: BusCyclePenalty += 2;
43422: if ((srca & 1) != 0) {
43423: last_fault_for_exception_3 = srca;
43424: last_op_for_exception_3 = opcode;
43425: last_addr_for_exception_3 = m68k_getpc() + 4;
43426: Exception(3, 0, M68000_EXC_SRC_CPU);
43427: goto endlabel2575;
43428: }
43429: {{ uae_s32 src = get_long(srca);
43430: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
43431: BusCyclePenalty += 2;
43432: if ((dsta & 1) != 0) {
43433: last_fault_for_exception_3 = dsta;
43434: last_op_for_exception_3 = opcode;
43435: last_addr_for_exception_3 = m68k_getpc() + 6;
43436: Exception(3, 0, M68000_EXC_SRC_CPU);
43437: goto endlabel2575;
43438: }
43439: { CLEAR_CZNV;
43440: SET_ZFLG (((uae_s32)(src)) == 0);
43441: SET_NFLG (((uae_s32)(src)) < 0);
43442: m68k_incpc(6);
43443: fill_prefetch_0 ();
43444: put_long(dsta,src);
43445: }}}}}}endlabel2575: ;
43446: return 32;
43447: }
43448: unsigned long REGPARAM2 CPUFUNC(op_21bc_5)(uae_u32 opcode) /* MOVE */
43449: {
43450: uae_u32 dstreg = (opcode >> 9) & 7;
43451: OpcodeFamily = 30; CurrentInstrCycles = 26;
43452: {{ uae_s32 src = get_ilong_prefetch(2);
43453: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(6));
43454: BusCyclePenalty += 2;
43455: if ((dsta & 1) != 0) {
43456: last_fault_for_exception_3 = dsta;
43457: last_op_for_exception_3 = opcode;
43458: last_addr_for_exception_3 = m68k_getpc() + 8;
43459: Exception(3, 0, M68000_EXC_SRC_CPU);
43460: goto endlabel2576;
43461: }
43462: { CLEAR_CZNV;
43463: SET_ZFLG (((uae_s32)(src)) == 0);
43464: SET_NFLG (((uae_s32)(src)) < 0);
43465: m68k_incpc(8);
43466: fill_prefetch_0 ();
43467: put_long(dsta,src);
43468: }}}}endlabel2576: ;
43469: return 26;
43470: }
43471: unsigned long REGPARAM2 CPUFUNC(op_21c0_5)(uae_u32 opcode) /* MOVE */
43472: {
43473: uae_u32 srcreg = (opcode & 7);
43474: OpcodeFamily = 30; CurrentInstrCycles = 16;
43475: {{ uae_s32 src = m68k_dreg(regs, srcreg);
43476: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
43477: if ((dsta & 1) != 0) {
43478: last_fault_for_exception_3 = dsta;
43479: last_op_for_exception_3 = opcode;
43480: last_addr_for_exception_3 = m68k_getpc() + 4;
43481: Exception(3, 0, M68000_EXC_SRC_CPU);
43482: goto endlabel2577;
43483: }
43484: { CLEAR_CZNV;
43485: SET_ZFLG (((uae_s32)(src)) == 0);
43486: SET_NFLG (((uae_s32)(src)) < 0);
43487: m68k_incpc(4);
43488: fill_prefetch_0 ();
43489: put_long(dsta,src);
43490: }}}}endlabel2577: ;
43491: return 16;
43492: }
43493: unsigned long REGPARAM2 CPUFUNC(op_21c8_5)(uae_u32 opcode) /* MOVE */
43494: {
43495: uae_u32 srcreg = (opcode & 7);
43496: OpcodeFamily = 30; CurrentInstrCycles = 16;
43497: {{ uae_s32 src = m68k_areg(regs, srcreg);
43498: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
43499: if ((dsta & 1) != 0) {
43500: last_fault_for_exception_3 = dsta;
43501: last_op_for_exception_3 = opcode;
43502: last_addr_for_exception_3 = m68k_getpc() + 4;
43503: Exception(3, 0, M68000_EXC_SRC_CPU);
43504: goto endlabel2578;
43505: }
43506: { CLEAR_CZNV;
43507: SET_ZFLG (((uae_s32)(src)) == 0);
43508: SET_NFLG (((uae_s32)(src)) < 0);
43509: m68k_incpc(4);
43510: fill_prefetch_0 ();
43511: put_long(dsta,src);
43512: }}}}endlabel2578: ;
43513: return 16;
43514: }
43515: unsigned long REGPARAM2 CPUFUNC(op_21d0_5)(uae_u32 opcode) /* MOVE */
43516: {
43517: uae_u32 srcreg = (opcode & 7);
43518: OpcodeFamily = 30; CurrentInstrCycles = 24;
43519: {{ uaecptr srca = m68k_areg(regs, srcreg);
43520: if ((srca & 1) != 0) {
43521: last_fault_for_exception_3 = srca;
43522: last_op_for_exception_3 = opcode;
43523: last_addr_for_exception_3 = m68k_getpc() + 2;
43524: Exception(3, 0, M68000_EXC_SRC_CPU);
43525: goto endlabel2579;
43526: }
43527: {{ uae_s32 src = get_long(srca);
43528: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
43529: if ((dsta & 1) != 0) {
43530: last_fault_for_exception_3 = dsta;
43531: last_op_for_exception_3 = opcode;
43532: last_addr_for_exception_3 = m68k_getpc() + 4;
43533: Exception(3, 0, M68000_EXC_SRC_CPU);
43534: goto endlabel2579;
43535: }
43536: { CLEAR_CZNV;
43537: SET_ZFLG (((uae_s32)(src)) == 0);
43538: SET_NFLG (((uae_s32)(src)) < 0);
43539: m68k_incpc(4);
43540: fill_prefetch_0 ();
43541: put_long(dsta,src);
43542: }}}}}}endlabel2579: ;
43543: return 24;
43544: }
43545: unsigned long REGPARAM2 CPUFUNC(op_21d8_5)(uae_u32 opcode) /* MOVE */
43546: {
43547: uae_u32 srcreg = (opcode & 7);
43548: OpcodeFamily = 30; CurrentInstrCycles = 24;
43549: {{ uaecptr srca = m68k_areg(regs, srcreg);
43550: if ((srca & 1) != 0) {
43551: last_fault_for_exception_3 = srca;
43552: last_op_for_exception_3 = opcode;
43553: last_addr_for_exception_3 = m68k_getpc() + 2;
43554: Exception(3, 0, M68000_EXC_SRC_CPU);
43555: goto endlabel2580;
43556: }
43557: {{ uae_s32 src = get_long(srca);
43558: m68k_areg(regs, srcreg) += 4;
43559: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
43560: if ((dsta & 1) != 0) {
43561: last_fault_for_exception_3 = dsta;
43562: last_op_for_exception_3 = opcode;
43563: last_addr_for_exception_3 = m68k_getpc() + 4;
43564: Exception(3, 0, M68000_EXC_SRC_CPU);
43565: goto endlabel2580;
43566: }
43567: { CLEAR_CZNV;
43568: SET_ZFLG (((uae_s32)(src)) == 0);
43569: SET_NFLG (((uae_s32)(src)) < 0);
43570: m68k_incpc(4);
43571: fill_prefetch_0 ();
43572: put_long(dsta,src);
43573: }}}}}}endlabel2580: ;
43574: return 24;
43575: }
43576: unsigned long REGPARAM2 CPUFUNC(op_21e0_5)(uae_u32 opcode) /* MOVE */
43577: {
43578: uae_u32 srcreg = (opcode & 7);
43579: OpcodeFamily = 30; CurrentInstrCycles = 26;
43580: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
43581: if ((srca & 1) != 0) {
43582: last_fault_for_exception_3 = srca;
43583: last_op_for_exception_3 = opcode;
43584: last_addr_for_exception_3 = m68k_getpc() + 2;
43585: Exception(3, 0, M68000_EXC_SRC_CPU);
43586: goto endlabel2581;
43587: }
43588: {{ uae_s32 src = get_long(srca);
43589: m68k_areg (regs, srcreg) = srca;
43590: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
43591: if ((dsta & 1) != 0) {
43592: last_fault_for_exception_3 = dsta;
43593: last_op_for_exception_3 = opcode;
43594: last_addr_for_exception_3 = m68k_getpc() + 4;
43595: Exception(3, 0, M68000_EXC_SRC_CPU);
43596: goto endlabel2581;
43597: }
43598: { CLEAR_CZNV;
43599: SET_ZFLG (((uae_s32)(src)) == 0);
43600: SET_NFLG (((uae_s32)(src)) < 0);
43601: m68k_incpc(4);
43602: fill_prefetch_0 ();
43603: put_long(dsta,src);
43604: }}}}}}endlabel2581: ;
43605: return 26;
43606: }
43607: unsigned long REGPARAM2 CPUFUNC(op_21e8_5)(uae_u32 opcode) /* MOVE */
43608: {
43609: uae_u32 srcreg = (opcode & 7);
43610: OpcodeFamily = 30; CurrentInstrCycles = 28;
43611: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
43612: if ((srca & 1) != 0) {
43613: last_fault_for_exception_3 = srca;
43614: last_op_for_exception_3 = opcode;
43615: last_addr_for_exception_3 = m68k_getpc() + 4;
43616: Exception(3, 0, M68000_EXC_SRC_CPU);
43617: goto endlabel2582;
43618: }
43619: {{ uae_s32 src = get_long(srca);
43620: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
43621: if ((dsta & 1) != 0) {
43622: last_fault_for_exception_3 = dsta;
43623: last_op_for_exception_3 = opcode;
43624: last_addr_for_exception_3 = m68k_getpc() + 6;
43625: Exception(3, 0, M68000_EXC_SRC_CPU);
43626: goto endlabel2582;
43627: }
43628: { CLEAR_CZNV;
43629: SET_ZFLG (((uae_s32)(src)) == 0);
43630: SET_NFLG (((uae_s32)(src)) < 0);
43631: m68k_incpc(6);
43632: fill_prefetch_0 ();
43633: put_long(dsta,src);
43634: }}}}}}endlabel2582: ;
43635: return 28;
43636: }
43637: unsigned long REGPARAM2 CPUFUNC(op_21f0_5)(uae_u32 opcode) /* MOVE */
43638: {
43639: uae_u32 srcreg = (opcode & 7);
43640: OpcodeFamily = 30; CurrentInstrCycles = 30;
43641: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
43642: BusCyclePenalty += 2;
43643: if ((srca & 1) != 0) {
43644: last_fault_for_exception_3 = srca;
43645: last_op_for_exception_3 = opcode;
43646: last_addr_for_exception_3 = m68k_getpc() + 4;
43647: Exception(3, 0, M68000_EXC_SRC_CPU);
43648: goto endlabel2583;
43649: }
43650: {{ uae_s32 src = get_long(srca);
43651: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
43652: if ((dsta & 1) != 0) {
43653: last_fault_for_exception_3 = dsta;
43654: last_op_for_exception_3 = opcode;
43655: last_addr_for_exception_3 = m68k_getpc() + 6;
43656: Exception(3, 0, M68000_EXC_SRC_CPU);
43657: goto endlabel2583;
43658: }
43659: { CLEAR_CZNV;
43660: SET_ZFLG (((uae_s32)(src)) == 0);
43661: SET_NFLG (((uae_s32)(src)) < 0);
43662: m68k_incpc(6);
43663: fill_prefetch_0 ();
43664: put_long(dsta,src);
43665: }}}}}}endlabel2583: ;
43666: return 30;
43667: }
43668: unsigned long REGPARAM2 CPUFUNC(op_21f8_5)(uae_u32 opcode) /* MOVE */
43669: {
43670: OpcodeFamily = 30; CurrentInstrCycles = 28;
43671: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
43672: if ((srca & 1) != 0) {
43673: last_fault_for_exception_3 = srca;
43674: last_op_for_exception_3 = opcode;
43675: last_addr_for_exception_3 = m68k_getpc() + 4;
43676: Exception(3, 0, M68000_EXC_SRC_CPU);
43677: goto endlabel2584;
43678: }
43679: {{ uae_s32 src = get_long(srca);
43680: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
43681: if ((dsta & 1) != 0) {
43682: last_fault_for_exception_3 = dsta;
43683: last_op_for_exception_3 = opcode;
43684: last_addr_for_exception_3 = m68k_getpc() + 6;
43685: Exception(3, 0, M68000_EXC_SRC_CPU);
43686: goto endlabel2584;
43687: }
43688: { CLEAR_CZNV;
43689: SET_ZFLG (((uae_s32)(src)) == 0);
43690: SET_NFLG (((uae_s32)(src)) < 0);
43691: m68k_incpc(6);
43692: fill_prefetch_0 ();
43693: put_long(dsta,src);
43694: }}}}}}endlabel2584: ;
43695: return 28;
43696: }
43697: unsigned long REGPARAM2 CPUFUNC(op_21f9_5)(uae_u32 opcode) /* MOVE */
43698: {
43699: OpcodeFamily = 30; CurrentInstrCycles = 32;
43700: {{ uaecptr srca = get_ilong_prefetch(2);
43701: if ((srca & 1) != 0) {
43702: last_fault_for_exception_3 = srca;
43703: last_op_for_exception_3 = opcode;
43704: last_addr_for_exception_3 = m68k_getpc() + 6;
43705: Exception(3, 0, M68000_EXC_SRC_CPU);
43706: goto endlabel2585;
43707: }
43708: {{ uae_s32 src = get_long(srca);
43709: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(6);
43710: if ((dsta & 1) != 0) {
43711: last_fault_for_exception_3 = dsta;
43712: last_op_for_exception_3 = opcode;
43713: last_addr_for_exception_3 = m68k_getpc() + 8;
43714: Exception(3, 0, M68000_EXC_SRC_CPU);
43715: goto endlabel2585;
43716: }
43717: { CLEAR_CZNV;
43718: SET_ZFLG (((uae_s32)(src)) == 0);
43719: SET_NFLG (((uae_s32)(src)) < 0);
43720: m68k_incpc(8);
43721: fill_prefetch_0 ();
43722: put_long(dsta,src);
43723: }}}}}}endlabel2585: ;
43724: return 32;
43725: }
43726: unsigned long REGPARAM2 CPUFUNC(op_21fa_5)(uae_u32 opcode) /* MOVE */
43727: {
43728: OpcodeFamily = 30; CurrentInstrCycles = 28;
43729: {{ uaecptr srca = m68k_getpc () + 2;
43730: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
43731: if ((srca & 1) != 0) {
43732: last_fault_for_exception_3 = srca;
43733: last_op_for_exception_3 = opcode;
43734: last_addr_for_exception_3 = m68k_getpc() + 4;
43735: Exception(3, 0, M68000_EXC_SRC_CPU);
43736: goto endlabel2586;
43737: }
43738: {{ uae_s32 src = get_long(srca);
43739: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
43740: if ((dsta & 1) != 0) {
43741: last_fault_for_exception_3 = dsta;
43742: last_op_for_exception_3 = opcode;
43743: last_addr_for_exception_3 = m68k_getpc() + 6;
43744: Exception(3, 0, M68000_EXC_SRC_CPU);
43745: goto endlabel2586;
43746: }
43747: { CLEAR_CZNV;
43748: SET_ZFLG (((uae_s32)(src)) == 0);
43749: SET_NFLG (((uae_s32)(src)) < 0);
43750: m68k_incpc(6);
43751: fill_prefetch_0 ();
43752: put_long(dsta,src);
43753: }}}}}}endlabel2586: ;
43754: return 28;
43755: }
43756: unsigned long REGPARAM2 CPUFUNC(op_21fb_5)(uae_u32 opcode) /* MOVE */
43757: {
43758: OpcodeFamily = 30; CurrentInstrCycles = 30;
43759: {{ uaecptr tmppc = m68k_getpc() + 2;
43760: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
43761: BusCyclePenalty += 2;
43762: if ((srca & 1) != 0) {
43763: last_fault_for_exception_3 = srca;
43764: last_op_for_exception_3 = opcode;
43765: last_addr_for_exception_3 = m68k_getpc() + 4;
43766: Exception(3, 0, M68000_EXC_SRC_CPU);
43767: goto endlabel2587;
43768: }
43769: {{ uae_s32 src = get_long(srca);
43770: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
43771: if ((dsta & 1) != 0) {
43772: last_fault_for_exception_3 = dsta;
43773: last_op_for_exception_3 = opcode;
43774: last_addr_for_exception_3 = m68k_getpc() + 6;
43775: Exception(3, 0, M68000_EXC_SRC_CPU);
43776: goto endlabel2587;
43777: }
43778: { CLEAR_CZNV;
43779: SET_ZFLG (((uae_s32)(src)) == 0);
43780: SET_NFLG (((uae_s32)(src)) < 0);
43781: m68k_incpc(6);
43782: fill_prefetch_0 ();
43783: put_long(dsta,src);
43784: }}}}}}endlabel2587: ;
43785: return 30;
43786: }
43787: unsigned long REGPARAM2 CPUFUNC(op_21fc_5)(uae_u32 opcode) /* MOVE */
43788: {
43789: OpcodeFamily = 30; CurrentInstrCycles = 24;
43790: {{ uae_s32 src = get_ilong_prefetch(2);
43791: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(6);
43792: if ((dsta & 1) != 0) {
43793: last_fault_for_exception_3 = dsta;
43794: last_op_for_exception_3 = opcode;
43795: last_addr_for_exception_3 = m68k_getpc() + 8;
43796: Exception(3, 0, M68000_EXC_SRC_CPU);
43797: goto endlabel2588;
43798: }
43799: { CLEAR_CZNV;
43800: SET_ZFLG (((uae_s32)(src)) == 0);
43801: SET_NFLG (((uae_s32)(src)) < 0);
43802: m68k_incpc(8);
43803: fill_prefetch_0 ();
43804: put_long(dsta,src);
43805: }}}}endlabel2588: ;
43806: return 24;
43807: }
43808: unsigned long REGPARAM2 CPUFUNC(op_23c0_5)(uae_u32 opcode) /* MOVE */
43809: {
43810: uae_u32 srcreg = (opcode & 7);
43811: OpcodeFamily = 30; CurrentInstrCycles = 20;
43812: {{ uae_s32 src = m68k_dreg(regs, srcreg);
43813: { uaecptr dsta = get_ilong_prefetch(2);
43814: if ((dsta & 1) != 0) {
43815: last_fault_for_exception_3 = dsta;
43816: last_op_for_exception_3 = opcode;
43817: last_addr_for_exception_3 = m68k_getpc() + 6;
43818: Exception(3, 0, M68000_EXC_SRC_CPU);
43819: goto endlabel2589;
43820: }
43821: { CLEAR_CZNV;
43822: SET_ZFLG (((uae_s32)(src)) == 0);
43823: SET_NFLG (((uae_s32)(src)) < 0);
43824: m68k_incpc(6);
43825: fill_prefetch_0 ();
43826: put_long(dsta,src);
43827: }}}}endlabel2589: ;
43828: return 20;
43829: }
43830: unsigned long REGPARAM2 CPUFUNC(op_23c8_5)(uae_u32 opcode) /* MOVE */
43831: {
43832: uae_u32 srcreg = (opcode & 7);
43833: OpcodeFamily = 30; CurrentInstrCycles = 20;
43834: {{ uae_s32 src = m68k_areg(regs, srcreg);
43835: { uaecptr dsta = get_ilong_prefetch(2);
43836: if ((dsta & 1) != 0) {
43837: last_fault_for_exception_3 = dsta;
43838: last_op_for_exception_3 = opcode;
43839: last_addr_for_exception_3 = m68k_getpc() + 6;
43840: Exception(3, 0, M68000_EXC_SRC_CPU);
43841: goto endlabel2590;
43842: }
43843: { CLEAR_CZNV;
43844: SET_ZFLG (((uae_s32)(src)) == 0);
43845: SET_NFLG (((uae_s32)(src)) < 0);
43846: m68k_incpc(6);
43847: fill_prefetch_0 ();
43848: put_long(dsta,src);
43849: }}}}endlabel2590: ;
43850: return 20;
43851: }
43852: unsigned long REGPARAM2 CPUFUNC(op_23d0_5)(uae_u32 opcode) /* MOVE */
43853: {
43854: uae_u32 srcreg = (opcode & 7);
43855: OpcodeFamily = 30; CurrentInstrCycles = 28;
43856: {{ uaecptr srca = m68k_areg(regs, srcreg);
43857: if ((srca & 1) != 0) {
43858: last_fault_for_exception_3 = srca;
43859: last_op_for_exception_3 = opcode;
43860: last_addr_for_exception_3 = m68k_getpc() + 2;
43861: Exception(3, 0, M68000_EXC_SRC_CPU);
43862: goto endlabel2591;
43863: }
43864: {{ uae_s32 src = get_long(srca);
43865: { uaecptr dsta = get_ilong_prefetch(2);
43866: if ((dsta & 1) != 0) {
43867: last_fault_for_exception_3 = dsta;
43868: last_op_for_exception_3 = opcode;
43869: last_addr_for_exception_3 = m68k_getpc() + 6;
43870: Exception(3, 0, M68000_EXC_SRC_CPU);
43871: goto endlabel2591;
43872: }
43873: { CLEAR_CZNV;
43874: SET_ZFLG (((uae_s32)(src)) == 0);
43875: SET_NFLG (((uae_s32)(src)) < 0);
43876: m68k_incpc(6);
43877: fill_prefetch_0 ();
43878: put_long(dsta,src);
43879: }}}}}}endlabel2591: ;
43880: return 28;
43881: }
43882: unsigned long REGPARAM2 CPUFUNC(op_23d8_5)(uae_u32 opcode) /* MOVE */
43883: {
43884: uae_u32 srcreg = (opcode & 7);
43885: OpcodeFamily = 30; CurrentInstrCycles = 28;
43886: {{ uaecptr srca = m68k_areg(regs, srcreg);
43887: if ((srca & 1) != 0) {
43888: last_fault_for_exception_3 = srca;
43889: last_op_for_exception_3 = opcode;
43890: last_addr_for_exception_3 = m68k_getpc() + 2;
43891: Exception(3, 0, M68000_EXC_SRC_CPU);
43892: goto endlabel2592;
43893: }
43894: {{ uae_s32 src = get_long(srca);
43895: m68k_areg(regs, srcreg) += 4;
43896: { uaecptr dsta = get_ilong_prefetch(2);
43897: if ((dsta & 1) != 0) {
43898: last_fault_for_exception_3 = dsta;
43899: last_op_for_exception_3 = opcode;
43900: last_addr_for_exception_3 = m68k_getpc() + 6;
43901: Exception(3, 0, M68000_EXC_SRC_CPU);
43902: goto endlabel2592;
43903: }
43904: { CLEAR_CZNV;
43905: SET_ZFLG (((uae_s32)(src)) == 0);
43906: SET_NFLG (((uae_s32)(src)) < 0);
43907: m68k_incpc(6);
43908: fill_prefetch_0 ();
43909: put_long(dsta,src);
43910: }}}}}}endlabel2592: ;
43911: return 28;
43912: }
43913: unsigned long REGPARAM2 CPUFUNC(op_23e0_5)(uae_u32 opcode) /* MOVE */
43914: {
43915: uae_u32 srcreg = (opcode & 7);
43916: OpcodeFamily = 30; CurrentInstrCycles = 30;
43917: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
43918: if ((srca & 1) != 0) {
43919: last_fault_for_exception_3 = srca;
43920: last_op_for_exception_3 = opcode;
43921: last_addr_for_exception_3 = m68k_getpc() + 2;
43922: Exception(3, 0, M68000_EXC_SRC_CPU);
43923: goto endlabel2593;
43924: }
43925: {{ uae_s32 src = get_long(srca);
43926: m68k_areg (regs, srcreg) = srca;
43927: { uaecptr dsta = get_ilong_prefetch(2);
43928: if ((dsta & 1) != 0) {
43929: last_fault_for_exception_3 = dsta;
43930: last_op_for_exception_3 = opcode;
43931: last_addr_for_exception_3 = m68k_getpc() + 6;
43932: Exception(3, 0, M68000_EXC_SRC_CPU);
43933: goto endlabel2593;
43934: }
43935: { CLEAR_CZNV;
43936: SET_ZFLG (((uae_s32)(src)) == 0);
43937: SET_NFLG (((uae_s32)(src)) < 0);
43938: m68k_incpc(6);
43939: fill_prefetch_0 ();
43940: put_long(dsta,src);
43941: }}}}}}endlabel2593: ;
43942: return 30;
43943: }
43944: unsigned long REGPARAM2 CPUFUNC(op_23e8_5)(uae_u32 opcode) /* MOVE */
43945: {
43946: uae_u32 srcreg = (opcode & 7);
43947: OpcodeFamily = 30; CurrentInstrCycles = 32;
43948: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
43949: if ((srca & 1) != 0) {
43950: last_fault_for_exception_3 = srca;
43951: last_op_for_exception_3 = opcode;
43952: last_addr_for_exception_3 = m68k_getpc() + 4;
43953: Exception(3, 0, M68000_EXC_SRC_CPU);
43954: goto endlabel2594;
43955: }
43956: {{ uae_s32 src = get_long(srca);
43957: { uaecptr dsta = get_ilong_prefetch(4);
43958: if ((dsta & 1) != 0) {
43959: last_fault_for_exception_3 = dsta;
43960: last_op_for_exception_3 = opcode;
43961: last_addr_for_exception_3 = m68k_getpc() + 8;
43962: Exception(3, 0, M68000_EXC_SRC_CPU);
43963: goto endlabel2594;
43964: }
43965: { CLEAR_CZNV;
43966: SET_ZFLG (((uae_s32)(src)) == 0);
43967: SET_NFLG (((uae_s32)(src)) < 0);
43968: m68k_incpc(8);
43969: fill_prefetch_0 ();
43970: put_long(dsta,src);
43971: }}}}}}endlabel2594: ;
43972: return 32;
43973: }
43974: unsigned long REGPARAM2 CPUFUNC(op_23f0_5)(uae_u32 opcode) /* MOVE */
43975: {
43976: uae_u32 srcreg = (opcode & 7);
43977: OpcodeFamily = 30; CurrentInstrCycles = 34;
43978: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
43979: BusCyclePenalty += 2;
43980: if ((srca & 1) != 0) {
43981: last_fault_for_exception_3 = srca;
43982: last_op_for_exception_3 = opcode;
43983: last_addr_for_exception_3 = m68k_getpc() + 4;
43984: Exception(3, 0, M68000_EXC_SRC_CPU);
43985: goto endlabel2595;
43986: }
43987: {{ uae_s32 src = get_long(srca);
43988: { uaecptr dsta = get_ilong_prefetch(4);
43989: if ((dsta & 1) != 0) {
43990: last_fault_for_exception_3 = dsta;
43991: last_op_for_exception_3 = opcode;
43992: last_addr_for_exception_3 = m68k_getpc() + 8;
43993: Exception(3, 0, M68000_EXC_SRC_CPU);
43994: goto endlabel2595;
43995: }
43996: { CLEAR_CZNV;
43997: SET_ZFLG (((uae_s32)(src)) == 0);
43998: SET_NFLG (((uae_s32)(src)) < 0);
43999: m68k_incpc(8);
44000: fill_prefetch_0 ();
44001: put_long(dsta,src);
44002: }}}}}}endlabel2595: ;
44003: return 34;
44004: }
44005: unsigned long REGPARAM2 CPUFUNC(op_23f8_5)(uae_u32 opcode) /* MOVE */
44006: {
44007: OpcodeFamily = 30; CurrentInstrCycles = 32;
44008: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
44009: if ((srca & 1) != 0) {
44010: last_fault_for_exception_3 = srca;
44011: last_op_for_exception_3 = opcode;
44012: last_addr_for_exception_3 = m68k_getpc() + 4;
44013: Exception(3, 0, M68000_EXC_SRC_CPU);
44014: goto endlabel2596;
44015: }
44016: {{ uae_s32 src = get_long(srca);
44017: { uaecptr dsta = get_ilong_prefetch(4);
44018: if ((dsta & 1) != 0) {
44019: last_fault_for_exception_3 = dsta;
44020: last_op_for_exception_3 = opcode;
44021: last_addr_for_exception_3 = m68k_getpc() + 8;
44022: Exception(3, 0, M68000_EXC_SRC_CPU);
44023: goto endlabel2596;
44024: }
44025: { CLEAR_CZNV;
44026: SET_ZFLG (((uae_s32)(src)) == 0);
44027: SET_NFLG (((uae_s32)(src)) < 0);
44028: m68k_incpc(8);
44029: fill_prefetch_0 ();
44030: put_long(dsta,src);
44031: }}}}}}endlabel2596: ;
44032: return 32;
44033: }
44034: unsigned long REGPARAM2 CPUFUNC(op_23f9_5)(uae_u32 opcode) /* MOVE */
44035: {
44036: OpcodeFamily = 30; CurrentInstrCycles = 36;
44037: {{ uaecptr srca = get_ilong_prefetch(2);
44038: if ((srca & 1) != 0) {
44039: last_fault_for_exception_3 = srca;
44040: last_op_for_exception_3 = opcode;
44041: last_addr_for_exception_3 = m68k_getpc() + 6;
44042: Exception(3, 0, M68000_EXC_SRC_CPU);
44043: goto endlabel2597;
44044: }
44045: {{ uae_s32 src = get_long(srca);
44046: { uaecptr dsta = get_ilong_prefetch(6);
44047: if ((dsta & 1) != 0) {
44048: last_fault_for_exception_3 = dsta;
44049: last_op_for_exception_3 = opcode;
44050: last_addr_for_exception_3 = m68k_getpc() + 10;
44051: Exception(3, 0, M68000_EXC_SRC_CPU);
44052: goto endlabel2597;
44053: }
44054: { CLEAR_CZNV;
44055: SET_ZFLG (((uae_s32)(src)) == 0);
44056: SET_NFLG (((uae_s32)(src)) < 0);
44057: m68k_incpc(10);
44058: fill_prefetch_0 ();
44059: put_long(dsta,src);
44060: }}}}}}endlabel2597: ;
44061: return 36;
44062: }
44063: unsigned long REGPARAM2 CPUFUNC(op_23fa_5)(uae_u32 opcode) /* MOVE */
44064: {
44065: OpcodeFamily = 30; CurrentInstrCycles = 32;
44066: {{ uaecptr srca = m68k_getpc () + 2;
44067: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
44068: if ((srca & 1) != 0) {
44069: last_fault_for_exception_3 = srca;
44070: last_op_for_exception_3 = opcode;
44071: last_addr_for_exception_3 = m68k_getpc() + 4;
44072: Exception(3, 0, M68000_EXC_SRC_CPU);
44073: goto endlabel2598;
44074: }
44075: {{ uae_s32 src = get_long(srca);
44076: { uaecptr dsta = get_ilong_prefetch(4);
44077: if ((dsta & 1) != 0) {
44078: last_fault_for_exception_3 = dsta;
44079: last_op_for_exception_3 = opcode;
44080: last_addr_for_exception_3 = m68k_getpc() + 8;
44081: Exception(3, 0, M68000_EXC_SRC_CPU);
44082: goto endlabel2598;
44083: }
44084: { CLEAR_CZNV;
44085: SET_ZFLG (((uae_s32)(src)) == 0);
44086: SET_NFLG (((uae_s32)(src)) < 0);
44087: m68k_incpc(8);
44088: fill_prefetch_0 ();
44089: put_long(dsta,src);
44090: }}}}}}endlabel2598: ;
44091: return 32;
44092: }
44093: unsigned long REGPARAM2 CPUFUNC(op_23fb_5)(uae_u32 opcode) /* MOVE */
44094: {
44095: OpcodeFamily = 30; CurrentInstrCycles = 34;
44096: {{ uaecptr tmppc = m68k_getpc() + 2;
44097: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
44098: BusCyclePenalty += 2;
44099: if ((srca & 1) != 0) {
44100: last_fault_for_exception_3 = srca;
44101: last_op_for_exception_3 = opcode;
44102: last_addr_for_exception_3 = m68k_getpc() + 4;
44103: Exception(3, 0, M68000_EXC_SRC_CPU);
44104: goto endlabel2599;
44105: }
44106: {{ uae_s32 src = get_long(srca);
44107: { uaecptr dsta = get_ilong_prefetch(4);
44108: if ((dsta & 1) != 0) {
44109: last_fault_for_exception_3 = dsta;
44110: last_op_for_exception_3 = opcode;
44111: last_addr_for_exception_3 = m68k_getpc() + 8;
44112: Exception(3, 0, M68000_EXC_SRC_CPU);
44113: goto endlabel2599;
44114: }
44115: { CLEAR_CZNV;
44116: SET_ZFLG (((uae_s32)(src)) == 0);
44117: SET_NFLG (((uae_s32)(src)) < 0);
44118: m68k_incpc(8);
44119: fill_prefetch_0 ();
44120: put_long(dsta,src);
44121: }}}}}}endlabel2599: ;
44122: return 34;
44123: }
44124: unsigned long REGPARAM2 CPUFUNC(op_23fc_5)(uae_u32 opcode) /* MOVE */
44125: {
44126: OpcodeFamily = 30; CurrentInstrCycles = 28;
44127: {{ uae_s32 src = get_ilong_prefetch(2);
44128: { uaecptr dsta = get_ilong_prefetch(6);
44129: if ((dsta & 1) != 0) {
44130: last_fault_for_exception_3 = dsta;
44131: last_op_for_exception_3 = opcode;
44132: last_addr_for_exception_3 = m68k_getpc() + 10;
44133: Exception(3, 0, M68000_EXC_SRC_CPU);
44134: goto endlabel2600;
44135: }
44136: { CLEAR_CZNV;
44137: SET_ZFLG (((uae_s32)(src)) == 0);
44138: SET_NFLG (((uae_s32)(src)) < 0);
44139: m68k_incpc(10);
44140: fill_prefetch_0 ();
44141: put_long(dsta,src);
44142: }}}}endlabel2600: ;
44143: return 28;
44144: }
44145: unsigned long REGPARAM2 CPUFUNC(op_3000_5)(uae_u32 opcode) /* MOVE */
44146: {
44147: uae_u32 srcreg = (opcode & 7);
44148: uae_u32 dstreg = (opcode >> 9) & 7;
44149: OpcodeFamily = 30; CurrentInstrCycles = 4;
44150: {{ uae_s16 src = m68k_dreg(regs, srcreg);
44151: { CLEAR_CZNV;
44152: SET_ZFLG (((uae_s16)(src)) == 0);
44153: SET_NFLG (((uae_s16)(src)) < 0);
44154: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
44155: }}}m68k_incpc(2);
44156: fill_prefetch_2 ();
44157: return 4;
44158: }
44159: unsigned long REGPARAM2 CPUFUNC(op_3008_5)(uae_u32 opcode) /* MOVE */
44160: {
44161: uae_u32 srcreg = (opcode & 7);
44162: uae_u32 dstreg = (opcode >> 9) & 7;
44163: OpcodeFamily = 30; CurrentInstrCycles = 4;
44164: {{ uae_s16 src = m68k_areg(regs, srcreg);
44165: { CLEAR_CZNV;
44166: SET_ZFLG (((uae_s16)(src)) == 0);
44167: SET_NFLG (((uae_s16)(src)) < 0);
44168: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
44169: }}}m68k_incpc(2);
44170: fill_prefetch_2 ();
44171: return 4;
44172: }
44173: unsigned long REGPARAM2 CPUFUNC(op_3010_5)(uae_u32 opcode) /* MOVE */
44174: {
44175: uae_u32 srcreg = (opcode & 7);
44176: uae_u32 dstreg = (opcode >> 9) & 7;
44177: OpcodeFamily = 30; CurrentInstrCycles = 8;
44178: {{ uaecptr srca = m68k_areg(regs, srcreg);
44179: if ((srca & 1) != 0) {
44180: last_fault_for_exception_3 = srca;
44181: last_op_for_exception_3 = opcode;
44182: last_addr_for_exception_3 = m68k_getpc() + 2;
44183: Exception(3, 0, M68000_EXC_SRC_CPU);
44184: goto endlabel2603;
44185: }
44186: {{ uae_s16 src = get_word(srca);
44187: { CLEAR_CZNV;
44188: SET_ZFLG (((uae_s16)(src)) == 0);
44189: SET_NFLG (((uae_s16)(src)) < 0);
44190: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
44191: }}}}}m68k_incpc(2);
44192: fill_prefetch_2 ();
44193: endlabel2603: ;
44194: return 8;
44195: }
44196: unsigned long REGPARAM2 CPUFUNC(op_3018_5)(uae_u32 opcode) /* MOVE */
44197: {
44198: uae_u32 srcreg = (opcode & 7);
44199: uae_u32 dstreg = (opcode >> 9) & 7;
44200: OpcodeFamily = 30; CurrentInstrCycles = 8;
44201: {{ uaecptr srca = m68k_areg(regs, srcreg);
44202: if ((srca & 1) != 0) {
44203: last_fault_for_exception_3 = srca;
44204: last_op_for_exception_3 = opcode;
44205: last_addr_for_exception_3 = m68k_getpc() + 2;
44206: Exception(3, 0, M68000_EXC_SRC_CPU);
44207: goto endlabel2604;
44208: }
44209: {{ uae_s16 src = get_word(srca);
44210: m68k_areg(regs, srcreg) += 2;
44211: { CLEAR_CZNV;
44212: SET_ZFLG (((uae_s16)(src)) == 0);
44213: SET_NFLG (((uae_s16)(src)) < 0);
44214: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
44215: }}}}}m68k_incpc(2);
44216: fill_prefetch_2 ();
44217: endlabel2604: ;
44218: return 8;
44219: }
44220: unsigned long REGPARAM2 CPUFUNC(op_3020_5)(uae_u32 opcode) /* MOVE */
44221: {
44222: uae_u32 srcreg = (opcode & 7);
44223: uae_u32 dstreg = (opcode >> 9) & 7;
44224: OpcodeFamily = 30; CurrentInstrCycles = 10;
44225: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
44226: if ((srca & 1) != 0) {
44227: last_fault_for_exception_3 = srca;
44228: last_op_for_exception_3 = opcode;
44229: last_addr_for_exception_3 = m68k_getpc() + 2;
44230: Exception(3, 0, M68000_EXC_SRC_CPU);
44231: goto endlabel2605;
44232: }
44233: {{ uae_s16 src = get_word(srca);
44234: m68k_areg (regs, srcreg) = srca;
44235: { CLEAR_CZNV;
44236: SET_ZFLG (((uae_s16)(src)) == 0);
44237: SET_NFLG (((uae_s16)(src)) < 0);
44238: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
44239: }}}}}m68k_incpc(2);
44240: fill_prefetch_2 ();
44241: endlabel2605: ;
44242: return 10;
44243: }
44244: unsigned long REGPARAM2 CPUFUNC(op_3028_5)(uae_u32 opcode) /* MOVE */
44245: {
44246: uae_u32 srcreg = (opcode & 7);
44247: uae_u32 dstreg = (opcode >> 9) & 7;
44248: OpcodeFamily = 30; CurrentInstrCycles = 12;
44249: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
44250: if ((srca & 1) != 0) {
44251: last_fault_for_exception_3 = srca;
44252: last_op_for_exception_3 = opcode;
44253: last_addr_for_exception_3 = m68k_getpc() + 4;
44254: Exception(3, 0, M68000_EXC_SRC_CPU);
44255: goto endlabel2606;
44256: }
44257: {{ uae_s16 src = get_word(srca);
44258: { CLEAR_CZNV;
44259: SET_ZFLG (((uae_s16)(src)) == 0);
44260: SET_NFLG (((uae_s16)(src)) < 0);
44261: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
44262: }}}}}m68k_incpc(4);
44263: fill_prefetch_0 ();
44264: endlabel2606: ;
44265: return 12;
44266: }
44267: unsigned long REGPARAM2 CPUFUNC(op_3030_5)(uae_u32 opcode) /* MOVE */
44268: {
44269: uae_u32 srcreg = (opcode & 7);
44270: uae_u32 dstreg = (opcode >> 9) & 7;
44271: OpcodeFamily = 30; CurrentInstrCycles = 14;
44272: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
44273: BusCyclePenalty += 2;
44274: if ((srca & 1) != 0) {
44275: last_fault_for_exception_3 = srca;
44276: last_op_for_exception_3 = opcode;
44277: last_addr_for_exception_3 = m68k_getpc() + 4;
44278: Exception(3, 0, M68000_EXC_SRC_CPU);
44279: goto endlabel2607;
44280: }
44281: {{ uae_s16 src = get_word(srca);
44282: { CLEAR_CZNV;
44283: SET_ZFLG (((uae_s16)(src)) == 0);
44284: SET_NFLG (((uae_s16)(src)) < 0);
44285: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
44286: }}}}}m68k_incpc(4);
44287: fill_prefetch_0 ();
44288: endlabel2607: ;
44289: return 14;
44290: }
44291: unsigned long REGPARAM2 CPUFUNC(op_3038_5)(uae_u32 opcode) /* MOVE */
44292: {
44293: uae_u32 dstreg = (opcode >> 9) & 7;
44294: OpcodeFamily = 30; CurrentInstrCycles = 12;
44295: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
44296: if ((srca & 1) != 0) {
44297: last_fault_for_exception_3 = srca;
44298: last_op_for_exception_3 = opcode;
44299: last_addr_for_exception_3 = m68k_getpc() + 4;
44300: Exception(3, 0, M68000_EXC_SRC_CPU);
44301: goto endlabel2608;
44302: }
44303: {{ uae_s16 src = get_word(srca);
44304: { CLEAR_CZNV;
44305: SET_ZFLG (((uae_s16)(src)) == 0);
44306: SET_NFLG (((uae_s16)(src)) < 0);
44307: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
44308: }}}}}m68k_incpc(4);
44309: fill_prefetch_0 ();
44310: endlabel2608: ;
44311: return 12;
44312: }
44313: unsigned long REGPARAM2 CPUFUNC(op_3039_5)(uae_u32 opcode) /* MOVE */
44314: {
44315: uae_u32 dstreg = (opcode >> 9) & 7;
44316: OpcodeFamily = 30; CurrentInstrCycles = 16;
44317: {{ uaecptr srca = get_ilong_prefetch(2);
44318: if ((srca & 1) != 0) {
44319: last_fault_for_exception_3 = srca;
44320: last_op_for_exception_3 = opcode;
44321: last_addr_for_exception_3 = m68k_getpc() + 6;
44322: Exception(3, 0, M68000_EXC_SRC_CPU);
44323: goto endlabel2609;
44324: }
44325: {{ uae_s16 src = get_word(srca);
44326: { CLEAR_CZNV;
44327: SET_ZFLG (((uae_s16)(src)) == 0);
44328: SET_NFLG (((uae_s16)(src)) < 0);
44329: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
44330: }}}}}m68k_incpc(6);
44331: fill_prefetch_0 ();
44332: endlabel2609: ;
44333: return 16;
44334: }
44335: unsigned long REGPARAM2 CPUFUNC(op_303a_5)(uae_u32 opcode) /* MOVE */
44336: {
44337: uae_u32 dstreg = (opcode >> 9) & 7;
44338: OpcodeFamily = 30; CurrentInstrCycles = 12;
44339: {{ uaecptr srca = m68k_getpc () + 2;
44340: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
44341: if ((srca & 1) != 0) {
44342: last_fault_for_exception_3 = srca;
44343: last_op_for_exception_3 = opcode;
44344: last_addr_for_exception_3 = m68k_getpc() + 4;
44345: Exception(3, 0, M68000_EXC_SRC_CPU);
44346: goto endlabel2610;
44347: }
44348: {{ uae_s16 src = get_word(srca);
44349: { CLEAR_CZNV;
44350: SET_ZFLG (((uae_s16)(src)) == 0);
44351: SET_NFLG (((uae_s16)(src)) < 0);
44352: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
44353: }}}}}m68k_incpc(4);
44354: fill_prefetch_0 ();
44355: endlabel2610: ;
44356: return 12;
44357: }
44358: unsigned long REGPARAM2 CPUFUNC(op_303b_5)(uae_u32 opcode) /* MOVE */
44359: {
44360: uae_u32 dstreg = (opcode >> 9) & 7;
44361: OpcodeFamily = 30; CurrentInstrCycles = 14;
44362: {{ uaecptr tmppc = m68k_getpc() + 2;
44363: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
44364: BusCyclePenalty += 2;
44365: if ((srca & 1) != 0) {
44366: last_fault_for_exception_3 = srca;
44367: last_op_for_exception_3 = opcode;
44368: last_addr_for_exception_3 = m68k_getpc() + 4;
44369: Exception(3, 0, M68000_EXC_SRC_CPU);
44370: goto endlabel2611;
44371: }
44372: {{ uae_s16 src = get_word(srca);
44373: { CLEAR_CZNV;
44374: SET_ZFLG (((uae_s16)(src)) == 0);
44375: SET_NFLG (((uae_s16)(src)) < 0);
44376: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
44377: }}}}}m68k_incpc(4);
44378: fill_prefetch_0 ();
44379: endlabel2611: ;
44380: return 14;
44381: }
44382: unsigned long REGPARAM2 CPUFUNC(op_303c_5)(uae_u32 opcode) /* MOVE */
44383: {
44384: uae_u32 dstreg = (opcode >> 9) & 7;
44385: OpcodeFamily = 30; CurrentInstrCycles = 8;
44386: {{ uae_s16 src = get_iword_prefetch(2);
44387: { CLEAR_CZNV;
44388: SET_ZFLG (((uae_s16)(src)) == 0);
44389: SET_NFLG (((uae_s16)(src)) < 0);
44390: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
44391: }}}m68k_incpc(4);
44392: fill_prefetch_0 ();
44393: return 8;
44394: }
44395: unsigned long REGPARAM2 CPUFUNC(op_3040_5)(uae_u32 opcode) /* MOVEA */
44396: {
44397: uae_u32 srcreg = (opcode & 7);
44398: uae_u32 dstreg = (opcode >> 9) & 7;
44399: OpcodeFamily = 31; CurrentInstrCycles = 4;
44400: {{ uae_s16 src = m68k_dreg(regs, srcreg);
44401: { uae_u32 val = (uae_s32)(uae_s16)src;
44402: m68k_areg(regs, dstreg) = (val);
44403: }}}m68k_incpc(2);
44404: fill_prefetch_2 ();
44405: return 4;
44406: }
44407: unsigned long REGPARAM2 CPUFUNC(op_3048_5)(uae_u32 opcode) /* MOVEA */
44408: {
44409: uae_u32 srcreg = (opcode & 7);
44410: uae_u32 dstreg = (opcode >> 9) & 7;
44411: OpcodeFamily = 31; CurrentInstrCycles = 4;
44412: {{ uae_s16 src = m68k_areg(regs, srcreg);
44413: { uae_u32 val = (uae_s32)(uae_s16)src;
44414: m68k_areg(regs, dstreg) = (val);
44415: }}}m68k_incpc(2);
44416: fill_prefetch_2 ();
44417: return 4;
44418: }
44419: unsigned long REGPARAM2 CPUFUNC(op_3050_5)(uae_u32 opcode) /* MOVEA */
44420: {
44421: uae_u32 srcreg = (opcode & 7);
44422: uae_u32 dstreg = (opcode >> 9) & 7;
44423: OpcodeFamily = 31; CurrentInstrCycles = 8;
44424: {{ uaecptr srca = m68k_areg(regs, srcreg);
44425: if ((srca & 1) != 0) {
44426: last_fault_for_exception_3 = srca;
44427: last_op_for_exception_3 = opcode;
44428: last_addr_for_exception_3 = m68k_getpc() + 2;
44429: Exception(3, 0, M68000_EXC_SRC_CPU);
44430: goto endlabel2615;
44431: }
44432: {{ uae_s16 src = get_word(srca);
44433: { uae_u32 val = (uae_s32)(uae_s16)src;
44434: m68k_areg(regs, dstreg) = (val);
44435: }}}}}m68k_incpc(2);
44436: fill_prefetch_2 ();
44437: endlabel2615: ;
44438: return 8;
44439: }
44440: unsigned long REGPARAM2 CPUFUNC(op_3058_5)(uae_u32 opcode) /* MOVEA */
44441: {
44442: uae_u32 srcreg = (opcode & 7);
44443: uae_u32 dstreg = (opcode >> 9) & 7;
44444: OpcodeFamily = 31; CurrentInstrCycles = 8;
44445: {{ uaecptr srca = m68k_areg(regs, srcreg);
44446: if ((srca & 1) != 0) {
44447: last_fault_for_exception_3 = srca;
44448: last_op_for_exception_3 = opcode;
44449: last_addr_for_exception_3 = m68k_getpc() + 2;
44450: Exception(3, 0, M68000_EXC_SRC_CPU);
44451: goto endlabel2616;
44452: }
44453: {{ uae_s16 src = get_word(srca);
44454: m68k_areg(regs, srcreg) += 2;
44455: { uae_u32 val = (uae_s32)(uae_s16)src;
44456: m68k_areg(regs, dstreg) = (val);
44457: }}}}}m68k_incpc(2);
44458: fill_prefetch_2 ();
44459: endlabel2616: ;
44460: return 8;
44461: }
44462: unsigned long REGPARAM2 CPUFUNC(op_3060_5)(uae_u32 opcode) /* MOVEA */
44463: {
44464: uae_u32 srcreg = (opcode & 7);
44465: uae_u32 dstreg = (opcode >> 9) & 7;
44466: OpcodeFamily = 31; CurrentInstrCycles = 10;
44467: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
44468: if ((srca & 1) != 0) {
44469: last_fault_for_exception_3 = srca;
44470: last_op_for_exception_3 = opcode;
44471: last_addr_for_exception_3 = m68k_getpc() + 2;
44472: Exception(3, 0, M68000_EXC_SRC_CPU);
44473: goto endlabel2617;
44474: }
44475: {{ uae_s16 src = get_word(srca);
44476: m68k_areg (regs, srcreg) = srca;
44477: { uae_u32 val = (uae_s32)(uae_s16)src;
44478: m68k_areg(regs, dstreg) = (val);
44479: }}}}}m68k_incpc(2);
44480: fill_prefetch_2 ();
44481: endlabel2617: ;
44482: return 10;
44483: }
44484: unsigned long REGPARAM2 CPUFUNC(op_3068_5)(uae_u32 opcode) /* MOVEA */
44485: {
44486: uae_u32 srcreg = (opcode & 7);
44487: uae_u32 dstreg = (opcode >> 9) & 7;
44488: OpcodeFamily = 31; CurrentInstrCycles = 12;
44489: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
44490: if ((srca & 1) != 0) {
44491: last_fault_for_exception_3 = srca;
44492: last_op_for_exception_3 = opcode;
44493: last_addr_for_exception_3 = m68k_getpc() + 4;
44494: Exception(3, 0, M68000_EXC_SRC_CPU);
44495: goto endlabel2618;
44496: }
44497: {{ uae_s16 src = get_word(srca);
44498: { uae_u32 val = (uae_s32)(uae_s16)src;
44499: m68k_areg(regs, dstreg) = (val);
44500: }}}}}m68k_incpc(4);
44501: fill_prefetch_0 ();
44502: endlabel2618: ;
44503: return 12;
44504: }
44505: unsigned long REGPARAM2 CPUFUNC(op_3070_5)(uae_u32 opcode) /* MOVEA */
44506: {
44507: uae_u32 srcreg = (opcode & 7);
44508: uae_u32 dstreg = (opcode >> 9) & 7;
44509: OpcodeFamily = 31; CurrentInstrCycles = 14;
44510: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
44511: BusCyclePenalty += 2;
44512: if ((srca & 1) != 0) {
44513: last_fault_for_exception_3 = srca;
44514: last_op_for_exception_3 = opcode;
44515: last_addr_for_exception_3 = m68k_getpc() + 4;
44516: Exception(3, 0, M68000_EXC_SRC_CPU);
44517: goto endlabel2619;
44518: }
44519: {{ uae_s16 src = get_word(srca);
44520: { uae_u32 val = (uae_s32)(uae_s16)src;
44521: m68k_areg(regs, dstreg) = (val);
44522: }}}}}m68k_incpc(4);
44523: fill_prefetch_0 ();
44524: endlabel2619: ;
44525: return 14;
44526: }
44527: unsigned long REGPARAM2 CPUFUNC(op_3078_5)(uae_u32 opcode) /* MOVEA */
44528: {
44529: uae_u32 dstreg = (opcode >> 9) & 7;
44530: OpcodeFamily = 31; CurrentInstrCycles = 12;
44531: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
44532: if ((srca & 1) != 0) {
44533: last_fault_for_exception_3 = srca;
44534: last_op_for_exception_3 = opcode;
44535: last_addr_for_exception_3 = m68k_getpc() + 4;
44536: Exception(3, 0, M68000_EXC_SRC_CPU);
44537: goto endlabel2620;
44538: }
44539: {{ uae_s16 src = get_word(srca);
44540: { uae_u32 val = (uae_s32)(uae_s16)src;
44541: m68k_areg(regs, dstreg) = (val);
44542: }}}}}m68k_incpc(4);
44543: fill_prefetch_0 ();
44544: endlabel2620: ;
44545: return 12;
44546: }
44547: unsigned long REGPARAM2 CPUFUNC(op_3079_5)(uae_u32 opcode) /* MOVEA */
44548: {
44549: uae_u32 dstreg = (opcode >> 9) & 7;
44550: OpcodeFamily = 31; CurrentInstrCycles = 16;
44551: {{ uaecptr srca = get_ilong_prefetch(2);
44552: if ((srca & 1) != 0) {
44553: last_fault_for_exception_3 = srca;
44554: last_op_for_exception_3 = opcode;
44555: last_addr_for_exception_3 = m68k_getpc() + 6;
44556: Exception(3, 0, M68000_EXC_SRC_CPU);
44557: goto endlabel2621;
44558: }
44559: {{ uae_s16 src = get_word(srca);
44560: { uae_u32 val = (uae_s32)(uae_s16)src;
44561: m68k_areg(regs, dstreg) = (val);
44562: }}}}}m68k_incpc(6);
44563: fill_prefetch_0 ();
44564: endlabel2621: ;
44565: return 16;
44566: }
44567: unsigned long REGPARAM2 CPUFUNC(op_307a_5)(uae_u32 opcode) /* MOVEA */
44568: {
44569: uae_u32 dstreg = (opcode >> 9) & 7;
44570: OpcodeFamily = 31; CurrentInstrCycles = 12;
44571: {{ uaecptr srca = m68k_getpc () + 2;
44572: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
44573: if ((srca & 1) != 0) {
44574: last_fault_for_exception_3 = srca;
44575: last_op_for_exception_3 = opcode;
44576: last_addr_for_exception_3 = m68k_getpc() + 4;
44577: Exception(3, 0, M68000_EXC_SRC_CPU);
44578: goto endlabel2622;
44579: }
44580: {{ uae_s16 src = get_word(srca);
44581: { uae_u32 val = (uae_s32)(uae_s16)src;
44582: m68k_areg(regs, dstreg) = (val);
44583: }}}}}m68k_incpc(4);
44584: fill_prefetch_0 ();
44585: endlabel2622: ;
44586: return 12;
44587: }
44588: unsigned long REGPARAM2 CPUFUNC(op_307b_5)(uae_u32 opcode) /* MOVEA */
44589: {
44590: uae_u32 dstreg = (opcode >> 9) & 7;
44591: OpcodeFamily = 31; CurrentInstrCycles = 14;
44592: {{ uaecptr tmppc = m68k_getpc() + 2;
44593: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
44594: BusCyclePenalty += 2;
44595: if ((srca & 1) != 0) {
44596: last_fault_for_exception_3 = srca;
44597: last_op_for_exception_3 = opcode;
44598: last_addr_for_exception_3 = m68k_getpc() + 4;
44599: Exception(3, 0, M68000_EXC_SRC_CPU);
44600: goto endlabel2623;
44601: }
44602: {{ uae_s16 src = get_word(srca);
44603: { uae_u32 val = (uae_s32)(uae_s16)src;
44604: m68k_areg(regs, dstreg) = (val);
44605: }}}}}m68k_incpc(4);
44606: fill_prefetch_0 ();
44607: endlabel2623: ;
44608: return 14;
44609: }
44610: unsigned long REGPARAM2 CPUFUNC(op_307c_5)(uae_u32 opcode) /* MOVEA */
44611: {
44612: uae_u32 dstreg = (opcode >> 9) & 7;
44613: OpcodeFamily = 31; CurrentInstrCycles = 8;
44614: {{ uae_s16 src = get_iword_prefetch(2);
44615: { uae_u32 val = (uae_s32)(uae_s16)src;
44616: m68k_areg(regs, dstreg) = (val);
44617: }}}m68k_incpc(4);
44618: fill_prefetch_0 ();
44619: return 8;
44620: }
44621: unsigned long REGPARAM2 CPUFUNC(op_3080_5)(uae_u32 opcode) /* MOVE */
44622: {
44623: uae_u32 srcreg = (opcode & 7);
44624: uae_u32 dstreg = (opcode >> 9) & 7;
44625: OpcodeFamily = 30; CurrentInstrCycles = 8;
44626: {{ uae_s16 src = m68k_dreg(regs, srcreg);
44627: { uaecptr dsta = m68k_areg(regs, dstreg);
44628: if ((dsta & 1) != 0) {
44629: last_fault_for_exception_3 = dsta;
44630: last_op_for_exception_3 = opcode;
44631: last_addr_for_exception_3 = m68k_getpc() + 2;
44632: Exception(3, 0, M68000_EXC_SRC_CPU);
44633: goto endlabel2625;
44634: }
44635: { CLEAR_CZNV;
44636: SET_ZFLG (((uae_s16)(src)) == 0);
44637: SET_NFLG (((uae_s16)(src)) < 0);
44638: m68k_incpc(2);
44639: fill_prefetch_2 ();
44640: put_word(dsta,src);
44641: }}}}endlabel2625: ;
44642: return 8;
44643: }
44644: unsigned long REGPARAM2 CPUFUNC(op_3088_5)(uae_u32 opcode) /* MOVE */
44645: {
44646: uae_u32 srcreg = (opcode & 7);
44647: uae_u32 dstreg = (opcode >> 9) & 7;
44648: OpcodeFamily = 30; CurrentInstrCycles = 8;
44649: {{ uae_s16 src = m68k_areg(regs, srcreg);
44650: { uaecptr dsta = m68k_areg(regs, dstreg);
44651: if ((dsta & 1) != 0) {
44652: last_fault_for_exception_3 = dsta;
44653: last_op_for_exception_3 = opcode;
44654: last_addr_for_exception_3 = m68k_getpc() + 2;
44655: Exception(3, 0, M68000_EXC_SRC_CPU);
44656: goto endlabel2626;
44657: }
44658: { CLEAR_CZNV;
44659: SET_ZFLG (((uae_s16)(src)) == 0);
44660: SET_NFLG (((uae_s16)(src)) < 0);
44661: m68k_incpc(2);
44662: fill_prefetch_2 ();
44663: put_word(dsta,src);
44664: }}}}endlabel2626: ;
44665: return 8;
44666: }
44667: unsigned long REGPARAM2 CPUFUNC(op_3090_5)(uae_u32 opcode) /* MOVE */
44668: {
44669: uae_u32 srcreg = (opcode & 7);
44670: uae_u32 dstreg = (opcode >> 9) & 7;
44671: OpcodeFamily = 30; CurrentInstrCycles = 12;
44672: {{ uaecptr srca = m68k_areg(regs, srcreg);
44673: if ((srca & 1) != 0) {
44674: last_fault_for_exception_3 = srca;
44675: last_op_for_exception_3 = opcode;
44676: last_addr_for_exception_3 = m68k_getpc() + 2;
44677: Exception(3, 0, M68000_EXC_SRC_CPU);
44678: goto endlabel2627;
44679: }
44680: {{ uae_s16 src = get_word(srca);
44681: { uaecptr dsta = m68k_areg(regs, dstreg);
44682: if ((dsta & 1) != 0) {
44683: last_fault_for_exception_3 = dsta;
44684: last_op_for_exception_3 = opcode;
44685: last_addr_for_exception_3 = m68k_getpc() + 2;
44686: Exception(3, 0, M68000_EXC_SRC_CPU);
44687: goto endlabel2627;
44688: }
44689: { CLEAR_CZNV;
44690: SET_ZFLG (((uae_s16)(src)) == 0);
44691: SET_NFLG (((uae_s16)(src)) < 0);
44692: m68k_incpc(2);
44693: fill_prefetch_2 ();
44694: put_word(dsta,src);
44695: }}}}}}endlabel2627: ;
44696: return 12;
44697: }
44698: unsigned long REGPARAM2 CPUFUNC(op_3098_5)(uae_u32 opcode) /* MOVE */
44699: {
44700: uae_u32 srcreg = (opcode & 7);
44701: uae_u32 dstreg = (opcode >> 9) & 7;
44702: OpcodeFamily = 30; CurrentInstrCycles = 12;
44703: {{ uaecptr srca = m68k_areg(regs, srcreg);
44704: if ((srca & 1) != 0) {
44705: last_fault_for_exception_3 = srca;
44706: last_op_for_exception_3 = opcode;
44707: last_addr_for_exception_3 = m68k_getpc() + 2;
44708: Exception(3, 0, M68000_EXC_SRC_CPU);
44709: goto endlabel2628;
44710: }
44711: {{ uae_s16 src = get_word(srca);
44712: m68k_areg(regs, srcreg) += 2;
44713: { uaecptr dsta = m68k_areg(regs, dstreg);
44714: if ((dsta & 1) != 0) {
44715: last_fault_for_exception_3 = dsta;
44716: last_op_for_exception_3 = opcode;
44717: last_addr_for_exception_3 = m68k_getpc() + 2;
44718: Exception(3, 0, M68000_EXC_SRC_CPU);
44719: goto endlabel2628;
44720: }
44721: { CLEAR_CZNV;
44722: SET_ZFLG (((uae_s16)(src)) == 0);
44723: SET_NFLG (((uae_s16)(src)) < 0);
44724: m68k_incpc(2);
44725: fill_prefetch_2 ();
44726: put_word(dsta,src);
44727: }}}}}}endlabel2628: ;
44728: return 12;
44729: }
44730: unsigned long REGPARAM2 CPUFUNC(op_30a0_5)(uae_u32 opcode) /* MOVE */
44731: {
44732: uae_u32 srcreg = (opcode & 7);
44733: uae_u32 dstreg = (opcode >> 9) & 7;
44734: OpcodeFamily = 30; CurrentInstrCycles = 14;
44735: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
44736: if ((srca & 1) != 0) {
44737: last_fault_for_exception_3 = srca;
44738: last_op_for_exception_3 = opcode;
44739: last_addr_for_exception_3 = m68k_getpc() + 2;
44740: Exception(3, 0, M68000_EXC_SRC_CPU);
44741: goto endlabel2629;
44742: }
44743: {{ uae_s16 src = get_word(srca);
44744: m68k_areg (regs, srcreg) = srca;
44745: { uaecptr dsta = m68k_areg(regs, dstreg);
44746: if ((dsta & 1) != 0) {
44747: last_fault_for_exception_3 = dsta;
44748: last_op_for_exception_3 = opcode;
44749: last_addr_for_exception_3 = m68k_getpc() + 2;
44750: Exception(3, 0, M68000_EXC_SRC_CPU);
44751: goto endlabel2629;
44752: }
44753: { CLEAR_CZNV;
44754: SET_ZFLG (((uae_s16)(src)) == 0);
44755: SET_NFLG (((uae_s16)(src)) < 0);
44756: m68k_incpc(2);
44757: fill_prefetch_2 ();
44758: put_word(dsta,src);
44759: }}}}}}endlabel2629: ;
44760: return 14;
44761: }
44762: unsigned long REGPARAM2 CPUFUNC(op_30a8_5)(uae_u32 opcode) /* MOVE */
44763: {
44764: uae_u32 srcreg = (opcode & 7);
44765: uae_u32 dstreg = (opcode >> 9) & 7;
44766: OpcodeFamily = 30; CurrentInstrCycles = 16;
44767: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
44768: if ((srca & 1) != 0) {
44769: last_fault_for_exception_3 = srca;
44770: last_op_for_exception_3 = opcode;
44771: last_addr_for_exception_3 = m68k_getpc() + 4;
44772: Exception(3, 0, M68000_EXC_SRC_CPU);
44773: goto endlabel2630;
44774: }
44775: {{ uae_s16 src = get_word(srca);
44776: { uaecptr dsta = m68k_areg(regs, dstreg);
44777: if ((dsta & 1) != 0) {
44778: last_fault_for_exception_3 = dsta;
44779: last_op_for_exception_3 = opcode;
44780: last_addr_for_exception_3 = m68k_getpc() + 4;
44781: Exception(3, 0, M68000_EXC_SRC_CPU);
44782: goto endlabel2630;
44783: }
44784: { CLEAR_CZNV;
44785: SET_ZFLG (((uae_s16)(src)) == 0);
44786: SET_NFLG (((uae_s16)(src)) < 0);
44787: m68k_incpc(4);
44788: fill_prefetch_0 ();
44789: put_word(dsta,src);
44790: }}}}}}endlabel2630: ;
44791: return 16;
44792: }
44793: unsigned long REGPARAM2 CPUFUNC(op_30b0_5)(uae_u32 opcode) /* MOVE */
44794: {
44795: uae_u32 srcreg = (opcode & 7);
44796: uae_u32 dstreg = (opcode >> 9) & 7;
44797: OpcodeFamily = 30; CurrentInstrCycles = 18;
44798: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
44799: BusCyclePenalty += 2;
44800: if ((srca & 1) != 0) {
44801: last_fault_for_exception_3 = srca;
44802: last_op_for_exception_3 = opcode;
44803: last_addr_for_exception_3 = m68k_getpc() + 4;
44804: Exception(3, 0, M68000_EXC_SRC_CPU);
44805: goto endlabel2631;
44806: }
44807: {{ uae_s16 src = get_word(srca);
44808: { uaecptr dsta = m68k_areg(regs, dstreg);
44809: if ((dsta & 1) != 0) {
44810: last_fault_for_exception_3 = dsta;
44811: last_op_for_exception_3 = opcode;
44812: last_addr_for_exception_3 = m68k_getpc() + 4;
44813: Exception(3, 0, M68000_EXC_SRC_CPU);
44814: goto endlabel2631;
44815: }
44816: { CLEAR_CZNV;
44817: SET_ZFLG (((uae_s16)(src)) == 0);
44818: SET_NFLG (((uae_s16)(src)) < 0);
44819: m68k_incpc(4);
44820: fill_prefetch_0 ();
44821: put_word(dsta,src);
44822: }}}}}}endlabel2631: ;
44823: return 18;
44824: }
44825: unsigned long REGPARAM2 CPUFUNC(op_30b8_5)(uae_u32 opcode) /* MOVE */
44826: {
44827: uae_u32 dstreg = (opcode >> 9) & 7;
44828: OpcodeFamily = 30; CurrentInstrCycles = 16;
44829: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
44830: if ((srca & 1) != 0) {
44831: last_fault_for_exception_3 = srca;
44832: last_op_for_exception_3 = opcode;
44833: last_addr_for_exception_3 = m68k_getpc() + 4;
44834: Exception(3, 0, M68000_EXC_SRC_CPU);
44835: goto endlabel2632;
44836: }
44837: {{ uae_s16 src = get_word(srca);
44838: { uaecptr dsta = m68k_areg(regs, dstreg);
44839: if ((dsta & 1) != 0) {
44840: last_fault_for_exception_3 = dsta;
44841: last_op_for_exception_3 = opcode;
44842: last_addr_for_exception_3 = m68k_getpc() + 4;
44843: Exception(3, 0, M68000_EXC_SRC_CPU);
44844: goto endlabel2632;
44845: }
44846: { CLEAR_CZNV;
44847: SET_ZFLG (((uae_s16)(src)) == 0);
44848: SET_NFLG (((uae_s16)(src)) < 0);
44849: m68k_incpc(4);
44850: fill_prefetch_0 ();
44851: put_word(dsta,src);
44852: }}}}}}endlabel2632: ;
44853: return 16;
44854: }
44855: unsigned long REGPARAM2 CPUFUNC(op_30b9_5)(uae_u32 opcode) /* MOVE */
44856: {
44857: uae_u32 dstreg = (opcode >> 9) & 7;
44858: OpcodeFamily = 30; CurrentInstrCycles = 20;
44859: {{ uaecptr srca = get_ilong_prefetch(2);
44860: if ((srca & 1) != 0) {
44861: last_fault_for_exception_3 = srca;
44862: last_op_for_exception_3 = opcode;
44863: last_addr_for_exception_3 = m68k_getpc() + 6;
44864: Exception(3, 0, M68000_EXC_SRC_CPU);
44865: goto endlabel2633;
44866: }
44867: {{ uae_s16 src = get_word(srca);
44868: { uaecptr dsta = m68k_areg(regs, dstreg);
44869: if ((dsta & 1) != 0) {
44870: last_fault_for_exception_3 = dsta;
44871: last_op_for_exception_3 = opcode;
44872: last_addr_for_exception_3 = m68k_getpc() + 6;
44873: Exception(3, 0, M68000_EXC_SRC_CPU);
44874: goto endlabel2633;
44875: }
44876: { CLEAR_CZNV;
44877: SET_ZFLG (((uae_s16)(src)) == 0);
44878: SET_NFLG (((uae_s16)(src)) < 0);
44879: m68k_incpc(6);
44880: fill_prefetch_0 ();
44881: put_word(dsta,src);
44882: }}}}}}endlabel2633: ;
44883: return 20;
44884: }
44885: unsigned long REGPARAM2 CPUFUNC(op_30ba_5)(uae_u32 opcode) /* MOVE */
44886: {
44887: uae_u32 dstreg = (opcode >> 9) & 7;
44888: OpcodeFamily = 30; CurrentInstrCycles = 16;
44889: {{ uaecptr srca = m68k_getpc () + 2;
44890: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
44891: if ((srca & 1) != 0) {
44892: last_fault_for_exception_3 = srca;
44893: last_op_for_exception_3 = opcode;
44894: last_addr_for_exception_3 = m68k_getpc() + 4;
44895: Exception(3, 0, M68000_EXC_SRC_CPU);
44896: goto endlabel2634;
44897: }
44898: {{ uae_s16 src = get_word(srca);
44899: { uaecptr dsta = m68k_areg(regs, dstreg);
44900: if ((dsta & 1) != 0) {
44901: last_fault_for_exception_3 = dsta;
44902: last_op_for_exception_3 = opcode;
44903: last_addr_for_exception_3 = m68k_getpc() + 4;
44904: Exception(3, 0, M68000_EXC_SRC_CPU);
44905: goto endlabel2634;
44906: }
44907: { CLEAR_CZNV;
44908: SET_ZFLG (((uae_s16)(src)) == 0);
44909: SET_NFLG (((uae_s16)(src)) < 0);
44910: m68k_incpc(4);
44911: fill_prefetch_0 ();
44912: put_word(dsta,src);
44913: }}}}}}endlabel2634: ;
44914: return 16;
44915: }
44916: unsigned long REGPARAM2 CPUFUNC(op_30bb_5)(uae_u32 opcode) /* MOVE */
44917: {
44918: uae_u32 dstreg = (opcode >> 9) & 7;
44919: OpcodeFamily = 30; CurrentInstrCycles = 18;
44920: {{ uaecptr tmppc = m68k_getpc() + 2;
44921: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
44922: BusCyclePenalty += 2;
44923: if ((srca & 1) != 0) {
44924: last_fault_for_exception_3 = srca;
44925: last_op_for_exception_3 = opcode;
44926: last_addr_for_exception_3 = m68k_getpc() + 4;
44927: Exception(3, 0, M68000_EXC_SRC_CPU);
44928: goto endlabel2635;
44929: }
44930: {{ uae_s16 src = get_word(srca);
44931: { uaecptr dsta = m68k_areg(regs, dstreg);
44932: if ((dsta & 1) != 0) {
44933: last_fault_for_exception_3 = dsta;
44934: last_op_for_exception_3 = opcode;
44935: last_addr_for_exception_3 = m68k_getpc() + 4;
44936: Exception(3, 0, M68000_EXC_SRC_CPU);
44937: goto endlabel2635;
44938: }
44939: { CLEAR_CZNV;
44940: SET_ZFLG (((uae_s16)(src)) == 0);
44941: SET_NFLG (((uae_s16)(src)) < 0);
44942: m68k_incpc(4);
44943: fill_prefetch_0 ();
44944: put_word(dsta,src);
44945: }}}}}}endlabel2635: ;
44946: return 18;
44947: }
44948: unsigned long REGPARAM2 CPUFUNC(op_30bc_5)(uae_u32 opcode) /* MOVE */
44949: {
44950: uae_u32 dstreg = (opcode >> 9) & 7;
44951: OpcodeFamily = 30; CurrentInstrCycles = 12;
44952: {{ uae_s16 src = get_iword_prefetch(2);
44953: { uaecptr dsta = m68k_areg(regs, dstreg);
44954: if ((dsta & 1) != 0) {
44955: last_fault_for_exception_3 = dsta;
44956: last_op_for_exception_3 = opcode;
44957: last_addr_for_exception_3 = m68k_getpc() + 4;
44958: Exception(3, 0, M68000_EXC_SRC_CPU);
44959: goto endlabel2636;
44960: }
44961: { CLEAR_CZNV;
44962: SET_ZFLG (((uae_s16)(src)) == 0);
44963: SET_NFLG (((uae_s16)(src)) < 0);
44964: m68k_incpc(4);
44965: fill_prefetch_0 ();
44966: put_word(dsta,src);
44967: }}}}endlabel2636: ;
44968: return 12;
44969: }
44970: unsigned long REGPARAM2 CPUFUNC(op_30c0_5)(uae_u32 opcode) /* MOVE */
44971: {
44972: uae_u32 srcreg = (opcode & 7);
44973: uae_u32 dstreg = (opcode >> 9) & 7;
44974: OpcodeFamily = 30; CurrentInstrCycles = 8;
44975: {{ uae_s16 src = m68k_dreg(regs, srcreg);
44976: { uaecptr dsta = m68k_areg(regs, dstreg);
44977: if ((dsta & 1) != 0) {
44978: last_fault_for_exception_3 = dsta;
44979: last_op_for_exception_3 = opcode;
44980: last_addr_for_exception_3 = m68k_getpc() + 2;
44981: Exception(3, 0, M68000_EXC_SRC_CPU);
44982: goto endlabel2637;
44983: }
44984: { m68k_areg(regs, dstreg) += 2;
44985: CLEAR_CZNV;
44986: SET_ZFLG (((uae_s16)(src)) == 0);
44987: SET_NFLG (((uae_s16)(src)) < 0);
44988: m68k_incpc(2);
44989: fill_prefetch_2 ();
44990: put_word(dsta,src);
44991: }}}}endlabel2637: ;
44992: return 8;
44993: }
44994: unsigned long REGPARAM2 CPUFUNC(op_30c8_5)(uae_u32 opcode) /* MOVE */
44995: {
44996: uae_u32 srcreg = (opcode & 7);
44997: uae_u32 dstreg = (opcode >> 9) & 7;
44998: OpcodeFamily = 30; CurrentInstrCycles = 8;
44999: {{ uae_s16 src = m68k_areg(regs, srcreg);
45000: { uaecptr dsta = m68k_areg(regs, dstreg);
45001: if ((dsta & 1) != 0) {
45002: last_fault_for_exception_3 = dsta;
45003: last_op_for_exception_3 = opcode;
45004: last_addr_for_exception_3 = m68k_getpc() + 2;
45005: Exception(3, 0, M68000_EXC_SRC_CPU);
45006: goto endlabel2638;
45007: }
45008: { m68k_areg(regs, dstreg) += 2;
45009: CLEAR_CZNV;
45010: SET_ZFLG (((uae_s16)(src)) == 0);
45011: SET_NFLG (((uae_s16)(src)) < 0);
45012: m68k_incpc(2);
45013: fill_prefetch_2 ();
45014: put_word(dsta,src);
45015: }}}}endlabel2638: ;
45016: return 8;
45017: }
45018: unsigned long REGPARAM2 CPUFUNC(op_30d0_5)(uae_u32 opcode) /* MOVE */
45019: {
45020: uae_u32 srcreg = (opcode & 7);
45021: uae_u32 dstreg = (opcode >> 9) & 7;
45022: OpcodeFamily = 30; CurrentInstrCycles = 12;
45023: {{ uaecptr srca = m68k_areg(regs, srcreg);
45024: if ((srca & 1) != 0) {
45025: last_fault_for_exception_3 = srca;
45026: last_op_for_exception_3 = opcode;
45027: last_addr_for_exception_3 = m68k_getpc() + 2;
45028: Exception(3, 0, M68000_EXC_SRC_CPU);
45029: goto endlabel2639;
45030: }
45031: {{ uae_s16 src = get_word(srca);
45032: { uaecptr dsta = m68k_areg(regs, dstreg);
45033: if ((dsta & 1) != 0) {
45034: last_fault_for_exception_3 = dsta;
45035: last_op_for_exception_3 = opcode;
45036: last_addr_for_exception_3 = m68k_getpc() + 2;
45037: Exception(3, 0, M68000_EXC_SRC_CPU);
45038: goto endlabel2639;
45039: }
45040: { m68k_areg(regs, dstreg) += 2;
45041: CLEAR_CZNV;
45042: SET_ZFLG (((uae_s16)(src)) == 0);
45043: SET_NFLG (((uae_s16)(src)) < 0);
45044: m68k_incpc(2);
45045: fill_prefetch_2 ();
45046: put_word(dsta,src);
45047: }}}}}}endlabel2639: ;
45048: return 12;
45049: }
45050: unsigned long REGPARAM2 CPUFUNC(op_30d8_5)(uae_u32 opcode) /* MOVE */
45051: {
45052: uae_u32 srcreg = (opcode & 7);
45053: uae_u32 dstreg = (opcode >> 9) & 7;
45054: OpcodeFamily = 30; CurrentInstrCycles = 12;
45055: {{ uaecptr srca = m68k_areg(regs, srcreg);
45056: if ((srca & 1) != 0) {
45057: last_fault_for_exception_3 = srca;
45058: last_op_for_exception_3 = opcode;
45059: last_addr_for_exception_3 = m68k_getpc() + 2;
45060: Exception(3, 0, M68000_EXC_SRC_CPU);
45061: goto endlabel2640;
45062: }
45063: {{ uae_s16 src = get_word(srca);
45064: m68k_areg(regs, srcreg) += 2;
45065: { uaecptr dsta = m68k_areg(regs, dstreg);
45066: if ((dsta & 1) != 0) {
45067: last_fault_for_exception_3 = dsta;
45068: last_op_for_exception_3 = opcode;
45069: last_addr_for_exception_3 = m68k_getpc() + 2;
45070: Exception(3, 0, M68000_EXC_SRC_CPU);
45071: goto endlabel2640;
45072: }
45073: { m68k_areg(regs, dstreg) += 2;
45074: CLEAR_CZNV;
45075: SET_ZFLG (((uae_s16)(src)) == 0);
45076: SET_NFLG (((uae_s16)(src)) < 0);
45077: m68k_incpc(2);
45078: fill_prefetch_2 ();
45079: put_word(dsta,src);
45080: }}}}}}endlabel2640: ;
45081: return 12;
45082: }
45083: unsigned long REGPARAM2 CPUFUNC(op_30e0_5)(uae_u32 opcode) /* MOVE */
45084: {
45085: uae_u32 srcreg = (opcode & 7);
45086: uae_u32 dstreg = (opcode >> 9) & 7;
45087: OpcodeFamily = 30; CurrentInstrCycles = 14;
45088: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
45089: if ((srca & 1) != 0) {
45090: last_fault_for_exception_3 = srca;
45091: last_op_for_exception_3 = opcode;
45092: last_addr_for_exception_3 = m68k_getpc() + 2;
45093: Exception(3, 0, M68000_EXC_SRC_CPU);
45094: goto endlabel2641;
45095: }
45096: {{ uae_s16 src = get_word(srca);
45097: m68k_areg (regs, srcreg) = srca;
45098: { uaecptr dsta = m68k_areg(regs, dstreg);
45099: if ((dsta & 1) != 0) {
45100: last_fault_for_exception_3 = dsta;
45101: last_op_for_exception_3 = opcode;
45102: last_addr_for_exception_3 = m68k_getpc() + 2;
45103: Exception(3, 0, M68000_EXC_SRC_CPU);
45104: goto endlabel2641;
45105: }
45106: { m68k_areg(regs, dstreg) += 2;
45107: CLEAR_CZNV;
45108: SET_ZFLG (((uae_s16)(src)) == 0);
45109: SET_NFLG (((uae_s16)(src)) < 0);
45110: m68k_incpc(2);
45111: fill_prefetch_2 ();
45112: put_word(dsta,src);
45113: }}}}}}endlabel2641: ;
45114: return 14;
45115: }
45116: unsigned long REGPARAM2 CPUFUNC(op_30e8_5)(uae_u32 opcode) /* MOVE */
45117: {
45118: uae_u32 srcreg = (opcode & 7);
45119: uae_u32 dstreg = (opcode >> 9) & 7;
45120: OpcodeFamily = 30; CurrentInstrCycles = 16;
45121: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
45122: if ((srca & 1) != 0) {
45123: last_fault_for_exception_3 = srca;
45124: last_op_for_exception_3 = opcode;
45125: last_addr_for_exception_3 = m68k_getpc() + 4;
45126: Exception(3, 0, M68000_EXC_SRC_CPU);
45127: goto endlabel2642;
45128: }
45129: {{ uae_s16 src = get_word(srca);
45130: { uaecptr dsta = m68k_areg(regs, dstreg);
45131: if ((dsta & 1) != 0) {
45132: last_fault_for_exception_3 = dsta;
45133: last_op_for_exception_3 = opcode;
45134: last_addr_for_exception_3 = m68k_getpc() + 4;
45135: Exception(3, 0, M68000_EXC_SRC_CPU);
45136: goto endlabel2642;
45137: }
45138: { m68k_areg(regs, dstreg) += 2;
45139: CLEAR_CZNV;
45140: SET_ZFLG (((uae_s16)(src)) == 0);
45141: SET_NFLG (((uae_s16)(src)) < 0);
45142: m68k_incpc(4);
45143: fill_prefetch_0 ();
45144: put_word(dsta,src);
45145: }}}}}}endlabel2642: ;
45146: return 16;
45147: }
45148: unsigned long REGPARAM2 CPUFUNC(op_30f0_5)(uae_u32 opcode) /* MOVE */
45149: {
45150: uae_u32 srcreg = (opcode & 7);
45151: uae_u32 dstreg = (opcode >> 9) & 7;
45152: OpcodeFamily = 30; CurrentInstrCycles = 18;
45153: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
45154: BusCyclePenalty += 2;
45155: if ((srca & 1) != 0) {
45156: last_fault_for_exception_3 = srca;
45157: last_op_for_exception_3 = opcode;
45158: last_addr_for_exception_3 = m68k_getpc() + 4;
45159: Exception(3, 0, M68000_EXC_SRC_CPU);
45160: goto endlabel2643;
45161: }
45162: {{ uae_s16 src = get_word(srca);
45163: { uaecptr dsta = m68k_areg(regs, dstreg);
45164: if ((dsta & 1) != 0) {
45165: last_fault_for_exception_3 = dsta;
45166: last_op_for_exception_3 = opcode;
45167: last_addr_for_exception_3 = m68k_getpc() + 4;
45168: Exception(3, 0, M68000_EXC_SRC_CPU);
45169: goto endlabel2643;
45170: }
45171: { m68k_areg(regs, dstreg) += 2;
45172: CLEAR_CZNV;
45173: SET_ZFLG (((uae_s16)(src)) == 0);
45174: SET_NFLG (((uae_s16)(src)) < 0);
45175: m68k_incpc(4);
45176: fill_prefetch_0 ();
45177: put_word(dsta,src);
45178: }}}}}}endlabel2643: ;
45179: return 18;
45180: }
45181: unsigned long REGPARAM2 CPUFUNC(op_30f8_5)(uae_u32 opcode) /* MOVE */
45182: {
45183: uae_u32 dstreg = (opcode >> 9) & 7;
45184: OpcodeFamily = 30; CurrentInstrCycles = 16;
45185: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
45186: if ((srca & 1) != 0) {
45187: last_fault_for_exception_3 = srca;
45188: last_op_for_exception_3 = opcode;
45189: last_addr_for_exception_3 = m68k_getpc() + 4;
45190: Exception(3, 0, M68000_EXC_SRC_CPU);
45191: goto endlabel2644;
45192: }
45193: {{ uae_s16 src = get_word(srca);
45194: { uaecptr dsta = m68k_areg(regs, dstreg);
45195: if ((dsta & 1) != 0) {
45196: last_fault_for_exception_3 = dsta;
45197: last_op_for_exception_3 = opcode;
45198: last_addr_for_exception_3 = m68k_getpc() + 4;
45199: Exception(3, 0, M68000_EXC_SRC_CPU);
45200: goto endlabel2644;
45201: }
45202: { m68k_areg(regs, dstreg) += 2;
45203: CLEAR_CZNV;
45204: SET_ZFLG (((uae_s16)(src)) == 0);
45205: SET_NFLG (((uae_s16)(src)) < 0);
45206: m68k_incpc(4);
45207: fill_prefetch_0 ();
45208: put_word(dsta,src);
45209: }}}}}}endlabel2644: ;
45210: return 16;
45211: }
45212: unsigned long REGPARAM2 CPUFUNC(op_30f9_5)(uae_u32 opcode) /* MOVE */
45213: {
45214: uae_u32 dstreg = (opcode >> 9) & 7;
45215: OpcodeFamily = 30; CurrentInstrCycles = 20;
45216: {{ uaecptr srca = get_ilong_prefetch(2);
45217: if ((srca & 1) != 0) {
45218: last_fault_for_exception_3 = srca;
45219: last_op_for_exception_3 = opcode;
45220: last_addr_for_exception_3 = m68k_getpc() + 6;
45221: Exception(3, 0, M68000_EXC_SRC_CPU);
45222: goto endlabel2645;
45223: }
45224: {{ uae_s16 src = get_word(srca);
45225: { uaecptr dsta = m68k_areg(regs, dstreg);
45226: if ((dsta & 1) != 0) {
45227: last_fault_for_exception_3 = dsta;
45228: last_op_for_exception_3 = opcode;
45229: last_addr_for_exception_3 = m68k_getpc() + 6;
45230: Exception(3, 0, M68000_EXC_SRC_CPU);
45231: goto endlabel2645;
45232: }
45233: { m68k_areg(regs, dstreg) += 2;
45234: CLEAR_CZNV;
45235: SET_ZFLG (((uae_s16)(src)) == 0);
45236: SET_NFLG (((uae_s16)(src)) < 0);
45237: m68k_incpc(6);
45238: fill_prefetch_0 ();
45239: put_word(dsta,src);
45240: }}}}}}endlabel2645: ;
45241: return 20;
45242: }
45243: unsigned long REGPARAM2 CPUFUNC(op_30fa_5)(uae_u32 opcode) /* MOVE */
45244: {
45245: uae_u32 dstreg = (opcode >> 9) & 7;
45246: OpcodeFamily = 30; CurrentInstrCycles = 16;
45247: {{ uaecptr srca = m68k_getpc () + 2;
45248: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
45249: if ((srca & 1) != 0) {
45250: last_fault_for_exception_3 = srca;
45251: last_op_for_exception_3 = opcode;
45252: last_addr_for_exception_3 = m68k_getpc() + 4;
45253: Exception(3, 0, M68000_EXC_SRC_CPU);
45254: goto endlabel2646;
45255: }
45256: {{ uae_s16 src = get_word(srca);
45257: { uaecptr dsta = m68k_areg(regs, dstreg);
45258: if ((dsta & 1) != 0) {
45259: last_fault_for_exception_3 = dsta;
45260: last_op_for_exception_3 = opcode;
45261: last_addr_for_exception_3 = m68k_getpc() + 4;
45262: Exception(3, 0, M68000_EXC_SRC_CPU);
45263: goto endlabel2646;
45264: }
45265: { m68k_areg(regs, dstreg) += 2;
45266: CLEAR_CZNV;
45267: SET_ZFLG (((uae_s16)(src)) == 0);
45268: SET_NFLG (((uae_s16)(src)) < 0);
45269: m68k_incpc(4);
45270: fill_prefetch_0 ();
45271: put_word(dsta,src);
45272: }}}}}}endlabel2646: ;
45273: return 16;
45274: }
45275: unsigned long REGPARAM2 CPUFUNC(op_30fb_5)(uae_u32 opcode) /* MOVE */
45276: {
45277: uae_u32 dstreg = (opcode >> 9) & 7;
45278: OpcodeFamily = 30; CurrentInstrCycles = 18;
45279: {{ uaecptr tmppc = m68k_getpc() + 2;
45280: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
45281: BusCyclePenalty += 2;
45282: if ((srca & 1) != 0) {
45283: last_fault_for_exception_3 = srca;
45284: last_op_for_exception_3 = opcode;
45285: last_addr_for_exception_3 = m68k_getpc() + 4;
45286: Exception(3, 0, M68000_EXC_SRC_CPU);
45287: goto endlabel2647;
45288: }
45289: {{ uae_s16 src = get_word(srca);
45290: { uaecptr dsta = m68k_areg(regs, dstreg);
45291: if ((dsta & 1) != 0) {
45292: last_fault_for_exception_3 = dsta;
45293: last_op_for_exception_3 = opcode;
45294: last_addr_for_exception_3 = m68k_getpc() + 4;
45295: Exception(3, 0, M68000_EXC_SRC_CPU);
45296: goto endlabel2647;
45297: }
45298: { m68k_areg(regs, dstreg) += 2;
45299: CLEAR_CZNV;
45300: SET_ZFLG (((uae_s16)(src)) == 0);
45301: SET_NFLG (((uae_s16)(src)) < 0);
45302: m68k_incpc(4);
45303: fill_prefetch_0 ();
45304: put_word(dsta,src);
45305: }}}}}}endlabel2647: ;
45306: return 18;
45307: }
45308: unsigned long REGPARAM2 CPUFUNC(op_30fc_5)(uae_u32 opcode) /* MOVE */
45309: {
45310: uae_u32 dstreg = (opcode >> 9) & 7;
45311: OpcodeFamily = 30; CurrentInstrCycles = 12;
45312: {{ uae_s16 src = get_iword_prefetch(2);
45313: { uaecptr dsta = m68k_areg(regs, dstreg);
45314: if ((dsta & 1) != 0) {
45315: last_fault_for_exception_3 = dsta;
45316: last_op_for_exception_3 = opcode;
45317: last_addr_for_exception_3 = m68k_getpc() + 4;
45318: Exception(3, 0, M68000_EXC_SRC_CPU);
45319: goto endlabel2648;
45320: }
45321: { m68k_areg(regs, dstreg) += 2;
45322: CLEAR_CZNV;
45323: SET_ZFLG (((uae_s16)(src)) == 0);
45324: SET_NFLG (((uae_s16)(src)) < 0);
45325: m68k_incpc(4);
45326: fill_prefetch_0 ();
45327: put_word(dsta,src);
45328: }}}}endlabel2648: ;
45329: return 12;
45330: }
45331: unsigned long REGPARAM2 CPUFUNC(op_3100_5)(uae_u32 opcode) /* MOVE */
45332: {
45333: uae_u32 srcreg = (opcode & 7);
45334: uae_u32 dstreg = (opcode >> 9) & 7;
45335: OpcodeFamily = 30; CurrentInstrCycles = 8;
45336: {{ uae_s16 src = m68k_dreg(regs, srcreg);
45337: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
45338: if ((dsta & 1) != 0) {
45339: last_fault_for_exception_3 = dsta;
45340: last_op_for_exception_3 = opcode;
45341: last_addr_for_exception_3 = m68k_getpc() + 2;
45342: Exception(3, 0, M68000_EXC_SRC_CPU);
45343: goto endlabel2649;
45344: }
45345: { m68k_areg (regs, dstreg) = dsta;
45346: CLEAR_CZNV;
45347: SET_ZFLG (((uae_s16)(src)) == 0);
45348: SET_NFLG (((uae_s16)(src)) < 0);
45349: m68k_incpc(2);
45350: fill_prefetch_2 ();
45351: put_word(dsta,src);
45352: }}}}endlabel2649: ;
45353: return 8;
45354: }
45355: unsigned long REGPARAM2 CPUFUNC(op_3108_5)(uae_u32 opcode) /* MOVE */
45356: {
45357: uae_u32 srcreg = (opcode & 7);
45358: uae_u32 dstreg = (opcode >> 9) & 7;
45359: OpcodeFamily = 30; CurrentInstrCycles = 8;
45360: {{ uae_s16 src = m68k_areg(regs, srcreg);
45361: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
45362: if ((dsta & 1) != 0) {
45363: last_fault_for_exception_3 = dsta;
45364: last_op_for_exception_3 = opcode;
45365: last_addr_for_exception_3 = m68k_getpc() + 2;
45366: Exception(3, 0, M68000_EXC_SRC_CPU);
45367: goto endlabel2650;
45368: }
45369: { m68k_areg (regs, dstreg) = dsta;
45370: CLEAR_CZNV;
45371: SET_ZFLG (((uae_s16)(src)) == 0);
45372: SET_NFLG (((uae_s16)(src)) < 0);
45373: m68k_incpc(2);
45374: fill_prefetch_2 ();
45375: put_word(dsta,src);
45376: }}}}endlabel2650: ;
45377: return 8;
45378: }
45379: unsigned long REGPARAM2 CPUFUNC(op_3110_5)(uae_u32 opcode) /* MOVE */
45380: {
45381: uae_u32 srcreg = (opcode & 7);
45382: uae_u32 dstreg = (opcode >> 9) & 7;
45383: OpcodeFamily = 30; CurrentInstrCycles = 12;
45384: {{ uaecptr srca = m68k_areg(regs, srcreg);
45385: if ((srca & 1) != 0) {
45386: last_fault_for_exception_3 = srca;
45387: last_op_for_exception_3 = opcode;
45388: last_addr_for_exception_3 = m68k_getpc() + 2;
45389: Exception(3, 0, M68000_EXC_SRC_CPU);
45390: goto endlabel2651;
45391: }
45392: {{ uae_s16 src = get_word(srca);
45393: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
45394: if ((dsta & 1) != 0) {
45395: last_fault_for_exception_3 = dsta;
45396: last_op_for_exception_3 = opcode;
45397: last_addr_for_exception_3 = m68k_getpc() + 2;
45398: Exception(3, 0, M68000_EXC_SRC_CPU);
45399: goto endlabel2651;
45400: }
45401: { m68k_areg (regs, dstreg) = dsta;
45402: CLEAR_CZNV;
45403: SET_ZFLG (((uae_s16)(src)) == 0);
45404: SET_NFLG (((uae_s16)(src)) < 0);
45405: m68k_incpc(2);
45406: fill_prefetch_2 ();
45407: put_word(dsta,src);
45408: }}}}}}endlabel2651: ;
45409: return 12;
45410: }
45411: unsigned long REGPARAM2 CPUFUNC(op_3118_5)(uae_u32 opcode) /* MOVE */
45412: {
45413: uae_u32 srcreg = (opcode & 7);
45414: uae_u32 dstreg = (opcode >> 9) & 7;
45415: OpcodeFamily = 30; CurrentInstrCycles = 12;
45416: {{ uaecptr srca = m68k_areg(regs, srcreg);
45417: if ((srca & 1) != 0) {
45418: last_fault_for_exception_3 = srca;
45419: last_op_for_exception_3 = opcode;
45420: last_addr_for_exception_3 = m68k_getpc() + 2;
45421: Exception(3, 0, M68000_EXC_SRC_CPU);
45422: goto endlabel2652;
45423: }
45424: {{ uae_s16 src = get_word(srca);
45425: m68k_areg(regs, srcreg) += 2;
45426: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
45427: if ((dsta & 1) != 0) {
45428: last_fault_for_exception_3 = dsta;
45429: last_op_for_exception_3 = opcode;
45430: last_addr_for_exception_3 = m68k_getpc() + 2;
45431: Exception(3, 0, M68000_EXC_SRC_CPU);
45432: goto endlabel2652;
45433: }
45434: { m68k_areg (regs, dstreg) = dsta;
45435: CLEAR_CZNV;
45436: SET_ZFLG (((uae_s16)(src)) == 0);
45437: SET_NFLG (((uae_s16)(src)) < 0);
45438: m68k_incpc(2);
45439: fill_prefetch_2 ();
45440: put_word(dsta,src);
45441: }}}}}}endlabel2652: ;
45442: return 12;
45443: }
45444: unsigned long REGPARAM2 CPUFUNC(op_3120_5)(uae_u32 opcode) /* MOVE */
45445: {
45446: uae_u32 srcreg = (opcode & 7);
45447: uae_u32 dstreg = (opcode >> 9) & 7;
45448: OpcodeFamily = 30; CurrentInstrCycles = 14;
45449: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
45450: if ((srca & 1) != 0) {
45451: last_fault_for_exception_3 = srca;
45452: last_op_for_exception_3 = opcode;
45453: last_addr_for_exception_3 = m68k_getpc() + 2;
45454: Exception(3, 0, M68000_EXC_SRC_CPU);
45455: goto endlabel2653;
45456: }
45457: {{ uae_s16 src = get_word(srca);
45458: m68k_areg (regs, srcreg) = srca;
45459: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
45460: if ((dsta & 1) != 0) {
45461: last_fault_for_exception_3 = dsta;
45462: last_op_for_exception_3 = opcode;
45463: last_addr_for_exception_3 = m68k_getpc() + 2;
45464: Exception(3, 0, M68000_EXC_SRC_CPU);
45465: goto endlabel2653;
45466: }
45467: { m68k_areg (regs, dstreg) = dsta;
45468: CLEAR_CZNV;
45469: SET_ZFLG (((uae_s16)(src)) == 0);
45470: SET_NFLG (((uae_s16)(src)) < 0);
45471: m68k_incpc(2);
45472: fill_prefetch_2 ();
45473: put_word(dsta,src);
45474: }}}}}}endlabel2653: ;
45475: return 14;
45476: }
45477: unsigned long REGPARAM2 CPUFUNC(op_3128_5)(uae_u32 opcode) /* MOVE */
45478: {
45479: uae_u32 srcreg = (opcode & 7);
45480: uae_u32 dstreg = (opcode >> 9) & 7;
45481: OpcodeFamily = 30; CurrentInstrCycles = 16;
45482: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
45483: if ((srca & 1) != 0) {
45484: last_fault_for_exception_3 = srca;
45485: last_op_for_exception_3 = opcode;
45486: last_addr_for_exception_3 = m68k_getpc() + 4;
45487: Exception(3, 0, M68000_EXC_SRC_CPU);
45488: goto endlabel2654;
45489: }
45490: {{ uae_s16 src = get_word(srca);
45491: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
45492: if ((dsta & 1) != 0) {
45493: last_fault_for_exception_3 = dsta;
45494: last_op_for_exception_3 = opcode;
45495: last_addr_for_exception_3 = m68k_getpc() + 4;
45496: Exception(3, 0, M68000_EXC_SRC_CPU);
45497: goto endlabel2654;
45498: }
45499: { m68k_areg (regs, dstreg) = dsta;
45500: CLEAR_CZNV;
45501: SET_ZFLG (((uae_s16)(src)) == 0);
45502: SET_NFLG (((uae_s16)(src)) < 0);
45503: m68k_incpc(4);
45504: fill_prefetch_0 ();
45505: put_word(dsta,src);
45506: }}}}}}endlabel2654: ;
45507: return 16;
45508: }
45509: unsigned long REGPARAM2 CPUFUNC(op_3130_5)(uae_u32 opcode) /* MOVE */
45510: {
45511: uae_u32 srcreg = (opcode & 7);
45512: uae_u32 dstreg = (opcode >> 9) & 7;
45513: OpcodeFamily = 30; CurrentInstrCycles = 18;
45514: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
45515: BusCyclePenalty += 2;
45516: if ((srca & 1) != 0) {
45517: last_fault_for_exception_3 = srca;
45518: last_op_for_exception_3 = opcode;
45519: last_addr_for_exception_3 = m68k_getpc() + 4;
45520: Exception(3, 0, M68000_EXC_SRC_CPU);
45521: goto endlabel2655;
45522: }
45523: {{ uae_s16 src = get_word(srca);
45524: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
45525: if ((dsta & 1) != 0) {
45526: last_fault_for_exception_3 = dsta;
45527: last_op_for_exception_3 = opcode;
45528: last_addr_for_exception_3 = m68k_getpc() + 4;
45529: Exception(3, 0, M68000_EXC_SRC_CPU);
45530: goto endlabel2655;
45531: }
45532: { m68k_areg (regs, dstreg) = dsta;
45533: CLEAR_CZNV;
45534: SET_ZFLG (((uae_s16)(src)) == 0);
45535: SET_NFLG (((uae_s16)(src)) < 0);
45536: m68k_incpc(4);
45537: fill_prefetch_0 ();
45538: put_word(dsta,src);
45539: }}}}}}endlabel2655: ;
45540: return 18;
45541: }
45542: unsigned long REGPARAM2 CPUFUNC(op_3138_5)(uae_u32 opcode) /* MOVE */
45543: {
45544: uae_u32 dstreg = (opcode >> 9) & 7;
45545: OpcodeFamily = 30; CurrentInstrCycles = 16;
45546: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
45547: if ((srca & 1) != 0) {
45548: last_fault_for_exception_3 = srca;
45549: last_op_for_exception_3 = opcode;
45550: last_addr_for_exception_3 = m68k_getpc() + 4;
45551: Exception(3, 0, M68000_EXC_SRC_CPU);
45552: goto endlabel2656;
45553: }
45554: {{ uae_s16 src = get_word(srca);
45555: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
45556: if ((dsta & 1) != 0) {
45557: last_fault_for_exception_3 = dsta;
45558: last_op_for_exception_3 = opcode;
45559: last_addr_for_exception_3 = m68k_getpc() + 4;
45560: Exception(3, 0, M68000_EXC_SRC_CPU);
45561: goto endlabel2656;
45562: }
45563: { m68k_areg (regs, dstreg) = dsta;
45564: CLEAR_CZNV;
45565: SET_ZFLG (((uae_s16)(src)) == 0);
45566: SET_NFLG (((uae_s16)(src)) < 0);
45567: m68k_incpc(4);
45568: fill_prefetch_0 ();
45569: put_word(dsta,src);
45570: }}}}}}endlabel2656: ;
45571: return 16;
45572: }
45573: unsigned long REGPARAM2 CPUFUNC(op_3139_5)(uae_u32 opcode) /* MOVE */
45574: {
45575: uae_u32 dstreg = (opcode >> 9) & 7;
45576: OpcodeFamily = 30; CurrentInstrCycles = 20;
45577: {{ uaecptr srca = get_ilong_prefetch(2);
45578: if ((srca & 1) != 0) {
45579: last_fault_for_exception_3 = srca;
45580: last_op_for_exception_3 = opcode;
45581: last_addr_for_exception_3 = m68k_getpc() + 6;
45582: Exception(3, 0, M68000_EXC_SRC_CPU);
45583: goto endlabel2657;
45584: }
45585: {{ uae_s16 src = get_word(srca);
45586: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
45587: if ((dsta & 1) != 0) {
45588: last_fault_for_exception_3 = dsta;
45589: last_op_for_exception_3 = opcode;
45590: last_addr_for_exception_3 = m68k_getpc() + 6;
45591: Exception(3, 0, M68000_EXC_SRC_CPU);
45592: goto endlabel2657;
45593: }
45594: { m68k_areg (regs, dstreg) = dsta;
45595: CLEAR_CZNV;
45596: SET_ZFLG (((uae_s16)(src)) == 0);
45597: SET_NFLG (((uae_s16)(src)) < 0);
45598: m68k_incpc(6);
45599: fill_prefetch_0 ();
45600: put_word(dsta,src);
45601: }}}}}}endlabel2657: ;
45602: return 20;
45603: }
45604: unsigned long REGPARAM2 CPUFUNC(op_313a_5)(uae_u32 opcode) /* MOVE */
45605: {
45606: uae_u32 dstreg = (opcode >> 9) & 7;
45607: OpcodeFamily = 30; CurrentInstrCycles = 16;
45608: {{ uaecptr srca = m68k_getpc () + 2;
45609: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
45610: if ((srca & 1) != 0) {
45611: last_fault_for_exception_3 = srca;
45612: last_op_for_exception_3 = opcode;
45613: last_addr_for_exception_3 = m68k_getpc() + 4;
45614: Exception(3, 0, M68000_EXC_SRC_CPU);
45615: goto endlabel2658;
45616: }
45617: {{ uae_s16 src = get_word(srca);
45618: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
45619: if ((dsta & 1) != 0) {
45620: last_fault_for_exception_3 = dsta;
45621: last_op_for_exception_3 = opcode;
45622: last_addr_for_exception_3 = m68k_getpc() + 4;
45623: Exception(3, 0, M68000_EXC_SRC_CPU);
45624: goto endlabel2658;
45625: }
45626: { m68k_areg (regs, dstreg) = dsta;
45627: CLEAR_CZNV;
45628: SET_ZFLG (((uae_s16)(src)) == 0);
45629: SET_NFLG (((uae_s16)(src)) < 0);
45630: m68k_incpc(4);
45631: fill_prefetch_0 ();
45632: put_word(dsta,src);
45633: }}}}}}endlabel2658: ;
45634: return 16;
45635: }
45636: unsigned long REGPARAM2 CPUFUNC(op_313b_5)(uae_u32 opcode) /* MOVE */
45637: {
45638: uae_u32 dstreg = (opcode >> 9) & 7;
45639: OpcodeFamily = 30; CurrentInstrCycles = 18;
45640: {{ uaecptr tmppc = m68k_getpc() + 2;
45641: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
45642: BusCyclePenalty += 2;
45643: if ((srca & 1) != 0) {
45644: last_fault_for_exception_3 = srca;
45645: last_op_for_exception_3 = opcode;
45646: last_addr_for_exception_3 = m68k_getpc() + 4;
45647: Exception(3, 0, M68000_EXC_SRC_CPU);
45648: goto endlabel2659;
45649: }
45650: {{ uae_s16 src = get_word(srca);
45651: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
45652: if ((dsta & 1) != 0) {
45653: last_fault_for_exception_3 = dsta;
45654: last_op_for_exception_3 = opcode;
45655: last_addr_for_exception_3 = m68k_getpc() + 4;
45656: Exception(3, 0, M68000_EXC_SRC_CPU);
45657: goto endlabel2659;
45658: }
45659: { m68k_areg (regs, dstreg) = dsta;
45660: CLEAR_CZNV;
45661: SET_ZFLG (((uae_s16)(src)) == 0);
45662: SET_NFLG (((uae_s16)(src)) < 0);
45663: m68k_incpc(4);
45664: fill_prefetch_0 ();
45665: put_word(dsta,src);
45666: }}}}}}endlabel2659: ;
45667: return 18;
45668: }
45669: unsigned long REGPARAM2 CPUFUNC(op_313c_5)(uae_u32 opcode) /* MOVE */
45670: {
45671: uae_u32 dstreg = (opcode >> 9) & 7;
45672: OpcodeFamily = 30; CurrentInstrCycles = 12;
45673: {{ uae_s16 src = get_iword_prefetch(2);
45674: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
45675: if ((dsta & 1) != 0) {
45676: last_fault_for_exception_3 = dsta;
45677: last_op_for_exception_3 = opcode;
45678: last_addr_for_exception_3 = m68k_getpc() + 4;
45679: Exception(3, 0, M68000_EXC_SRC_CPU);
45680: goto endlabel2660;
45681: }
45682: { m68k_areg (regs, dstreg) = dsta;
45683: CLEAR_CZNV;
45684: SET_ZFLG (((uae_s16)(src)) == 0);
45685: SET_NFLG (((uae_s16)(src)) < 0);
45686: m68k_incpc(4);
45687: fill_prefetch_0 ();
45688: put_word(dsta,src);
45689: }}}}endlabel2660: ;
45690: return 12;
45691: }
45692: unsigned long REGPARAM2 CPUFUNC(op_3140_5)(uae_u32 opcode) /* MOVE */
45693: {
45694: uae_u32 srcreg = (opcode & 7);
45695: uae_u32 dstreg = (opcode >> 9) & 7;
45696: OpcodeFamily = 30; CurrentInstrCycles = 12;
45697: {{ uae_s16 src = m68k_dreg(regs, srcreg);
45698: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
45699: if ((dsta & 1) != 0) {
45700: last_fault_for_exception_3 = dsta;
45701: last_op_for_exception_3 = opcode;
45702: last_addr_for_exception_3 = m68k_getpc() + 4;
45703: Exception(3, 0, M68000_EXC_SRC_CPU);
45704: goto endlabel2661;
45705: }
45706: { CLEAR_CZNV;
45707: SET_ZFLG (((uae_s16)(src)) == 0);
45708: SET_NFLG (((uae_s16)(src)) < 0);
45709: m68k_incpc(4);
45710: fill_prefetch_0 ();
45711: put_word(dsta,src);
45712: }}}}endlabel2661: ;
45713: return 12;
45714: }
45715: unsigned long REGPARAM2 CPUFUNC(op_3148_5)(uae_u32 opcode) /* MOVE */
45716: {
45717: uae_u32 srcreg = (opcode & 7);
45718: uae_u32 dstreg = (opcode >> 9) & 7;
45719: OpcodeFamily = 30; CurrentInstrCycles = 12;
45720: {{ uae_s16 src = m68k_areg(regs, srcreg);
45721: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
45722: if ((dsta & 1) != 0) {
45723: last_fault_for_exception_3 = dsta;
45724: last_op_for_exception_3 = opcode;
45725: last_addr_for_exception_3 = m68k_getpc() + 4;
45726: Exception(3, 0, M68000_EXC_SRC_CPU);
45727: goto endlabel2662;
45728: }
45729: { CLEAR_CZNV;
45730: SET_ZFLG (((uae_s16)(src)) == 0);
45731: SET_NFLG (((uae_s16)(src)) < 0);
45732: m68k_incpc(4);
45733: fill_prefetch_0 ();
45734: put_word(dsta,src);
45735: }}}}endlabel2662: ;
45736: return 12;
45737: }
45738: unsigned long REGPARAM2 CPUFUNC(op_3150_5)(uae_u32 opcode) /* MOVE */
45739: {
45740: uae_u32 srcreg = (opcode & 7);
45741: uae_u32 dstreg = (opcode >> 9) & 7;
45742: OpcodeFamily = 30; CurrentInstrCycles = 16;
45743: {{ uaecptr srca = m68k_areg(regs, srcreg);
45744: if ((srca & 1) != 0) {
45745: last_fault_for_exception_3 = srca;
45746: last_op_for_exception_3 = opcode;
45747: last_addr_for_exception_3 = m68k_getpc() + 2;
45748: Exception(3, 0, M68000_EXC_SRC_CPU);
45749: goto endlabel2663;
45750: }
45751: {{ uae_s16 src = get_word(srca);
45752: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
45753: if ((dsta & 1) != 0) {
45754: last_fault_for_exception_3 = dsta;
45755: last_op_for_exception_3 = opcode;
45756: last_addr_for_exception_3 = m68k_getpc() + 4;
45757: Exception(3, 0, M68000_EXC_SRC_CPU);
45758: goto endlabel2663;
45759: }
45760: { CLEAR_CZNV;
45761: SET_ZFLG (((uae_s16)(src)) == 0);
45762: SET_NFLG (((uae_s16)(src)) < 0);
45763: m68k_incpc(4);
45764: fill_prefetch_0 ();
45765: put_word(dsta,src);
45766: }}}}}}endlabel2663: ;
45767: return 16;
45768: }
45769: unsigned long REGPARAM2 CPUFUNC(op_3158_5)(uae_u32 opcode) /* MOVE */
45770: {
45771: uae_u32 srcreg = (opcode & 7);
45772: uae_u32 dstreg = (opcode >> 9) & 7;
45773: OpcodeFamily = 30; CurrentInstrCycles = 16;
45774: {{ uaecptr srca = m68k_areg(regs, srcreg);
45775: if ((srca & 1) != 0) {
45776: last_fault_for_exception_3 = srca;
45777: last_op_for_exception_3 = opcode;
45778: last_addr_for_exception_3 = m68k_getpc() + 2;
45779: Exception(3, 0, M68000_EXC_SRC_CPU);
45780: goto endlabel2664;
45781: }
45782: {{ uae_s16 src = get_word(srca);
45783: m68k_areg(regs, srcreg) += 2;
45784: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
45785: if ((dsta & 1) != 0) {
45786: last_fault_for_exception_3 = dsta;
45787: last_op_for_exception_3 = opcode;
45788: last_addr_for_exception_3 = m68k_getpc() + 4;
45789: Exception(3, 0, M68000_EXC_SRC_CPU);
45790: goto endlabel2664;
45791: }
45792: { CLEAR_CZNV;
45793: SET_ZFLG (((uae_s16)(src)) == 0);
45794: SET_NFLG (((uae_s16)(src)) < 0);
45795: m68k_incpc(4);
45796: fill_prefetch_0 ();
45797: put_word(dsta,src);
45798: }}}}}}endlabel2664: ;
45799: return 16;
45800: }
45801: unsigned long REGPARAM2 CPUFUNC(op_3160_5)(uae_u32 opcode) /* MOVE */
45802: {
45803: uae_u32 srcreg = (opcode & 7);
45804: uae_u32 dstreg = (opcode >> 9) & 7;
45805: OpcodeFamily = 30; CurrentInstrCycles = 18;
45806: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
45807: if ((srca & 1) != 0) {
45808: last_fault_for_exception_3 = srca;
45809: last_op_for_exception_3 = opcode;
45810: last_addr_for_exception_3 = m68k_getpc() + 2;
45811: Exception(3, 0, M68000_EXC_SRC_CPU);
45812: goto endlabel2665;
45813: }
45814: {{ uae_s16 src = get_word(srca);
45815: m68k_areg (regs, srcreg) = srca;
45816: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
45817: if ((dsta & 1) != 0) {
45818: last_fault_for_exception_3 = dsta;
45819: last_op_for_exception_3 = opcode;
45820: last_addr_for_exception_3 = m68k_getpc() + 4;
45821: Exception(3, 0, M68000_EXC_SRC_CPU);
45822: goto endlabel2665;
45823: }
45824: { CLEAR_CZNV;
45825: SET_ZFLG (((uae_s16)(src)) == 0);
45826: SET_NFLG (((uae_s16)(src)) < 0);
45827: m68k_incpc(4);
45828: fill_prefetch_0 ();
45829: put_word(dsta,src);
45830: }}}}}}endlabel2665: ;
45831: return 18;
45832: }
45833: unsigned long REGPARAM2 CPUFUNC(op_3168_5)(uae_u32 opcode) /* MOVE */
45834: {
45835: uae_u32 srcreg = (opcode & 7);
45836: uae_u32 dstreg = (opcode >> 9) & 7;
45837: OpcodeFamily = 30; CurrentInstrCycles = 20;
45838: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
45839: if ((srca & 1) != 0) {
45840: last_fault_for_exception_3 = srca;
45841: last_op_for_exception_3 = opcode;
45842: last_addr_for_exception_3 = m68k_getpc() + 4;
45843: Exception(3, 0, M68000_EXC_SRC_CPU);
45844: goto endlabel2666;
45845: }
45846: {{ uae_s16 src = get_word(srca);
45847: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
45848: if ((dsta & 1) != 0) {
45849: last_fault_for_exception_3 = dsta;
45850: last_op_for_exception_3 = opcode;
45851: last_addr_for_exception_3 = m68k_getpc() + 6;
45852: Exception(3, 0, M68000_EXC_SRC_CPU);
45853: goto endlabel2666;
45854: }
45855: { CLEAR_CZNV;
45856: SET_ZFLG (((uae_s16)(src)) == 0);
45857: SET_NFLG (((uae_s16)(src)) < 0);
45858: m68k_incpc(6);
45859: fill_prefetch_0 ();
45860: put_word(dsta,src);
45861: }}}}}}endlabel2666: ;
45862: return 20;
45863: }
45864: unsigned long REGPARAM2 CPUFUNC(op_3170_5)(uae_u32 opcode) /* MOVE */
45865: {
45866: uae_u32 srcreg = (opcode & 7);
45867: uae_u32 dstreg = (opcode >> 9) & 7;
45868: OpcodeFamily = 30; CurrentInstrCycles = 22;
45869: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
45870: BusCyclePenalty += 2;
45871: if ((srca & 1) != 0) {
45872: last_fault_for_exception_3 = srca;
45873: last_op_for_exception_3 = opcode;
45874: last_addr_for_exception_3 = m68k_getpc() + 4;
45875: Exception(3, 0, M68000_EXC_SRC_CPU);
45876: goto endlabel2667;
45877: }
45878: {{ uae_s16 src = get_word(srca);
45879: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
45880: if ((dsta & 1) != 0) {
45881: last_fault_for_exception_3 = dsta;
45882: last_op_for_exception_3 = opcode;
45883: last_addr_for_exception_3 = m68k_getpc() + 6;
45884: Exception(3, 0, M68000_EXC_SRC_CPU);
45885: goto endlabel2667;
45886: }
45887: { CLEAR_CZNV;
45888: SET_ZFLG (((uae_s16)(src)) == 0);
45889: SET_NFLG (((uae_s16)(src)) < 0);
45890: m68k_incpc(6);
45891: fill_prefetch_0 ();
45892: put_word(dsta,src);
45893: }}}}}}endlabel2667: ;
45894: return 22;
45895: }
45896: unsigned long REGPARAM2 CPUFUNC(op_3178_5)(uae_u32 opcode) /* MOVE */
45897: {
45898: uae_u32 dstreg = (opcode >> 9) & 7;
45899: OpcodeFamily = 30; CurrentInstrCycles = 20;
45900: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
45901: if ((srca & 1) != 0) {
45902: last_fault_for_exception_3 = srca;
45903: last_op_for_exception_3 = opcode;
45904: last_addr_for_exception_3 = m68k_getpc() + 4;
45905: Exception(3, 0, M68000_EXC_SRC_CPU);
45906: goto endlabel2668;
45907: }
45908: {{ uae_s16 src = get_word(srca);
45909: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
45910: if ((dsta & 1) != 0) {
45911: last_fault_for_exception_3 = dsta;
45912: last_op_for_exception_3 = opcode;
45913: last_addr_for_exception_3 = m68k_getpc() + 6;
45914: Exception(3, 0, M68000_EXC_SRC_CPU);
45915: goto endlabel2668;
45916: }
45917: { CLEAR_CZNV;
45918: SET_ZFLG (((uae_s16)(src)) == 0);
45919: SET_NFLG (((uae_s16)(src)) < 0);
45920: m68k_incpc(6);
45921: fill_prefetch_0 ();
45922: put_word(dsta,src);
45923: }}}}}}endlabel2668: ;
45924: return 20;
45925: }
45926: unsigned long REGPARAM2 CPUFUNC(op_3179_5)(uae_u32 opcode) /* MOVE */
45927: {
45928: uae_u32 dstreg = (opcode >> 9) & 7;
45929: OpcodeFamily = 30; CurrentInstrCycles = 24;
45930: {{ uaecptr srca = get_ilong_prefetch(2);
45931: if ((srca & 1) != 0) {
45932: last_fault_for_exception_3 = srca;
45933: last_op_for_exception_3 = opcode;
45934: last_addr_for_exception_3 = m68k_getpc() + 6;
45935: Exception(3, 0, M68000_EXC_SRC_CPU);
45936: goto endlabel2669;
45937: }
45938: {{ uae_s16 src = get_word(srca);
45939: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(6);
45940: if ((dsta & 1) != 0) {
45941: last_fault_for_exception_3 = dsta;
45942: last_op_for_exception_3 = opcode;
45943: last_addr_for_exception_3 = m68k_getpc() + 8;
45944: Exception(3, 0, M68000_EXC_SRC_CPU);
45945: goto endlabel2669;
45946: }
45947: { CLEAR_CZNV;
45948: SET_ZFLG (((uae_s16)(src)) == 0);
45949: SET_NFLG (((uae_s16)(src)) < 0);
45950: m68k_incpc(8);
45951: fill_prefetch_0 ();
45952: put_word(dsta,src);
45953: }}}}}}endlabel2669: ;
45954: return 24;
45955: }
45956: unsigned long REGPARAM2 CPUFUNC(op_317a_5)(uae_u32 opcode) /* MOVE */
45957: {
45958: uae_u32 dstreg = (opcode >> 9) & 7;
45959: OpcodeFamily = 30; CurrentInstrCycles = 20;
45960: {{ uaecptr srca = m68k_getpc () + 2;
45961: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
45962: if ((srca & 1) != 0) {
45963: last_fault_for_exception_3 = srca;
45964: last_op_for_exception_3 = opcode;
45965: last_addr_for_exception_3 = m68k_getpc() + 4;
45966: Exception(3, 0, M68000_EXC_SRC_CPU);
45967: goto endlabel2670;
45968: }
45969: {{ uae_s16 src = get_word(srca);
45970: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
45971: if ((dsta & 1) != 0) {
45972: last_fault_for_exception_3 = dsta;
45973: last_op_for_exception_3 = opcode;
45974: last_addr_for_exception_3 = m68k_getpc() + 6;
45975: Exception(3, 0, M68000_EXC_SRC_CPU);
45976: goto endlabel2670;
45977: }
45978: { CLEAR_CZNV;
45979: SET_ZFLG (((uae_s16)(src)) == 0);
45980: SET_NFLG (((uae_s16)(src)) < 0);
45981: m68k_incpc(6);
45982: fill_prefetch_0 ();
45983: put_word(dsta,src);
45984: }}}}}}endlabel2670: ;
45985: return 20;
45986: }
45987: unsigned long REGPARAM2 CPUFUNC(op_317b_5)(uae_u32 opcode) /* MOVE */
45988: {
45989: uae_u32 dstreg = (opcode >> 9) & 7;
45990: OpcodeFamily = 30; CurrentInstrCycles = 22;
45991: {{ uaecptr tmppc = m68k_getpc() + 2;
45992: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
45993: BusCyclePenalty += 2;
45994: if ((srca & 1) != 0) {
45995: last_fault_for_exception_3 = srca;
45996: last_op_for_exception_3 = opcode;
45997: last_addr_for_exception_3 = m68k_getpc() + 4;
45998: Exception(3, 0, M68000_EXC_SRC_CPU);
45999: goto endlabel2671;
46000: }
46001: {{ uae_s16 src = get_word(srca);
46002: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
46003: if ((dsta & 1) != 0) {
46004: last_fault_for_exception_3 = dsta;
46005: last_op_for_exception_3 = opcode;
46006: last_addr_for_exception_3 = m68k_getpc() + 6;
46007: Exception(3, 0, M68000_EXC_SRC_CPU);
46008: goto endlabel2671;
46009: }
46010: { CLEAR_CZNV;
46011: SET_ZFLG (((uae_s16)(src)) == 0);
46012: SET_NFLG (((uae_s16)(src)) < 0);
46013: m68k_incpc(6);
46014: fill_prefetch_0 ();
46015: put_word(dsta,src);
46016: }}}}}}endlabel2671: ;
46017: return 22;
46018: }
46019: unsigned long REGPARAM2 CPUFUNC(op_317c_5)(uae_u32 opcode) /* MOVE */
46020: {
46021: uae_u32 dstreg = (opcode >> 9) & 7;
46022: OpcodeFamily = 30; CurrentInstrCycles = 16;
46023: {{ uae_s16 src = get_iword_prefetch(2);
46024: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
46025: if ((dsta & 1) != 0) {
46026: last_fault_for_exception_3 = dsta;
46027: last_op_for_exception_3 = opcode;
46028: last_addr_for_exception_3 = m68k_getpc() + 6;
46029: Exception(3, 0, M68000_EXC_SRC_CPU);
46030: goto endlabel2672;
46031: }
46032: { CLEAR_CZNV;
46033: SET_ZFLG (((uae_s16)(src)) == 0);
46034: SET_NFLG (((uae_s16)(src)) < 0);
46035: m68k_incpc(6);
46036: fill_prefetch_0 ();
46037: put_word(dsta,src);
46038: }}}}endlabel2672: ;
46039: return 16;
46040: }
46041: unsigned long REGPARAM2 CPUFUNC(op_3180_5)(uae_u32 opcode) /* MOVE */
46042: {
46043: uae_u32 srcreg = (opcode & 7);
46044: uae_u32 dstreg = (opcode >> 9) & 7;
46045: OpcodeFamily = 30; CurrentInstrCycles = 14;
46046: {{ uae_s16 src = m68k_dreg(regs, srcreg);
46047: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
46048: BusCyclePenalty += 2;
46049: if ((dsta & 1) != 0) {
46050: last_fault_for_exception_3 = dsta;
46051: last_op_for_exception_3 = opcode;
46052: last_addr_for_exception_3 = m68k_getpc() + 4;
46053: Exception(3, 0, M68000_EXC_SRC_CPU);
46054: goto endlabel2673;
46055: }
46056: { CLEAR_CZNV;
46057: SET_ZFLG (((uae_s16)(src)) == 0);
46058: SET_NFLG (((uae_s16)(src)) < 0);
46059: m68k_incpc(4);
46060: fill_prefetch_0 ();
46061: put_word(dsta,src);
46062: }}}}endlabel2673: ;
46063: return 14;
46064: }
46065: unsigned long REGPARAM2 CPUFUNC(op_3188_5)(uae_u32 opcode) /* MOVE */
46066: {
46067: uae_u32 srcreg = (opcode & 7);
46068: uae_u32 dstreg = (opcode >> 9) & 7;
46069: OpcodeFamily = 30; CurrentInstrCycles = 14;
46070: {{ uae_s16 src = m68k_areg(regs, srcreg);
46071: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
46072: BusCyclePenalty += 2;
46073: if ((dsta & 1) != 0) {
46074: last_fault_for_exception_3 = dsta;
46075: last_op_for_exception_3 = opcode;
46076: last_addr_for_exception_3 = m68k_getpc() + 4;
46077: Exception(3, 0, M68000_EXC_SRC_CPU);
46078: goto endlabel2674;
46079: }
46080: { CLEAR_CZNV;
46081: SET_ZFLG (((uae_s16)(src)) == 0);
46082: SET_NFLG (((uae_s16)(src)) < 0);
46083: m68k_incpc(4);
46084: fill_prefetch_0 ();
46085: put_word(dsta,src);
46086: }}}}endlabel2674: ;
46087: return 14;
46088: }
46089: unsigned long REGPARAM2 CPUFUNC(op_3190_5)(uae_u32 opcode) /* MOVE */
46090: {
46091: uae_u32 srcreg = (opcode & 7);
46092: uae_u32 dstreg = (opcode >> 9) & 7;
46093: OpcodeFamily = 30; CurrentInstrCycles = 18;
46094: {{ uaecptr srca = m68k_areg(regs, srcreg);
46095: if ((srca & 1) != 0) {
46096: last_fault_for_exception_3 = srca;
46097: last_op_for_exception_3 = opcode;
46098: last_addr_for_exception_3 = m68k_getpc() + 2;
46099: Exception(3, 0, M68000_EXC_SRC_CPU);
46100: goto endlabel2675;
46101: }
46102: {{ uae_s16 src = get_word(srca);
46103: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
46104: BusCyclePenalty += 2;
46105: if ((dsta & 1) != 0) {
46106: last_fault_for_exception_3 = dsta;
46107: last_op_for_exception_3 = opcode;
46108: last_addr_for_exception_3 = m68k_getpc() + 4;
46109: Exception(3, 0, M68000_EXC_SRC_CPU);
46110: goto endlabel2675;
46111: }
46112: { CLEAR_CZNV;
46113: SET_ZFLG (((uae_s16)(src)) == 0);
46114: SET_NFLG (((uae_s16)(src)) < 0);
46115: m68k_incpc(4);
46116: fill_prefetch_0 ();
46117: put_word(dsta,src);
46118: }}}}}}endlabel2675: ;
46119: return 18;
46120: }
46121: unsigned long REGPARAM2 CPUFUNC(op_3198_5)(uae_u32 opcode) /* MOVE */
46122: {
46123: uae_u32 srcreg = (opcode & 7);
46124: uae_u32 dstreg = (opcode >> 9) & 7;
46125: OpcodeFamily = 30; CurrentInstrCycles = 18;
46126: {{ uaecptr srca = m68k_areg(regs, srcreg);
46127: if ((srca & 1) != 0) {
46128: last_fault_for_exception_3 = srca;
46129: last_op_for_exception_3 = opcode;
46130: last_addr_for_exception_3 = m68k_getpc() + 2;
46131: Exception(3, 0, M68000_EXC_SRC_CPU);
46132: goto endlabel2676;
46133: }
46134: {{ uae_s16 src = get_word(srca);
46135: m68k_areg(regs, srcreg) += 2;
46136: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
46137: BusCyclePenalty += 2;
46138: if ((dsta & 1) != 0) {
46139: last_fault_for_exception_3 = dsta;
46140: last_op_for_exception_3 = opcode;
46141: last_addr_for_exception_3 = m68k_getpc() + 4;
46142: Exception(3, 0, M68000_EXC_SRC_CPU);
46143: goto endlabel2676;
46144: }
46145: { CLEAR_CZNV;
46146: SET_ZFLG (((uae_s16)(src)) == 0);
46147: SET_NFLG (((uae_s16)(src)) < 0);
46148: m68k_incpc(4);
46149: fill_prefetch_0 ();
46150: put_word(dsta,src);
46151: }}}}}}endlabel2676: ;
46152: return 18;
46153: }
46154: unsigned long REGPARAM2 CPUFUNC(op_31a0_5)(uae_u32 opcode) /* MOVE */
46155: {
46156: uae_u32 srcreg = (opcode & 7);
46157: uae_u32 dstreg = (opcode >> 9) & 7;
46158: OpcodeFamily = 30; CurrentInstrCycles = 20;
46159: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
46160: if ((srca & 1) != 0) {
46161: last_fault_for_exception_3 = srca;
46162: last_op_for_exception_3 = opcode;
46163: last_addr_for_exception_3 = m68k_getpc() + 2;
46164: Exception(3, 0, M68000_EXC_SRC_CPU);
46165: goto endlabel2677;
46166: }
46167: {{ uae_s16 src = get_word(srca);
46168: m68k_areg (regs, srcreg) = srca;
46169: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
46170: BusCyclePenalty += 2;
46171: if ((dsta & 1) != 0) {
46172: last_fault_for_exception_3 = dsta;
46173: last_op_for_exception_3 = opcode;
46174: last_addr_for_exception_3 = m68k_getpc() + 4;
46175: Exception(3, 0, M68000_EXC_SRC_CPU);
46176: goto endlabel2677;
46177: }
46178: { CLEAR_CZNV;
46179: SET_ZFLG (((uae_s16)(src)) == 0);
46180: SET_NFLG (((uae_s16)(src)) < 0);
46181: m68k_incpc(4);
46182: fill_prefetch_0 ();
46183: put_word(dsta,src);
46184: }}}}}}endlabel2677: ;
46185: return 20;
46186: }
46187: unsigned long REGPARAM2 CPUFUNC(op_31a8_5)(uae_u32 opcode) /* MOVE */
46188: {
46189: uae_u32 srcreg = (opcode & 7);
46190: uae_u32 dstreg = (opcode >> 9) & 7;
46191: OpcodeFamily = 30; CurrentInstrCycles = 22;
46192: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
46193: if ((srca & 1) != 0) {
46194: last_fault_for_exception_3 = srca;
46195: last_op_for_exception_3 = opcode;
46196: last_addr_for_exception_3 = m68k_getpc() + 4;
46197: Exception(3, 0, M68000_EXC_SRC_CPU);
46198: goto endlabel2678;
46199: }
46200: {{ uae_s16 src = get_word(srca);
46201: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
46202: BusCyclePenalty += 2;
46203: if ((dsta & 1) != 0) {
46204: last_fault_for_exception_3 = dsta;
46205: last_op_for_exception_3 = opcode;
46206: last_addr_for_exception_3 = m68k_getpc() + 6;
46207: Exception(3, 0, M68000_EXC_SRC_CPU);
46208: goto endlabel2678;
46209: }
46210: { CLEAR_CZNV;
46211: SET_ZFLG (((uae_s16)(src)) == 0);
46212: SET_NFLG (((uae_s16)(src)) < 0);
46213: m68k_incpc(6);
46214: fill_prefetch_0 ();
46215: put_word(dsta,src);
46216: }}}}}}endlabel2678: ;
46217: return 22;
46218: }
46219: unsigned long REGPARAM2 CPUFUNC(op_31b0_5)(uae_u32 opcode) /* MOVE */
46220: {
46221: uae_u32 srcreg = (opcode & 7);
46222: uae_u32 dstreg = (opcode >> 9) & 7;
46223: OpcodeFamily = 30; CurrentInstrCycles = 24;
46224: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
46225: BusCyclePenalty += 2;
46226: if ((srca & 1) != 0) {
46227: last_fault_for_exception_3 = srca;
46228: last_op_for_exception_3 = opcode;
46229: last_addr_for_exception_3 = m68k_getpc() + 4;
46230: Exception(3, 0, M68000_EXC_SRC_CPU);
46231: goto endlabel2679;
46232: }
46233: {{ uae_s16 src = get_word(srca);
46234: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
46235: BusCyclePenalty += 2;
46236: if ((dsta & 1) != 0) {
46237: last_fault_for_exception_3 = dsta;
46238: last_op_for_exception_3 = opcode;
46239: last_addr_for_exception_3 = m68k_getpc() + 6;
46240: Exception(3, 0, M68000_EXC_SRC_CPU);
46241: goto endlabel2679;
46242: }
46243: { CLEAR_CZNV;
46244: SET_ZFLG (((uae_s16)(src)) == 0);
46245: SET_NFLG (((uae_s16)(src)) < 0);
46246: m68k_incpc(6);
46247: fill_prefetch_0 ();
46248: put_word(dsta,src);
46249: }}}}}}endlabel2679: ;
46250: return 24;
46251: }
46252: unsigned long REGPARAM2 CPUFUNC(op_31b8_5)(uae_u32 opcode) /* MOVE */
46253: {
46254: uae_u32 dstreg = (opcode >> 9) & 7;
46255: OpcodeFamily = 30; CurrentInstrCycles = 22;
46256: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
46257: if ((srca & 1) != 0) {
46258: last_fault_for_exception_3 = srca;
46259: last_op_for_exception_3 = opcode;
46260: last_addr_for_exception_3 = m68k_getpc() + 4;
46261: Exception(3, 0, M68000_EXC_SRC_CPU);
46262: goto endlabel2680;
46263: }
46264: {{ uae_s16 src = get_word(srca);
46265: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
46266: BusCyclePenalty += 2;
46267: if ((dsta & 1) != 0) {
46268: last_fault_for_exception_3 = dsta;
46269: last_op_for_exception_3 = opcode;
46270: last_addr_for_exception_3 = m68k_getpc() + 6;
46271: Exception(3, 0, M68000_EXC_SRC_CPU);
46272: goto endlabel2680;
46273: }
46274: { CLEAR_CZNV;
46275: SET_ZFLG (((uae_s16)(src)) == 0);
46276: SET_NFLG (((uae_s16)(src)) < 0);
46277: m68k_incpc(6);
46278: fill_prefetch_0 ();
46279: put_word(dsta,src);
46280: }}}}}}endlabel2680: ;
46281: return 22;
46282: }
46283: unsigned long REGPARAM2 CPUFUNC(op_31b9_5)(uae_u32 opcode) /* MOVE */
46284: {
46285: uae_u32 dstreg = (opcode >> 9) & 7;
46286: OpcodeFamily = 30; CurrentInstrCycles = 26;
46287: {{ uaecptr srca = get_ilong_prefetch(2);
46288: if ((srca & 1) != 0) {
46289: last_fault_for_exception_3 = srca;
46290: last_op_for_exception_3 = opcode;
46291: last_addr_for_exception_3 = m68k_getpc() + 6;
46292: Exception(3, 0, M68000_EXC_SRC_CPU);
46293: goto endlabel2681;
46294: }
46295: {{ uae_s16 src = get_word(srca);
46296: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(6));
46297: BusCyclePenalty += 2;
46298: if ((dsta & 1) != 0) {
46299: last_fault_for_exception_3 = dsta;
46300: last_op_for_exception_3 = opcode;
46301: last_addr_for_exception_3 = m68k_getpc() + 8;
46302: Exception(3, 0, M68000_EXC_SRC_CPU);
46303: goto endlabel2681;
46304: }
46305: { CLEAR_CZNV;
46306: SET_ZFLG (((uae_s16)(src)) == 0);
46307: SET_NFLG (((uae_s16)(src)) < 0);
46308: m68k_incpc(8);
46309: fill_prefetch_0 ();
46310: put_word(dsta,src);
46311: }}}}}}endlabel2681: ;
46312: return 26;
46313: }
46314: unsigned long REGPARAM2 CPUFUNC(op_31ba_5)(uae_u32 opcode) /* MOVE */
46315: {
46316: uae_u32 dstreg = (opcode >> 9) & 7;
46317: OpcodeFamily = 30; CurrentInstrCycles = 22;
46318: {{ uaecptr srca = m68k_getpc () + 2;
46319: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
46320: if ((srca & 1) != 0) {
46321: last_fault_for_exception_3 = srca;
46322: last_op_for_exception_3 = opcode;
46323: last_addr_for_exception_3 = m68k_getpc() + 4;
46324: Exception(3, 0, M68000_EXC_SRC_CPU);
46325: goto endlabel2682;
46326: }
46327: {{ uae_s16 src = get_word(srca);
46328: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
46329: BusCyclePenalty += 2;
46330: if ((dsta & 1) != 0) {
46331: last_fault_for_exception_3 = dsta;
46332: last_op_for_exception_3 = opcode;
46333: last_addr_for_exception_3 = m68k_getpc() + 6;
46334: Exception(3, 0, M68000_EXC_SRC_CPU);
46335: goto endlabel2682;
46336: }
46337: { CLEAR_CZNV;
46338: SET_ZFLG (((uae_s16)(src)) == 0);
46339: SET_NFLG (((uae_s16)(src)) < 0);
46340: m68k_incpc(6);
46341: fill_prefetch_0 ();
46342: put_word(dsta,src);
46343: }}}}}}endlabel2682: ;
46344: return 22;
46345: }
46346: unsigned long REGPARAM2 CPUFUNC(op_31bb_5)(uae_u32 opcode) /* MOVE */
46347: {
46348: uae_u32 dstreg = (opcode >> 9) & 7;
46349: OpcodeFamily = 30; CurrentInstrCycles = 24;
46350: {{ uaecptr tmppc = m68k_getpc() + 2;
46351: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
46352: BusCyclePenalty += 2;
46353: if ((srca & 1) != 0) {
46354: last_fault_for_exception_3 = srca;
46355: last_op_for_exception_3 = opcode;
46356: last_addr_for_exception_3 = m68k_getpc() + 4;
46357: Exception(3, 0, M68000_EXC_SRC_CPU);
46358: goto endlabel2683;
46359: }
46360: {{ uae_s16 src = get_word(srca);
46361: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
46362: BusCyclePenalty += 2;
46363: if ((dsta & 1) != 0) {
46364: last_fault_for_exception_3 = dsta;
46365: last_op_for_exception_3 = opcode;
46366: last_addr_for_exception_3 = m68k_getpc() + 6;
46367: Exception(3, 0, M68000_EXC_SRC_CPU);
46368: goto endlabel2683;
46369: }
46370: { CLEAR_CZNV;
46371: SET_ZFLG (((uae_s16)(src)) == 0);
46372: SET_NFLG (((uae_s16)(src)) < 0);
46373: m68k_incpc(6);
46374: fill_prefetch_0 ();
46375: put_word(dsta,src);
46376: }}}}}}endlabel2683: ;
46377: return 24;
46378: }
46379: unsigned long REGPARAM2 CPUFUNC(op_31bc_5)(uae_u32 opcode) /* MOVE */
46380: {
46381: uae_u32 dstreg = (opcode >> 9) & 7;
46382: OpcodeFamily = 30; CurrentInstrCycles = 18;
46383: {{ uae_s16 src = get_iword_prefetch(2);
46384: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
46385: BusCyclePenalty += 2;
46386: if ((dsta & 1) != 0) {
46387: last_fault_for_exception_3 = dsta;
46388: last_op_for_exception_3 = opcode;
46389: last_addr_for_exception_3 = m68k_getpc() + 6;
46390: Exception(3, 0, M68000_EXC_SRC_CPU);
46391: goto endlabel2684;
46392: }
46393: { CLEAR_CZNV;
46394: SET_ZFLG (((uae_s16)(src)) == 0);
46395: SET_NFLG (((uae_s16)(src)) < 0);
46396: m68k_incpc(6);
46397: fill_prefetch_0 ();
46398: put_word(dsta,src);
46399: }}}}endlabel2684: ;
46400: return 18;
46401: }
46402: unsigned long REGPARAM2 CPUFUNC(op_31c0_5)(uae_u32 opcode) /* MOVE */
46403: {
46404: uae_u32 srcreg = (opcode & 7);
46405: OpcodeFamily = 30; CurrentInstrCycles = 12;
46406: {{ uae_s16 src = m68k_dreg(regs, srcreg);
46407: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
46408: if ((dsta & 1) != 0) {
46409: last_fault_for_exception_3 = dsta;
46410: last_op_for_exception_3 = opcode;
46411: last_addr_for_exception_3 = m68k_getpc() + 4;
46412: Exception(3, 0, M68000_EXC_SRC_CPU);
46413: goto endlabel2685;
46414: }
46415: { CLEAR_CZNV;
46416: SET_ZFLG (((uae_s16)(src)) == 0);
46417: SET_NFLG (((uae_s16)(src)) < 0);
46418: m68k_incpc(4);
46419: fill_prefetch_0 ();
46420: put_word(dsta,src);
46421: }}}}endlabel2685: ;
46422: return 12;
46423: }
46424: unsigned long REGPARAM2 CPUFUNC(op_31c8_5)(uae_u32 opcode) /* MOVE */
46425: {
46426: uae_u32 srcreg = (opcode & 7);
46427: OpcodeFamily = 30; CurrentInstrCycles = 12;
46428: {{ uae_s16 src = m68k_areg(regs, srcreg);
46429: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
46430: if ((dsta & 1) != 0) {
46431: last_fault_for_exception_3 = dsta;
46432: last_op_for_exception_3 = opcode;
46433: last_addr_for_exception_3 = m68k_getpc() + 4;
46434: Exception(3, 0, M68000_EXC_SRC_CPU);
46435: goto endlabel2686;
46436: }
46437: { CLEAR_CZNV;
46438: SET_ZFLG (((uae_s16)(src)) == 0);
46439: SET_NFLG (((uae_s16)(src)) < 0);
46440: m68k_incpc(4);
46441: fill_prefetch_0 ();
46442: put_word(dsta,src);
46443: }}}}endlabel2686: ;
46444: return 12;
46445: }
46446: unsigned long REGPARAM2 CPUFUNC(op_31d0_5)(uae_u32 opcode) /* MOVE */
46447: {
46448: uae_u32 srcreg = (opcode & 7);
46449: OpcodeFamily = 30; CurrentInstrCycles = 16;
46450: {{ uaecptr srca = m68k_areg(regs, srcreg);
46451: if ((srca & 1) != 0) {
46452: last_fault_for_exception_3 = srca;
46453: last_op_for_exception_3 = opcode;
46454: last_addr_for_exception_3 = m68k_getpc() + 2;
46455: Exception(3, 0, M68000_EXC_SRC_CPU);
46456: goto endlabel2687;
46457: }
46458: {{ uae_s16 src = get_word(srca);
46459: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
46460: if ((dsta & 1) != 0) {
46461: last_fault_for_exception_3 = dsta;
46462: last_op_for_exception_3 = opcode;
46463: last_addr_for_exception_3 = m68k_getpc() + 4;
46464: Exception(3, 0, M68000_EXC_SRC_CPU);
46465: goto endlabel2687;
46466: }
46467: { CLEAR_CZNV;
46468: SET_ZFLG (((uae_s16)(src)) == 0);
46469: SET_NFLG (((uae_s16)(src)) < 0);
46470: m68k_incpc(4);
46471: fill_prefetch_0 ();
46472: put_word(dsta,src);
46473: }}}}}}endlabel2687: ;
46474: return 16;
46475: }
46476: unsigned long REGPARAM2 CPUFUNC(op_31d8_5)(uae_u32 opcode) /* MOVE */
46477: {
46478: uae_u32 srcreg = (opcode & 7);
46479: OpcodeFamily = 30; CurrentInstrCycles = 16;
46480: {{ uaecptr srca = m68k_areg(regs, srcreg);
46481: if ((srca & 1) != 0) {
46482: last_fault_for_exception_3 = srca;
46483: last_op_for_exception_3 = opcode;
46484: last_addr_for_exception_3 = m68k_getpc() + 2;
46485: Exception(3, 0, M68000_EXC_SRC_CPU);
46486: goto endlabel2688;
46487: }
46488: {{ uae_s16 src = get_word(srca);
46489: m68k_areg(regs, srcreg) += 2;
46490: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
46491: if ((dsta & 1) != 0) {
46492: last_fault_for_exception_3 = dsta;
46493: last_op_for_exception_3 = opcode;
46494: last_addr_for_exception_3 = m68k_getpc() + 4;
46495: Exception(3, 0, M68000_EXC_SRC_CPU);
46496: goto endlabel2688;
46497: }
46498: { CLEAR_CZNV;
46499: SET_ZFLG (((uae_s16)(src)) == 0);
46500: SET_NFLG (((uae_s16)(src)) < 0);
46501: m68k_incpc(4);
46502: fill_prefetch_0 ();
46503: put_word(dsta,src);
46504: }}}}}}endlabel2688: ;
46505: return 16;
46506: }
46507: unsigned long REGPARAM2 CPUFUNC(op_31e0_5)(uae_u32 opcode) /* MOVE */
46508: {
46509: uae_u32 srcreg = (opcode & 7);
46510: OpcodeFamily = 30; CurrentInstrCycles = 18;
46511: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
46512: if ((srca & 1) != 0) {
46513: last_fault_for_exception_3 = srca;
46514: last_op_for_exception_3 = opcode;
46515: last_addr_for_exception_3 = m68k_getpc() + 2;
46516: Exception(3, 0, M68000_EXC_SRC_CPU);
46517: goto endlabel2689;
46518: }
46519: {{ uae_s16 src = get_word(srca);
46520: m68k_areg (regs, srcreg) = srca;
46521: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
46522: if ((dsta & 1) != 0) {
46523: last_fault_for_exception_3 = dsta;
46524: last_op_for_exception_3 = opcode;
46525: last_addr_for_exception_3 = m68k_getpc() + 4;
46526: Exception(3, 0, M68000_EXC_SRC_CPU);
46527: goto endlabel2689;
46528: }
46529: { CLEAR_CZNV;
46530: SET_ZFLG (((uae_s16)(src)) == 0);
46531: SET_NFLG (((uae_s16)(src)) < 0);
46532: m68k_incpc(4);
46533: fill_prefetch_0 ();
46534: put_word(dsta,src);
46535: }}}}}}endlabel2689: ;
46536: return 18;
46537: }
46538: unsigned long REGPARAM2 CPUFUNC(op_31e8_5)(uae_u32 opcode) /* MOVE */
46539: {
46540: uae_u32 srcreg = (opcode & 7);
46541: OpcodeFamily = 30; CurrentInstrCycles = 20;
46542: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
46543: if ((srca & 1) != 0) {
46544: last_fault_for_exception_3 = srca;
46545: last_op_for_exception_3 = opcode;
46546: last_addr_for_exception_3 = m68k_getpc() + 4;
46547: Exception(3, 0, M68000_EXC_SRC_CPU);
46548: goto endlabel2690;
46549: }
46550: {{ uae_s16 src = get_word(srca);
46551: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
46552: if ((dsta & 1) != 0) {
46553: last_fault_for_exception_3 = dsta;
46554: last_op_for_exception_3 = opcode;
46555: last_addr_for_exception_3 = m68k_getpc() + 6;
46556: Exception(3, 0, M68000_EXC_SRC_CPU);
46557: goto endlabel2690;
46558: }
46559: { CLEAR_CZNV;
46560: SET_ZFLG (((uae_s16)(src)) == 0);
46561: SET_NFLG (((uae_s16)(src)) < 0);
46562: m68k_incpc(6);
46563: fill_prefetch_0 ();
46564: put_word(dsta,src);
46565: }}}}}}endlabel2690: ;
46566: return 20;
46567: }
46568: unsigned long REGPARAM2 CPUFUNC(op_31f0_5)(uae_u32 opcode) /* MOVE */
46569: {
46570: uae_u32 srcreg = (opcode & 7);
46571: OpcodeFamily = 30; CurrentInstrCycles = 22;
46572: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
46573: BusCyclePenalty += 2;
46574: if ((srca & 1) != 0) {
46575: last_fault_for_exception_3 = srca;
46576: last_op_for_exception_3 = opcode;
46577: last_addr_for_exception_3 = m68k_getpc() + 4;
46578: Exception(3, 0, M68000_EXC_SRC_CPU);
46579: goto endlabel2691;
46580: }
46581: {{ uae_s16 src = get_word(srca);
46582: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
46583: if ((dsta & 1) != 0) {
46584: last_fault_for_exception_3 = dsta;
46585: last_op_for_exception_3 = opcode;
46586: last_addr_for_exception_3 = m68k_getpc() + 6;
46587: Exception(3, 0, M68000_EXC_SRC_CPU);
46588: goto endlabel2691;
46589: }
46590: { CLEAR_CZNV;
46591: SET_ZFLG (((uae_s16)(src)) == 0);
46592: SET_NFLG (((uae_s16)(src)) < 0);
46593: m68k_incpc(6);
46594: fill_prefetch_0 ();
46595: put_word(dsta,src);
46596: }}}}}}endlabel2691: ;
46597: return 22;
46598: }
46599: unsigned long REGPARAM2 CPUFUNC(op_31f8_5)(uae_u32 opcode) /* MOVE */
46600: {
46601: OpcodeFamily = 30; CurrentInstrCycles = 20;
46602: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
46603: if ((srca & 1) != 0) {
46604: last_fault_for_exception_3 = srca;
46605: last_op_for_exception_3 = opcode;
46606: last_addr_for_exception_3 = m68k_getpc() + 4;
46607: Exception(3, 0, M68000_EXC_SRC_CPU);
46608: goto endlabel2692;
46609: }
46610: {{ uae_s16 src = get_word(srca);
46611: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
46612: if ((dsta & 1) != 0) {
46613: last_fault_for_exception_3 = dsta;
46614: last_op_for_exception_3 = opcode;
46615: last_addr_for_exception_3 = m68k_getpc() + 6;
46616: Exception(3, 0, M68000_EXC_SRC_CPU);
46617: goto endlabel2692;
46618: }
46619: { CLEAR_CZNV;
46620: SET_ZFLG (((uae_s16)(src)) == 0);
46621: SET_NFLG (((uae_s16)(src)) < 0);
46622: m68k_incpc(6);
46623: fill_prefetch_0 ();
46624: put_word(dsta,src);
46625: }}}}}}endlabel2692: ;
46626: return 20;
46627: }
46628: unsigned long REGPARAM2 CPUFUNC(op_31f9_5)(uae_u32 opcode) /* MOVE */
46629: {
46630: OpcodeFamily = 30; CurrentInstrCycles = 24;
46631: {{ uaecptr srca = get_ilong_prefetch(2);
46632: if ((srca & 1) != 0) {
46633: last_fault_for_exception_3 = srca;
46634: last_op_for_exception_3 = opcode;
46635: last_addr_for_exception_3 = m68k_getpc() + 6;
46636: Exception(3, 0, M68000_EXC_SRC_CPU);
46637: goto endlabel2693;
46638: }
46639: {{ uae_s16 src = get_word(srca);
46640: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(6);
46641: if ((dsta & 1) != 0) {
46642: last_fault_for_exception_3 = dsta;
46643: last_op_for_exception_3 = opcode;
46644: last_addr_for_exception_3 = m68k_getpc() + 8;
46645: Exception(3, 0, M68000_EXC_SRC_CPU);
46646: goto endlabel2693;
46647: }
46648: { CLEAR_CZNV;
46649: SET_ZFLG (((uae_s16)(src)) == 0);
46650: SET_NFLG (((uae_s16)(src)) < 0);
46651: m68k_incpc(8);
46652: fill_prefetch_0 ();
46653: put_word(dsta,src);
46654: }}}}}}endlabel2693: ;
46655: return 24;
46656: }
46657: unsigned long REGPARAM2 CPUFUNC(op_31fa_5)(uae_u32 opcode) /* MOVE */
46658: {
46659: OpcodeFamily = 30; CurrentInstrCycles = 20;
46660: {{ uaecptr srca = m68k_getpc () + 2;
46661: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
46662: if ((srca & 1) != 0) {
46663: last_fault_for_exception_3 = srca;
46664: last_op_for_exception_3 = opcode;
46665: last_addr_for_exception_3 = m68k_getpc() + 4;
46666: Exception(3, 0, M68000_EXC_SRC_CPU);
46667: goto endlabel2694;
46668: }
46669: {{ uae_s16 src = get_word(srca);
46670: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
46671: if ((dsta & 1) != 0) {
46672: last_fault_for_exception_3 = dsta;
46673: last_op_for_exception_3 = opcode;
46674: last_addr_for_exception_3 = m68k_getpc() + 6;
46675: Exception(3, 0, M68000_EXC_SRC_CPU);
46676: goto endlabel2694;
46677: }
46678: { CLEAR_CZNV;
46679: SET_ZFLG (((uae_s16)(src)) == 0);
46680: SET_NFLG (((uae_s16)(src)) < 0);
46681: m68k_incpc(6);
46682: fill_prefetch_0 ();
46683: put_word(dsta,src);
46684: }}}}}}endlabel2694: ;
46685: return 20;
46686: }
46687: unsigned long REGPARAM2 CPUFUNC(op_31fb_5)(uae_u32 opcode) /* MOVE */
46688: {
46689: OpcodeFamily = 30; CurrentInstrCycles = 22;
46690: {{ uaecptr tmppc = m68k_getpc() + 2;
46691: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
46692: BusCyclePenalty += 2;
46693: if ((srca & 1) != 0) {
46694: last_fault_for_exception_3 = srca;
46695: last_op_for_exception_3 = opcode;
46696: last_addr_for_exception_3 = m68k_getpc() + 4;
46697: Exception(3, 0, M68000_EXC_SRC_CPU);
46698: goto endlabel2695;
46699: }
46700: {{ uae_s16 src = get_word(srca);
46701: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
46702: if ((dsta & 1) != 0) {
46703: last_fault_for_exception_3 = dsta;
46704: last_op_for_exception_3 = opcode;
46705: last_addr_for_exception_3 = m68k_getpc() + 6;
46706: Exception(3, 0, M68000_EXC_SRC_CPU);
46707: goto endlabel2695;
46708: }
46709: { CLEAR_CZNV;
46710: SET_ZFLG (((uae_s16)(src)) == 0);
46711: SET_NFLG (((uae_s16)(src)) < 0);
46712: m68k_incpc(6);
46713: fill_prefetch_0 ();
46714: put_word(dsta,src);
46715: }}}}}}endlabel2695: ;
46716: return 22;
46717: }
46718: unsigned long REGPARAM2 CPUFUNC(op_31fc_5)(uae_u32 opcode) /* MOVE */
46719: {
46720: OpcodeFamily = 30; CurrentInstrCycles = 16;
46721: {{ uae_s16 src = get_iword_prefetch(2);
46722: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(4);
46723: if ((dsta & 1) != 0) {
46724: last_fault_for_exception_3 = dsta;
46725: last_op_for_exception_3 = opcode;
46726: last_addr_for_exception_3 = m68k_getpc() + 6;
46727: Exception(3, 0, M68000_EXC_SRC_CPU);
46728: goto endlabel2696;
46729: }
46730: { CLEAR_CZNV;
46731: SET_ZFLG (((uae_s16)(src)) == 0);
46732: SET_NFLG (((uae_s16)(src)) < 0);
46733: m68k_incpc(6);
46734: fill_prefetch_0 ();
46735: put_word(dsta,src);
46736: }}}}endlabel2696: ;
46737: return 16;
46738: }
46739: unsigned long REGPARAM2 CPUFUNC(op_33c0_5)(uae_u32 opcode) /* MOVE */
46740: {
46741: uae_u32 srcreg = (opcode & 7);
46742: OpcodeFamily = 30; CurrentInstrCycles = 16;
46743: {{ uae_s16 src = m68k_dreg(regs, srcreg);
46744: { uaecptr dsta = get_ilong_prefetch(2);
46745: if ((dsta & 1) != 0) {
46746: last_fault_for_exception_3 = dsta;
46747: last_op_for_exception_3 = opcode;
46748: last_addr_for_exception_3 = m68k_getpc() + 6;
46749: Exception(3, 0, M68000_EXC_SRC_CPU);
46750: goto endlabel2697;
46751: }
46752: { CLEAR_CZNV;
46753: SET_ZFLG (((uae_s16)(src)) == 0);
46754: SET_NFLG (((uae_s16)(src)) < 0);
46755: m68k_incpc(6);
46756: fill_prefetch_0 ();
46757: put_word(dsta,src);
46758: }}}}endlabel2697: ;
46759: return 16;
46760: }
46761: unsigned long REGPARAM2 CPUFUNC(op_33c8_5)(uae_u32 opcode) /* MOVE */
46762: {
46763: uae_u32 srcreg = (opcode & 7);
46764: OpcodeFamily = 30; CurrentInstrCycles = 16;
46765: {{ uae_s16 src = m68k_areg(regs, srcreg);
46766: { uaecptr dsta = get_ilong_prefetch(2);
46767: if ((dsta & 1) != 0) {
46768: last_fault_for_exception_3 = dsta;
46769: last_op_for_exception_3 = opcode;
46770: last_addr_for_exception_3 = m68k_getpc() + 6;
46771: Exception(3, 0, M68000_EXC_SRC_CPU);
46772: goto endlabel2698;
46773: }
46774: { CLEAR_CZNV;
46775: SET_ZFLG (((uae_s16)(src)) == 0);
46776: SET_NFLG (((uae_s16)(src)) < 0);
46777: m68k_incpc(6);
46778: fill_prefetch_0 ();
46779: put_word(dsta,src);
46780: }}}}endlabel2698: ;
46781: return 16;
46782: }
46783: unsigned long REGPARAM2 CPUFUNC(op_33d0_5)(uae_u32 opcode) /* MOVE */
46784: {
46785: uae_u32 srcreg = (opcode & 7);
46786: OpcodeFamily = 30; CurrentInstrCycles = 20;
46787: {{ uaecptr srca = m68k_areg(regs, srcreg);
46788: if ((srca & 1) != 0) {
46789: last_fault_for_exception_3 = srca;
46790: last_op_for_exception_3 = opcode;
46791: last_addr_for_exception_3 = m68k_getpc() + 2;
46792: Exception(3, 0, M68000_EXC_SRC_CPU);
46793: goto endlabel2699;
46794: }
46795: {{ uae_s16 src = get_word(srca);
46796: { uaecptr dsta = get_ilong_prefetch(2);
46797: if ((dsta & 1) != 0) {
46798: last_fault_for_exception_3 = dsta;
46799: last_op_for_exception_3 = opcode;
46800: last_addr_for_exception_3 = m68k_getpc() + 6;
46801: Exception(3, 0, M68000_EXC_SRC_CPU);
46802: goto endlabel2699;
46803: }
46804: { CLEAR_CZNV;
46805: SET_ZFLG (((uae_s16)(src)) == 0);
46806: SET_NFLG (((uae_s16)(src)) < 0);
46807: m68k_incpc(6);
46808: fill_prefetch_0 ();
46809: put_word(dsta,src);
46810: }}}}}}endlabel2699: ;
46811: return 20;
46812: }
46813: unsigned long REGPARAM2 CPUFUNC(op_33d8_5)(uae_u32 opcode) /* MOVE */
46814: {
46815: uae_u32 srcreg = (opcode & 7);
46816: OpcodeFamily = 30; CurrentInstrCycles = 20;
46817: {{ uaecptr srca = m68k_areg(regs, srcreg);
46818: if ((srca & 1) != 0) {
46819: last_fault_for_exception_3 = srca;
46820: last_op_for_exception_3 = opcode;
46821: last_addr_for_exception_3 = m68k_getpc() + 2;
46822: Exception(3, 0, M68000_EXC_SRC_CPU);
46823: goto endlabel2700;
46824: }
46825: {{ uae_s16 src = get_word(srca);
46826: m68k_areg(regs, srcreg) += 2;
46827: { uaecptr dsta = get_ilong_prefetch(2);
46828: if ((dsta & 1) != 0) {
46829: last_fault_for_exception_3 = dsta;
46830: last_op_for_exception_3 = opcode;
46831: last_addr_for_exception_3 = m68k_getpc() + 6;
46832: Exception(3, 0, M68000_EXC_SRC_CPU);
46833: goto endlabel2700;
46834: }
46835: { CLEAR_CZNV;
46836: SET_ZFLG (((uae_s16)(src)) == 0);
46837: SET_NFLG (((uae_s16)(src)) < 0);
46838: m68k_incpc(6);
46839: fill_prefetch_0 ();
46840: put_word(dsta,src);
46841: }}}}}}endlabel2700: ;
46842: return 20;
46843: }
46844: unsigned long REGPARAM2 CPUFUNC(op_33e0_5)(uae_u32 opcode) /* MOVE */
46845: {
46846: uae_u32 srcreg = (opcode & 7);
46847: OpcodeFamily = 30; CurrentInstrCycles = 22;
46848: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
46849: if ((srca & 1) != 0) {
46850: last_fault_for_exception_3 = srca;
46851: last_op_for_exception_3 = opcode;
46852: last_addr_for_exception_3 = m68k_getpc() + 2;
46853: Exception(3, 0, M68000_EXC_SRC_CPU);
46854: goto endlabel2701;
46855: }
46856: {{ uae_s16 src = get_word(srca);
46857: m68k_areg (regs, srcreg) = srca;
46858: { uaecptr dsta = get_ilong_prefetch(2);
46859: if ((dsta & 1) != 0) {
46860: last_fault_for_exception_3 = dsta;
46861: last_op_for_exception_3 = opcode;
46862: last_addr_for_exception_3 = m68k_getpc() + 6;
46863: Exception(3, 0, M68000_EXC_SRC_CPU);
46864: goto endlabel2701;
46865: }
46866: { CLEAR_CZNV;
46867: SET_ZFLG (((uae_s16)(src)) == 0);
46868: SET_NFLG (((uae_s16)(src)) < 0);
46869: m68k_incpc(6);
46870: fill_prefetch_0 ();
46871: put_word(dsta,src);
46872: }}}}}}endlabel2701: ;
46873: return 22;
46874: }
46875: unsigned long REGPARAM2 CPUFUNC(op_33e8_5)(uae_u32 opcode) /* MOVE */
46876: {
46877: uae_u32 srcreg = (opcode & 7);
46878: OpcodeFamily = 30; CurrentInstrCycles = 24;
46879: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
46880: if ((srca & 1) != 0) {
46881: last_fault_for_exception_3 = srca;
46882: last_op_for_exception_3 = opcode;
46883: last_addr_for_exception_3 = m68k_getpc() + 4;
46884: Exception(3, 0, M68000_EXC_SRC_CPU);
46885: goto endlabel2702;
46886: }
46887: {{ uae_s16 src = get_word(srca);
46888: { uaecptr dsta = get_ilong_prefetch(4);
46889: if ((dsta & 1) != 0) {
46890: last_fault_for_exception_3 = dsta;
46891: last_op_for_exception_3 = opcode;
46892: last_addr_for_exception_3 = m68k_getpc() + 8;
46893: Exception(3, 0, M68000_EXC_SRC_CPU);
46894: goto endlabel2702;
46895: }
46896: { CLEAR_CZNV;
46897: SET_ZFLG (((uae_s16)(src)) == 0);
46898: SET_NFLG (((uae_s16)(src)) < 0);
46899: m68k_incpc(8);
46900: fill_prefetch_0 ();
46901: put_word(dsta,src);
46902: }}}}}}endlabel2702: ;
46903: return 24;
46904: }
46905: unsigned long REGPARAM2 CPUFUNC(op_33f0_5)(uae_u32 opcode) /* MOVE */
46906: {
46907: uae_u32 srcreg = (opcode & 7);
46908: OpcodeFamily = 30; CurrentInstrCycles = 26;
46909: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
46910: BusCyclePenalty += 2;
46911: if ((srca & 1) != 0) {
46912: last_fault_for_exception_3 = srca;
46913: last_op_for_exception_3 = opcode;
46914: last_addr_for_exception_3 = m68k_getpc() + 4;
46915: Exception(3, 0, M68000_EXC_SRC_CPU);
46916: goto endlabel2703;
46917: }
46918: {{ uae_s16 src = get_word(srca);
46919: { uaecptr dsta = get_ilong_prefetch(4);
46920: if ((dsta & 1) != 0) {
46921: last_fault_for_exception_3 = dsta;
46922: last_op_for_exception_3 = opcode;
46923: last_addr_for_exception_3 = m68k_getpc() + 8;
46924: Exception(3, 0, M68000_EXC_SRC_CPU);
46925: goto endlabel2703;
46926: }
46927: { CLEAR_CZNV;
46928: SET_ZFLG (((uae_s16)(src)) == 0);
46929: SET_NFLG (((uae_s16)(src)) < 0);
46930: m68k_incpc(8);
46931: fill_prefetch_0 ();
46932: put_word(dsta,src);
46933: }}}}}}endlabel2703: ;
46934: return 26;
46935: }
46936: unsigned long REGPARAM2 CPUFUNC(op_33f8_5)(uae_u32 opcode) /* MOVE */
46937: {
46938: OpcodeFamily = 30; CurrentInstrCycles = 24;
46939: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
46940: if ((srca & 1) != 0) {
46941: last_fault_for_exception_3 = srca;
46942: last_op_for_exception_3 = opcode;
46943: last_addr_for_exception_3 = m68k_getpc() + 4;
46944: Exception(3, 0, M68000_EXC_SRC_CPU);
46945: goto endlabel2704;
46946: }
46947: {{ uae_s16 src = get_word(srca);
46948: { uaecptr dsta = get_ilong_prefetch(4);
46949: if ((dsta & 1) != 0) {
46950: last_fault_for_exception_3 = dsta;
46951: last_op_for_exception_3 = opcode;
46952: last_addr_for_exception_3 = m68k_getpc() + 8;
46953: Exception(3, 0, M68000_EXC_SRC_CPU);
46954: goto endlabel2704;
46955: }
46956: { CLEAR_CZNV;
46957: SET_ZFLG (((uae_s16)(src)) == 0);
46958: SET_NFLG (((uae_s16)(src)) < 0);
46959: m68k_incpc(8);
46960: fill_prefetch_0 ();
46961: put_word(dsta,src);
46962: }}}}}}endlabel2704: ;
46963: return 24;
46964: }
46965: unsigned long REGPARAM2 CPUFUNC(op_33f9_5)(uae_u32 opcode) /* MOVE */
46966: {
46967: OpcodeFamily = 30; CurrentInstrCycles = 28;
46968: {{ uaecptr srca = get_ilong_prefetch(2);
46969: if ((srca & 1) != 0) {
46970: last_fault_for_exception_3 = srca;
46971: last_op_for_exception_3 = opcode;
46972: last_addr_for_exception_3 = m68k_getpc() + 6;
46973: Exception(3, 0, M68000_EXC_SRC_CPU);
46974: goto endlabel2705;
46975: }
46976: {{ uae_s16 src = get_word(srca);
46977: { uaecptr dsta = get_ilong_prefetch(6);
46978: if ((dsta & 1) != 0) {
46979: last_fault_for_exception_3 = dsta;
46980: last_op_for_exception_3 = opcode;
46981: last_addr_for_exception_3 = m68k_getpc() + 10;
46982: Exception(3, 0, M68000_EXC_SRC_CPU);
46983: goto endlabel2705;
46984: }
46985: { CLEAR_CZNV;
46986: SET_ZFLG (((uae_s16)(src)) == 0);
46987: SET_NFLG (((uae_s16)(src)) < 0);
46988: m68k_incpc(10);
46989: fill_prefetch_0 ();
46990: put_word(dsta,src);
46991: }}}}}}endlabel2705: ;
46992: return 28;
46993: }
46994: unsigned long REGPARAM2 CPUFUNC(op_33fa_5)(uae_u32 opcode) /* MOVE */
46995: {
46996: OpcodeFamily = 30; CurrentInstrCycles = 24;
46997: {{ uaecptr srca = m68k_getpc () + 2;
46998: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
46999: if ((srca & 1) != 0) {
47000: last_fault_for_exception_3 = srca;
47001: last_op_for_exception_3 = opcode;
47002: last_addr_for_exception_3 = m68k_getpc() + 4;
47003: Exception(3, 0, M68000_EXC_SRC_CPU);
47004: goto endlabel2706;
47005: }
47006: {{ uae_s16 src = get_word(srca);
47007: { uaecptr dsta = get_ilong_prefetch(4);
47008: if ((dsta & 1) != 0) {
47009: last_fault_for_exception_3 = dsta;
47010: last_op_for_exception_3 = opcode;
47011: last_addr_for_exception_3 = m68k_getpc() + 8;
47012: Exception(3, 0, M68000_EXC_SRC_CPU);
47013: goto endlabel2706;
47014: }
47015: { CLEAR_CZNV;
47016: SET_ZFLG (((uae_s16)(src)) == 0);
47017: SET_NFLG (((uae_s16)(src)) < 0);
47018: m68k_incpc(8);
47019: fill_prefetch_0 ();
47020: put_word(dsta,src);
47021: }}}}}}endlabel2706: ;
47022: return 24;
47023: }
47024: unsigned long REGPARAM2 CPUFUNC(op_33fb_5)(uae_u32 opcode) /* MOVE */
47025: {
47026: OpcodeFamily = 30; CurrentInstrCycles = 26;
47027: {{ uaecptr tmppc = m68k_getpc() + 2;
47028: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
47029: BusCyclePenalty += 2;
47030: if ((srca & 1) != 0) {
47031: last_fault_for_exception_3 = srca;
47032: last_op_for_exception_3 = opcode;
47033: last_addr_for_exception_3 = m68k_getpc() + 4;
47034: Exception(3, 0, M68000_EXC_SRC_CPU);
47035: goto endlabel2707;
47036: }
47037: {{ uae_s16 src = get_word(srca);
47038: { uaecptr dsta = get_ilong_prefetch(4);
47039: if ((dsta & 1) != 0) {
47040: last_fault_for_exception_3 = dsta;
47041: last_op_for_exception_3 = opcode;
47042: last_addr_for_exception_3 = m68k_getpc() + 8;
47043: Exception(3, 0, M68000_EXC_SRC_CPU);
47044: goto endlabel2707;
47045: }
47046: { CLEAR_CZNV;
47047: SET_ZFLG (((uae_s16)(src)) == 0);
47048: SET_NFLG (((uae_s16)(src)) < 0);
47049: m68k_incpc(8);
47050: fill_prefetch_0 ();
47051: put_word(dsta,src);
47052: }}}}}}endlabel2707: ;
47053: return 26;
47054: }
47055: unsigned long REGPARAM2 CPUFUNC(op_33fc_5)(uae_u32 opcode) /* MOVE */
47056: {
47057: OpcodeFamily = 30; CurrentInstrCycles = 20;
47058: {{ uae_s16 src = get_iword_prefetch(2);
47059: { uaecptr dsta = get_ilong_prefetch(4);
47060: if ((dsta & 1) != 0) {
47061: last_fault_for_exception_3 = dsta;
47062: last_op_for_exception_3 = opcode;
47063: last_addr_for_exception_3 = m68k_getpc() + 8;
47064: Exception(3, 0, M68000_EXC_SRC_CPU);
47065: goto endlabel2708;
47066: }
47067: { CLEAR_CZNV;
47068: SET_ZFLG (((uae_s16)(src)) == 0);
47069: SET_NFLG (((uae_s16)(src)) < 0);
47070: m68k_incpc(8);
47071: fill_prefetch_0 ();
47072: put_word(dsta,src);
47073: }}}}endlabel2708: ;
47074: return 20;
47075: }
47076: unsigned long REGPARAM2 CPUFUNC(op_4000_5)(uae_u32 opcode) /* NEGX */
47077: {
47078: uae_u32 srcreg = (opcode & 7);
47079: OpcodeFamily = 16; CurrentInstrCycles = 4;
47080: {{ uae_s8 src = m68k_dreg(regs, srcreg);
47081: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
47082: { int flgs = ((uae_s8)(src)) < 0;
47083: int flgo = ((uae_s8)(0)) < 0;
47084: int flgn = ((uae_s8)(newv)) < 0;
47085: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
47086: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
47087: COPY_CARRY;
47088: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
47089: SET_NFLG (((uae_s8)(newv)) < 0);
47090: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((newv) & 0xff);
47091: }}}}m68k_incpc(2);
47092: fill_prefetch_2 ();
47093: return 4;
47094: }
47095: unsigned long REGPARAM2 CPUFUNC(op_4010_5)(uae_u32 opcode) /* NEGX */
47096: {
47097: uae_u32 srcreg = (opcode & 7);
47098: OpcodeFamily = 16; CurrentInstrCycles = 12;
47099: {{ uaecptr srca = m68k_areg(regs, srcreg);
47100: { uae_s8 src = get_byte(srca);
47101: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
47102: { int flgs = ((uae_s8)(src)) < 0;
47103: int flgo = ((uae_s8)(0)) < 0;
47104: int flgn = ((uae_s8)(newv)) < 0;
47105: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
47106: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
47107: COPY_CARRY;
47108: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
47109: SET_NFLG (((uae_s8)(newv)) < 0);
47110: m68k_incpc(2);
47111: fill_prefetch_2 ();
47112: put_byte(srca,newv);
47113: }}}}}return 12;
47114: }
47115: unsigned long REGPARAM2 CPUFUNC(op_4018_5)(uae_u32 opcode) /* NEGX */
47116: {
47117: uae_u32 srcreg = (opcode & 7);
47118: OpcodeFamily = 16; CurrentInstrCycles = 12;
47119: {{ uaecptr srca = m68k_areg(regs, srcreg);
47120: { uae_s8 src = get_byte(srca);
47121: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
47122: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
47123: { int flgs = ((uae_s8)(src)) < 0;
47124: int flgo = ((uae_s8)(0)) < 0;
47125: int flgn = ((uae_s8)(newv)) < 0;
47126: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
47127: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
47128: COPY_CARRY;
47129: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
47130: SET_NFLG (((uae_s8)(newv)) < 0);
47131: m68k_incpc(2);
47132: fill_prefetch_2 ();
47133: put_byte(srca,newv);
47134: }}}}}return 12;
47135: }
47136: unsigned long REGPARAM2 CPUFUNC(op_4020_5)(uae_u32 opcode) /* NEGX */
47137: {
47138: uae_u32 srcreg = (opcode & 7);
47139: OpcodeFamily = 16; CurrentInstrCycles = 14;
47140: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
47141: { uae_s8 src = get_byte(srca);
47142: m68k_areg (regs, srcreg) = srca;
47143: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
47144: { int flgs = ((uae_s8)(src)) < 0;
47145: int flgo = ((uae_s8)(0)) < 0;
47146: int flgn = ((uae_s8)(newv)) < 0;
47147: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
47148: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
47149: COPY_CARRY;
47150: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
47151: SET_NFLG (((uae_s8)(newv)) < 0);
47152: m68k_incpc(2);
47153: fill_prefetch_2 ();
47154: put_byte(srca,newv);
47155: }}}}}return 14;
47156: }
47157: unsigned long REGPARAM2 CPUFUNC(op_4028_5)(uae_u32 opcode) /* NEGX */
47158: {
47159: uae_u32 srcreg = (opcode & 7);
47160: OpcodeFamily = 16; CurrentInstrCycles = 16;
47161: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
47162: { uae_s8 src = get_byte(srca);
47163: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
47164: { int flgs = ((uae_s8)(src)) < 0;
47165: int flgo = ((uae_s8)(0)) < 0;
47166: int flgn = ((uae_s8)(newv)) < 0;
47167: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
47168: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
47169: COPY_CARRY;
47170: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
47171: SET_NFLG (((uae_s8)(newv)) < 0);
47172: m68k_incpc(4);
47173: fill_prefetch_0 ();
47174: put_byte(srca,newv);
47175: }}}}}return 16;
47176: }
47177: unsigned long REGPARAM2 CPUFUNC(op_4030_5)(uae_u32 opcode) /* NEGX */
47178: {
47179: uae_u32 srcreg = (opcode & 7);
47180: OpcodeFamily = 16; CurrentInstrCycles = 18;
47181: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
47182: BusCyclePenalty += 2;
47183: { uae_s8 src = get_byte(srca);
47184: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
47185: { int flgs = ((uae_s8)(src)) < 0;
47186: int flgo = ((uae_s8)(0)) < 0;
47187: int flgn = ((uae_s8)(newv)) < 0;
47188: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
47189: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
47190: COPY_CARRY;
47191: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
47192: SET_NFLG (((uae_s8)(newv)) < 0);
47193: m68k_incpc(4);
47194: fill_prefetch_0 ();
47195: put_byte(srca,newv);
47196: }}}}}return 18;
47197: }
47198: unsigned long REGPARAM2 CPUFUNC(op_4038_5)(uae_u32 opcode) /* NEGX */
47199: {
47200: OpcodeFamily = 16; CurrentInstrCycles = 16;
47201: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
47202: { uae_s8 src = get_byte(srca);
47203: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
47204: { int flgs = ((uae_s8)(src)) < 0;
47205: int flgo = ((uae_s8)(0)) < 0;
47206: int flgn = ((uae_s8)(newv)) < 0;
47207: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
47208: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
47209: COPY_CARRY;
47210: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
47211: SET_NFLG (((uae_s8)(newv)) < 0);
47212: m68k_incpc(4);
47213: fill_prefetch_0 ();
47214: put_byte(srca,newv);
47215: }}}}}return 16;
47216: }
47217: unsigned long REGPARAM2 CPUFUNC(op_4039_5)(uae_u32 opcode) /* NEGX */
47218: {
47219: OpcodeFamily = 16; CurrentInstrCycles = 20;
47220: {{ uaecptr srca = get_ilong_prefetch(2);
47221: { uae_s8 src = get_byte(srca);
47222: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
47223: { int flgs = ((uae_s8)(src)) < 0;
47224: int flgo = ((uae_s8)(0)) < 0;
47225: int flgn = ((uae_s8)(newv)) < 0;
47226: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
47227: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
47228: COPY_CARRY;
47229: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
47230: SET_NFLG (((uae_s8)(newv)) < 0);
47231: m68k_incpc(6);
47232: fill_prefetch_0 ();
47233: put_byte(srca,newv);
47234: }}}}}return 20;
47235: }
47236: unsigned long REGPARAM2 CPUFUNC(op_4040_5)(uae_u32 opcode) /* NEGX */
47237: {
47238: uae_u32 srcreg = (opcode & 7);
47239: OpcodeFamily = 16; CurrentInstrCycles = 4;
47240: {{ uae_s16 src = m68k_dreg(regs, srcreg);
47241: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
47242: { int flgs = ((uae_s16)(src)) < 0;
47243: int flgo = ((uae_s16)(0)) < 0;
47244: int flgn = ((uae_s16)(newv)) < 0;
47245: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
47246: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
47247: COPY_CARRY;
47248: SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
47249: SET_NFLG (((uae_s16)(newv)) < 0);
47250: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((newv) & 0xffff);
47251: }}}}m68k_incpc(2);
47252: fill_prefetch_2 ();
47253: return 4;
47254: }
47255: unsigned long REGPARAM2 CPUFUNC(op_4050_5)(uae_u32 opcode) /* NEGX */
47256: {
47257: uae_u32 srcreg = (opcode & 7);
47258: OpcodeFamily = 16; CurrentInstrCycles = 12;
47259: {{ uaecptr srca = m68k_areg(regs, srcreg);
47260: if ((srca & 1) != 0) {
47261: last_fault_for_exception_3 = srca;
47262: last_op_for_exception_3 = opcode;
47263: last_addr_for_exception_3 = m68k_getpc() + 2;
47264: Exception(3, 0, M68000_EXC_SRC_CPU);
47265: goto endlabel2718;
47266: }
47267: {{ uae_s16 src = get_word(srca);
47268: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
47269: { int flgs = ((uae_s16)(src)) < 0;
47270: int flgo = ((uae_s16)(0)) < 0;
47271: int flgn = ((uae_s16)(newv)) < 0;
47272: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
47273: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
47274: COPY_CARRY;
47275: SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
47276: SET_NFLG (((uae_s16)(newv)) < 0);
47277: m68k_incpc(2);
47278: fill_prefetch_2 ();
47279: put_word(srca,newv);
47280: }}}}}}endlabel2718: ;
47281: return 12;
47282: }
47283: unsigned long REGPARAM2 CPUFUNC(op_4058_5)(uae_u32 opcode) /* NEGX */
47284: {
47285: uae_u32 srcreg = (opcode & 7);
47286: OpcodeFamily = 16; CurrentInstrCycles = 12;
47287: {{ uaecptr srca = m68k_areg(regs, srcreg);
47288: if ((srca & 1) != 0) {
47289: last_fault_for_exception_3 = srca;
47290: last_op_for_exception_3 = opcode;
47291: last_addr_for_exception_3 = m68k_getpc() + 2;
47292: Exception(3, 0, M68000_EXC_SRC_CPU);
47293: goto endlabel2719;
47294: }
47295: {{ uae_s16 src = get_word(srca);
47296: m68k_areg(regs, srcreg) += 2;
47297: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
47298: { int flgs = ((uae_s16)(src)) < 0;
47299: int flgo = ((uae_s16)(0)) < 0;
47300: int flgn = ((uae_s16)(newv)) < 0;
47301: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
47302: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
47303: COPY_CARRY;
47304: SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
47305: SET_NFLG (((uae_s16)(newv)) < 0);
47306: m68k_incpc(2);
47307: fill_prefetch_2 ();
47308: put_word(srca,newv);
47309: }}}}}}endlabel2719: ;
47310: return 12;
47311: }
47312: unsigned long REGPARAM2 CPUFUNC(op_4060_5)(uae_u32 opcode) /* NEGX */
47313: {
47314: uae_u32 srcreg = (opcode & 7);
47315: OpcodeFamily = 16; CurrentInstrCycles = 14;
47316: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
47317: if ((srca & 1) != 0) {
47318: last_fault_for_exception_3 = srca;
47319: last_op_for_exception_3 = opcode;
47320: last_addr_for_exception_3 = m68k_getpc() + 2;
47321: Exception(3, 0, M68000_EXC_SRC_CPU);
47322: goto endlabel2720;
47323: }
47324: {{ uae_s16 src = get_word(srca);
47325: m68k_areg (regs, srcreg) = srca;
47326: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
47327: { int flgs = ((uae_s16)(src)) < 0;
47328: int flgo = ((uae_s16)(0)) < 0;
47329: int flgn = ((uae_s16)(newv)) < 0;
47330: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
47331: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
47332: COPY_CARRY;
47333: SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
47334: SET_NFLG (((uae_s16)(newv)) < 0);
47335: m68k_incpc(2);
47336: fill_prefetch_2 ();
47337: put_word(srca,newv);
47338: }}}}}}endlabel2720: ;
47339: return 14;
47340: }
47341: unsigned long REGPARAM2 CPUFUNC(op_4068_5)(uae_u32 opcode) /* NEGX */
47342: {
47343: uae_u32 srcreg = (opcode & 7);
47344: OpcodeFamily = 16; CurrentInstrCycles = 16;
47345: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
47346: if ((srca & 1) != 0) {
47347: last_fault_for_exception_3 = srca;
47348: last_op_for_exception_3 = opcode;
47349: last_addr_for_exception_3 = m68k_getpc() + 4;
47350: Exception(3, 0, M68000_EXC_SRC_CPU);
47351: goto endlabel2721;
47352: }
47353: {{ uae_s16 src = get_word(srca);
47354: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
47355: { int flgs = ((uae_s16)(src)) < 0;
47356: int flgo = ((uae_s16)(0)) < 0;
47357: int flgn = ((uae_s16)(newv)) < 0;
47358: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
47359: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
47360: COPY_CARRY;
47361: SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
47362: SET_NFLG (((uae_s16)(newv)) < 0);
47363: m68k_incpc(4);
47364: fill_prefetch_0 ();
47365: put_word(srca,newv);
47366: }}}}}}endlabel2721: ;
47367: return 16;
47368: }
47369: unsigned long REGPARAM2 CPUFUNC(op_4070_5)(uae_u32 opcode) /* NEGX */
47370: {
47371: uae_u32 srcreg = (opcode & 7);
47372: OpcodeFamily = 16; CurrentInstrCycles = 18;
47373: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
47374: BusCyclePenalty += 2;
47375: if ((srca & 1) != 0) {
47376: last_fault_for_exception_3 = srca;
47377: last_op_for_exception_3 = opcode;
47378: last_addr_for_exception_3 = m68k_getpc() + 4;
47379: Exception(3, 0, M68000_EXC_SRC_CPU);
47380: goto endlabel2722;
47381: }
47382: {{ uae_s16 src = get_word(srca);
47383: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
47384: { int flgs = ((uae_s16)(src)) < 0;
47385: int flgo = ((uae_s16)(0)) < 0;
47386: int flgn = ((uae_s16)(newv)) < 0;
47387: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
47388: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
47389: COPY_CARRY;
47390: SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
47391: SET_NFLG (((uae_s16)(newv)) < 0);
47392: m68k_incpc(4);
47393: fill_prefetch_0 ();
47394: put_word(srca,newv);
47395: }}}}}}endlabel2722: ;
47396: return 18;
47397: }
47398: unsigned long REGPARAM2 CPUFUNC(op_4078_5)(uae_u32 opcode) /* NEGX */
47399: {
47400: OpcodeFamily = 16; CurrentInstrCycles = 16;
47401: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
47402: if ((srca & 1) != 0) {
47403: last_fault_for_exception_3 = srca;
47404: last_op_for_exception_3 = opcode;
47405: last_addr_for_exception_3 = m68k_getpc() + 4;
47406: Exception(3, 0, M68000_EXC_SRC_CPU);
47407: goto endlabel2723;
47408: }
47409: {{ uae_s16 src = get_word(srca);
47410: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
47411: { int flgs = ((uae_s16)(src)) < 0;
47412: int flgo = ((uae_s16)(0)) < 0;
47413: int flgn = ((uae_s16)(newv)) < 0;
47414: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
47415: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
47416: COPY_CARRY;
47417: SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
47418: SET_NFLG (((uae_s16)(newv)) < 0);
47419: m68k_incpc(4);
47420: fill_prefetch_0 ();
47421: put_word(srca,newv);
47422: }}}}}}endlabel2723: ;
47423: return 16;
47424: }
47425: unsigned long REGPARAM2 CPUFUNC(op_4079_5)(uae_u32 opcode) /* NEGX */
47426: {
47427: OpcodeFamily = 16; CurrentInstrCycles = 20;
47428: {{ uaecptr srca = get_ilong_prefetch(2);
47429: if ((srca & 1) != 0) {
47430: last_fault_for_exception_3 = srca;
47431: last_op_for_exception_3 = opcode;
47432: last_addr_for_exception_3 = m68k_getpc() + 6;
47433: Exception(3, 0, M68000_EXC_SRC_CPU);
47434: goto endlabel2724;
47435: }
47436: {{ uae_s16 src = get_word(srca);
47437: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
47438: { int flgs = ((uae_s16)(src)) < 0;
47439: int flgo = ((uae_s16)(0)) < 0;
47440: int flgn = ((uae_s16)(newv)) < 0;
47441: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
47442: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
47443: COPY_CARRY;
47444: SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
47445: SET_NFLG (((uae_s16)(newv)) < 0);
47446: m68k_incpc(6);
47447: fill_prefetch_0 ();
47448: put_word(srca,newv);
47449: }}}}}}endlabel2724: ;
47450: return 20;
47451: }
47452: unsigned long REGPARAM2 CPUFUNC(op_4080_5)(uae_u32 opcode) /* NEGX */
47453: {
47454: uae_u32 srcreg = (opcode & 7);
47455: OpcodeFamily = 16; CurrentInstrCycles = 6;
47456: {{ uae_s32 src = m68k_dreg(regs, srcreg);
47457: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
47458: { int flgs = ((uae_s32)(src)) < 0;
47459: int flgo = ((uae_s32)(0)) < 0;
47460: int flgn = ((uae_s32)(newv)) < 0;
47461: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
47462: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
47463: COPY_CARRY;
47464: SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
47465: SET_NFLG (((uae_s32)(newv)) < 0);
47466: m68k_dreg(regs, srcreg) = (newv);
47467: }}}}m68k_incpc(2);
47468: fill_prefetch_2 ();
47469: return 6;
47470: }
47471: unsigned long REGPARAM2 CPUFUNC(op_4090_5)(uae_u32 opcode) /* NEGX */
47472: {
47473: uae_u32 srcreg = (opcode & 7);
47474: OpcodeFamily = 16; CurrentInstrCycles = 20;
47475: {{ uaecptr srca = m68k_areg(regs, srcreg);
47476: if ((srca & 1) != 0) {
47477: last_fault_for_exception_3 = srca;
47478: last_op_for_exception_3 = opcode;
47479: last_addr_for_exception_3 = m68k_getpc() + 2;
47480: Exception(3, 0, M68000_EXC_SRC_CPU);
47481: goto endlabel2726;
47482: }
47483: {{ uae_s32 src = get_long(srca);
47484: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
47485: { int flgs = ((uae_s32)(src)) < 0;
47486: int flgo = ((uae_s32)(0)) < 0;
47487: int flgn = ((uae_s32)(newv)) < 0;
47488: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
47489: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
47490: COPY_CARRY;
47491: SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
47492: SET_NFLG (((uae_s32)(newv)) < 0);
47493: m68k_incpc(2);
47494: fill_prefetch_2 ();
47495: put_long(srca,newv);
47496: }}}}}}endlabel2726: ;
47497: return 20;
47498: }
47499: unsigned long REGPARAM2 CPUFUNC(op_4098_5)(uae_u32 opcode) /* NEGX */
47500: {
47501: uae_u32 srcreg = (opcode & 7);
47502: OpcodeFamily = 16; CurrentInstrCycles = 20;
47503: {{ uaecptr srca = m68k_areg(regs, srcreg);
47504: if ((srca & 1) != 0) {
47505: last_fault_for_exception_3 = srca;
47506: last_op_for_exception_3 = opcode;
47507: last_addr_for_exception_3 = m68k_getpc() + 2;
47508: Exception(3, 0, M68000_EXC_SRC_CPU);
47509: goto endlabel2727;
47510: }
47511: {{ uae_s32 src = get_long(srca);
47512: m68k_areg(regs, srcreg) += 4;
47513: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
47514: { int flgs = ((uae_s32)(src)) < 0;
47515: int flgo = ((uae_s32)(0)) < 0;
47516: int flgn = ((uae_s32)(newv)) < 0;
47517: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
47518: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
47519: COPY_CARRY;
47520: SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
47521: SET_NFLG (((uae_s32)(newv)) < 0);
47522: m68k_incpc(2);
47523: fill_prefetch_2 ();
47524: put_long(srca,newv);
47525: }}}}}}endlabel2727: ;
47526: return 20;
47527: }
47528: unsigned long REGPARAM2 CPUFUNC(op_40a0_5)(uae_u32 opcode) /* NEGX */
47529: {
47530: uae_u32 srcreg = (opcode & 7);
47531: OpcodeFamily = 16; CurrentInstrCycles = 22;
47532: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
47533: if ((srca & 1) != 0) {
47534: last_fault_for_exception_3 = srca;
47535: last_op_for_exception_3 = opcode;
47536: last_addr_for_exception_3 = m68k_getpc() + 2;
47537: Exception(3, 0, M68000_EXC_SRC_CPU);
47538: goto endlabel2728;
47539: }
47540: {{ uae_s32 src = get_long(srca);
47541: m68k_areg (regs, srcreg) = srca;
47542: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
47543: { int flgs = ((uae_s32)(src)) < 0;
47544: int flgo = ((uae_s32)(0)) < 0;
47545: int flgn = ((uae_s32)(newv)) < 0;
47546: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
47547: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
47548: COPY_CARRY;
47549: SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
47550: SET_NFLG (((uae_s32)(newv)) < 0);
47551: m68k_incpc(2);
47552: fill_prefetch_2 ();
47553: put_long(srca,newv);
47554: }}}}}}endlabel2728: ;
47555: return 22;
47556: }
47557: unsigned long REGPARAM2 CPUFUNC(op_40a8_5)(uae_u32 opcode) /* NEGX */
47558: {
47559: uae_u32 srcreg = (opcode & 7);
47560: OpcodeFamily = 16; CurrentInstrCycles = 24;
47561: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
47562: if ((srca & 1) != 0) {
47563: last_fault_for_exception_3 = srca;
47564: last_op_for_exception_3 = opcode;
47565: last_addr_for_exception_3 = m68k_getpc() + 4;
47566: Exception(3, 0, M68000_EXC_SRC_CPU);
47567: goto endlabel2729;
47568: }
47569: {{ uae_s32 src = get_long(srca);
47570: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
47571: { int flgs = ((uae_s32)(src)) < 0;
47572: int flgo = ((uae_s32)(0)) < 0;
47573: int flgn = ((uae_s32)(newv)) < 0;
47574: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
47575: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
47576: COPY_CARRY;
47577: SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
47578: SET_NFLG (((uae_s32)(newv)) < 0);
47579: m68k_incpc(4);
47580: fill_prefetch_0 ();
47581: put_long(srca,newv);
47582: }}}}}}endlabel2729: ;
47583: return 24;
47584: }
47585: unsigned long REGPARAM2 CPUFUNC(op_40b0_5)(uae_u32 opcode) /* NEGX */
47586: {
47587: uae_u32 srcreg = (opcode & 7);
47588: OpcodeFamily = 16; CurrentInstrCycles = 26;
47589: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
47590: BusCyclePenalty += 2;
47591: if ((srca & 1) != 0) {
47592: last_fault_for_exception_3 = srca;
47593: last_op_for_exception_3 = opcode;
47594: last_addr_for_exception_3 = m68k_getpc() + 4;
47595: Exception(3, 0, M68000_EXC_SRC_CPU);
47596: goto endlabel2730;
47597: }
47598: {{ uae_s32 src = get_long(srca);
47599: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
47600: { int flgs = ((uae_s32)(src)) < 0;
47601: int flgo = ((uae_s32)(0)) < 0;
47602: int flgn = ((uae_s32)(newv)) < 0;
47603: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
47604: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
47605: COPY_CARRY;
47606: SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
47607: SET_NFLG (((uae_s32)(newv)) < 0);
47608: m68k_incpc(4);
47609: fill_prefetch_0 ();
47610: put_long(srca,newv);
47611: }}}}}}endlabel2730: ;
47612: return 26;
47613: }
47614: unsigned long REGPARAM2 CPUFUNC(op_40b8_5)(uae_u32 opcode) /* NEGX */
47615: {
47616: OpcodeFamily = 16; CurrentInstrCycles = 24;
47617: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
47618: if ((srca & 1) != 0) {
47619: last_fault_for_exception_3 = srca;
47620: last_op_for_exception_3 = opcode;
47621: last_addr_for_exception_3 = m68k_getpc() + 4;
47622: Exception(3, 0, M68000_EXC_SRC_CPU);
47623: goto endlabel2731;
47624: }
47625: {{ uae_s32 src = get_long(srca);
47626: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
47627: { int flgs = ((uae_s32)(src)) < 0;
47628: int flgo = ((uae_s32)(0)) < 0;
47629: int flgn = ((uae_s32)(newv)) < 0;
47630: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
47631: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
47632: COPY_CARRY;
47633: SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
47634: SET_NFLG (((uae_s32)(newv)) < 0);
47635: m68k_incpc(4);
47636: fill_prefetch_0 ();
47637: put_long(srca,newv);
47638: }}}}}}endlabel2731: ;
47639: return 24;
47640: }
47641: unsigned long REGPARAM2 CPUFUNC(op_40b9_5)(uae_u32 opcode) /* NEGX */
47642: {
47643: OpcodeFamily = 16; CurrentInstrCycles = 28;
47644: {{ uaecptr srca = get_ilong_prefetch(2);
47645: if ((srca & 1) != 0) {
47646: last_fault_for_exception_3 = srca;
47647: last_op_for_exception_3 = opcode;
47648: last_addr_for_exception_3 = m68k_getpc() + 6;
47649: Exception(3, 0, M68000_EXC_SRC_CPU);
47650: goto endlabel2732;
47651: }
47652: {{ uae_s32 src = get_long(srca);
47653: { uae_u32 newv = 0 - src - (GET_XFLG ? 1 : 0);
47654: { int flgs = ((uae_s32)(src)) < 0;
47655: int flgo = ((uae_s32)(0)) < 0;
47656: int flgn = ((uae_s32)(newv)) < 0;
47657: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
47658: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
47659: COPY_CARRY;
47660: SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
47661: SET_NFLG (((uae_s32)(newv)) < 0);
47662: m68k_incpc(6);
47663: fill_prefetch_0 ();
47664: put_long(srca,newv);
47665: }}}}}}endlabel2732: ;
47666: return 28;
47667: }
47668: unsigned long REGPARAM2 CPUFUNC(op_40c0_5)(uae_u32 opcode) /* MVSR2 */
47669: {
47670: uae_u32 srcreg = (opcode & 7);
47671: OpcodeFamily = 32; CurrentInstrCycles = 6;
47672: {{ MakeSR();
47673: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((regs.sr) & 0xffff);
47674: }}m68k_incpc(2);
47675: fill_prefetch_2 ();
47676: return 6;
47677: }
47678: unsigned long REGPARAM2 CPUFUNC(op_40d0_5)(uae_u32 opcode) /* MVSR2 */
47679: {
47680: uae_u32 srcreg = (opcode & 7);
47681: OpcodeFamily = 32; CurrentInstrCycles = 12;
47682: {{ uaecptr srca = m68k_areg(regs, srcreg);
47683: if ((srca & 1) != 0) {
47684: last_fault_for_exception_3 = srca;
47685: last_op_for_exception_3 = opcode;
47686: last_addr_for_exception_3 = m68k_getpc() + 2;
47687: Exception(3, 0, M68000_EXC_SRC_CPU);
47688: goto endlabel2734;
47689: }
47690: { MakeSR();
47691: m68k_incpc(2);
47692: fill_prefetch_2 ();
47693: put_word(srca,regs.sr);
47694: }}}endlabel2734: ;
47695: return 12;
47696: }
47697: unsigned long REGPARAM2 CPUFUNC(op_40d8_5)(uae_u32 opcode) /* MVSR2 */
47698: {
47699: uae_u32 srcreg = (opcode & 7);
47700: OpcodeFamily = 32; CurrentInstrCycles = 12;
47701: {{ uaecptr srca = m68k_areg(regs, srcreg);
47702: if ((srca & 1) != 0) {
47703: last_fault_for_exception_3 = srca;
47704: last_op_for_exception_3 = opcode;
47705: last_addr_for_exception_3 = m68k_getpc() + 2;
47706: Exception(3, 0, M68000_EXC_SRC_CPU);
47707: goto endlabel2735;
47708: }
47709: { m68k_areg(regs, srcreg) += 2;
47710: MakeSR();
47711: m68k_incpc(2);
47712: fill_prefetch_2 ();
47713: put_word(srca,regs.sr);
47714: }}}endlabel2735: ;
47715: return 12;
47716: }
47717: unsigned long REGPARAM2 CPUFUNC(op_40e0_5)(uae_u32 opcode) /* MVSR2 */
47718: {
47719: uae_u32 srcreg = (opcode & 7);
47720: OpcodeFamily = 32; CurrentInstrCycles = 14;
47721: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
47722: if ((srca & 1) != 0) {
47723: last_fault_for_exception_3 = srca;
47724: last_op_for_exception_3 = opcode;
47725: last_addr_for_exception_3 = m68k_getpc() + 2;
47726: Exception(3, 0, M68000_EXC_SRC_CPU);
47727: goto endlabel2736;
47728: }
47729: { m68k_areg (regs, srcreg) = srca;
47730: MakeSR();
47731: m68k_incpc(2);
47732: fill_prefetch_2 ();
47733: put_word(srca,regs.sr);
47734: }}}endlabel2736: ;
47735: return 14;
47736: }
47737: unsigned long REGPARAM2 CPUFUNC(op_40e8_5)(uae_u32 opcode) /* MVSR2 */
47738: {
47739: uae_u32 srcreg = (opcode & 7);
47740: OpcodeFamily = 32; CurrentInstrCycles = 16;
47741: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
47742: if ((srca & 1) != 0) {
47743: last_fault_for_exception_3 = srca;
47744: last_op_for_exception_3 = opcode;
47745: last_addr_for_exception_3 = m68k_getpc() + 4;
47746: Exception(3, 0, M68000_EXC_SRC_CPU);
47747: goto endlabel2737;
47748: }
47749: { MakeSR();
47750: m68k_incpc(4);
47751: fill_prefetch_0 ();
47752: put_word(srca,regs.sr);
47753: }}}endlabel2737: ;
47754: return 16;
47755: }
47756: unsigned long REGPARAM2 CPUFUNC(op_40f0_5)(uae_u32 opcode) /* MVSR2 */
47757: {
47758: uae_u32 srcreg = (opcode & 7);
47759: OpcodeFamily = 32; CurrentInstrCycles = 18;
47760: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
47761: BusCyclePenalty += 2;
47762: if ((srca & 1) != 0) {
47763: last_fault_for_exception_3 = srca;
47764: last_op_for_exception_3 = opcode;
47765: last_addr_for_exception_3 = m68k_getpc() + 4;
47766: Exception(3, 0, M68000_EXC_SRC_CPU);
47767: goto endlabel2738;
47768: }
47769: { MakeSR();
47770: m68k_incpc(4);
47771: fill_prefetch_0 ();
47772: put_word(srca,regs.sr);
47773: }}}endlabel2738: ;
47774: return 18;
47775: }
47776: unsigned long REGPARAM2 CPUFUNC(op_40f8_5)(uae_u32 opcode) /* MVSR2 */
47777: {
47778: OpcodeFamily = 32; CurrentInstrCycles = 16;
47779: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
47780: if ((srca & 1) != 0) {
47781: last_fault_for_exception_3 = srca;
47782: last_op_for_exception_3 = opcode;
47783: last_addr_for_exception_3 = m68k_getpc() + 4;
47784: Exception(3, 0, M68000_EXC_SRC_CPU);
47785: goto endlabel2739;
47786: }
47787: { MakeSR();
47788: m68k_incpc(4);
47789: fill_prefetch_0 ();
47790: put_word(srca,regs.sr);
47791: }}}endlabel2739: ;
47792: return 16;
47793: }
47794: unsigned long REGPARAM2 CPUFUNC(op_40f9_5)(uae_u32 opcode) /* MVSR2 */
47795: {
47796: OpcodeFamily = 32; CurrentInstrCycles = 20;
47797: {{ uaecptr srca = get_ilong_prefetch(2);
47798: if ((srca & 1) != 0) {
47799: last_fault_for_exception_3 = srca;
47800: last_op_for_exception_3 = opcode;
47801: last_addr_for_exception_3 = m68k_getpc() + 6;
47802: Exception(3, 0, M68000_EXC_SRC_CPU);
47803: goto endlabel2740;
47804: }
47805: { MakeSR();
47806: m68k_incpc(6);
47807: fill_prefetch_0 ();
47808: put_word(srca,regs.sr);
47809: }}}endlabel2740: ;
47810: return 20;
47811: }
47812: unsigned long REGPARAM2 CPUFUNC(op_4180_5)(uae_u32 opcode) /* CHK */
47813: {
47814: uae_u32 srcreg = (opcode & 7);
47815: uae_u32 dstreg = (opcode >> 9) & 7;
47816: OpcodeFamily = 80; CurrentInstrCycles = 10;
47817: { uaecptr oldpc = m68k_getpc();
47818: { uae_s16 src = m68k_dreg(regs, srcreg);
47819: { uae_s16 dst = m68k_dreg(regs, dstreg);
47820: m68k_incpc(2);
47821: fill_prefetch_2 ();
47822: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel2741; }
47823: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel2741; }
47824: }}}endlabel2741: ;
47825: return 10;
47826: }
47827: unsigned long REGPARAM2 CPUFUNC(op_4190_5)(uae_u32 opcode) /* CHK */
47828: {
47829: uae_u32 srcreg = (opcode & 7);
47830: uae_u32 dstreg = (opcode >> 9) & 7;
47831: OpcodeFamily = 80; CurrentInstrCycles = 14;
47832: { uaecptr oldpc = m68k_getpc();
47833: { uaecptr srca = m68k_areg(regs, srcreg);
47834: if ((srca & 1) != 0) {
47835: last_fault_for_exception_3 = srca;
47836: last_op_for_exception_3 = opcode;
47837: last_addr_for_exception_3 = m68k_getpc() + 2;
47838: Exception(3, 0, M68000_EXC_SRC_CPU);
47839: goto endlabel2742;
47840: }
47841: {{ uae_s16 src = get_word(srca);
47842: { uae_s16 dst = m68k_dreg(regs, dstreg);
47843: m68k_incpc(2);
47844: fill_prefetch_2 ();
47845: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel2742; }
47846: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel2742; }
47847: }}}}}endlabel2742: ;
47848: return 14;
47849: }
47850: unsigned long REGPARAM2 CPUFUNC(op_4198_5)(uae_u32 opcode) /* CHK */
47851: {
47852: uae_u32 srcreg = (opcode & 7);
47853: uae_u32 dstreg = (opcode >> 9) & 7;
47854: OpcodeFamily = 80; CurrentInstrCycles = 14;
47855: { uaecptr oldpc = m68k_getpc();
47856: { uaecptr srca = m68k_areg(regs, srcreg);
47857: if ((srca & 1) != 0) {
47858: last_fault_for_exception_3 = srca;
47859: last_op_for_exception_3 = opcode;
47860: last_addr_for_exception_3 = m68k_getpc() + 2;
47861: Exception(3, 0, M68000_EXC_SRC_CPU);
47862: goto endlabel2743;
47863: }
47864: {{ uae_s16 src = get_word(srca);
47865: m68k_areg(regs, srcreg) += 2;
47866: { uae_s16 dst = m68k_dreg(regs, dstreg);
47867: m68k_incpc(2);
47868: fill_prefetch_2 ();
47869: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel2743; }
47870: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel2743; }
47871: }}}}}endlabel2743: ;
47872: return 14;
47873: }
47874: unsigned long REGPARAM2 CPUFUNC(op_41a0_5)(uae_u32 opcode) /* CHK */
47875: {
47876: uae_u32 srcreg = (opcode & 7);
47877: uae_u32 dstreg = (opcode >> 9) & 7;
47878: OpcodeFamily = 80; CurrentInstrCycles = 16;
47879: { uaecptr oldpc = m68k_getpc();
47880: { uaecptr srca = m68k_areg(regs, srcreg) - 2;
47881: if ((srca & 1) != 0) {
47882: last_fault_for_exception_3 = srca;
47883: last_op_for_exception_3 = opcode;
47884: last_addr_for_exception_3 = m68k_getpc() + 2;
47885: Exception(3, 0, M68000_EXC_SRC_CPU);
47886: goto endlabel2744;
47887: }
47888: {{ uae_s16 src = get_word(srca);
47889: m68k_areg (regs, srcreg) = srca;
47890: { uae_s16 dst = m68k_dreg(regs, dstreg);
47891: m68k_incpc(2);
47892: fill_prefetch_2 ();
47893: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel2744; }
47894: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel2744; }
47895: }}}}}endlabel2744: ;
47896: return 16;
47897: }
47898: unsigned long REGPARAM2 CPUFUNC(op_41a8_5)(uae_u32 opcode) /* CHK */
47899: {
47900: uae_u32 srcreg = (opcode & 7);
47901: uae_u32 dstreg = (opcode >> 9) & 7;
47902: OpcodeFamily = 80; CurrentInstrCycles = 18;
47903: { uaecptr oldpc = m68k_getpc();
47904: { uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
47905: if ((srca & 1) != 0) {
47906: last_fault_for_exception_3 = srca;
47907: last_op_for_exception_3 = opcode;
47908: last_addr_for_exception_3 = m68k_getpc() + 4;
47909: Exception(3, 0, M68000_EXC_SRC_CPU);
47910: goto endlabel2745;
47911: }
47912: {{ uae_s16 src = get_word(srca);
47913: { uae_s16 dst = m68k_dreg(regs, dstreg);
47914: m68k_incpc(4);
47915: fill_prefetch_0 ();
47916: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel2745; }
47917: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel2745; }
47918: }}}}}endlabel2745: ;
47919: return 18;
47920: }
47921: unsigned long REGPARAM2 CPUFUNC(op_41b0_5)(uae_u32 opcode) /* CHK */
47922: {
47923: uae_u32 srcreg = (opcode & 7);
47924: uae_u32 dstreg = (opcode >> 9) & 7;
47925: OpcodeFamily = 80; CurrentInstrCycles = 20;
47926: { uaecptr oldpc = m68k_getpc();
47927: { uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
47928: BusCyclePenalty += 2;
47929: if ((srca & 1) != 0) {
47930: last_fault_for_exception_3 = srca;
47931: last_op_for_exception_3 = opcode;
47932: last_addr_for_exception_3 = m68k_getpc() + 4;
47933: Exception(3, 0, M68000_EXC_SRC_CPU);
47934: goto endlabel2746;
47935: }
47936: {{ uae_s16 src = get_word(srca);
47937: { uae_s16 dst = m68k_dreg(regs, dstreg);
47938: m68k_incpc(4);
47939: fill_prefetch_0 ();
47940: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel2746; }
47941: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel2746; }
47942: }}}}}endlabel2746: ;
47943: return 20;
47944: }
47945: unsigned long REGPARAM2 CPUFUNC(op_41b8_5)(uae_u32 opcode) /* CHK */
47946: {
47947: uae_u32 dstreg = (opcode >> 9) & 7;
47948: OpcodeFamily = 80; CurrentInstrCycles = 18;
47949: { uaecptr oldpc = m68k_getpc();
47950: { uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
47951: if ((srca & 1) != 0) {
47952: last_fault_for_exception_3 = srca;
47953: last_op_for_exception_3 = opcode;
47954: last_addr_for_exception_3 = m68k_getpc() + 4;
47955: Exception(3, 0, M68000_EXC_SRC_CPU);
47956: goto endlabel2747;
47957: }
47958: {{ uae_s16 src = get_word(srca);
47959: { uae_s16 dst = m68k_dreg(regs, dstreg);
47960: m68k_incpc(4);
47961: fill_prefetch_0 ();
47962: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel2747; }
47963: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel2747; }
47964: }}}}}endlabel2747: ;
47965: return 18;
47966: }
47967: unsigned long REGPARAM2 CPUFUNC(op_41b9_5)(uae_u32 opcode) /* CHK */
47968: {
47969: uae_u32 dstreg = (opcode >> 9) & 7;
47970: OpcodeFamily = 80; CurrentInstrCycles = 22;
47971: { uaecptr oldpc = m68k_getpc();
47972: { uaecptr srca = get_ilong_prefetch(2);
47973: if ((srca & 1) != 0) {
47974: last_fault_for_exception_3 = srca;
47975: last_op_for_exception_3 = opcode;
47976: last_addr_for_exception_3 = m68k_getpc() + 6;
47977: Exception(3, 0, M68000_EXC_SRC_CPU);
47978: goto endlabel2748;
47979: }
47980: {{ uae_s16 src = get_word(srca);
47981: { uae_s16 dst = m68k_dreg(regs, dstreg);
47982: m68k_incpc(6);
47983: fill_prefetch_0 ();
47984: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel2748; }
47985: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel2748; }
47986: }}}}}endlabel2748: ;
47987: return 22;
47988: }
47989: unsigned long REGPARAM2 CPUFUNC(op_41ba_5)(uae_u32 opcode) /* CHK */
47990: {
47991: uae_u32 dstreg = (opcode >> 9) & 7;
47992: OpcodeFamily = 80; CurrentInstrCycles = 18;
47993: { uaecptr oldpc = m68k_getpc();
47994: { uaecptr srca = m68k_getpc () + 2;
47995: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
47996: if ((srca & 1) != 0) {
47997: last_fault_for_exception_3 = srca;
47998: last_op_for_exception_3 = opcode;
47999: last_addr_for_exception_3 = m68k_getpc() + 4;
48000: Exception(3, 0, M68000_EXC_SRC_CPU);
48001: goto endlabel2749;
48002: }
48003: {{ uae_s16 src = get_word(srca);
48004: { uae_s16 dst = m68k_dreg(regs, dstreg);
48005: m68k_incpc(4);
48006: fill_prefetch_0 ();
48007: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel2749; }
48008: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel2749; }
48009: }}}}}endlabel2749: ;
48010: return 18;
48011: }
48012: unsigned long REGPARAM2 CPUFUNC(op_41bb_5)(uae_u32 opcode) /* CHK */
48013: {
48014: uae_u32 dstreg = (opcode >> 9) & 7;
48015: OpcodeFamily = 80; CurrentInstrCycles = 20;
48016: { uaecptr oldpc = m68k_getpc();
48017: { uaecptr tmppc = m68k_getpc() + 2;
48018: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
48019: BusCyclePenalty += 2;
48020: if ((srca & 1) != 0) {
48021: last_fault_for_exception_3 = srca;
48022: last_op_for_exception_3 = opcode;
48023: last_addr_for_exception_3 = m68k_getpc() + 4;
48024: Exception(3, 0, M68000_EXC_SRC_CPU);
48025: goto endlabel2750;
48026: }
48027: {{ uae_s16 src = get_word(srca);
48028: { uae_s16 dst = m68k_dreg(regs, dstreg);
48029: m68k_incpc(4);
48030: fill_prefetch_0 ();
48031: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel2750; }
48032: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel2750; }
48033: }}}}}endlabel2750: ;
48034: return 20;
48035: }
48036: unsigned long REGPARAM2 CPUFUNC(op_41bc_5)(uae_u32 opcode) /* CHK */
48037: {
48038: uae_u32 dstreg = (opcode >> 9) & 7;
48039: OpcodeFamily = 80; CurrentInstrCycles = 14;
48040: { uaecptr oldpc = m68k_getpc();
48041: { uae_s16 src = get_iword_prefetch(2);
48042: { uae_s16 dst = m68k_dreg(regs, dstreg);
48043: m68k_incpc(4);
48044: fill_prefetch_0 ();
48045: if ((uae_s32)dst < 0) { SET_NFLG (1); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel2751; }
48046: else if (dst > src) { SET_NFLG (0); Exception(6,oldpc,M68000_EXC_SRC_CPU); goto endlabel2751; }
48047: }}}endlabel2751: ;
48048: return 14;
48049: }
48050: unsigned long REGPARAM2 CPUFUNC(op_41d0_5)(uae_u32 opcode) /* LEA */
48051: {
48052: uae_u32 srcreg = (opcode & 7);
48053: uae_u32 dstreg = (opcode >> 9) & 7;
48054: OpcodeFamily = 56; CurrentInstrCycles = 4;
48055: {{ uaecptr srca = m68k_areg(regs, srcreg);
48056: { m68k_areg(regs, dstreg) = (srca);
48057: }}}m68k_incpc(2);
48058: fill_prefetch_2 ();
48059: return 4;
48060: }
48061: unsigned long REGPARAM2 CPUFUNC(op_41e8_5)(uae_u32 opcode) /* LEA */
48062: {
48063: uae_u32 srcreg = (opcode & 7);
48064: uae_u32 dstreg = (opcode >> 9) & 7;
48065: OpcodeFamily = 56; CurrentInstrCycles = 8;
48066: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
48067: { m68k_areg(regs, dstreg) = (srca);
48068: }}}m68k_incpc(4);
48069: fill_prefetch_0 ();
48070: return 8;
48071: }
48072: unsigned long REGPARAM2 CPUFUNC(op_41f0_5)(uae_u32 opcode) /* LEA */
48073: {
48074: uae_u32 srcreg = (opcode & 7);
48075: uae_u32 dstreg = (opcode >> 9) & 7;
48076: OpcodeFamily = 56; CurrentInstrCycles = 14;
48077: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
48078: BusCyclePenalty += 2;
48079: { m68k_areg(regs, dstreg) = (srca);
48080: }}}m68k_incpc(4);
48081: fill_prefetch_0 ();
48082: return 14;
48083: }
48084: unsigned long REGPARAM2 CPUFUNC(op_41f8_5)(uae_u32 opcode) /* LEA */
48085: {
48086: uae_u32 dstreg = (opcode >> 9) & 7;
48087: OpcodeFamily = 56; CurrentInstrCycles = 8;
48088: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
48089: { m68k_areg(regs, dstreg) = (srca);
48090: }}}m68k_incpc(4);
48091: fill_prefetch_0 ();
48092: return 8;
48093: }
48094: unsigned long REGPARAM2 CPUFUNC(op_41f9_5)(uae_u32 opcode) /* LEA */
48095: {
48096: uae_u32 dstreg = (opcode >> 9) & 7;
48097: OpcodeFamily = 56; CurrentInstrCycles = 12;
48098: {{ uaecptr srca = get_ilong_prefetch(2);
48099: { m68k_areg(regs, dstreg) = (srca);
48100: }}}m68k_incpc(6);
48101: fill_prefetch_0 ();
48102: return 12;
48103: }
48104: unsigned long REGPARAM2 CPUFUNC(op_41fa_5)(uae_u32 opcode) /* LEA */
48105: {
48106: uae_u32 dstreg = (opcode >> 9) & 7;
48107: OpcodeFamily = 56; CurrentInstrCycles = 8;
48108: {{ uaecptr srca = m68k_getpc () + 2;
48109: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
48110: { m68k_areg(regs, dstreg) = (srca);
48111: }}}m68k_incpc(4);
48112: fill_prefetch_0 ();
48113: return 8;
48114: }
48115: unsigned long REGPARAM2 CPUFUNC(op_41fb_5)(uae_u32 opcode) /* LEA */
48116: {
48117: uae_u32 dstreg = (opcode >> 9) & 7;
48118: OpcodeFamily = 56; CurrentInstrCycles = 14;
48119: {{ uaecptr tmppc = m68k_getpc() + 2;
48120: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
48121: BusCyclePenalty += 2;
48122: { m68k_areg(regs, dstreg) = (srca);
48123: }}}m68k_incpc(4);
48124: fill_prefetch_0 ();
48125: return 14;
48126: }
48127: unsigned long REGPARAM2 CPUFUNC(op_4200_5)(uae_u32 opcode) /* CLR */
48128: {
48129: uae_u32 srcreg = (opcode & 7);
48130: OpcodeFamily = 18; CurrentInstrCycles = 4;
48131: {{ CLEAR_CZNV;
48132: SET_ZFLG (((uae_s8)(0)) == 0);
48133: SET_NFLG (((uae_s8)(0)) < 0);
48134: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((0) & 0xff);
48135: }}m68k_incpc(2);
48136: fill_prefetch_2 ();
48137: return 4;
48138: }
48139: unsigned long REGPARAM2 CPUFUNC(op_4210_5)(uae_u32 opcode) /* CLR */
48140: {
48141: uae_u32 srcreg = (opcode & 7);
48142: OpcodeFamily = 18; CurrentInstrCycles = 12;
48143: {{ uaecptr srca = m68k_areg(regs, srcreg);
48144: uae_s8 src = get_byte(srca);
48145: CLEAR_CZNV;
48146: SET_ZFLG (((uae_s8)(0)) == 0);
48147: SET_NFLG (((uae_s8)(0)) < 0);
48148: m68k_incpc(2);
48149: fill_prefetch_2 ();
48150: put_byte(srca,0);
48151: }}return 12;
48152: }
48153: unsigned long REGPARAM2 CPUFUNC(op_4218_5)(uae_u32 opcode) /* CLR */
48154: {
48155: uae_u32 srcreg = (opcode & 7);
48156: OpcodeFamily = 18; CurrentInstrCycles = 12;
48157: {{ uaecptr srca = m68k_areg(regs, srcreg);
48158: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
48159: uae_s8 src = get_byte(srca);
48160: CLEAR_CZNV;
48161: SET_ZFLG (((uae_s8)(0)) == 0);
48162: SET_NFLG (((uae_s8)(0)) < 0);
48163: m68k_incpc(2);
48164: fill_prefetch_2 ();
48165: put_byte(srca,0);
48166: }}return 12;
48167: }
48168: unsigned long REGPARAM2 CPUFUNC(op_4220_5)(uae_u32 opcode) /* CLR */
48169: {
48170: uae_u32 srcreg = (opcode & 7);
48171: OpcodeFamily = 18; CurrentInstrCycles = 14;
48172: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
48173: m68k_areg (regs, srcreg) = srca;
48174: uae_s8 src = get_byte(srca);
48175: CLEAR_CZNV;
48176: SET_ZFLG (((uae_s8)(0)) == 0);
48177: SET_NFLG (((uae_s8)(0)) < 0);
48178: m68k_incpc(2);
48179: fill_prefetch_2 ();
48180: put_byte(srca,0);
48181: }}return 14;
48182: }
48183: unsigned long REGPARAM2 CPUFUNC(op_4228_5)(uae_u32 opcode) /* CLR */
48184: {
48185: uae_u32 srcreg = (opcode & 7);
48186: OpcodeFamily = 18; CurrentInstrCycles = 16;
48187: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
48188: uae_s8 src = get_byte(srca);
48189: CLEAR_CZNV;
48190: SET_ZFLG (((uae_s8)(0)) == 0);
48191: SET_NFLG (((uae_s8)(0)) < 0);
48192: m68k_incpc(4);
48193: fill_prefetch_0 ();
48194: put_byte(srca,0);
48195: }}return 16;
48196: }
48197: unsigned long REGPARAM2 CPUFUNC(op_4230_5)(uae_u32 opcode) /* CLR */
48198: {
48199: uae_u32 srcreg = (opcode & 7);
48200: OpcodeFamily = 18; CurrentInstrCycles = 18;
48201: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
48202: BusCyclePenalty += 2;
48203: uae_s8 src = get_byte(srca);
48204: CLEAR_CZNV;
48205: SET_ZFLG (((uae_s8)(0)) == 0);
48206: SET_NFLG (((uae_s8)(0)) < 0);
48207: m68k_incpc(4);
48208: fill_prefetch_0 ();
48209: put_byte(srca,0);
48210: }}return 18;
48211: }
48212: unsigned long REGPARAM2 CPUFUNC(op_4238_5)(uae_u32 opcode) /* CLR */
48213: {
48214: OpcodeFamily = 18; CurrentInstrCycles = 16;
48215: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
48216: uae_s8 src = get_byte(srca);
48217: CLEAR_CZNV;
48218: SET_ZFLG (((uae_s8)(0)) == 0);
48219: SET_NFLG (((uae_s8)(0)) < 0);
48220: m68k_incpc(4);
48221: fill_prefetch_0 ();
48222: put_byte(srca,0);
48223: }}return 16;
48224: }
48225: unsigned long REGPARAM2 CPUFUNC(op_4239_5)(uae_u32 opcode) /* CLR */
48226: {
48227: OpcodeFamily = 18; CurrentInstrCycles = 20;
48228: {{ uaecptr srca = get_ilong_prefetch(2);
48229: uae_s8 src = get_byte(srca);
48230: CLEAR_CZNV;
48231: SET_ZFLG (((uae_s8)(0)) == 0);
48232: SET_NFLG (((uae_s8)(0)) < 0);
48233: m68k_incpc(6);
48234: fill_prefetch_0 ();
48235: put_byte(srca,0);
48236: }}return 20;
48237: }
48238: unsigned long REGPARAM2 CPUFUNC(op_4240_5)(uae_u32 opcode) /* CLR */
48239: {
48240: uae_u32 srcreg = (opcode & 7);
48241: OpcodeFamily = 18; CurrentInstrCycles = 4;
48242: {{ CLEAR_CZNV;
48243: SET_ZFLG (((uae_s16)(0)) == 0);
48244: SET_NFLG (((uae_s16)(0)) < 0);
48245: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((0) & 0xffff);
48246: }}m68k_incpc(2);
48247: fill_prefetch_2 ();
48248: return 4;
48249: }
48250: unsigned long REGPARAM2 CPUFUNC(op_4250_5)(uae_u32 opcode) /* CLR */
48251: {
48252: uae_u32 srcreg = (opcode & 7);
48253: OpcodeFamily = 18; CurrentInstrCycles = 12;
48254: {{ uaecptr srca = m68k_areg(regs, srcreg);
48255: if ((srca & 1) != 0) {
48256: last_fault_for_exception_3 = srca;
48257: last_op_for_exception_3 = opcode;
48258: last_addr_for_exception_3 = m68k_getpc() + 2;
48259: Exception(3, 0, M68000_EXC_SRC_CPU);
48260: goto endlabel2768;
48261: }
48262: { uae_s16 src = get_word(srca);
48263: CLEAR_CZNV;
48264: SET_ZFLG (((uae_s16)(0)) == 0);
48265: SET_NFLG (((uae_s16)(0)) < 0);
48266: m68k_incpc(2);
48267: fill_prefetch_2 ();
48268: put_word(srca,0);
48269: }}}endlabel2768: ;
48270: return 12;
48271: }
48272: unsigned long REGPARAM2 CPUFUNC(op_4258_5)(uae_u32 opcode) /* CLR */
48273: {
48274: uae_u32 srcreg = (opcode & 7);
48275: OpcodeFamily = 18; CurrentInstrCycles = 12;
48276: {{ uaecptr srca = m68k_areg(regs, srcreg);
48277: if ((srca & 1) != 0) {
48278: last_fault_for_exception_3 = srca;
48279: last_op_for_exception_3 = opcode;
48280: last_addr_for_exception_3 = m68k_getpc() + 2;
48281: Exception(3, 0, M68000_EXC_SRC_CPU);
48282: goto endlabel2769;
48283: }
48284: { m68k_areg(regs, srcreg) += 2;
48285: uae_s16 src = get_word(srca);
48286: CLEAR_CZNV;
48287: SET_ZFLG (((uae_s16)(0)) == 0);
48288: SET_NFLG (((uae_s16)(0)) < 0);
48289: m68k_incpc(2);
48290: fill_prefetch_2 ();
48291: put_word(srca,0);
48292: }}}endlabel2769: ;
48293: return 12;
48294: }
48295: unsigned long REGPARAM2 CPUFUNC(op_4260_5)(uae_u32 opcode) /* CLR */
48296: {
48297: uae_u32 srcreg = (opcode & 7);
48298: OpcodeFamily = 18; CurrentInstrCycles = 14;
48299: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
48300: if ((srca & 1) != 0) {
48301: last_fault_for_exception_3 = srca;
48302: last_op_for_exception_3 = opcode;
48303: last_addr_for_exception_3 = m68k_getpc() + 2;
48304: Exception(3, 0, M68000_EXC_SRC_CPU);
48305: goto endlabel2770;
48306: }
48307: { m68k_areg (regs, srcreg) = srca;
48308: uae_s16 src = get_word(srca);
48309: CLEAR_CZNV;
48310: SET_ZFLG (((uae_s16)(0)) == 0);
48311: SET_NFLG (((uae_s16)(0)) < 0);
48312: m68k_incpc(2);
48313: fill_prefetch_2 ();
48314: put_word(srca,0);
48315: }}}endlabel2770: ;
48316: return 14;
48317: }
48318: unsigned long REGPARAM2 CPUFUNC(op_4268_5)(uae_u32 opcode) /* CLR */
48319: {
48320: uae_u32 srcreg = (opcode & 7);
48321: OpcodeFamily = 18; CurrentInstrCycles = 16;
48322: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
48323: if ((srca & 1) != 0) {
48324: last_fault_for_exception_3 = srca;
48325: last_op_for_exception_3 = opcode;
48326: last_addr_for_exception_3 = m68k_getpc() + 4;
48327: Exception(3, 0, M68000_EXC_SRC_CPU);
48328: goto endlabel2771;
48329: }
48330: { uae_s16 src = get_word(srca);
48331: CLEAR_CZNV;
48332: SET_ZFLG (((uae_s16)(0)) == 0);
48333: SET_NFLG (((uae_s16)(0)) < 0);
48334: m68k_incpc(4);
48335: fill_prefetch_0 ();
48336: put_word(srca,0);
48337: }}}endlabel2771: ;
48338: return 16;
48339: }
48340: #endif
48341:
48342: #ifdef PART_4
48343: unsigned long REGPARAM2 CPUFUNC(op_4270_5)(uae_u32 opcode) /* CLR */
48344: {
48345: uae_u32 srcreg = (opcode & 7);
48346: OpcodeFamily = 18; CurrentInstrCycles = 18;
48347: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
48348: BusCyclePenalty += 2;
48349: if ((srca & 1) != 0) {
48350: last_fault_for_exception_3 = srca;
48351: last_op_for_exception_3 = opcode;
48352: last_addr_for_exception_3 = m68k_getpc() + 4;
48353: Exception(3, 0, M68000_EXC_SRC_CPU);
48354: goto endlabel2772;
48355: }
48356: { uae_s16 src = get_word(srca);
48357: CLEAR_CZNV;
48358: SET_ZFLG (((uae_s16)(0)) == 0);
48359: SET_NFLG (((uae_s16)(0)) < 0);
48360: m68k_incpc(4);
48361: fill_prefetch_0 ();
48362: put_word(srca,0);
48363: }}}endlabel2772: ;
48364: return 18;
48365: }
48366: unsigned long REGPARAM2 CPUFUNC(op_4278_5)(uae_u32 opcode) /* CLR */
48367: {
48368: OpcodeFamily = 18; CurrentInstrCycles = 16;
48369: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
48370: if ((srca & 1) != 0) {
48371: last_fault_for_exception_3 = srca;
48372: last_op_for_exception_3 = opcode;
48373: last_addr_for_exception_3 = m68k_getpc() + 4;
48374: Exception(3, 0, M68000_EXC_SRC_CPU);
48375: goto endlabel2773;
48376: }
48377: { uae_s16 src = get_word(srca);
48378: CLEAR_CZNV;
48379: SET_ZFLG (((uae_s16)(0)) == 0);
48380: SET_NFLG (((uae_s16)(0)) < 0);
48381: m68k_incpc(4);
48382: fill_prefetch_0 ();
48383: put_word(srca,0);
48384: }}}endlabel2773: ;
48385: return 16;
48386: }
48387: unsigned long REGPARAM2 CPUFUNC(op_4279_5)(uae_u32 opcode) /* CLR */
48388: {
48389: OpcodeFamily = 18; CurrentInstrCycles = 20;
48390: {{ uaecptr srca = get_ilong_prefetch(2);
48391: if ((srca & 1) != 0) {
48392: last_fault_for_exception_3 = srca;
48393: last_op_for_exception_3 = opcode;
48394: last_addr_for_exception_3 = m68k_getpc() + 6;
48395: Exception(3, 0, M68000_EXC_SRC_CPU);
48396: goto endlabel2774;
48397: }
48398: { uae_s16 src = get_word(srca);
48399: CLEAR_CZNV;
48400: SET_ZFLG (((uae_s16)(0)) == 0);
48401: SET_NFLG (((uae_s16)(0)) < 0);
48402: m68k_incpc(6);
48403: fill_prefetch_0 ();
48404: put_word(srca,0);
48405: }}}endlabel2774: ;
48406: return 20;
48407: }
48408: unsigned long REGPARAM2 CPUFUNC(op_4280_5)(uae_u32 opcode) /* CLR */
48409: {
48410: uae_u32 srcreg = (opcode & 7);
48411: OpcodeFamily = 18; CurrentInstrCycles = 6;
48412: {{ CLEAR_CZNV;
48413: SET_ZFLG (((uae_s32)(0)) == 0);
48414: SET_NFLG (((uae_s32)(0)) < 0);
48415: m68k_dreg(regs, srcreg) = (0);
48416: }}m68k_incpc(2);
48417: fill_prefetch_2 ();
48418: return 6;
48419: }
48420: unsigned long REGPARAM2 CPUFUNC(op_4290_5)(uae_u32 opcode) /* CLR */
48421: {
48422: uae_u32 srcreg = (opcode & 7);
48423: OpcodeFamily = 18; CurrentInstrCycles = 20;
48424: {{ uaecptr srca = m68k_areg(regs, srcreg);
48425: if ((srca & 1) != 0) {
48426: last_fault_for_exception_3 = srca;
48427: last_op_for_exception_3 = opcode;
48428: last_addr_for_exception_3 = m68k_getpc() + 2;
48429: Exception(3, 0, M68000_EXC_SRC_CPU);
48430: goto endlabel2776;
48431: }
48432: { uae_s32 src = get_long(srca);
48433: CLEAR_CZNV;
48434: SET_ZFLG (((uae_s32)(0)) == 0);
48435: SET_NFLG (((uae_s32)(0)) < 0);
48436: m68k_incpc(2);
48437: fill_prefetch_2 ();
48438: put_long(srca,0);
48439: }}}endlabel2776: ;
48440: return 20;
48441: }
48442: unsigned long REGPARAM2 CPUFUNC(op_4298_5)(uae_u32 opcode) /* CLR */
48443: {
48444: uae_u32 srcreg = (opcode & 7);
48445: OpcodeFamily = 18; CurrentInstrCycles = 20;
48446: {{ uaecptr srca = m68k_areg(regs, srcreg);
48447: if ((srca & 1) != 0) {
48448: last_fault_for_exception_3 = srca;
48449: last_op_for_exception_3 = opcode;
48450: last_addr_for_exception_3 = m68k_getpc() + 2;
48451: Exception(3, 0, M68000_EXC_SRC_CPU);
48452: goto endlabel2777;
48453: }
48454: { m68k_areg(regs, srcreg) += 4;
48455: uae_s32 src = get_long(srca);
48456: CLEAR_CZNV;
48457: SET_ZFLG (((uae_s32)(0)) == 0);
48458: SET_NFLG (((uae_s32)(0)) < 0);
48459: m68k_incpc(2);
48460: fill_prefetch_2 ();
48461: put_long(srca,0);
48462: }}}endlabel2777: ;
48463: return 20;
48464: }
48465: unsigned long REGPARAM2 CPUFUNC(op_42a0_5)(uae_u32 opcode) /* CLR */
48466: {
48467: uae_u32 srcreg = (opcode & 7);
48468: OpcodeFamily = 18; CurrentInstrCycles = 22;
48469: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
48470: if ((srca & 1) != 0) {
48471: last_fault_for_exception_3 = srca;
48472: last_op_for_exception_3 = opcode;
48473: last_addr_for_exception_3 = m68k_getpc() + 2;
48474: Exception(3, 0, M68000_EXC_SRC_CPU);
48475: goto endlabel2778;
48476: }
48477: { m68k_areg (regs, srcreg) = srca;
48478: uae_s32 src = get_long(srca);
48479: CLEAR_CZNV;
48480: SET_ZFLG (((uae_s32)(0)) == 0);
48481: SET_NFLG (((uae_s32)(0)) < 0);
48482: m68k_incpc(2);
48483: fill_prefetch_2 ();
48484: put_long(srca,0);
48485: }}}endlabel2778: ;
48486: return 22;
48487: }
48488: unsigned long REGPARAM2 CPUFUNC(op_42a8_5)(uae_u32 opcode) /* CLR */
48489: {
48490: uae_u32 srcreg = (opcode & 7);
48491: OpcodeFamily = 18; CurrentInstrCycles = 24;
48492: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
48493: if ((srca & 1) != 0) {
48494: last_fault_for_exception_3 = srca;
48495: last_op_for_exception_3 = opcode;
48496: last_addr_for_exception_3 = m68k_getpc() + 4;
48497: Exception(3, 0, M68000_EXC_SRC_CPU);
48498: goto endlabel2779;
48499: }
48500: { uae_s32 src = get_long(srca);
48501: CLEAR_CZNV;
48502: SET_ZFLG (((uae_s32)(0)) == 0);
48503: SET_NFLG (((uae_s32)(0)) < 0);
48504: m68k_incpc(4);
48505: fill_prefetch_0 ();
48506: put_long(srca,0);
48507: }}}endlabel2779: ;
48508: return 24;
48509: }
48510: unsigned long REGPARAM2 CPUFUNC(op_42b0_5)(uae_u32 opcode) /* CLR */
48511: {
48512: uae_u32 srcreg = (opcode & 7);
48513: OpcodeFamily = 18; CurrentInstrCycles = 26;
48514: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
48515: BusCyclePenalty += 2;
48516: if ((srca & 1) != 0) {
48517: last_fault_for_exception_3 = srca;
48518: last_op_for_exception_3 = opcode;
48519: last_addr_for_exception_3 = m68k_getpc() + 4;
48520: Exception(3, 0, M68000_EXC_SRC_CPU);
48521: goto endlabel2780;
48522: }
48523: { uae_s32 src = get_long(srca);
48524: CLEAR_CZNV;
48525: SET_ZFLG (((uae_s32)(0)) == 0);
48526: SET_NFLG (((uae_s32)(0)) < 0);
48527: m68k_incpc(4);
48528: fill_prefetch_0 ();
48529: put_long(srca,0);
48530: }}}endlabel2780: ;
48531: return 26;
48532: }
48533: unsigned long REGPARAM2 CPUFUNC(op_42b8_5)(uae_u32 opcode) /* CLR */
48534: {
48535: OpcodeFamily = 18; CurrentInstrCycles = 24;
48536: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
48537: if ((srca & 1) != 0) {
48538: last_fault_for_exception_3 = srca;
48539: last_op_for_exception_3 = opcode;
48540: last_addr_for_exception_3 = m68k_getpc() + 4;
48541: Exception(3, 0, M68000_EXC_SRC_CPU);
48542: goto endlabel2781;
48543: }
48544: { uae_s32 src = get_long(srca);
48545: CLEAR_CZNV;
48546: SET_ZFLG (((uae_s32)(0)) == 0);
48547: SET_NFLG (((uae_s32)(0)) < 0);
48548: m68k_incpc(4);
48549: fill_prefetch_0 ();
48550: put_long(srca,0);
48551: }}}endlabel2781: ;
48552: return 24;
48553: }
48554: unsigned long REGPARAM2 CPUFUNC(op_42b9_5)(uae_u32 opcode) /* CLR */
48555: {
48556: OpcodeFamily = 18; CurrentInstrCycles = 28;
48557: {{ uaecptr srca = get_ilong_prefetch(2);
48558: if ((srca & 1) != 0) {
48559: last_fault_for_exception_3 = srca;
48560: last_op_for_exception_3 = opcode;
48561: last_addr_for_exception_3 = m68k_getpc() + 6;
48562: Exception(3, 0, M68000_EXC_SRC_CPU);
48563: goto endlabel2782;
48564: }
48565: { uae_s32 src = get_long(srca);
48566: CLEAR_CZNV;
48567: SET_ZFLG (((uae_s32)(0)) == 0);
48568: SET_NFLG (((uae_s32)(0)) < 0);
48569: m68k_incpc(6);
48570: fill_prefetch_0 ();
48571: put_long(srca,0);
48572: }}}endlabel2782: ;
48573: return 28;
48574: }
48575: unsigned long REGPARAM2 CPUFUNC(op_4400_5)(uae_u32 opcode) /* NEG */
48576: {
48577: uae_u32 srcreg = (opcode & 7);
48578: OpcodeFamily = 15; CurrentInstrCycles = 4;
48579: {{ uae_s8 src = m68k_dreg(regs, srcreg);
48580: {{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src));
48581: { int flgs = ((uae_s8)(src)) < 0;
48582: int flgo = ((uae_s8)(0)) < 0;
48583: int flgn = ((uae_s8)(dst)) < 0;
48584: SET_ZFLG (((uae_s8)(dst)) == 0);
48585: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
48586: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0)));
48587: COPY_CARRY;
48588: SET_NFLG (flgn != 0);
48589: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((dst) & 0xff);
48590: }}}}}m68k_incpc(2);
48591: fill_prefetch_2 ();
48592: return 4;
48593: }
48594: unsigned long REGPARAM2 CPUFUNC(op_4410_5)(uae_u32 opcode) /* NEG */
48595: {
48596: uae_u32 srcreg = (opcode & 7);
48597: OpcodeFamily = 15; CurrentInstrCycles = 12;
48598: {{ uaecptr srca = m68k_areg(regs, srcreg);
48599: { uae_s8 src = get_byte(srca);
48600: {{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src));
48601: { int flgs = ((uae_s8)(src)) < 0;
48602: int flgo = ((uae_s8)(0)) < 0;
48603: int flgn = ((uae_s8)(dst)) < 0;
48604: SET_ZFLG (((uae_s8)(dst)) == 0);
48605: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
48606: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0)));
48607: COPY_CARRY;
48608: SET_NFLG (flgn != 0);
48609: m68k_incpc(2);
48610: fill_prefetch_2 ();
48611: put_byte(srca,dst);
48612: }}}}}}return 12;
48613: }
48614: unsigned long REGPARAM2 CPUFUNC(op_4418_5)(uae_u32 opcode) /* NEG */
48615: {
48616: uae_u32 srcreg = (opcode & 7);
48617: OpcodeFamily = 15; CurrentInstrCycles = 12;
48618: {{ uaecptr srca = m68k_areg(regs, srcreg);
48619: { uae_s8 src = get_byte(srca);
48620: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
48621: {{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src));
48622: { int flgs = ((uae_s8)(src)) < 0;
48623: int flgo = ((uae_s8)(0)) < 0;
48624: int flgn = ((uae_s8)(dst)) < 0;
48625: SET_ZFLG (((uae_s8)(dst)) == 0);
48626: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
48627: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0)));
48628: COPY_CARRY;
48629: SET_NFLG (flgn != 0);
48630: m68k_incpc(2);
48631: fill_prefetch_2 ();
48632: put_byte(srca,dst);
48633: }}}}}}return 12;
48634: }
48635: unsigned long REGPARAM2 CPUFUNC(op_4420_5)(uae_u32 opcode) /* NEG */
48636: {
48637: uae_u32 srcreg = (opcode & 7);
48638: OpcodeFamily = 15; CurrentInstrCycles = 14;
48639: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
48640: { uae_s8 src = get_byte(srca);
48641: m68k_areg (regs, srcreg) = srca;
48642: {{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src));
48643: { int flgs = ((uae_s8)(src)) < 0;
48644: int flgo = ((uae_s8)(0)) < 0;
48645: int flgn = ((uae_s8)(dst)) < 0;
48646: SET_ZFLG (((uae_s8)(dst)) == 0);
48647: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
48648: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0)));
48649: COPY_CARRY;
48650: SET_NFLG (flgn != 0);
48651: m68k_incpc(2);
48652: fill_prefetch_2 ();
48653: put_byte(srca,dst);
48654: }}}}}}return 14;
48655: }
48656: unsigned long REGPARAM2 CPUFUNC(op_4428_5)(uae_u32 opcode) /* NEG */
48657: {
48658: uae_u32 srcreg = (opcode & 7);
48659: OpcodeFamily = 15; CurrentInstrCycles = 16;
48660: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
48661: { uae_s8 src = get_byte(srca);
48662: {{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src));
48663: { int flgs = ((uae_s8)(src)) < 0;
48664: int flgo = ((uae_s8)(0)) < 0;
48665: int flgn = ((uae_s8)(dst)) < 0;
48666: SET_ZFLG (((uae_s8)(dst)) == 0);
48667: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
48668: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0)));
48669: COPY_CARRY;
48670: SET_NFLG (flgn != 0);
48671: m68k_incpc(4);
48672: fill_prefetch_0 ();
48673: put_byte(srca,dst);
48674: }}}}}}return 16;
48675: }
48676: unsigned long REGPARAM2 CPUFUNC(op_4430_5)(uae_u32 opcode) /* NEG */
48677: {
48678: uae_u32 srcreg = (opcode & 7);
48679: OpcodeFamily = 15; CurrentInstrCycles = 18;
48680: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
48681: BusCyclePenalty += 2;
48682: { uae_s8 src = get_byte(srca);
48683: {{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src));
48684: { int flgs = ((uae_s8)(src)) < 0;
48685: int flgo = ((uae_s8)(0)) < 0;
48686: int flgn = ((uae_s8)(dst)) < 0;
48687: SET_ZFLG (((uae_s8)(dst)) == 0);
48688: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
48689: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0)));
48690: COPY_CARRY;
48691: SET_NFLG (flgn != 0);
48692: m68k_incpc(4);
48693: fill_prefetch_0 ();
48694: put_byte(srca,dst);
48695: }}}}}}return 18;
48696: }
48697: unsigned long REGPARAM2 CPUFUNC(op_4438_5)(uae_u32 opcode) /* NEG */
48698: {
48699: OpcodeFamily = 15; CurrentInstrCycles = 16;
48700: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
48701: { uae_s8 src = get_byte(srca);
48702: {{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src));
48703: { int flgs = ((uae_s8)(src)) < 0;
48704: int flgo = ((uae_s8)(0)) < 0;
48705: int flgn = ((uae_s8)(dst)) < 0;
48706: SET_ZFLG (((uae_s8)(dst)) == 0);
48707: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
48708: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0)));
48709: COPY_CARRY;
48710: SET_NFLG (flgn != 0);
48711: m68k_incpc(4);
48712: fill_prefetch_0 ();
48713: put_byte(srca,dst);
48714: }}}}}}return 16;
48715: }
48716: unsigned long REGPARAM2 CPUFUNC(op_4439_5)(uae_u32 opcode) /* NEG */
48717: {
48718: OpcodeFamily = 15; CurrentInstrCycles = 20;
48719: {{ uaecptr srca = get_ilong_prefetch(2);
48720: { uae_s8 src = get_byte(srca);
48721: {{uae_u32 dst = ((uae_s8)(0)) - ((uae_s8)(src));
48722: { int flgs = ((uae_s8)(src)) < 0;
48723: int flgo = ((uae_s8)(0)) < 0;
48724: int flgn = ((uae_s8)(dst)) < 0;
48725: SET_ZFLG (((uae_s8)(dst)) == 0);
48726: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
48727: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(0)));
48728: COPY_CARRY;
48729: SET_NFLG (flgn != 0);
48730: m68k_incpc(6);
48731: fill_prefetch_0 ();
48732: put_byte(srca,dst);
48733: }}}}}}return 20;
48734: }
48735: unsigned long REGPARAM2 CPUFUNC(op_4440_5)(uae_u32 opcode) /* NEG */
48736: {
48737: uae_u32 srcreg = (opcode & 7);
48738: OpcodeFamily = 15; CurrentInstrCycles = 4;
48739: {{ uae_s16 src = m68k_dreg(regs, srcreg);
48740: {{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src));
48741: { int flgs = ((uae_s16)(src)) < 0;
48742: int flgo = ((uae_s16)(0)) < 0;
48743: int flgn = ((uae_s16)(dst)) < 0;
48744: SET_ZFLG (((uae_s16)(dst)) == 0);
48745: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
48746: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0)));
48747: COPY_CARRY;
48748: SET_NFLG (flgn != 0);
48749: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((dst) & 0xffff);
48750: }}}}}m68k_incpc(2);
48751: fill_prefetch_2 ();
48752: return 4;
48753: }
48754: unsigned long REGPARAM2 CPUFUNC(op_4450_5)(uae_u32 opcode) /* NEG */
48755: {
48756: uae_u32 srcreg = (opcode & 7);
48757: OpcodeFamily = 15; CurrentInstrCycles = 12;
48758: {{ uaecptr srca = m68k_areg(regs, srcreg);
48759: if ((srca & 1) != 0) {
48760: last_fault_for_exception_3 = srca;
48761: last_op_for_exception_3 = opcode;
48762: last_addr_for_exception_3 = m68k_getpc() + 2;
48763: Exception(3, 0, M68000_EXC_SRC_CPU);
48764: goto endlabel2792;
48765: }
48766: {{ uae_s16 src = get_word(srca);
48767: {{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src));
48768: { int flgs = ((uae_s16)(src)) < 0;
48769: int flgo = ((uae_s16)(0)) < 0;
48770: int flgn = ((uae_s16)(dst)) < 0;
48771: SET_ZFLG (((uae_s16)(dst)) == 0);
48772: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
48773: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0)));
48774: COPY_CARRY;
48775: SET_NFLG (flgn != 0);
48776: m68k_incpc(2);
48777: fill_prefetch_2 ();
48778: put_word(srca,dst);
48779: }}}}}}}endlabel2792: ;
48780: return 12;
48781: }
48782: unsigned long REGPARAM2 CPUFUNC(op_4458_5)(uae_u32 opcode) /* NEG */
48783: {
48784: uae_u32 srcreg = (opcode & 7);
48785: OpcodeFamily = 15; CurrentInstrCycles = 12;
48786: {{ uaecptr srca = m68k_areg(regs, srcreg);
48787: if ((srca & 1) != 0) {
48788: last_fault_for_exception_3 = srca;
48789: last_op_for_exception_3 = opcode;
48790: last_addr_for_exception_3 = m68k_getpc() + 2;
48791: Exception(3, 0, M68000_EXC_SRC_CPU);
48792: goto endlabel2793;
48793: }
48794: {{ uae_s16 src = get_word(srca);
48795: m68k_areg(regs, srcreg) += 2;
48796: {{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src));
48797: { int flgs = ((uae_s16)(src)) < 0;
48798: int flgo = ((uae_s16)(0)) < 0;
48799: int flgn = ((uae_s16)(dst)) < 0;
48800: SET_ZFLG (((uae_s16)(dst)) == 0);
48801: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
48802: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0)));
48803: COPY_CARRY;
48804: SET_NFLG (flgn != 0);
48805: m68k_incpc(2);
48806: fill_prefetch_2 ();
48807: put_word(srca,dst);
48808: }}}}}}}endlabel2793: ;
48809: return 12;
48810: }
48811: unsigned long REGPARAM2 CPUFUNC(op_4460_5)(uae_u32 opcode) /* NEG */
48812: {
48813: uae_u32 srcreg = (opcode & 7);
48814: OpcodeFamily = 15; CurrentInstrCycles = 14;
48815: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
48816: if ((srca & 1) != 0) {
48817: last_fault_for_exception_3 = srca;
48818: last_op_for_exception_3 = opcode;
48819: last_addr_for_exception_3 = m68k_getpc() + 2;
48820: Exception(3, 0, M68000_EXC_SRC_CPU);
48821: goto endlabel2794;
48822: }
48823: {{ uae_s16 src = get_word(srca);
48824: m68k_areg (regs, srcreg) = srca;
48825: {{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src));
48826: { int flgs = ((uae_s16)(src)) < 0;
48827: int flgo = ((uae_s16)(0)) < 0;
48828: int flgn = ((uae_s16)(dst)) < 0;
48829: SET_ZFLG (((uae_s16)(dst)) == 0);
48830: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
48831: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0)));
48832: COPY_CARRY;
48833: SET_NFLG (flgn != 0);
48834: m68k_incpc(2);
48835: fill_prefetch_2 ();
48836: put_word(srca,dst);
48837: }}}}}}}endlabel2794: ;
48838: return 14;
48839: }
48840: unsigned long REGPARAM2 CPUFUNC(op_4468_5)(uae_u32 opcode) /* NEG */
48841: {
48842: uae_u32 srcreg = (opcode & 7);
48843: OpcodeFamily = 15; CurrentInstrCycles = 16;
48844: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
48845: if ((srca & 1) != 0) {
48846: last_fault_for_exception_3 = srca;
48847: last_op_for_exception_3 = opcode;
48848: last_addr_for_exception_3 = m68k_getpc() + 4;
48849: Exception(3, 0, M68000_EXC_SRC_CPU);
48850: goto endlabel2795;
48851: }
48852: {{ uae_s16 src = get_word(srca);
48853: {{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src));
48854: { int flgs = ((uae_s16)(src)) < 0;
48855: int flgo = ((uae_s16)(0)) < 0;
48856: int flgn = ((uae_s16)(dst)) < 0;
48857: SET_ZFLG (((uae_s16)(dst)) == 0);
48858: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
48859: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0)));
48860: COPY_CARRY;
48861: SET_NFLG (flgn != 0);
48862: m68k_incpc(4);
48863: fill_prefetch_0 ();
48864: put_word(srca,dst);
48865: }}}}}}}endlabel2795: ;
48866: return 16;
48867: }
48868: unsigned long REGPARAM2 CPUFUNC(op_4470_5)(uae_u32 opcode) /* NEG */
48869: {
48870: uae_u32 srcreg = (opcode & 7);
48871: OpcodeFamily = 15; CurrentInstrCycles = 18;
48872: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
48873: BusCyclePenalty += 2;
48874: if ((srca & 1) != 0) {
48875: last_fault_for_exception_3 = srca;
48876: last_op_for_exception_3 = opcode;
48877: last_addr_for_exception_3 = m68k_getpc() + 4;
48878: Exception(3, 0, M68000_EXC_SRC_CPU);
48879: goto endlabel2796;
48880: }
48881: {{ uae_s16 src = get_word(srca);
48882: {{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src));
48883: { int flgs = ((uae_s16)(src)) < 0;
48884: int flgo = ((uae_s16)(0)) < 0;
48885: int flgn = ((uae_s16)(dst)) < 0;
48886: SET_ZFLG (((uae_s16)(dst)) == 0);
48887: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
48888: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0)));
48889: COPY_CARRY;
48890: SET_NFLG (flgn != 0);
48891: m68k_incpc(4);
48892: fill_prefetch_0 ();
48893: put_word(srca,dst);
48894: }}}}}}}endlabel2796: ;
48895: return 18;
48896: }
48897: unsigned long REGPARAM2 CPUFUNC(op_4478_5)(uae_u32 opcode) /* NEG */
48898: {
48899: OpcodeFamily = 15; CurrentInstrCycles = 16;
48900: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
48901: if ((srca & 1) != 0) {
48902: last_fault_for_exception_3 = srca;
48903: last_op_for_exception_3 = opcode;
48904: last_addr_for_exception_3 = m68k_getpc() + 4;
48905: Exception(3, 0, M68000_EXC_SRC_CPU);
48906: goto endlabel2797;
48907: }
48908: {{ uae_s16 src = get_word(srca);
48909: {{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src));
48910: { int flgs = ((uae_s16)(src)) < 0;
48911: int flgo = ((uae_s16)(0)) < 0;
48912: int flgn = ((uae_s16)(dst)) < 0;
48913: SET_ZFLG (((uae_s16)(dst)) == 0);
48914: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
48915: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0)));
48916: COPY_CARRY;
48917: SET_NFLG (flgn != 0);
48918: m68k_incpc(4);
48919: fill_prefetch_0 ();
48920: put_word(srca,dst);
48921: }}}}}}}endlabel2797: ;
48922: return 16;
48923: }
48924: unsigned long REGPARAM2 CPUFUNC(op_4479_5)(uae_u32 opcode) /* NEG */
48925: {
48926: OpcodeFamily = 15; CurrentInstrCycles = 20;
48927: {{ uaecptr srca = get_ilong_prefetch(2);
48928: if ((srca & 1) != 0) {
48929: last_fault_for_exception_3 = srca;
48930: last_op_for_exception_3 = opcode;
48931: last_addr_for_exception_3 = m68k_getpc() + 6;
48932: Exception(3, 0, M68000_EXC_SRC_CPU);
48933: goto endlabel2798;
48934: }
48935: {{ uae_s16 src = get_word(srca);
48936: {{uae_u32 dst = ((uae_s16)(0)) - ((uae_s16)(src));
48937: { int flgs = ((uae_s16)(src)) < 0;
48938: int flgo = ((uae_s16)(0)) < 0;
48939: int flgn = ((uae_s16)(dst)) < 0;
48940: SET_ZFLG (((uae_s16)(dst)) == 0);
48941: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
48942: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(0)));
48943: COPY_CARRY;
48944: SET_NFLG (flgn != 0);
48945: m68k_incpc(6);
48946: fill_prefetch_0 ();
48947: put_word(srca,dst);
48948: }}}}}}}endlabel2798: ;
48949: return 20;
48950: }
48951: unsigned long REGPARAM2 CPUFUNC(op_4480_5)(uae_u32 opcode) /* NEG */
48952: {
48953: uae_u32 srcreg = (opcode & 7);
48954: OpcodeFamily = 15; CurrentInstrCycles = 6;
48955: {{ uae_s32 src = m68k_dreg(regs, srcreg);
48956: {{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src));
48957: { int flgs = ((uae_s32)(src)) < 0;
48958: int flgo = ((uae_s32)(0)) < 0;
48959: int flgn = ((uae_s32)(dst)) < 0;
48960: SET_ZFLG (((uae_s32)(dst)) == 0);
48961: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
48962: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0)));
48963: COPY_CARRY;
48964: SET_NFLG (flgn != 0);
48965: m68k_dreg(regs, srcreg) = (dst);
48966: }}}}}m68k_incpc(2);
48967: fill_prefetch_2 ();
48968: return 6;
48969: }
48970: unsigned long REGPARAM2 CPUFUNC(op_4490_5)(uae_u32 opcode) /* NEG */
48971: {
48972: uae_u32 srcreg = (opcode & 7);
48973: OpcodeFamily = 15; CurrentInstrCycles = 20;
48974: {{ uaecptr srca = m68k_areg(regs, srcreg);
48975: if ((srca & 1) != 0) {
48976: last_fault_for_exception_3 = srca;
48977: last_op_for_exception_3 = opcode;
48978: last_addr_for_exception_3 = m68k_getpc() + 2;
48979: Exception(3, 0, M68000_EXC_SRC_CPU);
48980: goto endlabel2800;
48981: }
48982: {{ uae_s32 src = get_long(srca);
48983: {{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src));
48984: { int flgs = ((uae_s32)(src)) < 0;
48985: int flgo = ((uae_s32)(0)) < 0;
48986: int flgn = ((uae_s32)(dst)) < 0;
48987: SET_ZFLG (((uae_s32)(dst)) == 0);
48988: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
48989: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0)));
48990: COPY_CARRY;
48991: SET_NFLG (flgn != 0);
48992: m68k_incpc(2);
48993: fill_prefetch_2 ();
48994: put_long(srca,dst);
48995: }}}}}}}endlabel2800: ;
48996: return 20;
48997: }
48998: unsigned long REGPARAM2 CPUFUNC(op_4498_5)(uae_u32 opcode) /* NEG */
48999: {
49000: uae_u32 srcreg = (opcode & 7);
49001: OpcodeFamily = 15; CurrentInstrCycles = 20;
49002: {{ uaecptr srca = m68k_areg(regs, srcreg);
49003: if ((srca & 1) != 0) {
49004: last_fault_for_exception_3 = srca;
49005: last_op_for_exception_3 = opcode;
49006: last_addr_for_exception_3 = m68k_getpc() + 2;
49007: Exception(3, 0, M68000_EXC_SRC_CPU);
49008: goto endlabel2801;
49009: }
49010: {{ uae_s32 src = get_long(srca);
49011: m68k_areg(regs, srcreg) += 4;
49012: {{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src));
49013: { int flgs = ((uae_s32)(src)) < 0;
49014: int flgo = ((uae_s32)(0)) < 0;
49015: int flgn = ((uae_s32)(dst)) < 0;
49016: SET_ZFLG (((uae_s32)(dst)) == 0);
49017: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
49018: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0)));
49019: COPY_CARRY;
49020: SET_NFLG (flgn != 0);
49021: m68k_incpc(2);
49022: fill_prefetch_2 ();
49023: put_long(srca,dst);
49024: }}}}}}}endlabel2801: ;
49025: return 20;
49026: }
49027: unsigned long REGPARAM2 CPUFUNC(op_44a0_5)(uae_u32 opcode) /* NEG */
49028: {
49029: uae_u32 srcreg = (opcode & 7);
49030: OpcodeFamily = 15; CurrentInstrCycles = 22;
49031: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
49032: if ((srca & 1) != 0) {
49033: last_fault_for_exception_3 = srca;
49034: last_op_for_exception_3 = opcode;
49035: last_addr_for_exception_3 = m68k_getpc() + 2;
49036: Exception(3, 0, M68000_EXC_SRC_CPU);
49037: goto endlabel2802;
49038: }
49039: {{ uae_s32 src = get_long(srca);
49040: m68k_areg (regs, srcreg) = srca;
49041: {{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src));
49042: { int flgs = ((uae_s32)(src)) < 0;
49043: int flgo = ((uae_s32)(0)) < 0;
49044: int flgn = ((uae_s32)(dst)) < 0;
49045: SET_ZFLG (((uae_s32)(dst)) == 0);
49046: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
49047: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0)));
49048: COPY_CARRY;
49049: SET_NFLG (flgn != 0);
49050: m68k_incpc(2);
49051: fill_prefetch_2 ();
49052: put_long(srca,dst);
49053: }}}}}}}endlabel2802: ;
49054: return 22;
49055: }
49056: unsigned long REGPARAM2 CPUFUNC(op_44a8_5)(uae_u32 opcode) /* NEG */
49057: {
49058: uae_u32 srcreg = (opcode & 7);
49059: OpcodeFamily = 15; CurrentInstrCycles = 24;
49060: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
49061: if ((srca & 1) != 0) {
49062: last_fault_for_exception_3 = srca;
49063: last_op_for_exception_3 = opcode;
49064: last_addr_for_exception_3 = m68k_getpc() + 4;
49065: Exception(3, 0, M68000_EXC_SRC_CPU);
49066: goto endlabel2803;
49067: }
49068: {{ uae_s32 src = get_long(srca);
49069: {{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src));
49070: { int flgs = ((uae_s32)(src)) < 0;
49071: int flgo = ((uae_s32)(0)) < 0;
49072: int flgn = ((uae_s32)(dst)) < 0;
49073: SET_ZFLG (((uae_s32)(dst)) == 0);
49074: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
49075: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0)));
49076: COPY_CARRY;
49077: SET_NFLG (flgn != 0);
49078: m68k_incpc(4);
49079: fill_prefetch_0 ();
49080: put_long(srca,dst);
49081: }}}}}}}endlabel2803: ;
49082: return 24;
49083: }
49084: unsigned long REGPARAM2 CPUFUNC(op_44b0_5)(uae_u32 opcode) /* NEG */
49085: {
49086: uae_u32 srcreg = (opcode & 7);
49087: OpcodeFamily = 15; CurrentInstrCycles = 26;
49088: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
49089: BusCyclePenalty += 2;
49090: if ((srca & 1) != 0) {
49091: last_fault_for_exception_3 = srca;
49092: last_op_for_exception_3 = opcode;
49093: last_addr_for_exception_3 = m68k_getpc() + 4;
49094: Exception(3, 0, M68000_EXC_SRC_CPU);
49095: goto endlabel2804;
49096: }
49097: {{ uae_s32 src = get_long(srca);
49098: {{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src));
49099: { int flgs = ((uae_s32)(src)) < 0;
49100: int flgo = ((uae_s32)(0)) < 0;
49101: int flgn = ((uae_s32)(dst)) < 0;
49102: SET_ZFLG (((uae_s32)(dst)) == 0);
49103: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
49104: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0)));
49105: COPY_CARRY;
49106: SET_NFLG (flgn != 0);
49107: m68k_incpc(4);
49108: fill_prefetch_0 ();
49109: put_long(srca,dst);
49110: }}}}}}}endlabel2804: ;
49111: return 26;
49112: }
49113: unsigned long REGPARAM2 CPUFUNC(op_44b8_5)(uae_u32 opcode) /* NEG */
49114: {
49115: OpcodeFamily = 15; CurrentInstrCycles = 24;
49116: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
49117: if ((srca & 1) != 0) {
49118: last_fault_for_exception_3 = srca;
49119: last_op_for_exception_3 = opcode;
49120: last_addr_for_exception_3 = m68k_getpc() + 4;
49121: Exception(3, 0, M68000_EXC_SRC_CPU);
49122: goto endlabel2805;
49123: }
49124: {{ uae_s32 src = get_long(srca);
49125: {{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src));
49126: { int flgs = ((uae_s32)(src)) < 0;
49127: int flgo = ((uae_s32)(0)) < 0;
49128: int flgn = ((uae_s32)(dst)) < 0;
49129: SET_ZFLG (((uae_s32)(dst)) == 0);
49130: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
49131: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0)));
49132: COPY_CARRY;
49133: SET_NFLG (flgn != 0);
49134: m68k_incpc(4);
49135: fill_prefetch_0 ();
49136: put_long(srca,dst);
49137: }}}}}}}endlabel2805: ;
49138: return 24;
49139: }
49140: unsigned long REGPARAM2 CPUFUNC(op_44b9_5)(uae_u32 opcode) /* NEG */
49141: {
49142: OpcodeFamily = 15; CurrentInstrCycles = 28;
49143: {{ uaecptr srca = get_ilong_prefetch(2);
49144: if ((srca & 1) != 0) {
49145: last_fault_for_exception_3 = srca;
49146: last_op_for_exception_3 = opcode;
49147: last_addr_for_exception_3 = m68k_getpc() + 6;
49148: Exception(3, 0, M68000_EXC_SRC_CPU);
49149: goto endlabel2806;
49150: }
49151: {{ uae_s32 src = get_long(srca);
49152: {{uae_u32 dst = ((uae_s32)(0)) - ((uae_s32)(src));
49153: { int flgs = ((uae_s32)(src)) < 0;
49154: int flgo = ((uae_s32)(0)) < 0;
49155: int flgn = ((uae_s32)(dst)) < 0;
49156: SET_ZFLG (((uae_s32)(dst)) == 0);
49157: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
49158: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(0)));
49159: COPY_CARRY;
49160: SET_NFLG (flgn != 0);
49161: m68k_incpc(6);
49162: fill_prefetch_0 ();
49163: put_long(srca,dst);
49164: }}}}}}}endlabel2806: ;
49165: return 28;
49166: }
49167: unsigned long REGPARAM2 CPUFUNC(op_44c0_5)(uae_u32 opcode) /* MV2SR */
49168: {
49169: uae_u32 srcreg = (opcode & 7);
49170: OpcodeFamily = 33; CurrentInstrCycles = 12;
49171: {{ uae_s16 src = m68k_dreg(regs, srcreg);
49172: MakeSR();
49173: regs.sr &= 0xFF00;
49174: regs.sr |= src & 0xFF;
49175: MakeFromSR();
49176: }}m68k_incpc(2);
49177: fill_prefetch_2 ();
49178: return 12;
49179: }
49180: unsigned long REGPARAM2 CPUFUNC(op_44d0_5)(uae_u32 opcode) /* MV2SR */
49181: {
49182: uae_u32 srcreg = (opcode & 7);
49183: OpcodeFamily = 33; CurrentInstrCycles = 16;
49184: {{ uaecptr srca = m68k_areg(regs, srcreg);
49185: if ((srca & 1) != 0) {
49186: last_fault_for_exception_3 = srca;
49187: last_op_for_exception_3 = opcode;
49188: last_addr_for_exception_3 = m68k_getpc() + 2;
49189: Exception(3, 0, M68000_EXC_SRC_CPU);
49190: goto endlabel2808;
49191: }
49192: {{ uae_s16 src = get_word(srca);
49193: MakeSR();
49194: regs.sr &= 0xFF00;
49195: regs.sr |= src & 0xFF;
49196: MakeFromSR();
49197: }}}}m68k_incpc(2);
49198: fill_prefetch_2 ();
49199: endlabel2808: ;
49200: return 16;
49201: }
49202: unsigned long REGPARAM2 CPUFUNC(op_44d8_5)(uae_u32 opcode) /* MV2SR */
49203: {
49204: uae_u32 srcreg = (opcode & 7);
49205: OpcodeFamily = 33; CurrentInstrCycles = 16;
49206: {{ uaecptr srca = m68k_areg(regs, srcreg);
49207: if ((srca & 1) != 0) {
49208: last_fault_for_exception_3 = srca;
49209: last_op_for_exception_3 = opcode;
49210: last_addr_for_exception_3 = m68k_getpc() + 2;
49211: Exception(3, 0, M68000_EXC_SRC_CPU);
49212: goto endlabel2809;
49213: }
49214: {{ uae_s16 src = get_word(srca);
49215: m68k_areg(regs, srcreg) += 2;
49216: MakeSR();
49217: regs.sr &= 0xFF00;
49218: regs.sr |= src & 0xFF;
49219: MakeFromSR();
49220: }}}}m68k_incpc(2);
49221: fill_prefetch_2 ();
49222: endlabel2809: ;
49223: return 16;
49224: }
49225: unsigned long REGPARAM2 CPUFUNC(op_44e0_5)(uae_u32 opcode) /* MV2SR */
49226: {
49227: uae_u32 srcreg = (opcode & 7);
49228: OpcodeFamily = 33; CurrentInstrCycles = 18;
49229: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
49230: if ((srca & 1) != 0) {
49231: last_fault_for_exception_3 = srca;
49232: last_op_for_exception_3 = opcode;
49233: last_addr_for_exception_3 = m68k_getpc() + 2;
49234: Exception(3, 0, M68000_EXC_SRC_CPU);
49235: goto endlabel2810;
49236: }
49237: {{ uae_s16 src = get_word(srca);
49238: m68k_areg (regs, srcreg) = srca;
49239: MakeSR();
49240: regs.sr &= 0xFF00;
49241: regs.sr |= src & 0xFF;
49242: MakeFromSR();
49243: }}}}m68k_incpc(2);
49244: fill_prefetch_2 ();
49245: endlabel2810: ;
49246: return 18;
49247: }
49248: unsigned long REGPARAM2 CPUFUNC(op_44e8_5)(uae_u32 opcode) /* MV2SR */
49249: {
49250: uae_u32 srcreg = (opcode & 7);
49251: OpcodeFamily = 33; CurrentInstrCycles = 20;
49252: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
49253: if ((srca & 1) != 0) {
49254: last_fault_for_exception_3 = srca;
49255: last_op_for_exception_3 = opcode;
49256: last_addr_for_exception_3 = m68k_getpc() + 4;
49257: Exception(3, 0, M68000_EXC_SRC_CPU);
49258: goto endlabel2811;
49259: }
49260: {{ uae_s16 src = get_word(srca);
49261: MakeSR();
49262: regs.sr &= 0xFF00;
49263: regs.sr |= src & 0xFF;
49264: MakeFromSR();
49265: }}}}m68k_incpc(4);
49266: fill_prefetch_0 ();
49267: endlabel2811: ;
49268: return 20;
49269: }
49270: unsigned long REGPARAM2 CPUFUNC(op_44f0_5)(uae_u32 opcode) /* MV2SR */
49271: {
49272: uae_u32 srcreg = (opcode & 7);
49273: OpcodeFamily = 33; CurrentInstrCycles = 22;
49274: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
49275: BusCyclePenalty += 2;
49276: if ((srca & 1) != 0) {
49277: last_fault_for_exception_3 = srca;
49278: last_op_for_exception_3 = opcode;
49279: last_addr_for_exception_3 = m68k_getpc() + 4;
49280: Exception(3, 0, M68000_EXC_SRC_CPU);
49281: goto endlabel2812;
49282: }
49283: {{ uae_s16 src = get_word(srca);
49284: MakeSR();
49285: regs.sr &= 0xFF00;
49286: regs.sr |= src & 0xFF;
49287: MakeFromSR();
49288: }}}}m68k_incpc(4);
49289: fill_prefetch_0 ();
49290: endlabel2812: ;
49291: return 22;
49292: }
49293: unsigned long REGPARAM2 CPUFUNC(op_44f8_5)(uae_u32 opcode) /* MV2SR */
49294: {
49295: OpcodeFamily = 33; CurrentInstrCycles = 20;
49296: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
49297: if ((srca & 1) != 0) {
49298: last_fault_for_exception_3 = srca;
49299: last_op_for_exception_3 = opcode;
49300: last_addr_for_exception_3 = m68k_getpc() + 4;
49301: Exception(3, 0, M68000_EXC_SRC_CPU);
49302: goto endlabel2813;
49303: }
49304: {{ uae_s16 src = get_word(srca);
49305: MakeSR();
49306: regs.sr &= 0xFF00;
49307: regs.sr |= src & 0xFF;
49308: MakeFromSR();
49309: }}}}m68k_incpc(4);
49310: fill_prefetch_0 ();
49311: endlabel2813: ;
49312: return 20;
49313: }
49314: unsigned long REGPARAM2 CPUFUNC(op_44f9_5)(uae_u32 opcode) /* MV2SR */
49315: {
49316: OpcodeFamily = 33; CurrentInstrCycles = 24;
49317: {{ uaecptr srca = get_ilong_prefetch(2);
49318: if ((srca & 1) != 0) {
49319: last_fault_for_exception_3 = srca;
49320: last_op_for_exception_3 = opcode;
49321: last_addr_for_exception_3 = m68k_getpc() + 6;
49322: Exception(3, 0, M68000_EXC_SRC_CPU);
49323: goto endlabel2814;
49324: }
49325: {{ uae_s16 src = get_word(srca);
49326: MakeSR();
49327: regs.sr &= 0xFF00;
49328: regs.sr |= src & 0xFF;
49329: MakeFromSR();
49330: }}}}m68k_incpc(6);
49331: fill_prefetch_0 ();
49332: endlabel2814: ;
49333: return 24;
49334: }
49335: unsigned long REGPARAM2 CPUFUNC(op_44fa_5)(uae_u32 opcode) /* MV2SR */
49336: {
49337: OpcodeFamily = 33; CurrentInstrCycles = 20;
49338: {{ uaecptr srca = m68k_getpc () + 2;
49339: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
49340: if ((srca & 1) != 0) {
49341: last_fault_for_exception_3 = srca;
49342: last_op_for_exception_3 = opcode;
49343: last_addr_for_exception_3 = m68k_getpc() + 4;
49344: Exception(3, 0, M68000_EXC_SRC_CPU);
49345: goto endlabel2815;
49346: }
49347: {{ uae_s16 src = get_word(srca);
49348: MakeSR();
49349: regs.sr &= 0xFF00;
49350: regs.sr |= src & 0xFF;
49351: MakeFromSR();
49352: }}}}m68k_incpc(4);
49353: fill_prefetch_0 ();
49354: endlabel2815: ;
49355: return 20;
49356: }
49357: unsigned long REGPARAM2 CPUFUNC(op_44fb_5)(uae_u32 opcode) /* MV2SR */
49358: {
49359: OpcodeFamily = 33; CurrentInstrCycles = 22;
49360: {{ uaecptr tmppc = m68k_getpc() + 2;
49361: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
49362: BusCyclePenalty += 2;
49363: if ((srca & 1) != 0) {
49364: last_fault_for_exception_3 = srca;
49365: last_op_for_exception_3 = opcode;
49366: last_addr_for_exception_3 = m68k_getpc() + 4;
49367: Exception(3, 0, M68000_EXC_SRC_CPU);
49368: goto endlabel2816;
49369: }
49370: {{ uae_s16 src = get_word(srca);
49371: MakeSR();
49372: regs.sr &= 0xFF00;
49373: regs.sr |= src & 0xFF;
49374: MakeFromSR();
49375: }}}}m68k_incpc(4);
49376: fill_prefetch_0 ();
49377: endlabel2816: ;
49378: return 22;
49379: }
49380: unsigned long REGPARAM2 CPUFUNC(op_44fc_5)(uae_u32 opcode) /* MV2SR */
49381: {
49382: OpcodeFamily = 33; CurrentInstrCycles = 16;
49383: {{ uae_s16 src = get_iword_prefetch(2);
49384: MakeSR();
49385: regs.sr &= 0xFF00;
49386: regs.sr |= src & 0xFF;
49387: MakeFromSR();
49388: }}m68k_incpc(4);
49389: fill_prefetch_0 ();
49390: return 16;
49391: }
49392: unsigned long REGPARAM2 CPUFUNC(op_4600_5)(uae_u32 opcode) /* NOT */
49393: {
49394: uae_u32 srcreg = (opcode & 7);
49395: OpcodeFamily = 19; CurrentInstrCycles = 4;
49396: {{ uae_s8 src = m68k_dreg(regs, srcreg);
49397: { uae_u32 dst = ~src;
49398: CLEAR_CZNV;
49399: SET_ZFLG (((uae_s8)(dst)) == 0);
49400: SET_NFLG (((uae_s8)(dst)) < 0);
49401: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((dst) & 0xff);
49402: }}}m68k_incpc(2);
49403: fill_prefetch_2 ();
49404: return 4;
49405: }
49406: unsigned long REGPARAM2 CPUFUNC(op_4610_5)(uae_u32 opcode) /* NOT */
49407: {
49408: uae_u32 srcreg = (opcode & 7);
49409: OpcodeFamily = 19; CurrentInstrCycles = 12;
49410: {{ uaecptr srca = m68k_areg(regs, srcreg);
49411: { uae_s8 src = get_byte(srca);
49412: { uae_u32 dst = ~src;
49413: CLEAR_CZNV;
49414: SET_ZFLG (((uae_s8)(dst)) == 0);
49415: SET_NFLG (((uae_s8)(dst)) < 0);
49416: m68k_incpc(2);
49417: fill_prefetch_2 ();
49418: put_byte(srca,dst);
49419: }}}}return 12;
49420: }
49421: unsigned long REGPARAM2 CPUFUNC(op_4618_5)(uae_u32 opcode) /* NOT */
49422: {
49423: uae_u32 srcreg = (opcode & 7);
49424: OpcodeFamily = 19; CurrentInstrCycles = 12;
49425: {{ uaecptr srca = m68k_areg(regs, srcreg);
49426: { uae_s8 src = get_byte(srca);
49427: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
49428: { uae_u32 dst = ~src;
49429: CLEAR_CZNV;
49430: SET_ZFLG (((uae_s8)(dst)) == 0);
49431: SET_NFLG (((uae_s8)(dst)) < 0);
49432: m68k_incpc(2);
49433: fill_prefetch_2 ();
49434: put_byte(srca,dst);
49435: }}}}return 12;
49436: }
49437: unsigned long REGPARAM2 CPUFUNC(op_4620_5)(uae_u32 opcode) /* NOT */
49438: {
49439: uae_u32 srcreg = (opcode & 7);
49440: OpcodeFamily = 19; CurrentInstrCycles = 14;
49441: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
49442: { uae_s8 src = get_byte(srca);
49443: m68k_areg (regs, srcreg) = srca;
49444: { uae_u32 dst = ~src;
49445: CLEAR_CZNV;
49446: SET_ZFLG (((uae_s8)(dst)) == 0);
49447: SET_NFLG (((uae_s8)(dst)) < 0);
49448: m68k_incpc(2);
49449: fill_prefetch_2 ();
49450: put_byte(srca,dst);
49451: }}}}return 14;
49452: }
49453: unsigned long REGPARAM2 CPUFUNC(op_4628_5)(uae_u32 opcode) /* NOT */
49454: {
49455: uae_u32 srcreg = (opcode & 7);
49456: OpcodeFamily = 19; CurrentInstrCycles = 16;
49457: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
49458: { uae_s8 src = get_byte(srca);
49459: { uae_u32 dst = ~src;
49460: CLEAR_CZNV;
49461: SET_ZFLG (((uae_s8)(dst)) == 0);
49462: SET_NFLG (((uae_s8)(dst)) < 0);
49463: m68k_incpc(4);
49464: fill_prefetch_0 ();
49465: put_byte(srca,dst);
49466: }}}}return 16;
49467: }
49468: unsigned long REGPARAM2 CPUFUNC(op_4630_5)(uae_u32 opcode) /* NOT */
49469: {
49470: uae_u32 srcreg = (opcode & 7);
49471: OpcodeFamily = 19; CurrentInstrCycles = 18;
49472: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
49473: BusCyclePenalty += 2;
49474: { uae_s8 src = get_byte(srca);
49475: { uae_u32 dst = ~src;
49476: CLEAR_CZNV;
49477: SET_ZFLG (((uae_s8)(dst)) == 0);
49478: SET_NFLG (((uae_s8)(dst)) < 0);
49479: m68k_incpc(4);
49480: fill_prefetch_0 ();
49481: put_byte(srca,dst);
49482: }}}}return 18;
49483: }
49484: unsigned long REGPARAM2 CPUFUNC(op_4638_5)(uae_u32 opcode) /* NOT */
49485: {
49486: OpcodeFamily = 19; CurrentInstrCycles = 16;
49487: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
49488: { uae_s8 src = get_byte(srca);
49489: { uae_u32 dst = ~src;
49490: CLEAR_CZNV;
49491: SET_ZFLG (((uae_s8)(dst)) == 0);
49492: SET_NFLG (((uae_s8)(dst)) < 0);
49493: m68k_incpc(4);
49494: fill_prefetch_0 ();
49495: put_byte(srca,dst);
49496: }}}}return 16;
49497: }
49498: unsigned long REGPARAM2 CPUFUNC(op_4639_5)(uae_u32 opcode) /* NOT */
49499: {
49500: OpcodeFamily = 19; CurrentInstrCycles = 20;
49501: {{ uaecptr srca = get_ilong_prefetch(2);
49502: { uae_s8 src = get_byte(srca);
49503: { uae_u32 dst = ~src;
49504: CLEAR_CZNV;
49505: SET_ZFLG (((uae_s8)(dst)) == 0);
49506: SET_NFLG (((uae_s8)(dst)) < 0);
49507: m68k_incpc(6);
49508: fill_prefetch_0 ();
49509: put_byte(srca,dst);
49510: }}}}return 20;
49511: }
49512: unsigned long REGPARAM2 CPUFUNC(op_4640_5)(uae_u32 opcode) /* NOT */
49513: {
49514: uae_u32 srcreg = (opcode & 7);
49515: OpcodeFamily = 19; CurrentInstrCycles = 4;
49516: {{ uae_s16 src = m68k_dreg(regs, srcreg);
49517: { uae_u32 dst = ~src;
49518: CLEAR_CZNV;
49519: SET_ZFLG (((uae_s16)(dst)) == 0);
49520: SET_NFLG (((uae_s16)(dst)) < 0);
49521: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((dst) & 0xffff);
49522: }}}m68k_incpc(2);
49523: fill_prefetch_2 ();
49524: return 4;
49525: }
49526: unsigned long REGPARAM2 CPUFUNC(op_4650_5)(uae_u32 opcode) /* NOT */
49527: {
49528: uae_u32 srcreg = (opcode & 7);
49529: OpcodeFamily = 19; CurrentInstrCycles = 12;
49530: {{ uaecptr srca = m68k_areg(regs, srcreg);
49531: if ((srca & 1) != 0) {
49532: last_fault_for_exception_3 = srca;
49533: last_op_for_exception_3 = opcode;
49534: last_addr_for_exception_3 = m68k_getpc() + 2;
49535: Exception(3, 0, M68000_EXC_SRC_CPU);
49536: goto endlabel2827;
49537: }
49538: {{ uae_s16 src = get_word(srca);
49539: { uae_u32 dst = ~src;
49540: CLEAR_CZNV;
49541: SET_ZFLG (((uae_s16)(dst)) == 0);
49542: SET_NFLG (((uae_s16)(dst)) < 0);
49543: m68k_incpc(2);
49544: fill_prefetch_2 ();
49545: put_word(srca,dst);
49546: }}}}}endlabel2827: ;
49547: return 12;
49548: }
49549: unsigned long REGPARAM2 CPUFUNC(op_4658_5)(uae_u32 opcode) /* NOT */
49550: {
49551: uae_u32 srcreg = (opcode & 7);
49552: OpcodeFamily = 19; CurrentInstrCycles = 12;
49553: {{ uaecptr srca = m68k_areg(regs, srcreg);
49554: if ((srca & 1) != 0) {
49555: last_fault_for_exception_3 = srca;
49556: last_op_for_exception_3 = opcode;
49557: last_addr_for_exception_3 = m68k_getpc() + 2;
49558: Exception(3, 0, M68000_EXC_SRC_CPU);
49559: goto endlabel2828;
49560: }
49561: {{ uae_s16 src = get_word(srca);
49562: m68k_areg(regs, srcreg) += 2;
49563: { uae_u32 dst = ~src;
49564: CLEAR_CZNV;
49565: SET_ZFLG (((uae_s16)(dst)) == 0);
49566: SET_NFLG (((uae_s16)(dst)) < 0);
49567: m68k_incpc(2);
49568: fill_prefetch_2 ();
49569: put_word(srca,dst);
49570: }}}}}endlabel2828: ;
49571: return 12;
49572: }
49573: unsigned long REGPARAM2 CPUFUNC(op_4660_5)(uae_u32 opcode) /* NOT */
49574: {
49575: uae_u32 srcreg = (opcode & 7);
49576: OpcodeFamily = 19; CurrentInstrCycles = 14;
49577: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
49578: if ((srca & 1) != 0) {
49579: last_fault_for_exception_3 = srca;
49580: last_op_for_exception_3 = opcode;
49581: last_addr_for_exception_3 = m68k_getpc() + 2;
49582: Exception(3, 0, M68000_EXC_SRC_CPU);
49583: goto endlabel2829;
49584: }
49585: {{ uae_s16 src = get_word(srca);
49586: m68k_areg (regs, srcreg) = srca;
49587: { uae_u32 dst = ~src;
49588: CLEAR_CZNV;
49589: SET_ZFLG (((uae_s16)(dst)) == 0);
49590: SET_NFLG (((uae_s16)(dst)) < 0);
49591: m68k_incpc(2);
49592: fill_prefetch_2 ();
49593: put_word(srca,dst);
49594: }}}}}endlabel2829: ;
49595: return 14;
49596: }
49597: unsigned long REGPARAM2 CPUFUNC(op_4668_5)(uae_u32 opcode) /* NOT */
49598: {
49599: uae_u32 srcreg = (opcode & 7);
49600: OpcodeFamily = 19; CurrentInstrCycles = 16;
49601: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
49602: if ((srca & 1) != 0) {
49603: last_fault_for_exception_3 = srca;
49604: last_op_for_exception_3 = opcode;
49605: last_addr_for_exception_3 = m68k_getpc() + 4;
49606: Exception(3, 0, M68000_EXC_SRC_CPU);
49607: goto endlabel2830;
49608: }
49609: {{ uae_s16 src = get_word(srca);
49610: { uae_u32 dst = ~src;
49611: CLEAR_CZNV;
49612: SET_ZFLG (((uae_s16)(dst)) == 0);
49613: SET_NFLG (((uae_s16)(dst)) < 0);
49614: m68k_incpc(4);
49615: fill_prefetch_0 ();
49616: put_word(srca,dst);
49617: }}}}}endlabel2830: ;
49618: return 16;
49619: }
49620: unsigned long REGPARAM2 CPUFUNC(op_4670_5)(uae_u32 opcode) /* NOT */
49621: {
49622: uae_u32 srcreg = (opcode & 7);
49623: OpcodeFamily = 19; CurrentInstrCycles = 18;
49624: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
49625: BusCyclePenalty += 2;
49626: if ((srca & 1) != 0) {
49627: last_fault_for_exception_3 = srca;
49628: last_op_for_exception_3 = opcode;
49629: last_addr_for_exception_3 = m68k_getpc() + 4;
49630: Exception(3, 0, M68000_EXC_SRC_CPU);
49631: goto endlabel2831;
49632: }
49633: {{ uae_s16 src = get_word(srca);
49634: { uae_u32 dst = ~src;
49635: CLEAR_CZNV;
49636: SET_ZFLG (((uae_s16)(dst)) == 0);
49637: SET_NFLG (((uae_s16)(dst)) < 0);
49638: m68k_incpc(4);
49639: fill_prefetch_0 ();
49640: put_word(srca,dst);
49641: }}}}}endlabel2831: ;
49642: return 18;
49643: }
49644: unsigned long REGPARAM2 CPUFUNC(op_4678_5)(uae_u32 opcode) /* NOT */
49645: {
49646: OpcodeFamily = 19; CurrentInstrCycles = 16;
49647: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
49648: if ((srca & 1) != 0) {
49649: last_fault_for_exception_3 = srca;
49650: last_op_for_exception_3 = opcode;
49651: last_addr_for_exception_3 = m68k_getpc() + 4;
49652: Exception(3, 0, M68000_EXC_SRC_CPU);
49653: goto endlabel2832;
49654: }
49655: {{ uae_s16 src = get_word(srca);
49656: { uae_u32 dst = ~src;
49657: CLEAR_CZNV;
49658: SET_ZFLG (((uae_s16)(dst)) == 0);
49659: SET_NFLG (((uae_s16)(dst)) < 0);
49660: m68k_incpc(4);
49661: fill_prefetch_0 ();
49662: put_word(srca,dst);
49663: }}}}}endlabel2832: ;
49664: return 16;
49665: }
49666: unsigned long REGPARAM2 CPUFUNC(op_4679_5)(uae_u32 opcode) /* NOT */
49667: {
49668: OpcodeFamily = 19; CurrentInstrCycles = 20;
49669: {{ uaecptr srca = get_ilong_prefetch(2);
49670: if ((srca & 1) != 0) {
49671: last_fault_for_exception_3 = srca;
49672: last_op_for_exception_3 = opcode;
49673: last_addr_for_exception_3 = m68k_getpc() + 6;
49674: Exception(3, 0, M68000_EXC_SRC_CPU);
49675: goto endlabel2833;
49676: }
49677: {{ uae_s16 src = get_word(srca);
49678: { uae_u32 dst = ~src;
49679: CLEAR_CZNV;
49680: SET_ZFLG (((uae_s16)(dst)) == 0);
49681: SET_NFLG (((uae_s16)(dst)) < 0);
49682: m68k_incpc(6);
49683: fill_prefetch_0 ();
49684: put_word(srca,dst);
49685: }}}}}endlabel2833: ;
49686: return 20;
49687: }
49688: unsigned long REGPARAM2 CPUFUNC(op_4680_5)(uae_u32 opcode) /* NOT */
49689: {
49690: uae_u32 srcreg = (opcode & 7);
49691: OpcodeFamily = 19; CurrentInstrCycles = 6;
49692: {{ uae_s32 src = m68k_dreg(regs, srcreg);
49693: { uae_u32 dst = ~src;
49694: CLEAR_CZNV;
49695: SET_ZFLG (((uae_s32)(dst)) == 0);
49696: SET_NFLG (((uae_s32)(dst)) < 0);
49697: m68k_dreg(regs, srcreg) = (dst);
49698: }}}m68k_incpc(2);
49699: fill_prefetch_2 ();
49700: return 6;
49701: }
49702: unsigned long REGPARAM2 CPUFUNC(op_4690_5)(uae_u32 opcode) /* NOT */
49703: {
49704: uae_u32 srcreg = (opcode & 7);
49705: OpcodeFamily = 19; CurrentInstrCycles = 20;
49706: {{ uaecptr srca = m68k_areg(regs, srcreg);
49707: if ((srca & 1) != 0) {
49708: last_fault_for_exception_3 = srca;
49709: last_op_for_exception_3 = opcode;
49710: last_addr_for_exception_3 = m68k_getpc() + 2;
49711: Exception(3, 0, M68000_EXC_SRC_CPU);
49712: goto endlabel2835;
49713: }
49714: {{ uae_s32 src = get_long(srca);
49715: { uae_u32 dst = ~src;
49716: CLEAR_CZNV;
49717: SET_ZFLG (((uae_s32)(dst)) == 0);
49718: SET_NFLG (((uae_s32)(dst)) < 0);
49719: m68k_incpc(2);
49720: fill_prefetch_2 ();
49721: put_long(srca,dst);
49722: }}}}}endlabel2835: ;
49723: return 20;
49724: }
49725: unsigned long REGPARAM2 CPUFUNC(op_4698_5)(uae_u32 opcode) /* NOT */
49726: {
49727: uae_u32 srcreg = (opcode & 7);
49728: OpcodeFamily = 19; CurrentInstrCycles = 20;
49729: {{ uaecptr srca = m68k_areg(regs, srcreg);
49730: if ((srca & 1) != 0) {
49731: last_fault_for_exception_3 = srca;
49732: last_op_for_exception_3 = opcode;
49733: last_addr_for_exception_3 = m68k_getpc() + 2;
49734: Exception(3, 0, M68000_EXC_SRC_CPU);
49735: goto endlabel2836;
49736: }
49737: {{ uae_s32 src = get_long(srca);
49738: m68k_areg(regs, srcreg) += 4;
49739: { uae_u32 dst = ~src;
49740: CLEAR_CZNV;
49741: SET_ZFLG (((uae_s32)(dst)) == 0);
49742: SET_NFLG (((uae_s32)(dst)) < 0);
49743: m68k_incpc(2);
49744: fill_prefetch_2 ();
49745: put_long(srca,dst);
49746: }}}}}endlabel2836: ;
49747: return 20;
49748: }
49749: unsigned long REGPARAM2 CPUFUNC(op_46a0_5)(uae_u32 opcode) /* NOT */
49750: {
49751: uae_u32 srcreg = (opcode & 7);
49752: OpcodeFamily = 19; CurrentInstrCycles = 22;
49753: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
49754: if ((srca & 1) != 0) {
49755: last_fault_for_exception_3 = srca;
49756: last_op_for_exception_3 = opcode;
49757: last_addr_for_exception_3 = m68k_getpc() + 2;
49758: Exception(3, 0, M68000_EXC_SRC_CPU);
49759: goto endlabel2837;
49760: }
49761: {{ uae_s32 src = get_long(srca);
49762: m68k_areg (regs, srcreg) = srca;
49763: { uae_u32 dst = ~src;
49764: CLEAR_CZNV;
49765: SET_ZFLG (((uae_s32)(dst)) == 0);
49766: SET_NFLG (((uae_s32)(dst)) < 0);
49767: m68k_incpc(2);
49768: fill_prefetch_2 ();
49769: put_long(srca,dst);
49770: }}}}}endlabel2837: ;
49771: return 22;
49772: }
49773: unsigned long REGPARAM2 CPUFUNC(op_46a8_5)(uae_u32 opcode) /* NOT */
49774: {
49775: uae_u32 srcreg = (opcode & 7);
49776: OpcodeFamily = 19; CurrentInstrCycles = 24;
49777: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
49778: if ((srca & 1) != 0) {
49779: last_fault_for_exception_3 = srca;
49780: last_op_for_exception_3 = opcode;
49781: last_addr_for_exception_3 = m68k_getpc() + 4;
49782: Exception(3, 0, M68000_EXC_SRC_CPU);
49783: goto endlabel2838;
49784: }
49785: {{ uae_s32 src = get_long(srca);
49786: { uae_u32 dst = ~src;
49787: CLEAR_CZNV;
49788: SET_ZFLG (((uae_s32)(dst)) == 0);
49789: SET_NFLG (((uae_s32)(dst)) < 0);
49790: m68k_incpc(4);
49791: fill_prefetch_0 ();
49792: put_long(srca,dst);
49793: }}}}}endlabel2838: ;
49794: return 24;
49795: }
49796: unsigned long REGPARAM2 CPUFUNC(op_46b0_5)(uae_u32 opcode) /* NOT */
49797: {
49798: uae_u32 srcreg = (opcode & 7);
49799: OpcodeFamily = 19; CurrentInstrCycles = 26;
49800: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
49801: BusCyclePenalty += 2;
49802: if ((srca & 1) != 0) {
49803: last_fault_for_exception_3 = srca;
49804: last_op_for_exception_3 = opcode;
49805: last_addr_for_exception_3 = m68k_getpc() + 4;
49806: Exception(3, 0, M68000_EXC_SRC_CPU);
49807: goto endlabel2839;
49808: }
49809: {{ uae_s32 src = get_long(srca);
49810: { uae_u32 dst = ~src;
49811: CLEAR_CZNV;
49812: SET_ZFLG (((uae_s32)(dst)) == 0);
49813: SET_NFLG (((uae_s32)(dst)) < 0);
49814: m68k_incpc(4);
49815: fill_prefetch_0 ();
49816: put_long(srca,dst);
49817: }}}}}endlabel2839: ;
49818: return 26;
49819: }
49820: unsigned long REGPARAM2 CPUFUNC(op_46b8_5)(uae_u32 opcode) /* NOT */
49821: {
49822: OpcodeFamily = 19; CurrentInstrCycles = 24;
49823: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
49824: if ((srca & 1) != 0) {
49825: last_fault_for_exception_3 = srca;
49826: last_op_for_exception_3 = opcode;
49827: last_addr_for_exception_3 = m68k_getpc() + 4;
49828: Exception(3, 0, M68000_EXC_SRC_CPU);
49829: goto endlabel2840;
49830: }
49831: {{ uae_s32 src = get_long(srca);
49832: { uae_u32 dst = ~src;
49833: CLEAR_CZNV;
49834: SET_ZFLG (((uae_s32)(dst)) == 0);
49835: SET_NFLG (((uae_s32)(dst)) < 0);
49836: m68k_incpc(4);
49837: fill_prefetch_0 ();
49838: put_long(srca,dst);
49839: }}}}}endlabel2840: ;
49840: return 24;
49841: }
49842: unsigned long REGPARAM2 CPUFUNC(op_46b9_5)(uae_u32 opcode) /* NOT */
49843: {
49844: OpcodeFamily = 19; CurrentInstrCycles = 28;
49845: {{ uaecptr srca = get_ilong_prefetch(2);
49846: if ((srca & 1) != 0) {
49847: last_fault_for_exception_3 = srca;
49848: last_op_for_exception_3 = opcode;
49849: last_addr_for_exception_3 = m68k_getpc() + 6;
49850: Exception(3, 0, M68000_EXC_SRC_CPU);
49851: goto endlabel2841;
49852: }
49853: {{ uae_s32 src = get_long(srca);
49854: { uae_u32 dst = ~src;
49855: CLEAR_CZNV;
49856: SET_ZFLG (((uae_s32)(dst)) == 0);
49857: SET_NFLG (((uae_s32)(dst)) < 0);
49858: m68k_incpc(6);
49859: fill_prefetch_0 ();
49860: put_long(srca,dst);
49861: }}}}}endlabel2841: ;
49862: return 28;
49863: }
49864: unsigned long REGPARAM2 CPUFUNC(op_46c0_5)(uae_u32 opcode) /* MV2SR */
49865: {
49866: uae_u32 srcreg = (opcode & 7);
49867: OpcodeFamily = 33; CurrentInstrCycles = 12;
49868: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel2842; }
49869: {{ uae_s16 src = m68k_dreg(regs, srcreg);
49870: regs.sr = src;
49871: MakeFromSR();
49872: }}}m68k_incpc(2);
49873: fill_prefetch_2 ();
49874: endlabel2842: ;
49875: return 12;
49876: }
49877: unsigned long REGPARAM2 CPUFUNC(op_46d0_5)(uae_u32 opcode) /* MV2SR */
49878: {
49879: uae_u32 srcreg = (opcode & 7);
49880: OpcodeFamily = 33; CurrentInstrCycles = 16;
49881: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel2843; }
49882: {{ uaecptr srca = m68k_areg(regs, srcreg);
49883: if ((srca & 1) != 0) {
49884: last_fault_for_exception_3 = srca;
49885: last_op_for_exception_3 = opcode;
49886: last_addr_for_exception_3 = m68k_getpc() + 2;
49887: Exception(3, 0, M68000_EXC_SRC_CPU);
49888: goto endlabel2843;
49889: }
49890: {{ uae_s16 src = get_word(srca);
49891: regs.sr = src;
49892: MakeFromSR();
49893: }}}}}m68k_incpc(2);
49894: fill_prefetch_2 ();
49895: endlabel2843: ;
49896: return 16;
49897: }
49898: unsigned long REGPARAM2 CPUFUNC(op_46d8_5)(uae_u32 opcode) /* MV2SR */
49899: {
49900: uae_u32 srcreg = (opcode & 7);
49901: OpcodeFamily = 33; CurrentInstrCycles = 16;
49902: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel2844; }
49903: {{ uaecptr srca = m68k_areg(regs, srcreg);
49904: if ((srca & 1) != 0) {
49905: last_fault_for_exception_3 = srca;
49906: last_op_for_exception_3 = opcode;
49907: last_addr_for_exception_3 = m68k_getpc() + 2;
49908: Exception(3, 0, M68000_EXC_SRC_CPU);
49909: goto endlabel2844;
49910: }
49911: {{ uae_s16 src = get_word(srca);
49912: m68k_areg(regs, srcreg) += 2;
49913: regs.sr = src;
49914: MakeFromSR();
49915: }}}}}m68k_incpc(2);
49916: fill_prefetch_2 ();
49917: endlabel2844: ;
49918: return 16;
49919: }
49920: unsigned long REGPARAM2 CPUFUNC(op_46e0_5)(uae_u32 opcode) /* MV2SR */
49921: {
49922: uae_u32 srcreg = (opcode & 7);
49923: OpcodeFamily = 33; CurrentInstrCycles = 18;
49924: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel2845; }
49925: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
49926: if ((srca & 1) != 0) {
49927: last_fault_for_exception_3 = srca;
49928: last_op_for_exception_3 = opcode;
49929: last_addr_for_exception_3 = m68k_getpc() + 2;
49930: Exception(3, 0, M68000_EXC_SRC_CPU);
49931: goto endlabel2845;
49932: }
49933: {{ uae_s16 src = get_word(srca);
49934: m68k_areg (regs, srcreg) = srca;
49935: regs.sr = src;
49936: MakeFromSR();
49937: }}}}}m68k_incpc(2);
49938: fill_prefetch_2 ();
49939: endlabel2845: ;
49940: return 18;
49941: }
49942: unsigned long REGPARAM2 CPUFUNC(op_46e8_5)(uae_u32 opcode) /* MV2SR */
49943: {
49944: uae_u32 srcreg = (opcode & 7);
49945: OpcodeFamily = 33; CurrentInstrCycles = 20;
49946: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel2846; }
49947: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
49948: if ((srca & 1) != 0) {
49949: last_fault_for_exception_3 = srca;
49950: last_op_for_exception_3 = opcode;
49951: last_addr_for_exception_3 = m68k_getpc() + 4;
49952: Exception(3, 0, M68000_EXC_SRC_CPU);
49953: goto endlabel2846;
49954: }
49955: {{ uae_s16 src = get_word(srca);
49956: regs.sr = src;
49957: MakeFromSR();
49958: }}}}}m68k_incpc(4);
49959: fill_prefetch_0 ();
49960: endlabel2846: ;
49961: return 20;
49962: }
49963: unsigned long REGPARAM2 CPUFUNC(op_46f0_5)(uae_u32 opcode) /* MV2SR */
49964: {
49965: uae_u32 srcreg = (opcode & 7);
49966: OpcodeFamily = 33; CurrentInstrCycles = 22;
49967: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel2847; }
49968: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
49969: BusCyclePenalty += 2;
49970: if ((srca & 1) != 0) {
49971: last_fault_for_exception_3 = srca;
49972: last_op_for_exception_3 = opcode;
49973: last_addr_for_exception_3 = m68k_getpc() + 4;
49974: Exception(3, 0, M68000_EXC_SRC_CPU);
49975: goto endlabel2847;
49976: }
49977: {{ uae_s16 src = get_word(srca);
49978: regs.sr = src;
49979: MakeFromSR();
49980: }}}}}m68k_incpc(4);
49981: fill_prefetch_0 ();
49982: endlabel2847: ;
49983: return 22;
49984: }
49985: unsigned long REGPARAM2 CPUFUNC(op_46f8_5)(uae_u32 opcode) /* MV2SR */
49986: {
49987: OpcodeFamily = 33; CurrentInstrCycles = 20;
49988: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel2848; }
49989: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
49990: if ((srca & 1) != 0) {
49991: last_fault_for_exception_3 = srca;
49992: last_op_for_exception_3 = opcode;
49993: last_addr_for_exception_3 = m68k_getpc() + 4;
49994: Exception(3, 0, M68000_EXC_SRC_CPU);
49995: goto endlabel2848;
49996: }
49997: {{ uae_s16 src = get_word(srca);
49998: regs.sr = src;
49999: MakeFromSR();
50000: }}}}}m68k_incpc(4);
50001: fill_prefetch_0 ();
50002: endlabel2848: ;
50003: return 20;
50004: }
50005: unsigned long REGPARAM2 CPUFUNC(op_46f9_5)(uae_u32 opcode) /* MV2SR */
50006: {
50007: OpcodeFamily = 33; CurrentInstrCycles = 24;
50008: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel2849; }
50009: {{ uaecptr srca = get_ilong_prefetch(2);
50010: if ((srca & 1) != 0) {
50011: last_fault_for_exception_3 = srca;
50012: last_op_for_exception_3 = opcode;
50013: last_addr_for_exception_3 = m68k_getpc() + 6;
50014: Exception(3, 0, M68000_EXC_SRC_CPU);
50015: goto endlabel2849;
50016: }
50017: {{ uae_s16 src = get_word(srca);
50018: regs.sr = src;
50019: MakeFromSR();
50020: }}}}}m68k_incpc(6);
50021: fill_prefetch_0 ();
50022: endlabel2849: ;
50023: return 24;
50024: }
50025: unsigned long REGPARAM2 CPUFUNC(op_46fa_5)(uae_u32 opcode) /* MV2SR */
50026: {
50027: OpcodeFamily = 33; CurrentInstrCycles = 20;
50028: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel2850; }
50029: {{ uaecptr srca = m68k_getpc () + 2;
50030: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
50031: if ((srca & 1) != 0) {
50032: last_fault_for_exception_3 = srca;
50033: last_op_for_exception_3 = opcode;
50034: last_addr_for_exception_3 = m68k_getpc() + 4;
50035: Exception(3, 0, M68000_EXC_SRC_CPU);
50036: goto endlabel2850;
50037: }
50038: {{ uae_s16 src = get_word(srca);
50039: regs.sr = src;
50040: MakeFromSR();
50041: }}}}}m68k_incpc(4);
50042: fill_prefetch_0 ();
50043: endlabel2850: ;
50044: return 20;
50045: }
50046: unsigned long REGPARAM2 CPUFUNC(op_46fb_5)(uae_u32 opcode) /* MV2SR */
50047: {
50048: OpcodeFamily = 33; CurrentInstrCycles = 22;
50049: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel2851; }
50050: {{ uaecptr tmppc = m68k_getpc() + 2;
50051: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
50052: BusCyclePenalty += 2;
50053: if ((srca & 1) != 0) {
50054: last_fault_for_exception_3 = srca;
50055: last_op_for_exception_3 = opcode;
50056: last_addr_for_exception_3 = m68k_getpc() + 4;
50057: Exception(3, 0, M68000_EXC_SRC_CPU);
50058: goto endlabel2851;
50059: }
50060: {{ uae_s16 src = get_word(srca);
50061: regs.sr = src;
50062: MakeFromSR();
50063: }}}}}m68k_incpc(4);
50064: fill_prefetch_0 ();
50065: endlabel2851: ;
50066: return 22;
50067: }
50068: unsigned long REGPARAM2 CPUFUNC(op_46fc_5)(uae_u32 opcode) /* MV2SR */
50069: {
50070: OpcodeFamily = 33; CurrentInstrCycles = 16;
50071: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel2852; }
50072: {{ uae_s16 src = get_iword_prefetch(2);
50073: regs.sr = src;
50074: MakeFromSR();
50075: }}}m68k_incpc(4);
50076: fill_prefetch_0 ();
50077: endlabel2852: ;
50078: return 16;
50079: }
50080: unsigned long REGPARAM2 CPUFUNC(op_4800_5)(uae_u32 opcode) /* NBCD */
50081: {
50082: uae_u32 srcreg = (opcode & 7);
50083: OpcodeFamily = 17; CurrentInstrCycles = 6;
50084: {{ uae_s8 src = m68k_dreg(regs, srcreg);
50085: { uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0);
50086: uae_u16 newv_hi = - (src & 0xF0);
50087: uae_u16 newv;
50088: int cflg;
50089: if (newv_lo > 9) { newv_lo -= 6; }
50090: newv = newv_hi + newv_lo; cflg = (newv & 0x1F0) > 0x90;
50091: if (cflg) newv -= 0x60;
50092: SET_CFLG (cflg);
50093: COPY_CARRY;
50094: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
50095: SET_NFLG (((uae_s8)(newv)) < 0);
50096: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((newv) & 0xff);
50097: }}}m68k_incpc(2);
50098: fill_prefetch_2 ();
50099: return 6;
50100: }
50101: unsigned long REGPARAM2 CPUFUNC(op_4810_5)(uae_u32 opcode) /* NBCD */
50102: {
50103: uae_u32 srcreg = (opcode & 7);
50104: OpcodeFamily = 17; CurrentInstrCycles = 12;
50105: {{ uaecptr srca = m68k_areg(regs, srcreg);
50106: { uae_s8 src = get_byte(srca);
50107: { uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0);
50108: uae_u16 newv_hi = - (src & 0xF0);
50109: uae_u16 newv;
50110: int cflg;
50111: if (newv_lo > 9) { newv_lo -= 6; }
50112: newv = newv_hi + newv_lo; cflg = (newv & 0x1F0) > 0x90;
50113: if (cflg) newv -= 0x60;
50114: SET_CFLG (cflg);
50115: COPY_CARRY;
50116: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
50117: SET_NFLG (((uae_s8)(newv)) < 0);
50118: m68k_incpc(2);
50119: fill_prefetch_2 ();
50120: put_byte(srca,newv);
50121: }}}}return 12;
50122: }
50123: unsigned long REGPARAM2 CPUFUNC(op_4818_5)(uae_u32 opcode) /* NBCD */
50124: {
50125: uae_u32 srcreg = (opcode & 7);
50126: OpcodeFamily = 17; CurrentInstrCycles = 12;
50127: {{ uaecptr srca = m68k_areg(regs, srcreg);
50128: { uae_s8 src = get_byte(srca);
50129: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
50130: { uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0);
50131: uae_u16 newv_hi = - (src & 0xF0);
50132: uae_u16 newv;
50133: int cflg;
50134: if (newv_lo > 9) { newv_lo -= 6; }
50135: newv = newv_hi + newv_lo; cflg = (newv & 0x1F0) > 0x90;
50136: if (cflg) newv -= 0x60;
50137: SET_CFLG (cflg);
50138: COPY_CARRY;
50139: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
50140: SET_NFLG (((uae_s8)(newv)) < 0);
50141: m68k_incpc(2);
50142: fill_prefetch_2 ();
50143: put_byte(srca,newv);
50144: }}}}return 12;
50145: }
50146: unsigned long REGPARAM2 CPUFUNC(op_4820_5)(uae_u32 opcode) /* NBCD */
50147: {
50148: uae_u32 srcreg = (opcode & 7);
50149: OpcodeFamily = 17; CurrentInstrCycles = 14;
50150: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
50151: { uae_s8 src = get_byte(srca);
50152: m68k_areg (regs, srcreg) = srca;
50153: { uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0);
50154: uae_u16 newv_hi = - (src & 0xF0);
50155: uae_u16 newv;
50156: int cflg;
50157: if (newv_lo > 9) { newv_lo -= 6; }
50158: newv = newv_hi + newv_lo; cflg = (newv & 0x1F0) > 0x90;
50159: if (cflg) newv -= 0x60;
50160: SET_CFLG (cflg);
50161: COPY_CARRY;
50162: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
50163: SET_NFLG (((uae_s8)(newv)) < 0);
50164: m68k_incpc(2);
50165: fill_prefetch_2 ();
50166: put_byte(srca,newv);
50167: }}}}return 14;
50168: }
50169: unsigned long REGPARAM2 CPUFUNC(op_4828_5)(uae_u32 opcode) /* NBCD */
50170: {
50171: uae_u32 srcreg = (opcode & 7);
50172: OpcodeFamily = 17; CurrentInstrCycles = 16;
50173: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
50174: { uae_s8 src = get_byte(srca);
50175: { uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0);
50176: uae_u16 newv_hi = - (src & 0xF0);
50177: uae_u16 newv;
50178: int cflg;
50179: if (newv_lo > 9) { newv_lo -= 6; }
50180: newv = newv_hi + newv_lo; cflg = (newv & 0x1F0) > 0x90;
50181: if (cflg) newv -= 0x60;
50182: SET_CFLG (cflg);
50183: COPY_CARRY;
50184: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
50185: SET_NFLG (((uae_s8)(newv)) < 0);
50186: m68k_incpc(4);
50187: fill_prefetch_0 ();
50188: put_byte(srca,newv);
50189: }}}}return 16;
50190: }
50191: unsigned long REGPARAM2 CPUFUNC(op_4830_5)(uae_u32 opcode) /* NBCD */
50192: {
50193: uae_u32 srcreg = (opcode & 7);
50194: OpcodeFamily = 17; CurrentInstrCycles = 18;
50195: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
50196: BusCyclePenalty += 2;
50197: { uae_s8 src = get_byte(srca);
50198: { uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0);
50199: uae_u16 newv_hi = - (src & 0xF0);
50200: uae_u16 newv;
50201: int cflg;
50202: if (newv_lo > 9) { newv_lo -= 6; }
50203: newv = newv_hi + newv_lo; cflg = (newv & 0x1F0) > 0x90;
50204: if (cflg) newv -= 0x60;
50205: SET_CFLG (cflg);
50206: COPY_CARRY;
50207: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
50208: SET_NFLG (((uae_s8)(newv)) < 0);
50209: m68k_incpc(4);
50210: fill_prefetch_0 ();
50211: put_byte(srca,newv);
50212: }}}}return 18;
50213: }
50214: unsigned long REGPARAM2 CPUFUNC(op_4838_5)(uae_u32 opcode) /* NBCD */
50215: {
50216: OpcodeFamily = 17; CurrentInstrCycles = 16;
50217: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
50218: { uae_s8 src = get_byte(srca);
50219: { uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0);
50220: uae_u16 newv_hi = - (src & 0xF0);
50221: uae_u16 newv;
50222: int cflg;
50223: if (newv_lo > 9) { newv_lo -= 6; }
50224: newv = newv_hi + newv_lo; cflg = (newv & 0x1F0) > 0x90;
50225: if (cflg) newv -= 0x60;
50226: SET_CFLG (cflg);
50227: COPY_CARRY;
50228: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
50229: SET_NFLG (((uae_s8)(newv)) < 0);
50230: m68k_incpc(4);
50231: fill_prefetch_0 ();
50232: put_byte(srca,newv);
50233: }}}}return 16;
50234: }
50235: unsigned long REGPARAM2 CPUFUNC(op_4839_5)(uae_u32 opcode) /* NBCD */
50236: {
50237: OpcodeFamily = 17; CurrentInstrCycles = 20;
50238: {{ uaecptr srca = get_ilong_prefetch(2);
50239: { uae_s8 src = get_byte(srca);
50240: { uae_u16 newv_lo = - (src & 0xF) - (GET_XFLG ? 1 : 0);
50241: uae_u16 newv_hi = - (src & 0xF0);
50242: uae_u16 newv;
50243: int cflg;
50244: if (newv_lo > 9) { newv_lo -= 6; }
50245: newv = newv_hi + newv_lo; cflg = (newv & 0x1F0) > 0x90;
50246: if (cflg) newv -= 0x60;
50247: SET_CFLG (cflg);
50248: COPY_CARRY;
50249: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
50250: SET_NFLG (((uae_s8)(newv)) < 0);
50251: m68k_incpc(6);
50252: fill_prefetch_0 ();
50253: put_byte(srca,newv);
50254: }}}}return 20;
50255: }
50256: unsigned long REGPARAM2 CPUFUNC(op_4840_5)(uae_u32 opcode) /* SWAP */
50257: {
50258: uae_u32 srcreg = (opcode & 7);
50259: OpcodeFamily = 34; CurrentInstrCycles = 4;
50260: {{ uae_s32 src = m68k_dreg(regs, srcreg);
50261: { uae_u32 dst = ((src >> 16)&0xFFFF) | ((src&0xFFFF)<<16);
50262: CLEAR_CZNV;
50263: SET_ZFLG (((uae_s32)(dst)) == 0);
50264: SET_NFLG (((uae_s32)(dst)) < 0);
50265: m68k_dreg(regs, srcreg) = (dst);
50266: }}}m68k_incpc(2);
50267: fill_prefetch_2 ();
50268: return 4;
50269: }
50270: unsigned long REGPARAM2 CPUFUNC(op_4850_5)(uae_u32 opcode) /* PEA */
50271: {
50272: uae_u32 srcreg = (opcode & 7);
50273: OpcodeFamily = 57; CurrentInstrCycles = 12;
50274: {{ uaecptr srca = m68k_areg(regs, srcreg);
50275: { uaecptr dsta = m68k_areg(regs, 7) - 4;
50276: if ((dsta & 1) != 0) {
50277: last_fault_for_exception_3 = dsta;
50278: last_op_for_exception_3 = opcode;
50279: last_addr_for_exception_3 = m68k_getpc() + 2;
50280: Exception(3, 0, M68000_EXC_SRC_CPU);
50281: goto endlabel2862;
50282: }
50283: { m68k_areg (regs, 7) = dsta;
50284: m68k_incpc(2);
50285: fill_prefetch_2 ();
50286: put_long(dsta,srca);
50287: }}}}endlabel2862: ;
50288: return 12;
50289: }
50290: unsigned long REGPARAM2 CPUFUNC(op_4868_5)(uae_u32 opcode) /* PEA */
50291: {
50292: uae_u32 srcreg = (opcode & 7);
50293: OpcodeFamily = 57; CurrentInstrCycles = 16;
50294: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
50295: { uaecptr dsta = m68k_areg(regs, 7) - 4;
50296: if ((dsta & 1) != 0) {
50297: last_fault_for_exception_3 = dsta;
50298: last_op_for_exception_3 = opcode;
50299: last_addr_for_exception_3 = m68k_getpc() + 4;
50300: Exception(3, 0, M68000_EXC_SRC_CPU);
50301: goto endlabel2863;
50302: }
50303: { m68k_areg (regs, 7) = dsta;
50304: m68k_incpc(4);
50305: fill_prefetch_0 ();
50306: put_long(dsta,srca);
50307: }}}}endlabel2863: ;
50308: return 16;
50309: }
50310: unsigned long REGPARAM2 CPUFUNC(op_4870_5)(uae_u32 opcode) /* PEA */
50311: {
50312: uae_u32 srcreg = (opcode & 7);
50313: OpcodeFamily = 57; CurrentInstrCycles = 22;
50314: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
50315: BusCyclePenalty += 2;
50316: { uaecptr dsta = m68k_areg(regs, 7) - 4;
50317: if ((dsta & 1) != 0) {
50318: last_fault_for_exception_3 = dsta;
50319: last_op_for_exception_3 = opcode;
50320: last_addr_for_exception_3 = m68k_getpc() + 4;
50321: Exception(3, 0, M68000_EXC_SRC_CPU);
50322: goto endlabel2864;
50323: }
50324: { m68k_areg (regs, 7) = dsta;
50325: m68k_incpc(4);
50326: fill_prefetch_0 ();
50327: put_long(dsta,srca);
50328: }}}}endlabel2864: ;
50329: return 22;
50330: }
50331: unsigned long REGPARAM2 CPUFUNC(op_4878_5)(uae_u32 opcode) /* PEA */
50332: {
50333: OpcodeFamily = 57; CurrentInstrCycles = 16;
50334: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
50335: { uaecptr dsta = m68k_areg(regs, 7) - 4;
50336: if ((dsta & 1) != 0) {
50337: last_fault_for_exception_3 = dsta;
50338: last_op_for_exception_3 = opcode;
50339: last_addr_for_exception_3 = m68k_getpc() + 4;
50340: Exception(3, 0, M68000_EXC_SRC_CPU);
50341: goto endlabel2865;
50342: }
50343: { m68k_areg (regs, 7) = dsta;
50344: m68k_incpc(4);
50345: fill_prefetch_0 ();
50346: put_long(dsta,srca);
50347: }}}}endlabel2865: ;
50348: return 16;
50349: }
50350: unsigned long REGPARAM2 CPUFUNC(op_4879_5)(uae_u32 opcode) /* PEA */
50351: {
50352: OpcodeFamily = 57; CurrentInstrCycles = 20;
50353: {{ uaecptr srca = get_ilong_prefetch(2);
50354: { uaecptr dsta = m68k_areg(regs, 7) - 4;
50355: if ((dsta & 1) != 0) {
50356: last_fault_for_exception_3 = dsta;
50357: last_op_for_exception_3 = opcode;
50358: last_addr_for_exception_3 = m68k_getpc() + 6;
50359: Exception(3, 0, M68000_EXC_SRC_CPU);
50360: goto endlabel2866;
50361: }
50362: { m68k_areg (regs, 7) = dsta;
50363: m68k_incpc(6);
50364: fill_prefetch_0 ();
50365: put_long(dsta,srca);
50366: }}}}endlabel2866: ;
50367: return 20;
50368: }
50369: unsigned long REGPARAM2 CPUFUNC(op_487a_5)(uae_u32 opcode) /* PEA */
50370: {
50371: OpcodeFamily = 57; CurrentInstrCycles = 16;
50372: {{ uaecptr srca = m68k_getpc () + 2;
50373: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
50374: { uaecptr dsta = m68k_areg(regs, 7) - 4;
50375: if ((dsta & 1) != 0) {
50376: last_fault_for_exception_3 = dsta;
50377: last_op_for_exception_3 = opcode;
50378: last_addr_for_exception_3 = m68k_getpc() + 4;
50379: Exception(3, 0, M68000_EXC_SRC_CPU);
50380: goto endlabel2867;
50381: }
50382: { m68k_areg (regs, 7) = dsta;
50383: m68k_incpc(4);
50384: fill_prefetch_0 ();
50385: put_long(dsta,srca);
50386: }}}}endlabel2867: ;
50387: return 16;
50388: }
50389: unsigned long REGPARAM2 CPUFUNC(op_487b_5)(uae_u32 opcode) /* PEA */
50390: {
50391: OpcodeFamily = 57; CurrentInstrCycles = 22;
50392: {{ uaecptr tmppc = m68k_getpc() + 2;
50393: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
50394: BusCyclePenalty += 2;
50395: { uaecptr dsta = m68k_areg(regs, 7) - 4;
50396: if ((dsta & 1) != 0) {
50397: last_fault_for_exception_3 = dsta;
50398: last_op_for_exception_3 = opcode;
50399: last_addr_for_exception_3 = m68k_getpc() + 4;
50400: Exception(3, 0, M68000_EXC_SRC_CPU);
50401: goto endlabel2868;
50402: }
50403: { m68k_areg (regs, 7) = dsta;
50404: m68k_incpc(4);
50405: fill_prefetch_0 ();
50406: put_long(dsta,srca);
50407: }}}}endlabel2868: ;
50408: return 22;
50409: }
50410: unsigned long REGPARAM2 CPUFUNC(op_4880_5)(uae_u32 opcode) /* EXT */
50411: {
50412: uae_u32 srcreg = (opcode & 7);
50413: OpcodeFamily = 36; CurrentInstrCycles = 4;
50414: {{ uae_s32 src = m68k_dreg(regs, srcreg);
50415: { uae_u16 dst = (uae_s16)(uae_s8)src;
50416: CLEAR_CZNV;
50417: SET_ZFLG (((uae_s16)(dst)) == 0);
50418: SET_NFLG (((uae_s16)(dst)) < 0);
50419: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | ((dst) & 0xffff);
50420: }}}m68k_incpc(2);
50421: fill_prefetch_2 ();
50422: return 4;
50423: }
50424: unsigned long REGPARAM2 CPUFUNC(op_4890_5)(uae_u32 opcode) /* MVMLE */
50425: {
50426: uae_u32 dstreg = opcode & 7;
50427: unsigned int retcycles = 0;
50428: OpcodeFamily = 38; CurrentInstrCycles = 8;
50429: { uae_u16 mask = get_iword_prefetch(2);
50430: retcycles = 0;
50431: { uaecptr srca = m68k_areg(regs, dstreg);
50432: if ((srca & 1) != 0) {
50433: last_fault_for_exception_3 = srca;
50434: last_op_for_exception_3 = opcode;
50435: last_addr_for_exception_3 = m68k_getpc() + 4;
50436: Exception(3, 0, M68000_EXC_SRC_CPU);
50437: goto endlabel2870;
50438: }
50439: {m68k_incpc(4);
50440: fill_prefetch_0 ();
50441: { uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
50442: while (dmask) { put_word(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; retcycles+=4; }
50443: while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; retcycles+=4; }
50444: }}}}endlabel2870: ;
50445: return (8+retcycles);
50446: }
50447: unsigned long REGPARAM2 CPUFUNC(op_48a0_5)(uae_u32 opcode) /* MVMLE */
50448: {
50449: uae_u32 dstreg = opcode & 7;
50450: unsigned int retcycles = 0;
50451: OpcodeFamily = 38; CurrentInstrCycles = 8;
50452: { uae_u16 mask = get_iword_prefetch(2);
50453: retcycles = 0;
50454: { uaecptr srca = m68k_areg(regs, dstreg) - 0;
50455: if ((srca & 1) != 0) {
50456: last_fault_for_exception_3 = srca;
50457: last_op_for_exception_3 = opcode;
50458: last_addr_for_exception_3 = m68k_getpc() + 4;
50459: Exception(3, 0, M68000_EXC_SRC_CPU);
50460: goto endlabel2871;
50461: }
50462: {m68k_incpc(4);
50463: fill_prefetch_0 ();
50464: { uae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff;
50465: while (amask) { srca -= 2; put_word(srca, m68k_areg(regs, movem_index2[amask])); amask = movem_next[amask]; retcycles+=4; }
50466: while (dmask) { srca -= 2; put_word(srca, m68k_dreg(regs, movem_index2[dmask])); dmask = movem_next[dmask]; retcycles+=4; }
50467: m68k_areg(regs, dstreg) = srca;
50468: }}}}endlabel2871: ;
50469: return (8+retcycles);
50470: }
50471: unsigned long REGPARAM2 CPUFUNC(op_48a8_5)(uae_u32 opcode) /* MVMLE */
50472: {
50473: uae_u32 dstreg = opcode & 7;
50474: unsigned int retcycles = 0;
50475: OpcodeFamily = 38; CurrentInstrCycles = 12;
50476: { uae_u16 mask = get_iword_prefetch(2);
50477: retcycles = 0;
50478: { uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
50479: if ((srca & 1) != 0) {
50480: last_fault_for_exception_3 = srca;
50481: last_op_for_exception_3 = opcode;
50482: last_addr_for_exception_3 = m68k_getpc() + 6;
50483: Exception(3, 0, M68000_EXC_SRC_CPU);
50484: goto endlabel2872;
50485: }
50486: {m68k_incpc(6);
50487: fill_prefetch_0 ();
50488: { uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
50489: while (dmask) { put_word(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; retcycles+=4; }
50490: while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; retcycles+=4; }
50491: }}}}endlabel2872: ;
50492: return (12+retcycles);
50493: }
50494: unsigned long REGPARAM2 CPUFUNC(op_48b0_5)(uae_u32 opcode) /* MVMLE */
50495: {
50496: uae_u32 dstreg = opcode & 7;
50497: unsigned int retcycles = 0;
50498: OpcodeFamily = 38; CurrentInstrCycles = 14;
50499: { uae_u16 mask = get_iword_prefetch(2);
50500: retcycles = 0;
50501: { uaecptr srca = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
50502: BusCyclePenalty += 2;
50503: if ((srca & 1) != 0) {
50504: last_fault_for_exception_3 = srca;
50505: last_op_for_exception_3 = opcode;
50506: last_addr_for_exception_3 = m68k_getpc() + 6;
50507: Exception(3, 0, M68000_EXC_SRC_CPU);
50508: goto endlabel2873;
50509: }
50510: {m68k_incpc(6);
50511: fill_prefetch_0 ();
50512: { uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
50513: while (dmask) { put_word(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; retcycles+=4; }
50514: while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; retcycles+=4; }
50515: }}}}endlabel2873: ;
50516: return (14+retcycles);
50517: }
50518: unsigned long REGPARAM2 CPUFUNC(op_48b8_5)(uae_u32 opcode) /* MVMLE */
50519: {
50520: unsigned int retcycles = 0;
50521: OpcodeFamily = 38; CurrentInstrCycles = 12;
50522: { uae_u16 mask = get_iword_prefetch(2);
50523: retcycles = 0;
50524: { uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(4);
50525: if ((srca & 1) != 0) {
50526: last_fault_for_exception_3 = srca;
50527: last_op_for_exception_3 = opcode;
50528: last_addr_for_exception_3 = m68k_getpc() + 6;
50529: Exception(3, 0, M68000_EXC_SRC_CPU);
50530: goto endlabel2874;
50531: }
50532: {m68k_incpc(6);
50533: fill_prefetch_0 ();
50534: { uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
50535: while (dmask) { put_word(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; retcycles+=4; }
50536: while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; retcycles+=4; }
50537: }}}}endlabel2874: ;
50538: return (12+retcycles);
50539: }
50540: unsigned long REGPARAM2 CPUFUNC(op_48b9_5)(uae_u32 opcode) /* MVMLE */
50541: {
50542: unsigned int retcycles = 0;
50543: OpcodeFamily = 38; CurrentInstrCycles = 16;
50544: { uae_u16 mask = get_iword_prefetch(2);
50545: retcycles = 0;
50546: { uaecptr srca = get_ilong_prefetch(4);
50547: if ((srca & 1) != 0) {
50548: last_fault_for_exception_3 = srca;
50549: last_op_for_exception_3 = opcode;
50550: last_addr_for_exception_3 = m68k_getpc() + 8;
50551: Exception(3, 0, M68000_EXC_SRC_CPU);
50552: goto endlabel2875;
50553: }
50554: {m68k_incpc(8);
50555: fill_prefetch_0 ();
50556: { uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
50557: while (dmask) { put_word(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 2; dmask = movem_next[dmask]; retcycles+=4; }
50558: while (amask) { put_word(srca, m68k_areg(regs, movem_index1[amask])); srca += 2; amask = movem_next[amask]; retcycles+=4; }
50559: }}}}endlabel2875: ;
50560: return (16+retcycles);
50561: }
50562: unsigned long REGPARAM2 CPUFUNC(op_48c0_5)(uae_u32 opcode) /* EXT */
50563: {
50564: uae_u32 srcreg = (opcode & 7);
50565: OpcodeFamily = 36; CurrentInstrCycles = 4;
50566: {{ uae_s32 src = m68k_dreg(regs, srcreg);
50567: { uae_u32 dst = (uae_s32)(uae_s16)src;
50568: CLEAR_CZNV;
50569: SET_ZFLG (((uae_s32)(dst)) == 0);
50570: SET_NFLG (((uae_s32)(dst)) < 0);
50571: m68k_dreg(regs, srcreg) = (dst);
50572: }}}m68k_incpc(2);
50573: fill_prefetch_2 ();
50574: return 4;
50575: }
50576: unsigned long REGPARAM2 CPUFUNC(op_48d0_5)(uae_u32 opcode) /* MVMLE */
50577: {
50578: uae_u32 dstreg = opcode & 7;
50579: unsigned int retcycles = 0;
50580: OpcodeFamily = 38; CurrentInstrCycles = 8;
50581: { uae_u16 mask = get_iword_prefetch(2);
50582: retcycles = 0;
50583: { uaecptr srca = m68k_areg(regs, dstreg);
50584: if ((srca & 1) != 0) {
50585: last_fault_for_exception_3 = srca;
50586: last_op_for_exception_3 = opcode;
50587: last_addr_for_exception_3 = m68k_getpc() + 4;
50588: Exception(3, 0, M68000_EXC_SRC_CPU);
50589: goto endlabel2877;
50590: }
50591: {m68k_incpc(4);
50592: fill_prefetch_0 ();
50593: { uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
50594: while (dmask) { put_long(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; retcycles+=8; }
50595: while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; retcycles+=8; }
50596: }}}}endlabel2877: ;
50597: return (8+retcycles);
50598: }
50599: unsigned long REGPARAM2 CPUFUNC(op_48e0_5)(uae_u32 opcode) /* MVMLE */
50600: {
50601: uae_u32 dstreg = opcode & 7;
50602: unsigned int retcycles = 0;
50603: OpcodeFamily = 38; CurrentInstrCycles = 8;
50604: { uae_u16 mask = get_iword_prefetch(2);
50605: retcycles = 0;
50606: { uaecptr srca = m68k_areg(regs, dstreg) - 0;
50607: if ((srca & 1) != 0) {
50608: last_fault_for_exception_3 = srca;
50609: last_op_for_exception_3 = opcode;
50610: last_addr_for_exception_3 = m68k_getpc() + 4;
50611: Exception(3, 0, M68000_EXC_SRC_CPU);
50612: goto endlabel2878;
50613: }
50614: {m68k_incpc(4);
50615: fill_prefetch_0 ();
50616: { uae_u16 amask = mask & 0xff, dmask = (mask >> 8) & 0xff;
50617: while (amask) { srca -= 4; put_long(srca, m68k_areg(regs, movem_index2[amask])); amask = movem_next[amask]; retcycles+=8; }
50618: while (dmask) { srca -= 4; put_long(srca, m68k_dreg(regs, movem_index2[dmask])); dmask = movem_next[dmask]; retcycles+=8; }
50619: m68k_areg(regs, dstreg) = srca;
50620: }}}}endlabel2878: ;
50621: return (8+retcycles);
50622: }
50623: unsigned long REGPARAM2 CPUFUNC(op_48e8_5)(uae_u32 opcode) /* MVMLE */
50624: {
50625: uae_u32 dstreg = opcode & 7;
50626: unsigned int retcycles = 0;
50627: OpcodeFamily = 38; CurrentInstrCycles = 12;
50628: { uae_u16 mask = get_iword_prefetch(2);
50629: retcycles = 0;
50630: { uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
50631: if ((srca & 1) != 0) {
50632: last_fault_for_exception_3 = srca;
50633: last_op_for_exception_3 = opcode;
50634: last_addr_for_exception_3 = m68k_getpc() + 6;
50635: Exception(3, 0, M68000_EXC_SRC_CPU);
50636: goto endlabel2879;
50637: }
50638: {m68k_incpc(6);
50639: fill_prefetch_0 ();
50640: { uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
50641: while (dmask) { put_long(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; retcycles+=8; }
50642: while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; retcycles+=8; }
50643: }}}}endlabel2879: ;
50644: return (12+retcycles);
50645: }
50646: unsigned long REGPARAM2 CPUFUNC(op_48f0_5)(uae_u32 opcode) /* MVMLE */
50647: {
50648: uae_u32 dstreg = opcode & 7;
50649: unsigned int retcycles = 0;
50650: OpcodeFamily = 38; CurrentInstrCycles = 14;
50651: { uae_u16 mask = get_iword_prefetch(2);
50652: retcycles = 0;
50653: { uaecptr srca = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
50654: BusCyclePenalty += 2;
50655: if ((srca & 1) != 0) {
50656: last_fault_for_exception_3 = srca;
50657: last_op_for_exception_3 = opcode;
50658: last_addr_for_exception_3 = m68k_getpc() + 6;
50659: Exception(3, 0, M68000_EXC_SRC_CPU);
50660: goto endlabel2880;
50661: }
50662: {m68k_incpc(6);
50663: fill_prefetch_0 ();
50664: { uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
50665: while (dmask) { put_long(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; retcycles+=8; }
50666: while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; retcycles+=8; }
50667: }}}}endlabel2880: ;
50668: return (14+retcycles);
50669: }
50670: unsigned long REGPARAM2 CPUFUNC(op_48f8_5)(uae_u32 opcode) /* MVMLE */
50671: {
50672: unsigned int retcycles = 0;
50673: OpcodeFamily = 38; CurrentInstrCycles = 12;
50674: { uae_u16 mask = get_iword_prefetch(2);
50675: retcycles = 0;
50676: { uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(4);
50677: if ((srca & 1) != 0) {
50678: last_fault_for_exception_3 = srca;
50679: last_op_for_exception_3 = opcode;
50680: last_addr_for_exception_3 = m68k_getpc() + 6;
50681: Exception(3, 0, M68000_EXC_SRC_CPU);
50682: goto endlabel2881;
50683: }
50684: {m68k_incpc(6);
50685: fill_prefetch_0 ();
50686: { uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
50687: while (dmask) { put_long(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; retcycles+=8; }
50688: while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; retcycles+=8; }
50689: }}}}endlabel2881: ;
50690: return (12+retcycles);
50691: }
50692: unsigned long REGPARAM2 CPUFUNC(op_48f9_5)(uae_u32 opcode) /* MVMLE */
50693: {
50694: unsigned int retcycles = 0;
50695: OpcodeFamily = 38; CurrentInstrCycles = 16;
50696: { uae_u16 mask = get_iword_prefetch(2);
50697: retcycles = 0;
50698: { uaecptr srca = get_ilong_prefetch(4);
50699: if ((srca & 1) != 0) {
50700: last_fault_for_exception_3 = srca;
50701: last_op_for_exception_3 = opcode;
50702: last_addr_for_exception_3 = m68k_getpc() + 8;
50703: Exception(3, 0, M68000_EXC_SRC_CPU);
50704: goto endlabel2882;
50705: }
50706: {m68k_incpc(8);
50707: fill_prefetch_0 ();
50708: { uae_u16 dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
50709: while (dmask) { put_long(srca, m68k_dreg(regs, movem_index1[dmask])); srca += 4; dmask = movem_next[dmask]; retcycles+=8; }
50710: while (amask) { put_long(srca, m68k_areg(regs, movem_index1[amask])); srca += 4; amask = movem_next[amask]; retcycles+=8; }
50711: }}}}endlabel2882: ;
50712: return (16+retcycles);
50713: }
50714: unsigned long REGPARAM2 CPUFUNC(op_4a00_5)(uae_u32 opcode) /* TST */
50715: {
50716: uae_u32 srcreg = (opcode & 7);
50717: OpcodeFamily = 20; CurrentInstrCycles = 4;
50718: {{ uae_s8 src = m68k_dreg(regs, srcreg);
50719: CLEAR_CZNV;
50720: SET_ZFLG (((uae_s8)(src)) == 0);
50721: SET_NFLG (((uae_s8)(src)) < 0);
50722: }}m68k_incpc(2);
50723: fill_prefetch_2 ();
50724: return 4;
50725: }
50726: unsigned long REGPARAM2 CPUFUNC(op_4a10_5)(uae_u32 opcode) /* TST */
50727: {
50728: uae_u32 srcreg = (opcode & 7);
50729: OpcodeFamily = 20; CurrentInstrCycles = 8;
50730: {{ uaecptr srca = m68k_areg(regs, srcreg);
50731: { uae_s8 src = get_byte(srca);
50732: CLEAR_CZNV;
50733: SET_ZFLG (((uae_s8)(src)) == 0);
50734: SET_NFLG (((uae_s8)(src)) < 0);
50735: }}}m68k_incpc(2);
50736: fill_prefetch_2 ();
50737: return 8;
50738: }
50739: unsigned long REGPARAM2 CPUFUNC(op_4a18_5)(uae_u32 opcode) /* TST */
50740: {
50741: uae_u32 srcreg = (opcode & 7);
50742: OpcodeFamily = 20; CurrentInstrCycles = 8;
50743: {{ uaecptr srca = m68k_areg(regs, srcreg);
50744: { uae_s8 src = get_byte(srca);
50745: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
50746: CLEAR_CZNV;
50747: SET_ZFLG (((uae_s8)(src)) == 0);
50748: SET_NFLG (((uae_s8)(src)) < 0);
50749: }}}m68k_incpc(2);
50750: fill_prefetch_2 ();
50751: return 8;
50752: }
50753: unsigned long REGPARAM2 CPUFUNC(op_4a20_5)(uae_u32 opcode) /* TST */
50754: {
50755: uae_u32 srcreg = (opcode & 7);
50756: OpcodeFamily = 20; CurrentInstrCycles = 10;
50757: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
50758: { uae_s8 src = get_byte(srca);
50759: m68k_areg (regs, srcreg) = srca;
50760: CLEAR_CZNV;
50761: SET_ZFLG (((uae_s8)(src)) == 0);
50762: SET_NFLG (((uae_s8)(src)) < 0);
50763: }}}m68k_incpc(2);
50764: fill_prefetch_2 ();
50765: return 10;
50766: }
50767: unsigned long REGPARAM2 CPUFUNC(op_4a28_5)(uae_u32 opcode) /* TST */
50768: {
50769: uae_u32 srcreg = (opcode & 7);
50770: OpcodeFamily = 20; CurrentInstrCycles = 12;
50771: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
50772: { uae_s8 src = get_byte(srca);
50773: CLEAR_CZNV;
50774: SET_ZFLG (((uae_s8)(src)) == 0);
50775: SET_NFLG (((uae_s8)(src)) < 0);
50776: }}}m68k_incpc(4);
50777: fill_prefetch_0 ();
50778: return 12;
50779: }
50780: unsigned long REGPARAM2 CPUFUNC(op_4a30_5)(uae_u32 opcode) /* TST */
50781: {
50782: uae_u32 srcreg = (opcode & 7);
50783: OpcodeFamily = 20; CurrentInstrCycles = 14;
50784: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
50785: BusCyclePenalty += 2;
50786: { uae_s8 src = get_byte(srca);
50787: CLEAR_CZNV;
50788: SET_ZFLG (((uae_s8)(src)) == 0);
50789: SET_NFLG (((uae_s8)(src)) < 0);
50790: }}}m68k_incpc(4);
50791: fill_prefetch_0 ();
50792: return 14;
50793: }
50794: unsigned long REGPARAM2 CPUFUNC(op_4a38_5)(uae_u32 opcode) /* TST */
50795: {
50796: OpcodeFamily = 20; CurrentInstrCycles = 12;
50797: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
50798: { uae_s8 src = get_byte(srca);
50799: CLEAR_CZNV;
50800: SET_ZFLG (((uae_s8)(src)) == 0);
50801: SET_NFLG (((uae_s8)(src)) < 0);
50802: }}}m68k_incpc(4);
50803: fill_prefetch_0 ();
50804: return 12;
50805: }
50806: unsigned long REGPARAM2 CPUFUNC(op_4a39_5)(uae_u32 opcode) /* TST */
50807: {
50808: OpcodeFamily = 20; CurrentInstrCycles = 16;
50809: {{ uaecptr srca = get_ilong_prefetch(2);
50810: { uae_s8 src = get_byte(srca);
50811: CLEAR_CZNV;
50812: SET_ZFLG (((uae_s8)(src)) == 0);
50813: SET_NFLG (((uae_s8)(src)) < 0);
50814: }}}m68k_incpc(6);
50815: fill_prefetch_0 ();
50816: return 16;
50817: }
50818: unsigned long REGPARAM2 CPUFUNC(op_4a3a_5)(uae_u32 opcode) /* TST */
50819: {
50820: OpcodeFamily = 20; CurrentInstrCycles = 12;
50821: {{ uaecptr srca = m68k_getpc () + 2;
50822: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
50823: { uae_s8 src = get_byte(srca);
50824: CLEAR_CZNV;
50825: SET_ZFLG (((uae_s8)(src)) == 0);
50826: SET_NFLG (((uae_s8)(src)) < 0);
50827: }}}m68k_incpc(4);
50828: fill_prefetch_0 ();
50829: return 12;
50830: }
50831: unsigned long REGPARAM2 CPUFUNC(op_4a3b_5)(uae_u32 opcode) /* TST */
50832: {
50833: OpcodeFamily = 20; CurrentInstrCycles = 14;
50834: {{ uaecptr tmppc = m68k_getpc() + 2;
50835: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
50836: BusCyclePenalty += 2;
50837: { uae_s8 src = get_byte(srca);
50838: CLEAR_CZNV;
50839: SET_ZFLG (((uae_s8)(src)) == 0);
50840: SET_NFLG (((uae_s8)(src)) < 0);
50841: }}}m68k_incpc(4);
50842: fill_prefetch_0 ();
50843: return 14;
50844: }
50845: unsigned long REGPARAM2 CPUFUNC(op_4a3c_5)(uae_u32 opcode) /* TST */
50846: {
50847: OpcodeFamily = 20; CurrentInstrCycles = 8;
50848: {{ uae_s8 src = get_ibyte_prefetch(2);
50849: CLEAR_CZNV;
50850: SET_ZFLG (((uae_s8)(src)) == 0);
50851: SET_NFLG (((uae_s8)(src)) < 0);
50852: }}m68k_incpc(4);
50853: fill_prefetch_0 ();
50854: return 8;
50855: }
50856: unsigned long REGPARAM2 CPUFUNC(op_4a40_5)(uae_u32 opcode) /* TST */
50857: {
50858: uae_u32 srcreg = (opcode & 7);
50859: OpcodeFamily = 20; CurrentInstrCycles = 4;
50860: {{ uae_s16 src = m68k_dreg(regs, srcreg);
50861: CLEAR_CZNV;
50862: SET_ZFLG (((uae_s16)(src)) == 0);
50863: SET_NFLG (((uae_s16)(src)) < 0);
50864: }}m68k_incpc(2);
50865: fill_prefetch_2 ();
50866: return 4;
50867: }
50868: unsigned long REGPARAM2 CPUFUNC(op_4a48_5)(uae_u32 opcode) /* TST */
50869: {
50870: uae_u32 srcreg = (opcode & 7);
50871: OpcodeFamily = 20; CurrentInstrCycles = 4;
50872: {{ uae_s16 src = m68k_areg(regs, srcreg);
50873: CLEAR_CZNV;
50874: SET_ZFLG (((uae_s16)(src)) == 0);
50875: SET_NFLG (((uae_s16)(src)) < 0);
50876: }}m68k_incpc(2);
50877: fill_prefetch_2 ();
50878: return 4;
50879: }
50880: unsigned long REGPARAM2 CPUFUNC(op_4a50_5)(uae_u32 opcode) /* TST */
50881: {
50882: uae_u32 srcreg = (opcode & 7);
50883: OpcodeFamily = 20; CurrentInstrCycles = 8;
50884: {{ uaecptr srca = m68k_areg(regs, srcreg);
50885: if ((srca & 1) != 0) {
50886: last_fault_for_exception_3 = srca;
50887: last_op_for_exception_3 = opcode;
50888: last_addr_for_exception_3 = m68k_getpc() + 2;
50889: Exception(3, 0, M68000_EXC_SRC_CPU);
50890: goto endlabel2896;
50891: }
50892: {{ uae_s16 src = get_word(srca);
50893: CLEAR_CZNV;
50894: SET_ZFLG (((uae_s16)(src)) == 0);
50895: SET_NFLG (((uae_s16)(src)) < 0);
50896: }}}}m68k_incpc(2);
50897: fill_prefetch_2 ();
50898: endlabel2896: ;
50899: return 8;
50900: }
50901: unsigned long REGPARAM2 CPUFUNC(op_4a58_5)(uae_u32 opcode) /* TST */
50902: {
50903: uae_u32 srcreg = (opcode & 7);
50904: OpcodeFamily = 20; CurrentInstrCycles = 8;
50905: {{ uaecptr srca = m68k_areg(regs, srcreg);
50906: if ((srca & 1) != 0) {
50907: last_fault_for_exception_3 = srca;
50908: last_op_for_exception_3 = opcode;
50909: last_addr_for_exception_3 = m68k_getpc() + 2;
50910: Exception(3, 0, M68000_EXC_SRC_CPU);
50911: goto endlabel2897;
50912: }
50913: {{ uae_s16 src = get_word(srca);
50914: m68k_areg(regs, srcreg) += 2;
50915: CLEAR_CZNV;
50916: SET_ZFLG (((uae_s16)(src)) == 0);
50917: SET_NFLG (((uae_s16)(src)) < 0);
50918: }}}}m68k_incpc(2);
50919: fill_prefetch_2 ();
50920: endlabel2897: ;
50921: return 8;
50922: }
50923: unsigned long REGPARAM2 CPUFUNC(op_4a60_5)(uae_u32 opcode) /* TST */
50924: {
50925: uae_u32 srcreg = (opcode & 7);
50926: OpcodeFamily = 20; CurrentInstrCycles = 10;
50927: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
50928: if ((srca & 1) != 0) {
50929: last_fault_for_exception_3 = srca;
50930: last_op_for_exception_3 = opcode;
50931: last_addr_for_exception_3 = m68k_getpc() + 2;
50932: Exception(3, 0, M68000_EXC_SRC_CPU);
50933: goto endlabel2898;
50934: }
50935: {{ uae_s16 src = get_word(srca);
50936: m68k_areg (regs, srcreg) = srca;
50937: CLEAR_CZNV;
50938: SET_ZFLG (((uae_s16)(src)) == 0);
50939: SET_NFLG (((uae_s16)(src)) < 0);
50940: }}}}m68k_incpc(2);
50941: fill_prefetch_2 ();
50942: endlabel2898: ;
50943: return 10;
50944: }
50945: unsigned long REGPARAM2 CPUFUNC(op_4a68_5)(uae_u32 opcode) /* TST */
50946: {
50947: uae_u32 srcreg = (opcode & 7);
50948: OpcodeFamily = 20; CurrentInstrCycles = 12;
50949: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
50950: if ((srca & 1) != 0) {
50951: last_fault_for_exception_3 = srca;
50952: last_op_for_exception_3 = opcode;
50953: last_addr_for_exception_3 = m68k_getpc() + 4;
50954: Exception(3, 0, M68000_EXC_SRC_CPU);
50955: goto endlabel2899;
50956: }
50957: {{ uae_s16 src = get_word(srca);
50958: CLEAR_CZNV;
50959: SET_ZFLG (((uae_s16)(src)) == 0);
50960: SET_NFLG (((uae_s16)(src)) < 0);
50961: }}}}m68k_incpc(4);
50962: fill_prefetch_0 ();
50963: endlabel2899: ;
50964: return 12;
50965: }
50966: unsigned long REGPARAM2 CPUFUNC(op_4a70_5)(uae_u32 opcode) /* TST */
50967: {
50968: uae_u32 srcreg = (opcode & 7);
50969: OpcodeFamily = 20; CurrentInstrCycles = 14;
50970: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
50971: BusCyclePenalty += 2;
50972: if ((srca & 1) != 0) {
50973: last_fault_for_exception_3 = srca;
50974: last_op_for_exception_3 = opcode;
50975: last_addr_for_exception_3 = m68k_getpc() + 4;
50976: Exception(3, 0, M68000_EXC_SRC_CPU);
50977: goto endlabel2900;
50978: }
50979: {{ uae_s16 src = get_word(srca);
50980: CLEAR_CZNV;
50981: SET_ZFLG (((uae_s16)(src)) == 0);
50982: SET_NFLG (((uae_s16)(src)) < 0);
50983: }}}}m68k_incpc(4);
50984: fill_prefetch_0 ();
50985: endlabel2900: ;
50986: return 14;
50987: }
50988: unsigned long REGPARAM2 CPUFUNC(op_4a78_5)(uae_u32 opcode) /* TST */
50989: {
50990: OpcodeFamily = 20; CurrentInstrCycles = 12;
50991: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
50992: if ((srca & 1) != 0) {
50993: last_fault_for_exception_3 = srca;
50994: last_op_for_exception_3 = opcode;
50995: last_addr_for_exception_3 = m68k_getpc() + 4;
50996: Exception(3, 0, M68000_EXC_SRC_CPU);
50997: goto endlabel2901;
50998: }
50999: {{ uae_s16 src = get_word(srca);
51000: CLEAR_CZNV;
51001: SET_ZFLG (((uae_s16)(src)) == 0);
51002: SET_NFLG (((uae_s16)(src)) < 0);
51003: }}}}m68k_incpc(4);
51004: fill_prefetch_0 ();
51005: endlabel2901: ;
51006: return 12;
51007: }
51008: unsigned long REGPARAM2 CPUFUNC(op_4a79_5)(uae_u32 opcode) /* TST */
51009: {
51010: OpcodeFamily = 20; CurrentInstrCycles = 16;
51011: {{ uaecptr srca = get_ilong_prefetch(2);
51012: if ((srca & 1) != 0) {
51013: last_fault_for_exception_3 = srca;
51014: last_op_for_exception_3 = opcode;
51015: last_addr_for_exception_3 = m68k_getpc() + 6;
51016: Exception(3, 0, M68000_EXC_SRC_CPU);
51017: goto endlabel2902;
51018: }
51019: {{ uae_s16 src = get_word(srca);
51020: CLEAR_CZNV;
51021: SET_ZFLG (((uae_s16)(src)) == 0);
51022: SET_NFLG (((uae_s16)(src)) < 0);
51023: }}}}m68k_incpc(6);
51024: fill_prefetch_0 ();
51025: endlabel2902: ;
51026: return 16;
51027: }
51028: unsigned long REGPARAM2 CPUFUNC(op_4a7a_5)(uae_u32 opcode) /* TST */
51029: {
51030: OpcodeFamily = 20; CurrentInstrCycles = 12;
51031: {{ uaecptr srca = m68k_getpc () + 2;
51032: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
51033: if ((srca & 1) != 0) {
51034: last_fault_for_exception_3 = srca;
51035: last_op_for_exception_3 = opcode;
51036: last_addr_for_exception_3 = m68k_getpc() + 4;
51037: Exception(3, 0, M68000_EXC_SRC_CPU);
51038: goto endlabel2903;
51039: }
51040: {{ uae_s16 src = get_word(srca);
51041: CLEAR_CZNV;
51042: SET_ZFLG (((uae_s16)(src)) == 0);
51043: SET_NFLG (((uae_s16)(src)) < 0);
51044: }}}}m68k_incpc(4);
51045: fill_prefetch_0 ();
51046: endlabel2903: ;
51047: return 12;
51048: }
51049: unsigned long REGPARAM2 CPUFUNC(op_4a7b_5)(uae_u32 opcode) /* TST */
51050: {
51051: OpcodeFamily = 20; CurrentInstrCycles = 14;
51052: {{ uaecptr tmppc = m68k_getpc() + 2;
51053: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
51054: BusCyclePenalty += 2;
51055: if ((srca & 1) != 0) {
51056: last_fault_for_exception_3 = srca;
51057: last_op_for_exception_3 = opcode;
51058: last_addr_for_exception_3 = m68k_getpc() + 4;
51059: Exception(3, 0, M68000_EXC_SRC_CPU);
51060: goto endlabel2904;
51061: }
51062: {{ uae_s16 src = get_word(srca);
51063: CLEAR_CZNV;
51064: SET_ZFLG (((uae_s16)(src)) == 0);
51065: SET_NFLG (((uae_s16)(src)) < 0);
51066: }}}}m68k_incpc(4);
51067: fill_prefetch_0 ();
51068: endlabel2904: ;
51069: return 14;
51070: }
51071: unsigned long REGPARAM2 CPUFUNC(op_4a7c_5)(uae_u32 opcode) /* TST */
51072: {
51073: OpcodeFamily = 20; CurrentInstrCycles = 8;
51074: {{ uae_s16 src = get_iword_prefetch(2);
51075: CLEAR_CZNV;
51076: SET_ZFLG (((uae_s16)(src)) == 0);
51077: SET_NFLG (((uae_s16)(src)) < 0);
51078: }}m68k_incpc(4);
51079: fill_prefetch_0 ();
51080: return 8;
51081: }
51082: unsigned long REGPARAM2 CPUFUNC(op_4a80_5)(uae_u32 opcode) /* TST */
51083: {
51084: uae_u32 srcreg = (opcode & 7);
51085: OpcodeFamily = 20; CurrentInstrCycles = 4;
51086: {{ uae_s32 src = m68k_dreg(regs, srcreg);
51087: CLEAR_CZNV;
51088: SET_ZFLG (((uae_s32)(src)) == 0);
51089: SET_NFLG (((uae_s32)(src)) < 0);
51090: }}m68k_incpc(2);
51091: fill_prefetch_2 ();
51092: return 4;
51093: }
51094: unsigned long REGPARAM2 CPUFUNC(op_4a88_5)(uae_u32 opcode) /* TST */
51095: {
51096: uae_u32 srcreg = (opcode & 7);
51097: OpcodeFamily = 20; CurrentInstrCycles = 4;
51098: {{ uae_s32 src = m68k_areg(regs, srcreg);
51099: CLEAR_CZNV;
51100: SET_ZFLG (((uae_s32)(src)) == 0);
51101: SET_NFLG (((uae_s32)(src)) < 0);
51102: }}m68k_incpc(2);
51103: fill_prefetch_2 ();
51104: return 4;
51105: }
51106: unsigned long REGPARAM2 CPUFUNC(op_4a90_5)(uae_u32 opcode) /* TST */
51107: {
51108: uae_u32 srcreg = (opcode & 7);
51109: OpcodeFamily = 20; CurrentInstrCycles = 12;
51110: {{ uaecptr srca = m68k_areg(regs, srcreg);
51111: if ((srca & 1) != 0) {
51112: last_fault_for_exception_3 = srca;
51113: last_op_for_exception_3 = opcode;
51114: last_addr_for_exception_3 = m68k_getpc() + 2;
51115: Exception(3, 0, M68000_EXC_SRC_CPU);
51116: goto endlabel2908;
51117: }
51118: {{ uae_s32 src = get_long(srca);
51119: CLEAR_CZNV;
51120: SET_ZFLG (((uae_s32)(src)) == 0);
51121: SET_NFLG (((uae_s32)(src)) < 0);
51122: }}}}m68k_incpc(2);
51123: fill_prefetch_2 ();
51124: endlabel2908: ;
51125: return 12;
51126: }
51127: unsigned long REGPARAM2 CPUFUNC(op_4a98_5)(uae_u32 opcode) /* TST */
51128: {
51129: uae_u32 srcreg = (opcode & 7);
51130: OpcodeFamily = 20; CurrentInstrCycles = 12;
51131: {{ uaecptr srca = m68k_areg(regs, srcreg);
51132: if ((srca & 1) != 0) {
51133: last_fault_for_exception_3 = srca;
51134: last_op_for_exception_3 = opcode;
51135: last_addr_for_exception_3 = m68k_getpc() + 2;
51136: Exception(3, 0, M68000_EXC_SRC_CPU);
51137: goto endlabel2909;
51138: }
51139: {{ uae_s32 src = get_long(srca);
51140: m68k_areg(regs, srcreg) += 4;
51141: CLEAR_CZNV;
51142: SET_ZFLG (((uae_s32)(src)) == 0);
51143: SET_NFLG (((uae_s32)(src)) < 0);
51144: }}}}m68k_incpc(2);
51145: fill_prefetch_2 ();
51146: endlabel2909: ;
51147: return 12;
51148: }
51149: unsigned long REGPARAM2 CPUFUNC(op_4aa0_5)(uae_u32 opcode) /* TST */
51150: {
51151: uae_u32 srcreg = (opcode & 7);
51152: OpcodeFamily = 20; CurrentInstrCycles = 14;
51153: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
51154: if ((srca & 1) != 0) {
51155: last_fault_for_exception_3 = srca;
51156: last_op_for_exception_3 = opcode;
51157: last_addr_for_exception_3 = m68k_getpc() + 2;
51158: Exception(3, 0, M68000_EXC_SRC_CPU);
51159: goto endlabel2910;
51160: }
51161: {{ uae_s32 src = get_long(srca);
51162: m68k_areg (regs, srcreg) = srca;
51163: CLEAR_CZNV;
51164: SET_ZFLG (((uae_s32)(src)) == 0);
51165: SET_NFLG (((uae_s32)(src)) < 0);
51166: }}}}m68k_incpc(2);
51167: fill_prefetch_2 ();
51168: endlabel2910: ;
51169: return 14;
51170: }
51171: unsigned long REGPARAM2 CPUFUNC(op_4aa8_5)(uae_u32 opcode) /* TST */
51172: {
51173: uae_u32 srcreg = (opcode & 7);
51174: OpcodeFamily = 20; CurrentInstrCycles = 16;
51175: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
51176: if ((srca & 1) != 0) {
51177: last_fault_for_exception_3 = srca;
51178: last_op_for_exception_3 = opcode;
51179: last_addr_for_exception_3 = m68k_getpc() + 4;
51180: Exception(3, 0, M68000_EXC_SRC_CPU);
51181: goto endlabel2911;
51182: }
51183: {{ uae_s32 src = get_long(srca);
51184: CLEAR_CZNV;
51185: SET_ZFLG (((uae_s32)(src)) == 0);
51186: SET_NFLG (((uae_s32)(src)) < 0);
51187: }}}}m68k_incpc(4);
51188: fill_prefetch_0 ();
51189: endlabel2911: ;
51190: return 16;
51191: }
51192: unsigned long REGPARAM2 CPUFUNC(op_4ab0_5)(uae_u32 opcode) /* TST */
51193: {
51194: uae_u32 srcreg = (opcode & 7);
51195: OpcodeFamily = 20; CurrentInstrCycles = 18;
51196: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
51197: BusCyclePenalty += 2;
51198: if ((srca & 1) != 0) {
51199: last_fault_for_exception_3 = srca;
51200: last_op_for_exception_3 = opcode;
51201: last_addr_for_exception_3 = m68k_getpc() + 4;
51202: Exception(3, 0, M68000_EXC_SRC_CPU);
51203: goto endlabel2912;
51204: }
51205: {{ uae_s32 src = get_long(srca);
51206: CLEAR_CZNV;
51207: SET_ZFLG (((uae_s32)(src)) == 0);
51208: SET_NFLG (((uae_s32)(src)) < 0);
51209: }}}}m68k_incpc(4);
51210: fill_prefetch_0 ();
51211: endlabel2912: ;
51212: return 18;
51213: }
51214: unsigned long REGPARAM2 CPUFUNC(op_4ab8_5)(uae_u32 opcode) /* TST */
51215: {
51216: OpcodeFamily = 20; CurrentInstrCycles = 16;
51217: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
51218: if ((srca & 1) != 0) {
51219: last_fault_for_exception_3 = srca;
51220: last_op_for_exception_3 = opcode;
51221: last_addr_for_exception_3 = m68k_getpc() + 4;
51222: Exception(3, 0, M68000_EXC_SRC_CPU);
51223: goto endlabel2913;
51224: }
51225: {{ uae_s32 src = get_long(srca);
51226: CLEAR_CZNV;
51227: SET_ZFLG (((uae_s32)(src)) == 0);
51228: SET_NFLG (((uae_s32)(src)) < 0);
51229: }}}}m68k_incpc(4);
51230: fill_prefetch_0 ();
51231: endlabel2913: ;
51232: return 16;
51233: }
51234: unsigned long REGPARAM2 CPUFUNC(op_4ab9_5)(uae_u32 opcode) /* TST */
51235: {
51236: OpcodeFamily = 20; CurrentInstrCycles = 20;
51237: {{ uaecptr srca = get_ilong_prefetch(2);
51238: if ((srca & 1) != 0) {
51239: last_fault_for_exception_3 = srca;
51240: last_op_for_exception_3 = opcode;
51241: last_addr_for_exception_3 = m68k_getpc() + 6;
51242: Exception(3, 0, M68000_EXC_SRC_CPU);
51243: goto endlabel2914;
51244: }
51245: {{ uae_s32 src = get_long(srca);
51246: CLEAR_CZNV;
51247: SET_ZFLG (((uae_s32)(src)) == 0);
51248: SET_NFLG (((uae_s32)(src)) < 0);
51249: }}}}m68k_incpc(6);
51250: fill_prefetch_0 ();
51251: endlabel2914: ;
51252: return 20;
51253: }
51254: unsigned long REGPARAM2 CPUFUNC(op_4aba_5)(uae_u32 opcode) /* TST */
51255: {
51256: OpcodeFamily = 20; CurrentInstrCycles = 16;
51257: {{ uaecptr srca = m68k_getpc () + 2;
51258: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
51259: if ((srca & 1) != 0) {
51260: last_fault_for_exception_3 = srca;
51261: last_op_for_exception_3 = opcode;
51262: last_addr_for_exception_3 = m68k_getpc() + 4;
51263: Exception(3, 0, M68000_EXC_SRC_CPU);
51264: goto endlabel2915;
51265: }
51266: {{ uae_s32 src = get_long(srca);
51267: CLEAR_CZNV;
51268: SET_ZFLG (((uae_s32)(src)) == 0);
51269: SET_NFLG (((uae_s32)(src)) < 0);
51270: }}}}m68k_incpc(4);
51271: fill_prefetch_0 ();
51272: endlabel2915: ;
51273: return 16;
51274: }
51275: unsigned long REGPARAM2 CPUFUNC(op_4abb_5)(uae_u32 opcode) /* TST */
51276: {
51277: OpcodeFamily = 20; CurrentInstrCycles = 18;
51278: {{ uaecptr tmppc = m68k_getpc() + 2;
51279: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
51280: BusCyclePenalty += 2;
51281: if ((srca & 1) != 0) {
51282: last_fault_for_exception_3 = srca;
51283: last_op_for_exception_3 = opcode;
51284: last_addr_for_exception_3 = m68k_getpc() + 4;
51285: Exception(3, 0, M68000_EXC_SRC_CPU);
51286: goto endlabel2916;
51287: }
51288: {{ uae_s32 src = get_long(srca);
51289: CLEAR_CZNV;
51290: SET_ZFLG (((uae_s32)(src)) == 0);
51291: SET_NFLG (((uae_s32)(src)) < 0);
51292: }}}}m68k_incpc(4);
51293: fill_prefetch_0 ();
51294: endlabel2916: ;
51295: return 18;
51296: }
51297: unsigned long REGPARAM2 CPUFUNC(op_4abc_5)(uae_u32 opcode) /* TST */
51298: {
51299: OpcodeFamily = 20; CurrentInstrCycles = 12;
51300: {{ uae_s32 src = get_ilong_prefetch(2);
51301: CLEAR_CZNV;
51302: SET_ZFLG (((uae_s32)(src)) == 0);
51303: SET_NFLG (((uae_s32)(src)) < 0);
51304: }}m68k_incpc(6);
51305: fill_prefetch_0 ();
51306: return 12;
51307: }
51308: unsigned long REGPARAM2 CPUFUNC(op_4ac0_5)(uae_u32 opcode) /* TAS */
51309: {
51310: uae_u32 srcreg = (opcode & 7);
51311: OpcodeFamily = 98; CurrentInstrCycles = 4;
51312: {{ uae_s8 src = m68k_dreg(regs, srcreg);
51313: CLEAR_CZNV;
51314: SET_ZFLG (((uae_s8)(src)) == 0);
51315: SET_NFLG (((uae_s8)(src)) < 0);
51316: src |= 0x80;
51317: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((src) & 0xff);
51318: }}m68k_incpc(2);
51319: fill_prefetch_2 ();
51320: return 4;
51321: }
51322: unsigned long REGPARAM2 CPUFUNC(op_4ad0_5)(uae_u32 opcode) /* TAS */
51323: {
51324: uae_u32 srcreg = (opcode & 7);
51325: OpcodeFamily = 98; CurrentInstrCycles = 14;
51326: {{ uaecptr srca = m68k_areg(regs, srcreg);
51327: { uae_s8 src = get_byte(srca);
51328: CLEAR_CZNV;
51329: SET_ZFLG (((uae_s8)(src)) == 0);
51330: SET_NFLG (((uae_s8)(src)) < 0);
51331: src |= 0x80;
51332: m68k_incpc(2);
51333: fill_prefetch_2 ();
51334: put_byte(srca,src);
51335: }}}return 14;
51336: }
51337: unsigned long REGPARAM2 CPUFUNC(op_4ad8_5)(uae_u32 opcode) /* TAS */
51338: {
51339: uae_u32 srcreg = (opcode & 7);
51340: OpcodeFamily = 98; CurrentInstrCycles = 14;
51341: {{ uaecptr srca = m68k_areg(regs, srcreg);
51342: { uae_s8 src = get_byte(srca);
51343: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
51344: CLEAR_CZNV;
51345: SET_ZFLG (((uae_s8)(src)) == 0);
51346: SET_NFLG (((uae_s8)(src)) < 0);
51347: src |= 0x80;
51348: m68k_incpc(2);
51349: fill_prefetch_2 ();
51350: put_byte(srca,src);
51351: }}}return 14;
51352: }
51353: unsigned long REGPARAM2 CPUFUNC(op_4ae0_5)(uae_u32 opcode) /* TAS */
51354: {
51355: uae_u32 srcreg = (opcode & 7);
51356: OpcodeFamily = 98; CurrentInstrCycles = 16;
51357: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
51358: { uae_s8 src = get_byte(srca);
51359: m68k_areg (regs, srcreg) = srca;
51360: CLEAR_CZNV;
51361: SET_ZFLG (((uae_s8)(src)) == 0);
51362: SET_NFLG (((uae_s8)(src)) < 0);
51363: src |= 0x80;
51364: m68k_incpc(2);
51365: fill_prefetch_2 ();
51366: put_byte(srca,src);
51367: }}}return 16;
51368: }
51369: unsigned long REGPARAM2 CPUFUNC(op_4ae8_5)(uae_u32 opcode) /* TAS */
51370: {
51371: uae_u32 srcreg = (opcode & 7);
51372: OpcodeFamily = 98; CurrentInstrCycles = 18;
51373: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
51374: { uae_s8 src = get_byte(srca);
51375: CLEAR_CZNV;
51376: SET_ZFLG (((uae_s8)(src)) == 0);
51377: SET_NFLG (((uae_s8)(src)) < 0);
51378: src |= 0x80;
51379: m68k_incpc(4);
51380: fill_prefetch_0 ();
51381: put_byte(srca,src);
51382: }}}return 18;
51383: }
51384: unsigned long REGPARAM2 CPUFUNC(op_4af0_5)(uae_u32 opcode) /* TAS */
51385: {
51386: uae_u32 srcreg = (opcode & 7);
51387: OpcodeFamily = 98; CurrentInstrCycles = 20;
51388: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
51389: BusCyclePenalty += 2;
51390: { uae_s8 src = get_byte(srca);
51391: CLEAR_CZNV;
51392: SET_ZFLG (((uae_s8)(src)) == 0);
51393: SET_NFLG (((uae_s8)(src)) < 0);
51394: src |= 0x80;
51395: m68k_incpc(4);
51396: fill_prefetch_0 ();
51397: put_byte(srca,src);
51398: }}}return 20;
51399: }
51400: unsigned long REGPARAM2 CPUFUNC(op_4af8_5)(uae_u32 opcode) /* TAS */
51401: {
51402: OpcodeFamily = 98; CurrentInstrCycles = 18;
51403: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
51404: { uae_s8 src = get_byte(srca);
51405: CLEAR_CZNV;
51406: SET_ZFLG (((uae_s8)(src)) == 0);
51407: SET_NFLG (((uae_s8)(src)) < 0);
51408: src |= 0x80;
51409: m68k_incpc(4);
51410: fill_prefetch_0 ();
51411: put_byte(srca,src);
51412: }}}return 18;
51413: }
51414: unsigned long REGPARAM2 CPUFUNC(op_4af9_5)(uae_u32 opcode) /* TAS */
51415: {
51416: OpcodeFamily = 98; CurrentInstrCycles = 22;
51417: {{ uaecptr srca = get_ilong_prefetch(2);
51418: { uae_s8 src = get_byte(srca);
51419: CLEAR_CZNV;
51420: SET_ZFLG (((uae_s8)(src)) == 0);
51421: SET_NFLG (((uae_s8)(src)) < 0);
51422: src |= 0x80;
51423: m68k_incpc(6);
51424: fill_prefetch_0 ();
51425: put_byte(srca,src);
51426: }}}return 22;
51427: }
51428: unsigned long REGPARAM2 CPUFUNC(op_4c90_5)(uae_u32 opcode) /* MVMEL */
51429: {
51430: uae_u32 dstreg = opcode & 7;
51431: unsigned int retcycles = 0;
51432: OpcodeFamily = 37; CurrentInstrCycles = 12;
51433: { uae_u16 mask = get_iword_prefetch(2);
51434: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
51435: retcycles = 0;
51436: { uaecptr srca = m68k_areg(regs, dstreg);
51437: if ((srca & 1) != 0) {
51438: last_fault_for_exception_3 = srca;
51439: last_op_for_exception_3 = opcode;
51440: last_addr_for_exception_3 = m68k_getpc() + 4;
51441: Exception(3, 0, M68000_EXC_SRC_CPU);
51442: goto endlabel2926;
51443: }
51444: {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; }
51445: while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; }
51446: }}}}m68k_incpc(4);
51447: fill_prefetch_0 ();
51448: endlabel2926: ;
51449: return (12+retcycles);
51450: }
51451: unsigned long REGPARAM2 CPUFUNC(op_4c98_5)(uae_u32 opcode) /* MVMEL */
51452: {
51453: uae_u32 dstreg = opcode & 7;
51454: unsigned int retcycles = 0;
51455: OpcodeFamily = 37; CurrentInstrCycles = 12;
51456: { uae_u16 mask = get_iword_prefetch(2);
51457: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
51458: retcycles = 0;
51459: { uaecptr srca = m68k_areg(regs, dstreg);
51460: if ((srca & 1) != 0) {
51461: last_fault_for_exception_3 = srca;
51462: last_op_for_exception_3 = opcode;
51463: last_addr_for_exception_3 = m68k_getpc() + 4;
51464: Exception(3, 0, M68000_EXC_SRC_CPU);
51465: goto endlabel2927;
51466: }
51467: {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; }
51468: while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; }
51469: m68k_areg(regs, dstreg) = srca;
51470: }}}}m68k_incpc(4);
51471: fill_prefetch_0 ();
51472: endlabel2927: ;
51473: return (12+retcycles);
51474: }
51475: unsigned long REGPARAM2 CPUFUNC(op_4ca8_5)(uae_u32 opcode) /* MVMEL */
51476: {
51477: uae_u32 dstreg = opcode & 7;
51478: unsigned int retcycles = 0;
51479: OpcodeFamily = 37; CurrentInstrCycles = 16;
51480: { uae_u16 mask = get_iword_prefetch(2);
51481: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
51482: retcycles = 0;
51483: { uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
51484: if ((srca & 1) != 0) {
51485: last_fault_for_exception_3 = srca;
51486: last_op_for_exception_3 = opcode;
51487: last_addr_for_exception_3 = m68k_getpc() + 6;
51488: Exception(3, 0, M68000_EXC_SRC_CPU);
51489: goto endlabel2928;
51490: }
51491: {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; }
51492: while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; }
51493: }}}}m68k_incpc(6);
51494: fill_prefetch_0 ();
51495: endlabel2928: ;
51496: return (16+retcycles);
51497: }
51498: unsigned long REGPARAM2 CPUFUNC(op_4cb0_5)(uae_u32 opcode) /* MVMEL */
51499: {
51500: uae_u32 dstreg = opcode & 7;
51501: unsigned int retcycles = 0;
51502: OpcodeFamily = 37; CurrentInstrCycles = 18;
51503: { uae_u16 mask = get_iword_prefetch(2);
51504: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
51505: retcycles = 0;
51506: { uaecptr srca = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
51507: BusCyclePenalty += 2;
51508: if ((srca & 1) != 0) {
51509: last_fault_for_exception_3 = srca;
51510: last_op_for_exception_3 = opcode;
51511: last_addr_for_exception_3 = m68k_getpc() + 6;
51512: Exception(3, 0, M68000_EXC_SRC_CPU);
51513: goto endlabel2929;
51514: }
51515: {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; }
51516: while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; }
51517: }}}}m68k_incpc(6);
51518: fill_prefetch_0 ();
51519: endlabel2929: ;
51520: return (18+retcycles);
51521: }
51522: unsigned long REGPARAM2 CPUFUNC(op_4cb8_5)(uae_u32 opcode) /* MVMEL */
51523: {
51524: unsigned int retcycles = 0;
51525: OpcodeFamily = 37; CurrentInstrCycles = 16;
51526: { uae_u16 mask = get_iword_prefetch(2);
51527: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
51528: retcycles = 0;
51529: { uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(4);
51530: if ((srca & 1) != 0) {
51531: last_fault_for_exception_3 = srca;
51532: last_op_for_exception_3 = opcode;
51533: last_addr_for_exception_3 = m68k_getpc() + 6;
51534: Exception(3, 0, M68000_EXC_SRC_CPU);
51535: goto endlabel2930;
51536: }
51537: {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; }
51538: while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; }
51539: }}}}m68k_incpc(6);
51540: fill_prefetch_0 ();
51541: endlabel2930: ;
51542: return (16+retcycles);
51543: }
51544: unsigned long REGPARAM2 CPUFUNC(op_4cb9_5)(uae_u32 opcode) /* MVMEL */
51545: {
51546: unsigned int retcycles = 0;
51547: OpcodeFamily = 37; CurrentInstrCycles = 20;
51548: { uae_u16 mask = get_iword_prefetch(2);
51549: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
51550: retcycles = 0;
51551: { uaecptr srca = get_ilong_prefetch(4);
51552: if ((srca & 1) != 0) {
51553: last_fault_for_exception_3 = srca;
51554: last_op_for_exception_3 = opcode;
51555: last_addr_for_exception_3 = m68k_getpc() + 8;
51556: Exception(3, 0, M68000_EXC_SRC_CPU);
51557: goto endlabel2931;
51558: }
51559: {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; }
51560: while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; }
51561: }}}}m68k_incpc(8);
51562: fill_prefetch_0 ();
51563: endlabel2931: ;
51564: return (20+retcycles);
51565: }
51566: unsigned long REGPARAM2 CPUFUNC(op_4cba_5)(uae_u32 opcode) /* MVMEL */
51567: {
51568: uae_u32 dstreg = 2;
51569: unsigned int retcycles = 0;
51570: OpcodeFamily = 37; CurrentInstrCycles = 16;
51571: { uae_u16 mask = get_iword_prefetch(2);
51572: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
51573: retcycles = 0;
51574: { uaecptr srca = m68k_getpc () + 4;
51575: srca += (uae_s32)(uae_s16)get_iword_prefetch(4);
51576: if ((srca & 1) != 0) {
51577: last_fault_for_exception_3 = srca;
51578: last_op_for_exception_3 = opcode;
51579: last_addr_for_exception_3 = m68k_getpc() + 6;
51580: Exception(3, 0, M68000_EXC_SRC_CPU);
51581: goto endlabel2932;
51582: }
51583: {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; }
51584: while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; }
51585: }}}}m68k_incpc(6);
51586: fill_prefetch_0 ();
51587: endlabel2932: ;
51588: return (16+retcycles);
51589: }
51590: unsigned long REGPARAM2 CPUFUNC(op_4cbb_5)(uae_u32 opcode) /* MVMEL */
51591: {
51592: uae_u32 dstreg = 3;
51593: unsigned int retcycles = 0;
51594: OpcodeFamily = 37; CurrentInstrCycles = 18;
51595: { uae_u16 mask = get_iword_prefetch(2);
51596: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
51597: retcycles = 0;
51598: { uaecptr tmppc = m68k_getpc() + 4;
51599: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(4));
51600: BusCyclePenalty += 2;
51601: if ((srca & 1) != 0) {
51602: last_fault_for_exception_3 = srca;
51603: last_op_for_exception_3 = opcode;
51604: last_addr_for_exception_3 = m68k_getpc() + 6;
51605: Exception(3, 0, M68000_EXC_SRC_CPU);
51606: goto endlabel2933;
51607: }
51608: {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; dmask = movem_next[dmask]; retcycles+=4; }
51609: while (amask) { m68k_areg(regs, movem_index1[amask]) = (uae_s32)(uae_s16)get_word(srca); srca += 2; amask = movem_next[amask]; retcycles+=4; }
51610: }}}}m68k_incpc(6);
51611: fill_prefetch_0 ();
51612: endlabel2933: ;
51613: return (18+retcycles);
51614: }
51615: unsigned long REGPARAM2 CPUFUNC(op_4cd0_5)(uae_u32 opcode) /* MVMEL */
51616: {
51617: uae_u32 dstreg = opcode & 7;
51618: unsigned int retcycles = 0;
51619: OpcodeFamily = 37; CurrentInstrCycles = 12;
51620: { uae_u16 mask = get_iword_prefetch(2);
51621: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
51622: retcycles = 0;
51623: { uaecptr srca = m68k_areg(regs, dstreg);
51624: if ((srca & 1) != 0) {
51625: last_fault_for_exception_3 = srca;
51626: last_op_for_exception_3 = opcode;
51627: last_addr_for_exception_3 = m68k_getpc() + 4;
51628: Exception(3, 0, M68000_EXC_SRC_CPU);
51629: goto endlabel2934;
51630: }
51631: {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; }
51632: while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; }
51633: }}}}m68k_incpc(4);
51634: fill_prefetch_0 ();
51635: endlabel2934: ;
51636: return (12+retcycles);
51637: }
51638: unsigned long REGPARAM2 CPUFUNC(op_4cd8_5)(uae_u32 opcode) /* MVMEL */
51639: {
51640: uae_u32 dstreg = opcode & 7;
51641: unsigned int retcycles = 0;
51642: OpcodeFamily = 37; CurrentInstrCycles = 12;
51643: { uae_u16 mask = get_iword_prefetch(2);
51644: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
51645: retcycles = 0;
51646: { uaecptr srca = m68k_areg(regs, dstreg);
51647: if ((srca & 1) != 0) {
51648: last_fault_for_exception_3 = srca;
51649: last_op_for_exception_3 = opcode;
51650: last_addr_for_exception_3 = m68k_getpc() + 4;
51651: Exception(3, 0, M68000_EXC_SRC_CPU);
51652: goto endlabel2935;
51653: }
51654: {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; }
51655: while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; }
51656: m68k_areg(regs, dstreg) = srca;
51657: }}}}m68k_incpc(4);
51658: fill_prefetch_0 ();
51659: endlabel2935: ;
51660: return (12+retcycles);
51661: }
51662: unsigned long REGPARAM2 CPUFUNC(op_4ce8_5)(uae_u32 opcode) /* MVMEL */
51663: {
51664: uae_u32 dstreg = opcode & 7;
51665: unsigned int retcycles = 0;
51666: OpcodeFamily = 37; CurrentInstrCycles = 16;
51667: { uae_u16 mask = get_iword_prefetch(2);
51668: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
51669: retcycles = 0;
51670: { uaecptr srca = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(4);
51671: if ((srca & 1) != 0) {
51672: last_fault_for_exception_3 = srca;
51673: last_op_for_exception_3 = opcode;
51674: last_addr_for_exception_3 = m68k_getpc() + 6;
51675: Exception(3, 0, M68000_EXC_SRC_CPU);
51676: goto endlabel2936;
51677: }
51678: {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; }
51679: while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; }
51680: }}}}m68k_incpc(6);
51681: fill_prefetch_0 ();
51682: endlabel2936: ;
51683: return (16+retcycles);
51684: }
51685: unsigned long REGPARAM2 CPUFUNC(op_4cf0_5)(uae_u32 opcode) /* MVMEL */
51686: {
51687: uae_u32 dstreg = opcode & 7;
51688: unsigned int retcycles = 0;
51689: OpcodeFamily = 37; CurrentInstrCycles = 18;
51690: { uae_u16 mask = get_iword_prefetch(2);
51691: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
51692: retcycles = 0;
51693: { uaecptr srca = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(4));
51694: BusCyclePenalty += 2;
51695: if ((srca & 1) != 0) {
51696: last_fault_for_exception_3 = srca;
51697: last_op_for_exception_3 = opcode;
51698: last_addr_for_exception_3 = m68k_getpc() + 6;
51699: Exception(3, 0, M68000_EXC_SRC_CPU);
51700: goto endlabel2937;
51701: }
51702: {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; }
51703: while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; }
51704: }}}}m68k_incpc(6);
51705: fill_prefetch_0 ();
51706: endlabel2937: ;
51707: return (18+retcycles);
51708: }
51709: unsigned long REGPARAM2 CPUFUNC(op_4cf8_5)(uae_u32 opcode) /* MVMEL */
51710: {
51711: unsigned int retcycles = 0;
51712: OpcodeFamily = 37; CurrentInstrCycles = 16;
51713: { uae_u16 mask = get_iword_prefetch(2);
51714: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
51715: retcycles = 0;
51716: { uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(4);
51717: if ((srca & 1) != 0) {
51718: last_fault_for_exception_3 = srca;
51719: last_op_for_exception_3 = opcode;
51720: last_addr_for_exception_3 = m68k_getpc() + 6;
51721: Exception(3, 0, M68000_EXC_SRC_CPU);
51722: goto endlabel2938;
51723: }
51724: {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; }
51725: while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; }
51726: }}}}m68k_incpc(6);
51727: fill_prefetch_0 ();
51728: endlabel2938: ;
51729: return (16+retcycles);
51730: }
51731: unsigned long REGPARAM2 CPUFUNC(op_4cf9_5)(uae_u32 opcode) /* MVMEL */
51732: {
51733: unsigned int retcycles = 0;
51734: OpcodeFamily = 37; CurrentInstrCycles = 20;
51735: { uae_u16 mask = get_iword_prefetch(2);
51736: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
51737: retcycles = 0;
51738: { uaecptr srca = get_ilong_prefetch(4);
51739: if ((srca & 1) != 0) {
51740: last_fault_for_exception_3 = srca;
51741: last_op_for_exception_3 = opcode;
51742: last_addr_for_exception_3 = m68k_getpc() + 8;
51743: Exception(3, 0, M68000_EXC_SRC_CPU);
51744: goto endlabel2939;
51745: }
51746: {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; }
51747: while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; }
51748: }}}}m68k_incpc(8);
51749: fill_prefetch_0 ();
51750: endlabel2939: ;
51751: return (20+retcycles);
51752: }
51753: unsigned long REGPARAM2 CPUFUNC(op_4cfa_5)(uae_u32 opcode) /* MVMEL */
51754: {
51755: uae_u32 dstreg = 2;
51756: unsigned int retcycles = 0;
51757: OpcodeFamily = 37; CurrentInstrCycles = 16;
51758: { uae_u16 mask = get_iword_prefetch(2);
51759: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
51760: retcycles = 0;
51761: { uaecptr srca = m68k_getpc () + 4;
51762: srca += (uae_s32)(uae_s16)get_iword_prefetch(4);
51763: if ((srca & 1) != 0) {
51764: last_fault_for_exception_3 = srca;
51765: last_op_for_exception_3 = opcode;
51766: last_addr_for_exception_3 = m68k_getpc() + 6;
51767: Exception(3, 0, M68000_EXC_SRC_CPU);
51768: goto endlabel2940;
51769: }
51770: {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; }
51771: while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; }
51772: }}}}m68k_incpc(6);
51773: fill_prefetch_0 ();
51774: endlabel2940: ;
51775: return (16+retcycles);
51776: }
51777: unsigned long REGPARAM2 CPUFUNC(op_4cfb_5)(uae_u32 opcode) /* MVMEL */
51778: {
51779: uae_u32 dstreg = 3;
51780: unsigned int retcycles = 0;
51781: OpcodeFamily = 37; CurrentInstrCycles = 18;
51782: { uae_u16 mask = get_iword_prefetch(2);
51783: unsigned int dmask = mask & 0xff, amask = (mask >> 8) & 0xff;
51784: retcycles = 0;
51785: { uaecptr tmppc = m68k_getpc() + 4;
51786: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(4));
51787: BusCyclePenalty += 2;
51788: if ((srca & 1) != 0) {
51789: last_fault_for_exception_3 = srca;
51790: last_op_for_exception_3 = opcode;
51791: last_addr_for_exception_3 = m68k_getpc() + 6;
51792: Exception(3, 0, M68000_EXC_SRC_CPU);
51793: goto endlabel2941;
51794: }
51795: {{ while (dmask) { m68k_dreg(regs, movem_index1[dmask]) = get_long(srca); srca += 4; dmask = movem_next[dmask]; retcycles+=8; }
51796: while (amask) { m68k_areg(regs, movem_index1[amask]) = get_long(srca); srca += 4; amask = movem_next[amask]; retcycles+=8; }
51797: }}}}m68k_incpc(6);
51798: fill_prefetch_0 ();
51799: endlabel2941: ;
51800: return (18+retcycles);
51801: }
51802: unsigned long REGPARAM2 CPUFUNC(op_4e40_5)(uae_u32 opcode) /* TRAP */
51803: {
51804: uae_u32 srcreg = (opcode & 15);
51805: OpcodeFamily = 39; CurrentInstrCycles = 4;
51806: {{ uae_u32 src = srcreg;
51807: m68k_incpc(2);
51808: fill_prefetch_2 ();
51809: Exception(src+32,0,M68000_EXC_SRC_CPU);
51810: }}return 4;
51811: }
51812: unsigned long REGPARAM2 CPUFUNC(op_4e50_5)(uae_u32 opcode) /* LINK */
51813: {
51814: uae_u32 srcreg = (opcode & 7);
51815: OpcodeFamily = 47; CurrentInstrCycles = 18;
51816: {{ uaecptr olda = m68k_areg(regs, 7) - 4;
51817: if ((olda & 1) != 0) {
51818: last_fault_for_exception_3 = olda;
51819: last_op_for_exception_3 = opcode;
51820: last_addr_for_exception_3 = m68k_getpc() + 2;
51821: Exception(3, 0, M68000_EXC_SRC_CPU);
51822: goto endlabel2943;
51823: }
51824: { m68k_areg (regs, 7) = olda;
51825: { uae_s32 src = m68k_areg(regs, srcreg);
51826: m68k_incpc(2);
51827: fill_prefetch_2 ();
51828: put_long(olda,src);
51829: m68k_areg(regs, srcreg) = (m68k_areg(regs, 7));
51830: { uae_s16 offs = get_iword_prefetch(0);
51831: m68k_areg(regs, 7) += offs;
51832: }}}}}m68k_incpc(2);
51833: fill_prefetch_2 ();
51834: endlabel2943: ;
51835: return 18;
51836: }
51837: unsigned long REGPARAM2 CPUFUNC(op_4e58_5)(uae_u32 opcode) /* UNLK */
51838: {
51839: uae_u32 srcreg = (opcode & 7);
51840: OpcodeFamily = 48; CurrentInstrCycles = 12;
51841: {{ uae_s32 src = m68k_areg(regs, srcreg);
51842: m68k_areg(regs, 7) = src;
51843: { uaecptr olda = m68k_areg(regs, 7);
51844: if ((olda & 1) != 0) {
51845: last_fault_for_exception_3 = olda;
51846: last_op_for_exception_3 = opcode;
51847: last_addr_for_exception_3 = m68k_getpc() + 2;
51848: Exception(3, 0, M68000_EXC_SRC_CPU);
51849: goto endlabel2944;
51850: }
51851: {{ uae_s32 old = get_long(olda);
51852: m68k_areg(regs, 7) += 4;
51853: m68k_areg(regs, srcreg) = (old);
51854: }}}}}m68k_incpc(2);
51855: fill_prefetch_2 ();
51856: endlabel2944: ;
51857: return 12;
51858: }
51859: unsigned long REGPARAM2 CPUFUNC(op_4e60_5)(uae_u32 opcode) /* MVR2USP */
51860: {
51861: uae_u32 srcreg = (opcode & 7);
51862: OpcodeFamily = 40; CurrentInstrCycles = 4;
51863: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel2945; }
51864: {{ uae_s32 src = m68k_areg(regs, srcreg);
51865: regs.usp = src;
51866: }}}m68k_incpc(2);
51867: fill_prefetch_2 ();
51868: endlabel2945: ;
51869: return 4;
51870: }
51871: unsigned long REGPARAM2 CPUFUNC(op_4e68_5)(uae_u32 opcode) /* MVUSP2R */
51872: {
51873: uae_u32 srcreg = (opcode & 7);
51874: OpcodeFamily = 41; CurrentInstrCycles = 4;
51875: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel2946; }
51876: {{ m68k_areg(regs, srcreg) = (regs.usp);
51877: }}}m68k_incpc(2);
51878: fill_prefetch_2 ();
51879: endlabel2946: ;
51880: return 4;
51881: }
51882: unsigned long REGPARAM2 CPUFUNC(op_4e70_5)(uae_u32 opcode) /* RESET */
51883: {
51884: OpcodeFamily = 42; CurrentInstrCycles = 132;
51885: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel2947; }
51886: { customreset();
51887: }}m68k_incpc(2);
51888: fill_prefetch_2 ();
51889: endlabel2947: ;
51890: return 132;
51891: }
51892: unsigned long REGPARAM2 CPUFUNC(op_4e71_5)(uae_u32 opcode) /* NOP */
51893: {
51894: OpcodeFamily = 43; CurrentInstrCycles = 4;
51895: {}m68k_incpc(2);
51896: fill_prefetch_2 ();
51897: return 4;
51898: }
51899: unsigned long REGPARAM2 CPUFUNC(op_4e72_5)(uae_u32 opcode) /* STOP */
51900: {
51901: OpcodeFamily = 44; CurrentInstrCycles = 4;
51902: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel2949; }
51903: {{ uae_s16 src = get_iword_prefetch(2);
51904: regs.sr = src;
51905: MakeFromSR();
51906: m68k_setstopped(1);
51907: }}}m68k_incpc(4);
51908: fill_prefetch_0 ();
51909: endlabel2949: ;
51910: return 4;
51911: }
51912: unsigned long REGPARAM2 CPUFUNC(op_4e73_5)(uae_u32 opcode) /* RTE */
51913: {
51914: OpcodeFamily = 45; CurrentInstrCycles = 20;
51915: {if (!regs.s) { Exception(8,0,M68000_EXC_SRC_CPU); goto endlabel2950; }
51916: {{ uaecptr sra = m68k_areg(regs, 7);
51917: if ((sra & 1) != 0) {
51918: last_fault_for_exception_3 = sra;
51919: last_op_for_exception_3 = opcode;
51920: last_addr_for_exception_3 = m68k_getpc() + 2;
51921: Exception(3, 0, M68000_EXC_SRC_CPU);
51922: goto endlabel2950;
51923: }
51924: {{ uae_s16 sr = get_word(sra);
51925: m68k_areg(regs, 7) += 2;
51926: { uaecptr pca = m68k_areg(regs, 7);
51927: if ((pca & 1) != 0) {
51928: last_fault_for_exception_3 = pca;
51929: last_op_for_exception_3 = opcode;
51930: last_addr_for_exception_3 = m68k_getpc() + 2;
51931: Exception(3, 0, M68000_EXC_SRC_CPU);
51932: goto endlabel2950;
51933: }
51934: {{ uae_s32 pc = get_long(pca);
51935: m68k_areg(regs, 7) += 4;
51936: regs.sr = sr; m68k_setpc_rte(pc);
51937: fill_prefetch_0 ();
51938: MakeFromSR();
51939: }}}}}}}}endlabel2950: ;
51940: return 20;
51941: }
51942: unsigned long REGPARAM2 CPUFUNC(op_4e74_5)(uae_u32 opcode) /* RTD */
51943: {
51944: OpcodeFamily = 46; CurrentInstrCycles = 16;
51945: {{ uaecptr pca = m68k_areg(regs, 7);
51946: if ((pca & 1) != 0) {
51947: last_fault_for_exception_3 = pca;
51948: last_op_for_exception_3 = opcode;
51949: last_addr_for_exception_3 = m68k_getpc() + 2;
51950: Exception(3, 0, M68000_EXC_SRC_CPU);
51951: goto endlabel2951;
51952: }
51953: {{ uae_s32 pc = get_long(pca);
51954: m68k_areg(regs, 7) += 4;
51955: { uae_s16 offs = get_iword_prefetch(2);
51956: m68k_areg(regs, 7) += offs;
51957: m68k_setpc_rte(pc);
51958: fill_prefetch_0 ();
51959: }}}}}endlabel2951: ;
51960: return 16;
51961: }
51962: unsigned long REGPARAM2 CPUFUNC(op_4e75_5)(uae_u32 opcode) /* RTS */
51963: {
51964: OpcodeFamily = 49; CurrentInstrCycles = 16;
51965: { m68k_do_rts();
51966: fill_prefetch_0 ();
51967: }return 16;
51968: }
51969: unsigned long REGPARAM2 CPUFUNC(op_4e76_5)(uae_u32 opcode) /* TRAPV */
51970: {
51971: OpcodeFamily = 50; CurrentInstrCycles = 4;
51972: {m68k_incpc(2);
51973: fill_prefetch_2 ();
51974: if (GET_VFLG) { Exception(7,m68k_getpc(),M68000_EXC_SRC_CPU); goto endlabel2953; }
51975: }endlabel2953: ;
51976: return 4;
51977: }
51978: unsigned long REGPARAM2 CPUFUNC(op_4e77_5)(uae_u32 opcode) /* RTR */
51979: {
51980: OpcodeFamily = 51; CurrentInstrCycles = 20;
51981: { MakeSR();
51982: { uaecptr sra = m68k_areg(regs, 7);
51983: if ((sra & 1) != 0) {
51984: last_fault_for_exception_3 = sra;
51985: last_op_for_exception_3 = opcode;
51986: last_addr_for_exception_3 = m68k_getpc() + 2;
51987: Exception(3, 0, M68000_EXC_SRC_CPU);
51988: goto endlabel2954;
51989: }
51990: {{ uae_s16 sr = get_word(sra);
51991: m68k_areg(regs, 7) += 2;
51992: { uaecptr pca = m68k_areg(regs, 7);
51993: if ((pca & 1) != 0) {
51994: last_fault_for_exception_3 = pca;
51995: last_op_for_exception_3 = opcode;
51996: last_addr_for_exception_3 = m68k_getpc() + 2;
51997: Exception(3, 0, M68000_EXC_SRC_CPU);
51998: goto endlabel2954;
51999: }
52000: {{ uae_s32 pc = get_long(pca);
52001: m68k_areg(regs, 7) += 4;
52002: regs.sr &= 0xFF00; sr &= 0xFF;
52003: regs.sr |= sr; m68k_setpc(pc);
52004: fill_prefetch_0 ();
52005: MakeFromSR();
52006: }}}}}}}endlabel2954: ;
52007: return 20;
52008: }
52009: unsigned long REGPARAM2 CPUFUNC(op_4e90_5)(uae_u32 opcode) /* JSR */
52010: {
52011: uae_u32 srcreg = (opcode & 7);
52012: OpcodeFamily = 52; CurrentInstrCycles = 16;
52013: {{ uaecptr srca = m68k_areg(regs, srcreg);
52014: m68k_do_jsr(m68k_getpc() + 2, srca);
52015: fill_prefetch_0 ();
52016: }}return 16;
52017: }
52018: unsigned long REGPARAM2 CPUFUNC(op_4ea8_5)(uae_u32 opcode) /* JSR */
52019: {
52020: uae_u32 srcreg = (opcode & 7);
52021: OpcodeFamily = 52; CurrentInstrCycles = 18;
52022: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
52023: m68k_do_jsr(m68k_getpc() + 4, srca);
52024: fill_prefetch_0 ();
52025: }}return 18;
52026: }
52027: unsigned long REGPARAM2 CPUFUNC(op_4eb0_5)(uae_u32 opcode) /* JSR */
52028: {
52029: uae_u32 srcreg = (opcode & 7);
52030: OpcodeFamily = 52; CurrentInstrCycles = 22;
52031: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
52032: BusCyclePenalty += 2;
52033: m68k_do_jsr(m68k_getpc() + 4, srca);
52034: fill_prefetch_0 ();
52035: }}return 22;
52036: }
52037: unsigned long REGPARAM2 CPUFUNC(op_4eb8_5)(uae_u32 opcode) /* JSR */
52038: {
52039: OpcodeFamily = 52; CurrentInstrCycles = 18;
52040: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
52041: m68k_do_jsr(m68k_getpc() + 4, srca);
52042: fill_prefetch_0 ();
52043: }}return 18;
52044: }
52045: unsigned long REGPARAM2 CPUFUNC(op_4eb9_5)(uae_u32 opcode) /* JSR */
52046: {
52047: OpcodeFamily = 52; CurrentInstrCycles = 20;
52048: {{ uaecptr srca = get_ilong_prefetch(2);
52049: m68k_do_jsr(m68k_getpc() + 6, srca);
52050: fill_prefetch_0 ();
52051: }}return 20;
52052: }
52053: unsigned long REGPARAM2 CPUFUNC(op_4eba_5)(uae_u32 opcode) /* JSR */
52054: {
52055: OpcodeFamily = 52; CurrentInstrCycles = 18;
52056: {{ uaecptr srca = m68k_getpc () + 2;
52057: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
52058: m68k_do_jsr(m68k_getpc() + 4, srca);
52059: fill_prefetch_0 ();
52060: }}return 18;
52061: }
52062: unsigned long REGPARAM2 CPUFUNC(op_4ebb_5)(uae_u32 opcode) /* JSR */
52063: {
52064: OpcodeFamily = 52; CurrentInstrCycles = 22;
52065: {{ uaecptr tmppc = m68k_getpc() + 2;
52066: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
52067: BusCyclePenalty += 2;
52068: m68k_do_jsr(m68k_getpc() + 4, srca);
52069: fill_prefetch_0 ();
52070: }}return 22;
52071: }
52072: unsigned long REGPARAM2 CPUFUNC(op_4ed0_5)(uae_u32 opcode) /* JMP */
52073: {
52074: uae_u32 srcreg = (opcode & 7);
52075: OpcodeFamily = 53; CurrentInstrCycles = 8;
52076: {{ uaecptr srca = m68k_areg(regs, srcreg);
52077: m68k_setpc(srca);
52078: fill_prefetch_0 ();
52079: }}return 8;
52080: }
52081: unsigned long REGPARAM2 CPUFUNC(op_4ee8_5)(uae_u32 opcode) /* JMP */
52082: {
52083: uae_u32 srcreg = (opcode & 7);
52084: OpcodeFamily = 53; CurrentInstrCycles = 10;
52085: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
52086: m68k_setpc(srca);
52087: fill_prefetch_0 ();
52088: }}return 10;
52089: }
52090: unsigned long REGPARAM2 CPUFUNC(op_4ef0_5)(uae_u32 opcode) /* JMP */
52091: {
52092: uae_u32 srcreg = (opcode & 7);
52093: OpcodeFamily = 53; CurrentInstrCycles = 14;
52094: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
52095: BusCyclePenalty += 2;
52096: m68k_setpc(srca);
52097: fill_prefetch_0 ();
52098: }}return 14;
52099: }
52100: unsigned long REGPARAM2 CPUFUNC(op_4ef8_5)(uae_u32 opcode) /* JMP */
52101: {
52102: OpcodeFamily = 53; CurrentInstrCycles = 10;
52103: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
52104: m68k_setpc(srca);
52105: fill_prefetch_0 ();
52106: }}return 10;
52107: }
52108: unsigned long REGPARAM2 CPUFUNC(op_4ef9_5)(uae_u32 opcode) /* JMP */
52109: {
52110: OpcodeFamily = 53; CurrentInstrCycles = 12;
52111: {{ uaecptr srca = get_ilong_prefetch(2);
52112: m68k_setpc(srca);
52113: fill_prefetch_0 ();
52114: }}return 12;
52115: }
52116: unsigned long REGPARAM2 CPUFUNC(op_4efa_5)(uae_u32 opcode) /* JMP */
52117: {
52118: OpcodeFamily = 53; CurrentInstrCycles = 10;
52119: {{ uaecptr srca = m68k_getpc () + 2;
52120: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
52121: m68k_setpc(srca);
52122: fill_prefetch_0 ();
52123: }}return 10;
52124: }
52125: unsigned long REGPARAM2 CPUFUNC(op_4efb_5)(uae_u32 opcode) /* JMP */
52126: {
52127: OpcodeFamily = 53; CurrentInstrCycles = 14;
52128: {{ uaecptr tmppc = m68k_getpc() + 2;
52129: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
52130: BusCyclePenalty += 2;
52131: m68k_setpc(srca);
52132: fill_prefetch_0 ();
52133: }}return 14;
52134: }
52135: unsigned long REGPARAM2 CPUFUNC(op_5000_5)(uae_u32 opcode) /* ADD */
52136: {
52137: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
52138: uae_u32 dstreg = opcode & 7;
52139: OpcodeFamily = 11; CurrentInstrCycles = 4;
52140: {{ uae_u32 src = srcreg;
52141: { uae_s8 dst = m68k_dreg(regs, dstreg);
52142: { refill_prefetch (m68k_getpc(), 2);
52143: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
52144: { int flgs = ((uae_s8)(src)) < 0;
52145: int flgo = ((uae_s8)(dst)) < 0;
52146: int flgn = ((uae_s8)(newv)) < 0;
52147: SET_ZFLG (((uae_s8)(newv)) == 0);
52148: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
52149: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
52150: COPY_CARRY;
52151: SET_NFLG (flgn != 0);
52152: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
52153: }}}}}}m68k_incpc(2);
52154: fill_prefetch_2 ();
52155: return 4;
52156: }
52157: unsigned long REGPARAM2 CPUFUNC(op_5010_5)(uae_u32 opcode) /* ADD */
52158: {
52159: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
52160: uae_u32 dstreg = opcode & 7;
52161: OpcodeFamily = 11; CurrentInstrCycles = 12;
52162: {{ uae_u32 src = srcreg;
52163: { uaecptr dsta = m68k_areg(regs, dstreg);
52164: { uae_s8 dst = get_byte(dsta);
52165: { refill_prefetch (m68k_getpc(), 2);
52166: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
52167: { int flgs = ((uae_s8)(src)) < 0;
52168: int flgo = ((uae_s8)(dst)) < 0;
52169: int flgn = ((uae_s8)(newv)) < 0;
52170: SET_ZFLG (((uae_s8)(newv)) == 0);
52171: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
52172: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
52173: COPY_CARRY;
52174: SET_NFLG (flgn != 0);
52175: m68k_incpc(2);
52176: fill_prefetch_2 ();
52177: put_byte(dsta,newv);
52178: }}}}}}}return 12;
52179: }
52180: unsigned long REGPARAM2 CPUFUNC(op_5018_5)(uae_u32 opcode) /* ADD */
52181: {
52182: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
52183: uae_u32 dstreg = opcode & 7;
52184: OpcodeFamily = 11; CurrentInstrCycles = 12;
52185: {{ uae_u32 src = srcreg;
52186: { uaecptr dsta = m68k_areg(regs, dstreg);
52187: { uae_s8 dst = get_byte(dsta);
52188: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
52189: { refill_prefetch (m68k_getpc(), 2);
52190: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
52191: { int flgs = ((uae_s8)(src)) < 0;
52192: int flgo = ((uae_s8)(dst)) < 0;
52193: int flgn = ((uae_s8)(newv)) < 0;
52194: SET_ZFLG (((uae_s8)(newv)) == 0);
52195: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
52196: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
52197: COPY_CARRY;
52198: SET_NFLG (flgn != 0);
52199: m68k_incpc(2);
52200: fill_prefetch_2 ();
52201: put_byte(dsta,newv);
52202: }}}}}}}return 12;
52203: }
52204: #endif
52205:
52206: #ifdef PART_5
52207: unsigned long REGPARAM2 CPUFUNC(op_5020_5)(uae_u32 opcode) /* ADD */
52208: {
52209: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
52210: uae_u32 dstreg = opcode & 7;
52211: OpcodeFamily = 11; CurrentInstrCycles = 14;
52212: {{ uae_u32 src = srcreg;
52213: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
52214: { uae_s8 dst = get_byte(dsta);
52215: m68k_areg (regs, dstreg) = dsta;
52216: { refill_prefetch (m68k_getpc(), 2);
52217: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
52218: { int flgs = ((uae_s8)(src)) < 0;
52219: int flgo = ((uae_s8)(dst)) < 0;
52220: int flgn = ((uae_s8)(newv)) < 0;
52221: SET_ZFLG (((uae_s8)(newv)) == 0);
52222: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
52223: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
52224: COPY_CARRY;
52225: SET_NFLG (flgn != 0);
52226: m68k_incpc(2);
52227: fill_prefetch_2 ();
52228: put_byte(dsta,newv);
52229: }}}}}}}return 14;
52230: }
52231: unsigned long REGPARAM2 CPUFUNC(op_5028_5)(uae_u32 opcode) /* ADD */
52232: {
52233: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
52234: uae_u32 dstreg = opcode & 7;
52235: OpcodeFamily = 11; CurrentInstrCycles = 16;
52236: {{ uae_u32 src = srcreg;
52237: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
52238: { uae_s8 dst = get_byte(dsta);
52239: { refill_prefetch (m68k_getpc(), 2);
52240: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
52241: { int flgs = ((uae_s8)(src)) < 0;
52242: int flgo = ((uae_s8)(dst)) < 0;
52243: int flgn = ((uae_s8)(newv)) < 0;
52244: SET_ZFLG (((uae_s8)(newv)) == 0);
52245: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
52246: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
52247: COPY_CARRY;
52248: SET_NFLG (flgn != 0);
52249: m68k_incpc(4);
52250: fill_prefetch_0 ();
52251: put_byte(dsta,newv);
52252: }}}}}}}return 16;
52253: }
52254: unsigned long REGPARAM2 CPUFUNC(op_5030_5)(uae_u32 opcode) /* ADD */
52255: {
52256: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
52257: uae_u32 dstreg = opcode & 7;
52258: OpcodeFamily = 11; CurrentInstrCycles = 18;
52259: {{ uae_u32 src = srcreg;
52260: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
52261: BusCyclePenalty += 2;
52262: { uae_s8 dst = get_byte(dsta);
52263: { refill_prefetch (m68k_getpc(), 2);
52264: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
52265: { int flgs = ((uae_s8)(src)) < 0;
52266: int flgo = ((uae_s8)(dst)) < 0;
52267: int flgn = ((uae_s8)(newv)) < 0;
52268: SET_ZFLG (((uae_s8)(newv)) == 0);
52269: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
52270: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
52271: COPY_CARRY;
52272: SET_NFLG (flgn != 0);
52273: m68k_incpc(4);
52274: fill_prefetch_0 ();
52275: put_byte(dsta,newv);
52276: }}}}}}}return 18;
52277: }
52278: unsigned long REGPARAM2 CPUFUNC(op_5038_5)(uae_u32 opcode) /* ADD */
52279: {
52280: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
52281: OpcodeFamily = 11; CurrentInstrCycles = 16;
52282: {{ uae_u32 src = srcreg;
52283: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
52284: { uae_s8 dst = get_byte(dsta);
52285: { refill_prefetch (m68k_getpc(), 2);
52286: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
52287: { int flgs = ((uae_s8)(src)) < 0;
52288: int flgo = ((uae_s8)(dst)) < 0;
52289: int flgn = ((uae_s8)(newv)) < 0;
52290: SET_ZFLG (((uae_s8)(newv)) == 0);
52291: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
52292: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
52293: COPY_CARRY;
52294: SET_NFLG (flgn != 0);
52295: m68k_incpc(4);
52296: fill_prefetch_0 ();
52297: put_byte(dsta,newv);
52298: }}}}}}}return 16;
52299: }
52300: unsigned long REGPARAM2 CPUFUNC(op_5039_5)(uae_u32 opcode) /* ADD */
52301: {
52302: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
52303: OpcodeFamily = 11; CurrentInstrCycles = 20;
52304: {{ uae_u32 src = srcreg;
52305: { uaecptr dsta = get_ilong_prefetch(2);
52306: { uae_s8 dst = get_byte(dsta);
52307: { refill_prefetch (m68k_getpc(), 2);
52308: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
52309: { int flgs = ((uae_s8)(src)) < 0;
52310: int flgo = ((uae_s8)(dst)) < 0;
52311: int flgn = ((uae_s8)(newv)) < 0;
52312: SET_ZFLG (((uae_s8)(newv)) == 0);
52313: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
52314: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
52315: COPY_CARRY;
52316: SET_NFLG (flgn != 0);
52317: m68k_incpc(6);
52318: fill_prefetch_0 ();
52319: put_byte(dsta,newv);
52320: }}}}}}}return 20;
52321: }
52322: unsigned long REGPARAM2 CPUFUNC(op_5040_5)(uae_u32 opcode) /* ADD */
52323: {
52324: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
52325: uae_u32 dstreg = opcode & 7;
52326: OpcodeFamily = 11; CurrentInstrCycles = 4;
52327: {{ uae_u32 src = srcreg;
52328: { uae_s16 dst = m68k_dreg(regs, dstreg);
52329: { refill_prefetch (m68k_getpc(), 2);
52330: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
52331: { int flgs = ((uae_s16)(src)) < 0;
52332: int flgo = ((uae_s16)(dst)) < 0;
52333: int flgn = ((uae_s16)(newv)) < 0;
52334: SET_ZFLG (((uae_s16)(newv)) == 0);
52335: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
52336: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
52337: COPY_CARRY;
52338: SET_NFLG (flgn != 0);
52339: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
52340: }}}}}}m68k_incpc(2);
52341: fill_prefetch_2 ();
52342: return 4;
52343: }
52344: unsigned long REGPARAM2 CPUFUNC(op_5048_5)(uae_u32 opcode) /* ADDA */
52345: {
52346: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
52347: uae_u32 dstreg = opcode & 7;
52348: OpcodeFamily = 12; CurrentInstrCycles = 8;
52349: {{ uae_u32 src = srcreg;
52350: { uae_s32 dst = m68k_areg(regs, dstreg);
52351: { uae_u32 newv = dst + src;
52352: m68k_areg(regs, dstreg) = (newv);
52353: }}}}m68k_incpc(2);
52354: fill_prefetch_2 ();
52355: return 8;
52356: }
52357: unsigned long REGPARAM2 CPUFUNC(op_5050_5)(uae_u32 opcode) /* ADD */
52358: {
52359: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
52360: uae_u32 dstreg = opcode & 7;
52361: OpcodeFamily = 11; CurrentInstrCycles = 12;
52362: {{ uae_u32 src = srcreg;
52363: { uaecptr dsta = m68k_areg(regs, dstreg);
52364: if ((dsta & 1) != 0) {
52365: last_fault_for_exception_3 = dsta;
52366: last_op_for_exception_3 = opcode;
52367: last_addr_for_exception_3 = m68k_getpc() + 2;
52368: Exception(3, 0, M68000_EXC_SRC_CPU);
52369: goto endlabel2979;
52370: }
52371: {{ uae_s16 dst = get_word(dsta);
52372: { refill_prefetch (m68k_getpc(), 2);
52373: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
52374: { int flgs = ((uae_s16)(src)) < 0;
52375: int flgo = ((uae_s16)(dst)) < 0;
52376: int flgn = ((uae_s16)(newv)) < 0;
52377: SET_ZFLG (((uae_s16)(newv)) == 0);
52378: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
52379: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
52380: COPY_CARRY;
52381: SET_NFLG (flgn != 0);
52382: m68k_incpc(2);
52383: fill_prefetch_2 ();
52384: put_word(dsta,newv);
52385: }}}}}}}}endlabel2979: ;
52386: return 12;
52387: }
52388: unsigned long REGPARAM2 CPUFUNC(op_5058_5)(uae_u32 opcode) /* ADD */
52389: {
52390: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
52391: uae_u32 dstreg = opcode & 7;
52392: OpcodeFamily = 11; CurrentInstrCycles = 12;
52393: {{ uae_u32 src = srcreg;
52394: { uaecptr dsta = m68k_areg(regs, dstreg);
52395: if ((dsta & 1) != 0) {
52396: last_fault_for_exception_3 = dsta;
52397: last_op_for_exception_3 = opcode;
52398: last_addr_for_exception_3 = m68k_getpc() + 2;
52399: Exception(3, 0, M68000_EXC_SRC_CPU);
52400: goto endlabel2980;
52401: }
52402: {{ uae_s16 dst = get_word(dsta);
52403: m68k_areg(regs, dstreg) += 2;
52404: { refill_prefetch (m68k_getpc(), 2);
52405: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
52406: { int flgs = ((uae_s16)(src)) < 0;
52407: int flgo = ((uae_s16)(dst)) < 0;
52408: int flgn = ((uae_s16)(newv)) < 0;
52409: SET_ZFLG (((uae_s16)(newv)) == 0);
52410: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
52411: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
52412: COPY_CARRY;
52413: SET_NFLG (flgn != 0);
52414: m68k_incpc(2);
52415: fill_prefetch_2 ();
52416: put_word(dsta,newv);
52417: }}}}}}}}endlabel2980: ;
52418: return 12;
52419: }
52420: unsigned long REGPARAM2 CPUFUNC(op_5060_5)(uae_u32 opcode) /* ADD */
52421: {
52422: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
52423: uae_u32 dstreg = opcode & 7;
52424: OpcodeFamily = 11; CurrentInstrCycles = 14;
52425: {{ uae_u32 src = srcreg;
52426: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
52427: if ((dsta & 1) != 0) {
52428: last_fault_for_exception_3 = dsta;
52429: last_op_for_exception_3 = opcode;
52430: last_addr_for_exception_3 = m68k_getpc() + 2;
52431: Exception(3, 0, M68000_EXC_SRC_CPU);
52432: goto endlabel2981;
52433: }
52434: {{ uae_s16 dst = get_word(dsta);
52435: m68k_areg (regs, dstreg) = dsta;
52436: { refill_prefetch (m68k_getpc(), 2);
52437: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
52438: { int flgs = ((uae_s16)(src)) < 0;
52439: int flgo = ((uae_s16)(dst)) < 0;
52440: int flgn = ((uae_s16)(newv)) < 0;
52441: SET_ZFLG (((uae_s16)(newv)) == 0);
52442: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
52443: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
52444: COPY_CARRY;
52445: SET_NFLG (flgn != 0);
52446: m68k_incpc(2);
52447: fill_prefetch_2 ();
52448: put_word(dsta,newv);
52449: }}}}}}}}endlabel2981: ;
52450: return 14;
52451: }
52452: unsigned long REGPARAM2 CPUFUNC(op_5068_5)(uae_u32 opcode) /* ADD */
52453: {
52454: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
52455: uae_u32 dstreg = opcode & 7;
52456: OpcodeFamily = 11; CurrentInstrCycles = 16;
52457: {{ uae_u32 src = srcreg;
52458: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
52459: if ((dsta & 1) != 0) {
52460: last_fault_for_exception_3 = dsta;
52461: last_op_for_exception_3 = opcode;
52462: last_addr_for_exception_3 = m68k_getpc() + 4;
52463: Exception(3, 0, M68000_EXC_SRC_CPU);
52464: goto endlabel2982;
52465: }
52466: {{ uae_s16 dst = get_word(dsta);
52467: { refill_prefetch (m68k_getpc(), 2);
52468: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
52469: { int flgs = ((uae_s16)(src)) < 0;
52470: int flgo = ((uae_s16)(dst)) < 0;
52471: int flgn = ((uae_s16)(newv)) < 0;
52472: SET_ZFLG (((uae_s16)(newv)) == 0);
52473: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
52474: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
52475: COPY_CARRY;
52476: SET_NFLG (flgn != 0);
52477: m68k_incpc(4);
52478: fill_prefetch_0 ();
52479: put_word(dsta,newv);
52480: }}}}}}}}endlabel2982: ;
52481: return 16;
52482: }
52483: unsigned long REGPARAM2 CPUFUNC(op_5070_5)(uae_u32 opcode) /* ADD */
52484: {
52485: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
52486: uae_u32 dstreg = opcode & 7;
52487: OpcodeFamily = 11; CurrentInstrCycles = 18;
52488: {{ uae_u32 src = srcreg;
52489: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
52490: BusCyclePenalty += 2;
52491: if ((dsta & 1) != 0) {
52492: last_fault_for_exception_3 = dsta;
52493: last_op_for_exception_3 = opcode;
52494: last_addr_for_exception_3 = m68k_getpc() + 4;
52495: Exception(3, 0, M68000_EXC_SRC_CPU);
52496: goto endlabel2983;
52497: }
52498: {{ uae_s16 dst = get_word(dsta);
52499: { refill_prefetch (m68k_getpc(), 2);
52500: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
52501: { int flgs = ((uae_s16)(src)) < 0;
52502: int flgo = ((uae_s16)(dst)) < 0;
52503: int flgn = ((uae_s16)(newv)) < 0;
52504: SET_ZFLG (((uae_s16)(newv)) == 0);
52505: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
52506: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
52507: COPY_CARRY;
52508: SET_NFLG (flgn != 0);
52509: m68k_incpc(4);
52510: fill_prefetch_0 ();
52511: put_word(dsta,newv);
52512: }}}}}}}}endlabel2983: ;
52513: return 18;
52514: }
52515: unsigned long REGPARAM2 CPUFUNC(op_5078_5)(uae_u32 opcode) /* ADD */
52516: {
52517: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
52518: OpcodeFamily = 11; CurrentInstrCycles = 16;
52519: {{ uae_u32 src = srcreg;
52520: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
52521: if ((dsta & 1) != 0) {
52522: last_fault_for_exception_3 = dsta;
52523: last_op_for_exception_3 = opcode;
52524: last_addr_for_exception_3 = m68k_getpc() + 4;
52525: Exception(3, 0, M68000_EXC_SRC_CPU);
52526: goto endlabel2984;
52527: }
52528: {{ uae_s16 dst = get_word(dsta);
52529: { refill_prefetch (m68k_getpc(), 2);
52530: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
52531: { int flgs = ((uae_s16)(src)) < 0;
52532: int flgo = ((uae_s16)(dst)) < 0;
52533: int flgn = ((uae_s16)(newv)) < 0;
52534: SET_ZFLG (((uae_s16)(newv)) == 0);
52535: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
52536: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
52537: COPY_CARRY;
52538: SET_NFLG (flgn != 0);
52539: m68k_incpc(4);
52540: fill_prefetch_0 ();
52541: put_word(dsta,newv);
52542: }}}}}}}}endlabel2984: ;
52543: return 16;
52544: }
52545: unsigned long REGPARAM2 CPUFUNC(op_5079_5)(uae_u32 opcode) /* ADD */
52546: {
52547: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
52548: OpcodeFamily = 11; CurrentInstrCycles = 20;
52549: {{ uae_u32 src = srcreg;
52550: { uaecptr dsta = get_ilong_prefetch(2);
52551: if ((dsta & 1) != 0) {
52552: last_fault_for_exception_3 = dsta;
52553: last_op_for_exception_3 = opcode;
52554: last_addr_for_exception_3 = m68k_getpc() + 6;
52555: Exception(3, 0, M68000_EXC_SRC_CPU);
52556: goto endlabel2985;
52557: }
52558: {{ uae_s16 dst = get_word(dsta);
52559: { refill_prefetch (m68k_getpc(), 2);
52560: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
52561: { int flgs = ((uae_s16)(src)) < 0;
52562: int flgo = ((uae_s16)(dst)) < 0;
52563: int flgn = ((uae_s16)(newv)) < 0;
52564: SET_ZFLG (((uae_s16)(newv)) == 0);
52565: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
52566: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
52567: COPY_CARRY;
52568: SET_NFLG (flgn != 0);
52569: m68k_incpc(6);
52570: fill_prefetch_0 ();
52571: put_word(dsta,newv);
52572: }}}}}}}}endlabel2985: ;
52573: return 20;
52574: }
52575: unsigned long REGPARAM2 CPUFUNC(op_5080_5)(uae_u32 opcode) /* ADD */
52576: {
52577: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
52578: uae_u32 dstreg = opcode & 7;
52579: OpcodeFamily = 11; CurrentInstrCycles = 8;
52580: {{ uae_u32 src = srcreg;
52581: { uae_s32 dst = m68k_dreg(regs, dstreg);
52582: { refill_prefetch (m68k_getpc(), 2);
52583: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
52584: { int flgs = ((uae_s32)(src)) < 0;
52585: int flgo = ((uae_s32)(dst)) < 0;
52586: int flgn = ((uae_s32)(newv)) < 0;
52587: SET_ZFLG (((uae_s32)(newv)) == 0);
52588: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
52589: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
52590: COPY_CARRY;
52591: SET_NFLG (flgn != 0);
52592: m68k_dreg(regs, dstreg) = (newv);
52593: }}}}}}m68k_incpc(2);
52594: fill_prefetch_2 ();
52595: return 8;
52596: }
52597: unsigned long REGPARAM2 CPUFUNC(op_5088_5)(uae_u32 opcode) /* ADDA */
52598: {
52599: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
52600: uae_u32 dstreg = opcode & 7;
52601: OpcodeFamily = 12; CurrentInstrCycles = 8;
52602: {{ uae_u32 src = srcreg;
52603: { uae_s32 dst = m68k_areg(regs, dstreg);
52604: { uae_u32 newv = dst + src;
52605: m68k_areg(regs, dstreg) = (newv);
52606: }}}}m68k_incpc(2);
52607: fill_prefetch_2 ();
52608: return 8;
52609: }
52610: unsigned long REGPARAM2 CPUFUNC(op_5090_5)(uae_u32 opcode) /* ADD */
52611: {
52612: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
52613: uae_u32 dstreg = opcode & 7;
52614: OpcodeFamily = 11; CurrentInstrCycles = 20;
52615: {{ uae_u32 src = srcreg;
52616: { uaecptr dsta = m68k_areg(regs, dstreg);
52617: if ((dsta & 1) != 0) {
52618: last_fault_for_exception_3 = dsta;
52619: last_op_for_exception_3 = opcode;
52620: last_addr_for_exception_3 = m68k_getpc() + 2;
52621: Exception(3, 0, M68000_EXC_SRC_CPU);
52622: goto endlabel2988;
52623: }
52624: {{ uae_s32 dst = get_long(dsta);
52625: { refill_prefetch (m68k_getpc(), 2);
52626: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
52627: { int flgs = ((uae_s32)(src)) < 0;
52628: int flgo = ((uae_s32)(dst)) < 0;
52629: int flgn = ((uae_s32)(newv)) < 0;
52630: SET_ZFLG (((uae_s32)(newv)) == 0);
52631: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
52632: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
52633: COPY_CARRY;
52634: SET_NFLG (flgn != 0);
52635: m68k_incpc(2);
52636: fill_prefetch_2 ();
52637: put_long(dsta,newv);
52638: }}}}}}}}endlabel2988: ;
52639: return 20;
52640: }
52641: unsigned long REGPARAM2 CPUFUNC(op_5098_5)(uae_u32 opcode) /* ADD */
52642: {
52643: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
52644: uae_u32 dstreg = opcode & 7;
52645: OpcodeFamily = 11; CurrentInstrCycles = 20;
52646: {{ uae_u32 src = srcreg;
52647: { uaecptr dsta = m68k_areg(regs, dstreg);
52648: if ((dsta & 1) != 0) {
52649: last_fault_for_exception_3 = dsta;
52650: last_op_for_exception_3 = opcode;
52651: last_addr_for_exception_3 = m68k_getpc() + 2;
52652: Exception(3, 0, M68000_EXC_SRC_CPU);
52653: goto endlabel2989;
52654: }
52655: {{ uae_s32 dst = get_long(dsta);
52656: m68k_areg(regs, dstreg) += 4;
52657: { refill_prefetch (m68k_getpc(), 2);
52658: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
52659: { int flgs = ((uae_s32)(src)) < 0;
52660: int flgo = ((uae_s32)(dst)) < 0;
52661: int flgn = ((uae_s32)(newv)) < 0;
52662: SET_ZFLG (((uae_s32)(newv)) == 0);
52663: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
52664: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
52665: COPY_CARRY;
52666: SET_NFLG (flgn != 0);
52667: m68k_incpc(2);
52668: fill_prefetch_2 ();
52669: put_long(dsta,newv);
52670: }}}}}}}}endlabel2989: ;
52671: return 20;
52672: }
52673: unsigned long REGPARAM2 CPUFUNC(op_50a0_5)(uae_u32 opcode) /* ADD */
52674: {
52675: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
52676: uae_u32 dstreg = opcode & 7;
52677: OpcodeFamily = 11; CurrentInstrCycles = 22;
52678: {{ uae_u32 src = srcreg;
52679: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
52680: if ((dsta & 1) != 0) {
52681: last_fault_for_exception_3 = dsta;
52682: last_op_for_exception_3 = opcode;
52683: last_addr_for_exception_3 = m68k_getpc() + 2;
52684: Exception(3, 0, M68000_EXC_SRC_CPU);
52685: goto endlabel2990;
52686: }
52687: {{ uae_s32 dst = get_long(dsta);
52688: m68k_areg (regs, dstreg) = dsta;
52689: { refill_prefetch (m68k_getpc(), 2);
52690: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
52691: { int flgs = ((uae_s32)(src)) < 0;
52692: int flgo = ((uae_s32)(dst)) < 0;
52693: int flgn = ((uae_s32)(newv)) < 0;
52694: SET_ZFLG (((uae_s32)(newv)) == 0);
52695: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
52696: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
52697: COPY_CARRY;
52698: SET_NFLG (flgn != 0);
52699: m68k_incpc(2);
52700: fill_prefetch_2 ();
52701: put_long(dsta,newv);
52702: }}}}}}}}endlabel2990: ;
52703: return 22;
52704: }
52705: unsigned long REGPARAM2 CPUFUNC(op_50a8_5)(uae_u32 opcode) /* ADD */
52706: {
52707: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
52708: uae_u32 dstreg = opcode & 7;
52709: OpcodeFamily = 11; CurrentInstrCycles = 24;
52710: {{ uae_u32 src = srcreg;
52711: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
52712: if ((dsta & 1) != 0) {
52713: last_fault_for_exception_3 = dsta;
52714: last_op_for_exception_3 = opcode;
52715: last_addr_for_exception_3 = m68k_getpc() + 4;
52716: Exception(3, 0, M68000_EXC_SRC_CPU);
52717: goto endlabel2991;
52718: }
52719: {{ uae_s32 dst = get_long(dsta);
52720: { refill_prefetch (m68k_getpc(), 2);
52721: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
52722: { int flgs = ((uae_s32)(src)) < 0;
52723: int flgo = ((uae_s32)(dst)) < 0;
52724: int flgn = ((uae_s32)(newv)) < 0;
52725: SET_ZFLG (((uae_s32)(newv)) == 0);
52726: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
52727: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
52728: COPY_CARRY;
52729: SET_NFLG (flgn != 0);
52730: m68k_incpc(4);
52731: fill_prefetch_0 ();
52732: put_long(dsta,newv);
52733: }}}}}}}}endlabel2991: ;
52734: return 24;
52735: }
52736: unsigned long REGPARAM2 CPUFUNC(op_50b0_5)(uae_u32 opcode) /* ADD */
52737: {
52738: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
52739: uae_u32 dstreg = opcode & 7;
52740: OpcodeFamily = 11; CurrentInstrCycles = 26;
52741: {{ uae_u32 src = srcreg;
52742: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
52743: BusCyclePenalty += 2;
52744: if ((dsta & 1) != 0) {
52745: last_fault_for_exception_3 = dsta;
52746: last_op_for_exception_3 = opcode;
52747: last_addr_for_exception_3 = m68k_getpc() + 4;
52748: Exception(3, 0, M68000_EXC_SRC_CPU);
52749: goto endlabel2992;
52750: }
52751: {{ uae_s32 dst = get_long(dsta);
52752: { refill_prefetch (m68k_getpc(), 2);
52753: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
52754: { int flgs = ((uae_s32)(src)) < 0;
52755: int flgo = ((uae_s32)(dst)) < 0;
52756: int flgn = ((uae_s32)(newv)) < 0;
52757: SET_ZFLG (((uae_s32)(newv)) == 0);
52758: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
52759: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
52760: COPY_CARRY;
52761: SET_NFLG (flgn != 0);
52762: m68k_incpc(4);
52763: fill_prefetch_0 ();
52764: put_long(dsta,newv);
52765: }}}}}}}}endlabel2992: ;
52766: return 26;
52767: }
52768: unsigned long REGPARAM2 CPUFUNC(op_50b8_5)(uae_u32 opcode) /* ADD */
52769: {
52770: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
52771: OpcodeFamily = 11; CurrentInstrCycles = 24;
52772: {{ uae_u32 src = srcreg;
52773: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
52774: if ((dsta & 1) != 0) {
52775: last_fault_for_exception_3 = dsta;
52776: last_op_for_exception_3 = opcode;
52777: last_addr_for_exception_3 = m68k_getpc() + 4;
52778: Exception(3, 0, M68000_EXC_SRC_CPU);
52779: goto endlabel2993;
52780: }
52781: {{ uae_s32 dst = get_long(dsta);
52782: { refill_prefetch (m68k_getpc(), 2);
52783: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
52784: { int flgs = ((uae_s32)(src)) < 0;
52785: int flgo = ((uae_s32)(dst)) < 0;
52786: int flgn = ((uae_s32)(newv)) < 0;
52787: SET_ZFLG (((uae_s32)(newv)) == 0);
52788: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
52789: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
52790: COPY_CARRY;
52791: SET_NFLG (flgn != 0);
52792: m68k_incpc(4);
52793: fill_prefetch_0 ();
52794: put_long(dsta,newv);
52795: }}}}}}}}endlabel2993: ;
52796: return 24;
52797: }
52798: unsigned long REGPARAM2 CPUFUNC(op_50b9_5)(uae_u32 opcode) /* ADD */
52799: {
52800: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
52801: OpcodeFamily = 11; CurrentInstrCycles = 28;
52802: {{ uae_u32 src = srcreg;
52803: { uaecptr dsta = get_ilong_prefetch(2);
52804: if ((dsta & 1) != 0) {
52805: last_fault_for_exception_3 = dsta;
52806: last_op_for_exception_3 = opcode;
52807: last_addr_for_exception_3 = m68k_getpc() + 6;
52808: Exception(3, 0, M68000_EXC_SRC_CPU);
52809: goto endlabel2994;
52810: }
52811: {{ uae_s32 dst = get_long(dsta);
52812: { refill_prefetch (m68k_getpc(), 2);
52813: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
52814: { int flgs = ((uae_s32)(src)) < 0;
52815: int flgo = ((uae_s32)(dst)) < 0;
52816: int flgn = ((uae_s32)(newv)) < 0;
52817: SET_ZFLG (((uae_s32)(newv)) == 0);
52818: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
52819: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
52820: COPY_CARRY;
52821: SET_NFLG (flgn != 0);
52822: m68k_incpc(6);
52823: fill_prefetch_0 ();
52824: put_long(dsta,newv);
52825: }}}}}}}}endlabel2994: ;
52826: return 28;
52827: }
52828: unsigned long REGPARAM2 CPUFUNC(op_50c0_5)(uae_u32 opcode) /* Scc */
52829: {
52830: uae_u32 srcreg = (opcode & 7);
52831: OpcodeFamily = 59; CurrentInstrCycles = 4;
52832: {{{ int val = cctrue(0) ? 0xff : 0;
52833: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
52834: if (val) { m68k_incpc(2) ; return 4+2; }
52835: }}}m68k_incpc(2);
52836: fill_prefetch_2 ();
52837: return 4;
52838: }
52839: unsigned long REGPARAM2 CPUFUNC(op_50c8_5)(uae_u32 opcode) /* DBcc */
52840: {
52841: uae_u32 srcreg = (opcode & 7);
52842: OpcodeFamily = 58; CurrentInstrCycles = 12;
52843: {{ uae_s16 src = m68k_dreg(regs, srcreg);
52844: { uae_s16 offs = get_iword_prefetch(2);
52845: if (!cctrue(0)) {
52846: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
52847: if (src) {
52848: if (offs & 1) {
52849: last_addr_for_exception_3 = m68k_getpc() + 2 + 2;
52850: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2;
52851: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel2996;
52852: }
52853: m68k_incpc((uae_s32)offs + 2);
52854: fill_prefetch_0 ();
52855: return 10;
52856: } else {
52857: m68k_incpc(4);
52858: fill_prefetch_0 ();
52859: return 14;
52860: }
52861: }
52862: }}}m68k_incpc(4);
52863: fill_prefetch_0 ();
52864: endlabel2996: ;
52865: return 12;
52866: }
52867: unsigned long REGPARAM2 CPUFUNC(op_50d0_5)(uae_u32 opcode) /* Scc */
52868: {
52869: uae_u32 srcreg = (opcode & 7);
52870: OpcodeFamily = 59; CurrentInstrCycles = 12;
52871: {{ uaecptr srca = m68k_areg(regs, srcreg);
52872: { int val = cctrue(0) ? 0xff : 0;
52873: m68k_incpc(2);
52874: fill_prefetch_2 ();
52875: put_byte(srca,val);
52876: }}}return 12;
52877: }
52878: unsigned long REGPARAM2 CPUFUNC(op_50d8_5)(uae_u32 opcode) /* Scc */
52879: {
52880: uae_u32 srcreg = (opcode & 7);
52881: OpcodeFamily = 59; CurrentInstrCycles = 12;
52882: {{ uaecptr srca = m68k_areg(regs, srcreg);
52883: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
52884: { int val = cctrue(0) ? 0xff : 0;
52885: m68k_incpc(2);
52886: fill_prefetch_2 ();
52887: put_byte(srca,val);
52888: }}}return 12;
52889: }
52890: unsigned long REGPARAM2 CPUFUNC(op_50e0_5)(uae_u32 opcode) /* Scc */
52891: {
52892: uae_u32 srcreg = (opcode & 7);
52893: OpcodeFamily = 59; CurrentInstrCycles = 14;
52894: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
52895: m68k_areg (regs, srcreg) = srca;
52896: { int val = cctrue(0) ? 0xff : 0;
52897: m68k_incpc(2);
52898: fill_prefetch_2 ();
52899: put_byte(srca,val);
52900: }}}return 14;
52901: }
52902: unsigned long REGPARAM2 CPUFUNC(op_50e8_5)(uae_u32 opcode) /* Scc */
52903: {
52904: uae_u32 srcreg = (opcode & 7);
52905: OpcodeFamily = 59; CurrentInstrCycles = 16;
52906: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
52907: { int val = cctrue(0) ? 0xff : 0;
52908: m68k_incpc(4);
52909: fill_prefetch_0 ();
52910: put_byte(srca,val);
52911: }}}return 16;
52912: }
52913: unsigned long REGPARAM2 CPUFUNC(op_50f0_5)(uae_u32 opcode) /* Scc */
52914: {
52915: uae_u32 srcreg = (opcode & 7);
52916: OpcodeFamily = 59; CurrentInstrCycles = 18;
52917: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
52918: BusCyclePenalty += 2;
52919: { int val = cctrue(0) ? 0xff : 0;
52920: m68k_incpc(4);
52921: fill_prefetch_0 ();
52922: put_byte(srca,val);
52923: }}}return 18;
52924: }
52925: unsigned long REGPARAM2 CPUFUNC(op_50f8_5)(uae_u32 opcode) /* Scc */
52926: {
52927: OpcodeFamily = 59; CurrentInstrCycles = 16;
52928: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
52929: { int val = cctrue(0) ? 0xff : 0;
52930: m68k_incpc(4);
52931: fill_prefetch_0 ();
52932: put_byte(srca,val);
52933: }}}return 16;
52934: }
52935: unsigned long REGPARAM2 CPUFUNC(op_50f9_5)(uae_u32 opcode) /* Scc */
52936: {
52937: OpcodeFamily = 59; CurrentInstrCycles = 20;
52938: {{ uaecptr srca = get_ilong_prefetch(2);
52939: { int val = cctrue(0) ? 0xff : 0;
52940: m68k_incpc(6);
52941: fill_prefetch_0 ();
52942: put_byte(srca,val);
52943: }}}return 20;
52944: }
52945: unsigned long REGPARAM2 CPUFUNC(op_5100_5)(uae_u32 opcode) /* SUB */
52946: {
52947: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
52948: uae_u32 dstreg = opcode & 7;
52949: OpcodeFamily = 7; CurrentInstrCycles = 4;
52950: {{ uae_u32 src = srcreg;
52951: { uae_s8 dst = m68k_dreg(regs, dstreg);
52952: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
52953: { int flgs = ((uae_s8)(src)) < 0;
52954: int flgo = ((uae_s8)(dst)) < 0;
52955: int flgn = ((uae_s8)(newv)) < 0;
52956: SET_ZFLG (((uae_s8)(newv)) == 0);
52957: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
52958: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
52959: COPY_CARRY;
52960: SET_NFLG (flgn != 0);
52961: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
52962: }}}}}}m68k_incpc(2);
52963: fill_prefetch_2 ();
52964: return 4;
52965: }
52966: unsigned long REGPARAM2 CPUFUNC(op_5110_5)(uae_u32 opcode) /* SUB */
52967: {
52968: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
52969: uae_u32 dstreg = opcode & 7;
52970: OpcodeFamily = 7; CurrentInstrCycles = 12;
52971: {{ uae_u32 src = srcreg;
52972: { uaecptr dsta = m68k_areg(regs, dstreg);
52973: { uae_s8 dst = get_byte(dsta);
52974: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
52975: { int flgs = ((uae_s8)(src)) < 0;
52976: int flgo = ((uae_s8)(dst)) < 0;
52977: int flgn = ((uae_s8)(newv)) < 0;
52978: SET_ZFLG (((uae_s8)(newv)) == 0);
52979: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
52980: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
52981: COPY_CARRY;
52982: SET_NFLG (flgn != 0);
52983: m68k_incpc(2);
52984: fill_prefetch_2 ();
52985: put_byte(dsta,newv);
52986: }}}}}}}return 12;
52987: }
52988: unsigned long REGPARAM2 CPUFUNC(op_5118_5)(uae_u32 opcode) /* SUB */
52989: {
52990: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
52991: uae_u32 dstreg = opcode & 7;
52992: OpcodeFamily = 7; CurrentInstrCycles = 12;
52993: {{ uae_u32 src = srcreg;
52994: { uaecptr dsta = m68k_areg(regs, dstreg);
52995: { uae_s8 dst = get_byte(dsta);
52996: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
52997: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
52998: { int flgs = ((uae_s8)(src)) < 0;
52999: int flgo = ((uae_s8)(dst)) < 0;
53000: int flgn = ((uae_s8)(newv)) < 0;
53001: SET_ZFLG (((uae_s8)(newv)) == 0);
53002: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
53003: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
53004: COPY_CARRY;
53005: SET_NFLG (flgn != 0);
53006: m68k_incpc(2);
53007: fill_prefetch_2 ();
53008: put_byte(dsta,newv);
53009: }}}}}}}return 12;
53010: }
53011: unsigned long REGPARAM2 CPUFUNC(op_5120_5)(uae_u32 opcode) /* SUB */
53012: {
53013: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
53014: uae_u32 dstreg = opcode & 7;
53015: OpcodeFamily = 7; CurrentInstrCycles = 14;
53016: {{ uae_u32 src = srcreg;
53017: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
53018: { uae_s8 dst = get_byte(dsta);
53019: m68k_areg (regs, dstreg) = dsta;
53020: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
53021: { int flgs = ((uae_s8)(src)) < 0;
53022: int flgo = ((uae_s8)(dst)) < 0;
53023: int flgn = ((uae_s8)(newv)) < 0;
53024: SET_ZFLG (((uae_s8)(newv)) == 0);
53025: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
53026: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
53027: COPY_CARRY;
53028: SET_NFLG (flgn != 0);
53029: m68k_incpc(2);
53030: fill_prefetch_2 ();
53031: put_byte(dsta,newv);
53032: }}}}}}}return 14;
53033: }
53034: unsigned long REGPARAM2 CPUFUNC(op_5128_5)(uae_u32 opcode) /* SUB */
53035: {
53036: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
53037: uae_u32 dstreg = opcode & 7;
53038: OpcodeFamily = 7; CurrentInstrCycles = 16;
53039: {{ uae_u32 src = srcreg;
53040: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
53041: { uae_s8 dst = get_byte(dsta);
53042: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
53043: { int flgs = ((uae_s8)(src)) < 0;
53044: int flgo = ((uae_s8)(dst)) < 0;
53045: int flgn = ((uae_s8)(newv)) < 0;
53046: SET_ZFLG (((uae_s8)(newv)) == 0);
53047: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
53048: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
53049: COPY_CARRY;
53050: SET_NFLG (flgn != 0);
53051: m68k_incpc(4);
53052: fill_prefetch_0 ();
53053: put_byte(dsta,newv);
53054: }}}}}}}return 16;
53055: }
53056: unsigned long REGPARAM2 CPUFUNC(op_5130_5)(uae_u32 opcode) /* SUB */
53057: {
53058: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
53059: uae_u32 dstreg = opcode & 7;
53060: OpcodeFamily = 7; CurrentInstrCycles = 18;
53061: {{ uae_u32 src = srcreg;
53062: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
53063: BusCyclePenalty += 2;
53064: { uae_s8 dst = get_byte(dsta);
53065: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
53066: { int flgs = ((uae_s8)(src)) < 0;
53067: int flgo = ((uae_s8)(dst)) < 0;
53068: int flgn = ((uae_s8)(newv)) < 0;
53069: SET_ZFLG (((uae_s8)(newv)) == 0);
53070: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
53071: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
53072: COPY_CARRY;
53073: SET_NFLG (flgn != 0);
53074: m68k_incpc(4);
53075: fill_prefetch_0 ();
53076: put_byte(dsta,newv);
53077: }}}}}}}return 18;
53078: }
53079: unsigned long REGPARAM2 CPUFUNC(op_5138_5)(uae_u32 opcode) /* SUB */
53080: {
53081: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
53082: OpcodeFamily = 7; CurrentInstrCycles = 16;
53083: {{ uae_u32 src = srcreg;
53084: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
53085: { uae_s8 dst = get_byte(dsta);
53086: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
53087: { int flgs = ((uae_s8)(src)) < 0;
53088: int flgo = ((uae_s8)(dst)) < 0;
53089: int flgn = ((uae_s8)(newv)) < 0;
53090: SET_ZFLG (((uae_s8)(newv)) == 0);
53091: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
53092: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
53093: COPY_CARRY;
53094: SET_NFLG (flgn != 0);
53095: m68k_incpc(4);
53096: fill_prefetch_0 ();
53097: put_byte(dsta,newv);
53098: }}}}}}}return 16;
53099: }
53100: unsigned long REGPARAM2 CPUFUNC(op_5139_5)(uae_u32 opcode) /* SUB */
53101: {
53102: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
53103: OpcodeFamily = 7; CurrentInstrCycles = 20;
53104: {{ uae_u32 src = srcreg;
53105: { uaecptr dsta = get_ilong_prefetch(2);
53106: { uae_s8 dst = get_byte(dsta);
53107: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
53108: { int flgs = ((uae_s8)(src)) < 0;
53109: int flgo = ((uae_s8)(dst)) < 0;
53110: int flgn = ((uae_s8)(newv)) < 0;
53111: SET_ZFLG (((uae_s8)(newv)) == 0);
53112: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
53113: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
53114: COPY_CARRY;
53115: SET_NFLG (flgn != 0);
53116: m68k_incpc(6);
53117: fill_prefetch_0 ();
53118: put_byte(dsta,newv);
53119: }}}}}}}return 20;
53120: }
53121: unsigned long REGPARAM2 CPUFUNC(op_5140_5)(uae_u32 opcode) /* SUB */
53122: {
53123: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
53124: uae_u32 dstreg = opcode & 7;
53125: OpcodeFamily = 7; CurrentInstrCycles = 4;
53126: {{ uae_u32 src = srcreg;
53127: { uae_s16 dst = m68k_dreg(regs, dstreg);
53128: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
53129: { int flgs = ((uae_s16)(src)) < 0;
53130: int flgo = ((uae_s16)(dst)) < 0;
53131: int flgn = ((uae_s16)(newv)) < 0;
53132: SET_ZFLG (((uae_s16)(newv)) == 0);
53133: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
53134: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
53135: COPY_CARRY;
53136: SET_NFLG (flgn != 0);
53137: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
53138: }}}}}}m68k_incpc(2);
53139: fill_prefetch_2 ();
53140: return 4;
53141: }
53142: unsigned long REGPARAM2 CPUFUNC(op_5148_5)(uae_u32 opcode) /* SUBA */
53143: {
53144: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
53145: uae_u32 dstreg = opcode & 7;
53146: OpcodeFamily = 8; CurrentInstrCycles = 8;
53147: {{ uae_u32 src = srcreg;
53148: { uae_s32 dst = m68k_areg(regs, dstreg);
53149: { uae_u32 newv = dst - src;
53150: m68k_areg(regs, dstreg) = (newv);
53151: }}}}m68k_incpc(2);
53152: fill_prefetch_2 ();
53153: return 8;
53154: }
53155: unsigned long REGPARAM2 CPUFUNC(op_5150_5)(uae_u32 opcode) /* SUB */
53156: {
53157: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
53158: uae_u32 dstreg = opcode & 7;
53159: OpcodeFamily = 7; CurrentInstrCycles = 12;
53160: {{ uae_u32 src = srcreg;
53161: { uaecptr dsta = m68k_areg(regs, dstreg);
53162: if ((dsta & 1) != 0) {
53163: last_fault_for_exception_3 = dsta;
53164: last_op_for_exception_3 = opcode;
53165: last_addr_for_exception_3 = m68k_getpc() + 2;
53166: Exception(3, 0, M68000_EXC_SRC_CPU);
53167: goto endlabel3014;
53168: }
53169: {{ uae_s16 dst = get_word(dsta);
53170: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
53171: { int flgs = ((uae_s16)(src)) < 0;
53172: int flgo = ((uae_s16)(dst)) < 0;
53173: int flgn = ((uae_s16)(newv)) < 0;
53174: SET_ZFLG (((uae_s16)(newv)) == 0);
53175: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
53176: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
53177: COPY_CARRY;
53178: SET_NFLG (flgn != 0);
53179: m68k_incpc(2);
53180: fill_prefetch_2 ();
53181: put_word(dsta,newv);
53182: }}}}}}}}endlabel3014: ;
53183: return 12;
53184: }
53185: unsigned long REGPARAM2 CPUFUNC(op_5158_5)(uae_u32 opcode) /* SUB */
53186: {
53187: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
53188: uae_u32 dstreg = opcode & 7;
53189: OpcodeFamily = 7; CurrentInstrCycles = 12;
53190: {{ uae_u32 src = srcreg;
53191: { uaecptr dsta = m68k_areg(regs, dstreg);
53192: if ((dsta & 1) != 0) {
53193: last_fault_for_exception_3 = dsta;
53194: last_op_for_exception_3 = opcode;
53195: last_addr_for_exception_3 = m68k_getpc() + 2;
53196: Exception(3, 0, M68000_EXC_SRC_CPU);
53197: goto endlabel3015;
53198: }
53199: {{ uae_s16 dst = get_word(dsta);
53200: m68k_areg(regs, dstreg) += 2;
53201: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
53202: { int flgs = ((uae_s16)(src)) < 0;
53203: int flgo = ((uae_s16)(dst)) < 0;
53204: int flgn = ((uae_s16)(newv)) < 0;
53205: SET_ZFLG (((uae_s16)(newv)) == 0);
53206: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
53207: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
53208: COPY_CARRY;
53209: SET_NFLG (flgn != 0);
53210: m68k_incpc(2);
53211: fill_prefetch_2 ();
53212: put_word(dsta,newv);
53213: }}}}}}}}endlabel3015: ;
53214: return 12;
53215: }
53216: unsigned long REGPARAM2 CPUFUNC(op_5160_5)(uae_u32 opcode) /* SUB */
53217: {
53218: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
53219: uae_u32 dstreg = opcode & 7;
53220: OpcodeFamily = 7; CurrentInstrCycles = 14;
53221: {{ uae_u32 src = srcreg;
53222: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
53223: if ((dsta & 1) != 0) {
53224: last_fault_for_exception_3 = dsta;
53225: last_op_for_exception_3 = opcode;
53226: last_addr_for_exception_3 = m68k_getpc() + 2;
53227: Exception(3, 0, M68000_EXC_SRC_CPU);
53228: goto endlabel3016;
53229: }
53230: {{ uae_s16 dst = get_word(dsta);
53231: m68k_areg (regs, dstreg) = dsta;
53232: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
53233: { int flgs = ((uae_s16)(src)) < 0;
53234: int flgo = ((uae_s16)(dst)) < 0;
53235: int flgn = ((uae_s16)(newv)) < 0;
53236: SET_ZFLG (((uae_s16)(newv)) == 0);
53237: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
53238: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
53239: COPY_CARRY;
53240: SET_NFLG (flgn != 0);
53241: m68k_incpc(2);
53242: fill_prefetch_2 ();
53243: put_word(dsta,newv);
53244: }}}}}}}}endlabel3016: ;
53245: return 14;
53246: }
53247: unsigned long REGPARAM2 CPUFUNC(op_5168_5)(uae_u32 opcode) /* SUB */
53248: {
53249: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
53250: uae_u32 dstreg = opcode & 7;
53251: OpcodeFamily = 7; CurrentInstrCycles = 16;
53252: {{ uae_u32 src = srcreg;
53253: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
53254: if ((dsta & 1) != 0) {
53255: last_fault_for_exception_3 = dsta;
53256: last_op_for_exception_3 = opcode;
53257: last_addr_for_exception_3 = m68k_getpc() + 4;
53258: Exception(3, 0, M68000_EXC_SRC_CPU);
53259: goto endlabel3017;
53260: }
53261: {{ uae_s16 dst = get_word(dsta);
53262: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
53263: { int flgs = ((uae_s16)(src)) < 0;
53264: int flgo = ((uae_s16)(dst)) < 0;
53265: int flgn = ((uae_s16)(newv)) < 0;
53266: SET_ZFLG (((uae_s16)(newv)) == 0);
53267: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
53268: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
53269: COPY_CARRY;
53270: SET_NFLG (flgn != 0);
53271: m68k_incpc(4);
53272: fill_prefetch_0 ();
53273: put_word(dsta,newv);
53274: }}}}}}}}endlabel3017: ;
53275: return 16;
53276: }
53277: unsigned long REGPARAM2 CPUFUNC(op_5170_5)(uae_u32 opcode) /* SUB */
53278: {
53279: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
53280: uae_u32 dstreg = opcode & 7;
53281: OpcodeFamily = 7; CurrentInstrCycles = 18;
53282: {{ uae_u32 src = srcreg;
53283: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
53284: BusCyclePenalty += 2;
53285: if ((dsta & 1) != 0) {
53286: last_fault_for_exception_3 = dsta;
53287: last_op_for_exception_3 = opcode;
53288: last_addr_for_exception_3 = m68k_getpc() + 4;
53289: Exception(3, 0, M68000_EXC_SRC_CPU);
53290: goto endlabel3018;
53291: }
53292: {{ uae_s16 dst = get_word(dsta);
53293: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
53294: { int flgs = ((uae_s16)(src)) < 0;
53295: int flgo = ((uae_s16)(dst)) < 0;
53296: int flgn = ((uae_s16)(newv)) < 0;
53297: SET_ZFLG (((uae_s16)(newv)) == 0);
53298: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
53299: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
53300: COPY_CARRY;
53301: SET_NFLG (flgn != 0);
53302: m68k_incpc(4);
53303: fill_prefetch_0 ();
53304: put_word(dsta,newv);
53305: }}}}}}}}endlabel3018: ;
53306: return 18;
53307: }
53308: unsigned long REGPARAM2 CPUFUNC(op_5178_5)(uae_u32 opcode) /* SUB */
53309: {
53310: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
53311: OpcodeFamily = 7; CurrentInstrCycles = 16;
53312: {{ uae_u32 src = srcreg;
53313: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
53314: if ((dsta & 1) != 0) {
53315: last_fault_for_exception_3 = dsta;
53316: last_op_for_exception_3 = opcode;
53317: last_addr_for_exception_3 = m68k_getpc() + 4;
53318: Exception(3, 0, M68000_EXC_SRC_CPU);
53319: goto endlabel3019;
53320: }
53321: {{ uae_s16 dst = get_word(dsta);
53322: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
53323: { int flgs = ((uae_s16)(src)) < 0;
53324: int flgo = ((uae_s16)(dst)) < 0;
53325: int flgn = ((uae_s16)(newv)) < 0;
53326: SET_ZFLG (((uae_s16)(newv)) == 0);
53327: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
53328: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
53329: COPY_CARRY;
53330: SET_NFLG (flgn != 0);
53331: m68k_incpc(4);
53332: fill_prefetch_0 ();
53333: put_word(dsta,newv);
53334: }}}}}}}}endlabel3019: ;
53335: return 16;
53336: }
53337: unsigned long REGPARAM2 CPUFUNC(op_5179_5)(uae_u32 opcode) /* SUB */
53338: {
53339: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
53340: OpcodeFamily = 7; CurrentInstrCycles = 20;
53341: {{ uae_u32 src = srcreg;
53342: { uaecptr dsta = get_ilong_prefetch(2);
53343: if ((dsta & 1) != 0) {
53344: last_fault_for_exception_3 = dsta;
53345: last_op_for_exception_3 = opcode;
53346: last_addr_for_exception_3 = m68k_getpc() + 6;
53347: Exception(3, 0, M68000_EXC_SRC_CPU);
53348: goto endlabel3020;
53349: }
53350: {{ uae_s16 dst = get_word(dsta);
53351: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
53352: { int flgs = ((uae_s16)(src)) < 0;
53353: int flgo = ((uae_s16)(dst)) < 0;
53354: int flgn = ((uae_s16)(newv)) < 0;
53355: SET_ZFLG (((uae_s16)(newv)) == 0);
53356: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
53357: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
53358: COPY_CARRY;
53359: SET_NFLG (flgn != 0);
53360: m68k_incpc(6);
53361: fill_prefetch_0 ();
53362: put_word(dsta,newv);
53363: }}}}}}}}endlabel3020: ;
53364: return 20;
53365: }
53366: unsigned long REGPARAM2 CPUFUNC(op_5180_5)(uae_u32 opcode) /* SUB */
53367: {
53368: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
53369: uae_u32 dstreg = opcode & 7;
53370: OpcodeFamily = 7; CurrentInstrCycles = 8;
53371: {{ uae_u32 src = srcreg;
53372: { uae_s32 dst = m68k_dreg(regs, dstreg);
53373: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
53374: { int flgs = ((uae_s32)(src)) < 0;
53375: int flgo = ((uae_s32)(dst)) < 0;
53376: int flgn = ((uae_s32)(newv)) < 0;
53377: SET_ZFLG (((uae_s32)(newv)) == 0);
53378: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
53379: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
53380: COPY_CARRY;
53381: SET_NFLG (flgn != 0);
53382: m68k_dreg(regs, dstreg) = (newv);
53383: }}}}}}m68k_incpc(2);
53384: fill_prefetch_2 ();
53385: return 8;
53386: }
53387: unsigned long REGPARAM2 CPUFUNC(op_5188_5)(uae_u32 opcode) /* SUBA */
53388: {
53389: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
53390: uae_u32 dstreg = opcode & 7;
53391: OpcodeFamily = 8; CurrentInstrCycles = 8;
53392: {{ uae_u32 src = srcreg;
53393: { uae_s32 dst = m68k_areg(regs, dstreg);
53394: { uae_u32 newv = dst - src;
53395: m68k_areg(regs, dstreg) = (newv);
53396: }}}}m68k_incpc(2);
53397: fill_prefetch_2 ();
53398: return 8;
53399: }
53400: unsigned long REGPARAM2 CPUFUNC(op_5190_5)(uae_u32 opcode) /* SUB */
53401: {
53402: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
53403: uae_u32 dstreg = opcode & 7;
53404: OpcodeFamily = 7; CurrentInstrCycles = 20;
53405: {{ uae_u32 src = srcreg;
53406: { uaecptr dsta = m68k_areg(regs, dstreg);
53407: if ((dsta & 1) != 0) {
53408: last_fault_for_exception_3 = dsta;
53409: last_op_for_exception_3 = opcode;
53410: last_addr_for_exception_3 = m68k_getpc() + 2;
53411: Exception(3, 0, M68000_EXC_SRC_CPU);
53412: goto endlabel3023;
53413: }
53414: {{ uae_s32 dst = get_long(dsta);
53415: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
53416: { int flgs = ((uae_s32)(src)) < 0;
53417: int flgo = ((uae_s32)(dst)) < 0;
53418: int flgn = ((uae_s32)(newv)) < 0;
53419: SET_ZFLG (((uae_s32)(newv)) == 0);
53420: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
53421: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
53422: COPY_CARRY;
53423: SET_NFLG (flgn != 0);
53424: m68k_incpc(2);
53425: fill_prefetch_2 ();
53426: put_long(dsta,newv);
53427: }}}}}}}}endlabel3023: ;
53428: return 20;
53429: }
53430: unsigned long REGPARAM2 CPUFUNC(op_5198_5)(uae_u32 opcode) /* SUB */
53431: {
53432: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
53433: uae_u32 dstreg = opcode & 7;
53434: OpcodeFamily = 7; CurrentInstrCycles = 20;
53435: {{ uae_u32 src = srcreg;
53436: { uaecptr dsta = m68k_areg(regs, dstreg);
53437: if ((dsta & 1) != 0) {
53438: last_fault_for_exception_3 = dsta;
53439: last_op_for_exception_3 = opcode;
53440: last_addr_for_exception_3 = m68k_getpc() + 2;
53441: Exception(3, 0, M68000_EXC_SRC_CPU);
53442: goto endlabel3024;
53443: }
53444: {{ uae_s32 dst = get_long(dsta);
53445: m68k_areg(regs, dstreg) += 4;
53446: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
53447: { int flgs = ((uae_s32)(src)) < 0;
53448: int flgo = ((uae_s32)(dst)) < 0;
53449: int flgn = ((uae_s32)(newv)) < 0;
53450: SET_ZFLG (((uae_s32)(newv)) == 0);
53451: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
53452: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
53453: COPY_CARRY;
53454: SET_NFLG (flgn != 0);
53455: m68k_incpc(2);
53456: fill_prefetch_2 ();
53457: put_long(dsta,newv);
53458: }}}}}}}}endlabel3024: ;
53459: return 20;
53460: }
53461: unsigned long REGPARAM2 CPUFUNC(op_51a0_5)(uae_u32 opcode) /* SUB */
53462: {
53463: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
53464: uae_u32 dstreg = opcode & 7;
53465: OpcodeFamily = 7; CurrentInstrCycles = 22;
53466: {{ uae_u32 src = srcreg;
53467: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
53468: if ((dsta & 1) != 0) {
53469: last_fault_for_exception_3 = dsta;
53470: last_op_for_exception_3 = opcode;
53471: last_addr_for_exception_3 = m68k_getpc() + 2;
53472: Exception(3, 0, M68000_EXC_SRC_CPU);
53473: goto endlabel3025;
53474: }
53475: {{ uae_s32 dst = get_long(dsta);
53476: m68k_areg (regs, dstreg) = dsta;
53477: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
53478: { int flgs = ((uae_s32)(src)) < 0;
53479: int flgo = ((uae_s32)(dst)) < 0;
53480: int flgn = ((uae_s32)(newv)) < 0;
53481: SET_ZFLG (((uae_s32)(newv)) == 0);
53482: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
53483: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
53484: COPY_CARRY;
53485: SET_NFLG (flgn != 0);
53486: m68k_incpc(2);
53487: fill_prefetch_2 ();
53488: put_long(dsta,newv);
53489: }}}}}}}}endlabel3025: ;
53490: return 22;
53491: }
53492: unsigned long REGPARAM2 CPUFUNC(op_51a8_5)(uae_u32 opcode) /* SUB */
53493: {
53494: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
53495: uae_u32 dstreg = opcode & 7;
53496: OpcodeFamily = 7; CurrentInstrCycles = 24;
53497: {{ uae_u32 src = srcreg;
53498: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
53499: if ((dsta & 1) != 0) {
53500: last_fault_for_exception_3 = dsta;
53501: last_op_for_exception_3 = opcode;
53502: last_addr_for_exception_3 = m68k_getpc() + 4;
53503: Exception(3, 0, M68000_EXC_SRC_CPU);
53504: goto endlabel3026;
53505: }
53506: {{ uae_s32 dst = get_long(dsta);
53507: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
53508: { int flgs = ((uae_s32)(src)) < 0;
53509: int flgo = ((uae_s32)(dst)) < 0;
53510: int flgn = ((uae_s32)(newv)) < 0;
53511: SET_ZFLG (((uae_s32)(newv)) == 0);
53512: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
53513: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
53514: COPY_CARRY;
53515: SET_NFLG (flgn != 0);
53516: m68k_incpc(4);
53517: fill_prefetch_0 ();
53518: put_long(dsta,newv);
53519: }}}}}}}}endlabel3026: ;
53520: return 24;
53521: }
53522: unsigned long REGPARAM2 CPUFUNC(op_51b0_5)(uae_u32 opcode) /* SUB */
53523: {
53524: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
53525: uae_u32 dstreg = opcode & 7;
53526: OpcodeFamily = 7; CurrentInstrCycles = 26;
53527: {{ uae_u32 src = srcreg;
53528: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
53529: BusCyclePenalty += 2;
53530: if ((dsta & 1) != 0) {
53531: last_fault_for_exception_3 = dsta;
53532: last_op_for_exception_3 = opcode;
53533: last_addr_for_exception_3 = m68k_getpc() + 4;
53534: Exception(3, 0, M68000_EXC_SRC_CPU);
53535: goto endlabel3027;
53536: }
53537: {{ uae_s32 dst = get_long(dsta);
53538: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
53539: { int flgs = ((uae_s32)(src)) < 0;
53540: int flgo = ((uae_s32)(dst)) < 0;
53541: int flgn = ((uae_s32)(newv)) < 0;
53542: SET_ZFLG (((uae_s32)(newv)) == 0);
53543: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
53544: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
53545: COPY_CARRY;
53546: SET_NFLG (flgn != 0);
53547: m68k_incpc(4);
53548: fill_prefetch_0 ();
53549: put_long(dsta,newv);
53550: }}}}}}}}endlabel3027: ;
53551: return 26;
53552: }
53553: unsigned long REGPARAM2 CPUFUNC(op_51b8_5)(uae_u32 opcode) /* SUB */
53554: {
53555: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
53556: OpcodeFamily = 7; CurrentInstrCycles = 24;
53557: {{ uae_u32 src = srcreg;
53558: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
53559: if ((dsta & 1) != 0) {
53560: last_fault_for_exception_3 = dsta;
53561: last_op_for_exception_3 = opcode;
53562: last_addr_for_exception_3 = m68k_getpc() + 4;
53563: Exception(3, 0, M68000_EXC_SRC_CPU);
53564: goto endlabel3028;
53565: }
53566: {{ uae_s32 dst = get_long(dsta);
53567: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
53568: { int flgs = ((uae_s32)(src)) < 0;
53569: int flgo = ((uae_s32)(dst)) < 0;
53570: int flgn = ((uae_s32)(newv)) < 0;
53571: SET_ZFLG (((uae_s32)(newv)) == 0);
53572: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
53573: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
53574: COPY_CARRY;
53575: SET_NFLG (flgn != 0);
53576: m68k_incpc(4);
53577: fill_prefetch_0 ();
53578: put_long(dsta,newv);
53579: }}}}}}}}endlabel3028: ;
53580: return 24;
53581: }
53582: unsigned long REGPARAM2 CPUFUNC(op_51b9_5)(uae_u32 opcode) /* SUB */
53583: {
53584: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
53585: OpcodeFamily = 7; CurrentInstrCycles = 28;
53586: {{ uae_u32 src = srcreg;
53587: { uaecptr dsta = get_ilong_prefetch(2);
53588: if ((dsta & 1) != 0) {
53589: last_fault_for_exception_3 = dsta;
53590: last_op_for_exception_3 = opcode;
53591: last_addr_for_exception_3 = m68k_getpc() + 6;
53592: Exception(3, 0, M68000_EXC_SRC_CPU);
53593: goto endlabel3029;
53594: }
53595: {{ uae_s32 dst = get_long(dsta);
53596: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
53597: { int flgs = ((uae_s32)(src)) < 0;
53598: int flgo = ((uae_s32)(dst)) < 0;
53599: int flgn = ((uae_s32)(newv)) < 0;
53600: SET_ZFLG (((uae_s32)(newv)) == 0);
53601: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
53602: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
53603: COPY_CARRY;
53604: SET_NFLG (flgn != 0);
53605: m68k_incpc(6);
53606: fill_prefetch_0 ();
53607: put_long(dsta,newv);
53608: }}}}}}}}endlabel3029: ;
53609: return 28;
53610: }
53611: unsigned long REGPARAM2 CPUFUNC(op_51c0_5)(uae_u32 opcode) /* Scc */
53612: {
53613: uae_u32 srcreg = (opcode & 7);
53614: OpcodeFamily = 59; CurrentInstrCycles = 4;
53615: {{{ int val = cctrue(1) ? 0xff : 0;
53616: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
53617: if (val) { m68k_incpc(2) ; return 4+2; }
53618: }}}m68k_incpc(2);
53619: fill_prefetch_2 ();
53620: return 4;
53621: }
53622: unsigned long REGPARAM2 CPUFUNC(op_51c8_5)(uae_u32 opcode) /* DBcc */
53623: {
53624: uae_u32 srcreg = (opcode & 7);
53625: OpcodeFamily = 58; CurrentInstrCycles = 12;
53626: {{ uae_s16 src = m68k_dreg(regs, srcreg);
53627: { uae_s16 offs = get_iword_prefetch(2);
53628: if (!cctrue(1)) {
53629: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
53630: if (src) {
53631: if (offs & 1) {
53632: last_addr_for_exception_3 = m68k_getpc() + 2 + 2;
53633: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2;
53634: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3031;
53635: }
53636: m68k_incpc((uae_s32)offs + 2);
53637: fill_prefetch_0 ();
53638: return 10;
53639: } else {
53640: m68k_incpc(4);
53641: fill_prefetch_0 ();
53642: return 14;
53643: }
53644: }
53645: }}}m68k_incpc(4);
53646: fill_prefetch_0 ();
53647: endlabel3031: ;
53648: return 12;
53649: }
53650: unsigned long REGPARAM2 CPUFUNC(op_51d0_5)(uae_u32 opcode) /* Scc */
53651: {
53652: uae_u32 srcreg = (opcode & 7);
53653: OpcodeFamily = 59; CurrentInstrCycles = 12;
53654: {{ uaecptr srca = m68k_areg(regs, srcreg);
53655: { int val = cctrue(1) ? 0xff : 0;
53656: m68k_incpc(2);
53657: fill_prefetch_2 ();
53658: put_byte(srca,val);
53659: }}}return 12;
53660: }
53661: unsigned long REGPARAM2 CPUFUNC(op_51d8_5)(uae_u32 opcode) /* Scc */
53662: {
53663: uae_u32 srcreg = (opcode & 7);
53664: OpcodeFamily = 59; CurrentInstrCycles = 12;
53665: {{ uaecptr srca = m68k_areg(regs, srcreg);
53666: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
53667: { int val = cctrue(1) ? 0xff : 0;
53668: m68k_incpc(2);
53669: fill_prefetch_2 ();
53670: put_byte(srca,val);
53671: }}}return 12;
53672: }
53673: unsigned long REGPARAM2 CPUFUNC(op_51e0_5)(uae_u32 opcode) /* Scc */
53674: {
53675: uae_u32 srcreg = (opcode & 7);
53676: OpcodeFamily = 59; CurrentInstrCycles = 14;
53677: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
53678: m68k_areg (regs, srcreg) = srca;
53679: { int val = cctrue(1) ? 0xff : 0;
53680: m68k_incpc(2);
53681: fill_prefetch_2 ();
53682: put_byte(srca,val);
53683: }}}return 14;
53684: }
53685: unsigned long REGPARAM2 CPUFUNC(op_51e8_5)(uae_u32 opcode) /* Scc */
53686: {
53687: uae_u32 srcreg = (opcode & 7);
53688: OpcodeFamily = 59; CurrentInstrCycles = 16;
53689: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
53690: { int val = cctrue(1) ? 0xff : 0;
53691: m68k_incpc(4);
53692: fill_prefetch_0 ();
53693: put_byte(srca,val);
53694: }}}return 16;
53695: }
53696: unsigned long REGPARAM2 CPUFUNC(op_51f0_5)(uae_u32 opcode) /* Scc */
53697: {
53698: uae_u32 srcreg = (opcode & 7);
53699: OpcodeFamily = 59; CurrentInstrCycles = 18;
53700: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
53701: BusCyclePenalty += 2;
53702: { int val = cctrue(1) ? 0xff : 0;
53703: m68k_incpc(4);
53704: fill_prefetch_0 ();
53705: put_byte(srca,val);
53706: }}}return 18;
53707: }
53708: unsigned long REGPARAM2 CPUFUNC(op_51f8_5)(uae_u32 opcode) /* Scc */
53709: {
53710: OpcodeFamily = 59; CurrentInstrCycles = 16;
53711: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
53712: { int val = cctrue(1) ? 0xff : 0;
53713: m68k_incpc(4);
53714: fill_prefetch_0 ();
53715: put_byte(srca,val);
53716: }}}return 16;
53717: }
53718: unsigned long REGPARAM2 CPUFUNC(op_51f9_5)(uae_u32 opcode) /* Scc */
53719: {
53720: OpcodeFamily = 59; CurrentInstrCycles = 20;
53721: {{ uaecptr srca = get_ilong_prefetch(2);
53722: { int val = cctrue(1) ? 0xff : 0;
53723: m68k_incpc(6);
53724: fill_prefetch_0 ();
53725: put_byte(srca,val);
53726: }}}return 20;
53727: }
53728: unsigned long REGPARAM2 CPUFUNC(op_52c0_5)(uae_u32 opcode) /* Scc */
53729: {
53730: uae_u32 srcreg = (opcode & 7);
53731: OpcodeFamily = 59; CurrentInstrCycles = 4;
53732: {{{ int val = cctrue(2) ? 0xff : 0;
53733: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
53734: if (val) { m68k_incpc(2) ; return 4+2; }
53735: }}}m68k_incpc(2);
53736: fill_prefetch_2 ();
53737: return 4;
53738: }
53739: unsigned long REGPARAM2 CPUFUNC(op_52c8_5)(uae_u32 opcode) /* DBcc */
53740: {
53741: uae_u32 srcreg = (opcode & 7);
53742: OpcodeFamily = 58; CurrentInstrCycles = 12;
53743: {{ uae_s16 src = m68k_dreg(regs, srcreg);
53744: { uae_s16 offs = get_iword_prefetch(2);
53745: if (!cctrue(2)) {
53746: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
53747: if (src) {
53748: if (offs & 1) {
53749: last_addr_for_exception_3 = m68k_getpc() + 2 + 2;
53750: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2;
53751: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3040;
53752: }
53753: m68k_incpc((uae_s32)offs + 2);
53754: fill_prefetch_0 ();
53755: return 10;
53756: } else {
53757: m68k_incpc(4);
53758: fill_prefetch_0 ();
53759: return 14;
53760: }
53761: }
53762: }}}m68k_incpc(4);
53763: fill_prefetch_0 ();
53764: endlabel3040: ;
53765: return 12;
53766: }
53767: unsigned long REGPARAM2 CPUFUNC(op_52d0_5)(uae_u32 opcode) /* Scc */
53768: {
53769: uae_u32 srcreg = (opcode & 7);
53770: OpcodeFamily = 59; CurrentInstrCycles = 12;
53771: {{ uaecptr srca = m68k_areg(regs, srcreg);
53772: { int val = cctrue(2) ? 0xff : 0;
53773: m68k_incpc(2);
53774: fill_prefetch_2 ();
53775: put_byte(srca,val);
53776: }}}return 12;
53777: }
53778: unsigned long REGPARAM2 CPUFUNC(op_52d8_5)(uae_u32 opcode) /* Scc */
53779: {
53780: uae_u32 srcreg = (opcode & 7);
53781: OpcodeFamily = 59; CurrentInstrCycles = 12;
53782: {{ uaecptr srca = m68k_areg(regs, srcreg);
53783: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
53784: { int val = cctrue(2) ? 0xff : 0;
53785: m68k_incpc(2);
53786: fill_prefetch_2 ();
53787: put_byte(srca,val);
53788: }}}return 12;
53789: }
53790: unsigned long REGPARAM2 CPUFUNC(op_52e0_5)(uae_u32 opcode) /* Scc */
53791: {
53792: uae_u32 srcreg = (opcode & 7);
53793: OpcodeFamily = 59; CurrentInstrCycles = 14;
53794: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
53795: m68k_areg (regs, srcreg) = srca;
53796: { int val = cctrue(2) ? 0xff : 0;
53797: m68k_incpc(2);
53798: fill_prefetch_2 ();
53799: put_byte(srca,val);
53800: }}}return 14;
53801: }
53802: unsigned long REGPARAM2 CPUFUNC(op_52e8_5)(uae_u32 opcode) /* Scc */
53803: {
53804: uae_u32 srcreg = (opcode & 7);
53805: OpcodeFamily = 59; CurrentInstrCycles = 16;
53806: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
53807: { int val = cctrue(2) ? 0xff : 0;
53808: m68k_incpc(4);
53809: fill_prefetch_0 ();
53810: put_byte(srca,val);
53811: }}}return 16;
53812: }
53813: unsigned long REGPARAM2 CPUFUNC(op_52f0_5)(uae_u32 opcode) /* Scc */
53814: {
53815: uae_u32 srcreg = (opcode & 7);
53816: OpcodeFamily = 59; CurrentInstrCycles = 18;
53817: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
53818: BusCyclePenalty += 2;
53819: { int val = cctrue(2) ? 0xff : 0;
53820: m68k_incpc(4);
53821: fill_prefetch_0 ();
53822: put_byte(srca,val);
53823: }}}return 18;
53824: }
53825: unsigned long REGPARAM2 CPUFUNC(op_52f8_5)(uae_u32 opcode) /* Scc */
53826: {
53827: OpcodeFamily = 59; CurrentInstrCycles = 16;
53828: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
53829: { int val = cctrue(2) ? 0xff : 0;
53830: m68k_incpc(4);
53831: fill_prefetch_0 ();
53832: put_byte(srca,val);
53833: }}}return 16;
53834: }
53835: unsigned long REGPARAM2 CPUFUNC(op_52f9_5)(uae_u32 opcode) /* Scc */
53836: {
53837: OpcodeFamily = 59; CurrentInstrCycles = 20;
53838: {{ uaecptr srca = get_ilong_prefetch(2);
53839: { int val = cctrue(2) ? 0xff : 0;
53840: m68k_incpc(6);
53841: fill_prefetch_0 ();
53842: put_byte(srca,val);
53843: }}}return 20;
53844: }
53845: unsigned long REGPARAM2 CPUFUNC(op_53c0_5)(uae_u32 opcode) /* Scc */
53846: {
53847: uae_u32 srcreg = (opcode & 7);
53848: OpcodeFamily = 59; CurrentInstrCycles = 4;
53849: {{{ int val = cctrue(3) ? 0xff : 0;
53850: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
53851: if (val) { m68k_incpc(2) ; return 4+2; }
53852: }}}m68k_incpc(2);
53853: fill_prefetch_2 ();
53854: return 4;
53855: }
53856: unsigned long REGPARAM2 CPUFUNC(op_53c8_5)(uae_u32 opcode) /* DBcc */
53857: {
53858: uae_u32 srcreg = (opcode & 7);
53859: OpcodeFamily = 58; CurrentInstrCycles = 12;
53860: {{ uae_s16 src = m68k_dreg(regs, srcreg);
53861: { uae_s16 offs = get_iword_prefetch(2);
53862: if (!cctrue(3)) {
53863: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
53864: if (src) {
53865: if (offs & 1) {
53866: last_addr_for_exception_3 = m68k_getpc() + 2 + 2;
53867: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2;
53868: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3049;
53869: }
53870: m68k_incpc((uae_s32)offs + 2);
53871: fill_prefetch_0 ();
53872: return 10;
53873: } else {
53874: m68k_incpc(4);
53875: fill_prefetch_0 ();
53876: return 14;
53877: }
53878: }
53879: }}}m68k_incpc(4);
53880: fill_prefetch_0 ();
53881: endlabel3049: ;
53882: return 12;
53883: }
53884: unsigned long REGPARAM2 CPUFUNC(op_53d0_5)(uae_u32 opcode) /* Scc */
53885: {
53886: uae_u32 srcreg = (opcode & 7);
53887: OpcodeFamily = 59; CurrentInstrCycles = 12;
53888: {{ uaecptr srca = m68k_areg(regs, srcreg);
53889: { int val = cctrue(3) ? 0xff : 0;
53890: m68k_incpc(2);
53891: fill_prefetch_2 ();
53892: put_byte(srca,val);
53893: }}}return 12;
53894: }
53895: unsigned long REGPARAM2 CPUFUNC(op_53d8_5)(uae_u32 opcode) /* Scc */
53896: {
53897: uae_u32 srcreg = (opcode & 7);
53898: OpcodeFamily = 59; CurrentInstrCycles = 12;
53899: {{ uaecptr srca = m68k_areg(regs, srcreg);
53900: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
53901: { int val = cctrue(3) ? 0xff : 0;
53902: m68k_incpc(2);
53903: fill_prefetch_2 ();
53904: put_byte(srca,val);
53905: }}}return 12;
53906: }
53907: unsigned long REGPARAM2 CPUFUNC(op_53e0_5)(uae_u32 opcode) /* Scc */
53908: {
53909: uae_u32 srcreg = (opcode & 7);
53910: OpcodeFamily = 59; CurrentInstrCycles = 14;
53911: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
53912: m68k_areg (regs, srcreg) = srca;
53913: { int val = cctrue(3) ? 0xff : 0;
53914: m68k_incpc(2);
53915: fill_prefetch_2 ();
53916: put_byte(srca,val);
53917: }}}return 14;
53918: }
53919: unsigned long REGPARAM2 CPUFUNC(op_53e8_5)(uae_u32 opcode) /* Scc */
53920: {
53921: uae_u32 srcreg = (opcode & 7);
53922: OpcodeFamily = 59; CurrentInstrCycles = 16;
53923: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
53924: { int val = cctrue(3) ? 0xff : 0;
53925: m68k_incpc(4);
53926: fill_prefetch_0 ();
53927: put_byte(srca,val);
53928: }}}return 16;
53929: }
53930: unsigned long REGPARAM2 CPUFUNC(op_53f0_5)(uae_u32 opcode) /* Scc */
53931: {
53932: uae_u32 srcreg = (opcode & 7);
53933: OpcodeFamily = 59; CurrentInstrCycles = 18;
53934: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
53935: BusCyclePenalty += 2;
53936: { int val = cctrue(3) ? 0xff : 0;
53937: m68k_incpc(4);
53938: fill_prefetch_0 ();
53939: put_byte(srca,val);
53940: }}}return 18;
53941: }
53942: unsigned long REGPARAM2 CPUFUNC(op_53f8_5)(uae_u32 opcode) /* Scc */
53943: {
53944: OpcodeFamily = 59; CurrentInstrCycles = 16;
53945: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
53946: { int val = cctrue(3) ? 0xff : 0;
53947: m68k_incpc(4);
53948: fill_prefetch_0 ();
53949: put_byte(srca,val);
53950: }}}return 16;
53951: }
53952: unsigned long REGPARAM2 CPUFUNC(op_53f9_5)(uae_u32 opcode) /* Scc */
53953: {
53954: OpcodeFamily = 59; CurrentInstrCycles = 20;
53955: {{ uaecptr srca = get_ilong_prefetch(2);
53956: { int val = cctrue(3) ? 0xff : 0;
53957: m68k_incpc(6);
53958: fill_prefetch_0 ();
53959: put_byte(srca,val);
53960: }}}return 20;
53961: }
53962: unsigned long REGPARAM2 CPUFUNC(op_54c0_5)(uae_u32 opcode) /* Scc */
53963: {
53964: uae_u32 srcreg = (opcode & 7);
53965: OpcodeFamily = 59; CurrentInstrCycles = 4;
53966: {{{ int val = cctrue(4) ? 0xff : 0;
53967: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
53968: if (val) { m68k_incpc(2) ; return 4+2; }
53969: }}}m68k_incpc(2);
53970: fill_prefetch_2 ();
53971: return 4;
53972: }
53973: unsigned long REGPARAM2 CPUFUNC(op_54c8_5)(uae_u32 opcode) /* DBcc */
53974: {
53975: uae_u32 srcreg = (opcode & 7);
53976: OpcodeFamily = 58; CurrentInstrCycles = 12;
53977: {{ uae_s16 src = m68k_dreg(regs, srcreg);
53978: { uae_s16 offs = get_iword_prefetch(2);
53979: if (!cctrue(4)) {
53980: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
53981: if (src) {
53982: if (offs & 1) {
53983: last_addr_for_exception_3 = m68k_getpc() + 2 + 2;
53984: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2;
53985: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3058;
53986: }
53987: m68k_incpc((uae_s32)offs + 2);
53988: fill_prefetch_0 ();
53989: return 10;
53990: } else {
53991: m68k_incpc(4);
53992: fill_prefetch_0 ();
53993: return 14;
53994: }
53995: }
53996: }}}m68k_incpc(4);
53997: fill_prefetch_0 ();
53998: endlabel3058: ;
53999: return 12;
54000: }
54001: unsigned long REGPARAM2 CPUFUNC(op_54d0_5)(uae_u32 opcode) /* Scc */
54002: {
54003: uae_u32 srcreg = (opcode & 7);
54004: OpcodeFamily = 59; CurrentInstrCycles = 12;
54005: {{ uaecptr srca = m68k_areg(regs, srcreg);
54006: { int val = cctrue(4) ? 0xff : 0;
54007: m68k_incpc(2);
54008: fill_prefetch_2 ();
54009: put_byte(srca,val);
54010: }}}return 12;
54011: }
54012: unsigned long REGPARAM2 CPUFUNC(op_54d8_5)(uae_u32 opcode) /* Scc */
54013: {
54014: uae_u32 srcreg = (opcode & 7);
54015: OpcodeFamily = 59; CurrentInstrCycles = 12;
54016: {{ uaecptr srca = m68k_areg(regs, srcreg);
54017: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
54018: { int val = cctrue(4) ? 0xff : 0;
54019: m68k_incpc(2);
54020: fill_prefetch_2 ();
54021: put_byte(srca,val);
54022: }}}return 12;
54023: }
54024: unsigned long REGPARAM2 CPUFUNC(op_54e0_5)(uae_u32 opcode) /* Scc */
54025: {
54026: uae_u32 srcreg = (opcode & 7);
54027: OpcodeFamily = 59; CurrentInstrCycles = 14;
54028: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
54029: m68k_areg (regs, srcreg) = srca;
54030: { int val = cctrue(4) ? 0xff : 0;
54031: m68k_incpc(2);
54032: fill_prefetch_2 ();
54033: put_byte(srca,val);
54034: }}}return 14;
54035: }
54036: unsigned long REGPARAM2 CPUFUNC(op_54e8_5)(uae_u32 opcode) /* Scc */
54037: {
54038: uae_u32 srcreg = (opcode & 7);
54039: OpcodeFamily = 59; CurrentInstrCycles = 16;
54040: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
54041: { int val = cctrue(4) ? 0xff : 0;
54042: m68k_incpc(4);
54043: fill_prefetch_0 ();
54044: put_byte(srca,val);
54045: }}}return 16;
54046: }
54047: unsigned long REGPARAM2 CPUFUNC(op_54f0_5)(uae_u32 opcode) /* Scc */
54048: {
54049: uae_u32 srcreg = (opcode & 7);
54050: OpcodeFamily = 59; CurrentInstrCycles = 18;
54051: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
54052: BusCyclePenalty += 2;
54053: { int val = cctrue(4) ? 0xff : 0;
54054: m68k_incpc(4);
54055: fill_prefetch_0 ();
54056: put_byte(srca,val);
54057: }}}return 18;
54058: }
54059: unsigned long REGPARAM2 CPUFUNC(op_54f8_5)(uae_u32 opcode) /* Scc */
54060: {
54061: OpcodeFamily = 59; CurrentInstrCycles = 16;
54062: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
54063: { int val = cctrue(4) ? 0xff : 0;
54064: m68k_incpc(4);
54065: fill_prefetch_0 ();
54066: put_byte(srca,val);
54067: }}}return 16;
54068: }
54069: unsigned long REGPARAM2 CPUFUNC(op_54f9_5)(uae_u32 opcode) /* Scc */
54070: {
54071: OpcodeFamily = 59; CurrentInstrCycles = 20;
54072: {{ uaecptr srca = get_ilong_prefetch(2);
54073: { int val = cctrue(4) ? 0xff : 0;
54074: m68k_incpc(6);
54075: fill_prefetch_0 ();
54076: put_byte(srca,val);
54077: }}}return 20;
54078: }
54079: unsigned long REGPARAM2 CPUFUNC(op_55c0_5)(uae_u32 opcode) /* Scc */
54080: {
54081: uae_u32 srcreg = (opcode & 7);
54082: OpcodeFamily = 59; CurrentInstrCycles = 4;
54083: {{{ int val = cctrue(5) ? 0xff : 0;
54084: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
54085: if (val) { m68k_incpc(2) ; return 4+2; }
54086: }}}m68k_incpc(2);
54087: fill_prefetch_2 ();
54088: return 4;
54089: }
54090: unsigned long REGPARAM2 CPUFUNC(op_55c8_5)(uae_u32 opcode) /* DBcc */
54091: {
54092: uae_u32 srcreg = (opcode & 7);
54093: OpcodeFamily = 58; CurrentInstrCycles = 12;
54094: {{ uae_s16 src = m68k_dreg(regs, srcreg);
54095: { uae_s16 offs = get_iword_prefetch(2);
54096: if (!cctrue(5)) {
54097: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
54098: if (src) {
54099: if (offs & 1) {
54100: last_addr_for_exception_3 = m68k_getpc() + 2 + 2;
54101: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2;
54102: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3067;
54103: }
54104: m68k_incpc((uae_s32)offs + 2);
54105: fill_prefetch_0 ();
54106: return 10;
54107: } else {
54108: m68k_incpc(4);
54109: fill_prefetch_0 ();
54110: return 14;
54111: }
54112: }
54113: }}}m68k_incpc(4);
54114: fill_prefetch_0 ();
54115: endlabel3067: ;
54116: return 12;
54117: }
54118: unsigned long REGPARAM2 CPUFUNC(op_55d0_5)(uae_u32 opcode) /* Scc */
54119: {
54120: uae_u32 srcreg = (opcode & 7);
54121: OpcodeFamily = 59; CurrentInstrCycles = 12;
54122: {{ uaecptr srca = m68k_areg(regs, srcreg);
54123: { int val = cctrue(5) ? 0xff : 0;
54124: m68k_incpc(2);
54125: fill_prefetch_2 ();
54126: put_byte(srca,val);
54127: }}}return 12;
54128: }
54129: unsigned long REGPARAM2 CPUFUNC(op_55d8_5)(uae_u32 opcode) /* Scc */
54130: {
54131: uae_u32 srcreg = (opcode & 7);
54132: OpcodeFamily = 59; CurrentInstrCycles = 12;
54133: {{ uaecptr srca = m68k_areg(regs, srcreg);
54134: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
54135: { int val = cctrue(5) ? 0xff : 0;
54136: m68k_incpc(2);
54137: fill_prefetch_2 ();
54138: put_byte(srca,val);
54139: }}}return 12;
54140: }
54141: unsigned long REGPARAM2 CPUFUNC(op_55e0_5)(uae_u32 opcode) /* Scc */
54142: {
54143: uae_u32 srcreg = (opcode & 7);
54144: OpcodeFamily = 59; CurrentInstrCycles = 14;
54145: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
54146: m68k_areg (regs, srcreg) = srca;
54147: { int val = cctrue(5) ? 0xff : 0;
54148: m68k_incpc(2);
54149: fill_prefetch_2 ();
54150: put_byte(srca,val);
54151: }}}return 14;
54152: }
54153: unsigned long REGPARAM2 CPUFUNC(op_55e8_5)(uae_u32 opcode) /* Scc */
54154: {
54155: uae_u32 srcreg = (opcode & 7);
54156: OpcodeFamily = 59; CurrentInstrCycles = 16;
54157: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
54158: { int val = cctrue(5) ? 0xff : 0;
54159: m68k_incpc(4);
54160: fill_prefetch_0 ();
54161: put_byte(srca,val);
54162: }}}return 16;
54163: }
54164: unsigned long REGPARAM2 CPUFUNC(op_55f0_5)(uae_u32 opcode) /* Scc */
54165: {
54166: uae_u32 srcreg = (opcode & 7);
54167: OpcodeFamily = 59; CurrentInstrCycles = 18;
54168: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
54169: BusCyclePenalty += 2;
54170: { int val = cctrue(5) ? 0xff : 0;
54171: m68k_incpc(4);
54172: fill_prefetch_0 ();
54173: put_byte(srca,val);
54174: }}}return 18;
54175: }
54176: unsigned long REGPARAM2 CPUFUNC(op_55f8_5)(uae_u32 opcode) /* Scc */
54177: {
54178: OpcodeFamily = 59; CurrentInstrCycles = 16;
54179: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
54180: { int val = cctrue(5) ? 0xff : 0;
54181: m68k_incpc(4);
54182: fill_prefetch_0 ();
54183: put_byte(srca,val);
54184: }}}return 16;
54185: }
54186: unsigned long REGPARAM2 CPUFUNC(op_55f9_5)(uae_u32 opcode) /* Scc */
54187: {
54188: OpcodeFamily = 59; CurrentInstrCycles = 20;
54189: {{ uaecptr srca = get_ilong_prefetch(2);
54190: { int val = cctrue(5) ? 0xff : 0;
54191: m68k_incpc(6);
54192: fill_prefetch_0 ();
54193: put_byte(srca,val);
54194: }}}return 20;
54195: }
54196: unsigned long REGPARAM2 CPUFUNC(op_56c0_5)(uae_u32 opcode) /* Scc */
54197: {
54198: uae_u32 srcreg = (opcode & 7);
54199: OpcodeFamily = 59; CurrentInstrCycles = 4;
54200: {{{ int val = cctrue(6) ? 0xff : 0;
54201: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
54202: if (val) { m68k_incpc(2) ; return 4+2; }
54203: }}}m68k_incpc(2);
54204: fill_prefetch_2 ();
54205: return 4;
54206: }
54207: unsigned long REGPARAM2 CPUFUNC(op_56c8_5)(uae_u32 opcode) /* DBcc */
54208: {
54209: uae_u32 srcreg = (opcode & 7);
54210: OpcodeFamily = 58; CurrentInstrCycles = 12;
54211: {{ uae_s16 src = m68k_dreg(regs, srcreg);
54212: { uae_s16 offs = get_iword_prefetch(2);
54213: if (!cctrue(6)) {
54214: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
54215: if (src) {
54216: if (offs & 1) {
54217: last_addr_for_exception_3 = m68k_getpc() + 2 + 2;
54218: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2;
54219: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3076;
54220: }
54221: m68k_incpc((uae_s32)offs + 2);
54222: fill_prefetch_0 ();
54223: return 10;
54224: } else {
54225: m68k_incpc(4);
54226: fill_prefetch_0 ();
54227: return 14;
54228: }
54229: }
54230: }}}m68k_incpc(4);
54231: fill_prefetch_0 ();
54232: endlabel3076: ;
54233: return 12;
54234: }
54235: unsigned long REGPARAM2 CPUFUNC(op_56d0_5)(uae_u32 opcode) /* Scc */
54236: {
54237: uae_u32 srcreg = (opcode & 7);
54238: OpcodeFamily = 59; CurrentInstrCycles = 12;
54239: {{ uaecptr srca = m68k_areg(regs, srcreg);
54240: { int val = cctrue(6) ? 0xff : 0;
54241: m68k_incpc(2);
54242: fill_prefetch_2 ();
54243: put_byte(srca,val);
54244: }}}return 12;
54245: }
54246: unsigned long REGPARAM2 CPUFUNC(op_56d8_5)(uae_u32 opcode) /* Scc */
54247: {
54248: uae_u32 srcreg = (opcode & 7);
54249: OpcodeFamily = 59; CurrentInstrCycles = 12;
54250: {{ uaecptr srca = m68k_areg(regs, srcreg);
54251: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
54252: { int val = cctrue(6) ? 0xff : 0;
54253: m68k_incpc(2);
54254: fill_prefetch_2 ();
54255: put_byte(srca,val);
54256: }}}return 12;
54257: }
54258: unsigned long REGPARAM2 CPUFUNC(op_56e0_5)(uae_u32 opcode) /* Scc */
54259: {
54260: uae_u32 srcreg = (opcode & 7);
54261: OpcodeFamily = 59; CurrentInstrCycles = 14;
54262: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
54263: m68k_areg (regs, srcreg) = srca;
54264: { int val = cctrue(6) ? 0xff : 0;
54265: m68k_incpc(2);
54266: fill_prefetch_2 ();
54267: put_byte(srca,val);
54268: }}}return 14;
54269: }
54270: unsigned long REGPARAM2 CPUFUNC(op_56e8_5)(uae_u32 opcode) /* Scc */
54271: {
54272: uae_u32 srcreg = (opcode & 7);
54273: OpcodeFamily = 59; CurrentInstrCycles = 16;
54274: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
54275: { int val = cctrue(6) ? 0xff : 0;
54276: m68k_incpc(4);
54277: fill_prefetch_0 ();
54278: put_byte(srca,val);
54279: }}}return 16;
54280: }
54281: unsigned long REGPARAM2 CPUFUNC(op_56f0_5)(uae_u32 opcode) /* Scc */
54282: {
54283: uae_u32 srcreg = (opcode & 7);
54284: OpcodeFamily = 59; CurrentInstrCycles = 18;
54285: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
54286: BusCyclePenalty += 2;
54287: { int val = cctrue(6) ? 0xff : 0;
54288: m68k_incpc(4);
54289: fill_prefetch_0 ();
54290: put_byte(srca,val);
54291: }}}return 18;
54292: }
54293: unsigned long REGPARAM2 CPUFUNC(op_56f8_5)(uae_u32 opcode) /* Scc */
54294: {
54295: OpcodeFamily = 59; CurrentInstrCycles = 16;
54296: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
54297: { int val = cctrue(6) ? 0xff : 0;
54298: m68k_incpc(4);
54299: fill_prefetch_0 ();
54300: put_byte(srca,val);
54301: }}}return 16;
54302: }
54303: unsigned long REGPARAM2 CPUFUNC(op_56f9_5)(uae_u32 opcode) /* Scc */
54304: {
54305: OpcodeFamily = 59; CurrentInstrCycles = 20;
54306: {{ uaecptr srca = get_ilong_prefetch(2);
54307: { int val = cctrue(6) ? 0xff : 0;
54308: m68k_incpc(6);
54309: fill_prefetch_0 ();
54310: put_byte(srca,val);
54311: }}}return 20;
54312: }
54313: unsigned long REGPARAM2 CPUFUNC(op_57c0_5)(uae_u32 opcode) /* Scc */
54314: {
54315: uae_u32 srcreg = (opcode & 7);
54316: OpcodeFamily = 59; CurrentInstrCycles = 4;
54317: {{{ int val = cctrue(7) ? 0xff : 0;
54318: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
54319: if (val) { m68k_incpc(2) ; return 4+2; }
54320: }}}m68k_incpc(2);
54321: fill_prefetch_2 ();
54322: return 4;
54323: }
54324: unsigned long REGPARAM2 CPUFUNC(op_57c8_5)(uae_u32 opcode) /* DBcc */
54325: {
54326: uae_u32 srcreg = (opcode & 7);
54327: OpcodeFamily = 58; CurrentInstrCycles = 12;
54328: {{ uae_s16 src = m68k_dreg(regs, srcreg);
54329: { uae_s16 offs = get_iword_prefetch(2);
54330: if (!cctrue(7)) {
54331: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
54332: if (src) {
54333: if (offs & 1) {
54334: last_addr_for_exception_3 = m68k_getpc() + 2 + 2;
54335: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2;
54336: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3085;
54337: }
54338: m68k_incpc((uae_s32)offs + 2);
54339: fill_prefetch_0 ();
54340: return 10;
54341: } else {
54342: m68k_incpc(4);
54343: fill_prefetch_0 ();
54344: return 14;
54345: }
54346: }
54347: }}}m68k_incpc(4);
54348: fill_prefetch_0 ();
54349: endlabel3085: ;
54350: return 12;
54351: }
54352: unsigned long REGPARAM2 CPUFUNC(op_57d0_5)(uae_u32 opcode) /* Scc */
54353: {
54354: uae_u32 srcreg = (opcode & 7);
54355: OpcodeFamily = 59; CurrentInstrCycles = 12;
54356: {{ uaecptr srca = m68k_areg(regs, srcreg);
54357: { int val = cctrue(7) ? 0xff : 0;
54358: m68k_incpc(2);
54359: fill_prefetch_2 ();
54360: put_byte(srca,val);
54361: }}}return 12;
54362: }
54363: unsigned long REGPARAM2 CPUFUNC(op_57d8_5)(uae_u32 opcode) /* Scc */
54364: {
54365: uae_u32 srcreg = (opcode & 7);
54366: OpcodeFamily = 59; CurrentInstrCycles = 12;
54367: {{ uaecptr srca = m68k_areg(regs, srcreg);
54368: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
54369: { int val = cctrue(7) ? 0xff : 0;
54370: m68k_incpc(2);
54371: fill_prefetch_2 ();
54372: put_byte(srca,val);
54373: }}}return 12;
54374: }
54375: unsigned long REGPARAM2 CPUFUNC(op_57e0_5)(uae_u32 opcode) /* Scc */
54376: {
54377: uae_u32 srcreg = (opcode & 7);
54378: OpcodeFamily = 59; CurrentInstrCycles = 14;
54379: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
54380: m68k_areg (regs, srcreg) = srca;
54381: { int val = cctrue(7) ? 0xff : 0;
54382: m68k_incpc(2);
54383: fill_prefetch_2 ();
54384: put_byte(srca,val);
54385: }}}return 14;
54386: }
54387: unsigned long REGPARAM2 CPUFUNC(op_57e8_5)(uae_u32 opcode) /* Scc */
54388: {
54389: uae_u32 srcreg = (opcode & 7);
54390: OpcodeFamily = 59; CurrentInstrCycles = 16;
54391: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
54392: { int val = cctrue(7) ? 0xff : 0;
54393: m68k_incpc(4);
54394: fill_prefetch_0 ();
54395: put_byte(srca,val);
54396: }}}return 16;
54397: }
54398: unsigned long REGPARAM2 CPUFUNC(op_57f0_5)(uae_u32 opcode) /* Scc */
54399: {
54400: uae_u32 srcreg = (opcode & 7);
54401: OpcodeFamily = 59; CurrentInstrCycles = 18;
54402: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
54403: BusCyclePenalty += 2;
54404: { int val = cctrue(7) ? 0xff : 0;
54405: m68k_incpc(4);
54406: fill_prefetch_0 ();
54407: put_byte(srca,val);
54408: }}}return 18;
54409: }
54410: unsigned long REGPARAM2 CPUFUNC(op_57f8_5)(uae_u32 opcode) /* Scc */
54411: {
54412: OpcodeFamily = 59; CurrentInstrCycles = 16;
54413: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
54414: { int val = cctrue(7) ? 0xff : 0;
54415: m68k_incpc(4);
54416: fill_prefetch_0 ();
54417: put_byte(srca,val);
54418: }}}return 16;
54419: }
54420: unsigned long REGPARAM2 CPUFUNC(op_57f9_5)(uae_u32 opcode) /* Scc */
54421: {
54422: OpcodeFamily = 59; CurrentInstrCycles = 20;
54423: {{ uaecptr srca = get_ilong_prefetch(2);
54424: { int val = cctrue(7) ? 0xff : 0;
54425: m68k_incpc(6);
54426: fill_prefetch_0 ();
54427: put_byte(srca,val);
54428: }}}return 20;
54429: }
54430: unsigned long REGPARAM2 CPUFUNC(op_58c0_5)(uae_u32 opcode) /* Scc */
54431: {
54432: uae_u32 srcreg = (opcode & 7);
54433: OpcodeFamily = 59; CurrentInstrCycles = 4;
54434: {{{ int val = cctrue(8) ? 0xff : 0;
54435: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
54436: if (val) { m68k_incpc(2) ; return 4+2; }
54437: }}}m68k_incpc(2);
54438: fill_prefetch_2 ();
54439: return 4;
54440: }
54441: unsigned long REGPARAM2 CPUFUNC(op_58c8_5)(uae_u32 opcode) /* DBcc */
54442: {
54443: uae_u32 srcreg = (opcode & 7);
54444: OpcodeFamily = 58; CurrentInstrCycles = 12;
54445: {{ uae_s16 src = m68k_dreg(regs, srcreg);
54446: { uae_s16 offs = get_iword_prefetch(2);
54447: if (!cctrue(8)) {
54448: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
54449: if (src) {
54450: if (offs & 1) {
54451: last_addr_for_exception_3 = m68k_getpc() + 2 + 2;
54452: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2;
54453: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3094;
54454: }
54455: m68k_incpc((uae_s32)offs + 2);
54456: fill_prefetch_0 ();
54457: return 10;
54458: } else {
54459: m68k_incpc(4);
54460: fill_prefetch_0 ();
54461: return 14;
54462: }
54463: }
54464: }}}m68k_incpc(4);
54465: fill_prefetch_0 ();
54466: endlabel3094: ;
54467: return 12;
54468: }
54469: unsigned long REGPARAM2 CPUFUNC(op_58d0_5)(uae_u32 opcode) /* Scc */
54470: {
54471: uae_u32 srcreg = (opcode & 7);
54472: OpcodeFamily = 59; CurrentInstrCycles = 12;
54473: {{ uaecptr srca = m68k_areg(regs, srcreg);
54474: { int val = cctrue(8) ? 0xff : 0;
54475: m68k_incpc(2);
54476: fill_prefetch_2 ();
54477: put_byte(srca,val);
54478: }}}return 12;
54479: }
54480: unsigned long REGPARAM2 CPUFUNC(op_58d8_5)(uae_u32 opcode) /* Scc */
54481: {
54482: uae_u32 srcreg = (opcode & 7);
54483: OpcodeFamily = 59; CurrentInstrCycles = 12;
54484: {{ uaecptr srca = m68k_areg(regs, srcreg);
54485: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
54486: { int val = cctrue(8) ? 0xff : 0;
54487: m68k_incpc(2);
54488: fill_prefetch_2 ();
54489: put_byte(srca,val);
54490: }}}return 12;
54491: }
54492: unsigned long REGPARAM2 CPUFUNC(op_58e0_5)(uae_u32 opcode) /* Scc */
54493: {
54494: uae_u32 srcreg = (opcode & 7);
54495: OpcodeFamily = 59; CurrentInstrCycles = 14;
54496: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
54497: m68k_areg (regs, srcreg) = srca;
54498: { int val = cctrue(8) ? 0xff : 0;
54499: m68k_incpc(2);
54500: fill_prefetch_2 ();
54501: put_byte(srca,val);
54502: }}}return 14;
54503: }
54504: unsigned long REGPARAM2 CPUFUNC(op_58e8_5)(uae_u32 opcode) /* Scc */
54505: {
54506: uae_u32 srcreg = (opcode & 7);
54507: OpcodeFamily = 59; CurrentInstrCycles = 16;
54508: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
54509: { int val = cctrue(8) ? 0xff : 0;
54510: m68k_incpc(4);
54511: fill_prefetch_0 ();
54512: put_byte(srca,val);
54513: }}}return 16;
54514: }
54515: unsigned long REGPARAM2 CPUFUNC(op_58f0_5)(uae_u32 opcode) /* Scc */
54516: {
54517: uae_u32 srcreg = (opcode & 7);
54518: OpcodeFamily = 59; CurrentInstrCycles = 18;
54519: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
54520: BusCyclePenalty += 2;
54521: { int val = cctrue(8) ? 0xff : 0;
54522: m68k_incpc(4);
54523: fill_prefetch_0 ();
54524: put_byte(srca,val);
54525: }}}return 18;
54526: }
54527: unsigned long REGPARAM2 CPUFUNC(op_58f8_5)(uae_u32 opcode) /* Scc */
54528: {
54529: OpcodeFamily = 59; CurrentInstrCycles = 16;
54530: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
54531: { int val = cctrue(8) ? 0xff : 0;
54532: m68k_incpc(4);
54533: fill_prefetch_0 ();
54534: put_byte(srca,val);
54535: }}}return 16;
54536: }
54537: unsigned long REGPARAM2 CPUFUNC(op_58f9_5)(uae_u32 opcode) /* Scc */
54538: {
54539: OpcodeFamily = 59; CurrentInstrCycles = 20;
54540: {{ uaecptr srca = get_ilong_prefetch(2);
54541: { int val = cctrue(8) ? 0xff : 0;
54542: m68k_incpc(6);
54543: fill_prefetch_0 ();
54544: put_byte(srca,val);
54545: }}}return 20;
54546: }
54547: unsigned long REGPARAM2 CPUFUNC(op_59c0_5)(uae_u32 opcode) /* Scc */
54548: {
54549: uae_u32 srcreg = (opcode & 7);
54550: OpcodeFamily = 59; CurrentInstrCycles = 4;
54551: {{{ int val = cctrue(9) ? 0xff : 0;
54552: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
54553: if (val) { m68k_incpc(2) ; return 4+2; }
54554: }}}m68k_incpc(2);
54555: fill_prefetch_2 ();
54556: return 4;
54557: }
54558: unsigned long REGPARAM2 CPUFUNC(op_59c8_5)(uae_u32 opcode) /* DBcc */
54559: {
54560: uae_u32 srcreg = (opcode & 7);
54561: OpcodeFamily = 58; CurrentInstrCycles = 12;
54562: {{ uae_s16 src = m68k_dreg(regs, srcreg);
54563: { uae_s16 offs = get_iword_prefetch(2);
54564: if (!cctrue(9)) {
54565: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
54566: if (src) {
54567: if (offs & 1) {
54568: last_addr_for_exception_3 = m68k_getpc() + 2 + 2;
54569: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2;
54570: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3103;
54571: }
54572: m68k_incpc((uae_s32)offs + 2);
54573: fill_prefetch_0 ();
54574: return 10;
54575: } else {
54576: m68k_incpc(4);
54577: fill_prefetch_0 ();
54578: return 14;
54579: }
54580: }
54581: }}}m68k_incpc(4);
54582: fill_prefetch_0 ();
54583: endlabel3103: ;
54584: return 12;
54585: }
54586: unsigned long REGPARAM2 CPUFUNC(op_59d0_5)(uae_u32 opcode) /* Scc */
54587: {
54588: uae_u32 srcreg = (opcode & 7);
54589: OpcodeFamily = 59; CurrentInstrCycles = 12;
54590: {{ uaecptr srca = m68k_areg(regs, srcreg);
54591: { int val = cctrue(9) ? 0xff : 0;
54592: m68k_incpc(2);
54593: fill_prefetch_2 ();
54594: put_byte(srca,val);
54595: }}}return 12;
54596: }
54597: unsigned long REGPARAM2 CPUFUNC(op_59d8_5)(uae_u32 opcode) /* Scc */
54598: {
54599: uae_u32 srcreg = (opcode & 7);
54600: OpcodeFamily = 59; CurrentInstrCycles = 12;
54601: {{ uaecptr srca = m68k_areg(regs, srcreg);
54602: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
54603: { int val = cctrue(9) ? 0xff : 0;
54604: m68k_incpc(2);
54605: fill_prefetch_2 ();
54606: put_byte(srca,val);
54607: }}}return 12;
54608: }
54609: unsigned long REGPARAM2 CPUFUNC(op_59e0_5)(uae_u32 opcode) /* Scc */
54610: {
54611: uae_u32 srcreg = (opcode & 7);
54612: OpcodeFamily = 59; CurrentInstrCycles = 14;
54613: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
54614: m68k_areg (regs, srcreg) = srca;
54615: { int val = cctrue(9) ? 0xff : 0;
54616: m68k_incpc(2);
54617: fill_prefetch_2 ();
54618: put_byte(srca,val);
54619: }}}return 14;
54620: }
54621: unsigned long REGPARAM2 CPUFUNC(op_59e8_5)(uae_u32 opcode) /* Scc */
54622: {
54623: uae_u32 srcreg = (opcode & 7);
54624: OpcodeFamily = 59; CurrentInstrCycles = 16;
54625: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
54626: { int val = cctrue(9) ? 0xff : 0;
54627: m68k_incpc(4);
54628: fill_prefetch_0 ();
54629: put_byte(srca,val);
54630: }}}return 16;
54631: }
54632: unsigned long REGPARAM2 CPUFUNC(op_59f0_5)(uae_u32 opcode) /* Scc */
54633: {
54634: uae_u32 srcreg = (opcode & 7);
54635: OpcodeFamily = 59; CurrentInstrCycles = 18;
54636: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
54637: BusCyclePenalty += 2;
54638: { int val = cctrue(9) ? 0xff : 0;
54639: m68k_incpc(4);
54640: fill_prefetch_0 ();
54641: put_byte(srca,val);
54642: }}}return 18;
54643: }
54644: unsigned long REGPARAM2 CPUFUNC(op_59f8_5)(uae_u32 opcode) /* Scc */
54645: {
54646: OpcodeFamily = 59; CurrentInstrCycles = 16;
54647: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
54648: { int val = cctrue(9) ? 0xff : 0;
54649: m68k_incpc(4);
54650: fill_prefetch_0 ();
54651: put_byte(srca,val);
54652: }}}return 16;
54653: }
54654: unsigned long REGPARAM2 CPUFUNC(op_59f9_5)(uae_u32 opcode) /* Scc */
54655: {
54656: OpcodeFamily = 59; CurrentInstrCycles = 20;
54657: {{ uaecptr srca = get_ilong_prefetch(2);
54658: { int val = cctrue(9) ? 0xff : 0;
54659: m68k_incpc(6);
54660: fill_prefetch_0 ();
54661: put_byte(srca,val);
54662: }}}return 20;
54663: }
54664: unsigned long REGPARAM2 CPUFUNC(op_5ac0_5)(uae_u32 opcode) /* Scc */
54665: {
54666: uae_u32 srcreg = (opcode & 7);
54667: OpcodeFamily = 59; CurrentInstrCycles = 4;
54668: {{{ int val = cctrue(10) ? 0xff : 0;
54669: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
54670: if (val) { m68k_incpc(2) ; return 4+2; }
54671: }}}m68k_incpc(2);
54672: fill_prefetch_2 ();
54673: return 4;
54674: }
54675: unsigned long REGPARAM2 CPUFUNC(op_5ac8_5)(uae_u32 opcode) /* DBcc */
54676: {
54677: uae_u32 srcreg = (opcode & 7);
54678: OpcodeFamily = 58; CurrentInstrCycles = 12;
54679: {{ uae_s16 src = m68k_dreg(regs, srcreg);
54680: { uae_s16 offs = get_iword_prefetch(2);
54681: if (!cctrue(10)) {
54682: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
54683: if (src) {
54684: if (offs & 1) {
54685: last_addr_for_exception_3 = m68k_getpc() + 2 + 2;
54686: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2;
54687: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3112;
54688: }
54689: m68k_incpc((uae_s32)offs + 2);
54690: fill_prefetch_0 ();
54691: return 10;
54692: } else {
54693: m68k_incpc(4);
54694: fill_prefetch_0 ();
54695: return 14;
54696: }
54697: }
54698: }}}m68k_incpc(4);
54699: fill_prefetch_0 ();
54700: endlabel3112: ;
54701: return 12;
54702: }
54703: unsigned long REGPARAM2 CPUFUNC(op_5ad0_5)(uae_u32 opcode) /* Scc */
54704: {
54705: uae_u32 srcreg = (opcode & 7);
54706: OpcodeFamily = 59; CurrentInstrCycles = 12;
54707: {{ uaecptr srca = m68k_areg(regs, srcreg);
54708: { int val = cctrue(10) ? 0xff : 0;
54709: m68k_incpc(2);
54710: fill_prefetch_2 ();
54711: put_byte(srca,val);
54712: }}}return 12;
54713: }
54714: unsigned long REGPARAM2 CPUFUNC(op_5ad8_5)(uae_u32 opcode) /* Scc */
54715: {
54716: uae_u32 srcreg = (opcode & 7);
54717: OpcodeFamily = 59; CurrentInstrCycles = 12;
54718: {{ uaecptr srca = m68k_areg(regs, srcreg);
54719: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
54720: { int val = cctrue(10) ? 0xff : 0;
54721: m68k_incpc(2);
54722: fill_prefetch_2 ();
54723: put_byte(srca,val);
54724: }}}return 12;
54725: }
54726: unsigned long REGPARAM2 CPUFUNC(op_5ae0_5)(uae_u32 opcode) /* Scc */
54727: {
54728: uae_u32 srcreg = (opcode & 7);
54729: OpcodeFamily = 59; CurrentInstrCycles = 14;
54730: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
54731: m68k_areg (regs, srcreg) = srca;
54732: { int val = cctrue(10) ? 0xff : 0;
54733: m68k_incpc(2);
54734: fill_prefetch_2 ();
54735: put_byte(srca,val);
54736: }}}return 14;
54737: }
54738: unsigned long REGPARAM2 CPUFUNC(op_5ae8_5)(uae_u32 opcode) /* Scc */
54739: {
54740: uae_u32 srcreg = (opcode & 7);
54741: OpcodeFamily = 59; CurrentInstrCycles = 16;
54742: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
54743: { int val = cctrue(10) ? 0xff : 0;
54744: m68k_incpc(4);
54745: fill_prefetch_0 ();
54746: put_byte(srca,val);
54747: }}}return 16;
54748: }
54749: unsigned long REGPARAM2 CPUFUNC(op_5af0_5)(uae_u32 opcode) /* Scc */
54750: {
54751: uae_u32 srcreg = (opcode & 7);
54752: OpcodeFamily = 59; CurrentInstrCycles = 18;
54753: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
54754: BusCyclePenalty += 2;
54755: { int val = cctrue(10) ? 0xff : 0;
54756: m68k_incpc(4);
54757: fill_prefetch_0 ();
54758: put_byte(srca,val);
54759: }}}return 18;
54760: }
54761: unsigned long REGPARAM2 CPUFUNC(op_5af8_5)(uae_u32 opcode) /* Scc */
54762: {
54763: OpcodeFamily = 59; CurrentInstrCycles = 16;
54764: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
54765: { int val = cctrue(10) ? 0xff : 0;
54766: m68k_incpc(4);
54767: fill_prefetch_0 ();
54768: put_byte(srca,val);
54769: }}}return 16;
54770: }
54771: unsigned long REGPARAM2 CPUFUNC(op_5af9_5)(uae_u32 opcode) /* Scc */
54772: {
54773: OpcodeFamily = 59; CurrentInstrCycles = 20;
54774: {{ uaecptr srca = get_ilong_prefetch(2);
54775: { int val = cctrue(10) ? 0xff : 0;
54776: m68k_incpc(6);
54777: fill_prefetch_0 ();
54778: put_byte(srca,val);
54779: }}}return 20;
54780: }
54781: unsigned long REGPARAM2 CPUFUNC(op_5bc0_5)(uae_u32 opcode) /* Scc */
54782: {
54783: uae_u32 srcreg = (opcode & 7);
54784: OpcodeFamily = 59; CurrentInstrCycles = 4;
54785: {{{ int val = cctrue(11) ? 0xff : 0;
54786: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
54787: if (val) { m68k_incpc(2) ; return 4+2; }
54788: }}}m68k_incpc(2);
54789: fill_prefetch_2 ();
54790: return 4;
54791: }
54792: unsigned long REGPARAM2 CPUFUNC(op_5bc8_5)(uae_u32 opcode) /* DBcc */
54793: {
54794: uae_u32 srcreg = (opcode & 7);
54795: OpcodeFamily = 58; CurrentInstrCycles = 12;
54796: {{ uae_s16 src = m68k_dreg(regs, srcreg);
54797: { uae_s16 offs = get_iword_prefetch(2);
54798: if (!cctrue(11)) {
54799: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
54800: if (src) {
54801: if (offs & 1) {
54802: last_addr_for_exception_3 = m68k_getpc() + 2 + 2;
54803: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2;
54804: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3121;
54805: }
54806: m68k_incpc((uae_s32)offs + 2);
54807: fill_prefetch_0 ();
54808: return 10;
54809: } else {
54810: m68k_incpc(4);
54811: fill_prefetch_0 ();
54812: return 14;
54813: }
54814: }
54815: }}}m68k_incpc(4);
54816: fill_prefetch_0 ();
54817: endlabel3121: ;
54818: return 12;
54819: }
54820: unsigned long REGPARAM2 CPUFUNC(op_5bd0_5)(uae_u32 opcode) /* Scc */
54821: {
54822: uae_u32 srcreg = (opcode & 7);
54823: OpcodeFamily = 59; CurrentInstrCycles = 12;
54824: {{ uaecptr srca = m68k_areg(regs, srcreg);
54825: { int val = cctrue(11) ? 0xff : 0;
54826: m68k_incpc(2);
54827: fill_prefetch_2 ();
54828: put_byte(srca,val);
54829: }}}return 12;
54830: }
54831: unsigned long REGPARAM2 CPUFUNC(op_5bd8_5)(uae_u32 opcode) /* Scc */
54832: {
54833: uae_u32 srcreg = (opcode & 7);
54834: OpcodeFamily = 59; CurrentInstrCycles = 12;
54835: {{ uaecptr srca = m68k_areg(regs, srcreg);
54836: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
54837: { int val = cctrue(11) ? 0xff : 0;
54838: m68k_incpc(2);
54839: fill_prefetch_2 ();
54840: put_byte(srca,val);
54841: }}}return 12;
54842: }
54843: unsigned long REGPARAM2 CPUFUNC(op_5be0_5)(uae_u32 opcode) /* Scc */
54844: {
54845: uae_u32 srcreg = (opcode & 7);
54846: OpcodeFamily = 59; CurrentInstrCycles = 14;
54847: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
54848: m68k_areg (regs, srcreg) = srca;
54849: { int val = cctrue(11) ? 0xff : 0;
54850: m68k_incpc(2);
54851: fill_prefetch_2 ();
54852: put_byte(srca,val);
54853: }}}return 14;
54854: }
54855: unsigned long REGPARAM2 CPUFUNC(op_5be8_5)(uae_u32 opcode) /* Scc */
54856: {
54857: uae_u32 srcreg = (opcode & 7);
54858: OpcodeFamily = 59; CurrentInstrCycles = 16;
54859: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
54860: { int val = cctrue(11) ? 0xff : 0;
54861: m68k_incpc(4);
54862: fill_prefetch_0 ();
54863: put_byte(srca,val);
54864: }}}return 16;
54865: }
54866: unsigned long REGPARAM2 CPUFUNC(op_5bf0_5)(uae_u32 opcode) /* Scc */
54867: {
54868: uae_u32 srcreg = (opcode & 7);
54869: OpcodeFamily = 59; CurrentInstrCycles = 18;
54870: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
54871: BusCyclePenalty += 2;
54872: { int val = cctrue(11) ? 0xff : 0;
54873: m68k_incpc(4);
54874: fill_prefetch_0 ();
54875: put_byte(srca,val);
54876: }}}return 18;
54877: }
54878: unsigned long REGPARAM2 CPUFUNC(op_5bf8_5)(uae_u32 opcode) /* Scc */
54879: {
54880: OpcodeFamily = 59; CurrentInstrCycles = 16;
54881: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
54882: { int val = cctrue(11) ? 0xff : 0;
54883: m68k_incpc(4);
54884: fill_prefetch_0 ();
54885: put_byte(srca,val);
54886: }}}return 16;
54887: }
54888: unsigned long REGPARAM2 CPUFUNC(op_5bf9_5)(uae_u32 opcode) /* Scc */
54889: {
54890: OpcodeFamily = 59; CurrentInstrCycles = 20;
54891: {{ uaecptr srca = get_ilong_prefetch(2);
54892: { int val = cctrue(11) ? 0xff : 0;
54893: m68k_incpc(6);
54894: fill_prefetch_0 ();
54895: put_byte(srca,val);
54896: }}}return 20;
54897: }
54898: unsigned long REGPARAM2 CPUFUNC(op_5cc0_5)(uae_u32 opcode) /* Scc */
54899: {
54900: uae_u32 srcreg = (opcode & 7);
54901: OpcodeFamily = 59; CurrentInstrCycles = 4;
54902: {{{ int val = cctrue(12) ? 0xff : 0;
54903: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
54904: if (val) { m68k_incpc(2) ; return 4+2; }
54905: }}}m68k_incpc(2);
54906: fill_prefetch_2 ();
54907: return 4;
54908: }
54909: unsigned long REGPARAM2 CPUFUNC(op_5cc8_5)(uae_u32 opcode) /* DBcc */
54910: {
54911: uae_u32 srcreg = (opcode & 7);
54912: OpcodeFamily = 58; CurrentInstrCycles = 12;
54913: {{ uae_s16 src = m68k_dreg(regs, srcreg);
54914: { uae_s16 offs = get_iword_prefetch(2);
54915: if (!cctrue(12)) {
54916: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
54917: if (src) {
54918: if (offs & 1) {
54919: last_addr_for_exception_3 = m68k_getpc() + 2 + 2;
54920: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2;
54921: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3130;
54922: }
54923: m68k_incpc((uae_s32)offs + 2);
54924: fill_prefetch_0 ();
54925: return 10;
54926: } else {
54927: m68k_incpc(4);
54928: fill_prefetch_0 ();
54929: return 14;
54930: }
54931: }
54932: }}}m68k_incpc(4);
54933: fill_prefetch_0 ();
54934: endlabel3130: ;
54935: return 12;
54936: }
54937: unsigned long REGPARAM2 CPUFUNC(op_5cd0_5)(uae_u32 opcode) /* Scc */
54938: {
54939: uae_u32 srcreg = (opcode & 7);
54940: OpcodeFamily = 59; CurrentInstrCycles = 12;
54941: {{ uaecptr srca = m68k_areg(regs, srcreg);
54942: { int val = cctrue(12) ? 0xff : 0;
54943: m68k_incpc(2);
54944: fill_prefetch_2 ();
54945: put_byte(srca,val);
54946: }}}return 12;
54947: }
54948: unsigned long REGPARAM2 CPUFUNC(op_5cd8_5)(uae_u32 opcode) /* Scc */
54949: {
54950: uae_u32 srcreg = (opcode & 7);
54951: OpcodeFamily = 59; CurrentInstrCycles = 12;
54952: {{ uaecptr srca = m68k_areg(regs, srcreg);
54953: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
54954: { int val = cctrue(12) ? 0xff : 0;
54955: m68k_incpc(2);
54956: fill_prefetch_2 ();
54957: put_byte(srca,val);
54958: }}}return 12;
54959: }
54960: unsigned long REGPARAM2 CPUFUNC(op_5ce0_5)(uae_u32 opcode) /* Scc */
54961: {
54962: uae_u32 srcreg = (opcode & 7);
54963: OpcodeFamily = 59; CurrentInstrCycles = 14;
54964: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
54965: m68k_areg (regs, srcreg) = srca;
54966: { int val = cctrue(12) ? 0xff : 0;
54967: m68k_incpc(2);
54968: fill_prefetch_2 ();
54969: put_byte(srca,val);
54970: }}}return 14;
54971: }
54972: unsigned long REGPARAM2 CPUFUNC(op_5ce8_5)(uae_u32 opcode) /* Scc */
54973: {
54974: uae_u32 srcreg = (opcode & 7);
54975: OpcodeFamily = 59; CurrentInstrCycles = 16;
54976: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
54977: { int val = cctrue(12) ? 0xff : 0;
54978: m68k_incpc(4);
54979: fill_prefetch_0 ();
54980: put_byte(srca,val);
54981: }}}return 16;
54982: }
54983: unsigned long REGPARAM2 CPUFUNC(op_5cf0_5)(uae_u32 opcode) /* Scc */
54984: {
54985: uae_u32 srcreg = (opcode & 7);
54986: OpcodeFamily = 59; CurrentInstrCycles = 18;
54987: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
54988: BusCyclePenalty += 2;
54989: { int val = cctrue(12) ? 0xff : 0;
54990: m68k_incpc(4);
54991: fill_prefetch_0 ();
54992: put_byte(srca,val);
54993: }}}return 18;
54994: }
54995: unsigned long REGPARAM2 CPUFUNC(op_5cf8_5)(uae_u32 opcode) /* Scc */
54996: {
54997: OpcodeFamily = 59; CurrentInstrCycles = 16;
54998: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
54999: { int val = cctrue(12) ? 0xff : 0;
55000: m68k_incpc(4);
55001: fill_prefetch_0 ();
55002: put_byte(srca,val);
55003: }}}return 16;
55004: }
55005: unsigned long REGPARAM2 CPUFUNC(op_5cf9_5)(uae_u32 opcode) /* Scc */
55006: {
55007: OpcodeFamily = 59; CurrentInstrCycles = 20;
55008: {{ uaecptr srca = get_ilong_prefetch(2);
55009: { int val = cctrue(12) ? 0xff : 0;
55010: m68k_incpc(6);
55011: fill_prefetch_0 ();
55012: put_byte(srca,val);
55013: }}}return 20;
55014: }
55015: unsigned long REGPARAM2 CPUFUNC(op_5dc0_5)(uae_u32 opcode) /* Scc */
55016: {
55017: uae_u32 srcreg = (opcode & 7);
55018: OpcodeFamily = 59; CurrentInstrCycles = 4;
55019: {{{ int val = cctrue(13) ? 0xff : 0;
55020: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
55021: if (val) { m68k_incpc(2) ; return 4+2; }
55022: }}}m68k_incpc(2);
55023: fill_prefetch_2 ();
55024: return 4;
55025: }
55026: unsigned long REGPARAM2 CPUFUNC(op_5dc8_5)(uae_u32 opcode) /* DBcc */
55027: {
55028: uae_u32 srcreg = (opcode & 7);
55029: OpcodeFamily = 58; CurrentInstrCycles = 12;
55030: {{ uae_s16 src = m68k_dreg(regs, srcreg);
55031: { uae_s16 offs = get_iword_prefetch(2);
55032: if (!cctrue(13)) {
55033: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
55034: if (src) {
55035: if (offs & 1) {
55036: last_addr_for_exception_3 = m68k_getpc() + 2 + 2;
55037: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2;
55038: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3139;
55039: }
55040: m68k_incpc((uae_s32)offs + 2);
55041: fill_prefetch_0 ();
55042: return 10;
55043: } else {
55044: m68k_incpc(4);
55045: fill_prefetch_0 ();
55046: return 14;
55047: }
55048: }
55049: }}}m68k_incpc(4);
55050: fill_prefetch_0 ();
55051: endlabel3139: ;
55052: return 12;
55053: }
55054: unsigned long REGPARAM2 CPUFUNC(op_5dd0_5)(uae_u32 opcode) /* Scc */
55055: {
55056: uae_u32 srcreg = (opcode & 7);
55057: OpcodeFamily = 59; CurrentInstrCycles = 12;
55058: {{ uaecptr srca = m68k_areg(regs, srcreg);
55059: { int val = cctrue(13) ? 0xff : 0;
55060: m68k_incpc(2);
55061: fill_prefetch_2 ();
55062: put_byte(srca,val);
55063: }}}return 12;
55064: }
55065: unsigned long REGPARAM2 CPUFUNC(op_5dd8_5)(uae_u32 opcode) /* Scc */
55066: {
55067: uae_u32 srcreg = (opcode & 7);
55068: OpcodeFamily = 59; CurrentInstrCycles = 12;
55069: {{ uaecptr srca = m68k_areg(regs, srcreg);
55070: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
55071: { int val = cctrue(13) ? 0xff : 0;
55072: m68k_incpc(2);
55073: fill_prefetch_2 ();
55074: put_byte(srca,val);
55075: }}}return 12;
55076: }
55077: unsigned long REGPARAM2 CPUFUNC(op_5de0_5)(uae_u32 opcode) /* Scc */
55078: {
55079: uae_u32 srcreg = (opcode & 7);
55080: OpcodeFamily = 59; CurrentInstrCycles = 14;
55081: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
55082: m68k_areg (regs, srcreg) = srca;
55083: { int val = cctrue(13) ? 0xff : 0;
55084: m68k_incpc(2);
55085: fill_prefetch_2 ();
55086: put_byte(srca,val);
55087: }}}return 14;
55088: }
55089: unsigned long REGPARAM2 CPUFUNC(op_5de8_5)(uae_u32 opcode) /* Scc */
55090: {
55091: uae_u32 srcreg = (opcode & 7);
55092: OpcodeFamily = 59; CurrentInstrCycles = 16;
55093: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
55094: { int val = cctrue(13) ? 0xff : 0;
55095: m68k_incpc(4);
55096: fill_prefetch_0 ();
55097: put_byte(srca,val);
55098: }}}return 16;
55099: }
55100: unsigned long REGPARAM2 CPUFUNC(op_5df0_5)(uae_u32 opcode) /* Scc */
55101: {
55102: uae_u32 srcreg = (opcode & 7);
55103: OpcodeFamily = 59; CurrentInstrCycles = 18;
55104: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
55105: BusCyclePenalty += 2;
55106: { int val = cctrue(13) ? 0xff : 0;
55107: m68k_incpc(4);
55108: fill_prefetch_0 ();
55109: put_byte(srca,val);
55110: }}}return 18;
55111: }
55112: unsigned long REGPARAM2 CPUFUNC(op_5df8_5)(uae_u32 opcode) /* Scc */
55113: {
55114: OpcodeFamily = 59; CurrentInstrCycles = 16;
55115: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
55116: { int val = cctrue(13) ? 0xff : 0;
55117: m68k_incpc(4);
55118: fill_prefetch_0 ();
55119: put_byte(srca,val);
55120: }}}return 16;
55121: }
55122: unsigned long REGPARAM2 CPUFUNC(op_5df9_5)(uae_u32 opcode) /* Scc */
55123: {
55124: OpcodeFamily = 59; CurrentInstrCycles = 20;
55125: {{ uaecptr srca = get_ilong_prefetch(2);
55126: { int val = cctrue(13) ? 0xff : 0;
55127: m68k_incpc(6);
55128: fill_prefetch_0 ();
55129: put_byte(srca,val);
55130: }}}return 20;
55131: }
55132: unsigned long REGPARAM2 CPUFUNC(op_5ec0_5)(uae_u32 opcode) /* Scc */
55133: {
55134: uae_u32 srcreg = (opcode & 7);
55135: OpcodeFamily = 59; CurrentInstrCycles = 4;
55136: {{{ int val = cctrue(14) ? 0xff : 0;
55137: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
55138: if (val) { m68k_incpc(2) ; return 4+2; }
55139: }}}m68k_incpc(2);
55140: fill_prefetch_2 ();
55141: return 4;
55142: }
55143: unsigned long REGPARAM2 CPUFUNC(op_5ec8_5)(uae_u32 opcode) /* DBcc */
55144: {
55145: uae_u32 srcreg = (opcode & 7);
55146: OpcodeFamily = 58; CurrentInstrCycles = 12;
55147: {{ uae_s16 src = m68k_dreg(regs, srcreg);
55148: { uae_s16 offs = get_iword_prefetch(2);
55149: if (!cctrue(14)) {
55150: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
55151: if (src) {
55152: if (offs & 1) {
55153: last_addr_for_exception_3 = m68k_getpc() + 2 + 2;
55154: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2;
55155: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3148;
55156: }
55157: m68k_incpc((uae_s32)offs + 2);
55158: fill_prefetch_0 ();
55159: return 10;
55160: } else {
55161: m68k_incpc(4);
55162: fill_prefetch_0 ();
55163: return 14;
55164: }
55165: }
55166: }}}m68k_incpc(4);
55167: fill_prefetch_0 ();
55168: endlabel3148: ;
55169: return 12;
55170: }
55171: unsigned long REGPARAM2 CPUFUNC(op_5ed0_5)(uae_u32 opcode) /* Scc */
55172: {
55173: uae_u32 srcreg = (opcode & 7);
55174: OpcodeFamily = 59; CurrentInstrCycles = 12;
55175: {{ uaecptr srca = m68k_areg(regs, srcreg);
55176: { int val = cctrue(14) ? 0xff : 0;
55177: m68k_incpc(2);
55178: fill_prefetch_2 ();
55179: put_byte(srca,val);
55180: }}}return 12;
55181: }
55182: unsigned long REGPARAM2 CPUFUNC(op_5ed8_5)(uae_u32 opcode) /* Scc */
55183: {
55184: uae_u32 srcreg = (opcode & 7);
55185: OpcodeFamily = 59; CurrentInstrCycles = 12;
55186: {{ uaecptr srca = m68k_areg(regs, srcreg);
55187: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
55188: { int val = cctrue(14) ? 0xff : 0;
55189: m68k_incpc(2);
55190: fill_prefetch_2 ();
55191: put_byte(srca,val);
55192: }}}return 12;
55193: }
55194: unsigned long REGPARAM2 CPUFUNC(op_5ee0_5)(uae_u32 opcode) /* Scc */
55195: {
55196: uae_u32 srcreg = (opcode & 7);
55197: OpcodeFamily = 59; CurrentInstrCycles = 14;
55198: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
55199: m68k_areg (regs, srcreg) = srca;
55200: { int val = cctrue(14) ? 0xff : 0;
55201: m68k_incpc(2);
55202: fill_prefetch_2 ();
55203: put_byte(srca,val);
55204: }}}return 14;
55205: }
55206: unsigned long REGPARAM2 CPUFUNC(op_5ee8_5)(uae_u32 opcode) /* Scc */
55207: {
55208: uae_u32 srcreg = (opcode & 7);
55209: OpcodeFamily = 59; CurrentInstrCycles = 16;
55210: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
55211: { int val = cctrue(14) ? 0xff : 0;
55212: m68k_incpc(4);
55213: fill_prefetch_0 ();
55214: put_byte(srca,val);
55215: }}}return 16;
55216: }
55217: unsigned long REGPARAM2 CPUFUNC(op_5ef0_5)(uae_u32 opcode) /* Scc */
55218: {
55219: uae_u32 srcreg = (opcode & 7);
55220: OpcodeFamily = 59; CurrentInstrCycles = 18;
55221: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
55222: BusCyclePenalty += 2;
55223: { int val = cctrue(14) ? 0xff : 0;
55224: m68k_incpc(4);
55225: fill_prefetch_0 ();
55226: put_byte(srca,val);
55227: }}}return 18;
55228: }
55229: unsigned long REGPARAM2 CPUFUNC(op_5ef8_5)(uae_u32 opcode) /* Scc */
55230: {
55231: OpcodeFamily = 59; CurrentInstrCycles = 16;
55232: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
55233: { int val = cctrue(14) ? 0xff : 0;
55234: m68k_incpc(4);
55235: fill_prefetch_0 ();
55236: put_byte(srca,val);
55237: }}}return 16;
55238: }
55239: unsigned long REGPARAM2 CPUFUNC(op_5ef9_5)(uae_u32 opcode) /* Scc */
55240: {
55241: OpcodeFamily = 59; CurrentInstrCycles = 20;
55242: {{ uaecptr srca = get_ilong_prefetch(2);
55243: { int val = cctrue(14) ? 0xff : 0;
55244: m68k_incpc(6);
55245: fill_prefetch_0 ();
55246: put_byte(srca,val);
55247: }}}return 20;
55248: }
55249: unsigned long REGPARAM2 CPUFUNC(op_5fc0_5)(uae_u32 opcode) /* Scc */
55250: {
55251: uae_u32 srcreg = (opcode & 7);
55252: OpcodeFamily = 59; CurrentInstrCycles = 4;
55253: {{{ int val = cctrue(15) ? 0xff : 0;
55254: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xff) | ((val) & 0xff);
55255: if (val) { m68k_incpc(2) ; return 4+2; }
55256: }}}m68k_incpc(2);
55257: fill_prefetch_2 ();
55258: return 4;
55259: }
55260: unsigned long REGPARAM2 CPUFUNC(op_5fc8_5)(uae_u32 opcode) /* DBcc */
55261: {
55262: uae_u32 srcreg = (opcode & 7);
55263: OpcodeFamily = 58; CurrentInstrCycles = 12;
55264: {{ uae_s16 src = m68k_dreg(regs, srcreg);
55265: { uae_s16 offs = get_iword_prefetch(2);
55266: if (!cctrue(15)) {
55267: m68k_dreg(regs, srcreg) = (m68k_dreg(regs, srcreg) & ~0xffff) | (((src-1)) & 0xffff);
55268: if (src) {
55269: if (offs & 1) {
55270: last_addr_for_exception_3 = m68k_getpc() + 2 + 2;
55271: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)offs + 2;
55272: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3157;
55273: }
55274: m68k_incpc((uae_s32)offs + 2);
55275: fill_prefetch_0 ();
55276: return 10;
55277: } else {
55278: m68k_incpc(4);
55279: fill_prefetch_0 ();
55280: return 14;
55281: }
55282: }
55283: }}}m68k_incpc(4);
55284: fill_prefetch_0 ();
55285: endlabel3157: ;
55286: return 12;
55287: }
55288: unsigned long REGPARAM2 CPUFUNC(op_5fd0_5)(uae_u32 opcode) /* Scc */
55289: {
55290: uae_u32 srcreg = (opcode & 7);
55291: OpcodeFamily = 59; CurrentInstrCycles = 12;
55292: {{ uaecptr srca = m68k_areg(regs, srcreg);
55293: { int val = cctrue(15) ? 0xff : 0;
55294: m68k_incpc(2);
55295: fill_prefetch_2 ();
55296: put_byte(srca,val);
55297: }}}return 12;
55298: }
55299: unsigned long REGPARAM2 CPUFUNC(op_5fd8_5)(uae_u32 opcode) /* Scc */
55300: {
55301: uae_u32 srcreg = (opcode & 7);
55302: OpcodeFamily = 59; CurrentInstrCycles = 12;
55303: {{ uaecptr srca = m68k_areg(regs, srcreg);
55304: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
55305: { int val = cctrue(15) ? 0xff : 0;
55306: m68k_incpc(2);
55307: fill_prefetch_2 ();
55308: put_byte(srca,val);
55309: }}}return 12;
55310: }
55311: unsigned long REGPARAM2 CPUFUNC(op_5fe0_5)(uae_u32 opcode) /* Scc */
55312: {
55313: uae_u32 srcreg = (opcode & 7);
55314: OpcodeFamily = 59; CurrentInstrCycles = 14;
55315: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
55316: m68k_areg (regs, srcreg) = srca;
55317: { int val = cctrue(15) ? 0xff : 0;
55318: m68k_incpc(2);
55319: fill_prefetch_2 ();
55320: put_byte(srca,val);
55321: }}}return 14;
55322: }
55323: #endif
55324:
55325: #ifdef PART_6
55326: unsigned long REGPARAM2 CPUFUNC(op_5fe8_5)(uae_u32 opcode) /* Scc */
55327: {
55328: uae_u32 srcreg = (opcode & 7);
55329: OpcodeFamily = 59; CurrentInstrCycles = 16;
55330: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
55331: { int val = cctrue(15) ? 0xff : 0;
55332: m68k_incpc(4);
55333: fill_prefetch_0 ();
55334: put_byte(srca,val);
55335: }}}return 16;
55336: }
55337: unsigned long REGPARAM2 CPUFUNC(op_5ff0_5)(uae_u32 opcode) /* Scc */
55338: {
55339: uae_u32 srcreg = (opcode & 7);
55340: OpcodeFamily = 59; CurrentInstrCycles = 18;
55341: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
55342: BusCyclePenalty += 2;
55343: { int val = cctrue(15) ? 0xff : 0;
55344: m68k_incpc(4);
55345: fill_prefetch_0 ();
55346: put_byte(srca,val);
55347: }}}return 18;
55348: }
55349: unsigned long REGPARAM2 CPUFUNC(op_5ff8_5)(uae_u32 opcode) /* Scc */
55350: {
55351: OpcodeFamily = 59; CurrentInstrCycles = 16;
55352: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
55353: { int val = cctrue(15) ? 0xff : 0;
55354: m68k_incpc(4);
55355: fill_prefetch_0 ();
55356: put_byte(srca,val);
55357: }}}return 16;
55358: }
55359: unsigned long REGPARAM2 CPUFUNC(op_5ff9_5)(uae_u32 opcode) /* Scc */
55360: {
55361: OpcodeFamily = 59; CurrentInstrCycles = 20;
55362: {{ uaecptr srca = get_ilong_prefetch(2);
55363: { int val = cctrue(15) ? 0xff : 0;
55364: m68k_incpc(6);
55365: fill_prefetch_0 ();
55366: put_byte(srca,val);
55367: }}}return 20;
55368: }
55369: unsigned long REGPARAM2 CPUFUNC(op_6000_5)(uae_u32 opcode) /* Bcc */
55370: {
55371: OpcodeFamily = 55; CurrentInstrCycles = 12;
55372: {{ uae_s16 src = get_iword_prefetch(2);
55373: if (!cctrue(0)) goto didnt_jump;
55374: if (src & 1) {
55375: last_addr_for_exception_3 = m68k_getpc() + 2;
55376: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
55377: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3165;
55378: }
55379: m68k_incpc ((uae_s32)src + 2);
55380: fill_prefetch_0 ();
55381: return 10;
55382: didnt_jump:;
55383: }}m68k_incpc(4);
55384: fill_prefetch_0 ();
55385: endlabel3165: ;
55386: return 12;
55387: }
55388: unsigned long REGPARAM2 CPUFUNC(op_6001_5)(uae_u32 opcode) /* Bcc */
55389: {
55390: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
55391: OpcodeFamily = 55; CurrentInstrCycles = 8;
55392: {{ uae_u32 src = srcreg;
55393: if (!cctrue(0)) goto didnt_jump;
55394: if (src & 1) {
55395: last_addr_for_exception_3 = m68k_getpc() + 2;
55396: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
55397: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3166;
55398: }
55399: m68k_incpc ((uae_s32)src + 2);
55400: fill_prefetch_0 ();
55401: return 10;
55402: didnt_jump:;
55403: }}m68k_incpc(2);
55404: fill_prefetch_2 ();
55405: endlabel3166: ;
55406: return 8;
55407: }
55408: unsigned long REGPARAM2 CPUFUNC(op_60ff_5)(uae_u32 opcode) /* Bcc */
55409: {
55410: OpcodeFamily = 55; CurrentInstrCycles = 12;
55411: { m68k_incpc(2);
55412: if (!cctrue(0)) goto endlabel3167;
55413: last_addr_for_exception_3 = m68k_getpc() + 2;
55414: last_fault_for_exception_3 = m68k_getpc() + 1;
55415: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3167;
55416: { uae_s32 src = get_ilong_prefetch(2);
55417: if (!cctrue(0)) goto didnt_jump;
55418: if (src & 1) {
55419: last_addr_for_exception_3 = m68k_getpc() + 2;
55420: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
55421: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3167;
55422: }
55423: m68k_incpc ((uae_s32)src + 2);
55424: fill_prefetch_0 ();
55425: return 10;
55426: didnt_jump:;
55427: }}m68k_incpc(6);
55428: fill_prefetch_0 ();
55429: endlabel3167: ;
55430: return 12;
55431: }
55432: unsigned long REGPARAM2 CPUFUNC(op_6100_5)(uae_u32 opcode) /* BSR */
55433: {
55434: OpcodeFamily = 54; CurrentInstrCycles = 18;
55435: {{ uae_s16 src = get_iword_prefetch(2);
55436: uae_s32 s = (uae_s32)src + 2;
55437: if (src & 1) {
55438: last_addr_for_exception_3 = m68k_getpc() + 2;
55439: last_fault_for_exception_3 = m68k_getpc() + s;
55440: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3168;
55441: }
55442: m68k_do_bsr(m68k_getpc() + 4, s);
55443: fill_prefetch_0 ();
55444: }}endlabel3168: ;
55445: return 18;
55446: }
55447: unsigned long REGPARAM2 CPUFUNC(op_6101_5)(uae_u32 opcode) /* BSR */
55448: {
55449: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
55450: OpcodeFamily = 54; CurrentInstrCycles = 18;
55451: {{ uae_u32 src = srcreg;
55452: uae_s32 s = (uae_s32)src + 2;
55453: if (src & 1) {
55454: last_addr_for_exception_3 = m68k_getpc() + 2;
55455: last_fault_for_exception_3 = m68k_getpc() + s;
55456: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3169;
55457: }
55458: m68k_do_bsr(m68k_getpc() + 2, s);
55459: fill_prefetch_0 ();
55460: }}endlabel3169: ;
55461: return 18;
55462: }
55463: unsigned long REGPARAM2 CPUFUNC(op_61ff_5)(uae_u32 opcode) /* BSR */
55464: {
55465: OpcodeFamily = 54; CurrentInstrCycles = 18;
55466: {{ uae_s32 src = get_ilong_prefetch(2);
55467: uae_s32 s = (uae_s32)src + 2;
55468: if (src & 1) {
55469: last_addr_for_exception_3 = m68k_getpc() + 2;
55470: last_fault_for_exception_3 = m68k_getpc() + s;
55471: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3170;
55472: }
55473: m68k_do_bsr(m68k_getpc() + 6, s);
55474: fill_prefetch_0 ();
55475: }}endlabel3170: ;
55476: return 18;
55477: }
55478: unsigned long REGPARAM2 CPUFUNC(op_6200_5)(uae_u32 opcode) /* Bcc */
55479: {
55480: OpcodeFamily = 55; CurrentInstrCycles = 12;
55481: {{ uae_s16 src = get_iword_prefetch(2);
55482: if (!cctrue(2)) goto didnt_jump;
55483: if (src & 1) {
55484: last_addr_for_exception_3 = m68k_getpc() + 2;
55485: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
55486: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3171;
55487: }
55488: m68k_incpc ((uae_s32)src + 2);
55489: fill_prefetch_0 ();
55490: return 10;
55491: didnt_jump:;
55492: }}m68k_incpc(4);
55493: fill_prefetch_0 ();
55494: endlabel3171: ;
55495: return 12;
55496: }
55497: unsigned long REGPARAM2 CPUFUNC(op_6201_5)(uae_u32 opcode) /* Bcc */
55498: {
55499: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
55500: OpcodeFamily = 55; CurrentInstrCycles = 8;
55501: {{ uae_u32 src = srcreg;
55502: if (!cctrue(2)) goto didnt_jump;
55503: if (src & 1) {
55504: last_addr_for_exception_3 = m68k_getpc() + 2;
55505: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
55506: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3172;
55507: }
55508: m68k_incpc ((uae_s32)src + 2);
55509: fill_prefetch_0 ();
55510: return 10;
55511: didnt_jump:;
55512: }}m68k_incpc(2);
55513: fill_prefetch_2 ();
55514: endlabel3172: ;
55515: return 8;
55516: }
55517: unsigned long REGPARAM2 CPUFUNC(op_62ff_5)(uae_u32 opcode) /* Bcc */
55518: {
55519: OpcodeFamily = 55; CurrentInstrCycles = 12;
55520: { m68k_incpc(2);
55521: if (!cctrue(2)) goto endlabel3173;
55522: last_addr_for_exception_3 = m68k_getpc() + 2;
55523: last_fault_for_exception_3 = m68k_getpc() + 1;
55524: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3173;
55525: { uae_s32 src = get_ilong_prefetch(2);
55526: if (!cctrue(2)) goto didnt_jump;
55527: if (src & 1) {
55528: last_addr_for_exception_3 = m68k_getpc() + 2;
55529: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
55530: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3173;
55531: }
55532: m68k_incpc ((uae_s32)src + 2);
55533: fill_prefetch_0 ();
55534: return 10;
55535: didnt_jump:;
55536: }}m68k_incpc(6);
55537: fill_prefetch_0 ();
55538: endlabel3173: ;
55539: return 12;
55540: }
55541: unsigned long REGPARAM2 CPUFUNC(op_6300_5)(uae_u32 opcode) /* Bcc */
55542: {
55543: OpcodeFamily = 55; CurrentInstrCycles = 12;
55544: {{ uae_s16 src = get_iword_prefetch(2);
55545: if (!cctrue(3)) goto didnt_jump;
55546: if (src & 1) {
55547: last_addr_for_exception_3 = m68k_getpc() + 2;
55548: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
55549: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3174;
55550: }
55551: m68k_incpc ((uae_s32)src + 2);
55552: fill_prefetch_0 ();
55553: return 10;
55554: didnt_jump:;
55555: }}m68k_incpc(4);
55556: fill_prefetch_0 ();
55557: endlabel3174: ;
55558: return 12;
55559: }
55560: unsigned long REGPARAM2 CPUFUNC(op_6301_5)(uae_u32 opcode) /* Bcc */
55561: {
55562: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
55563: OpcodeFamily = 55; CurrentInstrCycles = 8;
55564: {{ uae_u32 src = srcreg;
55565: if (!cctrue(3)) goto didnt_jump;
55566: if (src & 1) {
55567: last_addr_for_exception_3 = m68k_getpc() + 2;
55568: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
55569: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3175;
55570: }
55571: m68k_incpc ((uae_s32)src + 2);
55572: fill_prefetch_0 ();
55573: return 10;
55574: didnt_jump:;
55575: }}m68k_incpc(2);
55576: fill_prefetch_2 ();
55577: endlabel3175: ;
55578: return 8;
55579: }
55580: unsigned long REGPARAM2 CPUFUNC(op_63ff_5)(uae_u32 opcode) /* Bcc */
55581: {
55582: OpcodeFamily = 55; CurrentInstrCycles = 12;
55583: { m68k_incpc(2);
55584: if (!cctrue(3)) goto endlabel3176;
55585: last_addr_for_exception_3 = m68k_getpc() + 2;
55586: last_fault_for_exception_3 = m68k_getpc() + 1;
55587: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3176;
55588: { uae_s32 src = get_ilong_prefetch(2);
55589: if (!cctrue(3)) goto didnt_jump;
55590: if (src & 1) {
55591: last_addr_for_exception_3 = m68k_getpc() + 2;
55592: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
55593: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3176;
55594: }
55595: m68k_incpc ((uae_s32)src + 2);
55596: fill_prefetch_0 ();
55597: return 10;
55598: didnt_jump:;
55599: }}m68k_incpc(6);
55600: fill_prefetch_0 ();
55601: endlabel3176: ;
55602: return 12;
55603: }
55604: unsigned long REGPARAM2 CPUFUNC(op_6400_5)(uae_u32 opcode) /* Bcc */
55605: {
55606: OpcodeFamily = 55; CurrentInstrCycles = 12;
55607: {{ uae_s16 src = get_iword_prefetch(2);
55608: if (!cctrue(4)) goto didnt_jump;
55609: if (src & 1) {
55610: last_addr_for_exception_3 = m68k_getpc() + 2;
55611: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
55612: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3177;
55613: }
55614: m68k_incpc ((uae_s32)src + 2);
55615: fill_prefetch_0 ();
55616: return 10;
55617: didnt_jump:;
55618: }}m68k_incpc(4);
55619: fill_prefetch_0 ();
55620: endlabel3177: ;
55621: return 12;
55622: }
55623: unsigned long REGPARAM2 CPUFUNC(op_6401_5)(uae_u32 opcode) /* Bcc */
55624: {
55625: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
55626: OpcodeFamily = 55; CurrentInstrCycles = 8;
55627: {{ uae_u32 src = srcreg;
55628: if (!cctrue(4)) goto didnt_jump;
55629: if (src & 1) {
55630: last_addr_for_exception_3 = m68k_getpc() + 2;
55631: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
55632: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3178;
55633: }
55634: m68k_incpc ((uae_s32)src + 2);
55635: fill_prefetch_0 ();
55636: return 10;
55637: didnt_jump:;
55638: }}m68k_incpc(2);
55639: fill_prefetch_2 ();
55640: endlabel3178: ;
55641: return 8;
55642: }
55643: unsigned long REGPARAM2 CPUFUNC(op_64ff_5)(uae_u32 opcode) /* Bcc */
55644: {
55645: OpcodeFamily = 55; CurrentInstrCycles = 12;
55646: { m68k_incpc(2);
55647: if (!cctrue(4)) goto endlabel3179;
55648: last_addr_for_exception_3 = m68k_getpc() + 2;
55649: last_fault_for_exception_3 = m68k_getpc() + 1;
55650: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3179;
55651: { uae_s32 src = get_ilong_prefetch(2);
55652: if (!cctrue(4)) goto didnt_jump;
55653: if (src & 1) {
55654: last_addr_for_exception_3 = m68k_getpc() + 2;
55655: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
55656: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3179;
55657: }
55658: m68k_incpc ((uae_s32)src + 2);
55659: fill_prefetch_0 ();
55660: return 10;
55661: didnt_jump:;
55662: }}m68k_incpc(6);
55663: fill_prefetch_0 ();
55664: endlabel3179: ;
55665: return 12;
55666: }
55667: unsigned long REGPARAM2 CPUFUNC(op_6500_5)(uae_u32 opcode) /* Bcc */
55668: {
55669: OpcodeFamily = 55; CurrentInstrCycles = 12;
55670: {{ uae_s16 src = get_iword_prefetch(2);
55671: if (!cctrue(5)) goto didnt_jump;
55672: if (src & 1) {
55673: last_addr_for_exception_3 = m68k_getpc() + 2;
55674: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
55675: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3180;
55676: }
55677: m68k_incpc ((uae_s32)src + 2);
55678: fill_prefetch_0 ();
55679: return 10;
55680: didnt_jump:;
55681: }}m68k_incpc(4);
55682: fill_prefetch_0 ();
55683: endlabel3180: ;
55684: return 12;
55685: }
55686: unsigned long REGPARAM2 CPUFUNC(op_6501_5)(uae_u32 opcode) /* Bcc */
55687: {
55688: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
55689: OpcodeFamily = 55; CurrentInstrCycles = 8;
55690: {{ uae_u32 src = srcreg;
55691: if (!cctrue(5)) goto didnt_jump;
55692: if (src & 1) {
55693: last_addr_for_exception_3 = m68k_getpc() + 2;
55694: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
55695: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3181;
55696: }
55697: m68k_incpc ((uae_s32)src + 2);
55698: fill_prefetch_0 ();
55699: return 10;
55700: didnt_jump:;
55701: }}m68k_incpc(2);
55702: fill_prefetch_2 ();
55703: endlabel3181: ;
55704: return 8;
55705: }
55706: unsigned long REGPARAM2 CPUFUNC(op_65ff_5)(uae_u32 opcode) /* Bcc */
55707: {
55708: OpcodeFamily = 55; CurrentInstrCycles = 12;
55709: { m68k_incpc(2);
55710: if (!cctrue(5)) goto endlabel3182;
55711: last_addr_for_exception_3 = m68k_getpc() + 2;
55712: last_fault_for_exception_3 = m68k_getpc() + 1;
55713: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3182;
55714: { uae_s32 src = get_ilong_prefetch(2);
55715: if (!cctrue(5)) goto didnt_jump;
55716: if (src & 1) {
55717: last_addr_for_exception_3 = m68k_getpc() + 2;
55718: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
55719: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3182;
55720: }
55721: m68k_incpc ((uae_s32)src + 2);
55722: fill_prefetch_0 ();
55723: return 10;
55724: didnt_jump:;
55725: }}m68k_incpc(6);
55726: fill_prefetch_0 ();
55727: endlabel3182: ;
55728: return 12;
55729: }
55730: unsigned long REGPARAM2 CPUFUNC(op_6600_5)(uae_u32 opcode) /* Bcc */
55731: {
55732: OpcodeFamily = 55; CurrentInstrCycles = 12;
55733: {{ uae_s16 src = get_iword_prefetch(2);
55734: if (!cctrue(6)) goto didnt_jump;
55735: if (src & 1) {
55736: last_addr_for_exception_3 = m68k_getpc() + 2;
55737: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
55738: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3183;
55739: }
55740: m68k_incpc ((uae_s32)src + 2);
55741: fill_prefetch_0 ();
55742: return 10;
55743: didnt_jump:;
55744: }}m68k_incpc(4);
55745: fill_prefetch_0 ();
55746: endlabel3183: ;
55747: return 12;
55748: }
55749: unsigned long REGPARAM2 CPUFUNC(op_6601_5)(uae_u32 opcode) /* Bcc */
55750: {
55751: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
55752: OpcodeFamily = 55; CurrentInstrCycles = 8;
55753: {{ uae_u32 src = srcreg;
55754: if (!cctrue(6)) goto didnt_jump;
55755: if (src & 1) {
55756: last_addr_for_exception_3 = m68k_getpc() + 2;
55757: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
55758: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3184;
55759: }
55760: m68k_incpc ((uae_s32)src + 2);
55761: fill_prefetch_0 ();
55762: return 10;
55763: didnt_jump:;
55764: }}m68k_incpc(2);
55765: fill_prefetch_2 ();
55766: endlabel3184: ;
55767: return 8;
55768: }
55769: unsigned long REGPARAM2 CPUFUNC(op_66ff_5)(uae_u32 opcode) /* Bcc */
55770: {
55771: OpcodeFamily = 55; CurrentInstrCycles = 12;
55772: { m68k_incpc(2);
55773: if (!cctrue(6)) goto endlabel3185;
55774: last_addr_for_exception_3 = m68k_getpc() + 2;
55775: last_fault_for_exception_3 = m68k_getpc() + 1;
55776: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3185;
55777: { uae_s32 src = get_ilong_prefetch(2);
55778: if (!cctrue(6)) goto didnt_jump;
55779: if (src & 1) {
55780: last_addr_for_exception_3 = m68k_getpc() + 2;
55781: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
55782: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3185;
55783: }
55784: m68k_incpc ((uae_s32)src + 2);
55785: fill_prefetch_0 ();
55786: return 10;
55787: didnt_jump:;
55788: }}m68k_incpc(6);
55789: fill_prefetch_0 ();
55790: endlabel3185: ;
55791: return 12;
55792: }
55793: unsigned long REGPARAM2 CPUFUNC(op_6700_5)(uae_u32 opcode) /* Bcc */
55794: {
55795: OpcodeFamily = 55; CurrentInstrCycles = 12;
55796: {{ uae_s16 src = get_iword_prefetch(2);
55797: if (!cctrue(7)) goto didnt_jump;
55798: if (src & 1) {
55799: last_addr_for_exception_3 = m68k_getpc() + 2;
55800: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
55801: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3186;
55802: }
55803: m68k_incpc ((uae_s32)src + 2);
55804: fill_prefetch_0 ();
55805: return 10;
55806: didnt_jump:;
55807: }}m68k_incpc(4);
55808: fill_prefetch_0 ();
55809: endlabel3186: ;
55810: return 12;
55811: }
55812: unsigned long REGPARAM2 CPUFUNC(op_6701_5)(uae_u32 opcode) /* Bcc */
55813: {
55814: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
55815: OpcodeFamily = 55; CurrentInstrCycles = 8;
55816: {{ uae_u32 src = srcreg;
55817: if (!cctrue(7)) goto didnt_jump;
55818: if (src & 1) {
55819: last_addr_for_exception_3 = m68k_getpc() + 2;
55820: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
55821: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3187;
55822: }
55823: m68k_incpc ((uae_s32)src + 2);
55824: fill_prefetch_0 ();
55825: return 10;
55826: didnt_jump:;
55827: }}m68k_incpc(2);
55828: fill_prefetch_2 ();
55829: endlabel3187: ;
55830: return 8;
55831: }
55832: unsigned long REGPARAM2 CPUFUNC(op_67ff_5)(uae_u32 opcode) /* Bcc */
55833: {
55834: OpcodeFamily = 55; CurrentInstrCycles = 12;
55835: { m68k_incpc(2);
55836: if (!cctrue(7)) goto endlabel3188;
55837: last_addr_for_exception_3 = m68k_getpc() + 2;
55838: last_fault_for_exception_3 = m68k_getpc() + 1;
55839: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3188;
55840: { uae_s32 src = get_ilong_prefetch(2);
55841: if (!cctrue(7)) goto didnt_jump;
55842: if (src & 1) {
55843: last_addr_for_exception_3 = m68k_getpc() + 2;
55844: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
55845: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3188;
55846: }
55847: m68k_incpc ((uae_s32)src + 2);
55848: fill_prefetch_0 ();
55849: return 10;
55850: didnt_jump:;
55851: }}m68k_incpc(6);
55852: fill_prefetch_0 ();
55853: endlabel3188: ;
55854: return 12;
55855: }
55856: unsigned long REGPARAM2 CPUFUNC(op_6800_5)(uae_u32 opcode) /* Bcc */
55857: {
55858: OpcodeFamily = 55; CurrentInstrCycles = 12;
55859: {{ uae_s16 src = get_iword_prefetch(2);
55860: if (!cctrue(8)) goto didnt_jump;
55861: if (src & 1) {
55862: last_addr_for_exception_3 = m68k_getpc() + 2;
55863: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
55864: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3189;
55865: }
55866: m68k_incpc ((uae_s32)src + 2);
55867: fill_prefetch_0 ();
55868: return 10;
55869: didnt_jump:;
55870: }}m68k_incpc(4);
55871: fill_prefetch_0 ();
55872: endlabel3189: ;
55873: return 12;
55874: }
55875: unsigned long REGPARAM2 CPUFUNC(op_6801_5)(uae_u32 opcode) /* Bcc */
55876: {
55877: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
55878: OpcodeFamily = 55; CurrentInstrCycles = 8;
55879: {{ uae_u32 src = srcreg;
55880: if (!cctrue(8)) goto didnt_jump;
55881: if (src & 1) {
55882: last_addr_for_exception_3 = m68k_getpc() + 2;
55883: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
55884: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3190;
55885: }
55886: m68k_incpc ((uae_s32)src + 2);
55887: fill_prefetch_0 ();
55888: return 10;
55889: didnt_jump:;
55890: }}m68k_incpc(2);
55891: fill_prefetch_2 ();
55892: endlabel3190: ;
55893: return 8;
55894: }
55895: unsigned long REGPARAM2 CPUFUNC(op_68ff_5)(uae_u32 opcode) /* Bcc */
55896: {
55897: OpcodeFamily = 55; CurrentInstrCycles = 12;
55898: { m68k_incpc(2);
55899: if (!cctrue(8)) goto endlabel3191;
55900: last_addr_for_exception_3 = m68k_getpc() + 2;
55901: last_fault_for_exception_3 = m68k_getpc() + 1;
55902: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3191;
55903: { uae_s32 src = get_ilong_prefetch(2);
55904: if (!cctrue(8)) goto didnt_jump;
55905: if (src & 1) {
55906: last_addr_for_exception_3 = m68k_getpc() + 2;
55907: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
55908: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3191;
55909: }
55910: m68k_incpc ((uae_s32)src + 2);
55911: fill_prefetch_0 ();
55912: return 10;
55913: didnt_jump:;
55914: }}m68k_incpc(6);
55915: fill_prefetch_0 ();
55916: endlabel3191: ;
55917: return 12;
55918: }
55919: unsigned long REGPARAM2 CPUFUNC(op_6900_5)(uae_u32 opcode) /* Bcc */
55920: {
55921: OpcodeFamily = 55; CurrentInstrCycles = 12;
55922: {{ uae_s16 src = get_iword_prefetch(2);
55923: if (!cctrue(9)) goto didnt_jump;
55924: if (src & 1) {
55925: last_addr_for_exception_3 = m68k_getpc() + 2;
55926: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
55927: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3192;
55928: }
55929: m68k_incpc ((uae_s32)src + 2);
55930: fill_prefetch_0 ();
55931: return 10;
55932: didnt_jump:;
55933: }}m68k_incpc(4);
55934: fill_prefetch_0 ();
55935: endlabel3192: ;
55936: return 12;
55937: }
55938: unsigned long REGPARAM2 CPUFUNC(op_6901_5)(uae_u32 opcode) /* Bcc */
55939: {
55940: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
55941: OpcodeFamily = 55; CurrentInstrCycles = 8;
55942: {{ uae_u32 src = srcreg;
55943: if (!cctrue(9)) goto didnt_jump;
55944: if (src & 1) {
55945: last_addr_for_exception_3 = m68k_getpc() + 2;
55946: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
55947: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3193;
55948: }
55949: m68k_incpc ((uae_s32)src + 2);
55950: fill_prefetch_0 ();
55951: return 10;
55952: didnt_jump:;
55953: }}m68k_incpc(2);
55954: fill_prefetch_2 ();
55955: endlabel3193: ;
55956: return 8;
55957: }
55958: unsigned long REGPARAM2 CPUFUNC(op_69ff_5)(uae_u32 opcode) /* Bcc */
55959: {
55960: OpcodeFamily = 55; CurrentInstrCycles = 12;
55961: { m68k_incpc(2);
55962: if (!cctrue(9)) goto endlabel3194;
55963: last_addr_for_exception_3 = m68k_getpc() + 2;
55964: last_fault_for_exception_3 = m68k_getpc() + 1;
55965: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3194;
55966: { uae_s32 src = get_ilong_prefetch(2);
55967: if (!cctrue(9)) goto didnt_jump;
55968: if (src & 1) {
55969: last_addr_for_exception_3 = m68k_getpc() + 2;
55970: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
55971: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3194;
55972: }
55973: m68k_incpc ((uae_s32)src + 2);
55974: fill_prefetch_0 ();
55975: return 10;
55976: didnt_jump:;
55977: }}m68k_incpc(6);
55978: fill_prefetch_0 ();
55979: endlabel3194: ;
55980: return 12;
55981: }
55982: unsigned long REGPARAM2 CPUFUNC(op_6a00_5)(uae_u32 opcode) /* Bcc */
55983: {
55984: OpcodeFamily = 55; CurrentInstrCycles = 12;
55985: {{ uae_s16 src = get_iword_prefetch(2);
55986: if (!cctrue(10)) goto didnt_jump;
55987: if (src & 1) {
55988: last_addr_for_exception_3 = m68k_getpc() + 2;
55989: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
55990: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3195;
55991: }
55992: m68k_incpc ((uae_s32)src + 2);
55993: fill_prefetch_0 ();
55994: return 10;
55995: didnt_jump:;
55996: }}m68k_incpc(4);
55997: fill_prefetch_0 ();
55998: endlabel3195: ;
55999: return 12;
56000: }
56001: unsigned long REGPARAM2 CPUFUNC(op_6a01_5)(uae_u32 opcode) /* Bcc */
56002: {
56003: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
56004: OpcodeFamily = 55; CurrentInstrCycles = 8;
56005: {{ uae_u32 src = srcreg;
56006: if (!cctrue(10)) goto didnt_jump;
56007: if (src & 1) {
56008: last_addr_for_exception_3 = m68k_getpc() + 2;
56009: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
56010: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3196;
56011: }
56012: m68k_incpc ((uae_s32)src + 2);
56013: fill_prefetch_0 ();
56014: return 10;
56015: didnt_jump:;
56016: }}m68k_incpc(2);
56017: fill_prefetch_2 ();
56018: endlabel3196: ;
56019: return 8;
56020: }
56021: unsigned long REGPARAM2 CPUFUNC(op_6aff_5)(uae_u32 opcode) /* Bcc */
56022: {
56023: OpcodeFamily = 55; CurrentInstrCycles = 12;
56024: { m68k_incpc(2);
56025: if (!cctrue(10)) goto endlabel3197;
56026: last_addr_for_exception_3 = m68k_getpc() + 2;
56027: last_fault_for_exception_3 = m68k_getpc() + 1;
56028: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3197;
56029: { uae_s32 src = get_ilong_prefetch(2);
56030: if (!cctrue(10)) goto didnt_jump;
56031: if (src & 1) {
56032: last_addr_for_exception_3 = m68k_getpc() + 2;
56033: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
56034: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3197;
56035: }
56036: m68k_incpc ((uae_s32)src + 2);
56037: fill_prefetch_0 ();
56038: return 10;
56039: didnt_jump:;
56040: }}m68k_incpc(6);
56041: fill_prefetch_0 ();
56042: endlabel3197: ;
56043: return 12;
56044: }
56045: unsigned long REGPARAM2 CPUFUNC(op_6b00_5)(uae_u32 opcode) /* Bcc */
56046: {
56047: OpcodeFamily = 55; CurrentInstrCycles = 12;
56048: {{ uae_s16 src = get_iword_prefetch(2);
56049: if (!cctrue(11)) goto didnt_jump;
56050: if (src & 1) {
56051: last_addr_for_exception_3 = m68k_getpc() + 2;
56052: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
56053: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3198;
56054: }
56055: m68k_incpc ((uae_s32)src + 2);
56056: fill_prefetch_0 ();
56057: return 10;
56058: didnt_jump:;
56059: }}m68k_incpc(4);
56060: fill_prefetch_0 ();
56061: endlabel3198: ;
56062: return 12;
56063: }
56064: unsigned long REGPARAM2 CPUFUNC(op_6b01_5)(uae_u32 opcode) /* Bcc */
56065: {
56066: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
56067: OpcodeFamily = 55; CurrentInstrCycles = 8;
56068: {{ uae_u32 src = srcreg;
56069: if (!cctrue(11)) goto didnt_jump;
56070: if (src & 1) {
56071: last_addr_for_exception_3 = m68k_getpc() + 2;
56072: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
56073: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3199;
56074: }
56075: m68k_incpc ((uae_s32)src + 2);
56076: fill_prefetch_0 ();
56077: return 10;
56078: didnt_jump:;
56079: }}m68k_incpc(2);
56080: fill_prefetch_2 ();
56081: endlabel3199: ;
56082: return 8;
56083: }
56084: unsigned long REGPARAM2 CPUFUNC(op_6bff_5)(uae_u32 opcode) /* Bcc */
56085: {
56086: OpcodeFamily = 55; CurrentInstrCycles = 12;
56087: { m68k_incpc(2);
56088: if (!cctrue(11)) goto endlabel3200;
56089: last_addr_for_exception_3 = m68k_getpc() + 2;
56090: last_fault_for_exception_3 = m68k_getpc() + 1;
56091: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3200;
56092: { uae_s32 src = get_ilong_prefetch(2);
56093: if (!cctrue(11)) goto didnt_jump;
56094: if (src & 1) {
56095: last_addr_for_exception_3 = m68k_getpc() + 2;
56096: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
56097: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3200;
56098: }
56099: m68k_incpc ((uae_s32)src + 2);
56100: fill_prefetch_0 ();
56101: return 10;
56102: didnt_jump:;
56103: }}m68k_incpc(6);
56104: fill_prefetch_0 ();
56105: endlabel3200: ;
56106: return 12;
56107: }
56108: unsigned long REGPARAM2 CPUFUNC(op_6c00_5)(uae_u32 opcode) /* Bcc */
56109: {
56110: OpcodeFamily = 55; CurrentInstrCycles = 12;
56111: {{ uae_s16 src = get_iword_prefetch(2);
56112: if (!cctrue(12)) goto didnt_jump;
56113: if (src & 1) {
56114: last_addr_for_exception_3 = m68k_getpc() + 2;
56115: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
56116: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3201;
56117: }
56118: m68k_incpc ((uae_s32)src + 2);
56119: fill_prefetch_0 ();
56120: return 10;
56121: didnt_jump:;
56122: }}m68k_incpc(4);
56123: fill_prefetch_0 ();
56124: endlabel3201: ;
56125: return 12;
56126: }
56127: unsigned long REGPARAM2 CPUFUNC(op_6c01_5)(uae_u32 opcode) /* Bcc */
56128: {
56129: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
56130: OpcodeFamily = 55; CurrentInstrCycles = 8;
56131: {{ uae_u32 src = srcreg;
56132: if (!cctrue(12)) goto didnt_jump;
56133: if (src & 1) {
56134: last_addr_for_exception_3 = m68k_getpc() + 2;
56135: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
56136: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3202;
56137: }
56138: m68k_incpc ((uae_s32)src + 2);
56139: fill_prefetch_0 ();
56140: return 10;
56141: didnt_jump:;
56142: }}m68k_incpc(2);
56143: fill_prefetch_2 ();
56144: endlabel3202: ;
56145: return 8;
56146: }
56147: unsigned long REGPARAM2 CPUFUNC(op_6cff_5)(uae_u32 opcode) /* Bcc */
56148: {
56149: OpcodeFamily = 55; CurrentInstrCycles = 12;
56150: { m68k_incpc(2);
56151: if (!cctrue(12)) goto endlabel3203;
56152: last_addr_for_exception_3 = m68k_getpc() + 2;
56153: last_fault_for_exception_3 = m68k_getpc() + 1;
56154: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3203;
56155: { uae_s32 src = get_ilong_prefetch(2);
56156: if (!cctrue(12)) goto didnt_jump;
56157: if (src & 1) {
56158: last_addr_for_exception_3 = m68k_getpc() + 2;
56159: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
56160: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3203;
56161: }
56162: m68k_incpc ((uae_s32)src + 2);
56163: fill_prefetch_0 ();
56164: return 10;
56165: didnt_jump:;
56166: }}m68k_incpc(6);
56167: fill_prefetch_0 ();
56168: endlabel3203: ;
56169: return 12;
56170: }
56171: unsigned long REGPARAM2 CPUFUNC(op_6d00_5)(uae_u32 opcode) /* Bcc */
56172: {
56173: OpcodeFamily = 55; CurrentInstrCycles = 12;
56174: {{ uae_s16 src = get_iword_prefetch(2);
56175: if (!cctrue(13)) goto didnt_jump;
56176: if (src & 1) {
56177: last_addr_for_exception_3 = m68k_getpc() + 2;
56178: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
56179: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3204;
56180: }
56181: m68k_incpc ((uae_s32)src + 2);
56182: fill_prefetch_0 ();
56183: return 10;
56184: didnt_jump:;
56185: }}m68k_incpc(4);
56186: fill_prefetch_0 ();
56187: endlabel3204: ;
56188: return 12;
56189: }
56190: unsigned long REGPARAM2 CPUFUNC(op_6d01_5)(uae_u32 opcode) /* Bcc */
56191: {
56192: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
56193: OpcodeFamily = 55; CurrentInstrCycles = 8;
56194: {{ uae_u32 src = srcreg;
56195: if (!cctrue(13)) goto didnt_jump;
56196: if (src & 1) {
56197: last_addr_for_exception_3 = m68k_getpc() + 2;
56198: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
56199: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3205;
56200: }
56201: m68k_incpc ((uae_s32)src + 2);
56202: fill_prefetch_0 ();
56203: return 10;
56204: didnt_jump:;
56205: }}m68k_incpc(2);
56206: fill_prefetch_2 ();
56207: endlabel3205: ;
56208: return 8;
56209: }
56210: unsigned long REGPARAM2 CPUFUNC(op_6dff_5)(uae_u32 opcode) /* Bcc */
56211: {
56212: OpcodeFamily = 55; CurrentInstrCycles = 12;
56213: { m68k_incpc(2);
56214: if (!cctrue(13)) goto endlabel3206;
56215: last_addr_for_exception_3 = m68k_getpc() + 2;
56216: last_fault_for_exception_3 = m68k_getpc() + 1;
56217: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3206;
56218: { uae_s32 src = get_ilong_prefetch(2);
56219: if (!cctrue(13)) goto didnt_jump;
56220: if (src & 1) {
56221: last_addr_for_exception_3 = m68k_getpc() + 2;
56222: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
56223: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3206;
56224: }
56225: m68k_incpc ((uae_s32)src + 2);
56226: fill_prefetch_0 ();
56227: return 10;
56228: didnt_jump:;
56229: }}m68k_incpc(6);
56230: fill_prefetch_0 ();
56231: endlabel3206: ;
56232: return 12;
56233: }
56234: unsigned long REGPARAM2 CPUFUNC(op_6e00_5)(uae_u32 opcode) /* Bcc */
56235: {
56236: OpcodeFamily = 55; CurrentInstrCycles = 12;
56237: {{ uae_s16 src = get_iword_prefetch(2);
56238: if (!cctrue(14)) goto didnt_jump;
56239: if (src & 1) {
56240: last_addr_for_exception_3 = m68k_getpc() + 2;
56241: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
56242: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3207;
56243: }
56244: m68k_incpc ((uae_s32)src + 2);
56245: fill_prefetch_0 ();
56246: return 10;
56247: didnt_jump:;
56248: }}m68k_incpc(4);
56249: fill_prefetch_0 ();
56250: endlabel3207: ;
56251: return 12;
56252: }
56253: unsigned long REGPARAM2 CPUFUNC(op_6e01_5)(uae_u32 opcode) /* Bcc */
56254: {
56255: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
56256: OpcodeFamily = 55; CurrentInstrCycles = 8;
56257: {{ uae_u32 src = srcreg;
56258: if (!cctrue(14)) goto didnt_jump;
56259: if (src & 1) {
56260: last_addr_for_exception_3 = m68k_getpc() + 2;
56261: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
56262: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3208;
56263: }
56264: m68k_incpc ((uae_s32)src + 2);
56265: fill_prefetch_0 ();
56266: return 10;
56267: didnt_jump:;
56268: }}m68k_incpc(2);
56269: fill_prefetch_2 ();
56270: endlabel3208: ;
56271: return 8;
56272: }
56273: unsigned long REGPARAM2 CPUFUNC(op_6eff_5)(uae_u32 opcode) /* Bcc */
56274: {
56275: OpcodeFamily = 55; CurrentInstrCycles = 12;
56276: { m68k_incpc(2);
56277: if (!cctrue(14)) goto endlabel3209;
56278: last_addr_for_exception_3 = m68k_getpc() + 2;
56279: last_fault_for_exception_3 = m68k_getpc() + 1;
56280: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3209;
56281: { uae_s32 src = get_ilong_prefetch(2);
56282: if (!cctrue(14)) goto didnt_jump;
56283: if (src & 1) {
56284: last_addr_for_exception_3 = m68k_getpc() + 2;
56285: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
56286: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3209;
56287: }
56288: m68k_incpc ((uae_s32)src + 2);
56289: fill_prefetch_0 ();
56290: return 10;
56291: didnt_jump:;
56292: }}m68k_incpc(6);
56293: fill_prefetch_0 ();
56294: endlabel3209: ;
56295: return 12;
56296: }
56297: unsigned long REGPARAM2 CPUFUNC(op_6f00_5)(uae_u32 opcode) /* Bcc */
56298: {
56299: OpcodeFamily = 55; CurrentInstrCycles = 12;
56300: {{ uae_s16 src = get_iword_prefetch(2);
56301: if (!cctrue(15)) goto didnt_jump;
56302: if (src & 1) {
56303: last_addr_for_exception_3 = m68k_getpc() + 2;
56304: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
56305: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3210;
56306: }
56307: m68k_incpc ((uae_s32)src + 2);
56308: fill_prefetch_0 ();
56309: return 10;
56310: didnt_jump:;
56311: }}m68k_incpc(4);
56312: fill_prefetch_0 ();
56313: endlabel3210: ;
56314: return 12;
56315: }
56316: unsigned long REGPARAM2 CPUFUNC(op_6f01_5)(uae_u32 opcode) /* Bcc */
56317: {
56318: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
56319: OpcodeFamily = 55; CurrentInstrCycles = 8;
56320: {{ uae_u32 src = srcreg;
56321: if (!cctrue(15)) goto didnt_jump;
56322: if (src & 1) {
56323: last_addr_for_exception_3 = m68k_getpc() + 2;
56324: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
56325: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3211;
56326: }
56327: m68k_incpc ((uae_s32)src + 2);
56328: fill_prefetch_0 ();
56329: return 10;
56330: didnt_jump:;
56331: }}m68k_incpc(2);
56332: fill_prefetch_2 ();
56333: endlabel3211: ;
56334: return 8;
56335: }
56336: unsigned long REGPARAM2 CPUFUNC(op_6fff_5)(uae_u32 opcode) /* Bcc */
56337: {
56338: OpcodeFamily = 55; CurrentInstrCycles = 12;
56339: { m68k_incpc(2);
56340: if (!cctrue(15)) goto endlabel3212;
56341: last_addr_for_exception_3 = m68k_getpc() + 2;
56342: last_fault_for_exception_3 = m68k_getpc() + 1;
56343: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3212;
56344: { uae_s32 src = get_ilong_prefetch(2);
56345: if (!cctrue(15)) goto didnt_jump;
56346: if (src & 1) {
56347: last_addr_for_exception_3 = m68k_getpc() + 2;
56348: last_fault_for_exception_3 = m68k_getpc() + 2 + (uae_s32)src;
56349: last_op_for_exception_3 = opcode; Exception(3,0,M68000_EXC_SRC_CPU); goto endlabel3212;
56350: }
56351: m68k_incpc ((uae_s32)src + 2);
56352: fill_prefetch_0 ();
56353: return 10;
56354: didnt_jump:;
56355: }}m68k_incpc(6);
56356: fill_prefetch_0 ();
56357: endlabel3212: ;
56358: return 12;
56359: }
56360: unsigned long REGPARAM2 CPUFUNC(op_7000_5)(uae_u32 opcode) /* MOVE */
56361: {
56362: uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
56363: uae_u32 dstreg = (opcode >> 9) & 7;
56364: OpcodeFamily = 30; CurrentInstrCycles = 4;
56365: {{ uae_u32 src = srcreg;
56366: { CLEAR_CZNV;
56367: SET_ZFLG (((uae_s32)(src)) == 0);
56368: SET_NFLG (((uae_s32)(src)) < 0);
56369: m68k_dreg(regs, dstreg) = (src);
56370: }}}m68k_incpc(2);
56371: fill_prefetch_2 ();
56372: return 4;
56373: }
56374: unsigned long REGPARAM2 CPUFUNC(op_8000_5)(uae_u32 opcode) /* OR */
56375: {
56376: uae_u32 srcreg = (opcode & 7);
56377: uae_u32 dstreg = (opcode >> 9) & 7;
56378: OpcodeFamily = 1; CurrentInstrCycles = 4;
56379: {{ uae_s8 src = m68k_dreg(regs, srcreg);
56380: { uae_s8 dst = m68k_dreg(regs, dstreg);
56381: src |= dst;
56382: CLEAR_CZNV;
56383: SET_ZFLG (((uae_s8)(src)) == 0);
56384: SET_NFLG (((uae_s8)(src)) < 0);
56385: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
56386: }}}m68k_incpc(2);
56387: fill_prefetch_2 ();
56388: return 4;
56389: }
56390: unsigned long REGPARAM2 CPUFUNC(op_8010_5)(uae_u32 opcode) /* OR */
56391: {
56392: uae_u32 srcreg = (opcode & 7);
56393: uae_u32 dstreg = (opcode >> 9) & 7;
56394: OpcodeFamily = 1; CurrentInstrCycles = 8;
56395: {{ uaecptr srca = m68k_areg(regs, srcreg);
56396: { uae_s8 src = get_byte(srca);
56397: { uae_s8 dst = m68k_dreg(regs, dstreg);
56398: src |= dst;
56399: CLEAR_CZNV;
56400: SET_ZFLG (((uae_s8)(src)) == 0);
56401: SET_NFLG (((uae_s8)(src)) < 0);
56402: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
56403: }}}}m68k_incpc(2);
56404: fill_prefetch_2 ();
56405: return 8;
56406: }
56407: unsigned long REGPARAM2 CPUFUNC(op_8018_5)(uae_u32 opcode) /* OR */
56408: {
56409: uae_u32 srcreg = (opcode & 7);
56410: uae_u32 dstreg = (opcode >> 9) & 7;
56411: OpcodeFamily = 1; CurrentInstrCycles = 8;
56412: {{ uaecptr srca = m68k_areg(regs, srcreg);
56413: { uae_s8 src = get_byte(srca);
56414: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
56415: { uae_s8 dst = m68k_dreg(regs, dstreg);
56416: src |= dst;
56417: CLEAR_CZNV;
56418: SET_ZFLG (((uae_s8)(src)) == 0);
56419: SET_NFLG (((uae_s8)(src)) < 0);
56420: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
56421: }}}}m68k_incpc(2);
56422: fill_prefetch_2 ();
56423: return 8;
56424: }
56425: unsigned long REGPARAM2 CPUFUNC(op_8020_5)(uae_u32 opcode) /* OR */
56426: {
56427: uae_u32 srcreg = (opcode & 7);
56428: uae_u32 dstreg = (opcode >> 9) & 7;
56429: OpcodeFamily = 1; CurrentInstrCycles = 10;
56430: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
56431: { uae_s8 src = get_byte(srca);
56432: m68k_areg (regs, srcreg) = srca;
56433: { uae_s8 dst = m68k_dreg(regs, dstreg);
56434: src |= dst;
56435: CLEAR_CZNV;
56436: SET_ZFLG (((uae_s8)(src)) == 0);
56437: SET_NFLG (((uae_s8)(src)) < 0);
56438: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
56439: }}}}m68k_incpc(2);
56440: fill_prefetch_2 ();
56441: return 10;
56442: }
56443: unsigned long REGPARAM2 CPUFUNC(op_8028_5)(uae_u32 opcode) /* OR */
56444: {
56445: uae_u32 srcreg = (opcode & 7);
56446: uae_u32 dstreg = (opcode >> 9) & 7;
56447: OpcodeFamily = 1; CurrentInstrCycles = 12;
56448: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
56449: { uae_s8 src = get_byte(srca);
56450: { uae_s8 dst = m68k_dreg(regs, dstreg);
56451: src |= dst;
56452: CLEAR_CZNV;
56453: SET_ZFLG (((uae_s8)(src)) == 0);
56454: SET_NFLG (((uae_s8)(src)) < 0);
56455: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
56456: }}}}m68k_incpc(4);
56457: fill_prefetch_0 ();
56458: return 12;
56459: }
56460: unsigned long REGPARAM2 CPUFUNC(op_8030_5)(uae_u32 opcode) /* OR */
56461: {
56462: uae_u32 srcreg = (opcode & 7);
56463: uae_u32 dstreg = (opcode >> 9) & 7;
56464: OpcodeFamily = 1; CurrentInstrCycles = 14;
56465: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
56466: BusCyclePenalty += 2;
56467: { uae_s8 src = get_byte(srca);
56468: { uae_s8 dst = m68k_dreg(regs, dstreg);
56469: src |= dst;
56470: CLEAR_CZNV;
56471: SET_ZFLG (((uae_s8)(src)) == 0);
56472: SET_NFLG (((uae_s8)(src)) < 0);
56473: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
56474: }}}}m68k_incpc(4);
56475: fill_prefetch_0 ();
56476: return 14;
56477: }
56478: unsigned long REGPARAM2 CPUFUNC(op_8038_5)(uae_u32 opcode) /* OR */
56479: {
56480: uae_u32 dstreg = (opcode >> 9) & 7;
56481: OpcodeFamily = 1; CurrentInstrCycles = 12;
56482: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
56483: { uae_s8 src = get_byte(srca);
56484: { uae_s8 dst = m68k_dreg(regs, dstreg);
56485: src |= dst;
56486: CLEAR_CZNV;
56487: SET_ZFLG (((uae_s8)(src)) == 0);
56488: SET_NFLG (((uae_s8)(src)) < 0);
56489: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
56490: }}}}m68k_incpc(4);
56491: fill_prefetch_0 ();
56492: return 12;
56493: }
56494: unsigned long REGPARAM2 CPUFUNC(op_8039_5)(uae_u32 opcode) /* OR */
56495: {
56496: uae_u32 dstreg = (opcode >> 9) & 7;
56497: OpcodeFamily = 1; CurrentInstrCycles = 16;
56498: {{ uaecptr srca = get_ilong_prefetch(2);
56499: { uae_s8 src = get_byte(srca);
56500: { uae_s8 dst = m68k_dreg(regs, dstreg);
56501: src |= dst;
56502: CLEAR_CZNV;
56503: SET_ZFLG (((uae_s8)(src)) == 0);
56504: SET_NFLG (((uae_s8)(src)) < 0);
56505: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
56506: }}}}m68k_incpc(6);
56507: fill_prefetch_0 ();
56508: return 16;
56509: }
56510: unsigned long REGPARAM2 CPUFUNC(op_803a_5)(uae_u32 opcode) /* OR */
56511: {
56512: uae_u32 dstreg = (opcode >> 9) & 7;
56513: OpcodeFamily = 1; CurrentInstrCycles = 12;
56514: {{ uaecptr srca = m68k_getpc () + 2;
56515: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
56516: { uae_s8 src = get_byte(srca);
56517: { uae_s8 dst = m68k_dreg(regs, dstreg);
56518: src |= dst;
56519: CLEAR_CZNV;
56520: SET_ZFLG (((uae_s8)(src)) == 0);
56521: SET_NFLG (((uae_s8)(src)) < 0);
56522: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
56523: }}}}m68k_incpc(4);
56524: fill_prefetch_0 ();
56525: return 12;
56526: }
56527: unsigned long REGPARAM2 CPUFUNC(op_803b_5)(uae_u32 opcode) /* OR */
56528: {
56529: uae_u32 dstreg = (opcode >> 9) & 7;
56530: OpcodeFamily = 1; CurrentInstrCycles = 14;
56531: {{ uaecptr tmppc = m68k_getpc() + 2;
56532: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
56533: BusCyclePenalty += 2;
56534: { uae_s8 src = get_byte(srca);
56535: { uae_s8 dst = m68k_dreg(regs, dstreg);
56536: src |= dst;
56537: CLEAR_CZNV;
56538: SET_ZFLG (((uae_s8)(src)) == 0);
56539: SET_NFLG (((uae_s8)(src)) < 0);
56540: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
56541: }}}}m68k_incpc(4);
56542: fill_prefetch_0 ();
56543: return 14;
56544: }
56545: unsigned long REGPARAM2 CPUFUNC(op_803c_5)(uae_u32 opcode) /* OR */
56546: {
56547: uae_u32 dstreg = (opcode >> 9) & 7;
56548: OpcodeFamily = 1; CurrentInstrCycles = 8;
56549: {{ uae_s8 src = get_ibyte_prefetch(2);
56550: { uae_s8 dst = m68k_dreg(regs, dstreg);
56551: src |= dst;
56552: CLEAR_CZNV;
56553: SET_ZFLG (((uae_s8)(src)) == 0);
56554: SET_NFLG (((uae_s8)(src)) < 0);
56555: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
56556: }}}m68k_incpc(4);
56557: fill_prefetch_0 ();
56558: return 8;
56559: }
56560: unsigned long REGPARAM2 CPUFUNC(op_8040_5)(uae_u32 opcode) /* OR */
56561: {
56562: uae_u32 srcreg = (opcode & 7);
56563: uae_u32 dstreg = (opcode >> 9) & 7;
56564: OpcodeFamily = 1; CurrentInstrCycles = 4;
56565: {{ uae_s16 src = m68k_dreg(regs, srcreg);
56566: { uae_s16 dst = m68k_dreg(regs, dstreg);
56567: src |= dst;
56568: CLEAR_CZNV;
56569: SET_ZFLG (((uae_s16)(src)) == 0);
56570: SET_NFLG (((uae_s16)(src)) < 0);
56571: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
56572: }}}m68k_incpc(2);
56573: fill_prefetch_2 ();
56574: return 4;
56575: }
56576: unsigned long REGPARAM2 CPUFUNC(op_8050_5)(uae_u32 opcode) /* OR */
56577: {
56578: uae_u32 srcreg = (opcode & 7);
56579: uae_u32 dstreg = (opcode >> 9) & 7;
56580: OpcodeFamily = 1; CurrentInstrCycles = 8;
56581: {{ uaecptr srca = m68k_areg(regs, srcreg);
56582: if ((srca & 1) != 0) {
56583: last_fault_for_exception_3 = srca;
56584: last_op_for_exception_3 = opcode;
56585: last_addr_for_exception_3 = m68k_getpc() + 2;
56586: Exception(3, 0, M68000_EXC_SRC_CPU);
56587: goto endlabel3226;
56588: }
56589: {{ uae_s16 src = get_word(srca);
56590: { uae_s16 dst = m68k_dreg(regs, dstreg);
56591: src |= dst;
56592: CLEAR_CZNV;
56593: SET_ZFLG (((uae_s16)(src)) == 0);
56594: SET_NFLG (((uae_s16)(src)) < 0);
56595: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
56596: }}}}}m68k_incpc(2);
56597: fill_prefetch_2 ();
56598: endlabel3226: ;
56599: return 8;
56600: }
56601: unsigned long REGPARAM2 CPUFUNC(op_8058_5)(uae_u32 opcode) /* OR */
56602: {
56603: uae_u32 srcreg = (opcode & 7);
56604: uae_u32 dstreg = (opcode >> 9) & 7;
56605: OpcodeFamily = 1; CurrentInstrCycles = 8;
56606: {{ uaecptr srca = m68k_areg(regs, srcreg);
56607: if ((srca & 1) != 0) {
56608: last_fault_for_exception_3 = srca;
56609: last_op_for_exception_3 = opcode;
56610: last_addr_for_exception_3 = m68k_getpc() + 2;
56611: Exception(3, 0, M68000_EXC_SRC_CPU);
56612: goto endlabel3227;
56613: }
56614: {{ uae_s16 src = get_word(srca);
56615: m68k_areg(regs, srcreg) += 2;
56616: { uae_s16 dst = m68k_dreg(regs, dstreg);
56617: src |= dst;
56618: CLEAR_CZNV;
56619: SET_ZFLG (((uae_s16)(src)) == 0);
56620: SET_NFLG (((uae_s16)(src)) < 0);
56621: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
56622: }}}}}m68k_incpc(2);
56623: fill_prefetch_2 ();
56624: endlabel3227: ;
56625: return 8;
56626: }
56627: unsigned long REGPARAM2 CPUFUNC(op_8060_5)(uae_u32 opcode) /* OR */
56628: {
56629: uae_u32 srcreg = (opcode & 7);
56630: uae_u32 dstreg = (opcode >> 9) & 7;
56631: OpcodeFamily = 1; CurrentInstrCycles = 10;
56632: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
56633: if ((srca & 1) != 0) {
56634: last_fault_for_exception_3 = srca;
56635: last_op_for_exception_3 = opcode;
56636: last_addr_for_exception_3 = m68k_getpc() + 2;
56637: Exception(3, 0, M68000_EXC_SRC_CPU);
56638: goto endlabel3228;
56639: }
56640: {{ uae_s16 src = get_word(srca);
56641: m68k_areg (regs, srcreg) = srca;
56642: { uae_s16 dst = m68k_dreg(regs, dstreg);
56643: src |= dst;
56644: CLEAR_CZNV;
56645: SET_ZFLG (((uae_s16)(src)) == 0);
56646: SET_NFLG (((uae_s16)(src)) < 0);
56647: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
56648: }}}}}m68k_incpc(2);
56649: fill_prefetch_2 ();
56650: endlabel3228: ;
56651: return 10;
56652: }
56653: unsigned long REGPARAM2 CPUFUNC(op_8068_5)(uae_u32 opcode) /* OR */
56654: {
56655: uae_u32 srcreg = (opcode & 7);
56656: uae_u32 dstreg = (opcode >> 9) & 7;
56657: OpcodeFamily = 1; CurrentInstrCycles = 12;
56658: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
56659: if ((srca & 1) != 0) {
56660: last_fault_for_exception_3 = srca;
56661: last_op_for_exception_3 = opcode;
56662: last_addr_for_exception_3 = m68k_getpc() + 4;
56663: Exception(3, 0, M68000_EXC_SRC_CPU);
56664: goto endlabel3229;
56665: }
56666: {{ uae_s16 src = get_word(srca);
56667: { uae_s16 dst = m68k_dreg(regs, dstreg);
56668: src |= dst;
56669: CLEAR_CZNV;
56670: SET_ZFLG (((uae_s16)(src)) == 0);
56671: SET_NFLG (((uae_s16)(src)) < 0);
56672: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
56673: }}}}}m68k_incpc(4);
56674: fill_prefetch_0 ();
56675: endlabel3229: ;
56676: return 12;
56677: }
56678: unsigned long REGPARAM2 CPUFUNC(op_8070_5)(uae_u32 opcode) /* OR */
56679: {
56680: uae_u32 srcreg = (opcode & 7);
56681: uae_u32 dstreg = (opcode >> 9) & 7;
56682: OpcodeFamily = 1; CurrentInstrCycles = 14;
56683: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
56684: BusCyclePenalty += 2;
56685: if ((srca & 1) != 0) {
56686: last_fault_for_exception_3 = srca;
56687: last_op_for_exception_3 = opcode;
56688: last_addr_for_exception_3 = m68k_getpc() + 4;
56689: Exception(3, 0, M68000_EXC_SRC_CPU);
56690: goto endlabel3230;
56691: }
56692: {{ uae_s16 src = get_word(srca);
56693: { uae_s16 dst = m68k_dreg(regs, dstreg);
56694: src |= dst;
56695: CLEAR_CZNV;
56696: SET_ZFLG (((uae_s16)(src)) == 0);
56697: SET_NFLG (((uae_s16)(src)) < 0);
56698: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
56699: }}}}}m68k_incpc(4);
56700: fill_prefetch_0 ();
56701: endlabel3230: ;
56702: return 14;
56703: }
56704: unsigned long REGPARAM2 CPUFUNC(op_8078_5)(uae_u32 opcode) /* OR */
56705: {
56706: uae_u32 dstreg = (opcode >> 9) & 7;
56707: OpcodeFamily = 1; CurrentInstrCycles = 12;
56708: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
56709: if ((srca & 1) != 0) {
56710: last_fault_for_exception_3 = srca;
56711: last_op_for_exception_3 = opcode;
56712: last_addr_for_exception_3 = m68k_getpc() + 4;
56713: Exception(3, 0, M68000_EXC_SRC_CPU);
56714: goto endlabel3231;
56715: }
56716: {{ uae_s16 src = get_word(srca);
56717: { uae_s16 dst = m68k_dreg(regs, dstreg);
56718: src |= dst;
56719: CLEAR_CZNV;
56720: SET_ZFLG (((uae_s16)(src)) == 0);
56721: SET_NFLG (((uae_s16)(src)) < 0);
56722: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
56723: }}}}}m68k_incpc(4);
56724: fill_prefetch_0 ();
56725: endlabel3231: ;
56726: return 12;
56727: }
56728: unsigned long REGPARAM2 CPUFUNC(op_8079_5)(uae_u32 opcode) /* OR */
56729: {
56730: uae_u32 dstreg = (opcode >> 9) & 7;
56731: OpcodeFamily = 1; CurrentInstrCycles = 16;
56732: {{ uaecptr srca = get_ilong_prefetch(2);
56733: if ((srca & 1) != 0) {
56734: last_fault_for_exception_3 = srca;
56735: last_op_for_exception_3 = opcode;
56736: last_addr_for_exception_3 = m68k_getpc() + 6;
56737: Exception(3, 0, M68000_EXC_SRC_CPU);
56738: goto endlabel3232;
56739: }
56740: {{ uae_s16 src = get_word(srca);
56741: { uae_s16 dst = m68k_dreg(regs, dstreg);
56742: src |= dst;
56743: CLEAR_CZNV;
56744: SET_ZFLG (((uae_s16)(src)) == 0);
56745: SET_NFLG (((uae_s16)(src)) < 0);
56746: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
56747: }}}}}m68k_incpc(6);
56748: fill_prefetch_0 ();
56749: endlabel3232: ;
56750: return 16;
56751: }
56752: unsigned long REGPARAM2 CPUFUNC(op_807a_5)(uae_u32 opcode) /* OR */
56753: {
56754: uae_u32 dstreg = (opcode >> 9) & 7;
56755: OpcodeFamily = 1; CurrentInstrCycles = 12;
56756: {{ uaecptr srca = m68k_getpc () + 2;
56757: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
56758: if ((srca & 1) != 0) {
56759: last_fault_for_exception_3 = srca;
56760: last_op_for_exception_3 = opcode;
56761: last_addr_for_exception_3 = m68k_getpc() + 4;
56762: Exception(3, 0, M68000_EXC_SRC_CPU);
56763: goto endlabel3233;
56764: }
56765: {{ uae_s16 src = get_word(srca);
56766: { uae_s16 dst = m68k_dreg(regs, dstreg);
56767: src |= dst;
56768: CLEAR_CZNV;
56769: SET_ZFLG (((uae_s16)(src)) == 0);
56770: SET_NFLG (((uae_s16)(src)) < 0);
56771: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
56772: }}}}}m68k_incpc(4);
56773: fill_prefetch_0 ();
56774: endlabel3233: ;
56775: return 12;
56776: }
56777: unsigned long REGPARAM2 CPUFUNC(op_807b_5)(uae_u32 opcode) /* OR */
56778: {
56779: uae_u32 dstreg = (opcode >> 9) & 7;
56780: OpcodeFamily = 1; CurrentInstrCycles = 14;
56781: {{ uaecptr tmppc = m68k_getpc() + 2;
56782: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
56783: BusCyclePenalty += 2;
56784: if ((srca & 1) != 0) {
56785: last_fault_for_exception_3 = srca;
56786: last_op_for_exception_3 = opcode;
56787: last_addr_for_exception_3 = m68k_getpc() + 4;
56788: Exception(3, 0, M68000_EXC_SRC_CPU);
56789: goto endlabel3234;
56790: }
56791: {{ uae_s16 src = get_word(srca);
56792: { uae_s16 dst = m68k_dreg(regs, dstreg);
56793: src |= dst;
56794: CLEAR_CZNV;
56795: SET_ZFLG (((uae_s16)(src)) == 0);
56796: SET_NFLG (((uae_s16)(src)) < 0);
56797: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
56798: }}}}}m68k_incpc(4);
56799: fill_prefetch_0 ();
56800: endlabel3234: ;
56801: return 14;
56802: }
56803: unsigned long REGPARAM2 CPUFUNC(op_807c_5)(uae_u32 opcode) /* OR */
56804: {
56805: uae_u32 dstreg = (opcode >> 9) & 7;
56806: OpcodeFamily = 1; CurrentInstrCycles = 8;
56807: {{ uae_s16 src = get_iword_prefetch(2);
56808: { uae_s16 dst = m68k_dreg(regs, dstreg);
56809: src |= dst;
56810: CLEAR_CZNV;
56811: SET_ZFLG (((uae_s16)(src)) == 0);
56812: SET_NFLG (((uae_s16)(src)) < 0);
56813: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
56814: }}}m68k_incpc(4);
56815: fill_prefetch_0 ();
56816: return 8;
56817: }
56818: unsigned long REGPARAM2 CPUFUNC(op_8080_5)(uae_u32 opcode) /* OR */
56819: {
56820: uae_u32 srcreg = (opcode & 7);
56821: uae_u32 dstreg = (opcode >> 9) & 7;
56822: OpcodeFamily = 1; CurrentInstrCycles = 8;
56823: {{ uae_s32 src = m68k_dreg(regs, srcreg);
56824: { uae_s32 dst = m68k_dreg(regs, dstreg);
56825: src |= dst;
56826: CLEAR_CZNV;
56827: SET_ZFLG (((uae_s32)(src)) == 0);
56828: SET_NFLG (((uae_s32)(src)) < 0);
56829: m68k_dreg(regs, dstreg) = (src);
56830: }}}m68k_incpc(2);
56831: fill_prefetch_2 ();
56832: return 8;
56833: }
56834: unsigned long REGPARAM2 CPUFUNC(op_8090_5)(uae_u32 opcode) /* OR */
56835: {
56836: uae_u32 srcreg = (opcode & 7);
56837: uae_u32 dstreg = (opcode >> 9) & 7;
56838: OpcodeFamily = 1; CurrentInstrCycles = 14;
56839: {{ uaecptr srca = m68k_areg(regs, srcreg);
56840: if ((srca & 1) != 0) {
56841: last_fault_for_exception_3 = srca;
56842: last_op_for_exception_3 = opcode;
56843: last_addr_for_exception_3 = m68k_getpc() + 2;
56844: Exception(3, 0, M68000_EXC_SRC_CPU);
56845: goto endlabel3237;
56846: }
56847: {{ uae_s32 src = get_long(srca);
56848: { uae_s32 dst = m68k_dreg(regs, dstreg);
56849: src |= dst;
56850: CLEAR_CZNV;
56851: SET_ZFLG (((uae_s32)(src)) == 0);
56852: SET_NFLG (((uae_s32)(src)) < 0);
56853: m68k_dreg(regs, dstreg) = (src);
56854: }}}}}m68k_incpc(2);
56855: fill_prefetch_2 ();
56856: endlabel3237: ;
56857: return 14;
56858: }
56859: unsigned long REGPARAM2 CPUFUNC(op_8098_5)(uae_u32 opcode) /* OR */
56860: {
56861: uae_u32 srcreg = (opcode & 7);
56862: uae_u32 dstreg = (opcode >> 9) & 7;
56863: OpcodeFamily = 1; CurrentInstrCycles = 14;
56864: {{ uaecptr srca = m68k_areg(regs, srcreg);
56865: if ((srca & 1) != 0) {
56866: last_fault_for_exception_3 = srca;
56867: last_op_for_exception_3 = opcode;
56868: last_addr_for_exception_3 = m68k_getpc() + 2;
56869: Exception(3, 0, M68000_EXC_SRC_CPU);
56870: goto endlabel3238;
56871: }
56872: {{ uae_s32 src = get_long(srca);
56873: m68k_areg(regs, srcreg) += 4;
56874: { uae_s32 dst = m68k_dreg(regs, dstreg);
56875: src |= dst;
56876: CLEAR_CZNV;
56877: SET_ZFLG (((uae_s32)(src)) == 0);
56878: SET_NFLG (((uae_s32)(src)) < 0);
56879: m68k_dreg(regs, dstreg) = (src);
56880: }}}}}m68k_incpc(2);
56881: fill_prefetch_2 ();
56882: endlabel3238: ;
56883: return 14;
56884: }
56885: unsigned long REGPARAM2 CPUFUNC(op_80a0_5)(uae_u32 opcode) /* OR */
56886: {
56887: uae_u32 srcreg = (opcode & 7);
56888: uae_u32 dstreg = (opcode >> 9) & 7;
56889: OpcodeFamily = 1; CurrentInstrCycles = 16;
56890: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
56891: if ((srca & 1) != 0) {
56892: last_fault_for_exception_3 = srca;
56893: last_op_for_exception_3 = opcode;
56894: last_addr_for_exception_3 = m68k_getpc() + 2;
56895: Exception(3, 0, M68000_EXC_SRC_CPU);
56896: goto endlabel3239;
56897: }
56898: {{ uae_s32 src = get_long(srca);
56899: m68k_areg (regs, srcreg) = srca;
56900: { uae_s32 dst = m68k_dreg(regs, dstreg);
56901: src |= dst;
56902: CLEAR_CZNV;
56903: SET_ZFLG (((uae_s32)(src)) == 0);
56904: SET_NFLG (((uae_s32)(src)) < 0);
56905: m68k_dreg(regs, dstreg) = (src);
56906: }}}}}m68k_incpc(2);
56907: fill_prefetch_2 ();
56908: endlabel3239: ;
56909: return 16;
56910: }
56911: unsigned long REGPARAM2 CPUFUNC(op_80a8_5)(uae_u32 opcode) /* OR */
56912: {
56913: uae_u32 srcreg = (opcode & 7);
56914: uae_u32 dstreg = (opcode >> 9) & 7;
56915: OpcodeFamily = 1; CurrentInstrCycles = 18;
56916: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
56917: if ((srca & 1) != 0) {
56918: last_fault_for_exception_3 = srca;
56919: last_op_for_exception_3 = opcode;
56920: last_addr_for_exception_3 = m68k_getpc() + 4;
56921: Exception(3, 0, M68000_EXC_SRC_CPU);
56922: goto endlabel3240;
56923: }
56924: {{ uae_s32 src = get_long(srca);
56925: { uae_s32 dst = m68k_dreg(regs, dstreg);
56926: src |= dst;
56927: CLEAR_CZNV;
56928: SET_ZFLG (((uae_s32)(src)) == 0);
56929: SET_NFLG (((uae_s32)(src)) < 0);
56930: m68k_dreg(regs, dstreg) = (src);
56931: }}}}}m68k_incpc(4);
56932: fill_prefetch_0 ();
56933: endlabel3240: ;
56934: return 18;
56935: }
56936: unsigned long REGPARAM2 CPUFUNC(op_80b0_5)(uae_u32 opcode) /* OR */
56937: {
56938: uae_u32 srcreg = (opcode & 7);
56939: uae_u32 dstreg = (opcode >> 9) & 7;
56940: OpcodeFamily = 1; CurrentInstrCycles = 20;
56941: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
56942: BusCyclePenalty += 2;
56943: if ((srca & 1) != 0) {
56944: last_fault_for_exception_3 = srca;
56945: last_op_for_exception_3 = opcode;
56946: last_addr_for_exception_3 = m68k_getpc() + 4;
56947: Exception(3, 0, M68000_EXC_SRC_CPU);
56948: goto endlabel3241;
56949: }
56950: {{ uae_s32 src = get_long(srca);
56951: { uae_s32 dst = m68k_dreg(regs, dstreg);
56952: src |= dst;
56953: CLEAR_CZNV;
56954: SET_ZFLG (((uae_s32)(src)) == 0);
56955: SET_NFLG (((uae_s32)(src)) < 0);
56956: m68k_dreg(regs, dstreg) = (src);
56957: }}}}}m68k_incpc(4);
56958: fill_prefetch_0 ();
56959: endlabel3241: ;
56960: return 20;
56961: }
56962: unsigned long REGPARAM2 CPUFUNC(op_80b8_5)(uae_u32 opcode) /* OR */
56963: {
56964: uae_u32 dstreg = (opcode >> 9) & 7;
56965: OpcodeFamily = 1; CurrentInstrCycles = 18;
56966: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
56967: if ((srca & 1) != 0) {
56968: last_fault_for_exception_3 = srca;
56969: last_op_for_exception_3 = opcode;
56970: last_addr_for_exception_3 = m68k_getpc() + 4;
56971: Exception(3, 0, M68000_EXC_SRC_CPU);
56972: goto endlabel3242;
56973: }
56974: {{ uae_s32 src = get_long(srca);
56975: { uae_s32 dst = m68k_dreg(regs, dstreg);
56976: src |= dst;
56977: CLEAR_CZNV;
56978: SET_ZFLG (((uae_s32)(src)) == 0);
56979: SET_NFLG (((uae_s32)(src)) < 0);
56980: m68k_dreg(regs, dstreg) = (src);
56981: }}}}}m68k_incpc(4);
56982: fill_prefetch_0 ();
56983: endlabel3242: ;
56984: return 18;
56985: }
56986: unsigned long REGPARAM2 CPUFUNC(op_80b9_5)(uae_u32 opcode) /* OR */
56987: {
56988: uae_u32 dstreg = (opcode >> 9) & 7;
56989: OpcodeFamily = 1; CurrentInstrCycles = 22;
56990: {{ uaecptr srca = get_ilong_prefetch(2);
56991: if ((srca & 1) != 0) {
56992: last_fault_for_exception_3 = srca;
56993: last_op_for_exception_3 = opcode;
56994: last_addr_for_exception_3 = m68k_getpc() + 6;
56995: Exception(3, 0, M68000_EXC_SRC_CPU);
56996: goto endlabel3243;
56997: }
56998: {{ uae_s32 src = get_long(srca);
56999: { uae_s32 dst = m68k_dreg(regs, dstreg);
57000: src |= dst;
57001: CLEAR_CZNV;
57002: SET_ZFLG (((uae_s32)(src)) == 0);
57003: SET_NFLG (((uae_s32)(src)) < 0);
57004: m68k_dreg(regs, dstreg) = (src);
57005: }}}}}m68k_incpc(6);
57006: fill_prefetch_0 ();
57007: endlabel3243: ;
57008: return 22;
57009: }
57010: unsigned long REGPARAM2 CPUFUNC(op_80ba_5)(uae_u32 opcode) /* OR */
57011: {
57012: uae_u32 dstreg = (opcode >> 9) & 7;
57013: OpcodeFamily = 1; CurrentInstrCycles = 18;
57014: {{ uaecptr srca = m68k_getpc () + 2;
57015: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
57016: if ((srca & 1) != 0) {
57017: last_fault_for_exception_3 = srca;
57018: last_op_for_exception_3 = opcode;
57019: last_addr_for_exception_3 = m68k_getpc() + 4;
57020: Exception(3, 0, M68000_EXC_SRC_CPU);
57021: goto endlabel3244;
57022: }
57023: {{ uae_s32 src = get_long(srca);
57024: { uae_s32 dst = m68k_dreg(regs, dstreg);
57025: src |= dst;
57026: CLEAR_CZNV;
57027: SET_ZFLG (((uae_s32)(src)) == 0);
57028: SET_NFLG (((uae_s32)(src)) < 0);
57029: m68k_dreg(regs, dstreg) = (src);
57030: }}}}}m68k_incpc(4);
57031: fill_prefetch_0 ();
57032: endlabel3244: ;
57033: return 18;
57034: }
57035: unsigned long REGPARAM2 CPUFUNC(op_80bb_5)(uae_u32 opcode) /* OR */
57036: {
57037: uae_u32 dstreg = (opcode >> 9) & 7;
57038: OpcodeFamily = 1; CurrentInstrCycles = 20;
57039: {{ uaecptr tmppc = m68k_getpc() + 2;
57040: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
57041: BusCyclePenalty += 2;
57042: if ((srca & 1) != 0) {
57043: last_fault_for_exception_3 = srca;
57044: last_op_for_exception_3 = opcode;
57045: last_addr_for_exception_3 = m68k_getpc() + 4;
57046: Exception(3, 0, M68000_EXC_SRC_CPU);
57047: goto endlabel3245;
57048: }
57049: {{ uae_s32 src = get_long(srca);
57050: { uae_s32 dst = m68k_dreg(regs, dstreg);
57051: src |= dst;
57052: CLEAR_CZNV;
57053: SET_ZFLG (((uae_s32)(src)) == 0);
57054: SET_NFLG (((uae_s32)(src)) < 0);
57055: m68k_dreg(regs, dstreg) = (src);
57056: }}}}}m68k_incpc(4);
57057: fill_prefetch_0 ();
57058: endlabel3245: ;
57059: return 20;
57060: }
57061: unsigned long REGPARAM2 CPUFUNC(op_80bc_5)(uae_u32 opcode) /* OR */
57062: {
57063: uae_u32 dstreg = (opcode >> 9) & 7;
57064: OpcodeFamily = 1; CurrentInstrCycles = 16;
57065: {{ uae_s32 src = get_ilong_prefetch(2);
57066: { uae_s32 dst = m68k_dreg(regs, dstreg);
57067: src |= dst;
57068: CLEAR_CZNV;
57069: SET_ZFLG (((uae_s32)(src)) == 0);
57070: SET_NFLG (((uae_s32)(src)) < 0);
57071: m68k_dreg(regs, dstreg) = (src);
57072: }}}m68k_incpc(6);
57073: fill_prefetch_0 ();
57074: return 16;
57075: }
57076: unsigned long REGPARAM2 CPUFUNC(op_80c0_5)(uae_u32 opcode) /* DIVU */
57077: {
57078: uae_u32 srcreg = (opcode & 7);
57079: uae_u32 dstreg = (opcode >> 9) & 7;
57080: unsigned int retcycles = 0;
57081: OpcodeFamily = 60; CurrentInstrCycles = 4;
57082: { uaecptr oldpc = m68k_getpc();
57083: { uae_s16 src = m68k_dreg(regs, srcreg);
57084: { uae_s32 dst = m68k_dreg(regs, dstreg);
57085: m68k_incpc(2);
57086: fill_prefetch_2 ();
57087: if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel3247; } else {
57088: uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
57089: uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
57090: if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
57091: {
57092: CLEAR_CZNV;
57093: SET_ZFLG (((uae_s16)(newv)) == 0);
57094: SET_NFLG (((uae_s16)(newv)) < 0);
57095: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
57096: m68k_dreg(regs, dstreg) = (newv);
57097: }
57098: }
57099: retcycles = getDivu68kCycles((uae_u32)dst, (uae_u16)src);
57100: }}}endlabel3247: ;
57101: return (4+retcycles);
57102: }
57103: unsigned long REGPARAM2 CPUFUNC(op_80d0_5)(uae_u32 opcode) /* DIVU */
57104: {
57105: uae_u32 srcreg = (opcode & 7);
57106: uae_u32 dstreg = (opcode >> 9) & 7;
57107: unsigned int retcycles = 0;
57108: OpcodeFamily = 60; CurrentInstrCycles = 8;
57109: { uaecptr oldpc = m68k_getpc();
57110: { uaecptr srca = m68k_areg(regs, srcreg);
57111: if ((srca & 1) != 0) {
57112: last_fault_for_exception_3 = srca;
57113: last_op_for_exception_3 = opcode;
57114: last_addr_for_exception_3 = m68k_getpc() + 2;
57115: Exception(3, 0, M68000_EXC_SRC_CPU);
57116: goto endlabel3248;
57117: }
57118: {{ uae_s16 src = get_word(srca);
57119: { uae_s32 dst = m68k_dreg(regs, dstreg);
57120: m68k_incpc(2);
57121: fill_prefetch_2 ();
57122: if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel3248; } else {
57123: uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
57124: uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
57125: if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
57126: {
57127: CLEAR_CZNV;
57128: SET_ZFLG (((uae_s16)(newv)) == 0);
57129: SET_NFLG (((uae_s16)(newv)) < 0);
57130: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
57131: m68k_dreg(regs, dstreg) = (newv);
57132: }
57133: }
57134: retcycles = getDivu68kCycles((uae_u32)dst, (uae_u16)src);
57135: }}}}}endlabel3248: ;
57136: return (8+retcycles);
57137: }
57138: unsigned long REGPARAM2 CPUFUNC(op_80d8_5)(uae_u32 opcode) /* DIVU */
57139: {
57140: uae_u32 srcreg = (opcode & 7);
57141: uae_u32 dstreg = (opcode >> 9) & 7;
57142: unsigned int retcycles = 0;
57143: OpcodeFamily = 60; CurrentInstrCycles = 8;
57144: { uaecptr oldpc = m68k_getpc();
57145: { uaecptr srca = m68k_areg(regs, srcreg);
57146: if ((srca & 1) != 0) {
57147: last_fault_for_exception_3 = srca;
57148: last_op_for_exception_3 = opcode;
57149: last_addr_for_exception_3 = m68k_getpc() + 2;
57150: Exception(3, 0, M68000_EXC_SRC_CPU);
57151: goto endlabel3249;
57152: }
57153: {{ uae_s16 src = get_word(srca);
57154: m68k_areg(regs, srcreg) += 2;
57155: { uae_s32 dst = m68k_dreg(regs, dstreg);
57156: m68k_incpc(2);
57157: fill_prefetch_2 ();
57158: if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel3249; } else {
57159: uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
57160: uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
57161: if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
57162: {
57163: CLEAR_CZNV;
57164: SET_ZFLG (((uae_s16)(newv)) == 0);
57165: SET_NFLG (((uae_s16)(newv)) < 0);
57166: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
57167: m68k_dreg(regs, dstreg) = (newv);
57168: }
57169: }
57170: retcycles = getDivu68kCycles((uae_u32)dst, (uae_u16)src);
57171: }}}}}endlabel3249: ;
57172: return (8+retcycles);
57173: }
57174: unsigned long REGPARAM2 CPUFUNC(op_80e0_5)(uae_u32 opcode) /* DIVU */
57175: {
57176: uae_u32 srcreg = (opcode & 7);
57177: uae_u32 dstreg = (opcode >> 9) & 7;
57178: unsigned int retcycles = 0;
57179: OpcodeFamily = 60; CurrentInstrCycles = 10;
57180: { uaecptr oldpc = m68k_getpc();
57181: { uaecptr srca = m68k_areg(regs, srcreg) - 2;
57182: if ((srca & 1) != 0) {
57183: last_fault_for_exception_3 = srca;
57184: last_op_for_exception_3 = opcode;
57185: last_addr_for_exception_3 = m68k_getpc() + 2;
57186: Exception(3, 0, M68000_EXC_SRC_CPU);
57187: goto endlabel3250;
57188: }
57189: {{ uae_s16 src = get_word(srca);
57190: m68k_areg (regs, srcreg) = srca;
57191: { uae_s32 dst = m68k_dreg(regs, dstreg);
57192: m68k_incpc(2);
57193: fill_prefetch_2 ();
57194: if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel3250; } else {
57195: uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
57196: uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
57197: if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
57198: {
57199: CLEAR_CZNV;
57200: SET_ZFLG (((uae_s16)(newv)) == 0);
57201: SET_NFLG (((uae_s16)(newv)) < 0);
57202: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
57203: m68k_dreg(regs, dstreg) = (newv);
57204: }
57205: }
57206: retcycles = getDivu68kCycles((uae_u32)dst, (uae_u16)src);
57207: }}}}}endlabel3250: ;
57208: return (10+retcycles);
57209: }
57210: unsigned long REGPARAM2 CPUFUNC(op_80e8_5)(uae_u32 opcode) /* DIVU */
57211: {
57212: uae_u32 srcreg = (opcode & 7);
57213: uae_u32 dstreg = (opcode >> 9) & 7;
57214: unsigned int retcycles = 0;
57215: OpcodeFamily = 60; CurrentInstrCycles = 12;
57216: { uaecptr oldpc = m68k_getpc();
57217: { uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
57218: if ((srca & 1) != 0) {
57219: last_fault_for_exception_3 = srca;
57220: last_op_for_exception_3 = opcode;
57221: last_addr_for_exception_3 = m68k_getpc() + 4;
57222: Exception(3, 0, M68000_EXC_SRC_CPU);
57223: goto endlabel3251;
57224: }
57225: {{ uae_s16 src = get_word(srca);
57226: { uae_s32 dst = m68k_dreg(regs, dstreg);
57227: m68k_incpc(4);
57228: fill_prefetch_0 ();
57229: if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel3251; } else {
57230: uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
57231: uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
57232: if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
57233: {
57234: CLEAR_CZNV;
57235: SET_ZFLG (((uae_s16)(newv)) == 0);
57236: SET_NFLG (((uae_s16)(newv)) < 0);
57237: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
57238: m68k_dreg(regs, dstreg) = (newv);
57239: }
57240: }
57241: retcycles = getDivu68kCycles((uae_u32)dst, (uae_u16)src);
57242: }}}}}endlabel3251: ;
57243: return (12+retcycles);
57244: }
57245: unsigned long REGPARAM2 CPUFUNC(op_80f0_5)(uae_u32 opcode) /* DIVU */
57246: {
57247: uae_u32 srcreg = (opcode & 7);
57248: uae_u32 dstreg = (opcode >> 9) & 7;
57249: unsigned int retcycles = 0;
57250: OpcodeFamily = 60; CurrentInstrCycles = 14;
57251: { uaecptr oldpc = m68k_getpc();
57252: { uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
57253: BusCyclePenalty += 2;
57254: if ((srca & 1) != 0) {
57255: last_fault_for_exception_3 = srca;
57256: last_op_for_exception_3 = opcode;
57257: last_addr_for_exception_3 = m68k_getpc() + 4;
57258: Exception(3, 0, M68000_EXC_SRC_CPU);
57259: goto endlabel3252;
57260: }
57261: {{ uae_s16 src = get_word(srca);
57262: { uae_s32 dst = m68k_dreg(regs, dstreg);
57263: m68k_incpc(4);
57264: fill_prefetch_0 ();
57265: if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel3252; } else {
57266: uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
57267: uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
57268: if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
57269: {
57270: CLEAR_CZNV;
57271: SET_ZFLG (((uae_s16)(newv)) == 0);
57272: SET_NFLG (((uae_s16)(newv)) < 0);
57273: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
57274: m68k_dreg(regs, dstreg) = (newv);
57275: }
57276: }
57277: retcycles = getDivu68kCycles((uae_u32)dst, (uae_u16)src);
57278: }}}}}endlabel3252: ;
57279: return (14+retcycles);
57280: }
57281: unsigned long REGPARAM2 CPUFUNC(op_80f8_5)(uae_u32 opcode) /* DIVU */
57282: {
57283: uae_u32 dstreg = (opcode >> 9) & 7;
57284: unsigned int retcycles = 0;
57285: OpcodeFamily = 60; CurrentInstrCycles = 12;
57286: { uaecptr oldpc = m68k_getpc();
57287: { uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
57288: if ((srca & 1) != 0) {
57289: last_fault_for_exception_3 = srca;
57290: last_op_for_exception_3 = opcode;
57291: last_addr_for_exception_3 = m68k_getpc() + 4;
57292: Exception(3, 0, M68000_EXC_SRC_CPU);
57293: goto endlabel3253;
57294: }
57295: {{ uae_s16 src = get_word(srca);
57296: { uae_s32 dst = m68k_dreg(regs, dstreg);
57297: m68k_incpc(4);
57298: fill_prefetch_0 ();
57299: if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel3253; } else {
57300: uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
57301: uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
57302: if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
57303: {
57304: CLEAR_CZNV;
57305: SET_ZFLG (((uae_s16)(newv)) == 0);
57306: SET_NFLG (((uae_s16)(newv)) < 0);
57307: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
57308: m68k_dreg(regs, dstreg) = (newv);
57309: }
57310: }
57311: retcycles = getDivu68kCycles((uae_u32)dst, (uae_u16)src);
57312: }}}}}endlabel3253: ;
57313: return (12+retcycles);
57314: }
57315: unsigned long REGPARAM2 CPUFUNC(op_80f9_5)(uae_u32 opcode) /* DIVU */
57316: {
57317: uae_u32 dstreg = (opcode >> 9) & 7;
57318: unsigned int retcycles = 0;
57319: OpcodeFamily = 60; CurrentInstrCycles = 16;
57320: { uaecptr oldpc = m68k_getpc();
57321: { uaecptr srca = get_ilong_prefetch(2);
57322: if ((srca & 1) != 0) {
57323: last_fault_for_exception_3 = srca;
57324: last_op_for_exception_3 = opcode;
57325: last_addr_for_exception_3 = m68k_getpc() + 6;
57326: Exception(3, 0, M68000_EXC_SRC_CPU);
57327: goto endlabel3254;
57328: }
57329: {{ uae_s16 src = get_word(srca);
57330: { uae_s32 dst = m68k_dreg(regs, dstreg);
57331: m68k_incpc(6);
57332: fill_prefetch_0 ();
57333: if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel3254; } else {
57334: uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
57335: uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
57336: if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
57337: {
57338: CLEAR_CZNV;
57339: SET_ZFLG (((uae_s16)(newv)) == 0);
57340: SET_NFLG (((uae_s16)(newv)) < 0);
57341: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
57342: m68k_dreg(regs, dstreg) = (newv);
57343: }
57344: }
57345: retcycles = getDivu68kCycles((uae_u32)dst, (uae_u16)src);
57346: }}}}}endlabel3254: ;
57347: return (16+retcycles);
57348: }
57349: unsigned long REGPARAM2 CPUFUNC(op_80fa_5)(uae_u32 opcode) /* DIVU */
57350: {
57351: uae_u32 dstreg = (opcode >> 9) & 7;
57352: unsigned int retcycles = 0;
57353: OpcodeFamily = 60; CurrentInstrCycles = 12;
57354: { uaecptr oldpc = m68k_getpc();
57355: { uaecptr srca = m68k_getpc () + 2;
57356: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
57357: if ((srca & 1) != 0) {
57358: last_fault_for_exception_3 = srca;
57359: last_op_for_exception_3 = opcode;
57360: last_addr_for_exception_3 = m68k_getpc() + 4;
57361: Exception(3, 0, M68000_EXC_SRC_CPU);
57362: goto endlabel3255;
57363: }
57364: {{ uae_s16 src = get_word(srca);
57365: { uae_s32 dst = m68k_dreg(regs, dstreg);
57366: m68k_incpc(4);
57367: fill_prefetch_0 ();
57368: if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel3255; } else {
57369: uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
57370: uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
57371: if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
57372: {
57373: CLEAR_CZNV;
57374: SET_ZFLG (((uae_s16)(newv)) == 0);
57375: SET_NFLG (((uae_s16)(newv)) < 0);
57376: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
57377: m68k_dreg(regs, dstreg) = (newv);
57378: }
57379: }
57380: retcycles = getDivu68kCycles((uae_u32)dst, (uae_u16)src);
57381: }}}}}endlabel3255: ;
57382: return (12+retcycles);
57383: }
57384: unsigned long REGPARAM2 CPUFUNC(op_80fb_5)(uae_u32 opcode) /* DIVU */
57385: {
57386: uae_u32 dstreg = (opcode >> 9) & 7;
57387: unsigned int retcycles = 0;
57388: OpcodeFamily = 60; CurrentInstrCycles = 14;
57389: { uaecptr oldpc = m68k_getpc();
57390: { uaecptr tmppc = m68k_getpc() + 2;
57391: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
57392: BusCyclePenalty += 2;
57393: if ((srca & 1) != 0) {
57394: last_fault_for_exception_3 = srca;
57395: last_op_for_exception_3 = opcode;
57396: last_addr_for_exception_3 = m68k_getpc() + 4;
57397: Exception(3, 0, M68000_EXC_SRC_CPU);
57398: goto endlabel3256;
57399: }
57400: {{ uae_s16 src = get_word(srca);
57401: { uae_s32 dst = m68k_dreg(regs, dstreg);
57402: m68k_incpc(4);
57403: fill_prefetch_0 ();
57404: if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel3256; } else {
57405: uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
57406: uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
57407: if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
57408: {
57409: CLEAR_CZNV;
57410: SET_ZFLG (((uae_s16)(newv)) == 0);
57411: SET_NFLG (((uae_s16)(newv)) < 0);
57412: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
57413: m68k_dreg(regs, dstreg) = (newv);
57414: }
57415: }
57416: retcycles = getDivu68kCycles((uae_u32)dst, (uae_u16)src);
57417: }}}}}endlabel3256: ;
57418: return (14+retcycles);
57419: }
57420: unsigned long REGPARAM2 CPUFUNC(op_80fc_5)(uae_u32 opcode) /* DIVU */
57421: {
57422: uae_u32 dstreg = (opcode >> 9) & 7;
57423: unsigned int retcycles = 0;
57424: OpcodeFamily = 60; CurrentInstrCycles = 8;
57425: { uaecptr oldpc = m68k_getpc();
57426: { uae_s16 src = get_iword_prefetch(2);
57427: { uae_s32 dst = m68k_dreg(regs, dstreg);
57428: m68k_incpc(4);
57429: fill_prefetch_0 ();
57430: if (src == 0) { SET_VFLG (0); Exception (5, oldpc,M68000_EXC_SRC_CPU); goto endlabel3257; } else {
57431: uae_u32 newv = (uae_u32)dst / (uae_u32)(uae_u16)src;
57432: uae_u32 rem = (uae_u32)dst % (uae_u32)(uae_u16)src;
57433: if (newv > 0xffff) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
57434: {
57435: CLEAR_CZNV;
57436: SET_ZFLG (((uae_s16)(newv)) == 0);
57437: SET_NFLG (((uae_s16)(newv)) < 0);
57438: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
57439: m68k_dreg(regs, dstreg) = (newv);
57440: }
57441: }
57442: retcycles = getDivu68kCycles((uae_u32)dst, (uae_u16)src);
57443: }}}endlabel3257: ;
57444: return (8+retcycles);
57445: }
57446: unsigned long REGPARAM2 CPUFUNC(op_8100_5)(uae_u32 opcode) /* SBCD */
57447: {
57448: uae_u32 srcreg = (opcode & 7);
57449: uae_u32 dstreg = (opcode >> 9) & 7;
57450: OpcodeFamily = 10; CurrentInstrCycles = 6;
57451: {{ uae_s8 src = m68k_dreg(regs, srcreg);
57452: { uae_s8 dst = m68k_dreg(regs, dstreg);
57453: { uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG ? 1 : 0);
57454: uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0);
57455: uae_u16 newv, tmp_newv;
57456: int bcd = 0;
57457: newv = tmp_newv = newv_hi + newv_lo;
57458: if (newv_lo & 0xF0) { newv -= 6; bcd = 6; };
57459: if ((((dst & 0xFF) - (src & 0xFF) - (GET_XFLG ? 1 : 0)) & 0x100) > 0xFF) { newv -= 0x60; }
57460: SET_CFLG ((((dst & 0xFF) - (src & 0xFF) - bcd - (GET_XFLG ? 1 : 0)) & 0x300) > 0xFF);
57461: COPY_CARRY;
57462: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
57463: SET_NFLG (((uae_s8)(newv)) < 0);
57464: SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0);
57465: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
57466: }}}}m68k_incpc(2);
57467: fill_prefetch_2 ();
57468: return 6;
57469: }
57470: unsigned long REGPARAM2 CPUFUNC(op_8108_5)(uae_u32 opcode) /* SBCD */
57471: {
57472: uae_u32 srcreg = (opcode & 7);
57473: uae_u32 dstreg = (opcode >> 9) & 7;
57474: OpcodeFamily = 10; CurrentInstrCycles = 18;
57475: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
57476: { uae_s8 src = get_byte(srca);
57477: m68k_areg (regs, srcreg) = srca;
57478: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
57479: { uae_s8 dst = get_byte(dsta);
57480: m68k_areg (regs, dstreg) = dsta;
57481: { uae_u16 newv_lo = (dst & 0xF) - (src & 0xF) - (GET_XFLG ? 1 : 0);
57482: uae_u16 newv_hi = (dst & 0xF0) - (src & 0xF0);
57483: uae_u16 newv, tmp_newv;
57484: int bcd = 0;
57485: newv = tmp_newv = newv_hi + newv_lo;
57486: if (newv_lo & 0xF0) { newv -= 6; bcd = 6; };
57487: if ((((dst & 0xFF) - (src & 0xFF) - (GET_XFLG ? 1 : 0)) & 0x100) > 0xFF) { newv -= 0x60; }
57488: SET_CFLG ((((dst & 0xFF) - (src & 0xFF) - bcd - (GET_XFLG ? 1 : 0)) & 0x300) > 0xFF);
57489: COPY_CARRY;
57490: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
57491: SET_NFLG (((uae_s8)(newv)) < 0);
57492: SET_VFLG ((tmp_newv & 0x80) != 0 && (newv & 0x80) == 0);
57493: m68k_incpc(2);
57494: fill_prefetch_2 ();
57495: put_byte(dsta,newv);
57496: }}}}}}return 18;
57497: }
57498: unsigned long REGPARAM2 CPUFUNC(op_8110_5)(uae_u32 opcode) /* OR */
57499: {
57500: uae_u32 srcreg = ((opcode >> 9) & 7);
57501: uae_u32 dstreg = opcode & 7;
57502: OpcodeFamily = 1; CurrentInstrCycles = 12;
57503: {{ uae_s8 src = m68k_dreg(regs, srcreg);
57504: { uaecptr dsta = m68k_areg(regs, dstreg);
57505: { uae_s8 dst = get_byte(dsta);
57506: src |= dst;
57507: CLEAR_CZNV;
57508: SET_ZFLG (((uae_s8)(src)) == 0);
57509: SET_NFLG (((uae_s8)(src)) < 0);
57510: m68k_incpc(2);
57511: fill_prefetch_2 ();
57512: put_byte(dsta,src);
57513: }}}}return 12;
57514: }
57515: unsigned long REGPARAM2 CPUFUNC(op_8118_5)(uae_u32 opcode) /* OR */
57516: {
57517: uae_u32 srcreg = ((opcode >> 9) & 7);
57518: uae_u32 dstreg = opcode & 7;
57519: OpcodeFamily = 1; CurrentInstrCycles = 12;
57520: {{ uae_s8 src = m68k_dreg(regs, srcreg);
57521: { uaecptr dsta = m68k_areg(regs, dstreg);
57522: { uae_s8 dst = get_byte(dsta);
57523: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
57524: src |= dst;
57525: CLEAR_CZNV;
57526: SET_ZFLG (((uae_s8)(src)) == 0);
57527: SET_NFLG (((uae_s8)(src)) < 0);
57528: m68k_incpc(2);
57529: fill_prefetch_2 ();
57530: put_byte(dsta,src);
57531: }}}}return 12;
57532: }
57533: unsigned long REGPARAM2 CPUFUNC(op_8120_5)(uae_u32 opcode) /* OR */
57534: {
57535: uae_u32 srcreg = ((opcode >> 9) & 7);
57536: uae_u32 dstreg = opcode & 7;
57537: OpcodeFamily = 1; CurrentInstrCycles = 14;
57538: {{ uae_s8 src = m68k_dreg(regs, srcreg);
57539: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
57540: { uae_s8 dst = get_byte(dsta);
57541: m68k_areg (regs, dstreg) = dsta;
57542: src |= dst;
57543: CLEAR_CZNV;
57544: SET_ZFLG (((uae_s8)(src)) == 0);
57545: SET_NFLG (((uae_s8)(src)) < 0);
57546: m68k_incpc(2);
57547: fill_prefetch_2 ();
57548: put_byte(dsta,src);
57549: }}}}return 14;
57550: }
57551: unsigned long REGPARAM2 CPUFUNC(op_8128_5)(uae_u32 opcode) /* OR */
57552: {
57553: uae_u32 srcreg = ((opcode >> 9) & 7);
57554: uae_u32 dstreg = opcode & 7;
57555: OpcodeFamily = 1; CurrentInstrCycles = 16;
57556: {{ uae_s8 src = m68k_dreg(regs, srcreg);
57557: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
57558: { uae_s8 dst = get_byte(dsta);
57559: src |= dst;
57560: CLEAR_CZNV;
57561: SET_ZFLG (((uae_s8)(src)) == 0);
57562: SET_NFLG (((uae_s8)(src)) < 0);
57563: m68k_incpc(4);
57564: fill_prefetch_0 ();
57565: put_byte(dsta,src);
57566: }}}}return 16;
57567: }
57568: unsigned long REGPARAM2 CPUFUNC(op_8130_5)(uae_u32 opcode) /* OR */
57569: {
57570: uae_u32 srcreg = ((opcode >> 9) & 7);
57571: uae_u32 dstreg = opcode & 7;
57572: OpcodeFamily = 1; CurrentInstrCycles = 18;
57573: {{ uae_s8 src = m68k_dreg(regs, srcreg);
57574: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
57575: BusCyclePenalty += 2;
57576: { uae_s8 dst = get_byte(dsta);
57577: src |= dst;
57578: CLEAR_CZNV;
57579: SET_ZFLG (((uae_s8)(src)) == 0);
57580: SET_NFLG (((uae_s8)(src)) < 0);
57581: m68k_incpc(4);
57582: fill_prefetch_0 ();
57583: put_byte(dsta,src);
57584: }}}}return 18;
57585: }
57586: unsigned long REGPARAM2 CPUFUNC(op_8138_5)(uae_u32 opcode) /* OR */
57587: {
57588: uae_u32 srcreg = ((opcode >> 9) & 7);
57589: OpcodeFamily = 1; CurrentInstrCycles = 16;
57590: {{ uae_s8 src = m68k_dreg(regs, srcreg);
57591: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
57592: { uae_s8 dst = get_byte(dsta);
57593: src |= dst;
57594: CLEAR_CZNV;
57595: SET_ZFLG (((uae_s8)(src)) == 0);
57596: SET_NFLG (((uae_s8)(src)) < 0);
57597: m68k_incpc(4);
57598: fill_prefetch_0 ();
57599: put_byte(dsta,src);
57600: }}}}return 16;
57601: }
57602: unsigned long REGPARAM2 CPUFUNC(op_8139_5)(uae_u32 opcode) /* OR */
57603: {
57604: uae_u32 srcreg = ((opcode >> 9) & 7);
57605: OpcodeFamily = 1; CurrentInstrCycles = 20;
57606: {{ uae_s8 src = m68k_dreg(regs, srcreg);
57607: { uaecptr dsta = get_ilong_prefetch(2);
57608: { uae_s8 dst = get_byte(dsta);
57609: src |= dst;
57610: CLEAR_CZNV;
57611: SET_ZFLG (((uae_s8)(src)) == 0);
57612: SET_NFLG (((uae_s8)(src)) < 0);
57613: m68k_incpc(6);
57614: fill_prefetch_0 ();
57615: put_byte(dsta,src);
57616: }}}}return 20;
57617: }
57618: unsigned long REGPARAM2 CPUFUNC(op_8150_5)(uae_u32 opcode) /* OR */
57619: {
57620: uae_u32 srcreg = ((opcode >> 9) & 7);
57621: uae_u32 dstreg = opcode & 7;
57622: OpcodeFamily = 1; CurrentInstrCycles = 12;
57623: {{ uae_s16 src = m68k_dreg(regs, srcreg);
57624: { uaecptr dsta = m68k_areg(regs, dstreg);
57625: if ((dsta & 1) != 0) {
57626: last_fault_for_exception_3 = dsta;
57627: last_op_for_exception_3 = opcode;
57628: last_addr_for_exception_3 = m68k_getpc() + 2;
57629: Exception(3, 0, M68000_EXC_SRC_CPU);
57630: goto endlabel3267;
57631: }
57632: {{ uae_s16 dst = get_word(dsta);
57633: src |= dst;
57634: CLEAR_CZNV;
57635: SET_ZFLG (((uae_s16)(src)) == 0);
57636: SET_NFLG (((uae_s16)(src)) < 0);
57637: m68k_incpc(2);
57638: fill_prefetch_2 ();
57639: put_word(dsta,src);
57640: }}}}}endlabel3267: ;
57641: return 12;
57642: }
57643: unsigned long REGPARAM2 CPUFUNC(op_8158_5)(uae_u32 opcode) /* OR */
57644: {
57645: uae_u32 srcreg = ((opcode >> 9) & 7);
57646: uae_u32 dstreg = opcode & 7;
57647: OpcodeFamily = 1; CurrentInstrCycles = 12;
57648: {{ uae_s16 src = m68k_dreg(regs, srcreg);
57649: { uaecptr dsta = m68k_areg(regs, dstreg);
57650: if ((dsta & 1) != 0) {
57651: last_fault_for_exception_3 = dsta;
57652: last_op_for_exception_3 = opcode;
57653: last_addr_for_exception_3 = m68k_getpc() + 2;
57654: Exception(3, 0, M68000_EXC_SRC_CPU);
57655: goto endlabel3268;
57656: }
57657: {{ uae_s16 dst = get_word(dsta);
57658: m68k_areg(regs, dstreg) += 2;
57659: src |= dst;
57660: CLEAR_CZNV;
57661: SET_ZFLG (((uae_s16)(src)) == 0);
57662: SET_NFLG (((uae_s16)(src)) < 0);
57663: m68k_incpc(2);
57664: fill_prefetch_2 ();
57665: put_word(dsta,src);
57666: }}}}}endlabel3268: ;
57667: return 12;
57668: }
57669: unsigned long REGPARAM2 CPUFUNC(op_8160_5)(uae_u32 opcode) /* OR */
57670: {
57671: uae_u32 srcreg = ((opcode >> 9) & 7);
57672: uae_u32 dstreg = opcode & 7;
57673: OpcodeFamily = 1; CurrentInstrCycles = 14;
57674: {{ uae_s16 src = m68k_dreg(regs, srcreg);
57675: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
57676: if ((dsta & 1) != 0) {
57677: last_fault_for_exception_3 = dsta;
57678: last_op_for_exception_3 = opcode;
57679: last_addr_for_exception_3 = m68k_getpc() + 2;
57680: Exception(3, 0, M68000_EXC_SRC_CPU);
57681: goto endlabel3269;
57682: }
57683: {{ uae_s16 dst = get_word(dsta);
57684: m68k_areg (regs, dstreg) = dsta;
57685: src |= dst;
57686: CLEAR_CZNV;
57687: SET_ZFLG (((uae_s16)(src)) == 0);
57688: SET_NFLG (((uae_s16)(src)) < 0);
57689: m68k_incpc(2);
57690: fill_prefetch_2 ();
57691: put_word(dsta,src);
57692: }}}}}endlabel3269: ;
57693: return 14;
57694: }
57695: unsigned long REGPARAM2 CPUFUNC(op_8168_5)(uae_u32 opcode) /* OR */
57696: {
57697: uae_u32 srcreg = ((opcode >> 9) & 7);
57698: uae_u32 dstreg = opcode & 7;
57699: OpcodeFamily = 1; CurrentInstrCycles = 16;
57700: {{ uae_s16 src = m68k_dreg(regs, srcreg);
57701: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
57702: if ((dsta & 1) != 0) {
57703: last_fault_for_exception_3 = dsta;
57704: last_op_for_exception_3 = opcode;
57705: last_addr_for_exception_3 = m68k_getpc() + 4;
57706: Exception(3, 0, M68000_EXC_SRC_CPU);
57707: goto endlabel3270;
57708: }
57709: {{ uae_s16 dst = get_word(dsta);
57710: src |= dst;
57711: CLEAR_CZNV;
57712: SET_ZFLG (((uae_s16)(src)) == 0);
57713: SET_NFLG (((uae_s16)(src)) < 0);
57714: m68k_incpc(4);
57715: fill_prefetch_0 ();
57716: put_word(dsta,src);
57717: }}}}}endlabel3270: ;
57718: return 16;
57719: }
57720: unsigned long REGPARAM2 CPUFUNC(op_8170_5)(uae_u32 opcode) /* OR */
57721: {
57722: uae_u32 srcreg = ((opcode >> 9) & 7);
57723: uae_u32 dstreg = opcode & 7;
57724: OpcodeFamily = 1; CurrentInstrCycles = 18;
57725: {{ uae_s16 src = m68k_dreg(regs, srcreg);
57726: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
57727: BusCyclePenalty += 2;
57728: if ((dsta & 1) != 0) {
57729: last_fault_for_exception_3 = dsta;
57730: last_op_for_exception_3 = opcode;
57731: last_addr_for_exception_3 = m68k_getpc() + 4;
57732: Exception(3, 0, M68000_EXC_SRC_CPU);
57733: goto endlabel3271;
57734: }
57735: {{ uae_s16 dst = get_word(dsta);
57736: src |= dst;
57737: CLEAR_CZNV;
57738: SET_ZFLG (((uae_s16)(src)) == 0);
57739: SET_NFLG (((uae_s16)(src)) < 0);
57740: m68k_incpc(4);
57741: fill_prefetch_0 ();
57742: put_word(dsta,src);
57743: }}}}}endlabel3271: ;
57744: return 18;
57745: }
57746: unsigned long REGPARAM2 CPUFUNC(op_8178_5)(uae_u32 opcode) /* OR */
57747: {
57748: uae_u32 srcreg = ((opcode >> 9) & 7);
57749: OpcodeFamily = 1; CurrentInstrCycles = 16;
57750: {{ uae_s16 src = m68k_dreg(regs, srcreg);
57751: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
57752: if ((dsta & 1) != 0) {
57753: last_fault_for_exception_3 = dsta;
57754: last_op_for_exception_3 = opcode;
57755: last_addr_for_exception_3 = m68k_getpc() + 4;
57756: Exception(3, 0, M68000_EXC_SRC_CPU);
57757: goto endlabel3272;
57758: }
57759: {{ uae_s16 dst = get_word(dsta);
57760: src |= dst;
57761: CLEAR_CZNV;
57762: SET_ZFLG (((uae_s16)(src)) == 0);
57763: SET_NFLG (((uae_s16)(src)) < 0);
57764: m68k_incpc(4);
57765: fill_prefetch_0 ();
57766: put_word(dsta,src);
57767: }}}}}endlabel3272: ;
57768: return 16;
57769: }
57770: unsigned long REGPARAM2 CPUFUNC(op_8179_5)(uae_u32 opcode) /* OR */
57771: {
57772: uae_u32 srcreg = ((opcode >> 9) & 7);
57773: OpcodeFamily = 1; CurrentInstrCycles = 20;
57774: {{ uae_s16 src = m68k_dreg(regs, srcreg);
57775: { uaecptr dsta = get_ilong_prefetch(2);
57776: if ((dsta & 1) != 0) {
57777: last_fault_for_exception_3 = dsta;
57778: last_op_for_exception_3 = opcode;
57779: last_addr_for_exception_3 = m68k_getpc() + 6;
57780: Exception(3, 0, M68000_EXC_SRC_CPU);
57781: goto endlabel3273;
57782: }
57783: {{ uae_s16 dst = get_word(dsta);
57784: src |= dst;
57785: CLEAR_CZNV;
57786: SET_ZFLG (((uae_s16)(src)) == 0);
57787: SET_NFLG (((uae_s16)(src)) < 0);
57788: m68k_incpc(6);
57789: fill_prefetch_0 ();
57790: put_word(dsta,src);
57791: }}}}}endlabel3273: ;
57792: return 20;
57793: }
57794: unsigned long REGPARAM2 CPUFUNC(op_8190_5)(uae_u32 opcode) /* OR */
57795: {
57796: uae_u32 srcreg = ((opcode >> 9) & 7);
57797: uae_u32 dstreg = opcode & 7;
57798: OpcodeFamily = 1; CurrentInstrCycles = 20;
57799: {{ uae_s32 src = m68k_dreg(regs, srcreg);
57800: { uaecptr dsta = m68k_areg(regs, dstreg);
57801: if ((dsta & 1) != 0) {
57802: last_fault_for_exception_3 = dsta;
57803: last_op_for_exception_3 = opcode;
57804: last_addr_for_exception_3 = m68k_getpc() + 2;
57805: Exception(3, 0, M68000_EXC_SRC_CPU);
57806: goto endlabel3274;
57807: }
57808: {{ uae_s32 dst = get_long(dsta);
57809: src |= dst;
57810: CLEAR_CZNV;
57811: SET_ZFLG (((uae_s32)(src)) == 0);
57812: SET_NFLG (((uae_s32)(src)) < 0);
57813: m68k_incpc(2);
57814: fill_prefetch_2 ();
57815: put_long(dsta,src);
57816: }}}}}endlabel3274: ;
57817: return 20;
57818: }
57819: unsigned long REGPARAM2 CPUFUNC(op_8198_5)(uae_u32 opcode) /* OR */
57820: {
57821: uae_u32 srcreg = ((opcode >> 9) & 7);
57822: uae_u32 dstreg = opcode & 7;
57823: OpcodeFamily = 1; CurrentInstrCycles = 20;
57824: {{ uae_s32 src = m68k_dreg(regs, srcreg);
57825: { uaecptr dsta = m68k_areg(regs, dstreg);
57826: if ((dsta & 1) != 0) {
57827: last_fault_for_exception_3 = dsta;
57828: last_op_for_exception_3 = opcode;
57829: last_addr_for_exception_3 = m68k_getpc() + 2;
57830: Exception(3, 0, M68000_EXC_SRC_CPU);
57831: goto endlabel3275;
57832: }
57833: {{ uae_s32 dst = get_long(dsta);
57834: m68k_areg(regs, dstreg) += 4;
57835: src |= dst;
57836: CLEAR_CZNV;
57837: SET_ZFLG (((uae_s32)(src)) == 0);
57838: SET_NFLG (((uae_s32)(src)) < 0);
57839: m68k_incpc(2);
57840: fill_prefetch_2 ();
57841: put_long(dsta,src);
57842: }}}}}endlabel3275: ;
57843: return 20;
57844: }
57845: unsigned long REGPARAM2 CPUFUNC(op_81a0_5)(uae_u32 opcode) /* OR */
57846: {
57847: uae_u32 srcreg = ((opcode >> 9) & 7);
57848: uae_u32 dstreg = opcode & 7;
57849: OpcodeFamily = 1; CurrentInstrCycles = 22;
57850: {{ uae_s32 src = m68k_dreg(regs, srcreg);
57851: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
57852: if ((dsta & 1) != 0) {
57853: last_fault_for_exception_3 = dsta;
57854: last_op_for_exception_3 = opcode;
57855: last_addr_for_exception_3 = m68k_getpc() + 2;
57856: Exception(3, 0, M68000_EXC_SRC_CPU);
57857: goto endlabel3276;
57858: }
57859: {{ uae_s32 dst = get_long(dsta);
57860: m68k_areg (regs, dstreg) = dsta;
57861: src |= dst;
57862: CLEAR_CZNV;
57863: SET_ZFLG (((uae_s32)(src)) == 0);
57864: SET_NFLG (((uae_s32)(src)) < 0);
57865: m68k_incpc(2);
57866: fill_prefetch_2 ();
57867: put_long(dsta,src);
57868: }}}}}endlabel3276: ;
57869: return 22;
57870: }
57871: unsigned long REGPARAM2 CPUFUNC(op_81a8_5)(uae_u32 opcode) /* OR */
57872: {
57873: uae_u32 srcreg = ((opcode >> 9) & 7);
57874: uae_u32 dstreg = opcode & 7;
57875: OpcodeFamily = 1; CurrentInstrCycles = 24;
57876: {{ uae_s32 src = m68k_dreg(regs, srcreg);
57877: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
57878: if ((dsta & 1) != 0) {
57879: last_fault_for_exception_3 = dsta;
57880: last_op_for_exception_3 = opcode;
57881: last_addr_for_exception_3 = m68k_getpc() + 4;
57882: Exception(3, 0, M68000_EXC_SRC_CPU);
57883: goto endlabel3277;
57884: }
57885: {{ uae_s32 dst = get_long(dsta);
57886: src |= dst;
57887: CLEAR_CZNV;
57888: SET_ZFLG (((uae_s32)(src)) == 0);
57889: SET_NFLG (((uae_s32)(src)) < 0);
57890: m68k_incpc(4);
57891: fill_prefetch_0 ();
57892: put_long(dsta,src);
57893: }}}}}endlabel3277: ;
57894: return 24;
57895: }
57896: unsigned long REGPARAM2 CPUFUNC(op_81b0_5)(uae_u32 opcode) /* OR */
57897: {
57898: uae_u32 srcreg = ((opcode >> 9) & 7);
57899: uae_u32 dstreg = opcode & 7;
57900: OpcodeFamily = 1; CurrentInstrCycles = 26;
57901: {{ uae_s32 src = m68k_dreg(regs, srcreg);
57902: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
57903: BusCyclePenalty += 2;
57904: if ((dsta & 1) != 0) {
57905: last_fault_for_exception_3 = dsta;
57906: last_op_for_exception_3 = opcode;
57907: last_addr_for_exception_3 = m68k_getpc() + 4;
57908: Exception(3, 0, M68000_EXC_SRC_CPU);
57909: goto endlabel3278;
57910: }
57911: {{ uae_s32 dst = get_long(dsta);
57912: src |= dst;
57913: CLEAR_CZNV;
57914: SET_ZFLG (((uae_s32)(src)) == 0);
57915: SET_NFLG (((uae_s32)(src)) < 0);
57916: m68k_incpc(4);
57917: fill_prefetch_0 ();
57918: put_long(dsta,src);
57919: }}}}}endlabel3278: ;
57920: return 26;
57921: }
57922: unsigned long REGPARAM2 CPUFUNC(op_81b8_5)(uae_u32 opcode) /* OR */
57923: {
57924: uae_u32 srcreg = ((opcode >> 9) & 7);
57925: OpcodeFamily = 1; CurrentInstrCycles = 24;
57926: {{ uae_s32 src = m68k_dreg(regs, srcreg);
57927: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
57928: if ((dsta & 1) != 0) {
57929: last_fault_for_exception_3 = dsta;
57930: last_op_for_exception_3 = opcode;
57931: last_addr_for_exception_3 = m68k_getpc() + 4;
57932: Exception(3, 0, M68000_EXC_SRC_CPU);
57933: goto endlabel3279;
57934: }
57935: {{ uae_s32 dst = get_long(dsta);
57936: src |= dst;
57937: CLEAR_CZNV;
57938: SET_ZFLG (((uae_s32)(src)) == 0);
57939: SET_NFLG (((uae_s32)(src)) < 0);
57940: m68k_incpc(4);
57941: fill_prefetch_0 ();
57942: put_long(dsta,src);
57943: }}}}}endlabel3279: ;
57944: return 24;
57945: }
57946: unsigned long REGPARAM2 CPUFUNC(op_81b9_5)(uae_u32 opcode) /* OR */
57947: {
57948: uae_u32 srcreg = ((opcode >> 9) & 7);
57949: OpcodeFamily = 1; CurrentInstrCycles = 28;
57950: {{ uae_s32 src = m68k_dreg(regs, srcreg);
57951: { uaecptr dsta = get_ilong_prefetch(2);
57952: if ((dsta & 1) != 0) {
57953: last_fault_for_exception_3 = dsta;
57954: last_op_for_exception_3 = opcode;
57955: last_addr_for_exception_3 = m68k_getpc() + 6;
57956: Exception(3, 0, M68000_EXC_SRC_CPU);
57957: goto endlabel3280;
57958: }
57959: {{ uae_s32 dst = get_long(dsta);
57960: src |= dst;
57961: CLEAR_CZNV;
57962: SET_ZFLG (((uae_s32)(src)) == 0);
57963: SET_NFLG (((uae_s32)(src)) < 0);
57964: m68k_incpc(6);
57965: fill_prefetch_0 ();
57966: put_long(dsta,src);
57967: }}}}}endlabel3280: ;
57968: return 28;
57969: }
57970: unsigned long REGPARAM2 CPUFUNC(op_81c0_5)(uae_u32 opcode) /* DIVS */
57971: {
57972: uae_u32 srcreg = (opcode & 7);
57973: uae_u32 dstreg = (opcode >> 9) & 7;
57974: unsigned int retcycles = 0;
57975: OpcodeFamily = 61; CurrentInstrCycles = 4;
57976: { uaecptr oldpc = m68k_getpc();
57977: { uae_s16 src = m68k_dreg(regs, srcreg);
57978: { uae_s32 dst = m68k_dreg(regs, dstreg);
57979: m68k_incpc(2);
57980: fill_prefetch_2 ();
57981: if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel3281; } else {
57982: uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
57983: uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
57984: if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
57985: {
57986: if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
57987: CLEAR_CZNV;
57988: SET_ZFLG (((uae_s16)(newv)) == 0);
57989: SET_NFLG (((uae_s16)(newv)) < 0);
57990: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
57991: m68k_dreg(regs, dstreg) = (newv);
57992: }
57993: }
57994: retcycles = getDivs68kCycles((uae_s32)dst, (uae_s16)src);
57995: }}}endlabel3281: ;
57996: return (4+retcycles);
57997: }
57998: unsigned long REGPARAM2 CPUFUNC(op_81d0_5)(uae_u32 opcode) /* DIVS */
57999: {
58000: uae_u32 srcreg = (opcode & 7);
58001: uae_u32 dstreg = (opcode >> 9) & 7;
58002: unsigned int retcycles = 0;
58003: OpcodeFamily = 61; CurrentInstrCycles = 8;
58004: { uaecptr oldpc = m68k_getpc();
58005: { uaecptr srca = m68k_areg(regs, srcreg);
58006: if ((srca & 1) != 0) {
58007: last_fault_for_exception_3 = srca;
58008: last_op_for_exception_3 = opcode;
58009: last_addr_for_exception_3 = m68k_getpc() + 2;
58010: Exception(3, 0, M68000_EXC_SRC_CPU);
58011: goto endlabel3282;
58012: }
58013: {{ uae_s16 src = get_word(srca);
58014: { uae_s32 dst = m68k_dreg(regs, dstreg);
58015: m68k_incpc(2);
58016: fill_prefetch_2 ();
58017: if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel3282; } else {
58018: uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
58019: uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
58020: if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
58021: {
58022: if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
58023: CLEAR_CZNV;
58024: SET_ZFLG (((uae_s16)(newv)) == 0);
58025: SET_NFLG (((uae_s16)(newv)) < 0);
58026: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
58027: m68k_dreg(regs, dstreg) = (newv);
58028: }
58029: }
58030: retcycles = getDivs68kCycles((uae_s32)dst, (uae_s16)src);
58031: }}}}}endlabel3282: ;
58032: return (8+retcycles);
58033: }
58034: unsigned long REGPARAM2 CPUFUNC(op_81d8_5)(uae_u32 opcode) /* DIVS */
58035: {
58036: uae_u32 srcreg = (opcode & 7);
58037: uae_u32 dstreg = (opcode >> 9) & 7;
58038: unsigned int retcycles = 0;
58039: OpcodeFamily = 61; CurrentInstrCycles = 8;
58040: { uaecptr oldpc = m68k_getpc();
58041: { uaecptr srca = m68k_areg(regs, srcreg);
58042: if ((srca & 1) != 0) {
58043: last_fault_for_exception_3 = srca;
58044: last_op_for_exception_3 = opcode;
58045: last_addr_for_exception_3 = m68k_getpc() + 2;
58046: Exception(3, 0, M68000_EXC_SRC_CPU);
58047: goto endlabel3283;
58048: }
58049: {{ uae_s16 src = get_word(srca);
58050: m68k_areg(regs, srcreg) += 2;
58051: { uae_s32 dst = m68k_dreg(regs, dstreg);
58052: m68k_incpc(2);
58053: fill_prefetch_2 ();
58054: if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel3283; } else {
58055: uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
58056: uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
58057: if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
58058: {
58059: if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
58060: CLEAR_CZNV;
58061: SET_ZFLG (((uae_s16)(newv)) == 0);
58062: SET_NFLG (((uae_s16)(newv)) < 0);
58063: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
58064: m68k_dreg(regs, dstreg) = (newv);
58065: }
58066: }
58067: retcycles = getDivs68kCycles((uae_s32)dst, (uae_s16)src);
58068: }}}}}endlabel3283: ;
58069: return (8+retcycles);
58070: }
58071: unsigned long REGPARAM2 CPUFUNC(op_81e0_5)(uae_u32 opcode) /* DIVS */
58072: {
58073: uae_u32 srcreg = (opcode & 7);
58074: uae_u32 dstreg = (opcode >> 9) & 7;
58075: unsigned int retcycles = 0;
58076: OpcodeFamily = 61; CurrentInstrCycles = 10;
58077: { uaecptr oldpc = m68k_getpc();
58078: { uaecptr srca = m68k_areg(regs, srcreg) - 2;
58079: if ((srca & 1) != 0) {
58080: last_fault_for_exception_3 = srca;
58081: last_op_for_exception_3 = opcode;
58082: last_addr_for_exception_3 = m68k_getpc() + 2;
58083: Exception(3, 0, M68000_EXC_SRC_CPU);
58084: goto endlabel3284;
58085: }
58086: {{ uae_s16 src = get_word(srca);
58087: m68k_areg (regs, srcreg) = srca;
58088: { uae_s32 dst = m68k_dreg(regs, dstreg);
58089: m68k_incpc(2);
58090: fill_prefetch_2 ();
58091: if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel3284; } else {
58092: uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
58093: uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
58094: if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
58095: {
58096: if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
58097: CLEAR_CZNV;
58098: SET_ZFLG (((uae_s16)(newv)) == 0);
58099: SET_NFLG (((uae_s16)(newv)) < 0);
58100: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
58101: m68k_dreg(regs, dstreg) = (newv);
58102: }
58103: }
58104: retcycles = getDivs68kCycles((uae_s32)dst, (uae_s16)src);
58105: }}}}}endlabel3284: ;
58106: return (10+retcycles);
58107: }
58108: unsigned long REGPARAM2 CPUFUNC(op_81e8_5)(uae_u32 opcode) /* DIVS */
58109: {
58110: uae_u32 srcreg = (opcode & 7);
58111: uae_u32 dstreg = (opcode >> 9) & 7;
58112: unsigned int retcycles = 0;
58113: OpcodeFamily = 61; CurrentInstrCycles = 12;
58114: { uaecptr oldpc = m68k_getpc();
58115: { uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
58116: if ((srca & 1) != 0) {
58117: last_fault_for_exception_3 = srca;
58118: last_op_for_exception_3 = opcode;
58119: last_addr_for_exception_3 = m68k_getpc() + 4;
58120: Exception(3, 0, M68000_EXC_SRC_CPU);
58121: goto endlabel3285;
58122: }
58123: {{ uae_s16 src = get_word(srca);
58124: { uae_s32 dst = m68k_dreg(regs, dstreg);
58125: m68k_incpc(4);
58126: fill_prefetch_0 ();
58127: if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel3285; } else {
58128: uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
58129: uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
58130: if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
58131: {
58132: if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
58133: CLEAR_CZNV;
58134: SET_ZFLG (((uae_s16)(newv)) == 0);
58135: SET_NFLG (((uae_s16)(newv)) < 0);
58136: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
58137: m68k_dreg(regs, dstreg) = (newv);
58138: }
58139: }
58140: retcycles = getDivs68kCycles((uae_s32)dst, (uae_s16)src);
58141: }}}}}endlabel3285: ;
58142: return (12+retcycles);
58143: }
58144: unsigned long REGPARAM2 CPUFUNC(op_81f0_5)(uae_u32 opcode) /* DIVS */
58145: {
58146: uae_u32 srcreg = (opcode & 7);
58147: uae_u32 dstreg = (opcode >> 9) & 7;
58148: unsigned int retcycles = 0;
58149: OpcodeFamily = 61; CurrentInstrCycles = 14;
58150: { uaecptr oldpc = m68k_getpc();
58151: { uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
58152: BusCyclePenalty += 2;
58153: if ((srca & 1) != 0) {
58154: last_fault_for_exception_3 = srca;
58155: last_op_for_exception_3 = opcode;
58156: last_addr_for_exception_3 = m68k_getpc() + 4;
58157: Exception(3, 0, M68000_EXC_SRC_CPU);
58158: goto endlabel3286;
58159: }
58160: {{ uae_s16 src = get_word(srca);
58161: { uae_s32 dst = m68k_dreg(regs, dstreg);
58162: m68k_incpc(4);
58163: fill_prefetch_0 ();
58164: if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel3286; } else {
58165: uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
58166: uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
58167: if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
58168: {
58169: if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
58170: CLEAR_CZNV;
58171: SET_ZFLG (((uae_s16)(newv)) == 0);
58172: SET_NFLG (((uae_s16)(newv)) < 0);
58173: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
58174: m68k_dreg(regs, dstreg) = (newv);
58175: }
58176: }
58177: retcycles = getDivs68kCycles((uae_s32)dst, (uae_s16)src);
58178: }}}}}endlabel3286: ;
58179: return (14+retcycles);
58180: }
58181: unsigned long REGPARAM2 CPUFUNC(op_81f8_5)(uae_u32 opcode) /* DIVS */
58182: {
58183: uae_u32 dstreg = (opcode >> 9) & 7;
58184: unsigned int retcycles = 0;
58185: OpcodeFamily = 61; CurrentInstrCycles = 12;
58186: { uaecptr oldpc = m68k_getpc();
58187: { uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
58188: if ((srca & 1) != 0) {
58189: last_fault_for_exception_3 = srca;
58190: last_op_for_exception_3 = opcode;
58191: last_addr_for_exception_3 = m68k_getpc() + 4;
58192: Exception(3, 0, M68000_EXC_SRC_CPU);
58193: goto endlabel3287;
58194: }
58195: {{ uae_s16 src = get_word(srca);
58196: { uae_s32 dst = m68k_dreg(regs, dstreg);
58197: m68k_incpc(4);
58198: fill_prefetch_0 ();
58199: if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel3287; } else {
58200: uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
58201: uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
58202: if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
58203: {
58204: if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
58205: CLEAR_CZNV;
58206: SET_ZFLG (((uae_s16)(newv)) == 0);
58207: SET_NFLG (((uae_s16)(newv)) < 0);
58208: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
58209: m68k_dreg(regs, dstreg) = (newv);
58210: }
58211: }
58212: retcycles = getDivs68kCycles((uae_s32)dst, (uae_s16)src);
58213: }}}}}endlabel3287: ;
58214: return (12+retcycles);
58215: }
58216: unsigned long REGPARAM2 CPUFUNC(op_81f9_5)(uae_u32 opcode) /* DIVS */
58217: {
58218: uae_u32 dstreg = (opcode >> 9) & 7;
58219: unsigned int retcycles = 0;
58220: OpcodeFamily = 61; CurrentInstrCycles = 16;
58221: { uaecptr oldpc = m68k_getpc();
58222: { uaecptr srca = get_ilong_prefetch(2);
58223: if ((srca & 1) != 0) {
58224: last_fault_for_exception_3 = srca;
58225: last_op_for_exception_3 = opcode;
58226: last_addr_for_exception_3 = m68k_getpc() + 6;
58227: Exception(3, 0, M68000_EXC_SRC_CPU);
58228: goto endlabel3288;
58229: }
58230: {{ uae_s16 src = get_word(srca);
58231: { uae_s32 dst = m68k_dreg(regs, dstreg);
58232: m68k_incpc(6);
58233: fill_prefetch_0 ();
58234: if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel3288; } else {
58235: uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
58236: uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
58237: if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
58238: {
58239: if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
58240: CLEAR_CZNV;
58241: SET_ZFLG (((uae_s16)(newv)) == 0);
58242: SET_NFLG (((uae_s16)(newv)) < 0);
58243: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
58244: m68k_dreg(regs, dstreg) = (newv);
58245: }
58246: }
58247: retcycles = getDivs68kCycles((uae_s32)dst, (uae_s16)src);
58248: }}}}}endlabel3288: ;
58249: return (16+retcycles);
58250: }
58251: unsigned long REGPARAM2 CPUFUNC(op_81fa_5)(uae_u32 opcode) /* DIVS */
58252: {
58253: uae_u32 dstreg = (opcode >> 9) & 7;
58254: unsigned int retcycles = 0;
58255: OpcodeFamily = 61; CurrentInstrCycles = 12;
58256: { uaecptr oldpc = m68k_getpc();
58257: { uaecptr srca = m68k_getpc () + 2;
58258: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
58259: if ((srca & 1) != 0) {
58260: last_fault_for_exception_3 = srca;
58261: last_op_for_exception_3 = opcode;
58262: last_addr_for_exception_3 = m68k_getpc() + 4;
58263: Exception(3, 0, M68000_EXC_SRC_CPU);
58264: goto endlabel3289;
58265: }
58266: {{ uae_s16 src = get_word(srca);
58267: { uae_s32 dst = m68k_dreg(regs, dstreg);
58268: m68k_incpc(4);
58269: fill_prefetch_0 ();
58270: if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel3289; } else {
58271: uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
58272: uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
58273: if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
58274: {
58275: if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
58276: CLEAR_CZNV;
58277: SET_ZFLG (((uae_s16)(newv)) == 0);
58278: SET_NFLG (((uae_s16)(newv)) < 0);
58279: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
58280: m68k_dreg(regs, dstreg) = (newv);
58281: }
58282: }
58283: retcycles = getDivs68kCycles((uae_s32)dst, (uae_s16)src);
58284: }}}}}endlabel3289: ;
58285: return (12+retcycles);
58286: }
58287: unsigned long REGPARAM2 CPUFUNC(op_81fb_5)(uae_u32 opcode) /* DIVS */
58288: {
58289: uae_u32 dstreg = (opcode >> 9) & 7;
58290: unsigned int retcycles = 0;
58291: OpcodeFamily = 61; CurrentInstrCycles = 14;
58292: { uaecptr oldpc = m68k_getpc();
58293: { uaecptr tmppc = m68k_getpc() + 2;
58294: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
58295: BusCyclePenalty += 2;
58296: if ((srca & 1) != 0) {
58297: last_fault_for_exception_3 = srca;
58298: last_op_for_exception_3 = opcode;
58299: last_addr_for_exception_3 = m68k_getpc() + 4;
58300: Exception(3, 0, M68000_EXC_SRC_CPU);
58301: goto endlabel3290;
58302: }
58303: {{ uae_s16 src = get_word(srca);
58304: { uae_s32 dst = m68k_dreg(regs, dstreg);
58305: m68k_incpc(4);
58306: fill_prefetch_0 ();
58307: if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel3290; } else {
58308: uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
58309: uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
58310: if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
58311: {
58312: if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
58313: CLEAR_CZNV;
58314: SET_ZFLG (((uae_s16)(newv)) == 0);
58315: SET_NFLG (((uae_s16)(newv)) < 0);
58316: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
58317: m68k_dreg(regs, dstreg) = (newv);
58318: }
58319: }
58320: retcycles = getDivs68kCycles((uae_s32)dst, (uae_s16)src);
58321: }}}}}endlabel3290: ;
58322: return (14+retcycles);
58323: }
58324: unsigned long REGPARAM2 CPUFUNC(op_81fc_5)(uae_u32 opcode) /* DIVS */
58325: {
58326: uae_u32 dstreg = (opcode >> 9) & 7;
58327: unsigned int retcycles = 0;
58328: OpcodeFamily = 61; CurrentInstrCycles = 8;
58329: { uaecptr oldpc = m68k_getpc();
58330: { uae_s16 src = get_iword_prefetch(2);
58331: { uae_s32 dst = m68k_dreg(regs, dstreg);
58332: m68k_incpc(4);
58333: fill_prefetch_0 ();
58334: if (src == 0) { SET_VFLG (0); Exception(5,oldpc,M68000_EXC_SRC_CPU); goto endlabel3291; } else {
58335: uae_s32 newv = (uae_s32)dst / (uae_s32)(uae_s16)src;
58336: uae_u16 rem = (uae_s32)dst % (uae_s32)(uae_s16)src;
58337: if ((newv & 0xffff8000) != 0 && (newv & 0xffff8000) != 0xffff8000) { SET_VFLG (1); SET_NFLG (1); SET_CFLG (0); } else
58338: {
58339: if (((uae_s16)rem < 0) != ((uae_s32)dst < 0)) rem = -rem;
58340: CLEAR_CZNV;
58341: SET_ZFLG (((uae_s16)(newv)) == 0);
58342: SET_NFLG (((uae_s16)(newv)) < 0);
58343: newv = (newv & 0xffff) | ((uae_u32)rem << 16);
58344: m68k_dreg(regs, dstreg) = (newv);
58345: }
58346: }
58347: retcycles = getDivs68kCycles((uae_s32)dst, (uae_s16)src);
58348: }}}endlabel3291: ;
58349: return (8+retcycles);
58350: }
58351: unsigned long REGPARAM2 CPUFUNC(op_9000_5)(uae_u32 opcode) /* SUB */
58352: {
58353: uae_u32 srcreg = (opcode & 7);
58354: uae_u32 dstreg = (opcode >> 9) & 7;
58355: OpcodeFamily = 7; CurrentInstrCycles = 4;
58356: {{ uae_s8 src = m68k_dreg(regs, srcreg);
58357: { uae_s8 dst = m68k_dreg(regs, dstreg);
58358: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
58359: { int flgs = ((uae_s8)(src)) < 0;
58360: int flgo = ((uae_s8)(dst)) < 0;
58361: int flgn = ((uae_s8)(newv)) < 0;
58362: SET_ZFLG (((uae_s8)(newv)) == 0);
58363: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
58364: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
58365: COPY_CARRY;
58366: SET_NFLG (flgn != 0);
58367: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
58368: }}}}}}m68k_incpc(2);
58369: fill_prefetch_2 ();
58370: return 4;
58371: }
58372: unsigned long REGPARAM2 CPUFUNC(op_9010_5)(uae_u32 opcode) /* SUB */
58373: {
58374: uae_u32 srcreg = (opcode & 7);
58375: uae_u32 dstreg = (opcode >> 9) & 7;
58376: OpcodeFamily = 7; CurrentInstrCycles = 8;
58377: {{ uaecptr srca = m68k_areg(regs, srcreg);
58378: { uae_s8 src = get_byte(srca);
58379: { uae_s8 dst = m68k_dreg(regs, dstreg);
58380: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
58381: { int flgs = ((uae_s8)(src)) < 0;
58382: int flgo = ((uae_s8)(dst)) < 0;
58383: int flgn = ((uae_s8)(newv)) < 0;
58384: SET_ZFLG (((uae_s8)(newv)) == 0);
58385: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
58386: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
58387: COPY_CARRY;
58388: SET_NFLG (flgn != 0);
58389: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
58390: }}}}}}}m68k_incpc(2);
58391: fill_prefetch_2 ();
58392: return 8;
58393: }
58394: unsigned long REGPARAM2 CPUFUNC(op_9018_5)(uae_u32 opcode) /* SUB */
58395: {
58396: uae_u32 srcreg = (opcode & 7);
58397: uae_u32 dstreg = (opcode >> 9) & 7;
58398: OpcodeFamily = 7; CurrentInstrCycles = 8;
58399: {{ uaecptr srca = m68k_areg(regs, srcreg);
58400: { uae_s8 src = get_byte(srca);
58401: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
58402: { uae_s8 dst = m68k_dreg(regs, dstreg);
58403: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
58404: { int flgs = ((uae_s8)(src)) < 0;
58405: int flgo = ((uae_s8)(dst)) < 0;
58406: int flgn = ((uae_s8)(newv)) < 0;
58407: SET_ZFLG (((uae_s8)(newv)) == 0);
58408: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
58409: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
58410: COPY_CARRY;
58411: SET_NFLG (flgn != 0);
58412: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
58413: }}}}}}}m68k_incpc(2);
58414: fill_prefetch_2 ();
58415: return 8;
58416: }
58417: unsigned long REGPARAM2 CPUFUNC(op_9020_5)(uae_u32 opcode) /* SUB */
58418: {
58419: uae_u32 srcreg = (opcode & 7);
58420: uae_u32 dstreg = (opcode >> 9) & 7;
58421: OpcodeFamily = 7; CurrentInstrCycles = 10;
58422: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
58423: { uae_s8 src = get_byte(srca);
58424: m68k_areg (regs, srcreg) = srca;
58425: { uae_s8 dst = m68k_dreg(regs, dstreg);
58426: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
58427: { int flgs = ((uae_s8)(src)) < 0;
58428: int flgo = ((uae_s8)(dst)) < 0;
58429: int flgn = ((uae_s8)(newv)) < 0;
58430: SET_ZFLG (((uae_s8)(newv)) == 0);
58431: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
58432: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
58433: COPY_CARRY;
58434: SET_NFLG (flgn != 0);
58435: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
58436: }}}}}}}m68k_incpc(2);
58437: fill_prefetch_2 ();
58438: return 10;
58439: }
58440: unsigned long REGPARAM2 CPUFUNC(op_9028_5)(uae_u32 opcode) /* SUB */
58441: {
58442: uae_u32 srcreg = (opcode & 7);
58443: uae_u32 dstreg = (opcode >> 9) & 7;
58444: OpcodeFamily = 7; CurrentInstrCycles = 12;
58445: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
58446: { uae_s8 src = get_byte(srca);
58447: { uae_s8 dst = m68k_dreg(regs, dstreg);
58448: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
58449: { int flgs = ((uae_s8)(src)) < 0;
58450: int flgo = ((uae_s8)(dst)) < 0;
58451: int flgn = ((uae_s8)(newv)) < 0;
58452: SET_ZFLG (((uae_s8)(newv)) == 0);
58453: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
58454: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
58455: COPY_CARRY;
58456: SET_NFLG (flgn != 0);
58457: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
58458: }}}}}}}m68k_incpc(4);
58459: fill_prefetch_0 ();
58460: return 12;
58461: }
58462: unsigned long REGPARAM2 CPUFUNC(op_9030_5)(uae_u32 opcode) /* SUB */
58463: {
58464: uae_u32 srcreg = (opcode & 7);
58465: uae_u32 dstreg = (opcode >> 9) & 7;
58466: OpcodeFamily = 7; CurrentInstrCycles = 14;
58467: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
58468: BusCyclePenalty += 2;
58469: { uae_s8 src = get_byte(srca);
58470: { uae_s8 dst = m68k_dreg(regs, dstreg);
58471: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
58472: { int flgs = ((uae_s8)(src)) < 0;
58473: int flgo = ((uae_s8)(dst)) < 0;
58474: int flgn = ((uae_s8)(newv)) < 0;
58475: SET_ZFLG (((uae_s8)(newv)) == 0);
58476: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
58477: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
58478: COPY_CARRY;
58479: SET_NFLG (flgn != 0);
58480: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
58481: }}}}}}}m68k_incpc(4);
58482: fill_prefetch_0 ();
58483: return 14;
58484: }
58485: unsigned long REGPARAM2 CPUFUNC(op_9038_5)(uae_u32 opcode) /* SUB */
58486: {
58487: uae_u32 dstreg = (opcode >> 9) & 7;
58488: OpcodeFamily = 7; CurrentInstrCycles = 12;
58489: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
58490: { uae_s8 src = get_byte(srca);
58491: { uae_s8 dst = m68k_dreg(regs, dstreg);
58492: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
58493: { int flgs = ((uae_s8)(src)) < 0;
58494: int flgo = ((uae_s8)(dst)) < 0;
58495: int flgn = ((uae_s8)(newv)) < 0;
58496: SET_ZFLG (((uae_s8)(newv)) == 0);
58497: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
58498: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
58499: COPY_CARRY;
58500: SET_NFLG (flgn != 0);
58501: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
58502: }}}}}}}m68k_incpc(4);
58503: fill_prefetch_0 ();
58504: return 12;
58505: }
58506: unsigned long REGPARAM2 CPUFUNC(op_9039_5)(uae_u32 opcode) /* SUB */
58507: {
58508: uae_u32 dstreg = (opcode >> 9) & 7;
58509: OpcodeFamily = 7; CurrentInstrCycles = 16;
58510: {{ uaecptr srca = get_ilong_prefetch(2);
58511: { uae_s8 src = get_byte(srca);
58512: { uae_s8 dst = m68k_dreg(regs, dstreg);
58513: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
58514: { int flgs = ((uae_s8)(src)) < 0;
58515: int flgo = ((uae_s8)(dst)) < 0;
58516: int flgn = ((uae_s8)(newv)) < 0;
58517: SET_ZFLG (((uae_s8)(newv)) == 0);
58518: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
58519: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
58520: COPY_CARRY;
58521: SET_NFLG (flgn != 0);
58522: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
58523: }}}}}}}m68k_incpc(6);
58524: fill_prefetch_0 ();
58525: return 16;
58526: }
58527: unsigned long REGPARAM2 CPUFUNC(op_903a_5)(uae_u32 opcode) /* SUB */
58528: {
58529: uae_u32 dstreg = (opcode >> 9) & 7;
58530: OpcodeFamily = 7; CurrentInstrCycles = 12;
58531: {{ uaecptr srca = m68k_getpc () + 2;
58532: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
58533: { uae_s8 src = get_byte(srca);
58534: { uae_s8 dst = m68k_dreg(regs, dstreg);
58535: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
58536: { int flgs = ((uae_s8)(src)) < 0;
58537: int flgo = ((uae_s8)(dst)) < 0;
58538: int flgn = ((uae_s8)(newv)) < 0;
58539: SET_ZFLG (((uae_s8)(newv)) == 0);
58540: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
58541: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
58542: COPY_CARRY;
58543: SET_NFLG (flgn != 0);
58544: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
58545: }}}}}}}m68k_incpc(4);
58546: fill_prefetch_0 ();
58547: return 12;
58548: }
58549: unsigned long REGPARAM2 CPUFUNC(op_903b_5)(uae_u32 opcode) /* SUB */
58550: {
58551: uae_u32 dstreg = (opcode >> 9) & 7;
58552: OpcodeFamily = 7; CurrentInstrCycles = 14;
58553: {{ uaecptr tmppc = m68k_getpc() + 2;
58554: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
58555: BusCyclePenalty += 2;
58556: { uae_s8 src = get_byte(srca);
58557: { uae_s8 dst = m68k_dreg(regs, dstreg);
58558: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
58559: { int flgs = ((uae_s8)(src)) < 0;
58560: int flgo = ((uae_s8)(dst)) < 0;
58561: int flgn = ((uae_s8)(newv)) < 0;
58562: SET_ZFLG (((uae_s8)(newv)) == 0);
58563: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
58564: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
58565: COPY_CARRY;
58566: SET_NFLG (flgn != 0);
58567: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
58568: }}}}}}}m68k_incpc(4);
58569: fill_prefetch_0 ();
58570: return 14;
58571: }
58572: unsigned long REGPARAM2 CPUFUNC(op_903c_5)(uae_u32 opcode) /* SUB */
58573: {
58574: uae_u32 dstreg = (opcode >> 9) & 7;
58575: OpcodeFamily = 7; CurrentInstrCycles = 8;
58576: {{ uae_s8 src = get_ibyte_prefetch(2);
58577: { uae_s8 dst = m68k_dreg(regs, dstreg);
58578: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
58579: { int flgs = ((uae_s8)(src)) < 0;
58580: int flgo = ((uae_s8)(dst)) < 0;
58581: int flgn = ((uae_s8)(newv)) < 0;
58582: SET_ZFLG (((uae_s8)(newv)) == 0);
58583: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
58584: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
58585: COPY_CARRY;
58586: SET_NFLG (flgn != 0);
58587: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
58588: }}}}}}m68k_incpc(4);
58589: fill_prefetch_0 ();
58590: return 8;
58591: }
58592: unsigned long REGPARAM2 CPUFUNC(op_9040_5)(uae_u32 opcode) /* SUB */
58593: {
58594: uae_u32 srcreg = (opcode & 7);
58595: uae_u32 dstreg = (opcode >> 9) & 7;
58596: OpcodeFamily = 7; CurrentInstrCycles = 4;
58597: {{ uae_s16 src = m68k_dreg(regs, srcreg);
58598: { uae_s16 dst = m68k_dreg(regs, dstreg);
58599: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
58600: { int flgs = ((uae_s16)(src)) < 0;
58601: int flgo = ((uae_s16)(dst)) < 0;
58602: int flgn = ((uae_s16)(newv)) < 0;
58603: SET_ZFLG (((uae_s16)(newv)) == 0);
58604: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
58605: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
58606: COPY_CARRY;
58607: SET_NFLG (flgn != 0);
58608: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
58609: }}}}}}m68k_incpc(2);
58610: fill_prefetch_2 ();
58611: return 4;
58612: }
58613: unsigned long REGPARAM2 CPUFUNC(op_9048_5)(uae_u32 opcode) /* SUB */
58614: {
58615: uae_u32 srcreg = (opcode & 7);
58616: uae_u32 dstreg = (opcode >> 9) & 7;
58617: OpcodeFamily = 7; CurrentInstrCycles = 4;
58618: {{ uae_s16 src = m68k_areg(regs, srcreg);
58619: { uae_s16 dst = m68k_dreg(regs, dstreg);
58620: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
58621: { int flgs = ((uae_s16)(src)) < 0;
58622: int flgo = ((uae_s16)(dst)) < 0;
58623: int flgn = ((uae_s16)(newv)) < 0;
58624: SET_ZFLG (((uae_s16)(newv)) == 0);
58625: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
58626: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
58627: COPY_CARRY;
58628: SET_NFLG (flgn != 0);
58629: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
58630: }}}}}}m68k_incpc(2);
58631: fill_prefetch_2 ();
58632: return 4;
58633: }
58634: unsigned long REGPARAM2 CPUFUNC(op_9050_5)(uae_u32 opcode) /* SUB */
58635: {
58636: uae_u32 srcreg = (opcode & 7);
58637: uae_u32 dstreg = (opcode >> 9) & 7;
58638: OpcodeFamily = 7; CurrentInstrCycles = 8;
58639: {{ uaecptr srca = m68k_areg(regs, srcreg);
58640: if ((srca & 1) != 0) {
58641: last_fault_for_exception_3 = srca;
58642: last_op_for_exception_3 = opcode;
58643: last_addr_for_exception_3 = m68k_getpc() + 2;
58644: Exception(3, 0, M68000_EXC_SRC_CPU);
58645: goto endlabel3305;
58646: }
58647: {{ uae_s16 src = get_word(srca);
58648: { uae_s16 dst = m68k_dreg(regs, dstreg);
58649: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
58650: { int flgs = ((uae_s16)(src)) < 0;
58651: int flgo = ((uae_s16)(dst)) < 0;
58652: int flgn = ((uae_s16)(newv)) < 0;
58653: SET_ZFLG (((uae_s16)(newv)) == 0);
58654: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
58655: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
58656: COPY_CARRY;
58657: SET_NFLG (flgn != 0);
58658: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
58659: }}}}}}}}m68k_incpc(2);
58660: fill_prefetch_2 ();
58661: endlabel3305: ;
58662: return 8;
58663: }
58664: unsigned long REGPARAM2 CPUFUNC(op_9058_5)(uae_u32 opcode) /* SUB */
58665: {
58666: uae_u32 srcreg = (opcode & 7);
58667: uae_u32 dstreg = (opcode >> 9) & 7;
58668: OpcodeFamily = 7; CurrentInstrCycles = 8;
58669: {{ uaecptr srca = m68k_areg(regs, srcreg);
58670: if ((srca & 1) != 0) {
58671: last_fault_for_exception_3 = srca;
58672: last_op_for_exception_3 = opcode;
58673: last_addr_for_exception_3 = m68k_getpc() + 2;
58674: Exception(3, 0, M68000_EXC_SRC_CPU);
58675: goto endlabel3306;
58676: }
58677: {{ uae_s16 src = get_word(srca);
58678: m68k_areg(regs, srcreg) += 2;
58679: { uae_s16 dst = m68k_dreg(regs, dstreg);
58680: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
58681: { int flgs = ((uae_s16)(src)) < 0;
58682: int flgo = ((uae_s16)(dst)) < 0;
58683: int flgn = ((uae_s16)(newv)) < 0;
58684: SET_ZFLG (((uae_s16)(newv)) == 0);
58685: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
58686: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
58687: COPY_CARRY;
58688: SET_NFLG (flgn != 0);
58689: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
58690: }}}}}}}}m68k_incpc(2);
58691: fill_prefetch_2 ();
58692: endlabel3306: ;
58693: return 8;
58694: }
58695: unsigned long REGPARAM2 CPUFUNC(op_9060_5)(uae_u32 opcode) /* SUB */
58696: {
58697: uae_u32 srcreg = (opcode & 7);
58698: uae_u32 dstreg = (opcode >> 9) & 7;
58699: OpcodeFamily = 7; CurrentInstrCycles = 10;
58700: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
58701: if ((srca & 1) != 0) {
58702: last_fault_for_exception_3 = srca;
58703: last_op_for_exception_3 = opcode;
58704: last_addr_for_exception_3 = m68k_getpc() + 2;
58705: Exception(3, 0, M68000_EXC_SRC_CPU);
58706: goto endlabel3307;
58707: }
58708: {{ uae_s16 src = get_word(srca);
58709: m68k_areg (regs, srcreg) = srca;
58710: { uae_s16 dst = m68k_dreg(regs, dstreg);
58711: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
58712: { int flgs = ((uae_s16)(src)) < 0;
58713: int flgo = ((uae_s16)(dst)) < 0;
58714: int flgn = ((uae_s16)(newv)) < 0;
58715: SET_ZFLG (((uae_s16)(newv)) == 0);
58716: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
58717: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
58718: COPY_CARRY;
58719: SET_NFLG (flgn != 0);
58720: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
58721: }}}}}}}}m68k_incpc(2);
58722: fill_prefetch_2 ();
58723: endlabel3307: ;
58724: return 10;
58725: }
58726: unsigned long REGPARAM2 CPUFUNC(op_9068_5)(uae_u32 opcode) /* SUB */
58727: {
58728: uae_u32 srcreg = (opcode & 7);
58729: uae_u32 dstreg = (opcode >> 9) & 7;
58730: OpcodeFamily = 7; CurrentInstrCycles = 12;
58731: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
58732: if ((srca & 1) != 0) {
58733: last_fault_for_exception_3 = srca;
58734: last_op_for_exception_3 = opcode;
58735: last_addr_for_exception_3 = m68k_getpc() + 4;
58736: Exception(3, 0, M68000_EXC_SRC_CPU);
58737: goto endlabel3308;
58738: }
58739: {{ uae_s16 src = get_word(srca);
58740: { uae_s16 dst = m68k_dreg(regs, dstreg);
58741: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
58742: { int flgs = ((uae_s16)(src)) < 0;
58743: int flgo = ((uae_s16)(dst)) < 0;
58744: int flgn = ((uae_s16)(newv)) < 0;
58745: SET_ZFLG (((uae_s16)(newv)) == 0);
58746: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
58747: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
58748: COPY_CARRY;
58749: SET_NFLG (flgn != 0);
58750: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
58751: }}}}}}}}m68k_incpc(4);
58752: fill_prefetch_0 ();
58753: endlabel3308: ;
58754: return 12;
58755: }
58756: unsigned long REGPARAM2 CPUFUNC(op_9070_5)(uae_u32 opcode) /* SUB */
58757: {
58758: uae_u32 srcreg = (opcode & 7);
58759: uae_u32 dstreg = (opcode >> 9) & 7;
58760: OpcodeFamily = 7; CurrentInstrCycles = 14;
58761: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
58762: BusCyclePenalty += 2;
58763: if ((srca & 1) != 0) {
58764: last_fault_for_exception_3 = srca;
58765: last_op_for_exception_3 = opcode;
58766: last_addr_for_exception_3 = m68k_getpc() + 4;
58767: Exception(3, 0, M68000_EXC_SRC_CPU);
58768: goto endlabel3309;
58769: }
58770: {{ uae_s16 src = get_word(srca);
58771: { uae_s16 dst = m68k_dreg(regs, dstreg);
58772: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
58773: { int flgs = ((uae_s16)(src)) < 0;
58774: int flgo = ((uae_s16)(dst)) < 0;
58775: int flgn = ((uae_s16)(newv)) < 0;
58776: SET_ZFLG (((uae_s16)(newv)) == 0);
58777: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
58778: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
58779: COPY_CARRY;
58780: SET_NFLG (flgn != 0);
58781: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
58782: }}}}}}}}m68k_incpc(4);
58783: fill_prefetch_0 ();
58784: endlabel3309: ;
58785: return 14;
58786: }
58787: unsigned long REGPARAM2 CPUFUNC(op_9078_5)(uae_u32 opcode) /* SUB */
58788: {
58789: uae_u32 dstreg = (opcode >> 9) & 7;
58790: OpcodeFamily = 7; CurrentInstrCycles = 12;
58791: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
58792: if ((srca & 1) != 0) {
58793: last_fault_for_exception_3 = srca;
58794: last_op_for_exception_3 = opcode;
58795: last_addr_for_exception_3 = m68k_getpc() + 4;
58796: Exception(3, 0, M68000_EXC_SRC_CPU);
58797: goto endlabel3310;
58798: }
58799: {{ uae_s16 src = get_word(srca);
58800: { uae_s16 dst = m68k_dreg(regs, dstreg);
58801: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
58802: { int flgs = ((uae_s16)(src)) < 0;
58803: int flgo = ((uae_s16)(dst)) < 0;
58804: int flgn = ((uae_s16)(newv)) < 0;
58805: SET_ZFLG (((uae_s16)(newv)) == 0);
58806: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
58807: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
58808: COPY_CARRY;
58809: SET_NFLG (flgn != 0);
58810: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
58811: }}}}}}}}m68k_incpc(4);
58812: fill_prefetch_0 ();
58813: endlabel3310: ;
58814: return 12;
58815: }
58816: unsigned long REGPARAM2 CPUFUNC(op_9079_5)(uae_u32 opcode) /* SUB */
58817: {
58818: uae_u32 dstreg = (opcode >> 9) & 7;
58819: OpcodeFamily = 7; CurrentInstrCycles = 16;
58820: {{ uaecptr srca = get_ilong_prefetch(2);
58821: if ((srca & 1) != 0) {
58822: last_fault_for_exception_3 = srca;
58823: last_op_for_exception_3 = opcode;
58824: last_addr_for_exception_3 = m68k_getpc() + 6;
58825: Exception(3, 0, M68000_EXC_SRC_CPU);
58826: goto endlabel3311;
58827: }
58828: {{ uae_s16 src = get_word(srca);
58829: { uae_s16 dst = m68k_dreg(regs, dstreg);
58830: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
58831: { int flgs = ((uae_s16)(src)) < 0;
58832: int flgo = ((uae_s16)(dst)) < 0;
58833: int flgn = ((uae_s16)(newv)) < 0;
58834: SET_ZFLG (((uae_s16)(newv)) == 0);
58835: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
58836: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
58837: COPY_CARRY;
58838: SET_NFLG (flgn != 0);
58839: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
58840: }}}}}}}}m68k_incpc(6);
58841: fill_prefetch_0 ();
58842: endlabel3311: ;
58843: return 16;
58844: }
58845: unsigned long REGPARAM2 CPUFUNC(op_907a_5)(uae_u32 opcode) /* SUB */
58846: {
58847: uae_u32 dstreg = (opcode >> 9) & 7;
58848: OpcodeFamily = 7; CurrentInstrCycles = 12;
58849: {{ uaecptr srca = m68k_getpc () + 2;
58850: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
58851: if ((srca & 1) != 0) {
58852: last_fault_for_exception_3 = srca;
58853: last_op_for_exception_3 = opcode;
58854: last_addr_for_exception_3 = m68k_getpc() + 4;
58855: Exception(3, 0, M68000_EXC_SRC_CPU);
58856: goto endlabel3312;
58857: }
58858: {{ uae_s16 src = get_word(srca);
58859: { uae_s16 dst = m68k_dreg(regs, dstreg);
58860: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
58861: { int flgs = ((uae_s16)(src)) < 0;
58862: int flgo = ((uae_s16)(dst)) < 0;
58863: int flgn = ((uae_s16)(newv)) < 0;
58864: SET_ZFLG (((uae_s16)(newv)) == 0);
58865: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
58866: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
58867: COPY_CARRY;
58868: SET_NFLG (flgn != 0);
58869: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
58870: }}}}}}}}m68k_incpc(4);
58871: fill_prefetch_0 ();
58872: endlabel3312: ;
58873: return 12;
58874: }
58875: unsigned long REGPARAM2 CPUFUNC(op_907b_5)(uae_u32 opcode) /* SUB */
58876: {
58877: uae_u32 dstreg = (opcode >> 9) & 7;
58878: OpcodeFamily = 7; CurrentInstrCycles = 14;
58879: {{ uaecptr tmppc = m68k_getpc() + 2;
58880: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
58881: BusCyclePenalty += 2;
58882: if ((srca & 1) != 0) {
58883: last_fault_for_exception_3 = srca;
58884: last_op_for_exception_3 = opcode;
58885: last_addr_for_exception_3 = m68k_getpc() + 4;
58886: Exception(3, 0, M68000_EXC_SRC_CPU);
58887: goto endlabel3313;
58888: }
58889: {{ uae_s16 src = get_word(srca);
58890: { uae_s16 dst = m68k_dreg(regs, dstreg);
58891: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
58892: { int flgs = ((uae_s16)(src)) < 0;
58893: int flgo = ((uae_s16)(dst)) < 0;
58894: int flgn = ((uae_s16)(newv)) < 0;
58895: SET_ZFLG (((uae_s16)(newv)) == 0);
58896: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
58897: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
58898: COPY_CARRY;
58899: SET_NFLG (flgn != 0);
58900: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
58901: }}}}}}}}m68k_incpc(4);
58902: fill_prefetch_0 ();
58903: endlabel3313: ;
58904: return 14;
58905: }
58906: unsigned long REGPARAM2 CPUFUNC(op_907c_5)(uae_u32 opcode) /* SUB */
58907: {
58908: uae_u32 dstreg = (opcode >> 9) & 7;
58909: OpcodeFamily = 7; CurrentInstrCycles = 8;
58910: {{ uae_s16 src = get_iword_prefetch(2);
58911: { uae_s16 dst = m68k_dreg(regs, dstreg);
58912: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
58913: { int flgs = ((uae_s16)(src)) < 0;
58914: int flgo = ((uae_s16)(dst)) < 0;
58915: int flgn = ((uae_s16)(newv)) < 0;
58916: SET_ZFLG (((uae_s16)(newv)) == 0);
58917: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
58918: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
58919: COPY_CARRY;
58920: SET_NFLG (flgn != 0);
58921: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
58922: }}}}}}m68k_incpc(4);
58923: fill_prefetch_0 ();
58924: return 8;
58925: }
58926: unsigned long REGPARAM2 CPUFUNC(op_9080_5)(uae_u32 opcode) /* SUB */
58927: {
58928: uae_u32 srcreg = (opcode & 7);
58929: uae_u32 dstreg = (opcode >> 9) & 7;
58930: OpcodeFamily = 7; CurrentInstrCycles = 8;
58931: {{ uae_s32 src = m68k_dreg(regs, srcreg);
58932: { uae_s32 dst = m68k_dreg(regs, dstreg);
58933: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
58934: { int flgs = ((uae_s32)(src)) < 0;
58935: int flgo = ((uae_s32)(dst)) < 0;
58936: int flgn = ((uae_s32)(newv)) < 0;
58937: SET_ZFLG (((uae_s32)(newv)) == 0);
58938: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
58939: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
58940: COPY_CARRY;
58941: SET_NFLG (flgn != 0);
58942: m68k_dreg(regs, dstreg) = (newv);
58943: }}}}}}m68k_incpc(2);
58944: fill_prefetch_2 ();
58945: return 8;
58946: }
58947: unsigned long REGPARAM2 CPUFUNC(op_9088_5)(uae_u32 opcode) /* SUB */
58948: {
58949: uae_u32 srcreg = (opcode & 7);
58950: uae_u32 dstreg = (opcode >> 9) & 7;
58951: OpcodeFamily = 7; CurrentInstrCycles = 8;
58952: {{ uae_s32 src = m68k_areg(regs, srcreg);
58953: { uae_s32 dst = m68k_dreg(regs, dstreg);
58954: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
58955: { int flgs = ((uae_s32)(src)) < 0;
58956: int flgo = ((uae_s32)(dst)) < 0;
58957: int flgn = ((uae_s32)(newv)) < 0;
58958: SET_ZFLG (((uae_s32)(newv)) == 0);
58959: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
58960: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
58961: COPY_CARRY;
58962: SET_NFLG (flgn != 0);
58963: m68k_dreg(regs, dstreg) = (newv);
58964: }}}}}}m68k_incpc(2);
58965: fill_prefetch_2 ();
58966: return 8;
58967: }
58968: unsigned long REGPARAM2 CPUFUNC(op_9090_5)(uae_u32 opcode) /* SUB */
58969: {
58970: uae_u32 srcreg = (opcode & 7);
58971: uae_u32 dstreg = (opcode >> 9) & 7;
58972: OpcodeFamily = 7; CurrentInstrCycles = 14;
58973: {{ uaecptr srca = m68k_areg(regs, srcreg);
58974: if ((srca & 1) != 0) {
58975: last_fault_for_exception_3 = srca;
58976: last_op_for_exception_3 = opcode;
58977: last_addr_for_exception_3 = m68k_getpc() + 2;
58978: Exception(3, 0, M68000_EXC_SRC_CPU);
58979: goto endlabel3317;
58980: }
58981: {{ uae_s32 src = get_long(srca);
58982: { uae_s32 dst = m68k_dreg(regs, dstreg);
58983: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
58984: { int flgs = ((uae_s32)(src)) < 0;
58985: int flgo = ((uae_s32)(dst)) < 0;
58986: int flgn = ((uae_s32)(newv)) < 0;
58987: SET_ZFLG (((uae_s32)(newv)) == 0);
58988: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
58989: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
58990: COPY_CARRY;
58991: SET_NFLG (flgn != 0);
58992: m68k_dreg(regs, dstreg) = (newv);
58993: }}}}}}}}m68k_incpc(2);
58994: fill_prefetch_2 ();
58995: endlabel3317: ;
58996: return 14;
58997: }
58998: unsigned long REGPARAM2 CPUFUNC(op_9098_5)(uae_u32 opcode) /* SUB */
58999: {
59000: uae_u32 srcreg = (opcode & 7);
59001: uae_u32 dstreg = (opcode >> 9) & 7;
59002: OpcodeFamily = 7; CurrentInstrCycles = 14;
59003: {{ uaecptr srca = m68k_areg(regs, srcreg);
59004: if ((srca & 1) != 0) {
59005: last_fault_for_exception_3 = srca;
59006: last_op_for_exception_3 = opcode;
59007: last_addr_for_exception_3 = m68k_getpc() + 2;
59008: Exception(3, 0, M68000_EXC_SRC_CPU);
59009: goto endlabel3318;
59010: }
59011: {{ uae_s32 src = get_long(srca);
59012: m68k_areg(regs, srcreg) += 4;
59013: { uae_s32 dst = m68k_dreg(regs, dstreg);
59014: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
59015: { int flgs = ((uae_s32)(src)) < 0;
59016: int flgo = ((uae_s32)(dst)) < 0;
59017: int flgn = ((uae_s32)(newv)) < 0;
59018: SET_ZFLG (((uae_s32)(newv)) == 0);
59019: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
59020: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
59021: COPY_CARRY;
59022: SET_NFLG (flgn != 0);
59023: m68k_dreg(regs, dstreg) = (newv);
59024: }}}}}}}}m68k_incpc(2);
59025: fill_prefetch_2 ();
59026: endlabel3318: ;
59027: return 14;
59028: }
59029: unsigned long REGPARAM2 CPUFUNC(op_90a0_5)(uae_u32 opcode) /* SUB */
59030: {
59031: uae_u32 srcreg = (opcode & 7);
59032: uae_u32 dstreg = (opcode >> 9) & 7;
59033: OpcodeFamily = 7; CurrentInstrCycles = 16;
59034: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
59035: if ((srca & 1) != 0) {
59036: last_fault_for_exception_3 = srca;
59037: last_op_for_exception_3 = opcode;
59038: last_addr_for_exception_3 = m68k_getpc() + 2;
59039: Exception(3, 0, M68000_EXC_SRC_CPU);
59040: goto endlabel3319;
59041: }
59042: {{ uae_s32 src = get_long(srca);
59043: m68k_areg (regs, srcreg) = srca;
59044: { uae_s32 dst = m68k_dreg(regs, dstreg);
59045: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
59046: { int flgs = ((uae_s32)(src)) < 0;
59047: int flgo = ((uae_s32)(dst)) < 0;
59048: int flgn = ((uae_s32)(newv)) < 0;
59049: SET_ZFLG (((uae_s32)(newv)) == 0);
59050: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
59051: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
59052: COPY_CARRY;
59053: SET_NFLG (flgn != 0);
59054: m68k_dreg(regs, dstreg) = (newv);
59055: }}}}}}}}m68k_incpc(2);
59056: fill_prefetch_2 ();
59057: endlabel3319: ;
59058: return 16;
59059: }
59060: unsigned long REGPARAM2 CPUFUNC(op_90a8_5)(uae_u32 opcode) /* SUB */
59061: {
59062: uae_u32 srcreg = (opcode & 7);
59063: uae_u32 dstreg = (opcode >> 9) & 7;
59064: OpcodeFamily = 7; CurrentInstrCycles = 18;
59065: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
59066: if ((srca & 1) != 0) {
59067: last_fault_for_exception_3 = srca;
59068: last_op_for_exception_3 = opcode;
59069: last_addr_for_exception_3 = m68k_getpc() + 4;
59070: Exception(3, 0, M68000_EXC_SRC_CPU);
59071: goto endlabel3320;
59072: }
59073: {{ uae_s32 src = get_long(srca);
59074: { uae_s32 dst = m68k_dreg(regs, dstreg);
59075: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
59076: { int flgs = ((uae_s32)(src)) < 0;
59077: int flgo = ((uae_s32)(dst)) < 0;
59078: int flgn = ((uae_s32)(newv)) < 0;
59079: SET_ZFLG (((uae_s32)(newv)) == 0);
59080: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
59081: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
59082: COPY_CARRY;
59083: SET_NFLG (flgn != 0);
59084: m68k_dreg(regs, dstreg) = (newv);
59085: }}}}}}}}m68k_incpc(4);
59086: fill_prefetch_0 ();
59087: endlabel3320: ;
59088: return 18;
59089: }
59090: unsigned long REGPARAM2 CPUFUNC(op_90b0_5)(uae_u32 opcode) /* SUB */
59091: {
59092: uae_u32 srcreg = (opcode & 7);
59093: uae_u32 dstreg = (opcode >> 9) & 7;
59094: OpcodeFamily = 7; CurrentInstrCycles = 20;
59095: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
59096: BusCyclePenalty += 2;
59097: if ((srca & 1) != 0) {
59098: last_fault_for_exception_3 = srca;
59099: last_op_for_exception_3 = opcode;
59100: last_addr_for_exception_3 = m68k_getpc() + 4;
59101: Exception(3, 0, M68000_EXC_SRC_CPU);
59102: goto endlabel3321;
59103: }
59104: {{ uae_s32 src = get_long(srca);
59105: { uae_s32 dst = m68k_dreg(regs, dstreg);
59106: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
59107: { int flgs = ((uae_s32)(src)) < 0;
59108: int flgo = ((uae_s32)(dst)) < 0;
59109: int flgn = ((uae_s32)(newv)) < 0;
59110: SET_ZFLG (((uae_s32)(newv)) == 0);
59111: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
59112: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
59113: COPY_CARRY;
59114: SET_NFLG (flgn != 0);
59115: m68k_dreg(regs, dstreg) = (newv);
59116: }}}}}}}}m68k_incpc(4);
59117: fill_prefetch_0 ();
59118: endlabel3321: ;
59119: return 20;
59120: }
59121: unsigned long REGPARAM2 CPUFUNC(op_90b8_5)(uae_u32 opcode) /* SUB */
59122: {
59123: uae_u32 dstreg = (opcode >> 9) & 7;
59124: OpcodeFamily = 7; CurrentInstrCycles = 18;
59125: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
59126: if ((srca & 1) != 0) {
59127: last_fault_for_exception_3 = srca;
59128: last_op_for_exception_3 = opcode;
59129: last_addr_for_exception_3 = m68k_getpc() + 4;
59130: Exception(3, 0, M68000_EXC_SRC_CPU);
59131: goto endlabel3322;
59132: }
59133: {{ uae_s32 src = get_long(srca);
59134: { uae_s32 dst = m68k_dreg(regs, dstreg);
59135: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
59136: { int flgs = ((uae_s32)(src)) < 0;
59137: int flgo = ((uae_s32)(dst)) < 0;
59138: int flgn = ((uae_s32)(newv)) < 0;
59139: SET_ZFLG (((uae_s32)(newv)) == 0);
59140: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
59141: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
59142: COPY_CARRY;
59143: SET_NFLG (flgn != 0);
59144: m68k_dreg(regs, dstreg) = (newv);
59145: }}}}}}}}m68k_incpc(4);
59146: fill_prefetch_0 ();
59147: endlabel3322: ;
59148: return 18;
59149: }
59150: unsigned long REGPARAM2 CPUFUNC(op_90b9_5)(uae_u32 opcode) /* SUB */
59151: {
59152: uae_u32 dstreg = (opcode >> 9) & 7;
59153: OpcodeFamily = 7; CurrentInstrCycles = 22;
59154: {{ uaecptr srca = get_ilong_prefetch(2);
59155: if ((srca & 1) != 0) {
59156: last_fault_for_exception_3 = srca;
59157: last_op_for_exception_3 = opcode;
59158: last_addr_for_exception_3 = m68k_getpc() + 6;
59159: Exception(3, 0, M68000_EXC_SRC_CPU);
59160: goto endlabel3323;
59161: }
59162: {{ uae_s32 src = get_long(srca);
59163: { uae_s32 dst = m68k_dreg(regs, dstreg);
59164: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
59165: { int flgs = ((uae_s32)(src)) < 0;
59166: int flgo = ((uae_s32)(dst)) < 0;
59167: int flgn = ((uae_s32)(newv)) < 0;
59168: SET_ZFLG (((uae_s32)(newv)) == 0);
59169: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
59170: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
59171: COPY_CARRY;
59172: SET_NFLG (flgn != 0);
59173: m68k_dreg(regs, dstreg) = (newv);
59174: }}}}}}}}m68k_incpc(6);
59175: fill_prefetch_0 ();
59176: endlabel3323: ;
59177: return 22;
59178: }
59179: unsigned long REGPARAM2 CPUFUNC(op_90ba_5)(uae_u32 opcode) /* SUB */
59180: {
59181: uae_u32 dstreg = (opcode >> 9) & 7;
59182: OpcodeFamily = 7; CurrentInstrCycles = 18;
59183: {{ uaecptr srca = m68k_getpc () + 2;
59184: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
59185: if ((srca & 1) != 0) {
59186: last_fault_for_exception_3 = srca;
59187: last_op_for_exception_3 = opcode;
59188: last_addr_for_exception_3 = m68k_getpc() + 4;
59189: Exception(3, 0, M68000_EXC_SRC_CPU);
59190: goto endlabel3324;
59191: }
59192: {{ uae_s32 src = get_long(srca);
59193: { uae_s32 dst = m68k_dreg(regs, dstreg);
59194: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
59195: { int flgs = ((uae_s32)(src)) < 0;
59196: int flgo = ((uae_s32)(dst)) < 0;
59197: int flgn = ((uae_s32)(newv)) < 0;
59198: SET_ZFLG (((uae_s32)(newv)) == 0);
59199: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
59200: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
59201: COPY_CARRY;
59202: SET_NFLG (flgn != 0);
59203: m68k_dreg(regs, dstreg) = (newv);
59204: }}}}}}}}m68k_incpc(4);
59205: fill_prefetch_0 ();
59206: endlabel3324: ;
59207: return 18;
59208: }
59209: unsigned long REGPARAM2 CPUFUNC(op_90bb_5)(uae_u32 opcode) /* SUB */
59210: {
59211: uae_u32 dstreg = (opcode >> 9) & 7;
59212: OpcodeFamily = 7; CurrentInstrCycles = 20;
59213: {{ uaecptr tmppc = m68k_getpc() + 2;
59214: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
59215: BusCyclePenalty += 2;
59216: if ((srca & 1) != 0) {
59217: last_fault_for_exception_3 = srca;
59218: last_op_for_exception_3 = opcode;
59219: last_addr_for_exception_3 = m68k_getpc() + 4;
59220: Exception(3, 0, M68000_EXC_SRC_CPU);
59221: goto endlabel3325;
59222: }
59223: {{ uae_s32 src = get_long(srca);
59224: { uae_s32 dst = m68k_dreg(regs, dstreg);
59225: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
59226: { int flgs = ((uae_s32)(src)) < 0;
59227: int flgo = ((uae_s32)(dst)) < 0;
59228: int flgn = ((uae_s32)(newv)) < 0;
59229: SET_ZFLG (((uae_s32)(newv)) == 0);
59230: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
59231: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
59232: COPY_CARRY;
59233: SET_NFLG (flgn != 0);
59234: m68k_dreg(regs, dstreg) = (newv);
59235: }}}}}}}}m68k_incpc(4);
59236: fill_prefetch_0 ();
59237: endlabel3325: ;
59238: return 20;
59239: }
59240: unsigned long REGPARAM2 CPUFUNC(op_90bc_5)(uae_u32 opcode) /* SUB */
59241: {
59242: uae_u32 dstreg = (opcode >> 9) & 7;
59243: OpcodeFamily = 7; CurrentInstrCycles = 16;
59244: {{ uae_s32 src = get_ilong_prefetch(2);
59245: { uae_s32 dst = m68k_dreg(regs, dstreg);
59246: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
59247: { int flgs = ((uae_s32)(src)) < 0;
59248: int flgo = ((uae_s32)(dst)) < 0;
59249: int flgn = ((uae_s32)(newv)) < 0;
59250: SET_ZFLG (((uae_s32)(newv)) == 0);
59251: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
59252: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
59253: COPY_CARRY;
59254: SET_NFLG (flgn != 0);
59255: m68k_dreg(regs, dstreg) = (newv);
59256: }}}}}}m68k_incpc(6);
59257: fill_prefetch_0 ();
59258: return 16;
59259: }
59260: unsigned long REGPARAM2 CPUFUNC(op_90c0_5)(uae_u32 opcode) /* SUBA */
59261: {
59262: uae_u32 srcreg = (opcode & 7);
59263: uae_u32 dstreg = (opcode >> 9) & 7;
59264: OpcodeFamily = 8; CurrentInstrCycles = 8;
59265: {{ uae_s16 src = m68k_dreg(regs, srcreg);
59266: { uae_s32 dst = m68k_areg(regs, dstreg);
59267: { uae_u32 newv = dst - src;
59268: m68k_areg(regs, dstreg) = (newv);
59269: }}}}m68k_incpc(2);
59270: fill_prefetch_2 ();
59271: return 8;
59272: }
59273: unsigned long REGPARAM2 CPUFUNC(op_90c8_5)(uae_u32 opcode) /* SUBA */
59274: {
59275: uae_u32 srcreg = (opcode & 7);
59276: uae_u32 dstreg = (opcode >> 9) & 7;
59277: OpcodeFamily = 8; CurrentInstrCycles = 8;
59278: {{ uae_s16 src = m68k_areg(regs, srcreg);
59279: { uae_s32 dst = m68k_areg(regs, dstreg);
59280: { uae_u32 newv = dst - src;
59281: m68k_areg(regs, dstreg) = (newv);
59282: }}}}m68k_incpc(2);
59283: fill_prefetch_2 ();
59284: return 8;
59285: }
59286: unsigned long REGPARAM2 CPUFUNC(op_90d0_5)(uae_u32 opcode) /* SUBA */
59287: {
59288: uae_u32 srcreg = (opcode & 7);
59289: uae_u32 dstreg = (opcode >> 9) & 7;
59290: OpcodeFamily = 8; CurrentInstrCycles = 12;
59291: {{ uaecptr srca = m68k_areg(regs, srcreg);
59292: if ((srca & 1) != 0) {
59293: last_fault_for_exception_3 = srca;
59294: last_op_for_exception_3 = opcode;
59295: last_addr_for_exception_3 = m68k_getpc() + 2;
59296: Exception(3, 0, M68000_EXC_SRC_CPU);
59297: goto endlabel3329;
59298: }
59299: {{ uae_s16 src = get_word(srca);
59300: { uae_s32 dst = m68k_areg(regs, dstreg);
59301: { uae_u32 newv = dst - src;
59302: m68k_areg(regs, dstreg) = (newv);
59303: }}}}}}m68k_incpc(2);
59304: fill_prefetch_2 ();
59305: endlabel3329: ;
59306: return 12;
59307: }
59308: unsigned long REGPARAM2 CPUFUNC(op_90d8_5)(uae_u32 opcode) /* SUBA */
59309: {
59310: uae_u32 srcreg = (opcode & 7);
59311: uae_u32 dstreg = (opcode >> 9) & 7;
59312: OpcodeFamily = 8; CurrentInstrCycles = 12;
59313: {{ uaecptr srca = m68k_areg(regs, srcreg);
59314: if ((srca & 1) != 0) {
59315: last_fault_for_exception_3 = srca;
59316: last_op_for_exception_3 = opcode;
59317: last_addr_for_exception_3 = m68k_getpc() + 2;
59318: Exception(3, 0, M68000_EXC_SRC_CPU);
59319: goto endlabel3330;
59320: }
59321: {{ uae_s16 src = get_word(srca);
59322: m68k_areg(regs, srcreg) += 2;
59323: { uae_s32 dst = m68k_areg(regs, dstreg);
59324: { uae_u32 newv = dst - src;
59325: m68k_areg(regs, dstreg) = (newv);
59326: }}}}}}m68k_incpc(2);
59327: fill_prefetch_2 ();
59328: endlabel3330: ;
59329: return 12;
59330: }
59331: unsigned long REGPARAM2 CPUFUNC(op_90e0_5)(uae_u32 opcode) /* SUBA */
59332: {
59333: uae_u32 srcreg = (opcode & 7);
59334: uae_u32 dstreg = (opcode >> 9) & 7;
59335: OpcodeFamily = 8; CurrentInstrCycles = 14;
59336: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
59337: if ((srca & 1) != 0) {
59338: last_fault_for_exception_3 = srca;
59339: last_op_for_exception_3 = opcode;
59340: last_addr_for_exception_3 = m68k_getpc() + 2;
59341: Exception(3, 0, M68000_EXC_SRC_CPU);
59342: goto endlabel3331;
59343: }
59344: {{ uae_s16 src = get_word(srca);
59345: m68k_areg (regs, srcreg) = srca;
59346: { uae_s32 dst = m68k_areg(regs, dstreg);
59347: { uae_u32 newv = dst - src;
59348: m68k_areg(regs, dstreg) = (newv);
59349: }}}}}}m68k_incpc(2);
59350: fill_prefetch_2 ();
59351: endlabel3331: ;
59352: return 14;
59353: }
59354: unsigned long REGPARAM2 CPUFUNC(op_90e8_5)(uae_u32 opcode) /* SUBA */
59355: {
59356: uae_u32 srcreg = (opcode & 7);
59357: uae_u32 dstreg = (opcode >> 9) & 7;
59358: OpcodeFamily = 8; CurrentInstrCycles = 16;
59359: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
59360: if ((srca & 1) != 0) {
59361: last_fault_for_exception_3 = srca;
59362: last_op_for_exception_3 = opcode;
59363: last_addr_for_exception_3 = m68k_getpc() + 4;
59364: Exception(3, 0, M68000_EXC_SRC_CPU);
59365: goto endlabel3332;
59366: }
59367: {{ uae_s16 src = get_word(srca);
59368: { uae_s32 dst = m68k_areg(regs, dstreg);
59369: { uae_u32 newv = dst - src;
59370: m68k_areg(regs, dstreg) = (newv);
59371: }}}}}}m68k_incpc(4);
59372: fill_prefetch_0 ();
59373: endlabel3332: ;
59374: return 16;
59375: }
59376: unsigned long REGPARAM2 CPUFUNC(op_90f0_5)(uae_u32 opcode) /* SUBA */
59377: {
59378: uae_u32 srcreg = (opcode & 7);
59379: uae_u32 dstreg = (opcode >> 9) & 7;
59380: OpcodeFamily = 8; CurrentInstrCycles = 18;
59381: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
59382: BusCyclePenalty += 2;
59383: if ((srca & 1) != 0) {
59384: last_fault_for_exception_3 = srca;
59385: last_op_for_exception_3 = opcode;
59386: last_addr_for_exception_3 = m68k_getpc() + 4;
59387: Exception(3, 0, M68000_EXC_SRC_CPU);
59388: goto endlabel3333;
59389: }
59390: {{ uae_s16 src = get_word(srca);
59391: { uae_s32 dst = m68k_areg(regs, dstreg);
59392: { uae_u32 newv = dst - src;
59393: m68k_areg(regs, dstreg) = (newv);
59394: }}}}}}m68k_incpc(4);
59395: fill_prefetch_0 ();
59396: endlabel3333: ;
59397: return 18;
59398: }
59399: unsigned long REGPARAM2 CPUFUNC(op_90f8_5)(uae_u32 opcode) /* SUBA */
59400: {
59401: uae_u32 dstreg = (opcode >> 9) & 7;
59402: OpcodeFamily = 8; CurrentInstrCycles = 16;
59403: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
59404: if ((srca & 1) != 0) {
59405: last_fault_for_exception_3 = srca;
59406: last_op_for_exception_3 = opcode;
59407: last_addr_for_exception_3 = m68k_getpc() + 4;
59408: Exception(3, 0, M68000_EXC_SRC_CPU);
59409: goto endlabel3334;
59410: }
59411: {{ uae_s16 src = get_word(srca);
59412: { uae_s32 dst = m68k_areg(regs, dstreg);
59413: { uae_u32 newv = dst - src;
59414: m68k_areg(regs, dstreg) = (newv);
59415: }}}}}}m68k_incpc(4);
59416: fill_prefetch_0 ();
59417: endlabel3334: ;
59418: return 16;
59419: }
59420: unsigned long REGPARAM2 CPUFUNC(op_90f9_5)(uae_u32 opcode) /* SUBA */
59421: {
59422: uae_u32 dstreg = (opcode >> 9) & 7;
59423: OpcodeFamily = 8; CurrentInstrCycles = 20;
59424: {{ uaecptr srca = get_ilong_prefetch(2);
59425: if ((srca & 1) != 0) {
59426: last_fault_for_exception_3 = srca;
59427: last_op_for_exception_3 = opcode;
59428: last_addr_for_exception_3 = m68k_getpc() + 6;
59429: Exception(3, 0, M68000_EXC_SRC_CPU);
59430: goto endlabel3335;
59431: }
59432: {{ uae_s16 src = get_word(srca);
59433: { uae_s32 dst = m68k_areg(regs, dstreg);
59434: { uae_u32 newv = dst - src;
59435: m68k_areg(regs, dstreg) = (newv);
59436: }}}}}}m68k_incpc(6);
59437: fill_prefetch_0 ();
59438: endlabel3335: ;
59439: return 20;
59440: }
59441: unsigned long REGPARAM2 CPUFUNC(op_90fa_5)(uae_u32 opcode) /* SUBA */
59442: {
59443: uae_u32 dstreg = (opcode >> 9) & 7;
59444: OpcodeFamily = 8; CurrentInstrCycles = 16;
59445: {{ uaecptr srca = m68k_getpc () + 2;
59446: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
59447: if ((srca & 1) != 0) {
59448: last_fault_for_exception_3 = srca;
59449: last_op_for_exception_3 = opcode;
59450: last_addr_for_exception_3 = m68k_getpc() + 4;
59451: Exception(3, 0, M68000_EXC_SRC_CPU);
59452: goto endlabel3336;
59453: }
59454: {{ uae_s16 src = get_word(srca);
59455: { uae_s32 dst = m68k_areg(regs, dstreg);
59456: { uae_u32 newv = dst - src;
59457: m68k_areg(regs, dstreg) = (newv);
59458: }}}}}}m68k_incpc(4);
59459: fill_prefetch_0 ();
59460: endlabel3336: ;
59461: return 16;
59462: }
59463: unsigned long REGPARAM2 CPUFUNC(op_90fb_5)(uae_u32 opcode) /* SUBA */
59464: {
59465: uae_u32 dstreg = (opcode >> 9) & 7;
59466: OpcodeFamily = 8; CurrentInstrCycles = 18;
59467: {{ uaecptr tmppc = m68k_getpc() + 2;
59468: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
59469: BusCyclePenalty += 2;
59470: if ((srca & 1) != 0) {
59471: last_fault_for_exception_3 = srca;
59472: last_op_for_exception_3 = opcode;
59473: last_addr_for_exception_3 = m68k_getpc() + 4;
59474: Exception(3, 0, M68000_EXC_SRC_CPU);
59475: goto endlabel3337;
59476: }
59477: {{ uae_s16 src = get_word(srca);
59478: { uae_s32 dst = m68k_areg(regs, dstreg);
59479: { uae_u32 newv = dst - src;
59480: m68k_areg(regs, dstreg) = (newv);
59481: }}}}}}m68k_incpc(4);
59482: fill_prefetch_0 ();
59483: endlabel3337: ;
59484: return 18;
59485: }
59486: unsigned long REGPARAM2 CPUFUNC(op_90fc_5)(uae_u32 opcode) /* SUBA */
59487: {
59488: uae_u32 dstreg = (opcode >> 9) & 7;
59489: OpcodeFamily = 8; CurrentInstrCycles = 12;
59490: {{ uae_s16 src = get_iword_prefetch(2);
59491: { uae_s32 dst = m68k_areg(regs, dstreg);
59492: { uae_u32 newv = dst - src;
59493: m68k_areg(regs, dstreg) = (newv);
59494: }}}}m68k_incpc(4);
59495: fill_prefetch_0 ();
59496: return 12;
59497: }
59498: unsigned long REGPARAM2 CPUFUNC(op_9100_5)(uae_u32 opcode) /* SUBX */
59499: {
59500: uae_u32 srcreg = (opcode & 7);
59501: uae_u32 dstreg = (opcode >> 9) & 7;
59502: OpcodeFamily = 9; CurrentInstrCycles = 4;
59503: {{ uae_s8 src = m68k_dreg(regs, srcreg);
59504: { uae_s8 dst = m68k_dreg(regs, dstreg);
59505: { uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0);
59506: { int flgs = ((uae_s8)(src)) < 0;
59507: int flgo = ((uae_s8)(dst)) < 0;
59508: int flgn = ((uae_s8)(newv)) < 0;
59509: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
59510: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
59511: COPY_CARRY;
59512: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
59513: SET_NFLG (((uae_s8)(newv)) < 0);
59514: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
59515: }}}}}m68k_incpc(2);
59516: fill_prefetch_2 ();
59517: return 4;
59518: }
59519: unsigned long REGPARAM2 CPUFUNC(op_9108_5)(uae_u32 opcode) /* SUBX */
59520: {
59521: uae_u32 srcreg = (opcode & 7);
59522: uae_u32 dstreg = (opcode >> 9) & 7;
59523: OpcodeFamily = 9; CurrentInstrCycles = 18;
59524: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
59525: { uae_s8 src = get_byte(srca);
59526: m68k_areg (regs, srcreg) = srca;
59527: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
59528: { uae_s8 dst = get_byte(dsta);
59529: m68k_areg (regs, dstreg) = dsta;
59530: { uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0);
59531: { int flgs = ((uae_s8)(src)) < 0;
59532: int flgo = ((uae_s8)(dst)) < 0;
59533: int flgn = ((uae_s8)(newv)) < 0;
59534: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
59535: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
59536: COPY_CARRY;
59537: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
59538: SET_NFLG (((uae_s8)(newv)) < 0);
59539: m68k_incpc(2);
59540: fill_prefetch_2 ();
59541: put_byte(dsta,newv);
59542: }}}}}}}return 18;
59543: }
59544: unsigned long REGPARAM2 CPUFUNC(op_9110_5)(uae_u32 opcode) /* SUB */
59545: {
59546: uae_u32 srcreg = ((opcode >> 9) & 7);
59547: uae_u32 dstreg = opcode & 7;
59548: OpcodeFamily = 7; CurrentInstrCycles = 12;
59549: {{ uae_s8 src = m68k_dreg(regs, srcreg);
59550: { uaecptr dsta = m68k_areg(regs, dstreg);
59551: { uae_s8 dst = get_byte(dsta);
59552: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
59553: { int flgs = ((uae_s8)(src)) < 0;
59554: int flgo = ((uae_s8)(dst)) < 0;
59555: int flgn = ((uae_s8)(newv)) < 0;
59556: SET_ZFLG (((uae_s8)(newv)) == 0);
59557: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
59558: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
59559: COPY_CARRY;
59560: SET_NFLG (flgn != 0);
59561: m68k_incpc(2);
59562: fill_prefetch_2 ();
59563: put_byte(dsta,newv);
59564: }}}}}}}return 12;
59565: }
59566: unsigned long REGPARAM2 CPUFUNC(op_9118_5)(uae_u32 opcode) /* SUB */
59567: {
59568: uae_u32 srcreg = ((opcode >> 9) & 7);
59569: uae_u32 dstreg = opcode & 7;
59570: OpcodeFamily = 7; CurrentInstrCycles = 12;
59571: {{ uae_s8 src = m68k_dreg(regs, srcreg);
59572: { uaecptr dsta = m68k_areg(regs, dstreg);
59573: { uae_s8 dst = get_byte(dsta);
59574: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
59575: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
59576: { int flgs = ((uae_s8)(src)) < 0;
59577: int flgo = ((uae_s8)(dst)) < 0;
59578: int flgn = ((uae_s8)(newv)) < 0;
59579: SET_ZFLG (((uae_s8)(newv)) == 0);
59580: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
59581: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
59582: COPY_CARRY;
59583: SET_NFLG (flgn != 0);
59584: m68k_incpc(2);
59585: fill_prefetch_2 ();
59586: put_byte(dsta,newv);
59587: }}}}}}}return 12;
59588: }
59589: unsigned long REGPARAM2 CPUFUNC(op_9120_5)(uae_u32 opcode) /* SUB */
59590: {
59591: uae_u32 srcreg = ((opcode >> 9) & 7);
59592: uae_u32 dstreg = opcode & 7;
59593: OpcodeFamily = 7; CurrentInstrCycles = 14;
59594: {{ uae_s8 src = m68k_dreg(regs, srcreg);
59595: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
59596: { uae_s8 dst = get_byte(dsta);
59597: m68k_areg (regs, dstreg) = dsta;
59598: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
59599: { int flgs = ((uae_s8)(src)) < 0;
59600: int flgo = ((uae_s8)(dst)) < 0;
59601: int flgn = ((uae_s8)(newv)) < 0;
59602: SET_ZFLG (((uae_s8)(newv)) == 0);
59603: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
59604: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
59605: COPY_CARRY;
59606: SET_NFLG (flgn != 0);
59607: m68k_incpc(2);
59608: fill_prefetch_2 ();
59609: put_byte(dsta,newv);
59610: }}}}}}}return 14;
59611: }
59612: unsigned long REGPARAM2 CPUFUNC(op_9128_5)(uae_u32 opcode) /* SUB */
59613: {
59614: uae_u32 srcreg = ((opcode >> 9) & 7);
59615: uae_u32 dstreg = opcode & 7;
59616: OpcodeFamily = 7; CurrentInstrCycles = 16;
59617: {{ uae_s8 src = m68k_dreg(regs, srcreg);
59618: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
59619: { uae_s8 dst = get_byte(dsta);
59620: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
59621: { int flgs = ((uae_s8)(src)) < 0;
59622: int flgo = ((uae_s8)(dst)) < 0;
59623: int flgn = ((uae_s8)(newv)) < 0;
59624: SET_ZFLG (((uae_s8)(newv)) == 0);
59625: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
59626: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
59627: COPY_CARRY;
59628: SET_NFLG (flgn != 0);
59629: m68k_incpc(4);
59630: fill_prefetch_0 ();
59631: put_byte(dsta,newv);
59632: }}}}}}}return 16;
59633: }
59634: unsigned long REGPARAM2 CPUFUNC(op_9130_5)(uae_u32 opcode) /* SUB */
59635: {
59636: uae_u32 srcreg = ((opcode >> 9) & 7);
59637: uae_u32 dstreg = opcode & 7;
59638: OpcodeFamily = 7; CurrentInstrCycles = 18;
59639: {{ uae_s8 src = m68k_dreg(regs, srcreg);
59640: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
59641: BusCyclePenalty += 2;
59642: { uae_s8 dst = get_byte(dsta);
59643: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
59644: { int flgs = ((uae_s8)(src)) < 0;
59645: int flgo = ((uae_s8)(dst)) < 0;
59646: int flgn = ((uae_s8)(newv)) < 0;
59647: SET_ZFLG (((uae_s8)(newv)) == 0);
59648: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
59649: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
59650: COPY_CARRY;
59651: SET_NFLG (flgn != 0);
59652: m68k_incpc(4);
59653: fill_prefetch_0 ();
59654: put_byte(dsta,newv);
59655: }}}}}}}return 18;
59656: }
59657: unsigned long REGPARAM2 CPUFUNC(op_9138_5)(uae_u32 opcode) /* SUB */
59658: {
59659: uae_u32 srcreg = ((opcode >> 9) & 7);
59660: OpcodeFamily = 7; CurrentInstrCycles = 16;
59661: {{ uae_s8 src = m68k_dreg(regs, srcreg);
59662: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
59663: { uae_s8 dst = get_byte(dsta);
59664: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
59665: { int flgs = ((uae_s8)(src)) < 0;
59666: int flgo = ((uae_s8)(dst)) < 0;
59667: int flgn = ((uae_s8)(newv)) < 0;
59668: SET_ZFLG (((uae_s8)(newv)) == 0);
59669: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
59670: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
59671: COPY_CARRY;
59672: SET_NFLG (flgn != 0);
59673: m68k_incpc(4);
59674: fill_prefetch_0 ();
59675: put_byte(dsta,newv);
59676: }}}}}}}return 16;
59677: }
59678: unsigned long REGPARAM2 CPUFUNC(op_9139_5)(uae_u32 opcode) /* SUB */
59679: {
59680: uae_u32 srcreg = ((opcode >> 9) & 7);
59681: OpcodeFamily = 7; CurrentInstrCycles = 20;
59682: {{ uae_s8 src = m68k_dreg(regs, srcreg);
59683: { uaecptr dsta = get_ilong_prefetch(2);
59684: { uae_s8 dst = get_byte(dsta);
59685: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
59686: { int flgs = ((uae_s8)(src)) < 0;
59687: int flgo = ((uae_s8)(dst)) < 0;
59688: int flgn = ((uae_s8)(newv)) < 0;
59689: SET_ZFLG (((uae_s8)(newv)) == 0);
59690: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
59691: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
59692: COPY_CARRY;
59693: SET_NFLG (flgn != 0);
59694: m68k_incpc(6);
59695: fill_prefetch_0 ();
59696: put_byte(dsta,newv);
59697: }}}}}}}return 20;
59698: }
59699: unsigned long REGPARAM2 CPUFUNC(op_9140_5)(uae_u32 opcode) /* SUBX */
59700: {
59701: uae_u32 srcreg = (opcode & 7);
59702: uae_u32 dstreg = (opcode >> 9) & 7;
59703: OpcodeFamily = 9; CurrentInstrCycles = 4;
59704: {{ uae_s16 src = m68k_dreg(regs, srcreg);
59705: { uae_s16 dst = m68k_dreg(regs, dstreg);
59706: { uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0);
59707: { int flgs = ((uae_s16)(src)) < 0;
59708: int flgo = ((uae_s16)(dst)) < 0;
59709: int flgn = ((uae_s16)(newv)) < 0;
59710: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
59711: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
59712: COPY_CARRY;
59713: SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
59714: SET_NFLG (((uae_s16)(newv)) < 0);
59715: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
59716: }}}}}m68k_incpc(2);
59717: fill_prefetch_2 ();
59718: return 4;
59719: }
59720: unsigned long REGPARAM2 CPUFUNC(op_9148_5)(uae_u32 opcode) /* SUBX */
59721: {
59722: uae_u32 srcreg = (opcode & 7);
59723: uae_u32 dstreg = (opcode >> 9) & 7;
59724: OpcodeFamily = 9; CurrentInstrCycles = 18;
59725: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
59726: if ((srca & 1) != 0) {
59727: last_fault_for_exception_3 = srca;
59728: last_op_for_exception_3 = opcode;
59729: last_addr_for_exception_3 = m68k_getpc() + 2;
59730: Exception(3, 0, M68000_EXC_SRC_CPU);
59731: goto endlabel3349;
59732: }
59733: {{ uae_s16 src = get_word(srca);
59734: m68k_areg (regs, srcreg) = srca;
59735: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
59736: if ((dsta & 1) != 0) {
59737: last_fault_for_exception_3 = dsta;
59738: last_op_for_exception_3 = opcode;
59739: last_addr_for_exception_3 = m68k_getpc() + 2;
59740: Exception(3, 0, M68000_EXC_SRC_CPU);
59741: goto endlabel3349;
59742: }
59743: {{ uae_s16 dst = get_word(dsta);
59744: m68k_areg (regs, dstreg) = dsta;
59745: { uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0);
59746: { int flgs = ((uae_s16)(src)) < 0;
59747: int flgo = ((uae_s16)(dst)) < 0;
59748: int flgn = ((uae_s16)(newv)) < 0;
59749: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
59750: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
59751: COPY_CARRY;
59752: SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
59753: SET_NFLG (((uae_s16)(newv)) < 0);
59754: m68k_incpc(2);
59755: fill_prefetch_2 ();
59756: put_word(dsta,newv);
59757: }}}}}}}}}endlabel3349: ;
59758: return 18;
59759: }
59760: unsigned long REGPARAM2 CPUFUNC(op_9150_5)(uae_u32 opcode) /* SUB */
59761: {
59762: uae_u32 srcreg = ((opcode >> 9) & 7);
59763: uae_u32 dstreg = opcode & 7;
59764: OpcodeFamily = 7; CurrentInstrCycles = 12;
59765: {{ uae_s16 src = m68k_dreg(regs, srcreg);
59766: { uaecptr dsta = m68k_areg(regs, dstreg);
59767: if ((dsta & 1) != 0) {
59768: last_fault_for_exception_3 = dsta;
59769: last_op_for_exception_3 = opcode;
59770: last_addr_for_exception_3 = m68k_getpc() + 2;
59771: Exception(3, 0, M68000_EXC_SRC_CPU);
59772: goto endlabel3350;
59773: }
59774: {{ uae_s16 dst = get_word(dsta);
59775: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
59776: { int flgs = ((uae_s16)(src)) < 0;
59777: int flgo = ((uae_s16)(dst)) < 0;
59778: int flgn = ((uae_s16)(newv)) < 0;
59779: SET_ZFLG (((uae_s16)(newv)) == 0);
59780: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
59781: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
59782: COPY_CARRY;
59783: SET_NFLG (flgn != 0);
59784: m68k_incpc(2);
59785: fill_prefetch_2 ();
59786: put_word(dsta,newv);
59787: }}}}}}}}endlabel3350: ;
59788: return 12;
59789: }
59790: unsigned long REGPARAM2 CPUFUNC(op_9158_5)(uae_u32 opcode) /* SUB */
59791: {
59792: uae_u32 srcreg = ((opcode >> 9) & 7);
59793: uae_u32 dstreg = opcode & 7;
59794: OpcodeFamily = 7; CurrentInstrCycles = 12;
59795: {{ uae_s16 src = m68k_dreg(regs, srcreg);
59796: { uaecptr dsta = m68k_areg(regs, dstreg);
59797: if ((dsta & 1) != 0) {
59798: last_fault_for_exception_3 = dsta;
59799: last_op_for_exception_3 = opcode;
59800: last_addr_for_exception_3 = m68k_getpc() + 2;
59801: Exception(3, 0, M68000_EXC_SRC_CPU);
59802: goto endlabel3351;
59803: }
59804: {{ uae_s16 dst = get_word(dsta);
59805: m68k_areg(regs, dstreg) += 2;
59806: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
59807: { int flgs = ((uae_s16)(src)) < 0;
59808: int flgo = ((uae_s16)(dst)) < 0;
59809: int flgn = ((uae_s16)(newv)) < 0;
59810: SET_ZFLG (((uae_s16)(newv)) == 0);
59811: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
59812: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
59813: COPY_CARRY;
59814: SET_NFLG (flgn != 0);
59815: m68k_incpc(2);
59816: fill_prefetch_2 ();
59817: put_word(dsta,newv);
59818: }}}}}}}}endlabel3351: ;
59819: return 12;
59820: }
59821: unsigned long REGPARAM2 CPUFUNC(op_9160_5)(uae_u32 opcode) /* SUB */
59822: {
59823: uae_u32 srcreg = ((opcode >> 9) & 7);
59824: uae_u32 dstreg = opcode & 7;
59825: OpcodeFamily = 7; CurrentInstrCycles = 14;
59826: {{ uae_s16 src = m68k_dreg(regs, srcreg);
59827: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
59828: if ((dsta & 1) != 0) {
59829: last_fault_for_exception_3 = dsta;
59830: last_op_for_exception_3 = opcode;
59831: last_addr_for_exception_3 = m68k_getpc() + 2;
59832: Exception(3, 0, M68000_EXC_SRC_CPU);
59833: goto endlabel3352;
59834: }
59835: {{ uae_s16 dst = get_word(dsta);
59836: m68k_areg (regs, dstreg) = dsta;
59837: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
59838: { int flgs = ((uae_s16)(src)) < 0;
59839: int flgo = ((uae_s16)(dst)) < 0;
59840: int flgn = ((uae_s16)(newv)) < 0;
59841: SET_ZFLG (((uae_s16)(newv)) == 0);
59842: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
59843: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
59844: COPY_CARRY;
59845: SET_NFLG (flgn != 0);
59846: m68k_incpc(2);
59847: fill_prefetch_2 ();
59848: put_word(dsta,newv);
59849: }}}}}}}}endlabel3352: ;
59850: return 14;
59851: }
59852: unsigned long REGPARAM2 CPUFUNC(op_9168_5)(uae_u32 opcode) /* SUB */
59853: {
59854: uae_u32 srcreg = ((opcode >> 9) & 7);
59855: uae_u32 dstreg = opcode & 7;
59856: OpcodeFamily = 7; CurrentInstrCycles = 16;
59857: {{ uae_s16 src = m68k_dreg(regs, srcreg);
59858: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
59859: if ((dsta & 1) != 0) {
59860: last_fault_for_exception_3 = dsta;
59861: last_op_for_exception_3 = opcode;
59862: last_addr_for_exception_3 = m68k_getpc() + 4;
59863: Exception(3, 0, M68000_EXC_SRC_CPU);
59864: goto endlabel3353;
59865: }
59866: {{ uae_s16 dst = get_word(dsta);
59867: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
59868: { int flgs = ((uae_s16)(src)) < 0;
59869: int flgo = ((uae_s16)(dst)) < 0;
59870: int flgn = ((uae_s16)(newv)) < 0;
59871: SET_ZFLG (((uae_s16)(newv)) == 0);
59872: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
59873: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
59874: COPY_CARRY;
59875: SET_NFLG (flgn != 0);
59876: m68k_incpc(4);
59877: fill_prefetch_0 ();
59878: put_word(dsta,newv);
59879: }}}}}}}}endlabel3353: ;
59880: return 16;
59881: }
59882: unsigned long REGPARAM2 CPUFUNC(op_9170_5)(uae_u32 opcode) /* SUB */
59883: {
59884: uae_u32 srcreg = ((opcode >> 9) & 7);
59885: uae_u32 dstreg = opcode & 7;
59886: OpcodeFamily = 7; CurrentInstrCycles = 18;
59887: {{ uae_s16 src = m68k_dreg(regs, srcreg);
59888: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
59889: BusCyclePenalty += 2;
59890: if ((dsta & 1) != 0) {
59891: last_fault_for_exception_3 = dsta;
59892: last_op_for_exception_3 = opcode;
59893: last_addr_for_exception_3 = m68k_getpc() + 4;
59894: Exception(3, 0, M68000_EXC_SRC_CPU);
59895: goto endlabel3354;
59896: }
59897: {{ uae_s16 dst = get_word(dsta);
59898: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
59899: { int flgs = ((uae_s16)(src)) < 0;
59900: int flgo = ((uae_s16)(dst)) < 0;
59901: int flgn = ((uae_s16)(newv)) < 0;
59902: SET_ZFLG (((uae_s16)(newv)) == 0);
59903: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
59904: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
59905: COPY_CARRY;
59906: SET_NFLG (flgn != 0);
59907: m68k_incpc(4);
59908: fill_prefetch_0 ();
59909: put_word(dsta,newv);
59910: }}}}}}}}endlabel3354: ;
59911: return 18;
59912: }
59913: unsigned long REGPARAM2 CPUFUNC(op_9178_5)(uae_u32 opcode) /* SUB */
59914: {
59915: uae_u32 srcreg = ((opcode >> 9) & 7);
59916: OpcodeFamily = 7; CurrentInstrCycles = 16;
59917: {{ uae_s16 src = m68k_dreg(regs, srcreg);
59918: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
59919: if ((dsta & 1) != 0) {
59920: last_fault_for_exception_3 = dsta;
59921: last_op_for_exception_3 = opcode;
59922: last_addr_for_exception_3 = m68k_getpc() + 4;
59923: Exception(3, 0, M68000_EXC_SRC_CPU);
59924: goto endlabel3355;
59925: }
59926: {{ uae_s16 dst = get_word(dsta);
59927: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
59928: { int flgs = ((uae_s16)(src)) < 0;
59929: int flgo = ((uae_s16)(dst)) < 0;
59930: int flgn = ((uae_s16)(newv)) < 0;
59931: SET_ZFLG (((uae_s16)(newv)) == 0);
59932: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
59933: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
59934: COPY_CARRY;
59935: SET_NFLG (flgn != 0);
59936: m68k_incpc(4);
59937: fill_prefetch_0 ();
59938: put_word(dsta,newv);
59939: }}}}}}}}endlabel3355: ;
59940: return 16;
59941: }
59942: unsigned long REGPARAM2 CPUFUNC(op_9179_5)(uae_u32 opcode) /* SUB */
59943: {
59944: uae_u32 srcreg = ((opcode >> 9) & 7);
59945: OpcodeFamily = 7; CurrentInstrCycles = 20;
59946: {{ uae_s16 src = m68k_dreg(regs, srcreg);
59947: { uaecptr dsta = get_ilong_prefetch(2);
59948: if ((dsta & 1) != 0) {
59949: last_fault_for_exception_3 = dsta;
59950: last_op_for_exception_3 = opcode;
59951: last_addr_for_exception_3 = m68k_getpc() + 6;
59952: Exception(3, 0, M68000_EXC_SRC_CPU);
59953: goto endlabel3356;
59954: }
59955: {{ uae_s16 dst = get_word(dsta);
59956: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
59957: { int flgs = ((uae_s16)(src)) < 0;
59958: int flgo = ((uae_s16)(dst)) < 0;
59959: int flgn = ((uae_s16)(newv)) < 0;
59960: SET_ZFLG (((uae_s16)(newv)) == 0);
59961: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
59962: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
59963: COPY_CARRY;
59964: SET_NFLG (flgn != 0);
59965: m68k_incpc(6);
59966: fill_prefetch_0 ();
59967: put_word(dsta,newv);
59968: }}}}}}}}endlabel3356: ;
59969: return 20;
59970: }
59971: unsigned long REGPARAM2 CPUFUNC(op_9180_5)(uae_u32 opcode) /* SUBX */
59972: {
59973: uae_u32 srcreg = (opcode & 7);
59974: uae_u32 dstreg = (opcode >> 9) & 7;
59975: OpcodeFamily = 9; CurrentInstrCycles = 8;
59976: {{ uae_s32 src = m68k_dreg(regs, srcreg);
59977: { uae_s32 dst = m68k_dreg(regs, dstreg);
59978: { uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0);
59979: { int flgs = ((uae_s32)(src)) < 0;
59980: int flgo = ((uae_s32)(dst)) < 0;
59981: int flgn = ((uae_s32)(newv)) < 0;
59982: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
59983: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
59984: COPY_CARRY;
59985: SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
59986: SET_NFLG (((uae_s32)(newv)) < 0);
59987: m68k_dreg(regs, dstreg) = (newv);
59988: }}}}}m68k_incpc(2);
59989: fill_prefetch_2 ();
59990: return 8;
59991: }
59992: unsigned long REGPARAM2 CPUFUNC(op_9188_5)(uae_u32 opcode) /* SUBX */
59993: {
59994: uae_u32 srcreg = (opcode & 7);
59995: uae_u32 dstreg = (opcode >> 9) & 7;
59996: OpcodeFamily = 9; CurrentInstrCycles = 30;
59997: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
59998: if ((srca & 1) != 0) {
59999: last_fault_for_exception_3 = srca;
60000: last_op_for_exception_3 = opcode;
60001: last_addr_for_exception_3 = m68k_getpc() + 2;
60002: Exception(3, 0, M68000_EXC_SRC_CPU);
60003: goto endlabel3358;
60004: }
60005: {{ uae_s32 src = get_long(srca);
60006: m68k_areg (regs, srcreg) = srca;
60007: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
60008: if ((dsta & 1) != 0) {
60009: last_fault_for_exception_3 = dsta;
60010: last_op_for_exception_3 = opcode;
60011: last_addr_for_exception_3 = m68k_getpc() + 2;
60012: Exception(3, 0, M68000_EXC_SRC_CPU);
60013: goto endlabel3358;
60014: }
60015: {{ uae_s32 dst = get_long(dsta);
60016: m68k_areg (regs, dstreg) = dsta;
60017: { uae_u32 newv = dst - src - (GET_XFLG ? 1 : 0);
60018: { int flgs = ((uae_s32)(src)) < 0;
60019: int flgo = ((uae_s32)(dst)) < 0;
60020: int flgn = ((uae_s32)(newv)) < 0;
60021: SET_VFLG ((flgs ^ flgo) & (flgo ^ flgn));
60022: SET_CFLG (flgs ^ ((flgs ^ flgn) & (flgo ^ flgn)));
60023: COPY_CARRY;
60024: SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
60025: SET_NFLG (((uae_s32)(newv)) < 0);
60026: m68k_incpc(2);
60027: fill_prefetch_2 ();
60028: put_long(dsta,newv);
60029: }}}}}}}}}endlabel3358: ;
60030: return 30;
60031: }
60032: unsigned long REGPARAM2 CPUFUNC(op_9190_5)(uae_u32 opcode) /* SUB */
60033: {
60034: uae_u32 srcreg = ((opcode >> 9) & 7);
60035: uae_u32 dstreg = opcode & 7;
60036: OpcodeFamily = 7; CurrentInstrCycles = 20;
60037: {{ uae_s32 src = m68k_dreg(regs, srcreg);
60038: { uaecptr dsta = m68k_areg(regs, dstreg);
60039: if ((dsta & 1) != 0) {
60040: last_fault_for_exception_3 = dsta;
60041: last_op_for_exception_3 = opcode;
60042: last_addr_for_exception_3 = m68k_getpc() + 2;
60043: Exception(3, 0, M68000_EXC_SRC_CPU);
60044: goto endlabel3359;
60045: }
60046: {{ uae_s32 dst = get_long(dsta);
60047: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
60048: { int flgs = ((uae_s32)(src)) < 0;
60049: int flgo = ((uae_s32)(dst)) < 0;
60050: int flgn = ((uae_s32)(newv)) < 0;
60051: SET_ZFLG (((uae_s32)(newv)) == 0);
60052: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
60053: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
60054: COPY_CARRY;
60055: SET_NFLG (flgn != 0);
60056: m68k_incpc(2);
60057: fill_prefetch_2 ();
60058: put_long(dsta,newv);
60059: }}}}}}}}endlabel3359: ;
60060: return 20;
60061: }
60062: unsigned long REGPARAM2 CPUFUNC(op_9198_5)(uae_u32 opcode) /* SUB */
60063: {
60064: uae_u32 srcreg = ((opcode >> 9) & 7);
60065: uae_u32 dstreg = opcode & 7;
60066: OpcodeFamily = 7; CurrentInstrCycles = 20;
60067: {{ uae_s32 src = m68k_dreg(regs, srcreg);
60068: { uaecptr dsta = m68k_areg(regs, dstreg);
60069: if ((dsta & 1) != 0) {
60070: last_fault_for_exception_3 = dsta;
60071: last_op_for_exception_3 = opcode;
60072: last_addr_for_exception_3 = m68k_getpc() + 2;
60073: Exception(3, 0, M68000_EXC_SRC_CPU);
60074: goto endlabel3360;
60075: }
60076: {{ uae_s32 dst = get_long(dsta);
60077: m68k_areg(regs, dstreg) += 4;
60078: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
60079: { int flgs = ((uae_s32)(src)) < 0;
60080: int flgo = ((uae_s32)(dst)) < 0;
60081: int flgn = ((uae_s32)(newv)) < 0;
60082: SET_ZFLG (((uae_s32)(newv)) == 0);
60083: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
60084: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
60085: COPY_CARRY;
60086: SET_NFLG (flgn != 0);
60087: m68k_incpc(2);
60088: fill_prefetch_2 ();
60089: put_long(dsta,newv);
60090: }}}}}}}}endlabel3360: ;
60091: return 20;
60092: }
60093: unsigned long REGPARAM2 CPUFUNC(op_91a0_5)(uae_u32 opcode) /* SUB */
60094: {
60095: uae_u32 srcreg = ((opcode >> 9) & 7);
60096: uae_u32 dstreg = opcode & 7;
60097: OpcodeFamily = 7; CurrentInstrCycles = 22;
60098: {{ uae_s32 src = m68k_dreg(regs, srcreg);
60099: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
60100: if ((dsta & 1) != 0) {
60101: last_fault_for_exception_3 = dsta;
60102: last_op_for_exception_3 = opcode;
60103: last_addr_for_exception_3 = m68k_getpc() + 2;
60104: Exception(3, 0, M68000_EXC_SRC_CPU);
60105: goto endlabel3361;
60106: }
60107: {{ uae_s32 dst = get_long(dsta);
60108: m68k_areg (regs, dstreg) = dsta;
60109: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
60110: { int flgs = ((uae_s32)(src)) < 0;
60111: int flgo = ((uae_s32)(dst)) < 0;
60112: int flgn = ((uae_s32)(newv)) < 0;
60113: SET_ZFLG (((uae_s32)(newv)) == 0);
60114: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
60115: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
60116: COPY_CARRY;
60117: SET_NFLG (flgn != 0);
60118: m68k_incpc(2);
60119: fill_prefetch_2 ();
60120: put_long(dsta,newv);
60121: }}}}}}}}endlabel3361: ;
60122: return 22;
60123: }
60124: unsigned long REGPARAM2 CPUFUNC(op_91a8_5)(uae_u32 opcode) /* SUB */
60125: {
60126: uae_u32 srcreg = ((opcode >> 9) & 7);
60127: uae_u32 dstreg = opcode & 7;
60128: OpcodeFamily = 7; CurrentInstrCycles = 24;
60129: {{ uae_s32 src = m68k_dreg(regs, srcreg);
60130: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
60131: if ((dsta & 1) != 0) {
60132: last_fault_for_exception_3 = dsta;
60133: last_op_for_exception_3 = opcode;
60134: last_addr_for_exception_3 = m68k_getpc() + 4;
60135: Exception(3, 0, M68000_EXC_SRC_CPU);
60136: goto endlabel3362;
60137: }
60138: {{ uae_s32 dst = get_long(dsta);
60139: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
60140: { int flgs = ((uae_s32)(src)) < 0;
60141: int flgo = ((uae_s32)(dst)) < 0;
60142: int flgn = ((uae_s32)(newv)) < 0;
60143: SET_ZFLG (((uae_s32)(newv)) == 0);
60144: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
60145: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
60146: COPY_CARRY;
60147: SET_NFLG (flgn != 0);
60148: m68k_incpc(4);
60149: fill_prefetch_0 ();
60150: put_long(dsta,newv);
60151: }}}}}}}}endlabel3362: ;
60152: return 24;
60153: }
60154: unsigned long REGPARAM2 CPUFUNC(op_91b0_5)(uae_u32 opcode) /* SUB */
60155: {
60156: uae_u32 srcreg = ((opcode >> 9) & 7);
60157: uae_u32 dstreg = opcode & 7;
60158: OpcodeFamily = 7; CurrentInstrCycles = 26;
60159: {{ uae_s32 src = m68k_dreg(regs, srcreg);
60160: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
60161: BusCyclePenalty += 2;
60162: if ((dsta & 1) != 0) {
60163: last_fault_for_exception_3 = dsta;
60164: last_op_for_exception_3 = opcode;
60165: last_addr_for_exception_3 = m68k_getpc() + 4;
60166: Exception(3, 0, M68000_EXC_SRC_CPU);
60167: goto endlabel3363;
60168: }
60169: {{ uae_s32 dst = get_long(dsta);
60170: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
60171: { int flgs = ((uae_s32)(src)) < 0;
60172: int flgo = ((uae_s32)(dst)) < 0;
60173: int flgn = ((uae_s32)(newv)) < 0;
60174: SET_ZFLG (((uae_s32)(newv)) == 0);
60175: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
60176: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
60177: COPY_CARRY;
60178: SET_NFLG (flgn != 0);
60179: m68k_incpc(4);
60180: fill_prefetch_0 ();
60181: put_long(dsta,newv);
60182: }}}}}}}}endlabel3363: ;
60183: return 26;
60184: }
60185: unsigned long REGPARAM2 CPUFUNC(op_91b8_5)(uae_u32 opcode) /* SUB */
60186: {
60187: uae_u32 srcreg = ((opcode >> 9) & 7);
60188: OpcodeFamily = 7; CurrentInstrCycles = 24;
60189: {{ uae_s32 src = m68k_dreg(regs, srcreg);
60190: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
60191: if ((dsta & 1) != 0) {
60192: last_fault_for_exception_3 = dsta;
60193: last_op_for_exception_3 = opcode;
60194: last_addr_for_exception_3 = m68k_getpc() + 4;
60195: Exception(3, 0, M68000_EXC_SRC_CPU);
60196: goto endlabel3364;
60197: }
60198: {{ uae_s32 dst = get_long(dsta);
60199: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
60200: { int flgs = ((uae_s32)(src)) < 0;
60201: int flgo = ((uae_s32)(dst)) < 0;
60202: int flgn = ((uae_s32)(newv)) < 0;
60203: SET_ZFLG (((uae_s32)(newv)) == 0);
60204: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
60205: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
60206: COPY_CARRY;
60207: SET_NFLG (flgn != 0);
60208: m68k_incpc(4);
60209: fill_prefetch_0 ();
60210: put_long(dsta,newv);
60211: }}}}}}}}endlabel3364: ;
60212: return 24;
60213: }
60214: unsigned long REGPARAM2 CPUFUNC(op_91b9_5)(uae_u32 opcode) /* SUB */
60215: {
60216: uae_u32 srcreg = ((opcode >> 9) & 7);
60217: OpcodeFamily = 7; CurrentInstrCycles = 28;
60218: {{ uae_s32 src = m68k_dreg(regs, srcreg);
60219: { uaecptr dsta = get_ilong_prefetch(2);
60220: if ((dsta & 1) != 0) {
60221: last_fault_for_exception_3 = dsta;
60222: last_op_for_exception_3 = opcode;
60223: last_addr_for_exception_3 = m68k_getpc() + 6;
60224: Exception(3, 0, M68000_EXC_SRC_CPU);
60225: goto endlabel3365;
60226: }
60227: {{ uae_s32 dst = get_long(dsta);
60228: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
60229: { int flgs = ((uae_s32)(src)) < 0;
60230: int flgo = ((uae_s32)(dst)) < 0;
60231: int flgn = ((uae_s32)(newv)) < 0;
60232: SET_ZFLG (((uae_s32)(newv)) == 0);
60233: SET_VFLG ((flgs ^ flgo) & (flgn ^ flgo));
60234: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
60235: COPY_CARRY;
60236: SET_NFLG (flgn != 0);
60237: m68k_incpc(6);
60238: fill_prefetch_0 ();
60239: put_long(dsta,newv);
60240: }}}}}}}}endlabel3365: ;
60241: return 28;
60242: }
60243: unsigned long REGPARAM2 CPUFUNC(op_91c0_5)(uae_u32 opcode) /* SUBA */
60244: {
60245: uae_u32 srcreg = (opcode & 7);
60246: uae_u32 dstreg = (opcode >> 9) & 7;
60247: OpcodeFamily = 8; CurrentInstrCycles = 8;
60248: {{ uae_s32 src = m68k_dreg(regs, srcreg);
60249: { uae_s32 dst = m68k_areg(regs, dstreg);
60250: { uae_u32 newv = dst - src;
60251: m68k_areg(regs, dstreg) = (newv);
60252: }}}}m68k_incpc(2);
60253: fill_prefetch_2 ();
60254: return 8;
60255: }
60256: unsigned long REGPARAM2 CPUFUNC(op_91c8_5)(uae_u32 opcode) /* SUBA */
60257: {
60258: uae_u32 srcreg = (opcode & 7);
60259: uae_u32 dstreg = (opcode >> 9) & 7;
60260: OpcodeFamily = 8; CurrentInstrCycles = 8;
60261: {{ uae_s32 src = m68k_areg(regs, srcreg);
60262: { uae_s32 dst = m68k_areg(regs, dstreg);
60263: { uae_u32 newv = dst - src;
60264: m68k_areg(regs, dstreg) = (newv);
60265: }}}}m68k_incpc(2);
60266: fill_prefetch_2 ();
60267: return 8;
60268: }
60269: unsigned long REGPARAM2 CPUFUNC(op_91d0_5)(uae_u32 opcode) /* SUBA */
60270: {
60271: uae_u32 srcreg = (opcode & 7);
60272: uae_u32 dstreg = (opcode >> 9) & 7;
60273: OpcodeFamily = 8; CurrentInstrCycles = 14;
60274: {{ uaecptr srca = m68k_areg(regs, srcreg);
60275: if ((srca & 1) != 0) {
60276: last_fault_for_exception_3 = srca;
60277: last_op_for_exception_3 = opcode;
60278: last_addr_for_exception_3 = m68k_getpc() + 2;
60279: Exception(3, 0, M68000_EXC_SRC_CPU);
60280: goto endlabel3368;
60281: }
60282: {{ uae_s32 src = get_long(srca);
60283: { uae_s32 dst = m68k_areg(regs, dstreg);
60284: { uae_u32 newv = dst - src;
60285: m68k_areg(regs, dstreg) = (newv);
60286: }}}}}}m68k_incpc(2);
60287: fill_prefetch_2 ();
60288: endlabel3368: ;
60289: return 14;
60290: }
60291: unsigned long REGPARAM2 CPUFUNC(op_91d8_5)(uae_u32 opcode) /* SUBA */
60292: {
60293: uae_u32 srcreg = (opcode & 7);
60294: uae_u32 dstreg = (opcode >> 9) & 7;
60295: OpcodeFamily = 8; CurrentInstrCycles = 14;
60296: {{ uaecptr srca = m68k_areg(regs, srcreg);
60297: if ((srca & 1) != 0) {
60298: last_fault_for_exception_3 = srca;
60299: last_op_for_exception_3 = opcode;
60300: last_addr_for_exception_3 = m68k_getpc() + 2;
60301: Exception(3, 0, M68000_EXC_SRC_CPU);
60302: goto endlabel3369;
60303: }
60304: {{ uae_s32 src = get_long(srca);
60305: m68k_areg(regs, srcreg) += 4;
60306: { uae_s32 dst = m68k_areg(regs, dstreg);
60307: { uae_u32 newv = dst - src;
60308: m68k_areg(regs, dstreg) = (newv);
60309: }}}}}}m68k_incpc(2);
60310: fill_prefetch_2 ();
60311: endlabel3369: ;
60312: return 14;
60313: }
60314: unsigned long REGPARAM2 CPUFUNC(op_91e0_5)(uae_u32 opcode) /* SUBA */
60315: {
60316: uae_u32 srcreg = (opcode & 7);
60317: uae_u32 dstreg = (opcode >> 9) & 7;
60318: OpcodeFamily = 8; CurrentInstrCycles = 16;
60319: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
60320: if ((srca & 1) != 0) {
60321: last_fault_for_exception_3 = srca;
60322: last_op_for_exception_3 = opcode;
60323: last_addr_for_exception_3 = m68k_getpc() + 2;
60324: Exception(3, 0, M68000_EXC_SRC_CPU);
60325: goto endlabel3370;
60326: }
60327: {{ uae_s32 src = get_long(srca);
60328: m68k_areg (regs, srcreg) = srca;
60329: { uae_s32 dst = m68k_areg(regs, dstreg);
60330: { uae_u32 newv = dst - src;
60331: m68k_areg(regs, dstreg) = (newv);
60332: }}}}}}m68k_incpc(2);
60333: fill_prefetch_2 ();
60334: endlabel3370: ;
60335: return 16;
60336: }
60337: unsigned long REGPARAM2 CPUFUNC(op_91e8_5)(uae_u32 opcode) /* SUBA */
60338: {
60339: uae_u32 srcreg = (opcode & 7);
60340: uae_u32 dstreg = (opcode >> 9) & 7;
60341: OpcodeFamily = 8; CurrentInstrCycles = 18;
60342: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
60343: if ((srca & 1) != 0) {
60344: last_fault_for_exception_3 = srca;
60345: last_op_for_exception_3 = opcode;
60346: last_addr_for_exception_3 = m68k_getpc() + 4;
60347: Exception(3, 0, M68000_EXC_SRC_CPU);
60348: goto endlabel3371;
60349: }
60350: {{ uae_s32 src = get_long(srca);
60351: { uae_s32 dst = m68k_areg(regs, dstreg);
60352: { uae_u32 newv = dst - src;
60353: m68k_areg(regs, dstreg) = (newv);
60354: }}}}}}m68k_incpc(4);
60355: fill_prefetch_0 ();
60356: endlabel3371: ;
60357: return 18;
60358: }
60359: unsigned long REGPARAM2 CPUFUNC(op_91f0_5)(uae_u32 opcode) /* SUBA */
60360: {
60361: uae_u32 srcreg = (opcode & 7);
60362: uae_u32 dstreg = (opcode >> 9) & 7;
60363: OpcodeFamily = 8; CurrentInstrCycles = 20;
60364: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
60365: BusCyclePenalty += 2;
60366: if ((srca & 1) != 0) {
60367: last_fault_for_exception_3 = srca;
60368: last_op_for_exception_3 = opcode;
60369: last_addr_for_exception_3 = m68k_getpc() + 4;
60370: Exception(3, 0, M68000_EXC_SRC_CPU);
60371: goto endlabel3372;
60372: }
60373: {{ uae_s32 src = get_long(srca);
60374: { uae_s32 dst = m68k_areg(regs, dstreg);
60375: { uae_u32 newv = dst - src;
60376: m68k_areg(regs, dstreg) = (newv);
60377: }}}}}}m68k_incpc(4);
60378: fill_prefetch_0 ();
60379: endlabel3372: ;
60380: return 20;
60381: }
60382: unsigned long REGPARAM2 CPUFUNC(op_91f8_5)(uae_u32 opcode) /* SUBA */
60383: {
60384: uae_u32 dstreg = (opcode >> 9) & 7;
60385: OpcodeFamily = 8; CurrentInstrCycles = 18;
60386: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
60387: if ((srca & 1) != 0) {
60388: last_fault_for_exception_3 = srca;
60389: last_op_for_exception_3 = opcode;
60390: last_addr_for_exception_3 = m68k_getpc() + 4;
60391: Exception(3, 0, M68000_EXC_SRC_CPU);
60392: goto endlabel3373;
60393: }
60394: {{ uae_s32 src = get_long(srca);
60395: { uae_s32 dst = m68k_areg(regs, dstreg);
60396: { uae_u32 newv = dst - src;
60397: m68k_areg(regs, dstreg) = (newv);
60398: }}}}}}m68k_incpc(4);
60399: fill_prefetch_0 ();
60400: endlabel3373: ;
60401: return 18;
60402: }
60403: unsigned long REGPARAM2 CPUFUNC(op_91f9_5)(uae_u32 opcode) /* SUBA */
60404: {
60405: uae_u32 dstreg = (opcode >> 9) & 7;
60406: OpcodeFamily = 8; CurrentInstrCycles = 22;
60407: {{ uaecptr srca = get_ilong_prefetch(2);
60408: if ((srca & 1) != 0) {
60409: last_fault_for_exception_3 = srca;
60410: last_op_for_exception_3 = opcode;
60411: last_addr_for_exception_3 = m68k_getpc() + 6;
60412: Exception(3, 0, M68000_EXC_SRC_CPU);
60413: goto endlabel3374;
60414: }
60415: {{ uae_s32 src = get_long(srca);
60416: { uae_s32 dst = m68k_areg(regs, dstreg);
60417: { uae_u32 newv = dst - src;
60418: m68k_areg(regs, dstreg) = (newv);
60419: }}}}}}m68k_incpc(6);
60420: fill_prefetch_0 ();
60421: endlabel3374: ;
60422: return 22;
60423: }
60424: unsigned long REGPARAM2 CPUFUNC(op_91fa_5)(uae_u32 opcode) /* SUBA */
60425: {
60426: uae_u32 dstreg = (opcode >> 9) & 7;
60427: OpcodeFamily = 8; CurrentInstrCycles = 18;
60428: {{ uaecptr srca = m68k_getpc () + 2;
60429: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
60430: if ((srca & 1) != 0) {
60431: last_fault_for_exception_3 = srca;
60432: last_op_for_exception_3 = opcode;
60433: last_addr_for_exception_3 = m68k_getpc() + 4;
60434: Exception(3, 0, M68000_EXC_SRC_CPU);
60435: goto endlabel3375;
60436: }
60437: {{ uae_s32 src = get_long(srca);
60438: { uae_s32 dst = m68k_areg(regs, dstreg);
60439: { uae_u32 newv = dst - src;
60440: m68k_areg(regs, dstreg) = (newv);
60441: }}}}}}m68k_incpc(4);
60442: fill_prefetch_0 ();
60443: endlabel3375: ;
60444: return 18;
60445: }
60446: unsigned long REGPARAM2 CPUFUNC(op_91fb_5)(uae_u32 opcode) /* SUBA */
60447: {
60448: uae_u32 dstreg = (opcode >> 9) & 7;
60449: OpcodeFamily = 8; CurrentInstrCycles = 20;
60450: {{ uaecptr tmppc = m68k_getpc() + 2;
60451: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
60452: BusCyclePenalty += 2;
60453: if ((srca & 1) != 0) {
60454: last_fault_for_exception_3 = srca;
60455: last_op_for_exception_3 = opcode;
60456: last_addr_for_exception_3 = m68k_getpc() + 4;
60457: Exception(3, 0, M68000_EXC_SRC_CPU);
60458: goto endlabel3376;
60459: }
60460: {{ uae_s32 src = get_long(srca);
60461: { uae_s32 dst = m68k_areg(regs, dstreg);
60462: { uae_u32 newv = dst - src;
60463: m68k_areg(regs, dstreg) = (newv);
60464: }}}}}}m68k_incpc(4);
60465: fill_prefetch_0 ();
60466: endlabel3376: ;
60467: return 20;
60468: }
60469: unsigned long REGPARAM2 CPUFUNC(op_91fc_5)(uae_u32 opcode) /* SUBA */
60470: {
60471: uae_u32 dstreg = (opcode >> 9) & 7;
60472: OpcodeFamily = 8; CurrentInstrCycles = 16;
60473: {{ uae_s32 src = get_ilong_prefetch(2);
60474: { uae_s32 dst = m68k_areg(regs, dstreg);
60475: { uae_u32 newv = dst - src;
60476: m68k_areg(regs, dstreg) = (newv);
60477: }}}}m68k_incpc(6);
60478: fill_prefetch_0 ();
60479: return 16;
60480: }
60481: unsigned long REGPARAM2 CPUFUNC(op_b000_5)(uae_u32 opcode) /* CMP */
60482: {
60483: uae_u32 srcreg = (opcode & 7);
60484: uae_u32 dstreg = (opcode >> 9) & 7;
60485: OpcodeFamily = 25; CurrentInstrCycles = 4;
60486: {{ uae_s8 src = m68k_dreg(regs, srcreg);
60487: { uae_s8 dst = m68k_dreg(regs, dstreg);
60488: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
60489: { int flgs = ((uae_s8)(src)) < 0;
60490: int flgo = ((uae_s8)(dst)) < 0;
60491: int flgn = ((uae_s8)(newv)) < 0;
60492: SET_ZFLG (((uae_s8)(newv)) == 0);
60493: SET_VFLG ((flgs != flgo) && (flgn != flgo));
60494: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
60495: SET_NFLG (flgn != 0);
60496: }}}}}}m68k_incpc(2);
60497: fill_prefetch_2 ();
60498: return 4;
60499: }
60500: unsigned long REGPARAM2 CPUFUNC(op_b010_5)(uae_u32 opcode) /* CMP */
60501: {
60502: uae_u32 srcreg = (opcode & 7);
60503: uae_u32 dstreg = (opcode >> 9) & 7;
60504: OpcodeFamily = 25; CurrentInstrCycles = 8;
60505: {{ uaecptr srca = m68k_areg(regs, srcreg);
60506: { uae_s8 src = get_byte(srca);
60507: { uae_s8 dst = m68k_dreg(regs, dstreg);
60508: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
60509: { int flgs = ((uae_s8)(src)) < 0;
60510: int flgo = ((uae_s8)(dst)) < 0;
60511: int flgn = ((uae_s8)(newv)) < 0;
60512: SET_ZFLG (((uae_s8)(newv)) == 0);
60513: SET_VFLG ((flgs != flgo) && (flgn != flgo));
60514: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
60515: SET_NFLG (flgn != 0);
60516: }}}}}}}m68k_incpc(2);
60517: fill_prefetch_2 ();
60518: return 8;
60519: }
60520: unsigned long REGPARAM2 CPUFUNC(op_b018_5)(uae_u32 opcode) /* CMP */
60521: {
60522: uae_u32 srcreg = (opcode & 7);
60523: uae_u32 dstreg = (opcode >> 9) & 7;
60524: OpcodeFamily = 25; CurrentInstrCycles = 8;
60525: {{ uaecptr srca = m68k_areg(regs, srcreg);
60526: { uae_s8 src = get_byte(srca);
60527: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
60528: { uae_s8 dst = m68k_dreg(regs, dstreg);
60529: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
60530: { int flgs = ((uae_s8)(src)) < 0;
60531: int flgo = ((uae_s8)(dst)) < 0;
60532: int flgn = ((uae_s8)(newv)) < 0;
60533: SET_ZFLG (((uae_s8)(newv)) == 0);
60534: SET_VFLG ((flgs != flgo) && (flgn != flgo));
60535: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
60536: SET_NFLG (flgn != 0);
60537: }}}}}}}m68k_incpc(2);
60538: fill_prefetch_2 ();
60539: return 8;
60540: }
60541: unsigned long REGPARAM2 CPUFUNC(op_b020_5)(uae_u32 opcode) /* CMP */
60542: {
60543: uae_u32 srcreg = (opcode & 7);
60544: uae_u32 dstreg = (opcode >> 9) & 7;
60545: OpcodeFamily = 25; CurrentInstrCycles = 10;
60546: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
60547: { uae_s8 src = get_byte(srca);
60548: m68k_areg (regs, srcreg) = srca;
60549: { uae_s8 dst = m68k_dreg(regs, dstreg);
60550: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
60551: { int flgs = ((uae_s8)(src)) < 0;
60552: int flgo = ((uae_s8)(dst)) < 0;
60553: int flgn = ((uae_s8)(newv)) < 0;
60554: SET_ZFLG (((uae_s8)(newv)) == 0);
60555: SET_VFLG ((flgs != flgo) && (flgn != flgo));
60556: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
60557: SET_NFLG (flgn != 0);
60558: }}}}}}}m68k_incpc(2);
60559: fill_prefetch_2 ();
60560: return 10;
60561: }
60562: unsigned long REGPARAM2 CPUFUNC(op_b028_5)(uae_u32 opcode) /* CMP */
60563: {
60564: uae_u32 srcreg = (opcode & 7);
60565: uae_u32 dstreg = (opcode >> 9) & 7;
60566: OpcodeFamily = 25; CurrentInstrCycles = 12;
60567: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
60568: { uae_s8 src = get_byte(srca);
60569: { uae_s8 dst = m68k_dreg(regs, dstreg);
60570: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
60571: { int flgs = ((uae_s8)(src)) < 0;
60572: int flgo = ((uae_s8)(dst)) < 0;
60573: int flgn = ((uae_s8)(newv)) < 0;
60574: SET_ZFLG (((uae_s8)(newv)) == 0);
60575: SET_VFLG ((flgs != flgo) && (flgn != flgo));
60576: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
60577: SET_NFLG (flgn != 0);
60578: }}}}}}}m68k_incpc(4);
60579: fill_prefetch_0 ();
60580: return 12;
60581: }
60582: unsigned long REGPARAM2 CPUFUNC(op_b030_5)(uae_u32 opcode) /* CMP */
60583: {
60584: uae_u32 srcreg = (opcode & 7);
60585: uae_u32 dstreg = (opcode >> 9) & 7;
60586: OpcodeFamily = 25; CurrentInstrCycles = 14;
60587: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
60588: BusCyclePenalty += 2;
60589: { uae_s8 src = get_byte(srca);
60590: { uae_s8 dst = m68k_dreg(regs, dstreg);
60591: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
60592: { int flgs = ((uae_s8)(src)) < 0;
60593: int flgo = ((uae_s8)(dst)) < 0;
60594: int flgn = ((uae_s8)(newv)) < 0;
60595: SET_ZFLG (((uae_s8)(newv)) == 0);
60596: SET_VFLG ((flgs != flgo) && (flgn != flgo));
60597: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
60598: SET_NFLG (flgn != 0);
60599: }}}}}}}m68k_incpc(4);
60600: fill_prefetch_0 ();
60601: return 14;
60602: }
60603: unsigned long REGPARAM2 CPUFUNC(op_b038_5)(uae_u32 opcode) /* CMP */
60604: {
60605: uae_u32 dstreg = (opcode >> 9) & 7;
60606: OpcodeFamily = 25; CurrentInstrCycles = 12;
60607: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
60608: { uae_s8 src = get_byte(srca);
60609: { uae_s8 dst = m68k_dreg(regs, dstreg);
60610: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
60611: { int flgs = ((uae_s8)(src)) < 0;
60612: int flgo = ((uae_s8)(dst)) < 0;
60613: int flgn = ((uae_s8)(newv)) < 0;
60614: SET_ZFLG (((uae_s8)(newv)) == 0);
60615: SET_VFLG ((flgs != flgo) && (flgn != flgo));
60616: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
60617: SET_NFLG (flgn != 0);
60618: }}}}}}}m68k_incpc(4);
60619: fill_prefetch_0 ();
60620: return 12;
60621: }
60622: unsigned long REGPARAM2 CPUFUNC(op_b039_5)(uae_u32 opcode) /* CMP */
60623: {
60624: uae_u32 dstreg = (opcode >> 9) & 7;
60625: OpcodeFamily = 25; CurrentInstrCycles = 16;
60626: {{ uaecptr srca = get_ilong_prefetch(2);
60627: { uae_s8 src = get_byte(srca);
60628: { uae_s8 dst = m68k_dreg(regs, dstreg);
60629: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
60630: { int flgs = ((uae_s8)(src)) < 0;
60631: int flgo = ((uae_s8)(dst)) < 0;
60632: int flgn = ((uae_s8)(newv)) < 0;
60633: SET_ZFLG (((uae_s8)(newv)) == 0);
60634: SET_VFLG ((flgs != flgo) && (flgn != flgo));
60635: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
60636: SET_NFLG (flgn != 0);
60637: }}}}}}}m68k_incpc(6);
60638: fill_prefetch_0 ();
60639: return 16;
60640: }
60641: unsigned long REGPARAM2 CPUFUNC(op_b03a_5)(uae_u32 opcode) /* CMP */
60642: {
60643: uae_u32 dstreg = (opcode >> 9) & 7;
60644: OpcodeFamily = 25; CurrentInstrCycles = 12;
60645: {{ uaecptr srca = m68k_getpc () + 2;
60646: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
60647: { uae_s8 src = get_byte(srca);
60648: { uae_s8 dst = m68k_dreg(regs, dstreg);
60649: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
60650: { int flgs = ((uae_s8)(src)) < 0;
60651: int flgo = ((uae_s8)(dst)) < 0;
60652: int flgn = ((uae_s8)(newv)) < 0;
60653: SET_ZFLG (((uae_s8)(newv)) == 0);
60654: SET_VFLG ((flgs != flgo) && (flgn != flgo));
60655: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
60656: SET_NFLG (flgn != 0);
60657: }}}}}}}m68k_incpc(4);
60658: fill_prefetch_0 ();
60659: return 12;
60660: }
60661: unsigned long REGPARAM2 CPUFUNC(op_b03b_5)(uae_u32 opcode) /* CMP */
60662: {
60663: uae_u32 dstreg = (opcode >> 9) & 7;
60664: OpcodeFamily = 25; CurrentInstrCycles = 14;
60665: {{ uaecptr tmppc = m68k_getpc() + 2;
60666: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
60667: BusCyclePenalty += 2;
60668: { uae_s8 src = get_byte(srca);
60669: { uae_s8 dst = m68k_dreg(regs, dstreg);
60670: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
60671: { int flgs = ((uae_s8)(src)) < 0;
60672: int flgo = ((uae_s8)(dst)) < 0;
60673: int flgn = ((uae_s8)(newv)) < 0;
60674: SET_ZFLG (((uae_s8)(newv)) == 0);
60675: SET_VFLG ((flgs != flgo) && (flgn != flgo));
60676: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
60677: SET_NFLG (flgn != 0);
60678: }}}}}}}m68k_incpc(4);
60679: fill_prefetch_0 ();
60680: return 14;
60681: }
60682: #endif
60683:
60684: #ifdef PART_7
60685: unsigned long REGPARAM2 CPUFUNC(op_b03c_5)(uae_u32 opcode) /* CMP */
60686: {
60687: uae_u32 dstreg = (opcode >> 9) & 7;
60688: OpcodeFamily = 25; CurrentInstrCycles = 8;
60689: {{ uae_s8 src = get_ibyte_prefetch(2);
60690: { uae_s8 dst = m68k_dreg(regs, dstreg);
60691: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
60692: { int flgs = ((uae_s8)(src)) < 0;
60693: int flgo = ((uae_s8)(dst)) < 0;
60694: int flgn = ((uae_s8)(newv)) < 0;
60695: SET_ZFLG (((uae_s8)(newv)) == 0);
60696: SET_VFLG ((flgs != flgo) && (flgn != flgo));
60697: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
60698: SET_NFLG (flgn != 0);
60699: }}}}}}m68k_incpc(4);
60700: fill_prefetch_0 ();
60701: return 8;
60702: }
60703: unsigned long REGPARAM2 CPUFUNC(op_b040_5)(uae_u32 opcode) /* CMP */
60704: {
60705: uae_u32 srcreg = (opcode & 7);
60706: uae_u32 dstreg = (opcode >> 9) & 7;
60707: OpcodeFamily = 25; CurrentInstrCycles = 4;
60708: {{ uae_s16 src = m68k_dreg(regs, srcreg);
60709: { uae_s16 dst = m68k_dreg(regs, dstreg);
60710: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
60711: { int flgs = ((uae_s16)(src)) < 0;
60712: int flgo = ((uae_s16)(dst)) < 0;
60713: int flgn = ((uae_s16)(newv)) < 0;
60714: SET_ZFLG (((uae_s16)(newv)) == 0);
60715: SET_VFLG ((flgs != flgo) && (flgn != flgo));
60716: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
60717: SET_NFLG (flgn != 0);
60718: }}}}}}m68k_incpc(2);
60719: fill_prefetch_2 ();
60720: return 4;
60721: }
60722: unsigned long REGPARAM2 CPUFUNC(op_b048_5)(uae_u32 opcode) /* CMP */
60723: {
60724: uae_u32 srcreg = (opcode & 7);
60725: uae_u32 dstreg = (opcode >> 9) & 7;
60726: OpcodeFamily = 25; CurrentInstrCycles = 4;
60727: {{ uae_s16 src = m68k_areg(regs, srcreg);
60728: { uae_s16 dst = m68k_dreg(regs, dstreg);
60729: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
60730: { int flgs = ((uae_s16)(src)) < 0;
60731: int flgo = ((uae_s16)(dst)) < 0;
60732: int flgn = ((uae_s16)(newv)) < 0;
60733: SET_ZFLG (((uae_s16)(newv)) == 0);
60734: SET_VFLG ((flgs != flgo) && (flgn != flgo));
60735: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
60736: SET_NFLG (flgn != 0);
60737: }}}}}}m68k_incpc(2);
60738: fill_prefetch_2 ();
60739: return 4;
60740: }
60741: unsigned long REGPARAM2 CPUFUNC(op_b050_5)(uae_u32 opcode) /* CMP */
60742: {
60743: uae_u32 srcreg = (opcode & 7);
60744: uae_u32 dstreg = (opcode >> 9) & 7;
60745: OpcodeFamily = 25; CurrentInstrCycles = 8;
60746: {{ uaecptr srca = m68k_areg(regs, srcreg);
60747: if ((srca & 1) != 0) {
60748: last_fault_for_exception_3 = srca;
60749: last_op_for_exception_3 = opcode;
60750: last_addr_for_exception_3 = m68k_getpc() + 2;
60751: Exception(3, 0, M68000_EXC_SRC_CPU);
60752: goto endlabel3391;
60753: }
60754: {{ uae_s16 src = get_word(srca);
60755: { uae_s16 dst = m68k_dreg(regs, dstreg);
60756: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
60757: { int flgs = ((uae_s16)(src)) < 0;
60758: int flgo = ((uae_s16)(dst)) < 0;
60759: int flgn = ((uae_s16)(newv)) < 0;
60760: SET_ZFLG (((uae_s16)(newv)) == 0);
60761: SET_VFLG ((flgs != flgo) && (flgn != flgo));
60762: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
60763: SET_NFLG (flgn != 0);
60764: }}}}}}}}m68k_incpc(2);
60765: fill_prefetch_2 ();
60766: endlabel3391: ;
60767: return 8;
60768: }
60769: unsigned long REGPARAM2 CPUFUNC(op_b058_5)(uae_u32 opcode) /* CMP */
60770: {
60771: uae_u32 srcreg = (opcode & 7);
60772: uae_u32 dstreg = (opcode >> 9) & 7;
60773: OpcodeFamily = 25; CurrentInstrCycles = 8;
60774: {{ uaecptr srca = m68k_areg(regs, srcreg);
60775: if ((srca & 1) != 0) {
60776: last_fault_for_exception_3 = srca;
60777: last_op_for_exception_3 = opcode;
60778: last_addr_for_exception_3 = m68k_getpc() + 2;
60779: Exception(3, 0, M68000_EXC_SRC_CPU);
60780: goto endlabel3392;
60781: }
60782: {{ uae_s16 src = get_word(srca);
60783: m68k_areg(regs, srcreg) += 2;
60784: { uae_s16 dst = m68k_dreg(regs, dstreg);
60785: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
60786: { int flgs = ((uae_s16)(src)) < 0;
60787: int flgo = ((uae_s16)(dst)) < 0;
60788: int flgn = ((uae_s16)(newv)) < 0;
60789: SET_ZFLG (((uae_s16)(newv)) == 0);
60790: SET_VFLG ((flgs != flgo) && (flgn != flgo));
60791: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
60792: SET_NFLG (flgn != 0);
60793: }}}}}}}}m68k_incpc(2);
60794: fill_prefetch_2 ();
60795: endlabel3392: ;
60796: return 8;
60797: }
60798: unsigned long REGPARAM2 CPUFUNC(op_b060_5)(uae_u32 opcode) /* CMP */
60799: {
60800: uae_u32 srcreg = (opcode & 7);
60801: uae_u32 dstreg = (opcode >> 9) & 7;
60802: OpcodeFamily = 25; CurrentInstrCycles = 10;
60803: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
60804: if ((srca & 1) != 0) {
60805: last_fault_for_exception_3 = srca;
60806: last_op_for_exception_3 = opcode;
60807: last_addr_for_exception_3 = m68k_getpc() + 2;
60808: Exception(3, 0, M68000_EXC_SRC_CPU);
60809: goto endlabel3393;
60810: }
60811: {{ uae_s16 src = get_word(srca);
60812: m68k_areg (regs, srcreg) = srca;
60813: { uae_s16 dst = m68k_dreg(regs, dstreg);
60814: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
60815: { int flgs = ((uae_s16)(src)) < 0;
60816: int flgo = ((uae_s16)(dst)) < 0;
60817: int flgn = ((uae_s16)(newv)) < 0;
60818: SET_ZFLG (((uae_s16)(newv)) == 0);
60819: SET_VFLG ((flgs != flgo) && (flgn != flgo));
60820: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
60821: SET_NFLG (flgn != 0);
60822: }}}}}}}}m68k_incpc(2);
60823: fill_prefetch_2 ();
60824: endlabel3393: ;
60825: return 10;
60826: }
60827: unsigned long REGPARAM2 CPUFUNC(op_b068_5)(uae_u32 opcode) /* CMP */
60828: {
60829: uae_u32 srcreg = (opcode & 7);
60830: uae_u32 dstreg = (opcode >> 9) & 7;
60831: OpcodeFamily = 25; CurrentInstrCycles = 12;
60832: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
60833: if ((srca & 1) != 0) {
60834: last_fault_for_exception_3 = srca;
60835: last_op_for_exception_3 = opcode;
60836: last_addr_for_exception_3 = m68k_getpc() + 4;
60837: Exception(3, 0, M68000_EXC_SRC_CPU);
60838: goto endlabel3394;
60839: }
60840: {{ uae_s16 src = get_word(srca);
60841: { uae_s16 dst = m68k_dreg(regs, dstreg);
60842: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
60843: { int flgs = ((uae_s16)(src)) < 0;
60844: int flgo = ((uae_s16)(dst)) < 0;
60845: int flgn = ((uae_s16)(newv)) < 0;
60846: SET_ZFLG (((uae_s16)(newv)) == 0);
60847: SET_VFLG ((flgs != flgo) && (flgn != flgo));
60848: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
60849: SET_NFLG (flgn != 0);
60850: }}}}}}}}m68k_incpc(4);
60851: fill_prefetch_0 ();
60852: endlabel3394: ;
60853: return 12;
60854: }
60855: unsigned long REGPARAM2 CPUFUNC(op_b070_5)(uae_u32 opcode) /* CMP */
60856: {
60857: uae_u32 srcreg = (opcode & 7);
60858: uae_u32 dstreg = (opcode >> 9) & 7;
60859: OpcodeFamily = 25; CurrentInstrCycles = 14;
60860: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
60861: BusCyclePenalty += 2;
60862: if ((srca & 1) != 0) {
60863: last_fault_for_exception_3 = srca;
60864: last_op_for_exception_3 = opcode;
60865: last_addr_for_exception_3 = m68k_getpc() + 4;
60866: Exception(3, 0, M68000_EXC_SRC_CPU);
60867: goto endlabel3395;
60868: }
60869: {{ uae_s16 src = get_word(srca);
60870: { uae_s16 dst = m68k_dreg(regs, dstreg);
60871: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
60872: { int flgs = ((uae_s16)(src)) < 0;
60873: int flgo = ((uae_s16)(dst)) < 0;
60874: int flgn = ((uae_s16)(newv)) < 0;
60875: SET_ZFLG (((uae_s16)(newv)) == 0);
60876: SET_VFLG ((flgs != flgo) && (flgn != flgo));
60877: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
60878: SET_NFLG (flgn != 0);
60879: }}}}}}}}m68k_incpc(4);
60880: fill_prefetch_0 ();
60881: endlabel3395: ;
60882: return 14;
60883: }
60884: unsigned long REGPARAM2 CPUFUNC(op_b078_5)(uae_u32 opcode) /* CMP */
60885: {
60886: uae_u32 dstreg = (opcode >> 9) & 7;
60887: OpcodeFamily = 25; CurrentInstrCycles = 12;
60888: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
60889: if ((srca & 1) != 0) {
60890: last_fault_for_exception_3 = srca;
60891: last_op_for_exception_3 = opcode;
60892: last_addr_for_exception_3 = m68k_getpc() + 4;
60893: Exception(3, 0, M68000_EXC_SRC_CPU);
60894: goto endlabel3396;
60895: }
60896: {{ uae_s16 src = get_word(srca);
60897: { uae_s16 dst = m68k_dreg(regs, dstreg);
60898: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
60899: { int flgs = ((uae_s16)(src)) < 0;
60900: int flgo = ((uae_s16)(dst)) < 0;
60901: int flgn = ((uae_s16)(newv)) < 0;
60902: SET_ZFLG (((uae_s16)(newv)) == 0);
60903: SET_VFLG ((flgs != flgo) && (flgn != flgo));
60904: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
60905: SET_NFLG (flgn != 0);
60906: }}}}}}}}m68k_incpc(4);
60907: fill_prefetch_0 ();
60908: endlabel3396: ;
60909: return 12;
60910: }
60911: unsigned long REGPARAM2 CPUFUNC(op_b079_5)(uae_u32 opcode) /* CMP */
60912: {
60913: uae_u32 dstreg = (opcode >> 9) & 7;
60914: OpcodeFamily = 25; CurrentInstrCycles = 16;
60915: {{ uaecptr srca = get_ilong_prefetch(2);
60916: if ((srca & 1) != 0) {
60917: last_fault_for_exception_3 = srca;
60918: last_op_for_exception_3 = opcode;
60919: last_addr_for_exception_3 = m68k_getpc() + 6;
60920: Exception(3, 0, M68000_EXC_SRC_CPU);
60921: goto endlabel3397;
60922: }
60923: {{ uae_s16 src = get_word(srca);
60924: { uae_s16 dst = m68k_dreg(regs, dstreg);
60925: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
60926: { int flgs = ((uae_s16)(src)) < 0;
60927: int flgo = ((uae_s16)(dst)) < 0;
60928: int flgn = ((uae_s16)(newv)) < 0;
60929: SET_ZFLG (((uae_s16)(newv)) == 0);
60930: SET_VFLG ((flgs != flgo) && (flgn != flgo));
60931: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
60932: SET_NFLG (flgn != 0);
60933: }}}}}}}}m68k_incpc(6);
60934: fill_prefetch_0 ();
60935: endlabel3397: ;
60936: return 16;
60937: }
60938: unsigned long REGPARAM2 CPUFUNC(op_b07a_5)(uae_u32 opcode) /* CMP */
60939: {
60940: uae_u32 dstreg = (opcode >> 9) & 7;
60941: OpcodeFamily = 25; CurrentInstrCycles = 12;
60942: {{ uaecptr srca = m68k_getpc () + 2;
60943: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
60944: if ((srca & 1) != 0) {
60945: last_fault_for_exception_3 = srca;
60946: last_op_for_exception_3 = opcode;
60947: last_addr_for_exception_3 = m68k_getpc() + 4;
60948: Exception(3, 0, M68000_EXC_SRC_CPU);
60949: goto endlabel3398;
60950: }
60951: {{ uae_s16 src = get_word(srca);
60952: { uae_s16 dst = m68k_dreg(regs, dstreg);
60953: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
60954: { int flgs = ((uae_s16)(src)) < 0;
60955: int flgo = ((uae_s16)(dst)) < 0;
60956: int flgn = ((uae_s16)(newv)) < 0;
60957: SET_ZFLG (((uae_s16)(newv)) == 0);
60958: SET_VFLG ((flgs != flgo) && (flgn != flgo));
60959: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
60960: SET_NFLG (flgn != 0);
60961: }}}}}}}}m68k_incpc(4);
60962: fill_prefetch_0 ();
60963: endlabel3398: ;
60964: return 12;
60965: }
60966: unsigned long REGPARAM2 CPUFUNC(op_b07b_5)(uae_u32 opcode) /* CMP */
60967: {
60968: uae_u32 dstreg = (opcode >> 9) & 7;
60969: OpcodeFamily = 25; CurrentInstrCycles = 14;
60970: {{ uaecptr tmppc = m68k_getpc() + 2;
60971: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
60972: BusCyclePenalty += 2;
60973: if ((srca & 1) != 0) {
60974: last_fault_for_exception_3 = srca;
60975: last_op_for_exception_3 = opcode;
60976: last_addr_for_exception_3 = m68k_getpc() + 4;
60977: Exception(3, 0, M68000_EXC_SRC_CPU);
60978: goto endlabel3399;
60979: }
60980: {{ uae_s16 src = get_word(srca);
60981: { uae_s16 dst = m68k_dreg(regs, dstreg);
60982: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
60983: { int flgs = ((uae_s16)(src)) < 0;
60984: int flgo = ((uae_s16)(dst)) < 0;
60985: int flgn = ((uae_s16)(newv)) < 0;
60986: SET_ZFLG (((uae_s16)(newv)) == 0);
60987: SET_VFLG ((flgs != flgo) && (flgn != flgo));
60988: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
60989: SET_NFLG (flgn != 0);
60990: }}}}}}}}m68k_incpc(4);
60991: fill_prefetch_0 ();
60992: endlabel3399: ;
60993: return 14;
60994: }
60995: unsigned long REGPARAM2 CPUFUNC(op_b07c_5)(uae_u32 opcode) /* CMP */
60996: {
60997: uae_u32 dstreg = (opcode >> 9) & 7;
60998: OpcodeFamily = 25; CurrentInstrCycles = 8;
60999: {{ uae_s16 src = get_iword_prefetch(2);
61000: { uae_s16 dst = m68k_dreg(regs, dstreg);
61001: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
61002: { int flgs = ((uae_s16)(src)) < 0;
61003: int flgo = ((uae_s16)(dst)) < 0;
61004: int flgn = ((uae_s16)(newv)) < 0;
61005: SET_ZFLG (((uae_s16)(newv)) == 0);
61006: SET_VFLG ((flgs != flgo) && (flgn != flgo));
61007: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
61008: SET_NFLG (flgn != 0);
61009: }}}}}}m68k_incpc(4);
61010: fill_prefetch_0 ();
61011: return 8;
61012: }
61013: unsigned long REGPARAM2 CPUFUNC(op_b080_5)(uae_u32 opcode) /* CMP */
61014: {
61015: uae_u32 srcreg = (opcode & 7);
61016: uae_u32 dstreg = (opcode >> 9) & 7;
61017: OpcodeFamily = 25; CurrentInstrCycles = 6;
61018: {{ uae_s32 src = m68k_dreg(regs, srcreg);
61019: { uae_s32 dst = m68k_dreg(regs, dstreg);
61020: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
61021: { int flgs = ((uae_s32)(src)) < 0;
61022: int flgo = ((uae_s32)(dst)) < 0;
61023: int flgn = ((uae_s32)(newv)) < 0;
61024: SET_ZFLG (((uae_s32)(newv)) == 0);
61025: SET_VFLG ((flgs != flgo) && (flgn != flgo));
61026: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
61027: SET_NFLG (flgn != 0);
61028: }}}}}}m68k_incpc(2);
61029: fill_prefetch_2 ();
61030: return 6;
61031: }
61032: unsigned long REGPARAM2 CPUFUNC(op_b088_5)(uae_u32 opcode) /* CMP */
61033: {
61034: uae_u32 srcreg = (opcode & 7);
61035: uae_u32 dstreg = (opcode >> 9) & 7;
61036: OpcodeFamily = 25; CurrentInstrCycles = 6;
61037: {{ uae_s32 src = m68k_areg(regs, srcreg);
61038: { uae_s32 dst = m68k_dreg(regs, dstreg);
61039: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
61040: { int flgs = ((uae_s32)(src)) < 0;
61041: int flgo = ((uae_s32)(dst)) < 0;
61042: int flgn = ((uae_s32)(newv)) < 0;
61043: SET_ZFLG (((uae_s32)(newv)) == 0);
61044: SET_VFLG ((flgs != flgo) && (flgn != flgo));
61045: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
61046: SET_NFLG (flgn != 0);
61047: }}}}}}m68k_incpc(2);
61048: fill_prefetch_2 ();
61049: return 6;
61050: }
61051: unsigned long REGPARAM2 CPUFUNC(op_b090_5)(uae_u32 opcode) /* CMP */
61052: {
61053: uae_u32 srcreg = (opcode & 7);
61054: uae_u32 dstreg = (opcode >> 9) & 7;
61055: OpcodeFamily = 25; CurrentInstrCycles = 14;
61056: {{ uaecptr srca = m68k_areg(regs, srcreg);
61057: if ((srca & 1) != 0) {
61058: last_fault_for_exception_3 = srca;
61059: last_op_for_exception_3 = opcode;
61060: last_addr_for_exception_3 = m68k_getpc() + 2;
61061: Exception(3, 0, M68000_EXC_SRC_CPU);
61062: goto endlabel3403;
61063: }
61064: {{ uae_s32 src = get_long(srca);
61065: { uae_s32 dst = m68k_dreg(regs, dstreg);
61066: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
61067: { int flgs = ((uae_s32)(src)) < 0;
61068: int flgo = ((uae_s32)(dst)) < 0;
61069: int flgn = ((uae_s32)(newv)) < 0;
61070: SET_ZFLG (((uae_s32)(newv)) == 0);
61071: SET_VFLG ((flgs != flgo) && (flgn != flgo));
61072: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
61073: SET_NFLG (flgn != 0);
61074: }}}}}}}}m68k_incpc(2);
61075: fill_prefetch_2 ();
61076: endlabel3403: ;
61077: return 14;
61078: }
61079: unsigned long REGPARAM2 CPUFUNC(op_b098_5)(uae_u32 opcode) /* CMP */
61080: {
61081: uae_u32 srcreg = (opcode & 7);
61082: uae_u32 dstreg = (opcode >> 9) & 7;
61083: OpcodeFamily = 25; CurrentInstrCycles = 14;
61084: {{ uaecptr srca = m68k_areg(regs, srcreg);
61085: if ((srca & 1) != 0) {
61086: last_fault_for_exception_3 = srca;
61087: last_op_for_exception_3 = opcode;
61088: last_addr_for_exception_3 = m68k_getpc() + 2;
61089: Exception(3, 0, M68000_EXC_SRC_CPU);
61090: goto endlabel3404;
61091: }
61092: {{ uae_s32 src = get_long(srca);
61093: m68k_areg(regs, srcreg) += 4;
61094: { uae_s32 dst = m68k_dreg(regs, dstreg);
61095: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
61096: { int flgs = ((uae_s32)(src)) < 0;
61097: int flgo = ((uae_s32)(dst)) < 0;
61098: int flgn = ((uae_s32)(newv)) < 0;
61099: SET_ZFLG (((uae_s32)(newv)) == 0);
61100: SET_VFLG ((flgs != flgo) && (flgn != flgo));
61101: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
61102: SET_NFLG (flgn != 0);
61103: }}}}}}}}m68k_incpc(2);
61104: fill_prefetch_2 ();
61105: endlabel3404: ;
61106: return 14;
61107: }
61108: unsigned long REGPARAM2 CPUFUNC(op_b0a0_5)(uae_u32 opcode) /* CMP */
61109: {
61110: uae_u32 srcreg = (opcode & 7);
61111: uae_u32 dstreg = (opcode >> 9) & 7;
61112: OpcodeFamily = 25; CurrentInstrCycles = 16;
61113: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
61114: if ((srca & 1) != 0) {
61115: last_fault_for_exception_3 = srca;
61116: last_op_for_exception_3 = opcode;
61117: last_addr_for_exception_3 = m68k_getpc() + 2;
61118: Exception(3, 0, M68000_EXC_SRC_CPU);
61119: goto endlabel3405;
61120: }
61121: {{ uae_s32 src = get_long(srca);
61122: m68k_areg (regs, srcreg) = srca;
61123: { uae_s32 dst = m68k_dreg(regs, dstreg);
61124: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
61125: { int flgs = ((uae_s32)(src)) < 0;
61126: int flgo = ((uae_s32)(dst)) < 0;
61127: int flgn = ((uae_s32)(newv)) < 0;
61128: SET_ZFLG (((uae_s32)(newv)) == 0);
61129: SET_VFLG ((flgs != flgo) && (flgn != flgo));
61130: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
61131: SET_NFLG (flgn != 0);
61132: }}}}}}}}m68k_incpc(2);
61133: fill_prefetch_2 ();
61134: endlabel3405: ;
61135: return 16;
61136: }
61137: unsigned long REGPARAM2 CPUFUNC(op_b0a8_5)(uae_u32 opcode) /* CMP */
61138: {
61139: uae_u32 srcreg = (opcode & 7);
61140: uae_u32 dstreg = (opcode >> 9) & 7;
61141: OpcodeFamily = 25; CurrentInstrCycles = 18;
61142: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
61143: if ((srca & 1) != 0) {
61144: last_fault_for_exception_3 = srca;
61145: last_op_for_exception_3 = opcode;
61146: last_addr_for_exception_3 = m68k_getpc() + 4;
61147: Exception(3, 0, M68000_EXC_SRC_CPU);
61148: goto endlabel3406;
61149: }
61150: {{ uae_s32 src = get_long(srca);
61151: { uae_s32 dst = m68k_dreg(regs, dstreg);
61152: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
61153: { int flgs = ((uae_s32)(src)) < 0;
61154: int flgo = ((uae_s32)(dst)) < 0;
61155: int flgn = ((uae_s32)(newv)) < 0;
61156: SET_ZFLG (((uae_s32)(newv)) == 0);
61157: SET_VFLG ((flgs != flgo) && (flgn != flgo));
61158: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
61159: SET_NFLG (flgn != 0);
61160: }}}}}}}}m68k_incpc(4);
61161: fill_prefetch_0 ();
61162: endlabel3406: ;
61163: return 18;
61164: }
61165: unsigned long REGPARAM2 CPUFUNC(op_b0b0_5)(uae_u32 opcode) /* CMP */
61166: {
61167: uae_u32 srcreg = (opcode & 7);
61168: uae_u32 dstreg = (opcode >> 9) & 7;
61169: OpcodeFamily = 25; CurrentInstrCycles = 20;
61170: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
61171: BusCyclePenalty += 2;
61172: if ((srca & 1) != 0) {
61173: last_fault_for_exception_3 = srca;
61174: last_op_for_exception_3 = opcode;
61175: last_addr_for_exception_3 = m68k_getpc() + 4;
61176: Exception(3, 0, M68000_EXC_SRC_CPU);
61177: goto endlabel3407;
61178: }
61179: {{ uae_s32 src = get_long(srca);
61180: { uae_s32 dst = m68k_dreg(regs, dstreg);
61181: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
61182: { int flgs = ((uae_s32)(src)) < 0;
61183: int flgo = ((uae_s32)(dst)) < 0;
61184: int flgn = ((uae_s32)(newv)) < 0;
61185: SET_ZFLG (((uae_s32)(newv)) == 0);
61186: SET_VFLG ((flgs != flgo) && (flgn != flgo));
61187: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
61188: SET_NFLG (flgn != 0);
61189: }}}}}}}}m68k_incpc(4);
61190: fill_prefetch_0 ();
61191: endlabel3407: ;
61192: return 20;
61193: }
61194: unsigned long REGPARAM2 CPUFUNC(op_b0b8_5)(uae_u32 opcode) /* CMP */
61195: {
61196: uae_u32 dstreg = (opcode >> 9) & 7;
61197: OpcodeFamily = 25; CurrentInstrCycles = 18;
61198: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
61199: if ((srca & 1) != 0) {
61200: last_fault_for_exception_3 = srca;
61201: last_op_for_exception_3 = opcode;
61202: last_addr_for_exception_3 = m68k_getpc() + 4;
61203: Exception(3, 0, M68000_EXC_SRC_CPU);
61204: goto endlabel3408;
61205: }
61206: {{ uae_s32 src = get_long(srca);
61207: { uae_s32 dst = m68k_dreg(regs, dstreg);
61208: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
61209: { int flgs = ((uae_s32)(src)) < 0;
61210: int flgo = ((uae_s32)(dst)) < 0;
61211: int flgn = ((uae_s32)(newv)) < 0;
61212: SET_ZFLG (((uae_s32)(newv)) == 0);
61213: SET_VFLG ((flgs != flgo) && (flgn != flgo));
61214: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
61215: SET_NFLG (flgn != 0);
61216: }}}}}}}}m68k_incpc(4);
61217: fill_prefetch_0 ();
61218: endlabel3408: ;
61219: return 18;
61220: }
61221: unsigned long REGPARAM2 CPUFUNC(op_b0b9_5)(uae_u32 opcode) /* CMP */
61222: {
61223: uae_u32 dstreg = (opcode >> 9) & 7;
61224: OpcodeFamily = 25; CurrentInstrCycles = 22;
61225: {{ uaecptr srca = get_ilong_prefetch(2);
61226: if ((srca & 1) != 0) {
61227: last_fault_for_exception_3 = srca;
61228: last_op_for_exception_3 = opcode;
61229: last_addr_for_exception_3 = m68k_getpc() + 6;
61230: Exception(3, 0, M68000_EXC_SRC_CPU);
61231: goto endlabel3409;
61232: }
61233: {{ uae_s32 src = get_long(srca);
61234: { uae_s32 dst = m68k_dreg(regs, dstreg);
61235: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
61236: { int flgs = ((uae_s32)(src)) < 0;
61237: int flgo = ((uae_s32)(dst)) < 0;
61238: int flgn = ((uae_s32)(newv)) < 0;
61239: SET_ZFLG (((uae_s32)(newv)) == 0);
61240: SET_VFLG ((flgs != flgo) && (flgn != flgo));
61241: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
61242: SET_NFLG (flgn != 0);
61243: }}}}}}}}m68k_incpc(6);
61244: fill_prefetch_0 ();
61245: endlabel3409: ;
61246: return 22;
61247: }
61248: unsigned long REGPARAM2 CPUFUNC(op_b0ba_5)(uae_u32 opcode) /* CMP */
61249: {
61250: uae_u32 dstreg = (opcode >> 9) & 7;
61251: OpcodeFamily = 25; CurrentInstrCycles = 18;
61252: {{ uaecptr srca = m68k_getpc () + 2;
61253: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
61254: if ((srca & 1) != 0) {
61255: last_fault_for_exception_3 = srca;
61256: last_op_for_exception_3 = opcode;
61257: last_addr_for_exception_3 = m68k_getpc() + 4;
61258: Exception(3, 0, M68000_EXC_SRC_CPU);
61259: goto endlabel3410;
61260: }
61261: {{ uae_s32 src = get_long(srca);
61262: { uae_s32 dst = m68k_dreg(regs, dstreg);
61263: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
61264: { int flgs = ((uae_s32)(src)) < 0;
61265: int flgo = ((uae_s32)(dst)) < 0;
61266: int flgn = ((uae_s32)(newv)) < 0;
61267: SET_ZFLG (((uae_s32)(newv)) == 0);
61268: SET_VFLG ((flgs != flgo) && (flgn != flgo));
61269: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
61270: SET_NFLG (flgn != 0);
61271: }}}}}}}}m68k_incpc(4);
61272: fill_prefetch_0 ();
61273: endlabel3410: ;
61274: return 18;
61275: }
61276: unsigned long REGPARAM2 CPUFUNC(op_b0bb_5)(uae_u32 opcode) /* CMP */
61277: {
61278: uae_u32 dstreg = (opcode >> 9) & 7;
61279: OpcodeFamily = 25; CurrentInstrCycles = 20;
61280: {{ uaecptr tmppc = m68k_getpc() + 2;
61281: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
61282: BusCyclePenalty += 2;
61283: if ((srca & 1) != 0) {
61284: last_fault_for_exception_3 = srca;
61285: last_op_for_exception_3 = opcode;
61286: last_addr_for_exception_3 = m68k_getpc() + 4;
61287: Exception(3, 0, M68000_EXC_SRC_CPU);
61288: goto endlabel3411;
61289: }
61290: {{ uae_s32 src = get_long(srca);
61291: { uae_s32 dst = m68k_dreg(regs, dstreg);
61292: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
61293: { int flgs = ((uae_s32)(src)) < 0;
61294: int flgo = ((uae_s32)(dst)) < 0;
61295: int flgn = ((uae_s32)(newv)) < 0;
61296: SET_ZFLG (((uae_s32)(newv)) == 0);
61297: SET_VFLG ((flgs != flgo) && (flgn != flgo));
61298: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
61299: SET_NFLG (flgn != 0);
61300: }}}}}}}}m68k_incpc(4);
61301: fill_prefetch_0 ();
61302: endlabel3411: ;
61303: return 20;
61304: }
61305: unsigned long REGPARAM2 CPUFUNC(op_b0bc_5)(uae_u32 opcode) /* CMP */
61306: {
61307: uae_u32 dstreg = (opcode >> 9) & 7;
61308: OpcodeFamily = 25; CurrentInstrCycles = 14;
61309: {{ uae_s32 src = get_ilong_prefetch(2);
61310: { uae_s32 dst = m68k_dreg(regs, dstreg);
61311: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
61312: { int flgs = ((uae_s32)(src)) < 0;
61313: int flgo = ((uae_s32)(dst)) < 0;
61314: int flgn = ((uae_s32)(newv)) < 0;
61315: SET_ZFLG (((uae_s32)(newv)) == 0);
61316: SET_VFLG ((flgs != flgo) && (flgn != flgo));
61317: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
61318: SET_NFLG (flgn != 0);
61319: }}}}}}m68k_incpc(6);
61320: fill_prefetch_0 ();
61321: return 14;
61322: }
61323: unsigned long REGPARAM2 CPUFUNC(op_b0c0_5)(uae_u32 opcode) /* CMPA */
61324: {
61325: uae_u32 srcreg = (opcode & 7);
61326: uae_u32 dstreg = (opcode >> 9) & 7;
61327: OpcodeFamily = 27; CurrentInstrCycles = 6;
61328: {{ uae_s16 src = m68k_dreg(regs, srcreg);
61329: { uae_s32 dst = m68k_areg(regs, dstreg);
61330: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
61331: { int flgs = ((uae_s32)(src)) < 0;
61332: int flgo = ((uae_s32)(dst)) < 0;
61333: int flgn = ((uae_s32)(newv)) < 0;
61334: SET_ZFLG (((uae_s32)(newv)) == 0);
61335: SET_VFLG ((flgs != flgo) && (flgn != flgo));
61336: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
61337: SET_NFLG (flgn != 0);
61338: }}}}}}m68k_incpc(2);
61339: fill_prefetch_2 ();
61340: return 6;
61341: }
61342: unsigned long REGPARAM2 CPUFUNC(op_b0c8_5)(uae_u32 opcode) /* CMPA */
61343: {
61344: uae_u32 srcreg = (opcode & 7);
61345: uae_u32 dstreg = (opcode >> 9) & 7;
61346: OpcodeFamily = 27; CurrentInstrCycles = 6;
61347: {{ uae_s16 src = m68k_areg(regs, srcreg);
61348: { uae_s32 dst = m68k_areg(regs, dstreg);
61349: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
61350: { int flgs = ((uae_s32)(src)) < 0;
61351: int flgo = ((uae_s32)(dst)) < 0;
61352: int flgn = ((uae_s32)(newv)) < 0;
61353: SET_ZFLG (((uae_s32)(newv)) == 0);
61354: SET_VFLG ((flgs != flgo) && (flgn != flgo));
61355: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
61356: SET_NFLG (flgn != 0);
61357: }}}}}}m68k_incpc(2);
61358: fill_prefetch_2 ();
61359: return 6;
61360: }
61361: unsigned long REGPARAM2 CPUFUNC(op_b0d0_5)(uae_u32 opcode) /* CMPA */
61362: {
61363: uae_u32 srcreg = (opcode & 7);
61364: uae_u32 dstreg = (opcode >> 9) & 7;
61365: OpcodeFamily = 27; CurrentInstrCycles = 10;
61366: {{ uaecptr srca = m68k_areg(regs, srcreg);
61367: if ((srca & 1) != 0) {
61368: last_fault_for_exception_3 = srca;
61369: last_op_for_exception_3 = opcode;
61370: last_addr_for_exception_3 = m68k_getpc() + 2;
61371: Exception(3, 0, M68000_EXC_SRC_CPU);
61372: goto endlabel3415;
61373: }
61374: {{ uae_s16 src = get_word(srca);
61375: { uae_s32 dst = m68k_areg(regs, dstreg);
61376: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
61377: { int flgs = ((uae_s32)(src)) < 0;
61378: int flgo = ((uae_s32)(dst)) < 0;
61379: int flgn = ((uae_s32)(newv)) < 0;
61380: SET_ZFLG (((uae_s32)(newv)) == 0);
61381: SET_VFLG ((flgs != flgo) && (flgn != flgo));
61382: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
61383: SET_NFLG (flgn != 0);
61384: }}}}}}}}m68k_incpc(2);
61385: fill_prefetch_2 ();
61386: endlabel3415: ;
61387: return 10;
61388: }
61389: unsigned long REGPARAM2 CPUFUNC(op_b0d8_5)(uae_u32 opcode) /* CMPA */
61390: {
61391: uae_u32 srcreg = (opcode & 7);
61392: uae_u32 dstreg = (opcode >> 9) & 7;
61393: OpcodeFamily = 27; CurrentInstrCycles = 10;
61394: {{ uaecptr srca = m68k_areg(regs, srcreg);
61395: if ((srca & 1) != 0) {
61396: last_fault_for_exception_3 = srca;
61397: last_op_for_exception_3 = opcode;
61398: last_addr_for_exception_3 = m68k_getpc() + 2;
61399: Exception(3, 0, M68000_EXC_SRC_CPU);
61400: goto endlabel3416;
61401: }
61402: {{ uae_s16 src = get_word(srca);
61403: m68k_areg(regs, srcreg) += 2;
61404: { uae_s32 dst = m68k_areg(regs, dstreg);
61405: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
61406: { int flgs = ((uae_s32)(src)) < 0;
61407: int flgo = ((uae_s32)(dst)) < 0;
61408: int flgn = ((uae_s32)(newv)) < 0;
61409: SET_ZFLG (((uae_s32)(newv)) == 0);
61410: SET_VFLG ((flgs != flgo) && (flgn != flgo));
61411: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
61412: SET_NFLG (flgn != 0);
61413: }}}}}}}}m68k_incpc(2);
61414: fill_prefetch_2 ();
61415: endlabel3416: ;
61416: return 10;
61417: }
61418: unsigned long REGPARAM2 CPUFUNC(op_b0e0_5)(uae_u32 opcode) /* CMPA */
61419: {
61420: uae_u32 srcreg = (opcode & 7);
61421: uae_u32 dstreg = (opcode >> 9) & 7;
61422: OpcodeFamily = 27; CurrentInstrCycles = 12;
61423: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
61424: if ((srca & 1) != 0) {
61425: last_fault_for_exception_3 = srca;
61426: last_op_for_exception_3 = opcode;
61427: last_addr_for_exception_3 = m68k_getpc() + 2;
61428: Exception(3, 0, M68000_EXC_SRC_CPU);
61429: goto endlabel3417;
61430: }
61431: {{ uae_s16 src = get_word(srca);
61432: m68k_areg (regs, srcreg) = srca;
61433: { uae_s32 dst = m68k_areg(regs, dstreg);
61434: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
61435: { int flgs = ((uae_s32)(src)) < 0;
61436: int flgo = ((uae_s32)(dst)) < 0;
61437: int flgn = ((uae_s32)(newv)) < 0;
61438: SET_ZFLG (((uae_s32)(newv)) == 0);
61439: SET_VFLG ((flgs != flgo) && (flgn != flgo));
61440: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
61441: SET_NFLG (flgn != 0);
61442: }}}}}}}}m68k_incpc(2);
61443: fill_prefetch_2 ();
61444: endlabel3417: ;
61445: return 12;
61446: }
61447: unsigned long REGPARAM2 CPUFUNC(op_b0e8_5)(uae_u32 opcode) /* CMPA */
61448: {
61449: uae_u32 srcreg = (opcode & 7);
61450: uae_u32 dstreg = (opcode >> 9) & 7;
61451: OpcodeFamily = 27; CurrentInstrCycles = 14;
61452: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
61453: if ((srca & 1) != 0) {
61454: last_fault_for_exception_3 = srca;
61455: last_op_for_exception_3 = opcode;
61456: last_addr_for_exception_3 = m68k_getpc() + 4;
61457: Exception(3, 0, M68000_EXC_SRC_CPU);
61458: goto endlabel3418;
61459: }
61460: {{ uae_s16 src = get_word(srca);
61461: { uae_s32 dst = m68k_areg(regs, dstreg);
61462: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
61463: { int flgs = ((uae_s32)(src)) < 0;
61464: int flgo = ((uae_s32)(dst)) < 0;
61465: int flgn = ((uae_s32)(newv)) < 0;
61466: SET_ZFLG (((uae_s32)(newv)) == 0);
61467: SET_VFLG ((flgs != flgo) && (flgn != flgo));
61468: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
61469: SET_NFLG (flgn != 0);
61470: }}}}}}}}m68k_incpc(4);
61471: fill_prefetch_0 ();
61472: endlabel3418: ;
61473: return 14;
61474: }
61475: unsigned long REGPARAM2 CPUFUNC(op_b0f0_5)(uae_u32 opcode) /* CMPA */
61476: {
61477: uae_u32 srcreg = (opcode & 7);
61478: uae_u32 dstreg = (opcode >> 9) & 7;
61479: OpcodeFamily = 27; CurrentInstrCycles = 16;
61480: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
61481: BusCyclePenalty += 2;
61482: if ((srca & 1) != 0) {
61483: last_fault_for_exception_3 = srca;
61484: last_op_for_exception_3 = opcode;
61485: last_addr_for_exception_3 = m68k_getpc() + 4;
61486: Exception(3, 0, M68000_EXC_SRC_CPU);
61487: goto endlabel3419;
61488: }
61489: {{ uae_s16 src = get_word(srca);
61490: { uae_s32 dst = m68k_areg(regs, dstreg);
61491: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
61492: { int flgs = ((uae_s32)(src)) < 0;
61493: int flgo = ((uae_s32)(dst)) < 0;
61494: int flgn = ((uae_s32)(newv)) < 0;
61495: SET_ZFLG (((uae_s32)(newv)) == 0);
61496: SET_VFLG ((flgs != flgo) && (flgn != flgo));
61497: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
61498: SET_NFLG (flgn != 0);
61499: }}}}}}}}m68k_incpc(4);
61500: fill_prefetch_0 ();
61501: endlabel3419: ;
61502: return 16;
61503: }
61504: unsigned long REGPARAM2 CPUFUNC(op_b0f8_5)(uae_u32 opcode) /* CMPA */
61505: {
61506: uae_u32 dstreg = (opcode >> 9) & 7;
61507: OpcodeFamily = 27; CurrentInstrCycles = 14;
61508: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
61509: if ((srca & 1) != 0) {
61510: last_fault_for_exception_3 = srca;
61511: last_op_for_exception_3 = opcode;
61512: last_addr_for_exception_3 = m68k_getpc() + 4;
61513: Exception(3, 0, M68000_EXC_SRC_CPU);
61514: goto endlabel3420;
61515: }
61516: {{ uae_s16 src = get_word(srca);
61517: { uae_s32 dst = m68k_areg(regs, dstreg);
61518: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
61519: { int flgs = ((uae_s32)(src)) < 0;
61520: int flgo = ((uae_s32)(dst)) < 0;
61521: int flgn = ((uae_s32)(newv)) < 0;
61522: SET_ZFLG (((uae_s32)(newv)) == 0);
61523: SET_VFLG ((flgs != flgo) && (flgn != flgo));
61524: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
61525: SET_NFLG (flgn != 0);
61526: }}}}}}}}m68k_incpc(4);
61527: fill_prefetch_0 ();
61528: endlabel3420: ;
61529: return 14;
61530: }
61531: unsigned long REGPARAM2 CPUFUNC(op_b0f9_5)(uae_u32 opcode) /* CMPA */
61532: {
61533: uae_u32 dstreg = (opcode >> 9) & 7;
61534: OpcodeFamily = 27; CurrentInstrCycles = 18;
61535: {{ uaecptr srca = get_ilong_prefetch(2);
61536: if ((srca & 1) != 0) {
61537: last_fault_for_exception_3 = srca;
61538: last_op_for_exception_3 = opcode;
61539: last_addr_for_exception_3 = m68k_getpc() + 6;
61540: Exception(3, 0, M68000_EXC_SRC_CPU);
61541: goto endlabel3421;
61542: }
61543: {{ uae_s16 src = get_word(srca);
61544: { uae_s32 dst = m68k_areg(regs, dstreg);
61545: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
61546: { int flgs = ((uae_s32)(src)) < 0;
61547: int flgo = ((uae_s32)(dst)) < 0;
61548: int flgn = ((uae_s32)(newv)) < 0;
61549: SET_ZFLG (((uae_s32)(newv)) == 0);
61550: SET_VFLG ((flgs != flgo) && (flgn != flgo));
61551: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
61552: SET_NFLG (flgn != 0);
61553: }}}}}}}}m68k_incpc(6);
61554: fill_prefetch_0 ();
61555: endlabel3421: ;
61556: return 18;
61557: }
61558: unsigned long REGPARAM2 CPUFUNC(op_b0fa_5)(uae_u32 opcode) /* CMPA */
61559: {
61560: uae_u32 dstreg = (opcode >> 9) & 7;
61561: OpcodeFamily = 27; CurrentInstrCycles = 14;
61562: {{ uaecptr srca = m68k_getpc () + 2;
61563: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
61564: if ((srca & 1) != 0) {
61565: last_fault_for_exception_3 = srca;
61566: last_op_for_exception_3 = opcode;
61567: last_addr_for_exception_3 = m68k_getpc() + 4;
61568: Exception(3, 0, M68000_EXC_SRC_CPU);
61569: goto endlabel3422;
61570: }
61571: {{ uae_s16 src = get_word(srca);
61572: { uae_s32 dst = m68k_areg(regs, dstreg);
61573: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
61574: { int flgs = ((uae_s32)(src)) < 0;
61575: int flgo = ((uae_s32)(dst)) < 0;
61576: int flgn = ((uae_s32)(newv)) < 0;
61577: SET_ZFLG (((uae_s32)(newv)) == 0);
61578: SET_VFLG ((flgs != flgo) && (flgn != flgo));
61579: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
61580: SET_NFLG (flgn != 0);
61581: }}}}}}}}m68k_incpc(4);
61582: fill_prefetch_0 ();
61583: endlabel3422: ;
61584: return 14;
61585: }
61586: unsigned long REGPARAM2 CPUFUNC(op_b0fb_5)(uae_u32 opcode) /* CMPA */
61587: {
61588: uae_u32 dstreg = (opcode >> 9) & 7;
61589: OpcodeFamily = 27; CurrentInstrCycles = 16;
61590: {{ uaecptr tmppc = m68k_getpc() + 2;
61591: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
61592: BusCyclePenalty += 2;
61593: if ((srca & 1) != 0) {
61594: last_fault_for_exception_3 = srca;
61595: last_op_for_exception_3 = opcode;
61596: last_addr_for_exception_3 = m68k_getpc() + 4;
61597: Exception(3, 0, M68000_EXC_SRC_CPU);
61598: goto endlabel3423;
61599: }
61600: {{ uae_s16 src = get_word(srca);
61601: { uae_s32 dst = m68k_areg(regs, dstreg);
61602: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
61603: { int flgs = ((uae_s32)(src)) < 0;
61604: int flgo = ((uae_s32)(dst)) < 0;
61605: int flgn = ((uae_s32)(newv)) < 0;
61606: SET_ZFLG (((uae_s32)(newv)) == 0);
61607: SET_VFLG ((flgs != flgo) && (flgn != flgo));
61608: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
61609: SET_NFLG (flgn != 0);
61610: }}}}}}}}m68k_incpc(4);
61611: fill_prefetch_0 ();
61612: endlabel3423: ;
61613: return 16;
61614: }
61615: unsigned long REGPARAM2 CPUFUNC(op_b0fc_5)(uae_u32 opcode) /* CMPA */
61616: {
61617: uae_u32 dstreg = (opcode >> 9) & 7;
61618: OpcodeFamily = 27; CurrentInstrCycles = 10;
61619: {{ uae_s16 src = get_iword_prefetch(2);
61620: { uae_s32 dst = m68k_areg(regs, dstreg);
61621: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
61622: { int flgs = ((uae_s32)(src)) < 0;
61623: int flgo = ((uae_s32)(dst)) < 0;
61624: int flgn = ((uae_s32)(newv)) < 0;
61625: SET_ZFLG (((uae_s32)(newv)) == 0);
61626: SET_VFLG ((flgs != flgo) && (flgn != flgo));
61627: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
61628: SET_NFLG (flgn != 0);
61629: }}}}}}m68k_incpc(4);
61630: fill_prefetch_0 ();
61631: return 10;
61632: }
61633: unsigned long REGPARAM2 CPUFUNC(op_b100_5)(uae_u32 opcode) /* EOR */
61634: {
61635: uae_u32 srcreg = ((opcode >> 9) & 7);
61636: uae_u32 dstreg = opcode & 7;
61637: OpcodeFamily = 3; CurrentInstrCycles = 4;
61638: {{ uae_s8 src = m68k_dreg(regs, srcreg);
61639: { uae_s8 dst = m68k_dreg(regs, dstreg);
61640: src ^= dst;
61641: CLEAR_CZNV;
61642: SET_ZFLG (((uae_s8)(src)) == 0);
61643: SET_NFLG (((uae_s8)(src)) < 0);
61644: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
61645: }}}m68k_incpc(2);
61646: fill_prefetch_2 ();
61647: return 4;
61648: }
61649: unsigned long REGPARAM2 CPUFUNC(op_b108_5)(uae_u32 opcode) /* CMPM */
61650: {
61651: uae_u32 srcreg = (opcode & 7);
61652: uae_u32 dstreg = (opcode >> 9) & 7;
61653: OpcodeFamily = 26; CurrentInstrCycles = 12;
61654: {{ uaecptr srca = m68k_areg(regs, srcreg);
61655: { uae_s8 src = get_byte(srca);
61656: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
61657: { uaecptr dsta = m68k_areg(regs, dstreg);
61658: { uae_s8 dst = get_byte(dsta);
61659: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
61660: {{uae_u32 newv = ((uae_s8)(dst)) - ((uae_s8)(src));
61661: { int flgs = ((uae_s8)(src)) < 0;
61662: int flgo = ((uae_s8)(dst)) < 0;
61663: int flgn = ((uae_s8)(newv)) < 0;
61664: SET_ZFLG (((uae_s8)(newv)) == 0);
61665: SET_VFLG ((flgs != flgo) && (flgn != flgo));
61666: SET_CFLG (((uae_u8)(src)) > ((uae_u8)(dst)));
61667: SET_NFLG (flgn != 0);
61668: }}}}}}}}m68k_incpc(2);
61669: fill_prefetch_2 ();
61670: return 12;
61671: }
61672: unsigned long REGPARAM2 CPUFUNC(op_b110_5)(uae_u32 opcode) /* EOR */
61673: {
61674: uae_u32 srcreg = ((opcode >> 9) & 7);
61675: uae_u32 dstreg = opcode & 7;
61676: OpcodeFamily = 3; CurrentInstrCycles = 12;
61677: {{ uae_s8 src = m68k_dreg(regs, srcreg);
61678: { uaecptr dsta = m68k_areg(regs, dstreg);
61679: { uae_s8 dst = get_byte(dsta);
61680: src ^= dst;
61681: CLEAR_CZNV;
61682: SET_ZFLG (((uae_s8)(src)) == 0);
61683: SET_NFLG (((uae_s8)(src)) < 0);
61684: m68k_incpc(2);
61685: fill_prefetch_2 ();
61686: put_byte(dsta,src);
61687: }}}}return 12;
61688: }
61689: unsigned long REGPARAM2 CPUFUNC(op_b118_5)(uae_u32 opcode) /* EOR */
61690: {
61691: uae_u32 srcreg = ((opcode >> 9) & 7);
61692: uae_u32 dstreg = opcode & 7;
61693: OpcodeFamily = 3; CurrentInstrCycles = 12;
61694: {{ uae_s8 src = m68k_dreg(regs, srcreg);
61695: { uaecptr dsta = m68k_areg(regs, dstreg);
61696: { uae_s8 dst = get_byte(dsta);
61697: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
61698: src ^= dst;
61699: CLEAR_CZNV;
61700: SET_ZFLG (((uae_s8)(src)) == 0);
61701: SET_NFLG (((uae_s8)(src)) < 0);
61702: m68k_incpc(2);
61703: fill_prefetch_2 ();
61704: put_byte(dsta,src);
61705: }}}}return 12;
61706: }
61707: unsigned long REGPARAM2 CPUFUNC(op_b120_5)(uae_u32 opcode) /* EOR */
61708: {
61709: uae_u32 srcreg = ((opcode >> 9) & 7);
61710: uae_u32 dstreg = opcode & 7;
61711: OpcodeFamily = 3; CurrentInstrCycles = 14;
61712: {{ uae_s8 src = m68k_dreg(regs, srcreg);
61713: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
61714: { uae_s8 dst = get_byte(dsta);
61715: m68k_areg (regs, dstreg) = dsta;
61716: src ^= dst;
61717: CLEAR_CZNV;
61718: SET_ZFLG (((uae_s8)(src)) == 0);
61719: SET_NFLG (((uae_s8)(src)) < 0);
61720: m68k_incpc(2);
61721: fill_prefetch_2 ();
61722: put_byte(dsta,src);
61723: }}}}return 14;
61724: }
61725: unsigned long REGPARAM2 CPUFUNC(op_b128_5)(uae_u32 opcode) /* EOR */
61726: {
61727: uae_u32 srcreg = ((opcode >> 9) & 7);
61728: uae_u32 dstreg = opcode & 7;
61729: OpcodeFamily = 3; CurrentInstrCycles = 16;
61730: {{ uae_s8 src = m68k_dreg(regs, srcreg);
61731: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
61732: { uae_s8 dst = get_byte(dsta);
61733: src ^= dst;
61734: CLEAR_CZNV;
61735: SET_ZFLG (((uae_s8)(src)) == 0);
61736: SET_NFLG (((uae_s8)(src)) < 0);
61737: m68k_incpc(4);
61738: fill_prefetch_0 ();
61739: put_byte(dsta,src);
61740: }}}}return 16;
61741: }
61742: unsigned long REGPARAM2 CPUFUNC(op_b130_5)(uae_u32 opcode) /* EOR */
61743: {
61744: uae_u32 srcreg = ((opcode >> 9) & 7);
61745: uae_u32 dstreg = opcode & 7;
61746: OpcodeFamily = 3; CurrentInstrCycles = 18;
61747: {{ uae_s8 src = m68k_dreg(regs, srcreg);
61748: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
61749: BusCyclePenalty += 2;
61750: { uae_s8 dst = get_byte(dsta);
61751: src ^= dst;
61752: CLEAR_CZNV;
61753: SET_ZFLG (((uae_s8)(src)) == 0);
61754: SET_NFLG (((uae_s8)(src)) < 0);
61755: m68k_incpc(4);
61756: fill_prefetch_0 ();
61757: put_byte(dsta,src);
61758: }}}}return 18;
61759: }
61760: unsigned long REGPARAM2 CPUFUNC(op_b138_5)(uae_u32 opcode) /* EOR */
61761: {
61762: uae_u32 srcreg = ((opcode >> 9) & 7);
61763: OpcodeFamily = 3; CurrentInstrCycles = 16;
61764: {{ uae_s8 src = m68k_dreg(regs, srcreg);
61765: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
61766: { uae_s8 dst = get_byte(dsta);
61767: src ^= dst;
61768: CLEAR_CZNV;
61769: SET_ZFLG (((uae_s8)(src)) == 0);
61770: SET_NFLG (((uae_s8)(src)) < 0);
61771: m68k_incpc(4);
61772: fill_prefetch_0 ();
61773: put_byte(dsta,src);
61774: }}}}return 16;
61775: }
61776: unsigned long REGPARAM2 CPUFUNC(op_b139_5)(uae_u32 opcode) /* EOR */
61777: {
61778: uae_u32 srcreg = ((opcode >> 9) & 7);
61779: OpcodeFamily = 3; CurrentInstrCycles = 20;
61780: {{ uae_s8 src = m68k_dreg(regs, srcreg);
61781: { uaecptr dsta = get_ilong_prefetch(2);
61782: { uae_s8 dst = get_byte(dsta);
61783: src ^= dst;
61784: CLEAR_CZNV;
61785: SET_ZFLG (((uae_s8)(src)) == 0);
61786: SET_NFLG (((uae_s8)(src)) < 0);
61787: m68k_incpc(6);
61788: fill_prefetch_0 ();
61789: put_byte(dsta,src);
61790: }}}}return 20;
61791: }
61792: unsigned long REGPARAM2 CPUFUNC(op_b140_5)(uae_u32 opcode) /* EOR */
61793: {
61794: uae_u32 srcreg = ((opcode >> 9) & 7);
61795: uae_u32 dstreg = opcode & 7;
61796: OpcodeFamily = 3; CurrentInstrCycles = 4;
61797: {{ uae_s16 src = m68k_dreg(regs, srcreg);
61798: { uae_s16 dst = m68k_dreg(regs, dstreg);
61799: src ^= dst;
61800: CLEAR_CZNV;
61801: SET_ZFLG (((uae_s16)(src)) == 0);
61802: SET_NFLG (((uae_s16)(src)) < 0);
61803: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
61804: }}}m68k_incpc(2);
61805: fill_prefetch_2 ();
61806: return 4;
61807: }
61808: unsigned long REGPARAM2 CPUFUNC(op_b148_5)(uae_u32 opcode) /* CMPM */
61809: {
61810: uae_u32 srcreg = (opcode & 7);
61811: uae_u32 dstreg = (opcode >> 9) & 7;
61812: OpcodeFamily = 26; CurrentInstrCycles = 12;
61813: {{ uaecptr srca = m68k_areg(regs, srcreg);
61814: if ((srca & 1) != 0) {
61815: last_fault_for_exception_3 = srca;
61816: last_op_for_exception_3 = opcode;
61817: last_addr_for_exception_3 = m68k_getpc() + 2;
61818: Exception(3, 0, M68000_EXC_SRC_CPU);
61819: goto endlabel3435;
61820: }
61821: {{ uae_s16 src = get_word(srca);
61822: m68k_areg(regs, srcreg) += 2;
61823: { uaecptr dsta = m68k_areg(regs, dstreg);
61824: if ((dsta & 1) != 0) {
61825: last_fault_for_exception_3 = dsta;
61826: last_op_for_exception_3 = opcode;
61827: last_addr_for_exception_3 = m68k_getpc() + 2;
61828: Exception(3, 0, M68000_EXC_SRC_CPU);
61829: goto endlabel3435;
61830: }
61831: {{ uae_s16 dst = get_word(dsta);
61832: m68k_areg(regs, dstreg) += 2;
61833: {{uae_u32 newv = ((uae_s16)(dst)) - ((uae_s16)(src));
61834: { int flgs = ((uae_s16)(src)) < 0;
61835: int flgo = ((uae_s16)(dst)) < 0;
61836: int flgn = ((uae_s16)(newv)) < 0;
61837: SET_ZFLG (((uae_s16)(newv)) == 0);
61838: SET_VFLG ((flgs != flgo) && (flgn != flgo));
61839: SET_CFLG (((uae_u16)(src)) > ((uae_u16)(dst)));
61840: SET_NFLG (flgn != 0);
61841: }}}}}}}}}}m68k_incpc(2);
61842: fill_prefetch_2 ();
61843: endlabel3435: ;
61844: return 12;
61845: }
61846: unsigned long REGPARAM2 CPUFUNC(op_b150_5)(uae_u32 opcode) /* EOR */
61847: {
61848: uae_u32 srcreg = ((opcode >> 9) & 7);
61849: uae_u32 dstreg = opcode & 7;
61850: OpcodeFamily = 3; CurrentInstrCycles = 12;
61851: {{ uae_s16 src = m68k_dreg(regs, srcreg);
61852: { uaecptr dsta = m68k_areg(regs, dstreg);
61853: if ((dsta & 1) != 0) {
61854: last_fault_for_exception_3 = dsta;
61855: last_op_for_exception_3 = opcode;
61856: last_addr_for_exception_3 = m68k_getpc() + 2;
61857: Exception(3, 0, M68000_EXC_SRC_CPU);
61858: goto endlabel3436;
61859: }
61860: {{ uae_s16 dst = get_word(dsta);
61861: src ^= dst;
61862: CLEAR_CZNV;
61863: SET_ZFLG (((uae_s16)(src)) == 0);
61864: SET_NFLG (((uae_s16)(src)) < 0);
61865: m68k_incpc(2);
61866: fill_prefetch_2 ();
61867: put_word(dsta,src);
61868: }}}}}endlabel3436: ;
61869: return 12;
61870: }
61871: unsigned long REGPARAM2 CPUFUNC(op_b158_5)(uae_u32 opcode) /* EOR */
61872: {
61873: uae_u32 srcreg = ((opcode >> 9) & 7);
61874: uae_u32 dstreg = opcode & 7;
61875: OpcodeFamily = 3; CurrentInstrCycles = 12;
61876: {{ uae_s16 src = m68k_dreg(regs, srcreg);
61877: { uaecptr dsta = m68k_areg(regs, dstreg);
61878: if ((dsta & 1) != 0) {
61879: last_fault_for_exception_3 = dsta;
61880: last_op_for_exception_3 = opcode;
61881: last_addr_for_exception_3 = m68k_getpc() + 2;
61882: Exception(3, 0, M68000_EXC_SRC_CPU);
61883: goto endlabel3437;
61884: }
61885: {{ uae_s16 dst = get_word(dsta);
61886: m68k_areg(regs, dstreg) += 2;
61887: src ^= dst;
61888: CLEAR_CZNV;
61889: SET_ZFLG (((uae_s16)(src)) == 0);
61890: SET_NFLG (((uae_s16)(src)) < 0);
61891: m68k_incpc(2);
61892: fill_prefetch_2 ();
61893: put_word(dsta,src);
61894: }}}}}endlabel3437: ;
61895: return 12;
61896: }
61897: unsigned long REGPARAM2 CPUFUNC(op_b160_5)(uae_u32 opcode) /* EOR */
61898: {
61899: uae_u32 srcreg = ((opcode >> 9) & 7);
61900: uae_u32 dstreg = opcode & 7;
61901: OpcodeFamily = 3; CurrentInstrCycles = 14;
61902: {{ uae_s16 src = m68k_dreg(regs, srcreg);
61903: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
61904: if ((dsta & 1) != 0) {
61905: last_fault_for_exception_3 = dsta;
61906: last_op_for_exception_3 = opcode;
61907: last_addr_for_exception_3 = m68k_getpc() + 2;
61908: Exception(3, 0, M68000_EXC_SRC_CPU);
61909: goto endlabel3438;
61910: }
61911: {{ uae_s16 dst = get_word(dsta);
61912: m68k_areg (regs, dstreg) = dsta;
61913: src ^= dst;
61914: CLEAR_CZNV;
61915: SET_ZFLG (((uae_s16)(src)) == 0);
61916: SET_NFLG (((uae_s16)(src)) < 0);
61917: m68k_incpc(2);
61918: fill_prefetch_2 ();
61919: put_word(dsta,src);
61920: }}}}}endlabel3438: ;
61921: return 14;
61922: }
61923: unsigned long REGPARAM2 CPUFUNC(op_b168_5)(uae_u32 opcode) /* EOR */
61924: {
61925: uae_u32 srcreg = ((opcode >> 9) & 7);
61926: uae_u32 dstreg = opcode & 7;
61927: OpcodeFamily = 3; CurrentInstrCycles = 16;
61928: {{ uae_s16 src = m68k_dreg(regs, srcreg);
61929: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
61930: if ((dsta & 1) != 0) {
61931: last_fault_for_exception_3 = dsta;
61932: last_op_for_exception_3 = opcode;
61933: last_addr_for_exception_3 = m68k_getpc() + 4;
61934: Exception(3, 0, M68000_EXC_SRC_CPU);
61935: goto endlabel3439;
61936: }
61937: {{ uae_s16 dst = get_word(dsta);
61938: src ^= dst;
61939: CLEAR_CZNV;
61940: SET_ZFLG (((uae_s16)(src)) == 0);
61941: SET_NFLG (((uae_s16)(src)) < 0);
61942: m68k_incpc(4);
61943: fill_prefetch_0 ();
61944: put_word(dsta,src);
61945: }}}}}endlabel3439: ;
61946: return 16;
61947: }
61948: unsigned long REGPARAM2 CPUFUNC(op_b170_5)(uae_u32 opcode) /* EOR */
61949: {
61950: uae_u32 srcreg = ((opcode >> 9) & 7);
61951: uae_u32 dstreg = opcode & 7;
61952: OpcodeFamily = 3; CurrentInstrCycles = 18;
61953: {{ uae_s16 src = m68k_dreg(regs, srcreg);
61954: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
61955: BusCyclePenalty += 2;
61956: if ((dsta & 1) != 0) {
61957: last_fault_for_exception_3 = dsta;
61958: last_op_for_exception_3 = opcode;
61959: last_addr_for_exception_3 = m68k_getpc() + 4;
61960: Exception(3, 0, M68000_EXC_SRC_CPU);
61961: goto endlabel3440;
61962: }
61963: {{ uae_s16 dst = get_word(dsta);
61964: src ^= dst;
61965: CLEAR_CZNV;
61966: SET_ZFLG (((uae_s16)(src)) == 0);
61967: SET_NFLG (((uae_s16)(src)) < 0);
61968: m68k_incpc(4);
61969: fill_prefetch_0 ();
61970: put_word(dsta,src);
61971: }}}}}endlabel3440: ;
61972: return 18;
61973: }
61974: unsigned long REGPARAM2 CPUFUNC(op_b178_5)(uae_u32 opcode) /* EOR */
61975: {
61976: uae_u32 srcreg = ((opcode >> 9) & 7);
61977: OpcodeFamily = 3; CurrentInstrCycles = 16;
61978: {{ uae_s16 src = m68k_dreg(regs, srcreg);
61979: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
61980: if ((dsta & 1) != 0) {
61981: last_fault_for_exception_3 = dsta;
61982: last_op_for_exception_3 = opcode;
61983: last_addr_for_exception_3 = m68k_getpc() + 4;
61984: Exception(3, 0, M68000_EXC_SRC_CPU);
61985: goto endlabel3441;
61986: }
61987: {{ uae_s16 dst = get_word(dsta);
61988: src ^= dst;
61989: CLEAR_CZNV;
61990: SET_ZFLG (((uae_s16)(src)) == 0);
61991: SET_NFLG (((uae_s16)(src)) < 0);
61992: m68k_incpc(4);
61993: fill_prefetch_0 ();
61994: put_word(dsta,src);
61995: }}}}}endlabel3441: ;
61996: return 16;
61997: }
61998: unsigned long REGPARAM2 CPUFUNC(op_b179_5)(uae_u32 opcode) /* EOR */
61999: {
62000: uae_u32 srcreg = ((opcode >> 9) & 7);
62001: OpcodeFamily = 3; CurrentInstrCycles = 20;
62002: {{ uae_s16 src = m68k_dreg(regs, srcreg);
62003: { uaecptr dsta = get_ilong_prefetch(2);
62004: if ((dsta & 1) != 0) {
62005: last_fault_for_exception_3 = dsta;
62006: last_op_for_exception_3 = opcode;
62007: last_addr_for_exception_3 = m68k_getpc() + 6;
62008: Exception(3, 0, M68000_EXC_SRC_CPU);
62009: goto endlabel3442;
62010: }
62011: {{ uae_s16 dst = get_word(dsta);
62012: src ^= dst;
62013: CLEAR_CZNV;
62014: SET_ZFLG (((uae_s16)(src)) == 0);
62015: SET_NFLG (((uae_s16)(src)) < 0);
62016: m68k_incpc(6);
62017: fill_prefetch_0 ();
62018: put_word(dsta,src);
62019: }}}}}endlabel3442: ;
62020: return 20;
62021: }
62022: unsigned long REGPARAM2 CPUFUNC(op_b180_5)(uae_u32 opcode) /* EOR */
62023: {
62024: uae_u32 srcreg = ((opcode >> 9) & 7);
62025: uae_u32 dstreg = opcode & 7;
62026: OpcodeFamily = 3; CurrentInstrCycles = 8;
62027: {{ uae_s32 src = m68k_dreg(regs, srcreg);
62028: { uae_s32 dst = m68k_dreg(regs, dstreg);
62029: src ^= dst;
62030: CLEAR_CZNV;
62031: SET_ZFLG (((uae_s32)(src)) == 0);
62032: SET_NFLG (((uae_s32)(src)) < 0);
62033: m68k_dreg(regs, dstreg) = (src);
62034: }}}m68k_incpc(2);
62035: fill_prefetch_2 ();
62036: return 8;
62037: }
62038: unsigned long REGPARAM2 CPUFUNC(op_b188_5)(uae_u32 opcode) /* CMPM */
62039: {
62040: uae_u32 srcreg = (opcode & 7);
62041: uae_u32 dstreg = (opcode >> 9) & 7;
62042: OpcodeFamily = 26; CurrentInstrCycles = 20;
62043: {{ uaecptr srca = m68k_areg(regs, srcreg);
62044: if ((srca & 1) != 0) {
62045: last_fault_for_exception_3 = srca;
62046: last_op_for_exception_3 = opcode;
62047: last_addr_for_exception_3 = m68k_getpc() + 2;
62048: Exception(3, 0, M68000_EXC_SRC_CPU);
62049: goto endlabel3444;
62050: }
62051: {{ uae_s32 src = get_long(srca);
62052: m68k_areg(regs, srcreg) += 4;
62053: { uaecptr dsta = m68k_areg(regs, dstreg);
62054: if ((dsta & 1) != 0) {
62055: last_fault_for_exception_3 = dsta;
62056: last_op_for_exception_3 = opcode;
62057: last_addr_for_exception_3 = m68k_getpc() + 2;
62058: Exception(3, 0, M68000_EXC_SRC_CPU);
62059: goto endlabel3444;
62060: }
62061: {{ uae_s32 dst = get_long(dsta);
62062: m68k_areg(regs, dstreg) += 4;
62063: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
62064: { int flgs = ((uae_s32)(src)) < 0;
62065: int flgo = ((uae_s32)(dst)) < 0;
62066: int flgn = ((uae_s32)(newv)) < 0;
62067: SET_ZFLG (((uae_s32)(newv)) == 0);
62068: SET_VFLG ((flgs != flgo) && (flgn != flgo));
62069: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
62070: SET_NFLG (flgn != 0);
62071: }}}}}}}}}}m68k_incpc(2);
62072: fill_prefetch_2 ();
62073: endlabel3444: ;
62074: return 20;
62075: }
62076: unsigned long REGPARAM2 CPUFUNC(op_b190_5)(uae_u32 opcode) /* EOR */
62077: {
62078: uae_u32 srcreg = ((opcode >> 9) & 7);
62079: uae_u32 dstreg = opcode & 7;
62080: OpcodeFamily = 3; CurrentInstrCycles = 20;
62081: {{ uae_s32 src = m68k_dreg(regs, srcreg);
62082: { uaecptr dsta = m68k_areg(regs, dstreg);
62083: if ((dsta & 1) != 0) {
62084: last_fault_for_exception_3 = dsta;
62085: last_op_for_exception_3 = opcode;
62086: last_addr_for_exception_3 = m68k_getpc() + 2;
62087: Exception(3, 0, M68000_EXC_SRC_CPU);
62088: goto endlabel3445;
62089: }
62090: {{ uae_s32 dst = get_long(dsta);
62091: src ^= dst;
62092: CLEAR_CZNV;
62093: SET_ZFLG (((uae_s32)(src)) == 0);
62094: SET_NFLG (((uae_s32)(src)) < 0);
62095: m68k_incpc(2);
62096: fill_prefetch_2 ();
62097: put_long(dsta,src);
62098: }}}}}endlabel3445: ;
62099: return 20;
62100: }
62101: unsigned long REGPARAM2 CPUFUNC(op_b198_5)(uae_u32 opcode) /* EOR */
62102: {
62103: uae_u32 srcreg = ((opcode >> 9) & 7);
62104: uae_u32 dstreg = opcode & 7;
62105: OpcodeFamily = 3; CurrentInstrCycles = 20;
62106: {{ uae_s32 src = m68k_dreg(regs, srcreg);
62107: { uaecptr dsta = m68k_areg(regs, dstreg);
62108: if ((dsta & 1) != 0) {
62109: last_fault_for_exception_3 = dsta;
62110: last_op_for_exception_3 = opcode;
62111: last_addr_for_exception_3 = m68k_getpc() + 2;
62112: Exception(3, 0, M68000_EXC_SRC_CPU);
62113: goto endlabel3446;
62114: }
62115: {{ uae_s32 dst = get_long(dsta);
62116: m68k_areg(regs, dstreg) += 4;
62117: src ^= dst;
62118: CLEAR_CZNV;
62119: SET_ZFLG (((uae_s32)(src)) == 0);
62120: SET_NFLG (((uae_s32)(src)) < 0);
62121: m68k_incpc(2);
62122: fill_prefetch_2 ();
62123: put_long(dsta,src);
62124: }}}}}endlabel3446: ;
62125: return 20;
62126: }
62127: unsigned long REGPARAM2 CPUFUNC(op_b1a0_5)(uae_u32 opcode) /* EOR */
62128: {
62129: uae_u32 srcreg = ((opcode >> 9) & 7);
62130: uae_u32 dstreg = opcode & 7;
62131: OpcodeFamily = 3; CurrentInstrCycles = 22;
62132: {{ uae_s32 src = m68k_dreg(regs, srcreg);
62133: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
62134: if ((dsta & 1) != 0) {
62135: last_fault_for_exception_3 = dsta;
62136: last_op_for_exception_3 = opcode;
62137: last_addr_for_exception_3 = m68k_getpc() + 2;
62138: Exception(3, 0, M68000_EXC_SRC_CPU);
62139: goto endlabel3447;
62140: }
62141: {{ uae_s32 dst = get_long(dsta);
62142: m68k_areg (regs, dstreg) = dsta;
62143: src ^= dst;
62144: CLEAR_CZNV;
62145: SET_ZFLG (((uae_s32)(src)) == 0);
62146: SET_NFLG (((uae_s32)(src)) < 0);
62147: m68k_incpc(2);
62148: fill_prefetch_2 ();
62149: put_long(dsta,src);
62150: }}}}}endlabel3447: ;
62151: return 22;
62152: }
62153: unsigned long REGPARAM2 CPUFUNC(op_b1a8_5)(uae_u32 opcode) /* EOR */
62154: {
62155: uae_u32 srcreg = ((opcode >> 9) & 7);
62156: uae_u32 dstreg = opcode & 7;
62157: OpcodeFamily = 3; CurrentInstrCycles = 24;
62158: {{ uae_s32 src = m68k_dreg(regs, srcreg);
62159: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
62160: if ((dsta & 1) != 0) {
62161: last_fault_for_exception_3 = dsta;
62162: last_op_for_exception_3 = opcode;
62163: last_addr_for_exception_3 = m68k_getpc() + 4;
62164: Exception(3, 0, M68000_EXC_SRC_CPU);
62165: goto endlabel3448;
62166: }
62167: {{ uae_s32 dst = get_long(dsta);
62168: src ^= dst;
62169: CLEAR_CZNV;
62170: SET_ZFLG (((uae_s32)(src)) == 0);
62171: SET_NFLG (((uae_s32)(src)) < 0);
62172: m68k_incpc(4);
62173: fill_prefetch_0 ();
62174: put_long(dsta,src);
62175: }}}}}endlabel3448: ;
62176: return 24;
62177: }
62178: unsigned long REGPARAM2 CPUFUNC(op_b1b0_5)(uae_u32 opcode) /* EOR */
62179: {
62180: uae_u32 srcreg = ((opcode >> 9) & 7);
62181: uae_u32 dstreg = opcode & 7;
62182: OpcodeFamily = 3; CurrentInstrCycles = 26;
62183: {{ uae_s32 src = m68k_dreg(regs, srcreg);
62184: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
62185: BusCyclePenalty += 2;
62186: if ((dsta & 1) != 0) {
62187: last_fault_for_exception_3 = dsta;
62188: last_op_for_exception_3 = opcode;
62189: last_addr_for_exception_3 = m68k_getpc() + 4;
62190: Exception(3, 0, M68000_EXC_SRC_CPU);
62191: goto endlabel3449;
62192: }
62193: {{ uae_s32 dst = get_long(dsta);
62194: src ^= dst;
62195: CLEAR_CZNV;
62196: SET_ZFLG (((uae_s32)(src)) == 0);
62197: SET_NFLG (((uae_s32)(src)) < 0);
62198: m68k_incpc(4);
62199: fill_prefetch_0 ();
62200: put_long(dsta,src);
62201: }}}}}endlabel3449: ;
62202: return 26;
62203: }
62204: unsigned long REGPARAM2 CPUFUNC(op_b1b8_5)(uae_u32 opcode) /* EOR */
62205: {
62206: uae_u32 srcreg = ((opcode >> 9) & 7);
62207: OpcodeFamily = 3; CurrentInstrCycles = 24;
62208: {{ uae_s32 src = m68k_dreg(regs, srcreg);
62209: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
62210: if ((dsta & 1) != 0) {
62211: last_fault_for_exception_3 = dsta;
62212: last_op_for_exception_3 = opcode;
62213: last_addr_for_exception_3 = m68k_getpc() + 4;
62214: Exception(3, 0, M68000_EXC_SRC_CPU);
62215: goto endlabel3450;
62216: }
62217: {{ uae_s32 dst = get_long(dsta);
62218: src ^= dst;
62219: CLEAR_CZNV;
62220: SET_ZFLG (((uae_s32)(src)) == 0);
62221: SET_NFLG (((uae_s32)(src)) < 0);
62222: m68k_incpc(4);
62223: fill_prefetch_0 ();
62224: put_long(dsta,src);
62225: }}}}}endlabel3450: ;
62226: return 24;
62227: }
62228: unsigned long REGPARAM2 CPUFUNC(op_b1b9_5)(uae_u32 opcode) /* EOR */
62229: {
62230: uae_u32 srcreg = ((opcode >> 9) & 7);
62231: OpcodeFamily = 3; CurrentInstrCycles = 28;
62232: {{ uae_s32 src = m68k_dreg(regs, srcreg);
62233: { uaecptr dsta = get_ilong_prefetch(2);
62234: if ((dsta & 1) != 0) {
62235: last_fault_for_exception_3 = dsta;
62236: last_op_for_exception_3 = opcode;
62237: last_addr_for_exception_3 = m68k_getpc() + 6;
62238: Exception(3, 0, M68000_EXC_SRC_CPU);
62239: goto endlabel3451;
62240: }
62241: {{ uae_s32 dst = get_long(dsta);
62242: src ^= dst;
62243: CLEAR_CZNV;
62244: SET_ZFLG (((uae_s32)(src)) == 0);
62245: SET_NFLG (((uae_s32)(src)) < 0);
62246: m68k_incpc(6);
62247: fill_prefetch_0 ();
62248: put_long(dsta,src);
62249: }}}}}endlabel3451: ;
62250: return 28;
62251: }
62252: unsigned long REGPARAM2 CPUFUNC(op_b1c0_5)(uae_u32 opcode) /* CMPA */
62253: {
62254: uae_u32 srcreg = (opcode & 7);
62255: uae_u32 dstreg = (opcode >> 9) & 7;
62256: OpcodeFamily = 27; CurrentInstrCycles = 6;
62257: {{ uae_s32 src = m68k_dreg(regs, srcreg);
62258: { uae_s32 dst = m68k_areg(regs, dstreg);
62259: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
62260: { int flgs = ((uae_s32)(src)) < 0;
62261: int flgo = ((uae_s32)(dst)) < 0;
62262: int flgn = ((uae_s32)(newv)) < 0;
62263: SET_ZFLG (((uae_s32)(newv)) == 0);
62264: SET_VFLG ((flgs != flgo) && (flgn != flgo));
62265: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
62266: SET_NFLG (flgn != 0);
62267: }}}}}}m68k_incpc(2);
62268: fill_prefetch_2 ();
62269: return 6;
62270: }
62271: unsigned long REGPARAM2 CPUFUNC(op_b1c8_5)(uae_u32 opcode) /* CMPA */
62272: {
62273: uae_u32 srcreg = (opcode & 7);
62274: uae_u32 dstreg = (opcode >> 9) & 7;
62275: OpcodeFamily = 27; CurrentInstrCycles = 6;
62276: {{ uae_s32 src = m68k_areg(regs, srcreg);
62277: { uae_s32 dst = m68k_areg(regs, dstreg);
62278: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
62279: { int flgs = ((uae_s32)(src)) < 0;
62280: int flgo = ((uae_s32)(dst)) < 0;
62281: int flgn = ((uae_s32)(newv)) < 0;
62282: SET_ZFLG (((uae_s32)(newv)) == 0);
62283: SET_VFLG ((flgs != flgo) && (flgn != flgo));
62284: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
62285: SET_NFLG (flgn != 0);
62286: }}}}}}m68k_incpc(2);
62287: fill_prefetch_2 ();
62288: return 6;
62289: }
62290: unsigned long REGPARAM2 CPUFUNC(op_b1d0_5)(uae_u32 opcode) /* CMPA */
62291: {
62292: uae_u32 srcreg = (opcode & 7);
62293: uae_u32 dstreg = (opcode >> 9) & 7;
62294: OpcodeFamily = 27; CurrentInstrCycles = 14;
62295: {{ uaecptr srca = m68k_areg(regs, srcreg);
62296: if ((srca & 1) != 0) {
62297: last_fault_for_exception_3 = srca;
62298: last_op_for_exception_3 = opcode;
62299: last_addr_for_exception_3 = m68k_getpc() + 2;
62300: Exception(3, 0, M68000_EXC_SRC_CPU);
62301: goto endlabel3454;
62302: }
62303: {{ uae_s32 src = get_long(srca);
62304: { uae_s32 dst = m68k_areg(regs, dstreg);
62305: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
62306: { int flgs = ((uae_s32)(src)) < 0;
62307: int flgo = ((uae_s32)(dst)) < 0;
62308: int flgn = ((uae_s32)(newv)) < 0;
62309: SET_ZFLG (((uae_s32)(newv)) == 0);
62310: SET_VFLG ((flgs != flgo) && (flgn != flgo));
62311: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
62312: SET_NFLG (flgn != 0);
62313: }}}}}}}}m68k_incpc(2);
62314: fill_prefetch_2 ();
62315: endlabel3454: ;
62316: return 14;
62317: }
62318: unsigned long REGPARAM2 CPUFUNC(op_b1d8_5)(uae_u32 opcode) /* CMPA */
62319: {
62320: uae_u32 srcreg = (opcode & 7);
62321: uae_u32 dstreg = (opcode >> 9) & 7;
62322: OpcodeFamily = 27; CurrentInstrCycles = 14;
62323: {{ uaecptr srca = m68k_areg(regs, srcreg);
62324: if ((srca & 1) != 0) {
62325: last_fault_for_exception_3 = srca;
62326: last_op_for_exception_3 = opcode;
62327: last_addr_for_exception_3 = m68k_getpc() + 2;
62328: Exception(3, 0, M68000_EXC_SRC_CPU);
62329: goto endlabel3455;
62330: }
62331: {{ uae_s32 src = get_long(srca);
62332: m68k_areg(regs, srcreg) += 4;
62333: { uae_s32 dst = m68k_areg(regs, dstreg);
62334: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
62335: { int flgs = ((uae_s32)(src)) < 0;
62336: int flgo = ((uae_s32)(dst)) < 0;
62337: int flgn = ((uae_s32)(newv)) < 0;
62338: SET_ZFLG (((uae_s32)(newv)) == 0);
62339: SET_VFLG ((flgs != flgo) && (flgn != flgo));
62340: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
62341: SET_NFLG (flgn != 0);
62342: }}}}}}}}m68k_incpc(2);
62343: fill_prefetch_2 ();
62344: endlabel3455: ;
62345: return 14;
62346: }
62347: unsigned long REGPARAM2 CPUFUNC(op_b1e0_5)(uae_u32 opcode) /* CMPA */
62348: {
62349: uae_u32 srcreg = (opcode & 7);
62350: uae_u32 dstreg = (opcode >> 9) & 7;
62351: OpcodeFamily = 27; CurrentInstrCycles = 16;
62352: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
62353: if ((srca & 1) != 0) {
62354: last_fault_for_exception_3 = srca;
62355: last_op_for_exception_3 = opcode;
62356: last_addr_for_exception_3 = m68k_getpc() + 2;
62357: Exception(3, 0, M68000_EXC_SRC_CPU);
62358: goto endlabel3456;
62359: }
62360: {{ uae_s32 src = get_long(srca);
62361: m68k_areg (regs, srcreg) = srca;
62362: { uae_s32 dst = m68k_areg(regs, dstreg);
62363: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
62364: { int flgs = ((uae_s32)(src)) < 0;
62365: int flgo = ((uae_s32)(dst)) < 0;
62366: int flgn = ((uae_s32)(newv)) < 0;
62367: SET_ZFLG (((uae_s32)(newv)) == 0);
62368: SET_VFLG ((flgs != flgo) && (flgn != flgo));
62369: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
62370: SET_NFLG (flgn != 0);
62371: }}}}}}}}m68k_incpc(2);
62372: fill_prefetch_2 ();
62373: endlabel3456: ;
62374: return 16;
62375: }
62376: unsigned long REGPARAM2 CPUFUNC(op_b1e8_5)(uae_u32 opcode) /* CMPA */
62377: {
62378: uae_u32 srcreg = (opcode & 7);
62379: uae_u32 dstreg = (opcode >> 9) & 7;
62380: OpcodeFamily = 27; CurrentInstrCycles = 18;
62381: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
62382: if ((srca & 1) != 0) {
62383: last_fault_for_exception_3 = srca;
62384: last_op_for_exception_3 = opcode;
62385: last_addr_for_exception_3 = m68k_getpc() + 4;
62386: Exception(3, 0, M68000_EXC_SRC_CPU);
62387: goto endlabel3457;
62388: }
62389: {{ uae_s32 src = get_long(srca);
62390: { uae_s32 dst = m68k_areg(regs, dstreg);
62391: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
62392: { int flgs = ((uae_s32)(src)) < 0;
62393: int flgo = ((uae_s32)(dst)) < 0;
62394: int flgn = ((uae_s32)(newv)) < 0;
62395: SET_ZFLG (((uae_s32)(newv)) == 0);
62396: SET_VFLG ((flgs != flgo) && (flgn != flgo));
62397: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
62398: SET_NFLG (flgn != 0);
62399: }}}}}}}}m68k_incpc(4);
62400: fill_prefetch_0 ();
62401: endlabel3457: ;
62402: return 18;
62403: }
62404: unsigned long REGPARAM2 CPUFUNC(op_b1f0_5)(uae_u32 opcode) /* CMPA */
62405: {
62406: uae_u32 srcreg = (opcode & 7);
62407: uae_u32 dstreg = (opcode >> 9) & 7;
62408: OpcodeFamily = 27; CurrentInstrCycles = 20;
62409: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
62410: BusCyclePenalty += 2;
62411: if ((srca & 1) != 0) {
62412: last_fault_for_exception_3 = srca;
62413: last_op_for_exception_3 = opcode;
62414: last_addr_for_exception_3 = m68k_getpc() + 4;
62415: Exception(3, 0, M68000_EXC_SRC_CPU);
62416: goto endlabel3458;
62417: }
62418: {{ uae_s32 src = get_long(srca);
62419: { uae_s32 dst = m68k_areg(regs, dstreg);
62420: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
62421: { int flgs = ((uae_s32)(src)) < 0;
62422: int flgo = ((uae_s32)(dst)) < 0;
62423: int flgn = ((uae_s32)(newv)) < 0;
62424: SET_ZFLG (((uae_s32)(newv)) == 0);
62425: SET_VFLG ((flgs != flgo) && (flgn != flgo));
62426: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
62427: SET_NFLG (flgn != 0);
62428: }}}}}}}}m68k_incpc(4);
62429: fill_prefetch_0 ();
62430: endlabel3458: ;
62431: return 20;
62432: }
62433: unsigned long REGPARAM2 CPUFUNC(op_b1f8_5)(uae_u32 opcode) /* CMPA */
62434: {
62435: uae_u32 dstreg = (opcode >> 9) & 7;
62436: OpcodeFamily = 27; CurrentInstrCycles = 18;
62437: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
62438: if ((srca & 1) != 0) {
62439: last_fault_for_exception_3 = srca;
62440: last_op_for_exception_3 = opcode;
62441: last_addr_for_exception_3 = m68k_getpc() + 4;
62442: Exception(3, 0, M68000_EXC_SRC_CPU);
62443: goto endlabel3459;
62444: }
62445: {{ uae_s32 src = get_long(srca);
62446: { uae_s32 dst = m68k_areg(regs, dstreg);
62447: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
62448: { int flgs = ((uae_s32)(src)) < 0;
62449: int flgo = ((uae_s32)(dst)) < 0;
62450: int flgn = ((uae_s32)(newv)) < 0;
62451: SET_ZFLG (((uae_s32)(newv)) == 0);
62452: SET_VFLG ((flgs != flgo) && (flgn != flgo));
62453: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
62454: SET_NFLG (flgn != 0);
62455: }}}}}}}}m68k_incpc(4);
62456: fill_prefetch_0 ();
62457: endlabel3459: ;
62458: return 18;
62459: }
62460: unsigned long REGPARAM2 CPUFUNC(op_b1f9_5)(uae_u32 opcode) /* CMPA */
62461: {
62462: uae_u32 dstreg = (opcode >> 9) & 7;
62463: OpcodeFamily = 27; CurrentInstrCycles = 22;
62464: {{ uaecptr srca = get_ilong_prefetch(2);
62465: if ((srca & 1) != 0) {
62466: last_fault_for_exception_3 = srca;
62467: last_op_for_exception_3 = opcode;
62468: last_addr_for_exception_3 = m68k_getpc() + 6;
62469: Exception(3, 0, M68000_EXC_SRC_CPU);
62470: goto endlabel3460;
62471: }
62472: {{ uae_s32 src = get_long(srca);
62473: { uae_s32 dst = m68k_areg(regs, dstreg);
62474: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
62475: { int flgs = ((uae_s32)(src)) < 0;
62476: int flgo = ((uae_s32)(dst)) < 0;
62477: int flgn = ((uae_s32)(newv)) < 0;
62478: SET_ZFLG (((uae_s32)(newv)) == 0);
62479: SET_VFLG ((flgs != flgo) && (flgn != flgo));
62480: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
62481: SET_NFLG (flgn != 0);
62482: }}}}}}}}m68k_incpc(6);
62483: fill_prefetch_0 ();
62484: endlabel3460: ;
62485: return 22;
62486: }
62487: unsigned long REGPARAM2 CPUFUNC(op_b1fa_5)(uae_u32 opcode) /* CMPA */
62488: {
62489: uae_u32 dstreg = (opcode >> 9) & 7;
62490: OpcodeFamily = 27; CurrentInstrCycles = 18;
62491: {{ uaecptr srca = m68k_getpc () + 2;
62492: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
62493: if ((srca & 1) != 0) {
62494: last_fault_for_exception_3 = srca;
62495: last_op_for_exception_3 = opcode;
62496: last_addr_for_exception_3 = m68k_getpc() + 4;
62497: Exception(3, 0, M68000_EXC_SRC_CPU);
62498: goto endlabel3461;
62499: }
62500: {{ uae_s32 src = get_long(srca);
62501: { uae_s32 dst = m68k_areg(regs, dstreg);
62502: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
62503: { int flgs = ((uae_s32)(src)) < 0;
62504: int flgo = ((uae_s32)(dst)) < 0;
62505: int flgn = ((uae_s32)(newv)) < 0;
62506: SET_ZFLG (((uae_s32)(newv)) == 0);
62507: SET_VFLG ((flgs != flgo) && (flgn != flgo));
62508: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
62509: SET_NFLG (flgn != 0);
62510: }}}}}}}}m68k_incpc(4);
62511: fill_prefetch_0 ();
62512: endlabel3461: ;
62513: return 18;
62514: }
62515: unsigned long REGPARAM2 CPUFUNC(op_b1fb_5)(uae_u32 opcode) /* CMPA */
62516: {
62517: uae_u32 dstreg = (opcode >> 9) & 7;
62518: OpcodeFamily = 27; CurrentInstrCycles = 20;
62519: {{ uaecptr tmppc = m68k_getpc() + 2;
62520: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
62521: BusCyclePenalty += 2;
62522: if ((srca & 1) != 0) {
62523: last_fault_for_exception_3 = srca;
62524: last_op_for_exception_3 = opcode;
62525: last_addr_for_exception_3 = m68k_getpc() + 4;
62526: Exception(3, 0, M68000_EXC_SRC_CPU);
62527: goto endlabel3462;
62528: }
62529: {{ uae_s32 src = get_long(srca);
62530: { uae_s32 dst = m68k_areg(regs, dstreg);
62531: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
62532: { int flgs = ((uae_s32)(src)) < 0;
62533: int flgo = ((uae_s32)(dst)) < 0;
62534: int flgn = ((uae_s32)(newv)) < 0;
62535: SET_ZFLG (((uae_s32)(newv)) == 0);
62536: SET_VFLG ((flgs != flgo) && (flgn != flgo));
62537: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
62538: SET_NFLG (flgn != 0);
62539: }}}}}}}}m68k_incpc(4);
62540: fill_prefetch_0 ();
62541: endlabel3462: ;
62542: return 20;
62543: }
62544: unsigned long REGPARAM2 CPUFUNC(op_b1fc_5)(uae_u32 opcode) /* CMPA */
62545: {
62546: uae_u32 dstreg = (opcode >> 9) & 7;
62547: OpcodeFamily = 27; CurrentInstrCycles = 14;
62548: {{ uae_s32 src = get_ilong_prefetch(2);
62549: { uae_s32 dst = m68k_areg(regs, dstreg);
62550: {{uae_u32 newv = ((uae_s32)(dst)) - ((uae_s32)(src));
62551: { int flgs = ((uae_s32)(src)) < 0;
62552: int flgo = ((uae_s32)(dst)) < 0;
62553: int flgn = ((uae_s32)(newv)) < 0;
62554: SET_ZFLG (((uae_s32)(newv)) == 0);
62555: SET_VFLG ((flgs != flgo) && (flgn != flgo));
62556: SET_CFLG (((uae_u32)(src)) > ((uae_u32)(dst)));
62557: SET_NFLG (flgn != 0);
62558: }}}}}}m68k_incpc(6);
62559: fill_prefetch_0 ();
62560: return 14;
62561: }
62562: unsigned long REGPARAM2 CPUFUNC(op_c000_5)(uae_u32 opcode) /* AND */
62563: {
62564: uae_u32 srcreg = (opcode & 7);
62565: uae_u32 dstreg = (opcode >> 9) & 7;
62566: OpcodeFamily = 2; CurrentInstrCycles = 4;
62567: {{ uae_s8 src = m68k_dreg(regs, srcreg);
62568: { uae_s8 dst = m68k_dreg(regs, dstreg);
62569: src &= dst;
62570: CLEAR_CZNV;
62571: SET_ZFLG (((uae_s8)(src)) == 0);
62572: SET_NFLG (((uae_s8)(src)) < 0);
62573: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
62574: }}}m68k_incpc(2);
62575: fill_prefetch_2 ();
62576: return 4;
62577: }
62578: unsigned long REGPARAM2 CPUFUNC(op_c010_5)(uae_u32 opcode) /* AND */
62579: {
62580: uae_u32 srcreg = (opcode & 7);
62581: uae_u32 dstreg = (opcode >> 9) & 7;
62582: OpcodeFamily = 2; CurrentInstrCycles = 8;
62583: {{ uaecptr srca = m68k_areg(regs, srcreg);
62584: { uae_s8 src = get_byte(srca);
62585: { uae_s8 dst = m68k_dreg(regs, dstreg);
62586: src &= dst;
62587: CLEAR_CZNV;
62588: SET_ZFLG (((uae_s8)(src)) == 0);
62589: SET_NFLG (((uae_s8)(src)) < 0);
62590: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
62591: }}}}m68k_incpc(2);
62592: fill_prefetch_2 ();
62593: return 8;
62594: }
62595: unsigned long REGPARAM2 CPUFUNC(op_c018_5)(uae_u32 opcode) /* AND */
62596: {
62597: uae_u32 srcreg = (opcode & 7);
62598: uae_u32 dstreg = (opcode >> 9) & 7;
62599: OpcodeFamily = 2; CurrentInstrCycles = 8;
62600: {{ uaecptr srca = m68k_areg(regs, srcreg);
62601: { uae_s8 src = get_byte(srca);
62602: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
62603: { uae_s8 dst = m68k_dreg(regs, dstreg);
62604: src &= dst;
62605: CLEAR_CZNV;
62606: SET_ZFLG (((uae_s8)(src)) == 0);
62607: SET_NFLG (((uae_s8)(src)) < 0);
62608: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
62609: }}}}m68k_incpc(2);
62610: fill_prefetch_2 ();
62611: return 8;
62612: }
62613: unsigned long REGPARAM2 CPUFUNC(op_c020_5)(uae_u32 opcode) /* AND */
62614: {
62615: uae_u32 srcreg = (opcode & 7);
62616: uae_u32 dstreg = (opcode >> 9) & 7;
62617: OpcodeFamily = 2; CurrentInstrCycles = 10;
62618: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
62619: { uae_s8 src = get_byte(srca);
62620: m68k_areg (regs, srcreg) = srca;
62621: { uae_s8 dst = m68k_dreg(regs, dstreg);
62622: src &= dst;
62623: CLEAR_CZNV;
62624: SET_ZFLG (((uae_s8)(src)) == 0);
62625: SET_NFLG (((uae_s8)(src)) < 0);
62626: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
62627: }}}}m68k_incpc(2);
62628: fill_prefetch_2 ();
62629: return 10;
62630: }
62631: unsigned long REGPARAM2 CPUFUNC(op_c028_5)(uae_u32 opcode) /* AND */
62632: {
62633: uae_u32 srcreg = (opcode & 7);
62634: uae_u32 dstreg = (opcode >> 9) & 7;
62635: OpcodeFamily = 2; CurrentInstrCycles = 12;
62636: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
62637: { uae_s8 src = get_byte(srca);
62638: { uae_s8 dst = m68k_dreg(regs, dstreg);
62639: src &= dst;
62640: CLEAR_CZNV;
62641: SET_ZFLG (((uae_s8)(src)) == 0);
62642: SET_NFLG (((uae_s8)(src)) < 0);
62643: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
62644: }}}}m68k_incpc(4);
62645: fill_prefetch_0 ();
62646: return 12;
62647: }
62648: unsigned long REGPARAM2 CPUFUNC(op_c030_5)(uae_u32 opcode) /* AND */
62649: {
62650: uae_u32 srcreg = (opcode & 7);
62651: uae_u32 dstreg = (opcode >> 9) & 7;
62652: OpcodeFamily = 2; CurrentInstrCycles = 14;
62653: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
62654: BusCyclePenalty += 2;
62655: { uae_s8 src = get_byte(srca);
62656: { uae_s8 dst = m68k_dreg(regs, dstreg);
62657: src &= dst;
62658: CLEAR_CZNV;
62659: SET_ZFLG (((uae_s8)(src)) == 0);
62660: SET_NFLG (((uae_s8)(src)) < 0);
62661: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
62662: }}}}m68k_incpc(4);
62663: fill_prefetch_0 ();
62664: return 14;
62665: }
62666: unsigned long REGPARAM2 CPUFUNC(op_c038_5)(uae_u32 opcode) /* AND */
62667: {
62668: uae_u32 dstreg = (opcode >> 9) & 7;
62669: OpcodeFamily = 2; CurrentInstrCycles = 12;
62670: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
62671: { uae_s8 src = get_byte(srca);
62672: { uae_s8 dst = m68k_dreg(regs, dstreg);
62673: src &= dst;
62674: CLEAR_CZNV;
62675: SET_ZFLG (((uae_s8)(src)) == 0);
62676: SET_NFLG (((uae_s8)(src)) < 0);
62677: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
62678: }}}}m68k_incpc(4);
62679: fill_prefetch_0 ();
62680: return 12;
62681: }
62682: unsigned long REGPARAM2 CPUFUNC(op_c039_5)(uae_u32 opcode) /* AND */
62683: {
62684: uae_u32 dstreg = (opcode >> 9) & 7;
62685: OpcodeFamily = 2; CurrentInstrCycles = 16;
62686: {{ uaecptr srca = get_ilong_prefetch(2);
62687: { uae_s8 src = get_byte(srca);
62688: { uae_s8 dst = m68k_dreg(regs, dstreg);
62689: src &= dst;
62690: CLEAR_CZNV;
62691: SET_ZFLG (((uae_s8)(src)) == 0);
62692: SET_NFLG (((uae_s8)(src)) < 0);
62693: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
62694: }}}}m68k_incpc(6);
62695: fill_prefetch_0 ();
62696: return 16;
62697: }
62698: unsigned long REGPARAM2 CPUFUNC(op_c03a_5)(uae_u32 opcode) /* AND */
62699: {
62700: uae_u32 dstreg = (opcode >> 9) & 7;
62701: OpcodeFamily = 2; CurrentInstrCycles = 12;
62702: {{ uaecptr srca = m68k_getpc () + 2;
62703: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
62704: { uae_s8 src = get_byte(srca);
62705: { uae_s8 dst = m68k_dreg(regs, dstreg);
62706: src &= dst;
62707: CLEAR_CZNV;
62708: SET_ZFLG (((uae_s8)(src)) == 0);
62709: SET_NFLG (((uae_s8)(src)) < 0);
62710: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
62711: }}}}m68k_incpc(4);
62712: fill_prefetch_0 ();
62713: return 12;
62714: }
62715: unsigned long REGPARAM2 CPUFUNC(op_c03b_5)(uae_u32 opcode) /* AND */
62716: {
62717: uae_u32 dstreg = (opcode >> 9) & 7;
62718: OpcodeFamily = 2; CurrentInstrCycles = 14;
62719: {{ uaecptr tmppc = m68k_getpc() + 2;
62720: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
62721: BusCyclePenalty += 2;
62722: { uae_s8 src = get_byte(srca);
62723: { uae_s8 dst = m68k_dreg(regs, dstreg);
62724: src &= dst;
62725: CLEAR_CZNV;
62726: SET_ZFLG (((uae_s8)(src)) == 0);
62727: SET_NFLG (((uae_s8)(src)) < 0);
62728: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
62729: }}}}m68k_incpc(4);
62730: fill_prefetch_0 ();
62731: return 14;
62732: }
62733: unsigned long REGPARAM2 CPUFUNC(op_c03c_5)(uae_u32 opcode) /* AND */
62734: {
62735: uae_u32 dstreg = (opcode >> 9) & 7;
62736: OpcodeFamily = 2; CurrentInstrCycles = 8;
62737: {{ uae_s8 src = get_ibyte_prefetch(2);
62738: { uae_s8 dst = m68k_dreg(regs, dstreg);
62739: src &= dst;
62740: CLEAR_CZNV;
62741: SET_ZFLG (((uae_s8)(src)) == 0);
62742: SET_NFLG (((uae_s8)(src)) < 0);
62743: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((src) & 0xff);
62744: }}}m68k_incpc(4);
62745: fill_prefetch_0 ();
62746: return 8;
62747: }
62748: unsigned long REGPARAM2 CPUFUNC(op_c040_5)(uae_u32 opcode) /* AND */
62749: {
62750: uae_u32 srcreg = (opcode & 7);
62751: uae_u32 dstreg = (opcode >> 9) & 7;
62752: OpcodeFamily = 2; CurrentInstrCycles = 4;
62753: {{ uae_s16 src = m68k_dreg(regs, srcreg);
62754: { uae_s16 dst = m68k_dreg(regs, dstreg);
62755: src &= dst;
62756: CLEAR_CZNV;
62757: SET_ZFLG (((uae_s16)(src)) == 0);
62758: SET_NFLG (((uae_s16)(src)) < 0);
62759: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
62760: }}}m68k_incpc(2);
62761: fill_prefetch_2 ();
62762: return 4;
62763: }
62764: unsigned long REGPARAM2 CPUFUNC(op_c050_5)(uae_u32 opcode) /* AND */
62765: {
62766: uae_u32 srcreg = (opcode & 7);
62767: uae_u32 dstreg = (opcode >> 9) & 7;
62768: OpcodeFamily = 2; CurrentInstrCycles = 8;
62769: {{ uaecptr srca = m68k_areg(regs, srcreg);
62770: if ((srca & 1) != 0) {
62771: last_fault_for_exception_3 = srca;
62772: last_op_for_exception_3 = opcode;
62773: last_addr_for_exception_3 = m68k_getpc() + 2;
62774: Exception(3, 0, M68000_EXC_SRC_CPU);
62775: goto endlabel3476;
62776: }
62777: {{ uae_s16 src = get_word(srca);
62778: { uae_s16 dst = m68k_dreg(regs, dstreg);
62779: src &= dst;
62780: CLEAR_CZNV;
62781: SET_ZFLG (((uae_s16)(src)) == 0);
62782: SET_NFLG (((uae_s16)(src)) < 0);
62783: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
62784: }}}}}m68k_incpc(2);
62785: fill_prefetch_2 ();
62786: endlabel3476: ;
62787: return 8;
62788: }
62789: unsigned long REGPARAM2 CPUFUNC(op_c058_5)(uae_u32 opcode) /* AND */
62790: {
62791: uae_u32 srcreg = (opcode & 7);
62792: uae_u32 dstreg = (opcode >> 9) & 7;
62793: OpcodeFamily = 2; CurrentInstrCycles = 8;
62794: {{ uaecptr srca = m68k_areg(regs, srcreg);
62795: if ((srca & 1) != 0) {
62796: last_fault_for_exception_3 = srca;
62797: last_op_for_exception_3 = opcode;
62798: last_addr_for_exception_3 = m68k_getpc() + 2;
62799: Exception(3, 0, M68000_EXC_SRC_CPU);
62800: goto endlabel3477;
62801: }
62802: {{ uae_s16 src = get_word(srca);
62803: m68k_areg(regs, srcreg) += 2;
62804: { uae_s16 dst = m68k_dreg(regs, dstreg);
62805: src &= dst;
62806: CLEAR_CZNV;
62807: SET_ZFLG (((uae_s16)(src)) == 0);
62808: SET_NFLG (((uae_s16)(src)) < 0);
62809: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
62810: }}}}}m68k_incpc(2);
62811: fill_prefetch_2 ();
62812: endlabel3477: ;
62813: return 8;
62814: }
62815: unsigned long REGPARAM2 CPUFUNC(op_c060_5)(uae_u32 opcode) /* AND */
62816: {
62817: uae_u32 srcreg = (opcode & 7);
62818: uae_u32 dstreg = (opcode >> 9) & 7;
62819: OpcodeFamily = 2; CurrentInstrCycles = 10;
62820: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
62821: if ((srca & 1) != 0) {
62822: last_fault_for_exception_3 = srca;
62823: last_op_for_exception_3 = opcode;
62824: last_addr_for_exception_3 = m68k_getpc() + 2;
62825: Exception(3, 0, M68000_EXC_SRC_CPU);
62826: goto endlabel3478;
62827: }
62828: {{ uae_s16 src = get_word(srca);
62829: m68k_areg (regs, srcreg) = srca;
62830: { uae_s16 dst = m68k_dreg(regs, dstreg);
62831: src &= dst;
62832: CLEAR_CZNV;
62833: SET_ZFLG (((uae_s16)(src)) == 0);
62834: SET_NFLG (((uae_s16)(src)) < 0);
62835: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
62836: }}}}}m68k_incpc(2);
62837: fill_prefetch_2 ();
62838: endlabel3478: ;
62839: return 10;
62840: }
62841: unsigned long REGPARAM2 CPUFUNC(op_c068_5)(uae_u32 opcode) /* AND */
62842: {
62843: uae_u32 srcreg = (opcode & 7);
62844: uae_u32 dstreg = (opcode >> 9) & 7;
62845: OpcodeFamily = 2; CurrentInstrCycles = 12;
62846: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
62847: if ((srca & 1) != 0) {
62848: last_fault_for_exception_3 = srca;
62849: last_op_for_exception_3 = opcode;
62850: last_addr_for_exception_3 = m68k_getpc() + 4;
62851: Exception(3, 0, M68000_EXC_SRC_CPU);
62852: goto endlabel3479;
62853: }
62854: {{ uae_s16 src = get_word(srca);
62855: { uae_s16 dst = m68k_dreg(regs, dstreg);
62856: src &= dst;
62857: CLEAR_CZNV;
62858: SET_ZFLG (((uae_s16)(src)) == 0);
62859: SET_NFLG (((uae_s16)(src)) < 0);
62860: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
62861: }}}}}m68k_incpc(4);
62862: fill_prefetch_0 ();
62863: endlabel3479: ;
62864: return 12;
62865: }
62866: unsigned long REGPARAM2 CPUFUNC(op_c070_5)(uae_u32 opcode) /* AND */
62867: {
62868: uae_u32 srcreg = (opcode & 7);
62869: uae_u32 dstreg = (opcode >> 9) & 7;
62870: OpcodeFamily = 2; CurrentInstrCycles = 14;
62871: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
62872: BusCyclePenalty += 2;
62873: if ((srca & 1) != 0) {
62874: last_fault_for_exception_3 = srca;
62875: last_op_for_exception_3 = opcode;
62876: last_addr_for_exception_3 = m68k_getpc() + 4;
62877: Exception(3, 0, M68000_EXC_SRC_CPU);
62878: goto endlabel3480;
62879: }
62880: {{ uae_s16 src = get_word(srca);
62881: { uae_s16 dst = m68k_dreg(regs, dstreg);
62882: src &= dst;
62883: CLEAR_CZNV;
62884: SET_ZFLG (((uae_s16)(src)) == 0);
62885: SET_NFLG (((uae_s16)(src)) < 0);
62886: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
62887: }}}}}m68k_incpc(4);
62888: fill_prefetch_0 ();
62889: endlabel3480: ;
62890: return 14;
62891: }
62892: unsigned long REGPARAM2 CPUFUNC(op_c078_5)(uae_u32 opcode) /* AND */
62893: {
62894: uae_u32 dstreg = (opcode >> 9) & 7;
62895: OpcodeFamily = 2; CurrentInstrCycles = 12;
62896: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
62897: if ((srca & 1) != 0) {
62898: last_fault_for_exception_3 = srca;
62899: last_op_for_exception_3 = opcode;
62900: last_addr_for_exception_3 = m68k_getpc() + 4;
62901: Exception(3, 0, M68000_EXC_SRC_CPU);
62902: goto endlabel3481;
62903: }
62904: {{ uae_s16 src = get_word(srca);
62905: { uae_s16 dst = m68k_dreg(regs, dstreg);
62906: src &= dst;
62907: CLEAR_CZNV;
62908: SET_ZFLG (((uae_s16)(src)) == 0);
62909: SET_NFLG (((uae_s16)(src)) < 0);
62910: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
62911: }}}}}m68k_incpc(4);
62912: fill_prefetch_0 ();
62913: endlabel3481: ;
62914: return 12;
62915: }
62916: unsigned long REGPARAM2 CPUFUNC(op_c079_5)(uae_u32 opcode) /* AND */
62917: {
62918: uae_u32 dstreg = (opcode >> 9) & 7;
62919: OpcodeFamily = 2; CurrentInstrCycles = 16;
62920: {{ uaecptr srca = get_ilong_prefetch(2);
62921: if ((srca & 1) != 0) {
62922: last_fault_for_exception_3 = srca;
62923: last_op_for_exception_3 = opcode;
62924: last_addr_for_exception_3 = m68k_getpc() + 6;
62925: Exception(3, 0, M68000_EXC_SRC_CPU);
62926: goto endlabel3482;
62927: }
62928: {{ uae_s16 src = get_word(srca);
62929: { uae_s16 dst = m68k_dreg(regs, dstreg);
62930: src &= dst;
62931: CLEAR_CZNV;
62932: SET_ZFLG (((uae_s16)(src)) == 0);
62933: SET_NFLG (((uae_s16)(src)) < 0);
62934: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
62935: }}}}}m68k_incpc(6);
62936: fill_prefetch_0 ();
62937: endlabel3482: ;
62938: return 16;
62939: }
62940: unsigned long REGPARAM2 CPUFUNC(op_c07a_5)(uae_u32 opcode) /* AND */
62941: {
62942: uae_u32 dstreg = (opcode >> 9) & 7;
62943: OpcodeFamily = 2; CurrentInstrCycles = 12;
62944: {{ uaecptr srca = m68k_getpc () + 2;
62945: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
62946: if ((srca & 1) != 0) {
62947: last_fault_for_exception_3 = srca;
62948: last_op_for_exception_3 = opcode;
62949: last_addr_for_exception_3 = m68k_getpc() + 4;
62950: Exception(3, 0, M68000_EXC_SRC_CPU);
62951: goto endlabel3483;
62952: }
62953: {{ uae_s16 src = get_word(srca);
62954: { uae_s16 dst = m68k_dreg(regs, dstreg);
62955: src &= dst;
62956: CLEAR_CZNV;
62957: SET_ZFLG (((uae_s16)(src)) == 0);
62958: SET_NFLG (((uae_s16)(src)) < 0);
62959: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
62960: }}}}}m68k_incpc(4);
62961: fill_prefetch_0 ();
62962: endlabel3483: ;
62963: return 12;
62964: }
62965: unsigned long REGPARAM2 CPUFUNC(op_c07b_5)(uae_u32 opcode) /* AND */
62966: {
62967: uae_u32 dstreg = (opcode >> 9) & 7;
62968: OpcodeFamily = 2; CurrentInstrCycles = 14;
62969: {{ uaecptr tmppc = m68k_getpc() + 2;
62970: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
62971: BusCyclePenalty += 2;
62972: if ((srca & 1) != 0) {
62973: last_fault_for_exception_3 = srca;
62974: last_op_for_exception_3 = opcode;
62975: last_addr_for_exception_3 = m68k_getpc() + 4;
62976: Exception(3, 0, M68000_EXC_SRC_CPU);
62977: goto endlabel3484;
62978: }
62979: {{ uae_s16 src = get_word(srca);
62980: { uae_s16 dst = m68k_dreg(regs, dstreg);
62981: src &= dst;
62982: CLEAR_CZNV;
62983: SET_ZFLG (((uae_s16)(src)) == 0);
62984: SET_NFLG (((uae_s16)(src)) < 0);
62985: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
62986: }}}}}m68k_incpc(4);
62987: fill_prefetch_0 ();
62988: endlabel3484: ;
62989: return 14;
62990: }
62991: unsigned long REGPARAM2 CPUFUNC(op_c07c_5)(uae_u32 opcode) /* AND */
62992: {
62993: uae_u32 dstreg = (opcode >> 9) & 7;
62994: OpcodeFamily = 2; CurrentInstrCycles = 8;
62995: {{ uae_s16 src = get_iword_prefetch(2);
62996: { uae_s16 dst = m68k_dreg(regs, dstreg);
62997: src &= dst;
62998: CLEAR_CZNV;
62999: SET_ZFLG (((uae_s16)(src)) == 0);
63000: SET_NFLG (((uae_s16)(src)) < 0);
63001: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((src) & 0xffff);
63002: }}}m68k_incpc(4);
63003: fill_prefetch_0 ();
63004: return 8;
63005: }
63006: unsigned long REGPARAM2 CPUFUNC(op_c080_5)(uae_u32 opcode) /* AND */
63007: {
63008: uae_u32 srcreg = (opcode & 7);
63009: uae_u32 dstreg = (opcode >> 9) & 7;
63010: OpcodeFamily = 2; CurrentInstrCycles = 8;
63011: {{ uae_s32 src = m68k_dreg(regs, srcreg);
63012: { uae_s32 dst = m68k_dreg(regs, dstreg);
63013: src &= dst;
63014: CLEAR_CZNV;
63015: SET_ZFLG (((uae_s32)(src)) == 0);
63016: SET_NFLG (((uae_s32)(src)) < 0);
63017: m68k_dreg(regs, dstreg) = (src);
63018: }}}m68k_incpc(2);
63019: fill_prefetch_2 ();
63020: return 8;
63021: }
63022: unsigned long REGPARAM2 CPUFUNC(op_c090_5)(uae_u32 opcode) /* AND */
63023: {
63024: uae_u32 srcreg = (opcode & 7);
63025: uae_u32 dstreg = (opcode >> 9) & 7;
63026: OpcodeFamily = 2; CurrentInstrCycles = 14;
63027: {{ uaecptr srca = m68k_areg(regs, srcreg);
63028: if ((srca & 1) != 0) {
63029: last_fault_for_exception_3 = srca;
63030: last_op_for_exception_3 = opcode;
63031: last_addr_for_exception_3 = m68k_getpc() + 2;
63032: Exception(3, 0, M68000_EXC_SRC_CPU);
63033: goto endlabel3487;
63034: }
63035: {{ uae_s32 src = get_long(srca);
63036: { uae_s32 dst = m68k_dreg(regs, dstreg);
63037: src &= dst;
63038: CLEAR_CZNV;
63039: SET_ZFLG (((uae_s32)(src)) == 0);
63040: SET_NFLG (((uae_s32)(src)) < 0);
63041: m68k_dreg(regs, dstreg) = (src);
63042: }}}}}m68k_incpc(2);
63043: fill_prefetch_2 ();
63044: endlabel3487: ;
63045: return 14;
63046: }
63047: unsigned long REGPARAM2 CPUFUNC(op_c098_5)(uae_u32 opcode) /* AND */
63048: {
63049: uae_u32 srcreg = (opcode & 7);
63050: uae_u32 dstreg = (opcode >> 9) & 7;
63051: OpcodeFamily = 2; CurrentInstrCycles = 14;
63052: {{ uaecptr srca = m68k_areg(regs, srcreg);
63053: if ((srca & 1) != 0) {
63054: last_fault_for_exception_3 = srca;
63055: last_op_for_exception_3 = opcode;
63056: last_addr_for_exception_3 = m68k_getpc() + 2;
63057: Exception(3, 0, M68000_EXC_SRC_CPU);
63058: goto endlabel3488;
63059: }
63060: {{ uae_s32 src = get_long(srca);
63061: m68k_areg(regs, srcreg) += 4;
63062: { uae_s32 dst = m68k_dreg(regs, dstreg);
63063: src &= dst;
63064: CLEAR_CZNV;
63065: SET_ZFLG (((uae_s32)(src)) == 0);
63066: SET_NFLG (((uae_s32)(src)) < 0);
63067: m68k_dreg(regs, dstreg) = (src);
63068: }}}}}m68k_incpc(2);
63069: fill_prefetch_2 ();
63070: endlabel3488: ;
63071: return 14;
63072: }
63073: unsigned long REGPARAM2 CPUFUNC(op_c0a0_5)(uae_u32 opcode) /* AND */
63074: {
63075: uae_u32 srcreg = (opcode & 7);
63076: uae_u32 dstreg = (opcode >> 9) & 7;
63077: OpcodeFamily = 2; CurrentInstrCycles = 16;
63078: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
63079: if ((srca & 1) != 0) {
63080: last_fault_for_exception_3 = srca;
63081: last_op_for_exception_3 = opcode;
63082: last_addr_for_exception_3 = m68k_getpc() + 2;
63083: Exception(3, 0, M68000_EXC_SRC_CPU);
63084: goto endlabel3489;
63085: }
63086: {{ uae_s32 src = get_long(srca);
63087: m68k_areg (regs, srcreg) = srca;
63088: { uae_s32 dst = m68k_dreg(regs, dstreg);
63089: src &= dst;
63090: CLEAR_CZNV;
63091: SET_ZFLG (((uae_s32)(src)) == 0);
63092: SET_NFLG (((uae_s32)(src)) < 0);
63093: m68k_dreg(regs, dstreg) = (src);
63094: }}}}}m68k_incpc(2);
63095: fill_prefetch_2 ();
63096: endlabel3489: ;
63097: return 16;
63098: }
63099: unsigned long REGPARAM2 CPUFUNC(op_c0a8_5)(uae_u32 opcode) /* AND */
63100: {
63101: uae_u32 srcreg = (opcode & 7);
63102: uae_u32 dstreg = (opcode >> 9) & 7;
63103: OpcodeFamily = 2; CurrentInstrCycles = 18;
63104: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
63105: if ((srca & 1) != 0) {
63106: last_fault_for_exception_3 = srca;
63107: last_op_for_exception_3 = opcode;
63108: last_addr_for_exception_3 = m68k_getpc() + 4;
63109: Exception(3, 0, M68000_EXC_SRC_CPU);
63110: goto endlabel3490;
63111: }
63112: {{ uae_s32 src = get_long(srca);
63113: { uae_s32 dst = m68k_dreg(regs, dstreg);
63114: src &= dst;
63115: CLEAR_CZNV;
63116: SET_ZFLG (((uae_s32)(src)) == 0);
63117: SET_NFLG (((uae_s32)(src)) < 0);
63118: m68k_dreg(regs, dstreg) = (src);
63119: }}}}}m68k_incpc(4);
63120: fill_prefetch_0 ();
63121: endlabel3490: ;
63122: return 18;
63123: }
63124: unsigned long REGPARAM2 CPUFUNC(op_c0b0_5)(uae_u32 opcode) /* AND */
63125: {
63126: uae_u32 srcreg = (opcode & 7);
63127: uae_u32 dstreg = (opcode >> 9) & 7;
63128: OpcodeFamily = 2; CurrentInstrCycles = 20;
63129: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
63130: BusCyclePenalty += 2;
63131: if ((srca & 1) != 0) {
63132: last_fault_for_exception_3 = srca;
63133: last_op_for_exception_3 = opcode;
63134: last_addr_for_exception_3 = m68k_getpc() + 4;
63135: Exception(3, 0, M68000_EXC_SRC_CPU);
63136: goto endlabel3491;
63137: }
63138: {{ uae_s32 src = get_long(srca);
63139: { uae_s32 dst = m68k_dreg(regs, dstreg);
63140: src &= dst;
63141: CLEAR_CZNV;
63142: SET_ZFLG (((uae_s32)(src)) == 0);
63143: SET_NFLG (((uae_s32)(src)) < 0);
63144: m68k_dreg(regs, dstreg) = (src);
63145: }}}}}m68k_incpc(4);
63146: fill_prefetch_0 ();
63147: endlabel3491: ;
63148: return 20;
63149: }
63150: unsigned long REGPARAM2 CPUFUNC(op_c0b8_5)(uae_u32 opcode) /* AND */
63151: {
63152: uae_u32 dstreg = (opcode >> 9) & 7;
63153: OpcodeFamily = 2; CurrentInstrCycles = 18;
63154: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
63155: if ((srca & 1) != 0) {
63156: last_fault_for_exception_3 = srca;
63157: last_op_for_exception_3 = opcode;
63158: last_addr_for_exception_3 = m68k_getpc() + 4;
63159: Exception(3, 0, M68000_EXC_SRC_CPU);
63160: goto endlabel3492;
63161: }
63162: {{ uae_s32 src = get_long(srca);
63163: { uae_s32 dst = m68k_dreg(regs, dstreg);
63164: src &= dst;
63165: CLEAR_CZNV;
63166: SET_ZFLG (((uae_s32)(src)) == 0);
63167: SET_NFLG (((uae_s32)(src)) < 0);
63168: m68k_dreg(regs, dstreg) = (src);
63169: }}}}}m68k_incpc(4);
63170: fill_prefetch_0 ();
63171: endlabel3492: ;
63172: return 18;
63173: }
63174: unsigned long REGPARAM2 CPUFUNC(op_c0b9_5)(uae_u32 opcode) /* AND */
63175: {
63176: uae_u32 dstreg = (opcode >> 9) & 7;
63177: OpcodeFamily = 2; CurrentInstrCycles = 22;
63178: {{ uaecptr srca = get_ilong_prefetch(2);
63179: if ((srca & 1) != 0) {
63180: last_fault_for_exception_3 = srca;
63181: last_op_for_exception_3 = opcode;
63182: last_addr_for_exception_3 = m68k_getpc() + 6;
63183: Exception(3, 0, M68000_EXC_SRC_CPU);
63184: goto endlabel3493;
63185: }
63186: {{ uae_s32 src = get_long(srca);
63187: { uae_s32 dst = m68k_dreg(regs, dstreg);
63188: src &= dst;
63189: CLEAR_CZNV;
63190: SET_ZFLG (((uae_s32)(src)) == 0);
63191: SET_NFLG (((uae_s32)(src)) < 0);
63192: m68k_dreg(regs, dstreg) = (src);
63193: }}}}}m68k_incpc(6);
63194: fill_prefetch_0 ();
63195: endlabel3493: ;
63196: return 22;
63197: }
63198: unsigned long REGPARAM2 CPUFUNC(op_c0ba_5)(uae_u32 opcode) /* AND */
63199: {
63200: uae_u32 dstreg = (opcode >> 9) & 7;
63201: OpcodeFamily = 2; CurrentInstrCycles = 18;
63202: {{ uaecptr srca = m68k_getpc () + 2;
63203: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
63204: if ((srca & 1) != 0) {
63205: last_fault_for_exception_3 = srca;
63206: last_op_for_exception_3 = opcode;
63207: last_addr_for_exception_3 = m68k_getpc() + 4;
63208: Exception(3, 0, M68000_EXC_SRC_CPU);
63209: goto endlabel3494;
63210: }
63211: {{ uae_s32 src = get_long(srca);
63212: { uae_s32 dst = m68k_dreg(regs, dstreg);
63213: src &= dst;
63214: CLEAR_CZNV;
63215: SET_ZFLG (((uae_s32)(src)) == 0);
63216: SET_NFLG (((uae_s32)(src)) < 0);
63217: m68k_dreg(regs, dstreg) = (src);
63218: }}}}}m68k_incpc(4);
63219: fill_prefetch_0 ();
63220: endlabel3494: ;
63221: return 18;
63222: }
63223: unsigned long REGPARAM2 CPUFUNC(op_c0bb_5)(uae_u32 opcode) /* AND */
63224: {
63225: uae_u32 dstreg = (opcode >> 9) & 7;
63226: OpcodeFamily = 2; CurrentInstrCycles = 20;
63227: {{ uaecptr tmppc = m68k_getpc() + 2;
63228: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
63229: BusCyclePenalty += 2;
63230: if ((srca & 1) != 0) {
63231: last_fault_for_exception_3 = srca;
63232: last_op_for_exception_3 = opcode;
63233: last_addr_for_exception_3 = m68k_getpc() + 4;
63234: Exception(3, 0, M68000_EXC_SRC_CPU);
63235: goto endlabel3495;
63236: }
63237: {{ uae_s32 src = get_long(srca);
63238: { uae_s32 dst = m68k_dreg(regs, dstreg);
63239: src &= dst;
63240: CLEAR_CZNV;
63241: SET_ZFLG (((uae_s32)(src)) == 0);
63242: SET_NFLG (((uae_s32)(src)) < 0);
63243: m68k_dreg(regs, dstreg) = (src);
63244: }}}}}m68k_incpc(4);
63245: fill_prefetch_0 ();
63246: endlabel3495: ;
63247: return 20;
63248: }
63249: unsigned long REGPARAM2 CPUFUNC(op_c0bc_5)(uae_u32 opcode) /* AND */
63250: {
63251: uae_u32 dstreg = (opcode >> 9) & 7;
63252: OpcodeFamily = 2; CurrentInstrCycles = 16;
63253: {{ uae_s32 src = get_ilong_prefetch(2);
63254: { uae_s32 dst = m68k_dreg(regs, dstreg);
63255: src &= dst;
63256: CLEAR_CZNV;
63257: SET_ZFLG (((uae_s32)(src)) == 0);
63258: SET_NFLG (((uae_s32)(src)) < 0);
63259: m68k_dreg(regs, dstreg) = (src);
63260: }}}m68k_incpc(6);
63261: fill_prefetch_0 ();
63262: return 16;
63263: }
63264: unsigned long REGPARAM2 CPUFUNC(op_c0c0_5)(uae_u32 opcode) /* MULU */
63265: {
63266: uae_u32 srcreg = (opcode & 7);
63267: uae_u32 dstreg = (opcode >> 9) & 7;
63268: unsigned int retcycles = 0;
63269: OpcodeFamily = 62; CurrentInstrCycles = 38;
63270: {{ uae_s16 src = m68k_dreg(regs, srcreg);
63271: { uae_s16 dst = m68k_dreg(regs, dstreg);
63272: { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
63273: CLEAR_CZNV;
63274: SET_ZFLG (((uae_s32)(newv)) == 0);
63275: SET_NFLG (((uae_s32)(newv)) < 0);
63276: m68k_dreg(regs, dstreg) = (newv);
63277: while (src) { if (src & 1) retcycles++; src = (uae_u16)src >> 1; }
63278: }}}}m68k_incpc(2);
63279: fill_prefetch_2 ();
63280: return (38+retcycles*2);
63281: }
63282: unsigned long REGPARAM2 CPUFUNC(op_c0d0_5)(uae_u32 opcode) /* MULU */
63283: {
63284: uae_u32 srcreg = (opcode & 7);
63285: uae_u32 dstreg = (opcode >> 9) & 7;
63286: unsigned int retcycles = 0;
63287: OpcodeFamily = 62; CurrentInstrCycles = 42;
63288: {{ uaecptr srca = m68k_areg(regs, srcreg);
63289: if ((srca & 1) != 0) {
63290: last_fault_for_exception_3 = srca;
63291: last_op_for_exception_3 = opcode;
63292: last_addr_for_exception_3 = m68k_getpc() + 2;
63293: Exception(3, 0, M68000_EXC_SRC_CPU);
63294: goto endlabel3498;
63295: }
63296: {{ uae_s16 src = get_word(srca);
63297: { uae_s16 dst = m68k_dreg(regs, dstreg);
63298: { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
63299: CLEAR_CZNV;
63300: SET_ZFLG (((uae_s32)(newv)) == 0);
63301: SET_NFLG (((uae_s32)(newv)) < 0);
63302: m68k_dreg(regs, dstreg) = (newv);
63303: while (src) { if (src & 1) retcycles++; src = (uae_u16)src >> 1; }
63304: }}}}}}m68k_incpc(2);
63305: fill_prefetch_2 ();
63306: endlabel3498: ;
63307: return (42+retcycles*2);
63308: }
63309: unsigned long REGPARAM2 CPUFUNC(op_c0d8_5)(uae_u32 opcode) /* MULU */
63310: {
63311: uae_u32 srcreg = (opcode & 7);
63312: uae_u32 dstreg = (opcode >> 9) & 7;
63313: unsigned int retcycles = 0;
63314: OpcodeFamily = 62; CurrentInstrCycles = 42;
63315: {{ uaecptr srca = m68k_areg(regs, srcreg);
63316: if ((srca & 1) != 0) {
63317: last_fault_for_exception_3 = srca;
63318: last_op_for_exception_3 = opcode;
63319: last_addr_for_exception_3 = m68k_getpc() + 2;
63320: Exception(3, 0, M68000_EXC_SRC_CPU);
63321: goto endlabel3499;
63322: }
63323: {{ uae_s16 src = get_word(srca);
63324: m68k_areg(regs, srcreg) += 2;
63325: { uae_s16 dst = m68k_dreg(regs, dstreg);
63326: { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
63327: CLEAR_CZNV;
63328: SET_ZFLG (((uae_s32)(newv)) == 0);
63329: SET_NFLG (((uae_s32)(newv)) < 0);
63330: m68k_dreg(regs, dstreg) = (newv);
63331: while (src) { if (src & 1) retcycles++; src = (uae_u16)src >> 1; }
63332: }}}}}}m68k_incpc(2);
63333: fill_prefetch_2 ();
63334: endlabel3499: ;
63335: return (42+retcycles*2);
63336: }
63337: unsigned long REGPARAM2 CPUFUNC(op_c0e0_5)(uae_u32 opcode) /* MULU */
63338: {
63339: uae_u32 srcreg = (opcode & 7);
63340: uae_u32 dstreg = (opcode >> 9) & 7;
63341: unsigned int retcycles = 0;
63342: OpcodeFamily = 62; CurrentInstrCycles = 44;
63343: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
63344: if ((srca & 1) != 0) {
63345: last_fault_for_exception_3 = srca;
63346: last_op_for_exception_3 = opcode;
63347: last_addr_for_exception_3 = m68k_getpc() + 2;
63348: Exception(3, 0, M68000_EXC_SRC_CPU);
63349: goto endlabel3500;
63350: }
63351: {{ uae_s16 src = get_word(srca);
63352: m68k_areg (regs, srcreg) = srca;
63353: { uae_s16 dst = m68k_dreg(regs, dstreg);
63354: { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
63355: CLEAR_CZNV;
63356: SET_ZFLG (((uae_s32)(newv)) == 0);
63357: SET_NFLG (((uae_s32)(newv)) < 0);
63358: m68k_dreg(regs, dstreg) = (newv);
63359: while (src) { if (src & 1) retcycles++; src = (uae_u16)src >> 1; }
63360: }}}}}}m68k_incpc(2);
63361: fill_prefetch_2 ();
63362: endlabel3500: ;
63363: return (44+retcycles*2);
63364: }
63365: unsigned long REGPARAM2 CPUFUNC(op_c0e8_5)(uae_u32 opcode) /* MULU */
63366: {
63367: uae_u32 srcreg = (opcode & 7);
63368: uae_u32 dstreg = (opcode >> 9) & 7;
63369: unsigned int retcycles = 0;
63370: OpcodeFamily = 62; CurrentInstrCycles = 46;
63371: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
63372: if ((srca & 1) != 0) {
63373: last_fault_for_exception_3 = srca;
63374: last_op_for_exception_3 = opcode;
63375: last_addr_for_exception_3 = m68k_getpc() + 4;
63376: Exception(3, 0, M68000_EXC_SRC_CPU);
63377: goto endlabel3501;
63378: }
63379: {{ uae_s16 src = get_word(srca);
63380: { uae_s16 dst = m68k_dreg(regs, dstreg);
63381: { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
63382: CLEAR_CZNV;
63383: SET_ZFLG (((uae_s32)(newv)) == 0);
63384: SET_NFLG (((uae_s32)(newv)) < 0);
63385: m68k_dreg(regs, dstreg) = (newv);
63386: while (src) { if (src & 1) retcycles++; src = (uae_u16)src >> 1; }
63387: }}}}}}m68k_incpc(4);
63388: fill_prefetch_0 ();
63389: endlabel3501: ;
63390: return (46+retcycles*2);
63391: }
63392: unsigned long REGPARAM2 CPUFUNC(op_c0f0_5)(uae_u32 opcode) /* MULU */
63393: {
63394: uae_u32 srcreg = (opcode & 7);
63395: uae_u32 dstreg = (opcode >> 9) & 7;
63396: unsigned int retcycles = 0;
63397: OpcodeFamily = 62; CurrentInstrCycles = 48;
63398: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
63399: BusCyclePenalty += 2;
63400: if ((srca & 1) != 0) {
63401: last_fault_for_exception_3 = srca;
63402: last_op_for_exception_3 = opcode;
63403: last_addr_for_exception_3 = m68k_getpc() + 4;
63404: Exception(3, 0, M68000_EXC_SRC_CPU);
63405: goto endlabel3502;
63406: }
63407: {{ uae_s16 src = get_word(srca);
63408: { uae_s16 dst = m68k_dreg(regs, dstreg);
63409: { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
63410: CLEAR_CZNV;
63411: SET_ZFLG (((uae_s32)(newv)) == 0);
63412: SET_NFLG (((uae_s32)(newv)) < 0);
63413: m68k_dreg(regs, dstreg) = (newv);
63414: while (src) { if (src & 1) retcycles++; src = (uae_u16)src >> 1; }
63415: }}}}}}m68k_incpc(4);
63416: fill_prefetch_0 ();
63417: endlabel3502: ;
63418: return (48+retcycles*2);
63419: }
63420: unsigned long REGPARAM2 CPUFUNC(op_c0f8_5)(uae_u32 opcode) /* MULU */
63421: {
63422: uae_u32 dstreg = (opcode >> 9) & 7;
63423: unsigned int retcycles = 0;
63424: OpcodeFamily = 62; CurrentInstrCycles = 46;
63425: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
63426: if ((srca & 1) != 0) {
63427: last_fault_for_exception_3 = srca;
63428: last_op_for_exception_3 = opcode;
63429: last_addr_for_exception_3 = m68k_getpc() + 4;
63430: Exception(3, 0, M68000_EXC_SRC_CPU);
63431: goto endlabel3503;
63432: }
63433: {{ uae_s16 src = get_word(srca);
63434: { uae_s16 dst = m68k_dreg(regs, dstreg);
63435: { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
63436: CLEAR_CZNV;
63437: SET_ZFLG (((uae_s32)(newv)) == 0);
63438: SET_NFLG (((uae_s32)(newv)) < 0);
63439: m68k_dreg(regs, dstreg) = (newv);
63440: while (src) { if (src & 1) retcycles++; src = (uae_u16)src >> 1; }
63441: }}}}}}m68k_incpc(4);
63442: fill_prefetch_0 ();
63443: endlabel3503: ;
63444: return (46+retcycles*2);
63445: }
63446: unsigned long REGPARAM2 CPUFUNC(op_c0f9_5)(uae_u32 opcode) /* MULU */
63447: {
63448: uae_u32 dstreg = (opcode >> 9) & 7;
63449: unsigned int retcycles = 0;
63450: OpcodeFamily = 62; CurrentInstrCycles = 50;
63451: {{ uaecptr srca = get_ilong_prefetch(2);
63452: if ((srca & 1) != 0) {
63453: last_fault_for_exception_3 = srca;
63454: last_op_for_exception_3 = opcode;
63455: last_addr_for_exception_3 = m68k_getpc() + 6;
63456: Exception(3, 0, M68000_EXC_SRC_CPU);
63457: goto endlabel3504;
63458: }
63459: {{ uae_s16 src = get_word(srca);
63460: { uae_s16 dst = m68k_dreg(regs, dstreg);
63461: { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
63462: CLEAR_CZNV;
63463: SET_ZFLG (((uae_s32)(newv)) == 0);
63464: SET_NFLG (((uae_s32)(newv)) < 0);
63465: m68k_dreg(regs, dstreg) = (newv);
63466: while (src) { if (src & 1) retcycles++; src = (uae_u16)src >> 1; }
63467: }}}}}}m68k_incpc(6);
63468: fill_prefetch_0 ();
63469: endlabel3504: ;
63470: return (50+retcycles*2);
63471: }
63472: unsigned long REGPARAM2 CPUFUNC(op_c0fa_5)(uae_u32 opcode) /* MULU */
63473: {
63474: uae_u32 dstreg = (opcode >> 9) & 7;
63475: unsigned int retcycles = 0;
63476: OpcodeFamily = 62; CurrentInstrCycles = 46;
63477: {{ uaecptr srca = m68k_getpc () + 2;
63478: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
63479: if ((srca & 1) != 0) {
63480: last_fault_for_exception_3 = srca;
63481: last_op_for_exception_3 = opcode;
63482: last_addr_for_exception_3 = m68k_getpc() + 4;
63483: Exception(3, 0, M68000_EXC_SRC_CPU);
63484: goto endlabel3505;
63485: }
63486: {{ uae_s16 src = get_word(srca);
63487: { uae_s16 dst = m68k_dreg(regs, dstreg);
63488: { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
63489: CLEAR_CZNV;
63490: SET_ZFLG (((uae_s32)(newv)) == 0);
63491: SET_NFLG (((uae_s32)(newv)) < 0);
63492: m68k_dreg(regs, dstreg) = (newv);
63493: while (src) { if (src & 1) retcycles++; src = (uae_u16)src >> 1; }
63494: }}}}}}m68k_incpc(4);
63495: fill_prefetch_0 ();
63496: endlabel3505: ;
63497: return (46+retcycles*2);
63498: }
63499: unsigned long REGPARAM2 CPUFUNC(op_c0fb_5)(uae_u32 opcode) /* MULU */
63500: {
63501: uae_u32 dstreg = (opcode >> 9) & 7;
63502: unsigned int retcycles = 0;
63503: OpcodeFamily = 62; CurrentInstrCycles = 48;
63504: {{ uaecptr tmppc = m68k_getpc() + 2;
63505: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
63506: BusCyclePenalty += 2;
63507: if ((srca & 1) != 0) {
63508: last_fault_for_exception_3 = srca;
63509: last_op_for_exception_3 = opcode;
63510: last_addr_for_exception_3 = m68k_getpc() + 4;
63511: Exception(3, 0, M68000_EXC_SRC_CPU);
63512: goto endlabel3506;
63513: }
63514: {{ uae_s16 src = get_word(srca);
63515: { uae_s16 dst = m68k_dreg(regs, dstreg);
63516: { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
63517: CLEAR_CZNV;
63518: SET_ZFLG (((uae_s32)(newv)) == 0);
63519: SET_NFLG (((uae_s32)(newv)) < 0);
63520: m68k_dreg(regs, dstreg) = (newv);
63521: while (src) { if (src & 1) retcycles++; src = (uae_u16)src >> 1; }
63522: }}}}}}m68k_incpc(4);
63523: fill_prefetch_0 ();
63524: endlabel3506: ;
63525: return (48+retcycles*2);
63526: }
63527: unsigned long REGPARAM2 CPUFUNC(op_c0fc_5)(uae_u32 opcode) /* MULU */
63528: {
63529: uae_u32 dstreg = (opcode >> 9) & 7;
63530: unsigned int retcycles = 0;
63531: OpcodeFamily = 62; CurrentInstrCycles = 42;
63532: {{ uae_s16 src = get_iword_prefetch(2);
63533: { uae_s16 dst = m68k_dreg(regs, dstreg);
63534: { uae_u32 newv = (uae_u32)(uae_u16)dst * (uae_u32)(uae_u16)src;
63535: CLEAR_CZNV;
63536: SET_ZFLG (((uae_s32)(newv)) == 0);
63537: SET_NFLG (((uae_s32)(newv)) < 0);
63538: m68k_dreg(regs, dstreg) = (newv);
63539: while (src) { if (src & 1) retcycles++; src = (uae_u16)src >> 1; }
63540: }}}}m68k_incpc(4);
63541: fill_prefetch_0 ();
63542: return (42+retcycles*2);
63543: }
63544: unsigned long REGPARAM2 CPUFUNC(op_c100_5)(uae_u32 opcode) /* ABCD */
63545: {
63546: uae_u32 srcreg = (opcode & 7);
63547: uae_u32 dstreg = (opcode >> 9) & 7;
63548: OpcodeFamily = 14; CurrentInstrCycles = 6;
63549: {{ uae_s8 src = m68k_dreg(regs, srcreg);
63550: { uae_s8 dst = m68k_dreg(regs, dstreg);
63551: { uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG ? 1 : 0);
63552: uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0);
63553: uae_u16 newv, tmp_newv;
63554: int cflg;
63555: newv = tmp_newv = newv_hi + newv_lo; if (newv_lo > 9) { newv += 6; }
63556: cflg = (newv & 0x3F0) > 0x90;
63557: if (cflg) newv += 0x60;
63558: SET_CFLG (cflg);
63559: COPY_CARRY;
63560: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
63561: SET_NFLG (((uae_s8)(newv)) < 0);
63562: SET_VFLG ((tmp_newv & 0x80) == 0 && (newv & 0x80) != 0);
63563: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
63564: }}}}m68k_incpc(2);
63565: fill_prefetch_2 ();
63566: return 6;
63567: }
63568: unsigned long REGPARAM2 CPUFUNC(op_c108_5)(uae_u32 opcode) /* ABCD */
63569: {
63570: uae_u32 srcreg = (opcode & 7);
63571: uae_u32 dstreg = (opcode >> 9) & 7;
63572: OpcodeFamily = 14; CurrentInstrCycles = 18;
63573: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
63574: { uae_s8 src = get_byte(srca);
63575: m68k_areg (regs, srcreg) = srca;
63576: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
63577: { uae_s8 dst = get_byte(dsta);
63578: m68k_areg (regs, dstreg) = dsta;
63579: { uae_u16 newv_lo = (src & 0xF) + (dst & 0xF) + (GET_XFLG ? 1 : 0);
63580: uae_u16 newv_hi = (src & 0xF0) + (dst & 0xF0);
63581: uae_u16 newv, tmp_newv;
63582: int cflg;
63583: newv = tmp_newv = newv_hi + newv_lo; if (newv_lo > 9) { newv += 6; }
63584: cflg = (newv & 0x3F0) > 0x90;
63585: if (cflg) newv += 0x60;
63586: SET_CFLG (cflg);
63587: COPY_CARRY;
63588: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
63589: SET_NFLG (((uae_s8)(newv)) < 0);
63590: SET_VFLG ((tmp_newv & 0x80) == 0 && (newv & 0x80) != 0);
63591: m68k_incpc(2);
63592: fill_prefetch_2 ();
63593: put_byte(dsta,newv);
63594: }}}}}}return 18;
63595: }
63596: unsigned long REGPARAM2 CPUFUNC(op_c110_5)(uae_u32 opcode) /* AND */
63597: {
63598: uae_u32 srcreg = ((opcode >> 9) & 7);
63599: uae_u32 dstreg = opcode & 7;
63600: OpcodeFamily = 2; CurrentInstrCycles = 12;
63601: {{ uae_s8 src = m68k_dreg(regs, srcreg);
63602: { uaecptr dsta = m68k_areg(regs, dstreg);
63603: { uae_s8 dst = get_byte(dsta);
63604: src &= dst;
63605: CLEAR_CZNV;
63606: SET_ZFLG (((uae_s8)(src)) == 0);
63607: SET_NFLG (((uae_s8)(src)) < 0);
63608: m68k_incpc(2);
63609: fill_prefetch_2 ();
63610: put_byte(dsta,src);
63611: }}}}return 12;
63612: }
63613: unsigned long REGPARAM2 CPUFUNC(op_c118_5)(uae_u32 opcode) /* AND */
63614: {
63615: uae_u32 srcreg = ((opcode >> 9) & 7);
63616: uae_u32 dstreg = opcode & 7;
63617: OpcodeFamily = 2; CurrentInstrCycles = 12;
63618: {{ uae_s8 src = m68k_dreg(regs, srcreg);
63619: { uaecptr dsta = m68k_areg(regs, dstreg);
63620: { uae_s8 dst = get_byte(dsta);
63621: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
63622: src &= dst;
63623: CLEAR_CZNV;
63624: SET_ZFLG (((uae_s8)(src)) == 0);
63625: SET_NFLG (((uae_s8)(src)) < 0);
63626: m68k_incpc(2);
63627: fill_prefetch_2 ();
63628: put_byte(dsta,src);
63629: }}}}return 12;
63630: }
63631: unsigned long REGPARAM2 CPUFUNC(op_c120_5)(uae_u32 opcode) /* AND */
63632: {
63633: uae_u32 srcreg = ((opcode >> 9) & 7);
63634: uae_u32 dstreg = opcode & 7;
63635: OpcodeFamily = 2; CurrentInstrCycles = 14;
63636: {{ uae_s8 src = m68k_dreg(regs, srcreg);
63637: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
63638: { uae_s8 dst = get_byte(dsta);
63639: m68k_areg (regs, dstreg) = dsta;
63640: src &= dst;
63641: CLEAR_CZNV;
63642: SET_ZFLG (((uae_s8)(src)) == 0);
63643: SET_NFLG (((uae_s8)(src)) < 0);
63644: m68k_incpc(2);
63645: fill_prefetch_2 ();
63646: put_byte(dsta,src);
63647: }}}}return 14;
63648: }
63649: unsigned long REGPARAM2 CPUFUNC(op_c128_5)(uae_u32 opcode) /* AND */
63650: {
63651: uae_u32 srcreg = ((opcode >> 9) & 7);
63652: uae_u32 dstreg = opcode & 7;
63653: OpcodeFamily = 2; CurrentInstrCycles = 16;
63654: {{ uae_s8 src = m68k_dreg(regs, srcreg);
63655: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
63656: { uae_s8 dst = get_byte(dsta);
63657: src &= dst;
63658: CLEAR_CZNV;
63659: SET_ZFLG (((uae_s8)(src)) == 0);
63660: SET_NFLG (((uae_s8)(src)) < 0);
63661: m68k_incpc(4);
63662: fill_prefetch_0 ();
63663: put_byte(dsta,src);
63664: }}}}return 16;
63665: }
63666: unsigned long REGPARAM2 CPUFUNC(op_c130_5)(uae_u32 opcode) /* AND */
63667: {
63668: uae_u32 srcreg = ((opcode >> 9) & 7);
63669: uae_u32 dstreg = opcode & 7;
63670: OpcodeFamily = 2; CurrentInstrCycles = 18;
63671: {{ uae_s8 src = m68k_dreg(regs, srcreg);
63672: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
63673: BusCyclePenalty += 2;
63674: { uae_s8 dst = get_byte(dsta);
63675: src &= dst;
63676: CLEAR_CZNV;
63677: SET_ZFLG (((uae_s8)(src)) == 0);
63678: SET_NFLG (((uae_s8)(src)) < 0);
63679: m68k_incpc(4);
63680: fill_prefetch_0 ();
63681: put_byte(dsta,src);
63682: }}}}return 18;
63683: }
63684: unsigned long REGPARAM2 CPUFUNC(op_c138_5)(uae_u32 opcode) /* AND */
63685: {
63686: uae_u32 srcreg = ((opcode >> 9) & 7);
63687: OpcodeFamily = 2; CurrentInstrCycles = 16;
63688: {{ uae_s8 src = m68k_dreg(regs, srcreg);
63689: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
63690: { uae_s8 dst = get_byte(dsta);
63691: src &= dst;
63692: CLEAR_CZNV;
63693: SET_ZFLG (((uae_s8)(src)) == 0);
63694: SET_NFLG (((uae_s8)(src)) < 0);
63695: m68k_incpc(4);
63696: fill_prefetch_0 ();
63697: put_byte(dsta,src);
63698: }}}}return 16;
63699: }
63700: unsigned long REGPARAM2 CPUFUNC(op_c139_5)(uae_u32 opcode) /* AND */
63701: {
63702: uae_u32 srcreg = ((opcode >> 9) & 7);
63703: OpcodeFamily = 2; CurrentInstrCycles = 20;
63704: {{ uae_s8 src = m68k_dreg(regs, srcreg);
63705: { uaecptr dsta = get_ilong_prefetch(2);
63706: { uae_s8 dst = get_byte(dsta);
63707: src &= dst;
63708: CLEAR_CZNV;
63709: SET_ZFLG (((uae_s8)(src)) == 0);
63710: SET_NFLG (((uae_s8)(src)) < 0);
63711: m68k_incpc(6);
63712: fill_prefetch_0 ();
63713: put_byte(dsta,src);
63714: }}}}return 20;
63715: }
63716: unsigned long REGPARAM2 CPUFUNC(op_c140_5)(uae_u32 opcode) /* EXG */
63717: {
63718: uae_u32 srcreg = ((opcode >> 9) & 7);
63719: uae_u32 dstreg = opcode & 7;
63720: OpcodeFamily = 35; CurrentInstrCycles = 6;
63721: {{ uae_s32 src = m68k_dreg(regs, srcreg);
63722: { uae_s32 dst = m68k_dreg(regs, dstreg);
63723: m68k_dreg(regs, srcreg) = (dst);
63724: m68k_dreg(regs, dstreg) = (src);
63725: }}}m68k_incpc(2);
63726: fill_prefetch_2 ();
63727: return 6;
63728: }
63729: unsigned long REGPARAM2 CPUFUNC(op_c148_5)(uae_u32 opcode) /* EXG */
63730: {
63731: uae_u32 srcreg = ((opcode >> 9) & 7);
63732: uae_u32 dstreg = opcode & 7;
63733: OpcodeFamily = 35; CurrentInstrCycles = 6;
63734: {{ uae_s32 src = m68k_areg(regs, srcreg);
63735: { uae_s32 dst = m68k_areg(regs, dstreg);
63736: m68k_areg(regs, srcreg) = (dst);
63737: m68k_areg(regs, dstreg) = (src);
63738: }}}m68k_incpc(2);
63739: fill_prefetch_2 ();
63740: return 6;
63741: }
63742: unsigned long REGPARAM2 CPUFUNC(op_c150_5)(uae_u32 opcode) /* AND */
63743: {
63744: uae_u32 srcreg = ((opcode >> 9) & 7);
63745: uae_u32 dstreg = opcode & 7;
63746: OpcodeFamily = 2; CurrentInstrCycles = 12;
63747: {{ uae_s16 src = m68k_dreg(regs, srcreg);
63748: { uaecptr dsta = m68k_areg(regs, dstreg);
63749: if ((dsta & 1) != 0) {
63750: last_fault_for_exception_3 = dsta;
63751: last_op_for_exception_3 = opcode;
63752: last_addr_for_exception_3 = m68k_getpc() + 2;
63753: Exception(3, 0, M68000_EXC_SRC_CPU);
63754: goto endlabel3519;
63755: }
63756: {{ uae_s16 dst = get_word(dsta);
63757: src &= dst;
63758: CLEAR_CZNV;
63759: SET_ZFLG (((uae_s16)(src)) == 0);
63760: SET_NFLG (((uae_s16)(src)) < 0);
63761: m68k_incpc(2);
63762: fill_prefetch_2 ();
63763: put_word(dsta,src);
63764: }}}}}endlabel3519: ;
63765: return 12;
63766: }
63767: unsigned long REGPARAM2 CPUFUNC(op_c158_5)(uae_u32 opcode) /* AND */
63768: {
63769: uae_u32 srcreg = ((opcode >> 9) & 7);
63770: uae_u32 dstreg = opcode & 7;
63771: OpcodeFamily = 2; CurrentInstrCycles = 12;
63772: {{ uae_s16 src = m68k_dreg(regs, srcreg);
63773: { uaecptr dsta = m68k_areg(regs, dstreg);
63774: if ((dsta & 1) != 0) {
63775: last_fault_for_exception_3 = dsta;
63776: last_op_for_exception_3 = opcode;
63777: last_addr_for_exception_3 = m68k_getpc() + 2;
63778: Exception(3, 0, M68000_EXC_SRC_CPU);
63779: goto endlabel3520;
63780: }
63781: {{ uae_s16 dst = get_word(dsta);
63782: m68k_areg(regs, dstreg) += 2;
63783: src &= dst;
63784: CLEAR_CZNV;
63785: SET_ZFLG (((uae_s16)(src)) == 0);
63786: SET_NFLG (((uae_s16)(src)) < 0);
63787: m68k_incpc(2);
63788: fill_prefetch_2 ();
63789: put_word(dsta,src);
63790: }}}}}endlabel3520: ;
63791: return 12;
63792: }
63793: unsigned long REGPARAM2 CPUFUNC(op_c160_5)(uae_u32 opcode) /* AND */
63794: {
63795: uae_u32 srcreg = ((opcode >> 9) & 7);
63796: uae_u32 dstreg = opcode & 7;
63797: OpcodeFamily = 2; CurrentInstrCycles = 14;
63798: {{ uae_s16 src = m68k_dreg(regs, srcreg);
63799: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
63800: if ((dsta & 1) != 0) {
63801: last_fault_for_exception_3 = dsta;
63802: last_op_for_exception_3 = opcode;
63803: last_addr_for_exception_3 = m68k_getpc() + 2;
63804: Exception(3, 0, M68000_EXC_SRC_CPU);
63805: goto endlabel3521;
63806: }
63807: {{ uae_s16 dst = get_word(dsta);
63808: m68k_areg (regs, dstreg) = dsta;
63809: src &= dst;
63810: CLEAR_CZNV;
63811: SET_ZFLG (((uae_s16)(src)) == 0);
63812: SET_NFLG (((uae_s16)(src)) < 0);
63813: m68k_incpc(2);
63814: fill_prefetch_2 ();
63815: put_word(dsta,src);
63816: }}}}}endlabel3521: ;
63817: return 14;
63818: }
63819: unsigned long REGPARAM2 CPUFUNC(op_c168_5)(uae_u32 opcode) /* AND */
63820: {
63821: uae_u32 srcreg = ((opcode >> 9) & 7);
63822: uae_u32 dstreg = opcode & 7;
63823: OpcodeFamily = 2; CurrentInstrCycles = 16;
63824: {{ uae_s16 src = m68k_dreg(regs, srcreg);
63825: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
63826: if ((dsta & 1) != 0) {
63827: last_fault_for_exception_3 = dsta;
63828: last_op_for_exception_3 = opcode;
63829: last_addr_for_exception_3 = m68k_getpc() + 4;
63830: Exception(3, 0, M68000_EXC_SRC_CPU);
63831: goto endlabel3522;
63832: }
63833: {{ uae_s16 dst = get_word(dsta);
63834: src &= dst;
63835: CLEAR_CZNV;
63836: SET_ZFLG (((uae_s16)(src)) == 0);
63837: SET_NFLG (((uae_s16)(src)) < 0);
63838: m68k_incpc(4);
63839: fill_prefetch_0 ();
63840: put_word(dsta,src);
63841: }}}}}endlabel3522: ;
63842: return 16;
63843: }
63844: unsigned long REGPARAM2 CPUFUNC(op_c170_5)(uae_u32 opcode) /* AND */
63845: {
63846: uae_u32 srcreg = ((opcode >> 9) & 7);
63847: uae_u32 dstreg = opcode & 7;
63848: OpcodeFamily = 2; CurrentInstrCycles = 18;
63849: {{ uae_s16 src = m68k_dreg(regs, srcreg);
63850: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
63851: BusCyclePenalty += 2;
63852: if ((dsta & 1) != 0) {
63853: last_fault_for_exception_3 = dsta;
63854: last_op_for_exception_3 = opcode;
63855: last_addr_for_exception_3 = m68k_getpc() + 4;
63856: Exception(3, 0, M68000_EXC_SRC_CPU);
63857: goto endlabel3523;
63858: }
63859: {{ uae_s16 dst = get_word(dsta);
63860: src &= dst;
63861: CLEAR_CZNV;
63862: SET_ZFLG (((uae_s16)(src)) == 0);
63863: SET_NFLG (((uae_s16)(src)) < 0);
63864: m68k_incpc(4);
63865: fill_prefetch_0 ();
63866: put_word(dsta,src);
63867: }}}}}endlabel3523: ;
63868: return 18;
63869: }
63870: unsigned long REGPARAM2 CPUFUNC(op_c178_5)(uae_u32 opcode) /* AND */
63871: {
63872: uae_u32 srcreg = ((opcode >> 9) & 7);
63873: OpcodeFamily = 2; CurrentInstrCycles = 16;
63874: {{ uae_s16 src = m68k_dreg(regs, srcreg);
63875: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
63876: if ((dsta & 1) != 0) {
63877: last_fault_for_exception_3 = dsta;
63878: last_op_for_exception_3 = opcode;
63879: last_addr_for_exception_3 = m68k_getpc() + 4;
63880: Exception(3, 0, M68000_EXC_SRC_CPU);
63881: goto endlabel3524;
63882: }
63883: {{ uae_s16 dst = get_word(dsta);
63884: src &= dst;
63885: CLEAR_CZNV;
63886: SET_ZFLG (((uae_s16)(src)) == 0);
63887: SET_NFLG (((uae_s16)(src)) < 0);
63888: m68k_incpc(4);
63889: fill_prefetch_0 ();
63890: put_word(dsta,src);
63891: }}}}}endlabel3524: ;
63892: return 16;
63893: }
63894: unsigned long REGPARAM2 CPUFUNC(op_c179_5)(uae_u32 opcode) /* AND */
63895: {
63896: uae_u32 srcreg = ((opcode >> 9) & 7);
63897: OpcodeFamily = 2; CurrentInstrCycles = 20;
63898: {{ uae_s16 src = m68k_dreg(regs, srcreg);
63899: { uaecptr dsta = get_ilong_prefetch(2);
63900: if ((dsta & 1) != 0) {
63901: last_fault_for_exception_3 = dsta;
63902: last_op_for_exception_3 = opcode;
63903: last_addr_for_exception_3 = m68k_getpc() + 6;
63904: Exception(3, 0, M68000_EXC_SRC_CPU);
63905: goto endlabel3525;
63906: }
63907: {{ uae_s16 dst = get_word(dsta);
63908: src &= dst;
63909: CLEAR_CZNV;
63910: SET_ZFLG (((uae_s16)(src)) == 0);
63911: SET_NFLG (((uae_s16)(src)) < 0);
63912: m68k_incpc(6);
63913: fill_prefetch_0 ();
63914: put_word(dsta,src);
63915: }}}}}endlabel3525: ;
63916: return 20;
63917: }
63918: unsigned long REGPARAM2 CPUFUNC(op_c188_5)(uae_u32 opcode) /* EXG */
63919: {
63920: uae_u32 srcreg = ((opcode >> 9) & 7);
63921: uae_u32 dstreg = opcode & 7;
63922: OpcodeFamily = 35; CurrentInstrCycles = 6;
63923: {{ uae_s32 src = m68k_dreg(regs, srcreg);
63924: { uae_s32 dst = m68k_areg(regs, dstreg);
63925: m68k_dreg(regs, srcreg) = (dst);
63926: m68k_areg(regs, dstreg) = (src);
63927: }}}m68k_incpc(2);
63928: fill_prefetch_2 ();
63929: return 6;
63930: }
63931: unsigned long REGPARAM2 CPUFUNC(op_c190_5)(uae_u32 opcode) /* AND */
63932: {
63933: uae_u32 srcreg = ((opcode >> 9) & 7);
63934: uae_u32 dstreg = opcode & 7;
63935: OpcodeFamily = 2; CurrentInstrCycles = 20;
63936: {{ uae_s32 src = m68k_dreg(regs, srcreg);
63937: { uaecptr dsta = m68k_areg(regs, dstreg);
63938: if ((dsta & 1) != 0) {
63939: last_fault_for_exception_3 = dsta;
63940: last_op_for_exception_3 = opcode;
63941: last_addr_for_exception_3 = m68k_getpc() + 2;
63942: Exception(3, 0, M68000_EXC_SRC_CPU);
63943: goto endlabel3527;
63944: }
63945: {{ uae_s32 dst = get_long(dsta);
63946: src &= dst;
63947: CLEAR_CZNV;
63948: SET_ZFLG (((uae_s32)(src)) == 0);
63949: SET_NFLG (((uae_s32)(src)) < 0);
63950: m68k_incpc(2);
63951: fill_prefetch_2 ();
63952: put_long(dsta,src);
63953: }}}}}endlabel3527: ;
63954: return 20;
63955: }
63956: unsigned long REGPARAM2 CPUFUNC(op_c198_5)(uae_u32 opcode) /* AND */
63957: {
63958: uae_u32 srcreg = ((opcode >> 9) & 7);
63959: uae_u32 dstreg = opcode & 7;
63960: OpcodeFamily = 2; CurrentInstrCycles = 20;
63961: {{ uae_s32 src = m68k_dreg(regs, srcreg);
63962: { uaecptr dsta = m68k_areg(regs, dstreg);
63963: if ((dsta & 1) != 0) {
63964: last_fault_for_exception_3 = dsta;
63965: last_op_for_exception_3 = opcode;
63966: last_addr_for_exception_3 = m68k_getpc() + 2;
63967: Exception(3, 0, M68000_EXC_SRC_CPU);
63968: goto endlabel3528;
63969: }
63970: {{ uae_s32 dst = get_long(dsta);
63971: m68k_areg(regs, dstreg) += 4;
63972: src &= dst;
63973: CLEAR_CZNV;
63974: SET_ZFLG (((uae_s32)(src)) == 0);
63975: SET_NFLG (((uae_s32)(src)) < 0);
63976: m68k_incpc(2);
63977: fill_prefetch_2 ();
63978: put_long(dsta,src);
63979: }}}}}endlabel3528: ;
63980: return 20;
63981: }
63982: unsigned long REGPARAM2 CPUFUNC(op_c1a0_5)(uae_u32 opcode) /* AND */
63983: {
63984: uae_u32 srcreg = ((opcode >> 9) & 7);
63985: uae_u32 dstreg = opcode & 7;
63986: OpcodeFamily = 2; CurrentInstrCycles = 22;
63987: {{ uae_s32 src = m68k_dreg(regs, srcreg);
63988: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
63989: if ((dsta & 1) != 0) {
63990: last_fault_for_exception_3 = dsta;
63991: last_op_for_exception_3 = opcode;
63992: last_addr_for_exception_3 = m68k_getpc() + 2;
63993: Exception(3, 0, M68000_EXC_SRC_CPU);
63994: goto endlabel3529;
63995: }
63996: {{ uae_s32 dst = get_long(dsta);
63997: m68k_areg (regs, dstreg) = dsta;
63998: src &= dst;
63999: CLEAR_CZNV;
64000: SET_ZFLG (((uae_s32)(src)) == 0);
64001: SET_NFLG (((uae_s32)(src)) < 0);
64002: m68k_incpc(2);
64003: fill_prefetch_2 ();
64004: put_long(dsta,src);
64005: }}}}}endlabel3529: ;
64006: return 22;
64007: }
64008: unsigned long REGPARAM2 CPUFUNC(op_c1a8_5)(uae_u32 opcode) /* AND */
64009: {
64010: uae_u32 srcreg = ((opcode >> 9) & 7);
64011: uae_u32 dstreg = opcode & 7;
64012: OpcodeFamily = 2; CurrentInstrCycles = 24;
64013: {{ uae_s32 src = m68k_dreg(regs, srcreg);
64014: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
64015: if ((dsta & 1) != 0) {
64016: last_fault_for_exception_3 = dsta;
64017: last_op_for_exception_3 = opcode;
64018: last_addr_for_exception_3 = m68k_getpc() + 4;
64019: Exception(3, 0, M68000_EXC_SRC_CPU);
64020: goto endlabel3530;
64021: }
64022: {{ uae_s32 dst = get_long(dsta);
64023: src &= dst;
64024: CLEAR_CZNV;
64025: SET_ZFLG (((uae_s32)(src)) == 0);
64026: SET_NFLG (((uae_s32)(src)) < 0);
64027: m68k_incpc(4);
64028: fill_prefetch_0 ();
64029: put_long(dsta,src);
64030: }}}}}endlabel3530: ;
64031: return 24;
64032: }
64033: unsigned long REGPARAM2 CPUFUNC(op_c1b0_5)(uae_u32 opcode) /* AND */
64034: {
64035: uae_u32 srcreg = ((opcode >> 9) & 7);
64036: uae_u32 dstreg = opcode & 7;
64037: OpcodeFamily = 2; CurrentInstrCycles = 26;
64038: {{ uae_s32 src = m68k_dreg(regs, srcreg);
64039: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
64040: BusCyclePenalty += 2;
64041: if ((dsta & 1) != 0) {
64042: last_fault_for_exception_3 = dsta;
64043: last_op_for_exception_3 = opcode;
64044: last_addr_for_exception_3 = m68k_getpc() + 4;
64045: Exception(3, 0, M68000_EXC_SRC_CPU);
64046: goto endlabel3531;
64047: }
64048: {{ uae_s32 dst = get_long(dsta);
64049: src &= dst;
64050: CLEAR_CZNV;
64051: SET_ZFLG (((uae_s32)(src)) == 0);
64052: SET_NFLG (((uae_s32)(src)) < 0);
64053: m68k_incpc(4);
64054: fill_prefetch_0 ();
64055: put_long(dsta,src);
64056: }}}}}endlabel3531: ;
64057: return 26;
64058: }
64059: unsigned long REGPARAM2 CPUFUNC(op_c1b8_5)(uae_u32 opcode) /* AND */
64060: {
64061: uae_u32 srcreg = ((opcode >> 9) & 7);
64062: OpcodeFamily = 2; CurrentInstrCycles = 24;
64063: {{ uae_s32 src = m68k_dreg(regs, srcreg);
64064: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
64065: if ((dsta & 1) != 0) {
64066: last_fault_for_exception_3 = dsta;
64067: last_op_for_exception_3 = opcode;
64068: last_addr_for_exception_3 = m68k_getpc() + 4;
64069: Exception(3, 0, M68000_EXC_SRC_CPU);
64070: goto endlabel3532;
64071: }
64072: {{ uae_s32 dst = get_long(dsta);
64073: src &= dst;
64074: CLEAR_CZNV;
64075: SET_ZFLG (((uae_s32)(src)) == 0);
64076: SET_NFLG (((uae_s32)(src)) < 0);
64077: m68k_incpc(4);
64078: fill_prefetch_0 ();
64079: put_long(dsta,src);
64080: }}}}}endlabel3532: ;
64081: return 24;
64082: }
64083: unsigned long REGPARAM2 CPUFUNC(op_c1b9_5)(uae_u32 opcode) /* AND */
64084: {
64085: uae_u32 srcreg = ((opcode >> 9) & 7);
64086: OpcodeFamily = 2; CurrentInstrCycles = 28;
64087: {{ uae_s32 src = m68k_dreg(regs, srcreg);
64088: { uaecptr dsta = get_ilong_prefetch(2);
64089: if ((dsta & 1) != 0) {
64090: last_fault_for_exception_3 = dsta;
64091: last_op_for_exception_3 = opcode;
64092: last_addr_for_exception_3 = m68k_getpc() + 6;
64093: Exception(3, 0, M68000_EXC_SRC_CPU);
64094: goto endlabel3533;
64095: }
64096: {{ uae_s32 dst = get_long(dsta);
64097: src &= dst;
64098: CLEAR_CZNV;
64099: SET_ZFLG (((uae_s32)(src)) == 0);
64100: SET_NFLG (((uae_s32)(src)) < 0);
64101: m68k_incpc(6);
64102: fill_prefetch_0 ();
64103: put_long(dsta,src);
64104: }}}}}endlabel3533: ;
64105: return 28;
64106: }
64107: unsigned long REGPARAM2 CPUFUNC(op_c1c0_5)(uae_u32 opcode) /* MULS */
64108: {
64109: uae_u32 srcreg = (opcode & 7);
64110: uae_u32 dstreg = (opcode >> 9) & 7;
64111: unsigned int retcycles = 0;
64112: OpcodeFamily = 63; CurrentInstrCycles = 38;
64113: {{ uae_s16 src = m68k_dreg(regs, srcreg);
64114: { uae_s16 dst = m68k_dreg(regs, dstreg);
64115: { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
64116: uae_u32 src2;
64117: CLEAR_CZNV;
64118: SET_ZFLG (((uae_s32)(newv)) == 0);
64119: SET_NFLG (((uae_s32)(newv)) < 0);
64120: m68k_dreg(regs, dstreg) = (newv);
64121: src2 = ((uae_u32)src) << 1;
64122: while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; }
64123: }}}}m68k_incpc(2);
64124: fill_prefetch_2 ();
64125: return (38+retcycles*2);
64126: }
64127: unsigned long REGPARAM2 CPUFUNC(op_c1d0_5)(uae_u32 opcode) /* MULS */
64128: {
64129: uae_u32 srcreg = (opcode & 7);
64130: uae_u32 dstreg = (opcode >> 9) & 7;
64131: unsigned int retcycles = 0;
64132: OpcodeFamily = 63; CurrentInstrCycles = 42;
64133: {{ uaecptr srca = m68k_areg(regs, srcreg);
64134: if ((srca & 1) != 0) {
64135: last_fault_for_exception_3 = srca;
64136: last_op_for_exception_3 = opcode;
64137: last_addr_for_exception_3 = m68k_getpc() + 2;
64138: Exception(3, 0, M68000_EXC_SRC_CPU);
64139: goto endlabel3535;
64140: }
64141: {{ uae_s16 src = get_word(srca);
64142: { uae_s16 dst = m68k_dreg(regs, dstreg);
64143: { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
64144: uae_u32 src2;
64145: CLEAR_CZNV;
64146: SET_ZFLG (((uae_s32)(newv)) == 0);
64147: SET_NFLG (((uae_s32)(newv)) < 0);
64148: m68k_dreg(regs, dstreg) = (newv);
64149: src2 = ((uae_u32)src) << 1;
64150: while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; }
64151: }}}}}}m68k_incpc(2);
64152: fill_prefetch_2 ();
64153: endlabel3535: ;
64154: return (42+retcycles*2);
64155: }
64156: unsigned long REGPARAM2 CPUFUNC(op_c1d8_5)(uae_u32 opcode) /* MULS */
64157: {
64158: uae_u32 srcreg = (opcode & 7);
64159: uae_u32 dstreg = (opcode >> 9) & 7;
64160: unsigned int retcycles = 0;
64161: OpcodeFamily = 63; CurrentInstrCycles = 42;
64162: {{ uaecptr srca = m68k_areg(regs, srcreg);
64163: if ((srca & 1) != 0) {
64164: last_fault_for_exception_3 = srca;
64165: last_op_for_exception_3 = opcode;
64166: last_addr_for_exception_3 = m68k_getpc() + 2;
64167: Exception(3, 0, M68000_EXC_SRC_CPU);
64168: goto endlabel3536;
64169: }
64170: {{ uae_s16 src = get_word(srca);
64171: m68k_areg(regs, srcreg) += 2;
64172: { uae_s16 dst = m68k_dreg(regs, dstreg);
64173: { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
64174: uae_u32 src2;
64175: CLEAR_CZNV;
64176: SET_ZFLG (((uae_s32)(newv)) == 0);
64177: SET_NFLG (((uae_s32)(newv)) < 0);
64178: m68k_dreg(regs, dstreg) = (newv);
64179: src2 = ((uae_u32)src) << 1;
64180: while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; }
64181: }}}}}}m68k_incpc(2);
64182: fill_prefetch_2 ();
64183: endlabel3536: ;
64184: return (42+retcycles*2);
64185: }
64186: unsigned long REGPARAM2 CPUFUNC(op_c1e0_5)(uae_u32 opcode) /* MULS */
64187: {
64188: uae_u32 srcreg = (opcode & 7);
64189: uae_u32 dstreg = (opcode >> 9) & 7;
64190: unsigned int retcycles = 0;
64191: OpcodeFamily = 63; CurrentInstrCycles = 44;
64192: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
64193: if ((srca & 1) != 0) {
64194: last_fault_for_exception_3 = srca;
64195: last_op_for_exception_3 = opcode;
64196: last_addr_for_exception_3 = m68k_getpc() + 2;
64197: Exception(3, 0, M68000_EXC_SRC_CPU);
64198: goto endlabel3537;
64199: }
64200: {{ uae_s16 src = get_word(srca);
64201: m68k_areg (regs, srcreg) = srca;
64202: { uae_s16 dst = m68k_dreg(regs, dstreg);
64203: { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
64204: uae_u32 src2;
64205: CLEAR_CZNV;
64206: SET_ZFLG (((uae_s32)(newv)) == 0);
64207: SET_NFLG (((uae_s32)(newv)) < 0);
64208: m68k_dreg(regs, dstreg) = (newv);
64209: src2 = ((uae_u32)src) << 1;
64210: while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; }
64211: }}}}}}m68k_incpc(2);
64212: fill_prefetch_2 ();
64213: endlabel3537: ;
64214: return (44+retcycles*2);
64215: }
64216: unsigned long REGPARAM2 CPUFUNC(op_c1e8_5)(uae_u32 opcode) /* MULS */
64217: {
64218: uae_u32 srcreg = (opcode & 7);
64219: uae_u32 dstreg = (opcode >> 9) & 7;
64220: unsigned int retcycles = 0;
64221: OpcodeFamily = 63; CurrentInstrCycles = 46;
64222: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
64223: if ((srca & 1) != 0) {
64224: last_fault_for_exception_3 = srca;
64225: last_op_for_exception_3 = opcode;
64226: last_addr_for_exception_3 = m68k_getpc() + 4;
64227: Exception(3, 0, M68000_EXC_SRC_CPU);
64228: goto endlabel3538;
64229: }
64230: {{ uae_s16 src = get_word(srca);
64231: { uae_s16 dst = m68k_dreg(regs, dstreg);
64232: { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
64233: uae_u32 src2;
64234: CLEAR_CZNV;
64235: SET_ZFLG (((uae_s32)(newv)) == 0);
64236: SET_NFLG (((uae_s32)(newv)) < 0);
64237: m68k_dreg(regs, dstreg) = (newv);
64238: src2 = ((uae_u32)src) << 1;
64239: while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; }
64240: }}}}}}m68k_incpc(4);
64241: fill_prefetch_0 ();
64242: endlabel3538: ;
64243: return (46+retcycles*2);
64244: }
64245: unsigned long REGPARAM2 CPUFUNC(op_c1f0_5)(uae_u32 opcode) /* MULS */
64246: {
64247: uae_u32 srcreg = (opcode & 7);
64248: uae_u32 dstreg = (opcode >> 9) & 7;
64249: unsigned int retcycles = 0;
64250: OpcodeFamily = 63; CurrentInstrCycles = 48;
64251: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
64252: BusCyclePenalty += 2;
64253: if ((srca & 1) != 0) {
64254: last_fault_for_exception_3 = srca;
64255: last_op_for_exception_3 = opcode;
64256: last_addr_for_exception_3 = m68k_getpc() + 4;
64257: Exception(3, 0, M68000_EXC_SRC_CPU);
64258: goto endlabel3539;
64259: }
64260: {{ uae_s16 src = get_word(srca);
64261: { uae_s16 dst = m68k_dreg(regs, dstreg);
64262: { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
64263: uae_u32 src2;
64264: CLEAR_CZNV;
64265: SET_ZFLG (((uae_s32)(newv)) == 0);
64266: SET_NFLG (((uae_s32)(newv)) < 0);
64267: m68k_dreg(regs, dstreg) = (newv);
64268: src2 = ((uae_u32)src) << 1;
64269: while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; }
64270: }}}}}}m68k_incpc(4);
64271: fill_prefetch_0 ();
64272: endlabel3539: ;
64273: return (48+retcycles*2);
64274: }
64275: unsigned long REGPARAM2 CPUFUNC(op_c1f8_5)(uae_u32 opcode) /* MULS */
64276: {
64277: uae_u32 dstreg = (opcode >> 9) & 7;
64278: unsigned int retcycles = 0;
64279: OpcodeFamily = 63; CurrentInstrCycles = 46;
64280: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
64281: if ((srca & 1) != 0) {
64282: last_fault_for_exception_3 = srca;
64283: last_op_for_exception_3 = opcode;
64284: last_addr_for_exception_3 = m68k_getpc() + 4;
64285: Exception(3, 0, M68000_EXC_SRC_CPU);
64286: goto endlabel3540;
64287: }
64288: {{ uae_s16 src = get_word(srca);
64289: { uae_s16 dst = m68k_dreg(regs, dstreg);
64290: { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
64291: uae_u32 src2;
64292: CLEAR_CZNV;
64293: SET_ZFLG (((uae_s32)(newv)) == 0);
64294: SET_NFLG (((uae_s32)(newv)) < 0);
64295: m68k_dreg(regs, dstreg) = (newv);
64296: src2 = ((uae_u32)src) << 1;
64297: while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; }
64298: }}}}}}m68k_incpc(4);
64299: fill_prefetch_0 ();
64300: endlabel3540: ;
64301: return (46+retcycles*2);
64302: }
64303: unsigned long REGPARAM2 CPUFUNC(op_c1f9_5)(uae_u32 opcode) /* MULS */
64304: {
64305: uae_u32 dstreg = (opcode >> 9) & 7;
64306: unsigned int retcycles = 0;
64307: OpcodeFamily = 63; CurrentInstrCycles = 50;
64308: {{ uaecptr srca = get_ilong_prefetch(2);
64309: if ((srca & 1) != 0) {
64310: last_fault_for_exception_3 = srca;
64311: last_op_for_exception_3 = opcode;
64312: last_addr_for_exception_3 = m68k_getpc() + 6;
64313: Exception(3, 0, M68000_EXC_SRC_CPU);
64314: goto endlabel3541;
64315: }
64316: {{ uae_s16 src = get_word(srca);
64317: { uae_s16 dst = m68k_dreg(regs, dstreg);
64318: { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
64319: uae_u32 src2;
64320: CLEAR_CZNV;
64321: SET_ZFLG (((uae_s32)(newv)) == 0);
64322: SET_NFLG (((uae_s32)(newv)) < 0);
64323: m68k_dreg(regs, dstreg) = (newv);
64324: src2 = ((uae_u32)src) << 1;
64325: while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; }
64326: }}}}}}m68k_incpc(6);
64327: fill_prefetch_0 ();
64328: endlabel3541: ;
64329: return (50+retcycles*2);
64330: }
64331: unsigned long REGPARAM2 CPUFUNC(op_c1fa_5)(uae_u32 opcode) /* MULS */
64332: {
64333: uae_u32 dstreg = (opcode >> 9) & 7;
64334: unsigned int retcycles = 0;
64335: OpcodeFamily = 63; CurrentInstrCycles = 46;
64336: {{ uaecptr srca = m68k_getpc () + 2;
64337: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
64338: if ((srca & 1) != 0) {
64339: last_fault_for_exception_3 = srca;
64340: last_op_for_exception_3 = opcode;
64341: last_addr_for_exception_3 = m68k_getpc() + 4;
64342: Exception(3, 0, M68000_EXC_SRC_CPU);
64343: goto endlabel3542;
64344: }
64345: {{ uae_s16 src = get_word(srca);
64346: { uae_s16 dst = m68k_dreg(regs, dstreg);
64347: { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
64348: uae_u32 src2;
64349: CLEAR_CZNV;
64350: SET_ZFLG (((uae_s32)(newv)) == 0);
64351: SET_NFLG (((uae_s32)(newv)) < 0);
64352: m68k_dreg(regs, dstreg) = (newv);
64353: src2 = ((uae_u32)src) << 1;
64354: while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; }
64355: }}}}}}m68k_incpc(4);
64356: fill_prefetch_0 ();
64357: endlabel3542: ;
64358: return (46+retcycles*2);
64359: }
64360: unsigned long REGPARAM2 CPUFUNC(op_c1fb_5)(uae_u32 opcode) /* MULS */
64361: {
64362: uae_u32 dstreg = (opcode >> 9) & 7;
64363: unsigned int retcycles = 0;
64364: OpcodeFamily = 63; CurrentInstrCycles = 48;
64365: {{ uaecptr tmppc = m68k_getpc() + 2;
64366: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
64367: BusCyclePenalty += 2;
64368: if ((srca & 1) != 0) {
64369: last_fault_for_exception_3 = srca;
64370: last_op_for_exception_3 = opcode;
64371: last_addr_for_exception_3 = m68k_getpc() + 4;
64372: Exception(3, 0, M68000_EXC_SRC_CPU);
64373: goto endlabel3543;
64374: }
64375: {{ uae_s16 src = get_word(srca);
64376: { uae_s16 dst = m68k_dreg(regs, dstreg);
64377: { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
64378: uae_u32 src2;
64379: CLEAR_CZNV;
64380: SET_ZFLG (((uae_s32)(newv)) == 0);
64381: SET_NFLG (((uae_s32)(newv)) < 0);
64382: m68k_dreg(regs, dstreg) = (newv);
64383: src2 = ((uae_u32)src) << 1;
64384: while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; }
64385: }}}}}}m68k_incpc(4);
64386: fill_prefetch_0 ();
64387: endlabel3543: ;
64388: return (48+retcycles*2);
64389: }
64390: unsigned long REGPARAM2 CPUFUNC(op_c1fc_5)(uae_u32 opcode) /* MULS */
64391: {
64392: uae_u32 dstreg = (opcode >> 9) & 7;
64393: unsigned int retcycles = 0;
64394: OpcodeFamily = 63; CurrentInstrCycles = 42;
64395: {{ uae_s16 src = get_iword_prefetch(2);
64396: { uae_s16 dst = m68k_dreg(regs, dstreg);
64397: { uae_u32 newv = (uae_s32)(uae_s16)dst * (uae_s32)(uae_s16)src;
64398: uae_u32 src2;
64399: CLEAR_CZNV;
64400: SET_ZFLG (((uae_s32)(newv)) == 0);
64401: SET_NFLG (((uae_s32)(newv)) < 0);
64402: m68k_dreg(regs, dstreg) = (newv);
64403: src2 = ((uae_u32)src) << 1;
64404: while (src2) { if ( ( (src2 & 3) == 1 ) || ( (src2 & 3) == 2 ) ) retcycles++; src2 >>= 1; }
64405: }}}}m68k_incpc(4);
64406: fill_prefetch_0 ();
64407: return (42+retcycles*2);
64408: }
64409: unsigned long REGPARAM2 CPUFUNC(op_d000_5)(uae_u32 opcode) /* ADD */
64410: {
64411: uae_u32 srcreg = (opcode & 7);
64412: uae_u32 dstreg = (opcode >> 9) & 7;
64413: OpcodeFamily = 11; CurrentInstrCycles = 4;
64414: {{ uae_s8 src = m68k_dreg(regs, srcreg);
64415: { uae_s8 dst = m68k_dreg(regs, dstreg);
64416: { refill_prefetch (m68k_getpc(), 2);
64417: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
64418: { int flgs = ((uae_s8)(src)) < 0;
64419: int flgo = ((uae_s8)(dst)) < 0;
64420: int flgn = ((uae_s8)(newv)) < 0;
64421: SET_ZFLG (((uae_s8)(newv)) == 0);
64422: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
64423: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
64424: COPY_CARRY;
64425: SET_NFLG (flgn != 0);
64426: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
64427: }}}}}}m68k_incpc(2);
64428: fill_prefetch_2 ();
64429: return 4;
64430: }
64431: unsigned long REGPARAM2 CPUFUNC(op_d010_5)(uae_u32 opcode) /* ADD */
64432: {
64433: uae_u32 srcreg = (opcode & 7);
64434: uae_u32 dstreg = (opcode >> 9) & 7;
64435: OpcodeFamily = 11; CurrentInstrCycles = 8;
64436: {{ uaecptr srca = m68k_areg(regs, srcreg);
64437: { uae_s8 src = get_byte(srca);
64438: { uae_s8 dst = m68k_dreg(regs, dstreg);
64439: { refill_prefetch (m68k_getpc(), 2);
64440: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
64441: { int flgs = ((uae_s8)(src)) < 0;
64442: int flgo = ((uae_s8)(dst)) < 0;
64443: int flgn = ((uae_s8)(newv)) < 0;
64444: SET_ZFLG (((uae_s8)(newv)) == 0);
64445: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
64446: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
64447: COPY_CARRY;
64448: SET_NFLG (flgn != 0);
64449: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
64450: }}}}}}}m68k_incpc(2);
64451: fill_prefetch_2 ();
64452: return 8;
64453: }
64454: unsigned long REGPARAM2 CPUFUNC(op_d018_5)(uae_u32 opcode) /* ADD */
64455: {
64456: uae_u32 srcreg = (opcode & 7);
64457: uae_u32 dstreg = (opcode >> 9) & 7;
64458: OpcodeFamily = 11; CurrentInstrCycles = 8;
64459: {{ uaecptr srca = m68k_areg(regs, srcreg);
64460: { uae_s8 src = get_byte(srca);
64461: m68k_areg(regs, srcreg) += areg_byteinc[srcreg];
64462: { uae_s8 dst = m68k_dreg(regs, dstreg);
64463: { refill_prefetch (m68k_getpc(), 2);
64464: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
64465: { int flgs = ((uae_s8)(src)) < 0;
64466: int flgo = ((uae_s8)(dst)) < 0;
64467: int flgn = ((uae_s8)(newv)) < 0;
64468: SET_ZFLG (((uae_s8)(newv)) == 0);
64469: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
64470: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
64471: COPY_CARRY;
64472: SET_NFLG (flgn != 0);
64473: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
64474: }}}}}}}m68k_incpc(2);
64475: fill_prefetch_2 ();
64476: return 8;
64477: }
64478: unsigned long REGPARAM2 CPUFUNC(op_d020_5)(uae_u32 opcode) /* ADD */
64479: {
64480: uae_u32 srcreg = (opcode & 7);
64481: uae_u32 dstreg = (opcode >> 9) & 7;
64482: OpcodeFamily = 11; CurrentInstrCycles = 10;
64483: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
64484: { uae_s8 src = get_byte(srca);
64485: m68k_areg (regs, srcreg) = srca;
64486: { uae_s8 dst = m68k_dreg(regs, dstreg);
64487: { refill_prefetch (m68k_getpc(), 2);
64488: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
64489: { int flgs = ((uae_s8)(src)) < 0;
64490: int flgo = ((uae_s8)(dst)) < 0;
64491: int flgn = ((uae_s8)(newv)) < 0;
64492: SET_ZFLG (((uae_s8)(newv)) == 0);
64493: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
64494: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
64495: COPY_CARRY;
64496: SET_NFLG (flgn != 0);
64497: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
64498: }}}}}}}m68k_incpc(2);
64499: fill_prefetch_2 ();
64500: return 10;
64501: }
64502: unsigned long REGPARAM2 CPUFUNC(op_d028_5)(uae_u32 opcode) /* ADD */
64503: {
64504: uae_u32 srcreg = (opcode & 7);
64505: uae_u32 dstreg = (opcode >> 9) & 7;
64506: OpcodeFamily = 11; CurrentInstrCycles = 12;
64507: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
64508: { uae_s8 src = get_byte(srca);
64509: { uae_s8 dst = m68k_dreg(regs, dstreg);
64510: { refill_prefetch (m68k_getpc(), 2);
64511: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
64512: { int flgs = ((uae_s8)(src)) < 0;
64513: int flgo = ((uae_s8)(dst)) < 0;
64514: int flgn = ((uae_s8)(newv)) < 0;
64515: SET_ZFLG (((uae_s8)(newv)) == 0);
64516: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
64517: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
64518: COPY_CARRY;
64519: SET_NFLG (flgn != 0);
64520: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
64521: }}}}}}}m68k_incpc(4);
64522: fill_prefetch_0 ();
64523: return 12;
64524: }
64525: unsigned long REGPARAM2 CPUFUNC(op_d030_5)(uae_u32 opcode) /* ADD */
64526: {
64527: uae_u32 srcreg = (opcode & 7);
64528: uae_u32 dstreg = (opcode >> 9) & 7;
64529: OpcodeFamily = 11; CurrentInstrCycles = 14;
64530: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
64531: BusCyclePenalty += 2;
64532: { uae_s8 src = get_byte(srca);
64533: { uae_s8 dst = m68k_dreg(regs, dstreg);
64534: { refill_prefetch (m68k_getpc(), 2);
64535: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
64536: { int flgs = ((uae_s8)(src)) < 0;
64537: int flgo = ((uae_s8)(dst)) < 0;
64538: int flgn = ((uae_s8)(newv)) < 0;
64539: SET_ZFLG (((uae_s8)(newv)) == 0);
64540: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
64541: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
64542: COPY_CARRY;
64543: SET_NFLG (flgn != 0);
64544: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
64545: }}}}}}}m68k_incpc(4);
64546: fill_prefetch_0 ();
64547: return 14;
64548: }
64549: unsigned long REGPARAM2 CPUFUNC(op_d038_5)(uae_u32 opcode) /* ADD */
64550: {
64551: uae_u32 dstreg = (opcode >> 9) & 7;
64552: OpcodeFamily = 11; CurrentInstrCycles = 12;
64553: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
64554: { uae_s8 src = get_byte(srca);
64555: { uae_s8 dst = m68k_dreg(regs, dstreg);
64556: { refill_prefetch (m68k_getpc(), 2);
64557: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
64558: { int flgs = ((uae_s8)(src)) < 0;
64559: int flgo = ((uae_s8)(dst)) < 0;
64560: int flgn = ((uae_s8)(newv)) < 0;
64561: SET_ZFLG (((uae_s8)(newv)) == 0);
64562: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
64563: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
64564: COPY_CARRY;
64565: SET_NFLG (flgn != 0);
64566: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
64567: }}}}}}}m68k_incpc(4);
64568: fill_prefetch_0 ();
64569: return 12;
64570: }
64571: unsigned long REGPARAM2 CPUFUNC(op_d039_5)(uae_u32 opcode) /* ADD */
64572: {
64573: uae_u32 dstreg = (opcode >> 9) & 7;
64574: OpcodeFamily = 11; CurrentInstrCycles = 16;
64575: {{ uaecptr srca = get_ilong_prefetch(2);
64576: { uae_s8 src = get_byte(srca);
64577: { uae_s8 dst = m68k_dreg(regs, dstreg);
64578: { refill_prefetch (m68k_getpc(), 2);
64579: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
64580: { int flgs = ((uae_s8)(src)) < 0;
64581: int flgo = ((uae_s8)(dst)) < 0;
64582: int flgn = ((uae_s8)(newv)) < 0;
64583: SET_ZFLG (((uae_s8)(newv)) == 0);
64584: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
64585: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
64586: COPY_CARRY;
64587: SET_NFLG (flgn != 0);
64588: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
64589: }}}}}}}m68k_incpc(6);
64590: fill_prefetch_0 ();
64591: return 16;
64592: }
64593: unsigned long REGPARAM2 CPUFUNC(op_d03a_5)(uae_u32 opcode) /* ADD */
64594: {
64595: uae_u32 dstreg = (opcode >> 9) & 7;
64596: OpcodeFamily = 11; CurrentInstrCycles = 12;
64597: {{ uaecptr srca = m68k_getpc () + 2;
64598: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
64599: { uae_s8 src = get_byte(srca);
64600: { uae_s8 dst = m68k_dreg(regs, dstreg);
64601: { refill_prefetch (m68k_getpc(), 2);
64602: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
64603: { int flgs = ((uae_s8)(src)) < 0;
64604: int flgo = ((uae_s8)(dst)) < 0;
64605: int flgn = ((uae_s8)(newv)) < 0;
64606: SET_ZFLG (((uae_s8)(newv)) == 0);
64607: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
64608: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
64609: COPY_CARRY;
64610: SET_NFLG (flgn != 0);
64611: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
64612: }}}}}}}m68k_incpc(4);
64613: fill_prefetch_0 ();
64614: return 12;
64615: }
64616: unsigned long REGPARAM2 CPUFUNC(op_d03b_5)(uae_u32 opcode) /* ADD */
64617: {
64618: uae_u32 dstreg = (opcode >> 9) & 7;
64619: OpcodeFamily = 11; CurrentInstrCycles = 14;
64620: {{ uaecptr tmppc = m68k_getpc() + 2;
64621: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
64622: BusCyclePenalty += 2;
64623: { uae_s8 src = get_byte(srca);
64624: { uae_s8 dst = m68k_dreg(regs, dstreg);
64625: { refill_prefetch (m68k_getpc(), 2);
64626: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
64627: { int flgs = ((uae_s8)(src)) < 0;
64628: int flgo = ((uae_s8)(dst)) < 0;
64629: int flgn = ((uae_s8)(newv)) < 0;
64630: SET_ZFLG (((uae_s8)(newv)) == 0);
64631: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
64632: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
64633: COPY_CARRY;
64634: SET_NFLG (flgn != 0);
64635: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
64636: }}}}}}}m68k_incpc(4);
64637: fill_prefetch_0 ();
64638: return 14;
64639: }
64640: unsigned long REGPARAM2 CPUFUNC(op_d03c_5)(uae_u32 opcode) /* ADD */
64641: {
64642: uae_u32 dstreg = (opcode >> 9) & 7;
64643: OpcodeFamily = 11; CurrentInstrCycles = 8;
64644: {{ uae_s8 src = get_ibyte_prefetch(2);
64645: { uae_s8 dst = m68k_dreg(regs, dstreg);
64646: { refill_prefetch (m68k_getpc(), 2);
64647: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
64648: { int flgs = ((uae_s8)(src)) < 0;
64649: int flgo = ((uae_s8)(dst)) < 0;
64650: int flgn = ((uae_s8)(newv)) < 0;
64651: SET_ZFLG (((uae_s8)(newv)) == 0);
64652: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
64653: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
64654: COPY_CARRY;
64655: SET_NFLG (flgn != 0);
64656: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
64657: }}}}}}m68k_incpc(4);
64658: fill_prefetch_0 ();
64659: return 8;
64660: }
64661: unsigned long REGPARAM2 CPUFUNC(op_d040_5)(uae_u32 opcode) /* ADD */
64662: {
64663: uae_u32 srcreg = (opcode & 7);
64664: uae_u32 dstreg = (opcode >> 9) & 7;
64665: OpcodeFamily = 11; CurrentInstrCycles = 4;
64666: {{ uae_s16 src = m68k_dreg(regs, srcreg);
64667: { uae_s16 dst = m68k_dreg(regs, dstreg);
64668: { refill_prefetch (m68k_getpc(), 2);
64669: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
64670: { int flgs = ((uae_s16)(src)) < 0;
64671: int flgo = ((uae_s16)(dst)) < 0;
64672: int flgn = ((uae_s16)(newv)) < 0;
64673: SET_ZFLG (((uae_s16)(newv)) == 0);
64674: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
64675: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
64676: COPY_CARRY;
64677: SET_NFLG (flgn != 0);
64678: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
64679: }}}}}}m68k_incpc(2);
64680: fill_prefetch_2 ();
64681: return 4;
64682: }
64683: unsigned long REGPARAM2 CPUFUNC(op_d048_5)(uae_u32 opcode) /* ADD */
64684: {
64685: uae_u32 srcreg = (opcode & 7);
64686: uae_u32 dstreg = (opcode >> 9) & 7;
64687: OpcodeFamily = 11; CurrentInstrCycles = 4;
64688: {{ uae_s16 src = m68k_areg(regs, srcreg);
64689: { uae_s16 dst = m68k_dreg(regs, dstreg);
64690: { refill_prefetch (m68k_getpc(), 2);
64691: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
64692: { int flgs = ((uae_s16)(src)) < 0;
64693: int flgo = ((uae_s16)(dst)) < 0;
64694: int flgn = ((uae_s16)(newv)) < 0;
64695: SET_ZFLG (((uae_s16)(newv)) == 0);
64696: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
64697: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
64698: COPY_CARRY;
64699: SET_NFLG (flgn != 0);
64700: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
64701: }}}}}}m68k_incpc(2);
64702: fill_prefetch_2 ();
64703: return 4;
64704: }
64705: unsigned long REGPARAM2 CPUFUNC(op_d050_5)(uae_u32 opcode) /* ADD */
64706: {
64707: uae_u32 srcreg = (opcode & 7);
64708: uae_u32 dstreg = (opcode >> 9) & 7;
64709: OpcodeFamily = 11; CurrentInstrCycles = 8;
64710: {{ uaecptr srca = m68k_areg(regs, srcreg);
64711: if ((srca & 1) != 0) {
64712: last_fault_for_exception_3 = srca;
64713: last_op_for_exception_3 = opcode;
64714: last_addr_for_exception_3 = m68k_getpc() + 2;
64715: Exception(3, 0, M68000_EXC_SRC_CPU);
64716: goto endlabel3558;
64717: }
64718: {{ uae_s16 src = get_word(srca);
64719: { uae_s16 dst = m68k_dreg(regs, dstreg);
64720: { refill_prefetch (m68k_getpc(), 2);
64721: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
64722: { int flgs = ((uae_s16)(src)) < 0;
64723: int flgo = ((uae_s16)(dst)) < 0;
64724: int flgn = ((uae_s16)(newv)) < 0;
64725: SET_ZFLG (((uae_s16)(newv)) == 0);
64726: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
64727: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
64728: COPY_CARRY;
64729: SET_NFLG (flgn != 0);
64730: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
64731: }}}}}}}}m68k_incpc(2);
64732: fill_prefetch_2 ();
64733: endlabel3558: ;
64734: return 8;
64735: }
64736: unsigned long REGPARAM2 CPUFUNC(op_d058_5)(uae_u32 opcode) /* ADD */
64737: {
64738: uae_u32 srcreg = (opcode & 7);
64739: uae_u32 dstreg = (opcode >> 9) & 7;
64740: OpcodeFamily = 11; CurrentInstrCycles = 8;
64741: {{ uaecptr srca = m68k_areg(regs, srcreg);
64742: if ((srca & 1) != 0) {
64743: last_fault_for_exception_3 = srca;
64744: last_op_for_exception_3 = opcode;
64745: last_addr_for_exception_3 = m68k_getpc() + 2;
64746: Exception(3, 0, M68000_EXC_SRC_CPU);
64747: goto endlabel3559;
64748: }
64749: {{ uae_s16 src = get_word(srca);
64750: m68k_areg(regs, srcreg) += 2;
64751: { uae_s16 dst = m68k_dreg(regs, dstreg);
64752: { refill_prefetch (m68k_getpc(), 2);
64753: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
64754: { int flgs = ((uae_s16)(src)) < 0;
64755: int flgo = ((uae_s16)(dst)) < 0;
64756: int flgn = ((uae_s16)(newv)) < 0;
64757: SET_ZFLG (((uae_s16)(newv)) == 0);
64758: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
64759: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
64760: COPY_CARRY;
64761: SET_NFLG (flgn != 0);
64762: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
64763: }}}}}}}}m68k_incpc(2);
64764: fill_prefetch_2 ();
64765: endlabel3559: ;
64766: return 8;
64767: }
64768: unsigned long REGPARAM2 CPUFUNC(op_d060_5)(uae_u32 opcode) /* ADD */
64769: {
64770: uae_u32 srcreg = (opcode & 7);
64771: uae_u32 dstreg = (opcode >> 9) & 7;
64772: OpcodeFamily = 11; CurrentInstrCycles = 10;
64773: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
64774: if ((srca & 1) != 0) {
64775: last_fault_for_exception_3 = srca;
64776: last_op_for_exception_3 = opcode;
64777: last_addr_for_exception_3 = m68k_getpc() + 2;
64778: Exception(3, 0, M68000_EXC_SRC_CPU);
64779: goto endlabel3560;
64780: }
64781: {{ uae_s16 src = get_word(srca);
64782: m68k_areg (regs, srcreg) = srca;
64783: { uae_s16 dst = m68k_dreg(regs, dstreg);
64784: { refill_prefetch (m68k_getpc(), 2);
64785: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
64786: { int flgs = ((uae_s16)(src)) < 0;
64787: int flgo = ((uae_s16)(dst)) < 0;
64788: int flgn = ((uae_s16)(newv)) < 0;
64789: SET_ZFLG (((uae_s16)(newv)) == 0);
64790: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
64791: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
64792: COPY_CARRY;
64793: SET_NFLG (flgn != 0);
64794: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
64795: }}}}}}}}m68k_incpc(2);
64796: fill_prefetch_2 ();
64797: endlabel3560: ;
64798: return 10;
64799: }
64800: unsigned long REGPARAM2 CPUFUNC(op_d068_5)(uae_u32 opcode) /* ADD */
64801: {
64802: uae_u32 srcreg = (opcode & 7);
64803: uae_u32 dstreg = (opcode >> 9) & 7;
64804: OpcodeFamily = 11; CurrentInstrCycles = 12;
64805: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
64806: if ((srca & 1) != 0) {
64807: last_fault_for_exception_3 = srca;
64808: last_op_for_exception_3 = opcode;
64809: last_addr_for_exception_3 = m68k_getpc() + 4;
64810: Exception(3, 0, M68000_EXC_SRC_CPU);
64811: goto endlabel3561;
64812: }
64813: {{ uae_s16 src = get_word(srca);
64814: { uae_s16 dst = m68k_dreg(regs, dstreg);
64815: { refill_prefetch (m68k_getpc(), 2);
64816: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
64817: { int flgs = ((uae_s16)(src)) < 0;
64818: int flgo = ((uae_s16)(dst)) < 0;
64819: int flgn = ((uae_s16)(newv)) < 0;
64820: SET_ZFLG (((uae_s16)(newv)) == 0);
64821: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
64822: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
64823: COPY_CARRY;
64824: SET_NFLG (flgn != 0);
64825: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
64826: }}}}}}}}m68k_incpc(4);
64827: fill_prefetch_0 ();
64828: endlabel3561: ;
64829: return 12;
64830: }
64831: unsigned long REGPARAM2 CPUFUNC(op_d070_5)(uae_u32 opcode) /* ADD */
64832: {
64833: uae_u32 srcreg = (opcode & 7);
64834: uae_u32 dstreg = (opcode >> 9) & 7;
64835: OpcodeFamily = 11; CurrentInstrCycles = 14;
64836: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
64837: BusCyclePenalty += 2;
64838: if ((srca & 1) != 0) {
64839: last_fault_for_exception_3 = srca;
64840: last_op_for_exception_3 = opcode;
64841: last_addr_for_exception_3 = m68k_getpc() + 4;
64842: Exception(3, 0, M68000_EXC_SRC_CPU);
64843: goto endlabel3562;
64844: }
64845: {{ uae_s16 src = get_word(srca);
64846: { uae_s16 dst = m68k_dreg(regs, dstreg);
64847: { refill_prefetch (m68k_getpc(), 2);
64848: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
64849: { int flgs = ((uae_s16)(src)) < 0;
64850: int flgo = ((uae_s16)(dst)) < 0;
64851: int flgn = ((uae_s16)(newv)) < 0;
64852: SET_ZFLG (((uae_s16)(newv)) == 0);
64853: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
64854: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
64855: COPY_CARRY;
64856: SET_NFLG (flgn != 0);
64857: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
64858: }}}}}}}}m68k_incpc(4);
64859: fill_prefetch_0 ();
64860: endlabel3562: ;
64861: return 14;
64862: }
64863: unsigned long REGPARAM2 CPUFUNC(op_d078_5)(uae_u32 opcode) /* ADD */
64864: {
64865: uae_u32 dstreg = (opcode >> 9) & 7;
64866: OpcodeFamily = 11; CurrentInstrCycles = 12;
64867: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
64868: if ((srca & 1) != 0) {
64869: last_fault_for_exception_3 = srca;
64870: last_op_for_exception_3 = opcode;
64871: last_addr_for_exception_3 = m68k_getpc() + 4;
64872: Exception(3, 0, M68000_EXC_SRC_CPU);
64873: goto endlabel3563;
64874: }
64875: {{ uae_s16 src = get_word(srca);
64876: { uae_s16 dst = m68k_dreg(regs, dstreg);
64877: { refill_prefetch (m68k_getpc(), 2);
64878: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
64879: { int flgs = ((uae_s16)(src)) < 0;
64880: int flgo = ((uae_s16)(dst)) < 0;
64881: int flgn = ((uae_s16)(newv)) < 0;
64882: SET_ZFLG (((uae_s16)(newv)) == 0);
64883: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
64884: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
64885: COPY_CARRY;
64886: SET_NFLG (flgn != 0);
64887: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
64888: }}}}}}}}m68k_incpc(4);
64889: fill_prefetch_0 ();
64890: endlabel3563: ;
64891: return 12;
64892: }
64893: unsigned long REGPARAM2 CPUFUNC(op_d079_5)(uae_u32 opcode) /* ADD */
64894: {
64895: uae_u32 dstreg = (opcode >> 9) & 7;
64896: OpcodeFamily = 11; CurrentInstrCycles = 16;
64897: {{ uaecptr srca = get_ilong_prefetch(2);
64898: if ((srca & 1) != 0) {
64899: last_fault_for_exception_3 = srca;
64900: last_op_for_exception_3 = opcode;
64901: last_addr_for_exception_3 = m68k_getpc() + 6;
64902: Exception(3, 0, M68000_EXC_SRC_CPU);
64903: goto endlabel3564;
64904: }
64905: {{ uae_s16 src = get_word(srca);
64906: { uae_s16 dst = m68k_dreg(regs, dstreg);
64907: { refill_prefetch (m68k_getpc(), 2);
64908: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
64909: { int flgs = ((uae_s16)(src)) < 0;
64910: int flgo = ((uae_s16)(dst)) < 0;
64911: int flgn = ((uae_s16)(newv)) < 0;
64912: SET_ZFLG (((uae_s16)(newv)) == 0);
64913: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
64914: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
64915: COPY_CARRY;
64916: SET_NFLG (flgn != 0);
64917: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
64918: }}}}}}}}m68k_incpc(6);
64919: fill_prefetch_0 ();
64920: endlabel3564: ;
64921: return 16;
64922: }
64923: unsigned long REGPARAM2 CPUFUNC(op_d07a_5)(uae_u32 opcode) /* ADD */
64924: {
64925: uae_u32 dstreg = (opcode >> 9) & 7;
64926: OpcodeFamily = 11; CurrentInstrCycles = 12;
64927: {{ uaecptr srca = m68k_getpc () + 2;
64928: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
64929: if ((srca & 1) != 0) {
64930: last_fault_for_exception_3 = srca;
64931: last_op_for_exception_3 = opcode;
64932: last_addr_for_exception_3 = m68k_getpc() + 4;
64933: Exception(3, 0, M68000_EXC_SRC_CPU);
64934: goto endlabel3565;
64935: }
64936: {{ uae_s16 src = get_word(srca);
64937: { uae_s16 dst = m68k_dreg(regs, dstreg);
64938: { refill_prefetch (m68k_getpc(), 2);
64939: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
64940: { int flgs = ((uae_s16)(src)) < 0;
64941: int flgo = ((uae_s16)(dst)) < 0;
64942: int flgn = ((uae_s16)(newv)) < 0;
64943: SET_ZFLG (((uae_s16)(newv)) == 0);
64944: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
64945: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
64946: COPY_CARRY;
64947: SET_NFLG (flgn != 0);
64948: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
64949: }}}}}}}}m68k_incpc(4);
64950: fill_prefetch_0 ();
64951: endlabel3565: ;
64952: return 12;
64953: }
64954: unsigned long REGPARAM2 CPUFUNC(op_d07b_5)(uae_u32 opcode) /* ADD */
64955: {
64956: uae_u32 dstreg = (opcode >> 9) & 7;
64957: OpcodeFamily = 11; CurrentInstrCycles = 14;
64958: {{ uaecptr tmppc = m68k_getpc() + 2;
64959: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
64960: BusCyclePenalty += 2;
64961: if ((srca & 1) != 0) {
64962: last_fault_for_exception_3 = srca;
64963: last_op_for_exception_3 = opcode;
64964: last_addr_for_exception_3 = m68k_getpc() + 4;
64965: Exception(3, 0, M68000_EXC_SRC_CPU);
64966: goto endlabel3566;
64967: }
64968: {{ uae_s16 src = get_word(srca);
64969: { uae_s16 dst = m68k_dreg(regs, dstreg);
64970: { refill_prefetch (m68k_getpc(), 2);
64971: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
64972: { int flgs = ((uae_s16)(src)) < 0;
64973: int flgo = ((uae_s16)(dst)) < 0;
64974: int flgn = ((uae_s16)(newv)) < 0;
64975: SET_ZFLG (((uae_s16)(newv)) == 0);
64976: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
64977: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
64978: COPY_CARRY;
64979: SET_NFLG (flgn != 0);
64980: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
64981: }}}}}}}}m68k_incpc(4);
64982: fill_prefetch_0 ();
64983: endlabel3566: ;
64984: return 14;
64985: }
64986: unsigned long REGPARAM2 CPUFUNC(op_d07c_5)(uae_u32 opcode) /* ADD */
64987: {
64988: uae_u32 dstreg = (opcode >> 9) & 7;
64989: OpcodeFamily = 11; CurrentInstrCycles = 8;
64990: {{ uae_s16 src = get_iword_prefetch(2);
64991: { uae_s16 dst = m68k_dreg(regs, dstreg);
64992: { refill_prefetch (m68k_getpc(), 2);
64993: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
64994: { int flgs = ((uae_s16)(src)) < 0;
64995: int flgo = ((uae_s16)(dst)) < 0;
64996: int flgn = ((uae_s16)(newv)) < 0;
64997: SET_ZFLG (((uae_s16)(newv)) == 0);
64998: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
64999: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
65000: COPY_CARRY;
65001: SET_NFLG (flgn != 0);
65002: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
65003: }}}}}}m68k_incpc(4);
65004: fill_prefetch_0 ();
65005: return 8;
65006: }
65007: unsigned long REGPARAM2 CPUFUNC(op_d080_5)(uae_u32 opcode) /* ADD */
65008: {
65009: uae_u32 srcreg = (opcode & 7);
65010: uae_u32 dstreg = (opcode >> 9) & 7;
65011: OpcodeFamily = 11; CurrentInstrCycles = 8;
65012: {{ uae_s32 src = m68k_dreg(regs, srcreg);
65013: { uae_s32 dst = m68k_dreg(regs, dstreg);
65014: { refill_prefetch (m68k_getpc(), 2);
65015: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
65016: { int flgs = ((uae_s32)(src)) < 0;
65017: int flgo = ((uae_s32)(dst)) < 0;
65018: int flgn = ((uae_s32)(newv)) < 0;
65019: SET_ZFLG (((uae_s32)(newv)) == 0);
65020: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
65021: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
65022: COPY_CARRY;
65023: SET_NFLG (flgn != 0);
65024: m68k_dreg(regs, dstreg) = (newv);
65025: }}}}}}m68k_incpc(2);
65026: fill_prefetch_2 ();
65027: return 8;
65028: }
65029: unsigned long REGPARAM2 CPUFUNC(op_d088_5)(uae_u32 opcode) /* ADD */
65030: {
65031: uae_u32 srcreg = (opcode & 7);
65032: uae_u32 dstreg = (opcode >> 9) & 7;
65033: OpcodeFamily = 11; CurrentInstrCycles = 8;
65034: {{ uae_s32 src = m68k_areg(regs, srcreg);
65035: { uae_s32 dst = m68k_dreg(regs, dstreg);
65036: { refill_prefetch (m68k_getpc(), 2);
65037: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
65038: { int flgs = ((uae_s32)(src)) < 0;
65039: int flgo = ((uae_s32)(dst)) < 0;
65040: int flgn = ((uae_s32)(newv)) < 0;
65041: SET_ZFLG (((uae_s32)(newv)) == 0);
65042: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
65043: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
65044: COPY_CARRY;
65045: SET_NFLG (flgn != 0);
65046: m68k_dreg(regs, dstreg) = (newv);
65047: }}}}}}m68k_incpc(2);
65048: fill_prefetch_2 ();
65049: return 8;
65050: }
65051: unsigned long REGPARAM2 CPUFUNC(op_d090_5)(uae_u32 opcode) /* ADD */
65052: {
65053: uae_u32 srcreg = (opcode & 7);
65054: uae_u32 dstreg = (opcode >> 9) & 7;
65055: OpcodeFamily = 11; CurrentInstrCycles = 14;
65056: {{ uaecptr srca = m68k_areg(regs, srcreg);
65057: if ((srca & 1) != 0) {
65058: last_fault_for_exception_3 = srca;
65059: last_op_for_exception_3 = opcode;
65060: last_addr_for_exception_3 = m68k_getpc() + 2;
65061: Exception(3, 0, M68000_EXC_SRC_CPU);
65062: goto endlabel3570;
65063: }
65064: {{ uae_s32 src = get_long(srca);
65065: { uae_s32 dst = m68k_dreg(regs, dstreg);
65066: { refill_prefetch (m68k_getpc(), 2);
65067: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
65068: { int flgs = ((uae_s32)(src)) < 0;
65069: int flgo = ((uae_s32)(dst)) < 0;
65070: int flgn = ((uae_s32)(newv)) < 0;
65071: SET_ZFLG (((uae_s32)(newv)) == 0);
65072: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
65073: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
65074: COPY_CARRY;
65075: SET_NFLG (flgn != 0);
65076: m68k_dreg(regs, dstreg) = (newv);
65077: }}}}}}}}m68k_incpc(2);
65078: fill_prefetch_2 ();
65079: endlabel3570: ;
65080: return 14;
65081: }
65082: unsigned long REGPARAM2 CPUFUNC(op_d098_5)(uae_u32 opcode) /* ADD */
65083: {
65084: uae_u32 srcreg = (opcode & 7);
65085: uae_u32 dstreg = (opcode >> 9) & 7;
65086: OpcodeFamily = 11; CurrentInstrCycles = 14;
65087: {{ uaecptr srca = m68k_areg(regs, srcreg);
65088: if ((srca & 1) != 0) {
65089: last_fault_for_exception_3 = srca;
65090: last_op_for_exception_3 = opcode;
65091: last_addr_for_exception_3 = m68k_getpc() + 2;
65092: Exception(3, 0, M68000_EXC_SRC_CPU);
65093: goto endlabel3571;
65094: }
65095: {{ uae_s32 src = get_long(srca);
65096: m68k_areg(regs, srcreg) += 4;
65097: { uae_s32 dst = m68k_dreg(regs, dstreg);
65098: { refill_prefetch (m68k_getpc(), 2);
65099: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
65100: { int flgs = ((uae_s32)(src)) < 0;
65101: int flgo = ((uae_s32)(dst)) < 0;
65102: int flgn = ((uae_s32)(newv)) < 0;
65103: SET_ZFLG (((uae_s32)(newv)) == 0);
65104: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
65105: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
65106: COPY_CARRY;
65107: SET_NFLG (flgn != 0);
65108: m68k_dreg(regs, dstreg) = (newv);
65109: }}}}}}}}m68k_incpc(2);
65110: fill_prefetch_2 ();
65111: endlabel3571: ;
65112: return 14;
65113: }
65114: unsigned long REGPARAM2 CPUFUNC(op_d0a0_5)(uae_u32 opcode) /* ADD */
65115: {
65116: uae_u32 srcreg = (opcode & 7);
65117: uae_u32 dstreg = (opcode >> 9) & 7;
65118: OpcodeFamily = 11; CurrentInstrCycles = 16;
65119: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
65120: if ((srca & 1) != 0) {
65121: last_fault_for_exception_3 = srca;
65122: last_op_for_exception_3 = opcode;
65123: last_addr_for_exception_3 = m68k_getpc() + 2;
65124: Exception(3, 0, M68000_EXC_SRC_CPU);
65125: goto endlabel3572;
65126: }
65127: {{ uae_s32 src = get_long(srca);
65128: m68k_areg (regs, srcreg) = srca;
65129: { uae_s32 dst = m68k_dreg(regs, dstreg);
65130: { refill_prefetch (m68k_getpc(), 2);
65131: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
65132: { int flgs = ((uae_s32)(src)) < 0;
65133: int flgo = ((uae_s32)(dst)) < 0;
65134: int flgn = ((uae_s32)(newv)) < 0;
65135: SET_ZFLG (((uae_s32)(newv)) == 0);
65136: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
65137: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
65138: COPY_CARRY;
65139: SET_NFLG (flgn != 0);
65140: m68k_dreg(regs, dstreg) = (newv);
65141: }}}}}}}}m68k_incpc(2);
65142: fill_prefetch_2 ();
65143: endlabel3572: ;
65144: return 16;
65145: }
65146: unsigned long REGPARAM2 CPUFUNC(op_d0a8_5)(uae_u32 opcode) /* ADD */
65147: {
65148: uae_u32 srcreg = (opcode & 7);
65149: uae_u32 dstreg = (opcode >> 9) & 7;
65150: OpcodeFamily = 11; CurrentInstrCycles = 18;
65151: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
65152: if ((srca & 1) != 0) {
65153: last_fault_for_exception_3 = srca;
65154: last_op_for_exception_3 = opcode;
65155: last_addr_for_exception_3 = m68k_getpc() + 4;
65156: Exception(3, 0, M68000_EXC_SRC_CPU);
65157: goto endlabel3573;
65158: }
65159: {{ uae_s32 src = get_long(srca);
65160: { uae_s32 dst = m68k_dreg(regs, dstreg);
65161: { refill_prefetch (m68k_getpc(), 2);
65162: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
65163: { int flgs = ((uae_s32)(src)) < 0;
65164: int flgo = ((uae_s32)(dst)) < 0;
65165: int flgn = ((uae_s32)(newv)) < 0;
65166: SET_ZFLG (((uae_s32)(newv)) == 0);
65167: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
65168: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
65169: COPY_CARRY;
65170: SET_NFLG (flgn != 0);
65171: m68k_dreg(regs, dstreg) = (newv);
65172: }}}}}}}}m68k_incpc(4);
65173: fill_prefetch_0 ();
65174: endlabel3573: ;
65175: return 18;
65176: }
65177: unsigned long REGPARAM2 CPUFUNC(op_d0b0_5)(uae_u32 opcode) /* ADD */
65178: {
65179: uae_u32 srcreg = (opcode & 7);
65180: uae_u32 dstreg = (opcode >> 9) & 7;
65181: OpcodeFamily = 11; CurrentInstrCycles = 20;
65182: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
65183: BusCyclePenalty += 2;
65184: if ((srca & 1) != 0) {
65185: last_fault_for_exception_3 = srca;
65186: last_op_for_exception_3 = opcode;
65187: last_addr_for_exception_3 = m68k_getpc() + 4;
65188: Exception(3, 0, M68000_EXC_SRC_CPU);
65189: goto endlabel3574;
65190: }
65191: {{ uae_s32 src = get_long(srca);
65192: { uae_s32 dst = m68k_dreg(regs, dstreg);
65193: { refill_prefetch (m68k_getpc(), 2);
65194: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
65195: { int flgs = ((uae_s32)(src)) < 0;
65196: int flgo = ((uae_s32)(dst)) < 0;
65197: int flgn = ((uae_s32)(newv)) < 0;
65198: SET_ZFLG (((uae_s32)(newv)) == 0);
65199: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
65200: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
65201: COPY_CARRY;
65202: SET_NFLG (flgn != 0);
65203: m68k_dreg(regs, dstreg) = (newv);
65204: }}}}}}}}m68k_incpc(4);
65205: fill_prefetch_0 ();
65206: endlabel3574: ;
65207: return 20;
65208: }
65209: unsigned long REGPARAM2 CPUFUNC(op_d0b8_5)(uae_u32 opcode) /* ADD */
65210: {
65211: uae_u32 dstreg = (opcode >> 9) & 7;
65212: OpcodeFamily = 11; CurrentInstrCycles = 18;
65213: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
65214: if ((srca & 1) != 0) {
65215: last_fault_for_exception_3 = srca;
65216: last_op_for_exception_3 = opcode;
65217: last_addr_for_exception_3 = m68k_getpc() + 4;
65218: Exception(3, 0, M68000_EXC_SRC_CPU);
65219: goto endlabel3575;
65220: }
65221: {{ uae_s32 src = get_long(srca);
65222: { uae_s32 dst = m68k_dreg(regs, dstreg);
65223: { refill_prefetch (m68k_getpc(), 2);
65224: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
65225: { int flgs = ((uae_s32)(src)) < 0;
65226: int flgo = ((uae_s32)(dst)) < 0;
65227: int flgn = ((uae_s32)(newv)) < 0;
65228: SET_ZFLG (((uae_s32)(newv)) == 0);
65229: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
65230: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
65231: COPY_CARRY;
65232: SET_NFLG (flgn != 0);
65233: m68k_dreg(regs, dstreg) = (newv);
65234: }}}}}}}}m68k_incpc(4);
65235: fill_prefetch_0 ();
65236: endlabel3575: ;
65237: return 18;
65238: }
65239: unsigned long REGPARAM2 CPUFUNC(op_d0b9_5)(uae_u32 opcode) /* ADD */
65240: {
65241: uae_u32 dstreg = (opcode >> 9) & 7;
65242: OpcodeFamily = 11; CurrentInstrCycles = 22;
65243: {{ uaecptr srca = get_ilong_prefetch(2);
65244: if ((srca & 1) != 0) {
65245: last_fault_for_exception_3 = srca;
65246: last_op_for_exception_3 = opcode;
65247: last_addr_for_exception_3 = m68k_getpc() + 6;
65248: Exception(3, 0, M68000_EXC_SRC_CPU);
65249: goto endlabel3576;
65250: }
65251: {{ uae_s32 src = get_long(srca);
65252: { uae_s32 dst = m68k_dreg(regs, dstreg);
65253: { refill_prefetch (m68k_getpc(), 2);
65254: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
65255: { int flgs = ((uae_s32)(src)) < 0;
65256: int flgo = ((uae_s32)(dst)) < 0;
65257: int flgn = ((uae_s32)(newv)) < 0;
65258: SET_ZFLG (((uae_s32)(newv)) == 0);
65259: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
65260: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
65261: COPY_CARRY;
65262: SET_NFLG (flgn != 0);
65263: m68k_dreg(regs, dstreg) = (newv);
65264: }}}}}}}}m68k_incpc(6);
65265: fill_prefetch_0 ();
65266: endlabel3576: ;
65267: return 22;
65268: }
65269: unsigned long REGPARAM2 CPUFUNC(op_d0ba_5)(uae_u32 opcode) /* ADD */
65270: {
65271: uae_u32 dstreg = (opcode >> 9) & 7;
65272: OpcodeFamily = 11; CurrentInstrCycles = 18;
65273: {{ uaecptr srca = m68k_getpc () + 2;
65274: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
65275: if ((srca & 1) != 0) {
65276: last_fault_for_exception_3 = srca;
65277: last_op_for_exception_3 = opcode;
65278: last_addr_for_exception_3 = m68k_getpc() + 4;
65279: Exception(3, 0, M68000_EXC_SRC_CPU);
65280: goto endlabel3577;
65281: }
65282: {{ uae_s32 src = get_long(srca);
65283: { uae_s32 dst = m68k_dreg(regs, dstreg);
65284: { refill_prefetch (m68k_getpc(), 2);
65285: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
65286: { int flgs = ((uae_s32)(src)) < 0;
65287: int flgo = ((uae_s32)(dst)) < 0;
65288: int flgn = ((uae_s32)(newv)) < 0;
65289: SET_ZFLG (((uae_s32)(newv)) == 0);
65290: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
65291: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
65292: COPY_CARRY;
65293: SET_NFLG (flgn != 0);
65294: m68k_dreg(regs, dstreg) = (newv);
65295: }}}}}}}}m68k_incpc(4);
65296: fill_prefetch_0 ();
65297: endlabel3577: ;
65298: return 18;
65299: }
65300: unsigned long REGPARAM2 CPUFUNC(op_d0bb_5)(uae_u32 opcode) /* ADD */
65301: {
65302: uae_u32 dstreg = (opcode >> 9) & 7;
65303: OpcodeFamily = 11; CurrentInstrCycles = 20;
65304: {{ uaecptr tmppc = m68k_getpc() + 2;
65305: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
65306: BusCyclePenalty += 2;
65307: if ((srca & 1) != 0) {
65308: last_fault_for_exception_3 = srca;
65309: last_op_for_exception_3 = opcode;
65310: last_addr_for_exception_3 = m68k_getpc() + 4;
65311: Exception(3, 0, M68000_EXC_SRC_CPU);
65312: goto endlabel3578;
65313: }
65314: {{ uae_s32 src = get_long(srca);
65315: { uae_s32 dst = m68k_dreg(regs, dstreg);
65316: { refill_prefetch (m68k_getpc(), 2);
65317: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
65318: { int flgs = ((uae_s32)(src)) < 0;
65319: int flgo = ((uae_s32)(dst)) < 0;
65320: int flgn = ((uae_s32)(newv)) < 0;
65321: SET_ZFLG (((uae_s32)(newv)) == 0);
65322: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
65323: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
65324: COPY_CARRY;
65325: SET_NFLG (flgn != 0);
65326: m68k_dreg(regs, dstreg) = (newv);
65327: }}}}}}}}m68k_incpc(4);
65328: fill_prefetch_0 ();
65329: endlabel3578: ;
65330: return 20;
65331: }
65332: unsigned long REGPARAM2 CPUFUNC(op_d0bc_5)(uae_u32 opcode) /* ADD */
65333: {
65334: uae_u32 dstreg = (opcode >> 9) & 7;
65335: OpcodeFamily = 11; CurrentInstrCycles = 16;
65336: {{ uae_s32 src = get_ilong_prefetch(2);
65337: { uae_s32 dst = m68k_dreg(regs, dstreg);
65338: { refill_prefetch (m68k_getpc(), 2);
65339: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
65340: { int flgs = ((uae_s32)(src)) < 0;
65341: int flgo = ((uae_s32)(dst)) < 0;
65342: int flgn = ((uae_s32)(newv)) < 0;
65343: SET_ZFLG (((uae_s32)(newv)) == 0);
65344: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
65345: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
65346: COPY_CARRY;
65347: SET_NFLG (flgn != 0);
65348: m68k_dreg(regs, dstreg) = (newv);
65349: }}}}}}m68k_incpc(6);
65350: fill_prefetch_0 ();
65351: return 16;
65352: }
65353: unsigned long REGPARAM2 CPUFUNC(op_d0c0_5)(uae_u32 opcode) /* ADDA */
65354: {
65355: uae_u32 srcreg = (opcode & 7);
65356: uae_u32 dstreg = (opcode >> 9) & 7;
65357: OpcodeFamily = 12; CurrentInstrCycles = 8;
65358: {{ uae_s16 src = m68k_dreg(regs, srcreg);
65359: { uae_s32 dst = m68k_areg(regs, dstreg);
65360: { uae_u32 newv = dst + src;
65361: m68k_areg(regs, dstreg) = (newv);
65362: }}}}m68k_incpc(2);
65363: fill_prefetch_2 ();
65364: return 8;
65365: }
65366: unsigned long REGPARAM2 CPUFUNC(op_d0c8_5)(uae_u32 opcode) /* ADDA */
65367: {
65368: uae_u32 srcreg = (opcode & 7);
65369: uae_u32 dstreg = (opcode >> 9) & 7;
65370: OpcodeFamily = 12; CurrentInstrCycles = 8;
65371: {{ uae_s16 src = m68k_areg(regs, srcreg);
65372: { uae_s32 dst = m68k_areg(regs, dstreg);
65373: { uae_u32 newv = dst + src;
65374: m68k_areg(regs, dstreg) = (newv);
65375: }}}}m68k_incpc(2);
65376: fill_prefetch_2 ();
65377: return 8;
65378: }
65379: unsigned long REGPARAM2 CPUFUNC(op_d0d0_5)(uae_u32 opcode) /* ADDA */
65380: {
65381: uae_u32 srcreg = (opcode & 7);
65382: uae_u32 dstreg = (opcode >> 9) & 7;
65383: OpcodeFamily = 12; CurrentInstrCycles = 12;
65384: {{ uaecptr srca = m68k_areg(regs, srcreg);
65385: if ((srca & 1) != 0) {
65386: last_fault_for_exception_3 = srca;
65387: last_op_for_exception_3 = opcode;
65388: last_addr_for_exception_3 = m68k_getpc() + 2;
65389: Exception(3, 0, M68000_EXC_SRC_CPU);
65390: goto endlabel3582;
65391: }
65392: {{ uae_s16 src = get_word(srca);
65393: { uae_s32 dst = m68k_areg(regs, dstreg);
65394: { uae_u32 newv = dst + src;
65395: m68k_areg(regs, dstreg) = (newv);
65396: }}}}}}m68k_incpc(2);
65397: fill_prefetch_2 ();
65398: endlabel3582: ;
65399: return 12;
65400: }
65401: unsigned long REGPARAM2 CPUFUNC(op_d0d8_5)(uae_u32 opcode) /* ADDA */
65402: {
65403: uae_u32 srcreg = (opcode & 7);
65404: uae_u32 dstreg = (opcode >> 9) & 7;
65405: OpcodeFamily = 12; CurrentInstrCycles = 12;
65406: {{ uaecptr srca = m68k_areg(regs, srcreg);
65407: if ((srca & 1) != 0) {
65408: last_fault_for_exception_3 = srca;
65409: last_op_for_exception_3 = opcode;
65410: last_addr_for_exception_3 = m68k_getpc() + 2;
65411: Exception(3, 0, M68000_EXC_SRC_CPU);
65412: goto endlabel3583;
65413: }
65414: {{ uae_s16 src = get_word(srca);
65415: m68k_areg(regs, srcreg) += 2;
65416: { uae_s32 dst = m68k_areg(regs, dstreg);
65417: { uae_u32 newv = dst + src;
65418: m68k_areg(regs, dstreg) = (newv);
65419: }}}}}}m68k_incpc(2);
65420: fill_prefetch_2 ();
65421: endlabel3583: ;
65422: return 12;
65423: }
65424: unsigned long REGPARAM2 CPUFUNC(op_d0e0_5)(uae_u32 opcode) /* ADDA */
65425: {
65426: uae_u32 srcreg = (opcode & 7);
65427: uae_u32 dstreg = (opcode >> 9) & 7;
65428: OpcodeFamily = 12; CurrentInstrCycles = 14;
65429: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
65430: if ((srca & 1) != 0) {
65431: last_fault_for_exception_3 = srca;
65432: last_op_for_exception_3 = opcode;
65433: last_addr_for_exception_3 = m68k_getpc() + 2;
65434: Exception(3, 0, M68000_EXC_SRC_CPU);
65435: goto endlabel3584;
65436: }
65437: {{ uae_s16 src = get_word(srca);
65438: m68k_areg (regs, srcreg) = srca;
65439: { uae_s32 dst = m68k_areg(regs, dstreg);
65440: { uae_u32 newv = dst + src;
65441: m68k_areg(regs, dstreg) = (newv);
65442: }}}}}}m68k_incpc(2);
65443: fill_prefetch_2 ();
65444: endlabel3584: ;
65445: return 14;
65446: }
65447: unsigned long REGPARAM2 CPUFUNC(op_d0e8_5)(uae_u32 opcode) /* ADDA */
65448: {
65449: uae_u32 srcreg = (opcode & 7);
65450: uae_u32 dstreg = (opcode >> 9) & 7;
65451: OpcodeFamily = 12; CurrentInstrCycles = 16;
65452: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
65453: if ((srca & 1) != 0) {
65454: last_fault_for_exception_3 = srca;
65455: last_op_for_exception_3 = opcode;
65456: last_addr_for_exception_3 = m68k_getpc() + 4;
65457: Exception(3, 0, M68000_EXC_SRC_CPU);
65458: goto endlabel3585;
65459: }
65460: {{ uae_s16 src = get_word(srca);
65461: { uae_s32 dst = m68k_areg(regs, dstreg);
65462: { uae_u32 newv = dst + src;
65463: m68k_areg(regs, dstreg) = (newv);
65464: }}}}}}m68k_incpc(4);
65465: fill_prefetch_0 ();
65466: endlabel3585: ;
65467: return 16;
65468: }
65469: unsigned long REGPARAM2 CPUFUNC(op_d0f0_5)(uae_u32 opcode) /* ADDA */
65470: {
65471: uae_u32 srcreg = (opcode & 7);
65472: uae_u32 dstreg = (opcode >> 9) & 7;
65473: OpcodeFamily = 12; CurrentInstrCycles = 18;
65474: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
65475: BusCyclePenalty += 2;
65476: if ((srca & 1) != 0) {
65477: last_fault_for_exception_3 = srca;
65478: last_op_for_exception_3 = opcode;
65479: last_addr_for_exception_3 = m68k_getpc() + 4;
65480: Exception(3, 0, M68000_EXC_SRC_CPU);
65481: goto endlabel3586;
65482: }
65483: {{ uae_s16 src = get_word(srca);
65484: { uae_s32 dst = m68k_areg(regs, dstreg);
65485: { uae_u32 newv = dst + src;
65486: m68k_areg(regs, dstreg) = (newv);
65487: }}}}}}m68k_incpc(4);
65488: fill_prefetch_0 ();
65489: endlabel3586: ;
65490: return 18;
65491: }
65492: unsigned long REGPARAM2 CPUFUNC(op_d0f8_5)(uae_u32 opcode) /* ADDA */
65493: {
65494: uae_u32 dstreg = (opcode >> 9) & 7;
65495: OpcodeFamily = 12; CurrentInstrCycles = 16;
65496: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
65497: if ((srca & 1) != 0) {
65498: last_fault_for_exception_3 = srca;
65499: last_op_for_exception_3 = opcode;
65500: last_addr_for_exception_3 = m68k_getpc() + 4;
65501: Exception(3, 0, M68000_EXC_SRC_CPU);
65502: goto endlabel3587;
65503: }
65504: {{ uae_s16 src = get_word(srca);
65505: { uae_s32 dst = m68k_areg(regs, dstreg);
65506: { uae_u32 newv = dst + src;
65507: m68k_areg(regs, dstreg) = (newv);
65508: }}}}}}m68k_incpc(4);
65509: fill_prefetch_0 ();
65510: endlabel3587: ;
65511: return 16;
65512: }
65513: unsigned long REGPARAM2 CPUFUNC(op_d0f9_5)(uae_u32 opcode) /* ADDA */
65514: {
65515: uae_u32 dstreg = (opcode >> 9) & 7;
65516: OpcodeFamily = 12; CurrentInstrCycles = 20;
65517: {{ uaecptr srca = get_ilong_prefetch(2);
65518: if ((srca & 1) != 0) {
65519: last_fault_for_exception_3 = srca;
65520: last_op_for_exception_3 = opcode;
65521: last_addr_for_exception_3 = m68k_getpc() + 6;
65522: Exception(3, 0, M68000_EXC_SRC_CPU);
65523: goto endlabel3588;
65524: }
65525: {{ uae_s16 src = get_word(srca);
65526: { uae_s32 dst = m68k_areg(regs, dstreg);
65527: { uae_u32 newv = dst + src;
65528: m68k_areg(regs, dstreg) = (newv);
65529: }}}}}}m68k_incpc(6);
65530: fill_prefetch_0 ();
65531: endlabel3588: ;
65532: return 20;
65533: }
65534: unsigned long REGPARAM2 CPUFUNC(op_d0fa_5)(uae_u32 opcode) /* ADDA */
65535: {
65536: uae_u32 dstreg = (opcode >> 9) & 7;
65537: OpcodeFamily = 12; CurrentInstrCycles = 16;
65538: {{ uaecptr srca = m68k_getpc () + 2;
65539: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
65540: if ((srca & 1) != 0) {
65541: last_fault_for_exception_3 = srca;
65542: last_op_for_exception_3 = opcode;
65543: last_addr_for_exception_3 = m68k_getpc() + 4;
65544: Exception(3, 0, M68000_EXC_SRC_CPU);
65545: goto endlabel3589;
65546: }
65547: {{ uae_s16 src = get_word(srca);
65548: { uae_s32 dst = m68k_areg(regs, dstreg);
65549: { uae_u32 newv = dst + src;
65550: m68k_areg(regs, dstreg) = (newv);
65551: }}}}}}m68k_incpc(4);
65552: fill_prefetch_0 ();
65553: endlabel3589: ;
65554: return 16;
65555: }
65556: unsigned long REGPARAM2 CPUFUNC(op_d0fb_5)(uae_u32 opcode) /* ADDA */
65557: {
65558: uae_u32 dstreg = (opcode >> 9) & 7;
65559: OpcodeFamily = 12; CurrentInstrCycles = 18;
65560: {{ uaecptr tmppc = m68k_getpc() + 2;
65561: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
65562: BusCyclePenalty += 2;
65563: if ((srca & 1) != 0) {
65564: last_fault_for_exception_3 = srca;
65565: last_op_for_exception_3 = opcode;
65566: last_addr_for_exception_3 = m68k_getpc() + 4;
65567: Exception(3, 0, M68000_EXC_SRC_CPU);
65568: goto endlabel3590;
65569: }
65570: {{ uae_s16 src = get_word(srca);
65571: { uae_s32 dst = m68k_areg(regs, dstreg);
65572: { uae_u32 newv = dst + src;
65573: m68k_areg(regs, dstreg) = (newv);
65574: }}}}}}m68k_incpc(4);
65575: fill_prefetch_0 ();
65576: endlabel3590: ;
65577: return 18;
65578: }
65579: unsigned long REGPARAM2 CPUFUNC(op_d0fc_5)(uae_u32 opcode) /* ADDA */
65580: {
65581: uae_u32 dstreg = (opcode >> 9) & 7;
65582: OpcodeFamily = 12; CurrentInstrCycles = 12;
65583: {{ uae_s16 src = get_iword_prefetch(2);
65584: { uae_s32 dst = m68k_areg(regs, dstreg);
65585: { uae_u32 newv = dst + src;
65586: m68k_areg(regs, dstreg) = (newv);
65587: }}}}m68k_incpc(4);
65588: fill_prefetch_0 ();
65589: return 12;
65590: }
65591: unsigned long REGPARAM2 CPUFUNC(op_d100_5)(uae_u32 opcode) /* ADDX */
65592: {
65593: uae_u32 srcreg = (opcode & 7);
65594: uae_u32 dstreg = (opcode >> 9) & 7;
65595: OpcodeFamily = 13; CurrentInstrCycles = 4;
65596: {{ uae_s8 src = m68k_dreg(regs, srcreg);
65597: { uae_s8 dst = m68k_dreg(regs, dstreg);
65598: { uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0);
65599: { int flgs = ((uae_s8)(src)) < 0;
65600: int flgo = ((uae_s8)(dst)) < 0;
65601: int flgn = ((uae_s8)(newv)) < 0;
65602: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
65603: SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn)));
65604: COPY_CARRY;
65605: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
65606: SET_NFLG (((uae_s8)(newv)) < 0);
65607: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((newv) & 0xff);
65608: }}}}}m68k_incpc(2);
65609: fill_prefetch_2 ();
65610: return 4;
65611: }
65612: unsigned long REGPARAM2 CPUFUNC(op_d108_5)(uae_u32 opcode) /* ADDX */
65613: {
65614: uae_u32 srcreg = (opcode & 7);
65615: uae_u32 dstreg = (opcode >> 9) & 7;
65616: OpcodeFamily = 13; CurrentInstrCycles = 18;
65617: {{ uaecptr srca = m68k_areg(regs, srcreg) - areg_byteinc[srcreg];
65618: { uae_s8 src = get_byte(srca);
65619: m68k_areg (regs, srcreg) = srca;
65620: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
65621: { uae_s8 dst = get_byte(dsta);
65622: m68k_areg (regs, dstreg) = dsta;
65623: { uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0);
65624: { int flgs = ((uae_s8)(src)) < 0;
65625: int flgo = ((uae_s8)(dst)) < 0;
65626: int flgn = ((uae_s8)(newv)) < 0;
65627: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
65628: SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn)));
65629: COPY_CARRY;
65630: SET_ZFLG (GET_ZFLG & (((uae_s8)(newv)) == 0));
65631: SET_NFLG (((uae_s8)(newv)) < 0);
65632: m68k_incpc(2);
65633: fill_prefetch_2 ();
65634: put_byte(dsta,newv);
65635: }}}}}}}return 18;
65636: }
65637: unsigned long REGPARAM2 CPUFUNC(op_d110_5)(uae_u32 opcode) /* ADD */
65638: {
65639: uae_u32 srcreg = ((opcode >> 9) & 7);
65640: uae_u32 dstreg = opcode & 7;
65641: OpcodeFamily = 11; CurrentInstrCycles = 12;
65642: {{ uae_s8 src = m68k_dreg(regs, srcreg);
65643: { uaecptr dsta = m68k_areg(regs, dstreg);
65644: { uae_s8 dst = get_byte(dsta);
65645: { refill_prefetch (m68k_getpc(), 2);
65646: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
65647: { int flgs = ((uae_s8)(src)) < 0;
65648: int flgo = ((uae_s8)(dst)) < 0;
65649: int flgn = ((uae_s8)(newv)) < 0;
65650: SET_ZFLG (((uae_s8)(newv)) == 0);
65651: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
65652: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
65653: COPY_CARRY;
65654: SET_NFLG (flgn != 0);
65655: m68k_incpc(2);
65656: fill_prefetch_2 ();
65657: put_byte(dsta,newv);
65658: }}}}}}}return 12;
65659: }
65660: unsigned long REGPARAM2 CPUFUNC(op_d118_5)(uae_u32 opcode) /* ADD */
65661: {
65662: uae_u32 srcreg = ((opcode >> 9) & 7);
65663: uae_u32 dstreg = opcode & 7;
65664: OpcodeFamily = 11; CurrentInstrCycles = 12;
65665: {{ uae_s8 src = m68k_dreg(regs, srcreg);
65666: { uaecptr dsta = m68k_areg(regs, dstreg);
65667: { uae_s8 dst = get_byte(dsta);
65668: m68k_areg(regs, dstreg) += areg_byteinc[dstreg];
65669: { refill_prefetch (m68k_getpc(), 2);
65670: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
65671: { int flgs = ((uae_s8)(src)) < 0;
65672: int flgo = ((uae_s8)(dst)) < 0;
65673: int flgn = ((uae_s8)(newv)) < 0;
65674: SET_ZFLG (((uae_s8)(newv)) == 0);
65675: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
65676: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
65677: COPY_CARRY;
65678: SET_NFLG (flgn != 0);
65679: m68k_incpc(2);
65680: fill_prefetch_2 ();
65681: put_byte(dsta,newv);
65682: }}}}}}}return 12;
65683: }
65684: unsigned long REGPARAM2 CPUFUNC(op_d120_5)(uae_u32 opcode) /* ADD */
65685: {
65686: uae_u32 srcreg = ((opcode >> 9) & 7);
65687: uae_u32 dstreg = opcode & 7;
65688: OpcodeFamily = 11; CurrentInstrCycles = 14;
65689: {{ uae_s8 src = m68k_dreg(regs, srcreg);
65690: { uaecptr dsta = m68k_areg(regs, dstreg) - areg_byteinc[dstreg];
65691: { uae_s8 dst = get_byte(dsta);
65692: m68k_areg (regs, dstreg) = dsta;
65693: { refill_prefetch (m68k_getpc(), 2);
65694: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
65695: { int flgs = ((uae_s8)(src)) < 0;
65696: int flgo = ((uae_s8)(dst)) < 0;
65697: int flgn = ((uae_s8)(newv)) < 0;
65698: SET_ZFLG (((uae_s8)(newv)) == 0);
65699: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
65700: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
65701: COPY_CARRY;
65702: SET_NFLG (flgn != 0);
65703: m68k_incpc(2);
65704: fill_prefetch_2 ();
65705: put_byte(dsta,newv);
65706: }}}}}}}return 14;
65707: }
65708: unsigned long REGPARAM2 CPUFUNC(op_d128_5)(uae_u32 opcode) /* ADD */
65709: {
65710: uae_u32 srcreg = ((opcode >> 9) & 7);
65711: uae_u32 dstreg = opcode & 7;
65712: OpcodeFamily = 11; CurrentInstrCycles = 16;
65713: {{ uae_s8 src = m68k_dreg(regs, srcreg);
65714: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
65715: { uae_s8 dst = get_byte(dsta);
65716: { refill_prefetch (m68k_getpc(), 2);
65717: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
65718: { int flgs = ((uae_s8)(src)) < 0;
65719: int flgo = ((uae_s8)(dst)) < 0;
65720: int flgn = ((uae_s8)(newv)) < 0;
65721: SET_ZFLG (((uae_s8)(newv)) == 0);
65722: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
65723: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
65724: COPY_CARRY;
65725: SET_NFLG (flgn != 0);
65726: m68k_incpc(4);
65727: fill_prefetch_0 ();
65728: put_byte(dsta,newv);
65729: }}}}}}}return 16;
65730: }
65731: unsigned long REGPARAM2 CPUFUNC(op_d130_5)(uae_u32 opcode) /* ADD */
65732: {
65733: uae_u32 srcreg = ((opcode >> 9) & 7);
65734: uae_u32 dstreg = opcode & 7;
65735: OpcodeFamily = 11; CurrentInstrCycles = 18;
65736: {{ uae_s8 src = m68k_dreg(regs, srcreg);
65737: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
65738: BusCyclePenalty += 2;
65739: { uae_s8 dst = get_byte(dsta);
65740: { refill_prefetch (m68k_getpc(), 2);
65741: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
65742: { int flgs = ((uae_s8)(src)) < 0;
65743: int flgo = ((uae_s8)(dst)) < 0;
65744: int flgn = ((uae_s8)(newv)) < 0;
65745: SET_ZFLG (((uae_s8)(newv)) == 0);
65746: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
65747: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
65748: COPY_CARRY;
65749: SET_NFLG (flgn != 0);
65750: m68k_incpc(4);
65751: fill_prefetch_0 ();
65752: put_byte(dsta,newv);
65753: }}}}}}}return 18;
65754: }
65755: unsigned long REGPARAM2 CPUFUNC(op_d138_5)(uae_u32 opcode) /* ADD */
65756: {
65757: uae_u32 srcreg = ((opcode >> 9) & 7);
65758: OpcodeFamily = 11; CurrentInstrCycles = 16;
65759: {{ uae_s8 src = m68k_dreg(regs, srcreg);
65760: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
65761: { uae_s8 dst = get_byte(dsta);
65762: { refill_prefetch (m68k_getpc(), 2);
65763: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
65764: { int flgs = ((uae_s8)(src)) < 0;
65765: int flgo = ((uae_s8)(dst)) < 0;
65766: int flgn = ((uae_s8)(newv)) < 0;
65767: SET_ZFLG (((uae_s8)(newv)) == 0);
65768: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
65769: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
65770: COPY_CARRY;
65771: SET_NFLG (flgn != 0);
65772: m68k_incpc(4);
65773: fill_prefetch_0 ();
65774: put_byte(dsta,newv);
65775: }}}}}}}return 16;
65776: }
65777: unsigned long REGPARAM2 CPUFUNC(op_d139_5)(uae_u32 opcode) /* ADD */
65778: {
65779: uae_u32 srcreg = ((opcode >> 9) & 7);
65780: OpcodeFamily = 11; CurrentInstrCycles = 20;
65781: {{ uae_s8 src = m68k_dreg(regs, srcreg);
65782: { uaecptr dsta = get_ilong_prefetch(2);
65783: { uae_s8 dst = get_byte(dsta);
65784: { refill_prefetch (m68k_getpc(), 2);
65785: {uae_u32 newv = ((uae_s8)(dst)) + ((uae_s8)(src));
65786: { int flgs = ((uae_s8)(src)) < 0;
65787: int flgo = ((uae_s8)(dst)) < 0;
65788: int flgn = ((uae_s8)(newv)) < 0;
65789: SET_ZFLG (((uae_s8)(newv)) == 0);
65790: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
65791: SET_CFLG (((uae_u8)(~dst)) < ((uae_u8)(src)));
65792: COPY_CARRY;
65793: SET_NFLG (flgn != 0);
65794: m68k_incpc(6);
65795: fill_prefetch_0 ();
65796: put_byte(dsta,newv);
65797: }}}}}}}return 20;
65798: }
65799: unsigned long REGPARAM2 CPUFUNC(op_d140_5)(uae_u32 opcode) /* ADDX */
65800: {
65801: uae_u32 srcreg = (opcode & 7);
65802: uae_u32 dstreg = (opcode >> 9) & 7;
65803: OpcodeFamily = 13; CurrentInstrCycles = 4;
65804: {{ uae_s16 src = m68k_dreg(regs, srcreg);
65805: { uae_s16 dst = m68k_dreg(regs, dstreg);
65806: { uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0);
65807: { int flgs = ((uae_s16)(src)) < 0;
65808: int flgo = ((uae_s16)(dst)) < 0;
65809: int flgn = ((uae_s16)(newv)) < 0;
65810: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
65811: SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn)));
65812: COPY_CARRY;
65813: SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
65814: SET_NFLG (((uae_s16)(newv)) < 0);
65815: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((newv) & 0xffff);
65816: }}}}}m68k_incpc(2);
65817: fill_prefetch_2 ();
65818: return 4;
65819: }
65820: unsigned long REGPARAM2 CPUFUNC(op_d148_5)(uae_u32 opcode) /* ADDX */
65821: {
65822: uae_u32 srcreg = (opcode & 7);
65823: uae_u32 dstreg = (opcode >> 9) & 7;
65824: OpcodeFamily = 13; CurrentInstrCycles = 18;
65825: {{ uaecptr srca = m68k_areg(regs, srcreg) - 2;
65826: if ((srca & 1) != 0) {
65827: last_fault_for_exception_3 = srca;
65828: last_op_for_exception_3 = opcode;
65829: last_addr_for_exception_3 = m68k_getpc() + 2;
65830: Exception(3, 0, M68000_EXC_SRC_CPU);
65831: goto endlabel3602;
65832: }
65833: {{ uae_s16 src = get_word(srca);
65834: m68k_areg (regs, srcreg) = srca;
65835: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
65836: if ((dsta & 1) != 0) {
65837: last_fault_for_exception_3 = dsta;
65838: last_op_for_exception_3 = opcode;
65839: last_addr_for_exception_3 = m68k_getpc() + 2;
65840: Exception(3, 0, M68000_EXC_SRC_CPU);
65841: goto endlabel3602;
65842: }
65843: {{ uae_s16 dst = get_word(dsta);
65844: m68k_areg (regs, dstreg) = dsta;
65845: { uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0);
65846: { int flgs = ((uae_s16)(src)) < 0;
65847: int flgo = ((uae_s16)(dst)) < 0;
65848: int flgn = ((uae_s16)(newv)) < 0;
65849: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
65850: SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn)));
65851: COPY_CARRY;
65852: SET_ZFLG (GET_ZFLG & (((uae_s16)(newv)) == 0));
65853: SET_NFLG (((uae_s16)(newv)) < 0);
65854: m68k_incpc(2);
65855: fill_prefetch_2 ();
65856: put_word(dsta,newv);
65857: }}}}}}}}}endlabel3602: ;
65858: return 18;
65859: }
65860: unsigned long REGPARAM2 CPUFUNC(op_d150_5)(uae_u32 opcode) /* ADD */
65861: {
65862: uae_u32 srcreg = ((opcode >> 9) & 7);
65863: uae_u32 dstreg = opcode & 7;
65864: OpcodeFamily = 11; CurrentInstrCycles = 12;
65865: {{ uae_s16 src = m68k_dreg(regs, srcreg);
65866: { uaecptr dsta = m68k_areg(regs, dstreg);
65867: if ((dsta & 1) != 0) {
65868: last_fault_for_exception_3 = dsta;
65869: last_op_for_exception_3 = opcode;
65870: last_addr_for_exception_3 = m68k_getpc() + 2;
65871: Exception(3, 0, M68000_EXC_SRC_CPU);
65872: goto endlabel3603;
65873: }
65874: {{ uae_s16 dst = get_word(dsta);
65875: { refill_prefetch (m68k_getpc(), 2);
65876: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
65877: { int flgs = ((uae_s16)(src)) < 0;
65878: int flgo = ((uae_s16)(dst)) < 0;
65879: int flgn = ((uae_s16)(newv)) < 0;
65880: SET_ZFLG (((uae_s16)(newv)) == 0);
65881: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
65882: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
65883: COPY_CARRY;
65884: SET_NFLG (flgn != 0);
65885: m68k_incpc(2);
65886: fill_prefetch_2 ();
65887: put_word(dsta,newv);
65888: }}}}}}}}endlabel3603: ;
65889: return 12;
65890: }
65891: unsigned long REGPARAM2 CPUFUNC(op_d158_5)(uae_u32 opcode) /* ADD */
65892: {
65893: uae_u32 srcreg = ((opcode >> 9) & 7);
65894: uae_u32 dstreg = opcode & 7;
65895: OpcodeFamily = 11; CurrentInstrCycles = 12;
65896: {{ uae_s16 src = m68k_dreg(regs, srcreg);
65897: { uaecptr dsta = m68k_areg(regs, dstreg);
65898: if ((dsta & 1) != 0) {
65899: last_fault_for_exception_3 = dsta;
65900: last_op_for_exception_3 = opcode;
65901: last_addr_for_exception_3 = m68k_getpc() + 2;
65902: Exception(3, 0, M68000_EXC_SRC_CPU);
65903: goto endlabel3604;
65904: }
65905: {{ uae_s16 dst = get_word(dsta);
65906: m68k_areg(regs, dstreg) += 2;
65907: { refill_prefetch (m68k_getpc(), 2);
65908: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
65909: { int flgs = ((uae_s16)(src)) < 0;
65910: int flgo = ((uae_s16)(dst)) < 0;
65911: int flgn = ((uae_s16)(newv)) < 0;
65912: SET_ZFLG (((uae_s16)(newv)) == 0);
65913: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
65914: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
65915: COPY_CARRY;
65916: SET_NFLG (flgn != 0);
65917: m68k_incpc(2);
65918: fill_prefetch_2 ();
65919: put_word(dsta,newv);
65920: }}}}}}}}endlabel3604: ;
65921: return 12;
65922: }
65923: unsigned long REGPARAM2 CPUFUNC(op_d160_5)(uae_u32 opcode) /* ADD */
65924: {
65925: uae_u32 srcreg = ((opcode >> 9) & 7);
65926: uae_u32 dstreg = opcode & 7;
65927: OpcodeFamily = 11; CurrentInstrCycles = 14;
65928: {{ uae_s16 src = m68k_dreg(regs, srcreg);
65929: { uaecptr dsta = m68k_areg(regs, dstreg) - 2;
65930: if ((dsta & 1) != 0) {
65931: last_fault_for_exception_3 = dsta;
65932: last_op_for_exception_3 = opcode;
65933: last_addr_for_exception_3 = m68k_getpc() + 2;
65934: Exception(3, 0, M68000_EXC_SRC_CPU);
65935: goto endlabel3605;
65936: }
65937: {{ uae_s16 dst = get_word(dsta);
65938: m68k_areg (regs, dstreg) = dsta;
65939: { refill_prefetch (m68k_getpc(), 2);
65940: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
65941: { int flgs = ((uae_s16)(src)) < 0;
65942: int flgo = ((uae_s16)(dst)) < 0;
65943: int flgn = ((uae_s16)(newv)) < 0;
65944: SET_ZFLG (((uae_s16)(newv)) == 0);
65945: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
65946: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
65947: COPY_CARRY;
65948: SET_NFLG (flgn != 0);
65949: m68k_incpc(2);
65950: fill_prefetch_2 ();
65951: put_word(dsta,newv);
65952: }}}}}}}}endlabel3605: ;
65953: return 14;
65954: }
65955: unsigned long REGPARAM2 CPUFUNC(op_d168_5)(uae_u32 opcode) /* ADD */
65956: {
65957: uae_u32 srcreg = ((opcode >> 9) & 7);
65958: uae_u32 dstreg = opcode & 7;
65959: OpcodeFamily = 11; CurrentInstrCycles = 16;
65960: {{ uae_s16 src = m68k_dreg(regs, srcreg);
65961: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
65962: if ((dsta & 1) != 0) {
65963: last_fault_for_exception_3 = dsta;
65964: last_op_for_exception_3 = opcode;
65965: last_addr_for_exception_3 = m68k_getpc() + 4;
65966: Exception(3, 0, M68000_EXC_SRC_CPU);
65967: goto endlabel3606;
65968: }
65969: {{ uae_s16 dst = get_word(dsta);
65970: { refill_prefetch (m68k_getpc(), 2);
65971: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
65972: { int flgs = ((uae_s16)(src)) < 0;
65973: int flgo = ((uae_s16)(dst)) < 0;
65974: int flgn = ((uae_s16)(newv)) < 0;
65975: SET_ZFLG (((uae_s16)(newv)) == 0);
65976: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
65977: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
65978: COPY_CARRY;
65979: SET_NFLG (flgn != 0);
65980: m68k_incpc(4);
65981: fill_prefetch_0 ();
65982: put_word(dsta,newv);
65983: }}}}}}}}endlabel3606: ;
65984: return 16;
65985: }
65986: unsigned long REGPARAM2 CPUFUNC(op_d170_5)(uae_u32 opcode) /* ADD */
65987: {
65988: uae_u32 srcreg = ((opcode >> 9) & 7);
65989: uae_u32 dstreg = opcode & 7;
65990: OpcodeFamily = 11; CurrentInstrCycles = 18;
65991: {{ uae_s16 src = m68k_dreg(regs, srcreg);
65992: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
65993: BusCyclePenalty += 2;
65994: if ((dsta & 1) != 0) {
65995: last_fault_for_exception_3 = dsta;
65996: last_op_for_exception_3 = opcode;
65997: last_addr_for_exception_3 = m68k_getpc() + 4;
65998: Exception(3, 0, M68000_EXC_SRC_CPU);
65999: goto endlabel3607;
66000: }
66001: {{ uae_s16 dst = get_word(dsta);
66002: { refill_prefetch (m68k_getpc(), 2);
66003: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
66004: { int flgs = ((uae_s16)(src)) < 0;
66005: int flgo = ((uae_s16)(dst)) < 0;
66006: int flgn = ((uae_s16)(newv)) < 0;
66007: SET_ZFLG (((uae_s16)(newv)) == 0);
66008: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
66009: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
66010: COPY_CARRY;
66011: SET_NFLG (flgn != 0);
66012: m68k_incpc(4);
66013: fill_prefetch_0 ();
66014: put_word(dsta,newv);
66015: }}}}}}}}endlabel3607: ;
66016: return 18;
66017: }
66018: unsigned long REGPARAM2 CPUFUNC(op_d178_5)(uae_u32 opcode) /* ADD */
66019: {
66020: uae_u32 srcreg = ((opcode >> 9) & 7);
66021: OpcodeFamily = 11; CurrentInstrCycles = 16;
66022: {{ uae_s16 src = m68k_dreg(regs, srcreg);
66023: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
66024: if ((dsta & 1) != 0) {
66025: last_fault_for_exception_3 = dsta;
66026: last_op_for_exception_3 = opcode;
66027: last_addr_for_exception_3 = m68k_getpc() + 4;
66028: Exception(3, 0, M68000_EXC_SRC_CPU);
66029: goto endlabel3608;
66030: }
66031: {{ uae_s16 dst = get_word(dsta);
66032: { refill_prefetch (m68k_getpc(), 2);
66033: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
66034: { int flgs = ((uae_s16)(src)) < 0;
66035: int flgo = ((uae_s16)(dst)) < 0;
66036: int flgn = ((uae_s16)(newv)) < 0;
66037: SET_ZFLG (((uae_s16)(newv)) == 0);
66038: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
66039: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
66040: COPY_CARRY;
66041: SET_NFLG (flgn != 0);
66042: m68k_incpc(4);
66043: fill_prefetch_0 ();
66044: put_word(dsta,newv);
66045: }}}}}}}}endlabel3608: ;
66046: return 16;
66047: }
66048: unsigned long REGPARAM2 CPUFUNC(op_d179_5)(uae_u32 opcode) /* ADD */
66049: {
66050: uae_u32 srcreg = ((opcode >> 9) & 7);
66051: OpcodeFamily = 11; CurrentInstrCycles = 20;
66052: {{ uae_s16 src = m68k_dreg(regs, srcreg);
66053: { uaecptr dsta = get_ilong_prefetch(2);
66054: if ((dsta & 1) != 0) {
66055: last_fault_for_exception_3 = dsta;
66056: last_op_for_exception_3 = opcode;
66057: last_addr_for_exception_3 = m68k_getpc() + 6;
66058: Exception(3, 0, M68000_EXC_SRC_CPU);
66059: goto endlabel3609;
66060: }
66061: {{ uae_s16 dst = get_word(dsta);
66062: { refill_prefetch (m68k_getpc(), 2);
66063: {uae_u32 newv = ((uae_s16)(dst)) + ((uae_s16)(src));
66064: { int flgs = ((uae_s16)(src)) < 0;
66065: int flgo = ((uae_s16)(dst)) < 0;
66066: int flgn = ((uae_s16)(newv)) < 0;
66067: SET_ZFLG (((uae_s16)(newv)) == 0);
66068: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
66069: SET_CFLG (((uae_u16)(~dst)) < ((uae_u16)(src)));
66070: COPY_CARRY;
66071: SET_NFLG (flgn != 0);
66072: m68k_incpc(6);
66073: fill_prefetch_0 ();
66074: put_word(dsta,newv);
66075: }}}}}}}}endlabel3609: ;
66076: return 20;
66077: }
66078: unsigned long REGPARAM2 CPUFUNC(op_d180_5)(uae_u32 opcode) /* ADDX */
66079: {
66080: uae_u32 srcreg = (opcode & 7);
66081: uae_u32 dstreg = (opcode >> 9) & 7;
66082: OpcodeFamily = 13; CurrentInstrCycles = 8;
66083: {{ uae_s32 src = m68k_dreg(regs, srcreg);
66084: { uae_s32 dst = m68k_dreg(regs, dstreg);
66085: { uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0);
66086: { int flgs = ((uae_s32)(src)) < 0;
66087: int flgo = ((uae_s32)(dst)) < 0;
66088: int flgn = ((uae_s32)(newv)) < 0;
66089: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
66090: SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn)));
66091: COPY_CARRY;
66092: SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
66093: SET_NFLG (((uae_s32)(newv)) < 0);
66094: m68k_dreg(regs, dstreg) = (newv);
66095: }}}}}m68k_incpc(2);
66096: fill_prefetch_2 ();
66097: return 8;
66098: }
66099: unsigned long REGPARAM2 CPUFUNC(op_d188_5)(uae_u32 opcode) /* ADDX */
66100: {
66101: uae_u32 srcreg = (opcode & 7);
66102: uae_u32 dstreg = (opcode >> 9) & 7;
66103: OpcodeFamily = 13; CurrentInstrCycles = 30;
66104: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
66105: if ((srca & 1) != 0) {
66106: last_fault_for_exception_3 = srca;
66107: last_op_for_exception_3 = opcode;
66108: last_addr_for_exception_3 = m68k_getpc() + 2;
66109: Exception(3, 0, M68000_EXC_SRC_CPU);
66110: goto endlabel3611;
66111: }
66112: {{ uae_s32 src = get_long(srca);
66113: m68k_areg (regs, srcreg) = srca;
66114: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
66115: if ((dsta & 1) != 0) {
66116: last_fault_for_exception_3 = dsta;
66117: last_op_for_exception_3 = opcode;
66118: last_addr_for_exception_3 = m68k_getpc() + 2;
66119: Exception(3, 0, M68000_EXC_SRC_CPU);
66120: goto endlabel3611;
66121: }
66122: {{ uae_s32 dst = get_long(dsta);
66123: m68k_areg (regs, dstreg) = dsta;
66124: { uae_u32 newv = dst + src + (GET_XFLG ? 1 : 0);
66125: { int flgs = ((uae_s32)(src)) < 0;
66126: int flgo = ((uae_s32)(dst)) < 0;
66127: int flgn = ((uae_s32)(newv)) < 0;
66128: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
66129: SET_CFLG (flgs ^ ((flgs ^ flgo) & (flgo ^ flgn)));
66130: COPY_CARRY;
66131: SET_ZFLG (GET_ZFLG & (((uae_s32)(newv)) == 0));
66132: SET_NFLG (((uae_s32)(newv)) < 0);
66133: m68k_incpc(2);
66134: fill_prefetch_2 ();
66135: put_long(dsta,newv);
66136: }}}}}}}}}endlabel3611: ;
66137: return 30;
66138: }
66139: unsigned long REGPARAM2 CPUFUNC(op_d190_5)(uae_u32 opcode) /* ADD */
66140: {
66141: uae_u32 srcreg = ((opcode >> 9) & 7);
66142: uae_u32 dstreg = opcode & 7;
66143: OpcodeFamily = 11; CurrentInstrCycles = 20;
66144: {{ uae_s32 src = m68k_dreg(regs, srcreg);
66145: { uaecptr dsta = m68k_areg(regs, dstreg);
66146: if ((dsta & 1) != 0) {
66147: last_fault_for_exception_3 = dsta;
66148: last_op_for_exception_3 = opcode;
66149: last_addr_for_exception_3 = m68k_getpc() + 2;
66150: Exception(3, 0, M68000_EXC_SRC_CPU);
66151: goto endlabel3612;
66152: }
66153: {{ uae_s32 dst = get_long(dsta);
66154: { refill_prefetch (m68k_getpc(), 2);
66155: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
66156: { int flgs = ((uae_s32)(src)) < 0;
66157: int flgo = ((uae_s32)(dst)) < 0;
66158: int flgn = ((uae_s32)(newv)) < 0;
66159: SET_ZFLG (((uae_s32)(newv)) == 0);
66160: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
66161: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
66162: COPY_CARRY;
66163: SET_NFLG (flgn != 0);
66164: m68k_incpc(2);
66165: fill_prefetch_2 ();
66166: put_long(dsta,newv);
66167: }}}}}}}}endlabel3612: ;
66168: return 20;
66169: }
66170: unsigned long REGPARAM2 CPUFUNC(op_d198_5)(uae_u32 opcode) /* ADD */
66171: {
66172: uae_u32 srcreg = ((opcode >> 9) & 7);
66173: uae_u32 dstreg = opcode & 7;
66174: OpcodeFamily = 11; CurrentInstrCycles = 20;
66175: {{ uae_s32 src = m68k_dreg(regs, srcreg);
66176: { uaecptr dsta = m68k_areg(regs, dstreg);
66177: if ((dsta & 1) != 0) {
66178: last_fault_for_exception_3 = dsta;
66179: last_op_for_exception_3 = opcode;
66180: last_addr_for_exception_3 = m68k_getpc() + 2;
66181: Exception(3, 0, M68000_EXC_SRC_CPU);
66182: goto endlabel3613;
66183: }
66184: {{ uae_s32 dst = get_long(dsta);
66185: m68k_areg(regs, dstreg) += 4;
66186: { refill_prefetch (m68k_getpc(), 2);
66187: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
66188: { int flgs = ((uae_s32)(src)) < 0;
66189: int flgo = ((uae_s32)(dst)) < 0;
66190: int flgn = ((uae_s32)(newv)) < 0;
66191: SET_ZFLG (((uae_s32)(newv)) == 0);
66192: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
66193: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
66194: COPY_CARRY;
66195: SET_NFLG (flgn != 0);
66196: m68k_incpc(2);
66197: fill_prefetch_2 ();
66198: put_long(dsta,newv);
66199: }}}}}}}}endlabel3613: ;
66200: return 20;
66201: }
66202: unsigned long REGPARAM2 CPUFUNC(op_d1a0_5)(uae_u32 opcode) /* ADD */
66203: {
66204: uae_u32 srcreg = ((opcode >> 9) & 7);
66205: uae_u32 dstreg = opcode & 7;
66206: OpcodeFamily = 11; CurrentInstrCycles = 22;
66207: {{ uae_s32 src = m68k_dreg(regs, srcreg);
66208: { uaecptr dsta = m68k_areg(regs, dstreg) - 4;
66209: if ((dsta & 1) != 0) {
66210: last_fault_for_exception_3 = dsta;
66211: last_op_for_exception_3 = opcode;
66212: last_addr_for_exception_3 = m68k_getpc() + 2;
66213: Exception(3, 0, M68000_EXC_SRC_CPU);
66214: goto endlabel3614;
66215: }
66216: {{ uae_s32 dst = get_long(dsta);
66217: m68k_areg (regs, dstreg) = dsta;
66218: { refill_prefetch (m68k_getpc(), 2);
66219: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
66220: { int flgs = ((uae_s32)(src)) < 0;
66221: int flgo = ((uae_s32)(dst)) < 0;
66222: int flgn = ((uae_s32)(newv)) < 0;
66223: SET_ZFLG (((uae_s32)(newv)) == 0);
66224: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
66225: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
66226: COPY_CARRY;
66227: SET_NFLG (flgn != 0);
66228: m68k_incpc(2);
66229: fill_prefetch_2 ();
66230: put_long(dsta,newv);
66231: }}}}}}}}endlabel3614: ;
66232: return 22;
66233: }
66234: unsigned long REGPARAM2 CPUFUNC(op_d1a8_5)(uae_u32 opcode) /* ADD */
66235: {
66236: uae_u32 srcreg = ((opcode >> 9) & 7);
66237: uae_u32 dstreg = opcode & 7;
66238: OpcodeFamily = 11; CurrentInstrCycles = 24;
66239: {{ uae_s32 src = m68k_dreg(regs, srcreg);
66240: { uaecptr dsta = m68k_areg(regs, dstreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
66241: if ((dsta & 1) != 0) {
66242: last_fault_for_exception_3 = dsta;
66243: last_op_for_exception_3 = opcode;
66244: last_addr_for_exception_3 = m68k_getpc() + 4;
66245: Exception(3, 0, M68000_EXC_SRC_CPU);
66246: goto endlabel3615;
66247: }
66248: {{ uae_s32 dst = get_long(dsta);
66249: { refill_prefetch (m68k_getpc(), 2);
66250: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
66251: { int flgs = ((uae_s32)(src)) < 0;
66252: int flgo = ((uae_s32)(dst)) < 0;
66253: int flgn = ((uae_s32)(newv)) < 0;
66254: SET_ZFLG (((uae_s32)(newv)) == 0);
66255: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
66256: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
66257: COPY_CARRY;
66258: SET_NFLG (flgn != 0);
66259: m68k_incpc(4);
66260: fill_prefetch_0 ();
66261: put_long(dsta,newv);
66262: }}}}}}}}endlabel3615: ;
66263: return 24;
66264: }
66265: unsigned long REGPARAM2 CPUFUNC(op_d1b0_5)(uae_u32 opcode) /* ADD */
66266: {
66267: uae_u32 srcreg = ((opcode >> 9) & 7);
66268: uae_u32 dstreg = opcode & 7;
66269: OpcodeFamily = 11; CurrentInstrCycles = 26;
66270: {{ uae_s32 src = m68k_dreg(regs, srcreg);
66271: { uaecptr dsta = get_disp_ea_000(m68k_areg(regs, dstreg), get_iword_prefetch(2));
66272: BusCyclePenalty += 2;
66273: if ((dsta & 1) != 0) {
66274: last_fault_for_exception_3 = dsta;
66275: last_op_for_exception_3 = opcode;
66276: last_addr_for_exception_3 = m68k_getpc() + 4;
66277: Exception(3, 0, M68000_EXC_SRC_CPU);
66278: goto endlabel3616;
66279: }
66280: {{ uae_s32 dst = get_long(dsta);
66281: { refill_prefetch (m68k_getpc(), 2);
66282: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
66283: { int flgs = ((uae_s32)(src)) < 0;
66284: int flgo = ((uae_s32)(dst)) < 0;
66285: int flgn = ((uae_s32)(newv)) < 0;
66286: SET_ZFLG (((uae_s32)(newv)) == 0);
66287: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
66288: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
66289: COPY_CARRY;
66290: SET_NFLG (flgn != 0);
66291: m68k_incpc(4);
66292: fill_prefetch_0 ();
66293: put_long(dsta,newv);
66294: }}}}}}}}endlabel3616: ;
66295: return 26;
66296: }
66297: unsigned long REGPARAM2 CPUFUNC(op_d1b8_5)(uae_u32 opcode) /* ADD */
66298: {
66299: uae_u32 srcreg = ((opcode >> 9) & 7);
66300: OpcodeFamily = 11; CurrentInstrCycles = 24;
66301: {{ uae_s32 src = m68k_dreg(regs, srcreg);
66302: { uaecptr dsta = (uae_s32)(uae_s16)get_iword_prefetch(2);
66303: if ((dsta & 1) != 0) {
66304: last_fault_for_exception_3 = dsta;
66305: last_op_for_exception_3 = opcode;
66306: last_addr_for_exception_3 = m68k_getpc() + 4;
66307: Exception(3, 0, M68000_EXC_SRC_CPU);
66308: goto endlabel3617;
66309: }
66310: {{ uae_s32 dst = get_long(dsta);
66311: { refill_prefetch (m68k_getpc(), 2);
66312: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
66313: { int flgs = ((uae_s32)(src)) < 0;
66314: int flgo = ((uae_s32)(dst)) < 0;
66315: int flgn = ((uae_s32)(newv)) < 0;
66316: SET_ZFLG (((uae_s32)(newv)) == 0);
66317: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
66318: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
66319: COPY_CARRY;
66320: SET_NFLG (flgn != 0);
66321: m68k_incpc(4);
66322: fill_prefetch_0 ();
66323: put_long(dsta,newv);
66324: }}}}}}}}endlabel3617: ;
66325: return 24;
66326: }
66327: unsigned long REGPARAM2 CPUFUNC(op_d1b9_5)(uae_u32 opcode) /* ADD */
66328: {
66329: uae_u32 srcreg = ((opcode >> 9) & 7);
66330: OpcodeFamily = 11; CurrentInstrCycles = 28;
66331: {{ uae_s32 src = m68k_dreg(regs, srcreg);
66332: { uaecptr dsta = get_ilong_prefetch(2);
66333: if ((dsta & 1) != 0) {
66334: last_fault_for_exception_3 = dsta;
66335: last_op_for_exception_3 = opcode;
66336: last_addr_for_exception_3 = m68k_getpc() + 6;
66337: Exception(3, 0, M68000_EXC_SRC_CPU);
66338: goto endlabel3618;
66339: }
66340: {{ uae_s32 dst = get_long(dsta);
66341: { refill_prefetch (m68k_getpc(), 2);
66342: {uae_u32 newv = ((uae_s32)(dst)) + ((uae_s32)(src));
66343: { int flgs = ((uae_s32)(src)) < 0;
66344: int flgo = ((uae_s32)(dst)) < 0;
66345: int flgn = ((uae_s32)(newv)) < 0;
66346: SET_ZFLG (((uae_s32)(newv)) == 0);
66347: SET_VFLG ((flgs ^ flgn) & (flgo ^ flgn));
66348: SET_CFLG (((uae_u32)(~dst)) < ((uae_u32)(src)));
66349: COPY_CARRY;
66350: SET_NFLG (flgn != 0);
66351: m68k_incpc(6);
66352: fill_prefetch_0 ();
66353: put_long(dsta,newv);
66354: }}}}}}}}endlabel3618: ;
66355: return 28;
66356: }
66357: unsigned long REGPARAM2 CPUFUNC(op_d1c0_5)(uae_u32 opcode) /* ADDA */
66358: {
66359: uae_u32 srcreg = (opcode & 7);
66360: uae_u32 dstreg = (opcode >> 9) & 7;
66361: OpcodeFamily = 12; CurrentInstrCycles = 8;
66362: {{ uae_s32 src = m68k_dreg(regs, srcreg);
66363: { uae_s32 dst = m68k_areg(regs, dstreg);
66364: { uae_u32 newv = dst + src;
66365: m68k_areg(regs, dstreg) = (newv);
66366: }}}}m68k_incpc(2);
66367: fill_prefetch_2 ();
66368: return 8;
66369: }
66370: unsigned long REGPARAM2 CPUFUNC(op_d1c8_5)(uae_u32 opcode) /* ADDA */
66371: {
66372: uae_u32 srcreg = (opcode & 7);
66373: uae_u32 dstreg = (opcode >> 9) & 7;
66374: OpcodeFamily = 12; CurrentInstrCycles = 8;
66375: {{ uae_s32 src = m68k_areg(regs, srcreg);
66376: { uae_s32 dst = m68k_areg(regs, dstreg);
66377: { uae_u32 newv = dst + src;
66378: m68k_areg(regs, dstreg) = (newv);
66379: }}}}m68k_incpc(2);
66380: fill_prefetch_2 ();
66381: return 8;
66382: }
66383: unsigned long REGPARAM2 CPUFUNC(op_d1d0_5)(uae_u32 opcode) /* ADDA */
66384: {
66385: uae_u32 srcreg = (opcode & 7);
66386: uae_u32 dstreg = (opcode >> 9) & 7;
66387: OpcodeFamily = 12; CurrentInstrCycles = 14;
66388: {{ uaecptr srca = m68k_areg(regs, srcreg);
66389: if ((srca & 1) != 0) {
66390: last_fault_for_exception_3 = srca;
66391: last_op_for_exception_3 = opcode;
66392: last_addr_for_exception_3 = m68k_getpc() + 2;
66393: Exception(3, 0, M68000_EXC_SRC_CPU);
66394: goto endlabel3621;
66395: }
66396: {{ uae_s32 src = get_long(srca);
66397: { uae_s32 dst = m68k_areg(regs, dstreg);
66398: { uae_u32 newv = dst + src;
66399: m68k_areg(regs, dstreg) = (newv);
66400: }}}}}}m68k_incpc(2);
66401: fill_prefetch_2 ();
66402: endlabel3621: ;
66403: return 14;
66404: }
66405: #endif
66406:
66407: #ifdef PART_8
66408: unsigned long REGPARAM2 CPUFUNC(op_d1d8_5)(uae_u32 opcode) /* ADDA */
66409: {
66410: uae_u32 srcreg = (opcode & 7);
66411: uae_u32 dstreg = (opcode >> 9) & 7;
66412: OpcodeFamily = 12; CurrentInstrCycles = 14;
66413: {{ uaecptr srca = m68k_areg(regs, srcreg);
66414: if ((srca & 1) != 0) {
66415: last_fault_for_exception_3 = srca;
66416: last_op_for_exception_3 = opcode;
66417: last_addr_for_exception_3 = m68k_getpc() + 2;
66418: Exception(3, 0, M68000_EXC_SRC_CPU);
66419: goto endlabel3622;
66420: }
66421: {{ uae_s32 src = get_long(srca);
66422: m68k_areg(regs, srcreg) += 4;
66423: { uae_s32 dst = m68k_areg(regs, dstreg);
66424: { uae_u32 newv = dst + src;
66425: m68k_areg(regs, dstreg) = (newv);
66426: }}}}}}m68k_incpc(2);
66427: fill_prefetch_2 ();
66428: endlabel3622: ;
66429: return 14;
66430: }
66431: unsigned long REGPARAM2 CPUFUNC(op_d1e0_5)(uae_u32 opcode) /* ADDA */
66432: {
66433: uae_u32 srcreg = (opcode & 7);
66434: uae_u32 dstreg = (opcode >> 9) & 7;
66435: OpcodeFamily = 12; CurrentInstrCycles = 16;
66436: {{ uaecptr srca = m68k_areg(regs, srcreg) - 4;
66437: if ((srca & 1) != 0) {
66438: last_fault_for_exception_3 = srca;
66439: last_op_for_exception_3 = opcode;
66440: last_addr_for_exception_3 = m68k_getpc() + 2;
66441: Exception(3, 0, M68000_EXC_SRC_CPU);
66442: goto endlabel3623;
66443: }
66444: {{ uae_s32 src = get_long(srca);
66445: m68k_areg (regs, srcreg) = srca;
66446: { uae_s32 dst = m68k_areg(regs, dstreg);
66447: { uae_u32 newv = dst + src;
66448: m68k_areg(regs, dstreg) = (newv);
66449: }}}}}}m68k_incpc(2);
66450: fill_prefetch_2 ();
66451: endlabel3623: ;
66452: return 16;
66453: }
66454: unsigned long REGPARAM2 CPUFUNC(op_d1e8_5)(uae_u32 opcode) /* ADDA */
66455: {
66456: uae_u32 srcreg = (opcode & 7);
66457: uae_u32 dstreg = (opcode >> 9) & 7;
66458: OpcodeFamily = 12; CurrentInstrCycles = 18;
66459: {{ uaecptr srca = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
66460: if ((srca & 1) != 0) {
66461: last_fault_for_exception_3 = srca;
66462: last_op_for_exception_3 = opcode;
66463: last_addr_for_exception_3 = m68k_getpc() + 4;
66464: Exception(3, 0, M68000_EXC_SRC_CPU);
66465: goto endlabel3624;
66466: }
66467: {{ uae_s32 src = get_long(srca);
66468: { uae_s32 dst = m68k_areg(regs, dstreg);
66469: { uae_u32 newv = dst + src;
66470: m68k_areg(regs, dstreg) = (newv);
66471: }}}}}}m68k_incpc(4);
66472: fill_prefetch_0 ();
66473: endlabel3624: ;
66474: return 18;
66475: }
66476: unsigned long REGPARAM2 CPUFUNC(op_d1f0_5)(uae_u32 opcode) /* ADDA */
66477: {
66478: uae_u32 srcreg = (opcode & 7);
66479: uae_u32 dstreg = (opcode >> 9) & 7;
66480: OpcodeFamily = 12; CurrentInstrCycles = 20;
66481: {{ uaecptr srca = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
66482: BusCyclePenalty += 2;
66483: if ((srca & 1) != 0) {
66484: last_fault_for_exception_3 = srca;
66485: last_op_for_exception_3 = opcode;
66486: last_addr_for_exception_3 = m68k_getpc() + 4;
66487: Exception(3, 0, M68000_EXC_SRC_CPU);
66488: goto endlabel3625;
66489: }
66490: {{ uae_s32 src = get_long(srca);
66491: { uae_s32 dst = m68k_areg(regs, dstreg);
66492: { uae_u32 newv = dst + src;
66493: m68k_areg(regs, dstreg) = (newv);
66494: }}}}}}m68k_incpc(4);
66495: fill_prefetch_0 ();
66496: endlabel3625: ;
66497: return 20;
66498: }
66499: unsigned long REGPARAM2 CPUFUNC(op_d1f8_5)(uae_u32 opcode) /* ADDA */
66500: {
66501: uae_u32 dstreg = (opcode >> 9) & 7;
66502: OpcodeFamily = 12; CurrentInstrCycles = 18;
66503: {{ uaecptr srca = (uae_s32)(uae_s16)get_iword_prefetch(2);
66504: if ((srca & 1) != 0) {
66505: last_fault_for_exception_3 = srca;
66506: last_op_for_exception_3 = opcode;
66507: last_addr_for_exception_3 = m68k_getpc() + 4;
66508: Exception(3, 0, M68000_EXC_SRC_CPU);
66509: goto endlabel3626;
66510: }
66511: {{ uae_s32 src = get_long(srca);
66512: { uae_s32 dst = m68k_areg(regs, dstreg);
66513: { uae_u32 newv = dst + src;
66514: m68k_areg(regs, dstreg) = (newv);
66515: }}}}}}m68k_incpc(4);
66516: fill_prefetch_0 ();
66517: endlabel3626: ;
66518: return 18;
66519: }
66520: unsigned long REGPARAM2 CPUFUNC(op_d1f9_5)(uae_u32 opcode) /* ADDA */
66521: {
66522: uae_u32 dstreg = (opcode >> 9) & 7;
66523: OpcodeFamily = 12; CurrentInstrCycles = 22;
66524: {{ uaecptr srca = get_ilong_prefetch(2);
66525: if ((srca & 1) != 0) {
66526: last_fault_for_exception_3 = srca;
66527: last_op_for_exception_3 = opcode;
66528: last_addr_for_exception_3 = m68k_getpc() + 6;
66529: Exception(3, 0, M68000_EXC_SRC_CPU);
66530: goto endlabel3627;
66531: }
66532: {{ uae_s32 src = get_long(srca);
66533: { uae_s32 dst = m68k_areg(regs, dstreg);
66534: { uae_u32 newv = dst + src;
66535: m68k_areg(regs, dstreg) = (newv);
66536: }}}}}}m68k_incpc(6);
66537: fill_prefetch_0 ();
66538: endlabel3627: ;
66539: return 22;
66540: }
66541: unsigned long REGPARAM2 CPUFUNC(op_d1fa_5)(uae_u32 opcode) /* ADDA */
66542: {
66543: uae_u32 dstreg = (opcode >> 9) & 7;
66544: OpcodeFamily = 12; CurrentInstrCycles = 18;
66545: {{ uaecptr srca = m68k_getpc () + 2;
66546: srca += (uae_s32)(uae_s16)get_iword_prefetch(2);
66547: if ((srca & 1) != 0) {
66548: last_fault_for_exception_3 = srca;
66549: last_op_for_exception_3 = opcode;
66550: last_addr_for_exception_3 = m68k_getpc() + 4;
66551: Exception(3, 0, M68000_EXC_SRC_CPU);
66552: goto endlabel3628;
66553: }
66554: {{ uae_s32 src = get_long(srca);
66555: { uae_s32 dst = m68k_areg(regs, dstreg);
66556: { uae_u32 newv = dst + src;
66557: m68k_areg(regs, dstreg) = (newv);
66558: }}}}}}m68k_incpc(4);
66559: fill_prefetch_0 ();
66560: endlabel3628: ;
66561: return 18;
66562: }
66563: unsigned long REGPARAM2 CPUFUNC(op_d1fb_5)(uae_u32 opcode) /* ADDA */
66564: {
66565: uae_u32 dstreg = (opcode >> 9) & 7;
66566: OpcodeFamily = 12; CurrentInstrCycles = 20;
66567: {{ uaecptr tmppc = m68k_getpc() + 2;
66568: uaecptr srca = get_disp_ea_000(tmppc, get_iword_prefetch(2));
66569: BusCyclePenalty += 2;
66570: if ((srca & 1) != 0) {
66571: last_fault_for_exception_3 = srca;
66572: last_op_for_exception_3 = opcode;
66573: last_addr_for_exception_3 = m68k_getpc() + 4;
66574: Exception(3, 0, M68000_EXC_SRC_CPU);
66575: goto endlabel3629;
66576: }
66577: {{ uae_s32 src = get_long(srca);
66578: { uae_s32 dst = m68k_areg(regs, dstreg);
66579: { uae_u32 newv = dst + src;
66580: m68k_areg(regs, dstreg) = (newv);
66581: }}}}}}m68k_incpc(4);
66582: fill_prefetch_0 ();
66583: endlabel3629: ;
66584: return 20;
66585: }
66586: unsigned long REGPARAM2 CPUFUNC(op_d1fc_5)(uae_u32 opcode) /* ADDA */
66587: {
66588: uae_u32 dstreg = (opcode >> 9) & 7;
66589: OpcodeFamily = 12; CurrentInstrCycles = 16;
66590: {{ uae_s32 src = get_ilong_prefetch(2);
66591: { uae_s32 dst = m68k_areg(regs, dstreg);
66592: { uae_u32 newv = dst + src;
66593: m68k_areg(regs, dstreg) = (newv);
66594: }}}}m68k_incpc(6);
66595: fill_prefetch_0 ();
66596: return 16;
66597: }
66598: unsigned long REGPARAM2 CPUFUNC(op_e000_5)(uae_u32 opcode) /* ASR */
66599: {
66600: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
66601: uae_u32 dstreg = opcode & 7;
66602: unsigned int retcycles = 0;
66603: OpcodeFamily = 64; CurrentInstrCycles = 4;
66604: {{ uae_u32 cnt = srcreg;
66605: { uae_s8 data = m68k_dreg(regs, dstreg);
66606: { uae_u32 val = (uae_u8)data;
66607: uae_u32 sign = (0x80 & val) >> 7;
66608: cnt &= 63;
66609: retcycles = cnt;
66610: CLEAR_CZNV;
66611: if (cnt >= 8) {
66612: val = 0xff & (uae_u32)-sign;
66613: SET_CFLG (sign);
66614: COPY_CARRY;
66615: } else {
66616: val >>= cnt - 1;
66617: SET_CFLG (val & 1);
66618: COPY_CARRY;
66619: val >>= 1;
66620: val |= (0xff << (8 - cnt)) & (uae_u32)-sign;
66621: val &= 0xff;
66622: }
66623: SET_ZFLG (((uae_s8)(val)) == 0);
66624: SET_NFLG (((uae_s8)(val)) < 0);
66625: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
66626: }}}}m68k_incpc(2);
66627: fill_prefetch_2 ();
66628: return (6+retcycles*2);
66629: }
66630: unsigned long REGPARAM2 CPUFUNC(op_e008_5)(uae_u32 opcode) /* LSR */
66631: {
66632: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
66633: uae_u32 dstreg = opcode & 7;
66634: unsigned int retcycles = 0;
66635: OpcodeFamily = 66; CurrentInstrCycles = 4;
66636: {{ uae_u32 cnt = srcreg;
66637: { uae_s8 data = m68k_dreg(regs, dstreg);
66638: { uae_u32 val = (uae_u8)data;
66639: cnt &= 63;
66640: retcycles = cnt;
66641: CLEAR_CZNV;
66642: if (cnt >= 8) {
66643: SET_CFLG ((cnt == 8) & (val >> 7));
66644: COPY_CARRY;
66645: val = 0;
66646: } else {
66647: val >>= cnt - 1;
66648: SET_CFLG (val & 1);
66649: COPY_CARRY;
66650: val >>= 1;
66651: }
66652: SET_ZFLG (((uae_s8)(val)) == 0);
66653: SET_NFLG (((uae_s8)(val)) < 0);
66654: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
66655: }}}}m68k_incpc(2);
66656: fill_prefetch_2 ();
66657: return (6+retcycles*2);
66658: }
66659: unsigned long REGPARAM2 CPUFUNC(op_e010_5)(uae_u32 opcode) /* ROXR */
66660: {
66661: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
66662: uae_u32 dstreg = opcode & 7;
66663: unsigned int retcycles = 0;
66664: OpcodeFamily = 71; CurrentInstrCycles = 4;
66665: {{ uae_u32 cnt = srcreg;
66666: { uae_s8 data = m68k_dreg(regs, dstreg);
66667: { uae_u32 val = (uae_u8)data;
66668: cnt &= 63;
66669: retcycles = cnt;
66670: CLEAR_CZNV;
66671: { cnt--;
66672: {
66673: uae_u32 carry;
66674: uae_u32 hival = (val << 1) | GET_XFLG;
66675: hival <<= (7 - cnt);
66676: val >>= cnt;
66677: carry = val & 1;
66678: val >>= 1;
66679: val |= hival;
66680: SET_XFLG (carry);
66681: val &= 0xff;
66682: } }
66683: SET_CFLG (GET_XFLG);
66684: SET_ZFLG (((uae_s8)(val)) == 0);
66685: SET_NFLG (((uae_s8)(val)) < 0);
66686: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
66687: }}}}m68k_incpc(2);
66688: fill_prefetch_2 ();
66689: return (6+retcycles*2);
66690: }
66691: unsigned long REGPARAM2 CPUFUNC(op_e018_5)(uae_u32 opcode) /* ROR */
66692: {
66693: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
66694: uae_u32 dstreg = opcode & 7;
66695: unsigned int retcycles = 0;
66696: OpcodeFamily = 69; CurrentInstrCycles = 4;
66697: {{ uae_u32 cnt = srcreg;
66698: { uae_s8 data = m68k_dreg(regs, dstreg);
66699: { uae_u32 val = (uae_u8)data;
66700: cnt &= 63;
66701: retcycles = cnt;
66702: CLEAR_CZNV;
66703: { uae_u32 hival;
66704: cnt &= 7;
66705: hival = val << (8 - cnt);
66706: val >>= cnt;
66707: val |= hival;
66708: val &= 0xff;
66709: SET_CFLG ((val & 0x80) >> 7);
66710: }
66711: SET_ZFLG (((uae_s8)(val)) == 0);
66712: SET_NFLG (((uae_s8)(val)) < 0);
66713: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
66714: }}}}m68k_incpc(2);
66715: fill_prefetch_2 ();
66716: return (6+retcycles*2);
66717: }
66718: unsigned long REGPARAM2 CPUFUNC(op_e020_5)(uae_u32 opcode) /* ASR */
66719: {
66720: uae_u32 srcreg = ((opcode >> 9) & 7);
66721: uae_u32 dstreg = opcode & 7;
66722: unsigned int retcycles = 0;
66723: OpcodeFamily = 64; CurrentInstrCycles = 4;
66724: {{ uae_s8 cnt = m68k_dreg(regs, srcreg);
66725: { uae_s8 data = m68k_dreg(regs, dstreg);
66726: { uae_u32 val = (uae_u8)data;
66727: uae_u32 sign = (0x80 & val) >> 7;
66728: cnt &= 63;
66729: retcycles = cnt;
66730: CLEAR_CZNV;
66731: if (cnt >= 8) {
66732: val = 0xff & (uae_u32)-sign;
66733: SET_CFLG (sign);
66734: COPY_CARRY;
66735: } else if (cnt > 0) {
66736: val >>= cnt - 1;
66737: SET_CFLG (val & 1);
66738: COPY_CARRY;
66739: val >>= 1;
66740: val |= (0xff << (8 - cnt)) & (uae_u32)-sign;
66741: val &= 0xff;
66742: }
66743: SET_ZFLG (((uae_s8)(val)) == 0);
66744: SET_NFLG (((uae_s8)(val)) < 0);
66745: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
66746: }}}}m68k_incpc(2);
66747: fill_prefetch_2 ();
66748: return (6+retcycles*2);
66749: }
66750: unsigned long REGPARAM2 CPUFUNC(op_e028_5)(uae_u32 opcode) /* LSR */
66751: {
66752: uae_u32 srcreg = ((opcode >> 9) & 7);
66753: uae_u32 dstreg = opcode & 7;
66754: unsigned int retcycles = 0;
66755: OpcodeFamily = 66; CurrentInstrCycles = 4;
66756: {{ uae_s8 cnt = m68k_dreg(regs, srcreg);
66757: { uae_s8 data = m68k_dreg(regs, dstreg);
66758: { uae_u32 val = (uae_u8)data;
66759: cnt &= 63;
66760: retcycles = cnt;
66761: CLEAR_CZNV;
66762: if (cnt >= 8) {
66763: SET_CFLG ((cnt == 8) & (val >> 7));
66764: COPY_CARRY;
66765: val = 0;
66766: } else if (cnt > 0) {
66767: val >>= cnt - 1;
66768: SET_CFLG (val & 1);
66769: COPY_CARRY;
66770: val >>= 1;
66771: }
66772: SET_ZFLG (((uae_s8)(val)) == 0);
66773: SET_NFLG (((uae_s8)(val)) < 0);
66774: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
66775: }}}}m68k_incpc(2);
66776: fill_prefetch_2 ();
66777: return (6+retcycles*2);
66778: }
66779: unsigned long REGPARAM2 CPUFUNC(op_e030_5)(uae_u32 opcode) /* ROXR */
66780: {
66781: uae_u32 srcreg = ((opcode >> 9) & 7);
66782: uae_u32 dstreg = opcode & 7;
66783: unsigned int retcycles = 0;
66784: OpcodeFamily = 71; CurrentInstrCycles = 4;
66785: {{ uae_s8 cnt = m68k_dreg(regs, srcreg);
66786: { uae_s8 data = m68k_dreg(regs, dstreg);
66787: { uae_u32 val = (uae_u8)data;
66788: cnt &= 63;
66789: retcycles = cnt;
66790: CLEAR_CZNV;
66791: if (cnt >= 36) cnt -= 36;
66792: if (cnt >= 18) cnt -= 18;
66793: if (cnt >= 9) cnt -= 9;
66794: if (cnt > 0) {
66795: cnt--;
66796: {
66797: uae_u32 carry;
66798: uae_u32 hival = (val << 1) | GET_XFLG;
66799: hival <<= (7 - cnt);
66800: val >>= cnt;
66801: carry = val & 1;
66802: val >>= 1;
66803: val |= hival;
66804: SET_XFLG (carry);
66805: val &= 0xff;
66806: } }
66807: SET_CFLG (GET_XFLG);
66808: SET_ZFLG (((uae_s8)(val)) == 0);
66809: SET_NFLG (((uae_s8)(val)) < 0);
66810: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
66811: }}}}m68k_incpc(2);
66812: fill_prefetch_2 ();
66813: return (6+retcycles*2);
66814: }
66815: unsigned long REGPARAM2 CPUFUNC(op_e038_5)(uae_u32 opcode) /* ROR */
66816: {
66817: uae_u32 srcreg = ((opcode >> 9) & 7);
66818: uae_u32 dstreg = opcode & 7;
66819: unsigned int retcycles = 0;
66820: OpcodeFamily = 69; CurrentInstrCycles = 4;
66821: {{ uae_s8 cnt = m68k_dreg(regs, srcreg);
66822: { uae_s8 data = m68k_dreg(regs, dstreg);
66823: { uae_u32 val = (uae_u8)data;
66824: cnt &= 63;
66825: retcycles = cnt;
66826: CLEAR_CZNV;
66827: if (cnt > 0) { uae_u32 hival;
66828: cnt &= 7;
66829: hival = val << (8 - cnt);
66830: val >>= cnt;
66831: val |= hival;
66832: val &= 0xff;
66833: SET_CFLG ((val & 0x80) >> 7);
66834: }
66835: SET_ZFLG (((uae_s8)(val)) == 0);
66836: SET_NFLG (((uae_s8)(val)) < 0);
66837: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
66838: }}}}m68k_incpc(2);
66839: fill_prefetch_2 ();
66840: return (6+retcycles*2);
66841: }
66842: unsigned long REGPARAM2 CPUFUNC(op_e040_5)(uae_u32 opcode) /* ASR */
66843: {
66844: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
66845: uae_u32 dstreg = opcode & 7;
66846: unsigned int retcycles = 0;
66847: OpcodeFamily = 64; CurrentInstrCycles = 4;
66848: {{ uae_u32 cnt = srcreg;
66849: { uae_s16 data = m68k_dreg(regs, dstreg);
66850: { uae_u32 val = (uae_u16)data;
66851: uae_u32 sign = (0x8000 & val) >> 15;
66852: cnt &= 63;
66853: retcycles = cnt;
66854: CLEAR_CZNV;
66855: if (cnt >= 16) {
66856: val = 0xffff & (uae_u32)-sign;
66857: SET_CFLG (sign);
66858: COPY_CARRY;
66859: } else {
66860: val >>= cnt - 1;
66861: SET_CFLG (val & 1);
66862: COPY_CARRY;
66863: val >>= 1;
66864: val |= (0xffff << (16 - cnt)) & (uae_u32)-sign;
66865: val &= 0xffff;
66866: }
66867: SET_ZFLG (((uae_s16)(val)) == 0);
66868: SET_NFLG (((uae_s16)(val)) < 0);
66869: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
66870: }}}}m68k_incpc(2);
66871: fill_prefetch_2 ();
66872: return (6+retcycles*2);
66873: }
66874: unsigned long REGPARAM2 CPUFUNC(op_e048_5)(uae_u32 opcode) /* LSR */
66875: {
66876: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
66877: uae_u32 dstreg = opcode & 7;
66878: unsigned int retcycles = 0;
66879: OpcodeFamily = 66; CurrentInstrCycles = 4;
66880: {{ uae_u32 cnt = srcreg;
66881: { uae_s16 data = m68k_dreg(regs, dstreg);
66882: { uae_u32 val = (uae_u16)data;
66883: cnt &= 63;
66884: retcycles = cnt;
66885: CLEAR_CZNV;
66886: if (cnt >= 16) {
66887: SET_CFLG ((cnt == 16) & (val >> 15));
66888: COPY_CARRY;
66889: val = 0;
66890: } else {
66891: val >>= cnt - 1;
66892: SET_CFLG (val & 1);
66893: COPY_CARRY;
66894: val >>= 1;
66895: }
66896: SET_ZFLG (((uae_s16)(val)) == 0);
66897: SET_NFLG (((uae_s16)(val)) < 0);
66898: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
66899: }}}}m68k_incpc(2);
66900: fill_prefetch_2 ();
66901: return (6+retcycles*2);
66902: }
66903: unsigned long REGPARAM2 CPUFUNC(op_e050_5)(uae_u32 opcode) /* ROXR */
66904: {
66905: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
66906: uae_u32 dstreg = opcode & 7;
66907: unsigned int retcycles = 0;
66908: OpcodeFamily = 71; CurrentInstrCycles = 4;
66909: {{ uae_u32 cnt = srcreg;
66910: { uae_s16 data = m68k_dreg(regs, dstreg);
66911: { uae_u32 val = (uae_u16)data;
66912: cnt &= 63;
66913: retcycles = cnt;
66914: CLEAR_CZNV;
66915: { cnt--;
66916: {
66917: uae_u32 carry;
66918: uae_u32 hival = (val << 1) | GET_XFLG;
66919: hival <<= (15 - cnt);
66920: val >>= cnt;
66921: carry = val & 1;
66922: val >>= 1;
66923: val |= hival;
66924: SET_XFLG (carry);
66925: val &= 0xffff;
66926: } }
66927: SET_CFLG (GET_XFLG);
66928: SET_ZFLG (((uae_s16)(val)) == 0);
66929: SET_NFLG (((uae_s16)(val)) < 0);
66930: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
66931: }}}}m68k_incpc(2);
66932: fill_prefetch_2 ();
66933: return (6+retcycles*2);
66934: }
66935: unsigned long REGPARAM2 CPUFUNC(op_e058_5)(uae_u32 opcode) /* ROR */
66936: {
66937: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
66938: uae_u32 dstreg = opcode & 7;
66939: unsigned int retcycles = 0;
66940: OpcodeFamily = 69; CurrentInstrCycles = 4;
66941: {{ uae_u32 cnt = srcreg;
66942: { uae_s16 data = m68k_dreg(regs, dstreg);
66943: { uae_u32 val = (uae_u16)data;
66944: cnt &= 63;
66945: retcycles = cnt;
66946: CLEAR_CZNV;
66947: { uae_u32 hival;
66948: cnt &= 15;
66949: hival = val << (16 - cnt);
66950: val >>= cnt;
66951: val |= hival;
66952: val &= 0xffff;
66953: SET_CFLG ((val & 0x8000) >> 15);
66954: }
66955: SET_ZFLG (((uae_s16)(val)) == 0);
66956: SET_NFLG (((uae_s16)(val)) < 0);
66957: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
66958: }}}}m68k_incpc(2);
66959: fill_prefetch_2 ();
66960: return (6+retcycles*2);
66961: }
66962: unsigned long REGPARAM2 CPUFUNC(op_e060_5)(uae_u32 opcode) /* ASR */
66963: {
66964: uae_u32 srcreg = ((opcode >> 9) & 7);
66965: uae_u32 dstreg = opcode & 7;
66966: unsigned int retcycles = 0;
66967: OpcodeFamily = 64; CurrentInstrCycles = 4;
66968: {{ uae_s16 cnt = m68k_dreg(regs, srcreg);
66969: { uae_s16 data = m68k_dreg(regs, dstreg);
66970: { uae_u32 val = (uae_u16)data;
66971: uae_u32 sign = (0x8000 & val) >> 15;
66972: cnt &= 63;
66973: retcycles = cnt;
66974: CLEAR_CZNV;
66975: if (cnt >= 16) {
66976: val = 0xffff & (uae_u32)-sign;
66977: SET_CFLG (sign);
66978: COPY_CARRY;
66979: } else if (cnt > 0) {
66980: val >>= cnt - 1;
66981: SET_CFLG (val & 1);
66982: COPY_CARRY;
66983: val >>= 1;
66984: val |= (0xffff << (16 - cnt)) & (uae_u32)-sign;
66985: val &= 0xffff;
66986: }
66987: SET_ZFLG (((uae_s16)(val)) == 0);
66988: SET_NFLG (((uae_s16)(val)) < 0);
66989: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
66990: }}}}m68k_incpc(2);
66991: fill_prefetch_2 ();
66992: return (6+retcycles*2);
66993: }
66994: unsigned long REGPARAM2 CPUFUNC(op_e068_5)(uae_u32 opcode) /* LSR */
66995: {
66996: uae_u32 srcreg = ((opcode >> 9) & 7);
66997: uae_u32 dstreg = opcode & 7;
66998: unsigned int retcycles = 0;
66999: OpcodeFamily = 66; CurrentInstrCycles = 4;
67000: {{ uae_s16 cnt = m68k_dreg(regs, srcreg);
67001: { uae_s16 data = m68k_dreg(regs, dstreg);
67002: { uae_u32 val = (uae_u16)data;
67003: cnt &= 63;
67004: retcycles = cnt;
67005: CLEAR_CZNV;
67006: if (cnt >= 16) {
67007: SET_CFLG ((cnt == 16) & (val >> 15));
67008: COPY_CARRY;
67009: val = 0;
67010: } else if (cnt > 0) {
67011: val >>= cnt - 1;
67012: SET_CFLG (val & 1);
67013: COPY_CARRY;
67014: val >>= 1;
67015: }
67016: SET_ZFLG (((uae_s16)(val)) == 0);
67017: SET_NFLG (((uae_s16)(val)) < 0);
67018: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
67019: }}}}m68k_incpc(2);
67020: fill_prefetch_2 ();
67021: return (6+retcycles*2);
67022: }
67023: unsigned long REGPARAM2 CPUFUNC(op_e070_5)(uae_u32 opcode) /* ROXR */
67024: {
67025: uae_u32 srcreg = ((opcode >> 9) & 7);
67026: uae_u32 dstreg = opcode & 7;
67027: unsigned int retcycles = 0;
67028: OpcodeFamily = 71; CurrentInstrCycles = 4;
67029: {{ uae_s16 cnt = m68k_dreg(regs, srcreg);
67030: { uae_s16 data = m68k_dreg(regs, dstreg);
67031: { uae_u32 val = (uae_u16)data;
67032: cnt &= 63;
67033: retcycles = cnt;
67034: CLEAR_CZNV;
67035: if (cnt >= 34) cnt -= 34;
67036: if (cnt >= 17) cnt -= 17;
67037: if (cnt > 0) {
67038: cnt--;
67039: {
67040: uae_u32 carry;
67041: uae_u32 hival = (val << 1) | GET_XFLG;
67042: hival <<= (15 - cnt);
67043: val >>= cnt;
67044: carry = val & 1;
67045: val >>= 1;
67046: val |= hival;
67047: SET_XFLG (carry);
67048: val &= 0xffff;
67049: } }
67050: SET_CFLG (GET_XFLG);
67051: SET_ZFLG (((uae_s16)(val)) == 0);
67052: SET_NFLG (((uae_s16)(val)) < 0);
67053: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
67054: }}}}m68k_incpc(2);
67055: fill_prefetch_2 ();
67056: return (6+retcycles*2);
67057: }
67058: unsigned long REGPARAM2 CPUFUNC(op_e078_5)(uae_u32 opcode) /* ROR */
67059: {
67060: uae_u32 srcreg = ((opcode >> 9) & 7);
67061: uae_u32 dstreg = opcode & 7;
67062: unsigned int retcycles = 0;
67063: OpcodeFamily = 69; CurrentInstrCycles = 4;
67064: {{ uae_s16 cnt = m68k_dreg(regs, srcreg);
67065: { uae_s16 data = m68k_dreg(regs, dstreg);
67066: { uae_u32 val = (uae_u16)data;
67067: cnt &= 63;
67068: retcycles = cnt;
67069: CLEAR_CZNV;
67070: if (cnt > 0) { uae_u32 hival;
67071: cnt &= 15;
67072: hival = val << (16 - cnt);
67073: val >>= cnt;
67074: val |= hival;
67075: val &= 0xffff;
67076: SET_CFLG ((val & 0x8000) >> 15);
67077: }
67078: SET_ZFLG (((uae_s16)(val)) == 0);
67079: SET_NFLG (((uae_s16)(val)) < 0);
67080: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
67081: }}}}m68k_incpc(2);
67082: fill_prefetch_2 ();
67083: return (6+retcycles*2);
67084: }
67085: unsigned long REGPARAM2 CPUFUNC(op_e080_5)(uae_u32 opcode) /* ASR */
67086: {
67087: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
67088: uae_u32 dstreg = opcode & 7;
67089: unsigned int retcycles = 0;
67090: OpcodeFamily = 64; CurrentInstrCycles = 4;
67091: {{ uae_u32 cnt = srcreg;
67092: { uae_s32 data = m68k_dreg(regs, dstreg);
67093: { uae_u32 val = data;
67094: uae_u32 sign = (0x80000000 & val) >> 31;
67095: cnt &= 63;
67096: retcycles = cnt;
67097: CLEAR_CZNV;
67098: if (cnt >= 32) {
67099: val = 0xffffffff & (uae_u32)-sign;
67100: SET_CFLG (sign);
67101: COPY_CARRY;
67102: } else {
67103: val >>= cnt - 1;
67104: SET_CFLG (val & 1);
67105: COPY_CARRY;
67106: val >>= 1;
67107: val |= (0xffffffff << (32 - cnt)) & (uae_u32)-sign;
67108: val &= 0xffffffff;
67109: }
67110: SET_ZFLG (((uae_s32)(val)) == 0);
67111: SET_NFLG (((uae_s32)(val)) < 0);
67112: m68k_dreg(regs, dstreg) = (val);
67113: }}}}m68k_incpc(2);
67114: fill_prefetch_2 ();
67115: return (8+retcycles*2);
67116: }
67117: unsigned long REGPARAM2 CPUFUNC(op_e088_5)(uae_u32 opcode) /* LSR */
67118: {
67119: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
67120: uae_u32 dstreg = opcode & 7;
67121: unsigned int retcycles = 0;
67122: OpcodeFamily = 66; CurrentInstrCycles = 4;
67123: {{ uae_u32 cnt = srcreg;
67124: { uae_s32 data = m68k_dreg(regs, dstreg);
67125: { uae_u32 val = data;
67126: cnt &= 63;
67127: retcycles = cnt;
67128: CLEAR_CZNV;
67129: if (cnt >= 32) {
67130: SET_CFLG ((cnt == 32) & (val >> 31));
67131: COPY_CARRY;
67132: val = 0;
67133: } else {
67134: val >>= cnt - 1;
67135: SET_CFLG (val & 1);
67136: COPY_CARRY;
67137: val >>= 1;
67138: }
67139: SET_ZFLG (((uae_s32)(val)) == 0);
67140: SET_NFLG (((uae_s32)(val)) < 0);
67141: m68k_dreg(regs, dstreg) = (val);
67142: }}}}m68k_incpc(2);
67143: fill_prefetch_2 ();
67144: return (8+retcycles*2);
67145: }
67146: unsigned long REGPARAM2 CPUFUNC(op_e090_5)(uae_u32 opcode) /* ROXR */
67147: {
67148: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
67149: uae_u32 dstreg = opcode & 7;
67150: unsigned int retcycles = 0;
67151: OpcodeFamily = 71; CurrentInstrCycles = 4;
67152: {{ uae_u32 cnt = srcreg;
67153: { uae_s32 data = m68k_dreg(regs, dstreg);
67154: { uae_u32 val = data;
67155: cnt &= 63;
67156: retcycles = cnt;
67157: CLEAR_CZNV;
67158: { cnt--;
67159: {
67160: uae_u32 carry;
67161: uae_u32 hival = (val << 1) | GET_XFLG;
67162: hival <<= (31 - cnt);
67163: val >>= cnt;
67164: carry = val & 1;
67165: val >>= 1;
67166: val |= hival;
67167: SET_XFLG (carry);
67168: val &= 0xffffffff;
67169: } }
67170: SET_CFLG (GET_XFLG);
67171: SET_ZFLG (((uae_s32)(val)) == 0);
67172: SET_NFLG (((uae_s32)(val)) < 0);
67173: m68k_dreg(regs, dstreg) = (val);
67174: }}}}m68k_incpc(2);
67175: fill_prefetch_2 ();
67176: return (8+retcycles*2);
67177: }
67178: unsigned long REGPARAM2 CPUFUNC(op_e098_5)(uae_u32 opcode) /* ROR */
67179: {
67180: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
67181: uae_u32 dstreg = opcode & 7;
67182: unsigned int retcycles = 0;
67183: OpcodeFamily = 69; CurrentInstrCycles = 4;
67184: {{ uae_u32 cnt = srcreg;
67185: { uae_s32 data = m68k_dreg(regs, dstreg);
67186: { uae_u32 val = data;
67187: cnt &= 63;
67188: retcycles = cnt;
67189: CLEAR_CZNV;
67190: { uae_u32 hival;
67191: cnt &= 31;
67192: hival = val << (32 - cnt);
67193: val >>= cnt;
67194: val |= hival;
67195: val &= 0xffffffff;
67196: SET_CFLG ((val & 0x80000000) >> 31);
67197: }
67198: SET_ZFLG (((uae_s32)(val)) == 0);
67199: SET_NFLG (((uae_s32)(val)) < 0);
67200: m68k_dreg(regs, dstreg) = (val);
67201: }}}}m68k_incpc(2);
67202: fill_prefetch_2 ();
67203: return (8+retcycles*2);
67204: }
67205: unsigned long REGPARAM2 CPUFUNC(op_e0a0_5)(uae_u32 opcode) /* ASR */
67206: {
67207: uae_u32 srcreg = ((opcode >> 9) & 7);
67208: uae_u32 dstreg = opcode & 7;
67209: unsigned int retcycles = 0;
67210: OpcodeFamily = 64; CurrentInstrCycles = 4;
67211: {{ uae_s32 cnt = m68k_dreg(regs, srcreg);
67212: { uae_s32 data = m68k_dreg(regs, dstreg);
67213: { uae_u32 val = data;
67214: uae_u32 sign = (0x80000000 & val) >> 31;
67215: cnt &= 63;
67216: retcycles = cnt;
67217: CLEAR_CZNV;
67218: if (cnt >= 32) {
67219: val = 0xffffffff & (uae_u32)-sign;
67220: SET_CFLG (sign);
67221: COPY_CARRY;
67222: } else if (cnt > 0) {
67223: val >>= cnt - 1;
67224: SET_CFLG (val & 1);
67225: COPY_CARRY;
67226: val >>= 1;
67227: val |= (0xffffffff << (32 - cnt)) & (uae_u32)-sign;
67228: val &= 0xffffffff;
67229: }
67230: SET_ZFLG (((uae_s32)(val)) == 0);
67231: SET_NFLG (((uae_s32)(val)) < 0);
67232: m68k_dreg(regs, dstreg) = (val);
67233: }}}}m68k_incpc(2);
67234: fill_prefetch_2 ();
67235: return (8+retcycles*2);
67236: }
67237: unsigned long REGPARAM2 CPUFUNC(op_e0a8_5)(uae_u32 opcode) /* LSR */
67238: {
67239: uae_u32 srcreg = ((opcode >> 9) & 7);
67240: uae_u32 dstreg = opcode & 7;
67241: unsigned int retcycles = 0;
67242: OpcodeFamily = 66; CurrentInstrCycles = 4;
67243: {{ uae_s32 cnt = m68k_dreg(regs, srcreg);
67244: { uae_s32 data = m68k_dreg(regs, dstreg);
67245: { uae_u32 val = data;
67246: cnt &= 63;
67247: retcycles = cnt;
67248: CLEAR_CZNV;
67249: if (cnt >= 32) {
67250: SET_CFLG ((cnt == 32) & (val >> 31));
67251: COPY_CARRY;
67252: val = 0;
67253: } else if (cnt > 0) {
67254: val >>= cnt - 1;
67255: SET_CFLG (val & 1);
67256: COPY_CARRY;
67257: val >>= 1;
67258: }
67259: SET_ZFLG (((uae_s32)(val)) == 0);
67260: SET_NFLG (((uae_s32)(val)) < 0);
67261: m68k_dreg(regs, dstreg) = (val);
67262: }}}}m68k_incpc(2);
67263: fill_prefetch_2 ();
67264: return (8+retcycles*2);
67265: }
67266: unsigned long REGPARAM2 CPUFUNC(op_e0b0_5)(uae_u32 opcode) /* ROXR */
67267: {
67268: uae_u32 srcreg = ((opcode >> 9) & 7);
67269: uae_u32 dstreg = opcode & 7;
67270: unsigned int retcycles = 0;
67271: OpcodeFamily = 71; CurrentInstrCycles = 4;
67272: {{ uae_s32 cnt = m68k_dreg(regs, srcreg);
67273: { uae_s32 data = m68k_dreg(regs, dstreg);
67274: { uae_u32 val = data;
67275: cnt &= 63;
67276: retcycles = cnt;
67277: CLEAR_CZNV;
67278: if (cnt >= 33) cnt -= 33;
67279: if (cnt > 0) {
67280: cnt--;
67281: {
67282: uae_u32 carry;
67283: uae_u32 hival = (val << 1) | GET_XFLG;
67284: hival <<= (31 - cnt);
67285: val >>= cnt;
67286: carry = val & 1;
67287: val >>= 1;
67288: val |= hival;
67289: SET_XFLG (carry);
67290: val &= 0xffffffff;
67291: } }
67292: SET_CFLG (GET_XFLG);
67293: SET_ZFLG (((uae_s32)(val)) == 0);
67294: SET_NFLG (((uae_s32)(val)) < 0);
67295: m68k_dreg(regs, dstreg) = (val);
67296: }}}}m68k_incpc(2);
67297: fill_prefetch_2 ();
67298: return (8+retcycles*2);
67299: }
67300: unsigned long REGPARAM2 CPUFUNC(op_e0b8_5)(uae_u32 opcode) /* ROR */
67301: {
67302: uae_u32 srcreg = ((opcode >> 9) & 7);
67303: uae_u32 dstreg = opcode & 7;
67304: unsigned int retcycles = 0;
67305: OpcodeFamily = 69; CurrentInstrCycles = 4;
67306: {{ uae_s32 cnt = m68k_dreg(regs, srcreg);
67307: { uae_s32 data = m68k_dreg(regs, dstreg);
67308: { uae_u32 val = data;
67309: cnt &= 63;
67310: retcycles = cnt;
67311: CLEAR_CZNV;
67312: if (cnt > 0) { uae_u32 hival;
67313: cnt &= 31;
67314: hival = val << (32 - cnt);
67315: val >>= cnt;
67316: val |= hival;
67317: val &= 0xffffffff;
67318: SET_CFLG ((val & 0x80000000) >> 31);
67319: }
67320: SET_ZFLG (((uae_s32)(val)) == 0);
67321: SET_NFLG (((uae_s32)(val)) < 0);
67322: m68k_dreg(regs, dstreg) = (val);
67323: }}}}m68k_incpc(2);
67324: fill_prefetch_2 ();
67325: return (8+retcycles*2);
67326: }
67327: unsigned long REGPARAM2 CPUFUNC(op_e0d0_5)(uae_u32 opcode) /* ASRW */
67328: {
67329: uae_u32 srcreg = (opcode & 7);
67330: OpcodeFamily = 72; CurrentInstrCycles = 12;
67331: {{ uaecptr dataa = m68k_areg(regs, srcreg);
67332: if ((dataa & 1) != 0) {
67333: last_fault_for_exception_3 = dataa;
67334: last_op_for_exception_3 = opcode;
67335: last_addr_for_exception_3 = m68k_getpc() + 2;
67336: Exception(3, 0, M68000_EXC_SRC_CPU);
67337: goto endlabel3655;
67338: }
67339: {{ uae_s16 data = get_word(dataa);
67340: { uae_u32 val = (uae_u16)data;
67341: uae_u32 sign = 0x8000 & val;
67342: uae_u32 cflg = val & 1;
67343: val = (val >> 1) | sign;
67344: CLEAR_CZNV;
67345: SET_ZFLG (((uae_s16)(val)) == 0);
67346: SET_NFLG (((uae_s16)(val)) < 0);
67347: SET_CFLG (cflg);
67348: COPY_CARRY;
67349: m68k_incpc(2);
67350: fill_prefetch_2 ();
67351: put_word(dataa,val);
67352: }}}}}endlabel3655: ;
67353: return 12;
67354: }
67355: unsigned long REGPARAM2 CPUFUNC(op_e0d8_5)(uae_u32 opcode) /* ASRW */
67356: {
67357: uae_u32 srcreg = (opcode & 7);
67358: OpcodeFamily = 72; CurrentInstrCycles = 12;
67359: {{ uaecptr dataa = m68k_areg(regs, srcreg);
67360: if ((dataa & 1) != 0) {
67361: last_fault_for_exception_3 = dataa;
67362: last_op_for_exception_3 = opcode;
67363: last_addr_for_exception_3 = m68k_getpc() + 2;
67364: Exception(3, 0, M68000_EXC_SRC_CPU);
67365: goto endlabel3656;
67366: }
67367: {{ uae_s16 data = get_word(dataa);
67368: m68k_areg(regs, srcreg) += 2;
67369: { uae_u32 val = (uae_u16)data;
67370: uae_u32 sign = 0x8000 & val;
67371: uae_u32 cflg = val & 1;
67372: val = (val >> 1) | sign;
67373: CLEAR_CZNV;
67374: SET_ZFLG (((uae_s16)(val)) == 0);
67375: SET_NFLG (((uae_s16)(val)) < 0);
67376: SET_CFLG (cflg);
67377: COPY_CARRY;
67378: m68k_incpc(2);
67379: fill_prefetch_2 ();
67380: put_word(dataa,val);
67381: }}}}}endlabel3656: ;
67382: return 12;
67383: }
67384: unsigned long REGPARAM2 CPUFUNC(op_e0e0_5)(uae_u32 opcode) /* ASRW */
67385: {
67386: uae_u32 srcreg = (opcode & 7);
67387: OpcodeFamily = 72; CurrentInstrCycles = 14;
67388: {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2;
67389: if ((dataa & 1) != 0) {
67390: last_fault_for_exception_3 = dataa;
67391: last_op_for_exception_3 = opcode;
67392: last_addr_for_exception_3 = m68k_getpc() + 2;
67393: Exception(3, 0, M68000_EXC_SRC_CPU);
67394: goto endlabel3657;
67395: }
67396: {{ uae_s16 data = get_word(dataa);
67397: m68k_areg (regs, srcreg) = dataa;
67398: { uae_u32 val = (uae_u16)data;
67399: uae_u32 sign = 0x8000 & val;
67400: uae_u32 cflg = val & 1;
67401: val = (val >> 1) | sign;
67402: CLEAR_CZNV;
67403: SET_ZFLG (((uae_s16)(val)) == 0);
67404: SET_NFLG (((uae_s16)(val)) < 0);
67405: SET_CFLG (cflg);
67406: COPY_CARRY;
67407: m68k_incpc(2);
67408: fill_prefetch_2 ();
67409: put_word(dataa,val);
67410: }}}}}endlabel3657: ;
67411: return 14;
67412: }
67413: unsigned long REGPARAM2 CPUFUNC(op_e0e8_5)(uae_u32 opcode) /* ASRW */
67414: {
67415: uae_u32 srcreg = (opcode & 7);
67416: OpcodeFamily = 72; CurrentInstrCycles = 16;
67417: {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
67418: if ((dataa & 1) != 0) {
67419: last_fault_for_exception_3 = dataa;
67420: last_op_for_exception_3 = opcode;
67421: last_addr_for_exception_3 = m68k_getpc() + 4;
67422: Exception(3, 0, M68000_EXC_SRC_CPU);
67423: goto endlabel3658;
67424: }
67425: {{ uae_s16 data = get_word(dataa);
67426: { uae_u32 val = (uae_u16)data;
67427: uae_u32 sign = 0x8000 & val;
67428: uae_u32 cflg = val & 1;
67429: val = (val >> 1) | sign;
67430: CLEAR_CZNV;
67431: SET_ZFLG (((uae_s16)(val)) == 0);
67432: SET_NFLG (((uae_s16)(val)) < 0);
67433: SET_CFLG (cflg);
67434: COPY_CARRY;
67435: m68k_incpc(4);
67436: fill_prefetch_0 ();
67437: put_word(dataa,val);
67438: }}}}}endlabel3658: ;
67439: return 16;
67440: }
67441: unsigned long REGPARAM2 CPUFUNC(op_e0f0_5)(uae_u32 opcode) /* ASRW */
67442: {
67443: uae_u32 srcreg = (opcode & 7);
67444: OpcodeFamily = 72; CurrentInstrCycles = 18;
67445: {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
67446: BusCyclePenalty += 2;
67447: if ((dataa & 1) != 0) {
67448: last_fault_for_exception_3 = dataa;
67449: last_op_for_exception_3 = opcode;
67450: last_addr_for_exception_3 = m68k_getpc() + 4;
67451: Exception(3, 0, M68000_EXC_SRC_CPU);
67452: goto endlabel3659;
67453: }
67454: {{ uae_s16 data = get_word(dataa);
67455: { uae_u32 val = (uae_u16)data;
67456: uae_u32 sign = 0x8000 & val;
67457: uae_u32 cflg = val & 1;
67458: val = (val >> 1) | sign;
67459: CLEAR_CZNV;
67460: SET_ZFLG (((uae_s16)(val)) == 0);
67461: SET_NFLG (((uae_s16)(val)) < 0);
67462: SET_CFLG (cflg);
67463: COPY_CARRY;
67464: m68k_incpc(4);
67465: fill_prefetch_0 ();
67466: put_word(dataa,val);
67467: }}}}}endlabel3659: ;
67468: return 18;
67469: }
67470: unsigned long REGPARAM2 CPUFUNC(op_e0f8_5)(uae_u32 opcode) /* ASRW */
67471: {
67472: OpcodeFamily = 72; CurrentInstrCycles = 16;
67473: {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword_prefetch(2);
67474: if ((dataa & 1) != 0) {
67475: last_fault_for_exception_3 = dataa;
67476: last_op_for_exception_3 = opcode;
67477: last_addr_for_exception_3 = m68k_getpc() + 4;
67478: Exception(3, 0, M68000_EXC_SRC_CPU);
67479: goto endlabel3660;
67480: }
67481: {{ uae_s16 data = get_word(dataa);
67482: { uae_u32 val = (uae_u16)data;
67483: uae_u32 sign = 0x8000 & val;
67484: uae_u32 cflg = val & 1;
67485: val = (val >> 1) | sign;
67486: CLEAR_CZNV;
67487: SET_ZFLG (((uae_s16)(val)) == 0);
67488: SET_NFLG (((uae_s16)(val)) < 0);
67489: SET_CFLG (cflg);
67490: COPY_CARRY;
67491: m68k_incpc(4);
67492: fill_prefetch_0 ();
67493: put_word(dataa,val);
67494: }}}}}endlabel3660: ;
67495: return 16;
67496: }
67497: unsigned long REGPARAM2 CPUFUNC(op_e0f9_5)(uae_u32 opcode) /* ASRW */
67498: {
67499: OpcodeFamily = 72; CurrentInstrCycles = 20;
67500: {{ uaecptr dataa = get_ilong_prefetch(2);
67501: if ((dataa & 1) != 0) {
67502: last_fault_for_exception_3 = dataa;
67503: last_op_for_exception_3 = opcode;
67504: last_addr_for_exception_3 = m68k_getpc() + 6;
67505: Exception(3, 0, M68000_EXC_SRC_CPU);
67506: goto endlabel3661;
67507: }
67508: {{ uae_s16 data = get_word(dataa);
67509: { uae_u32 val = (uae_u16)data;
67510: uae_u32 sign = 0x8000 & val;
67511: uae_u32 cflg = val & 1;
67512: val = (val >> 1) | sign;
67513: CLEAR_CZNV;
67514: SET_ZFLG (((uae_s16)(val)) == 0);
67515: SET_NFLG (((uae_s16)(val)) < 0);
67516: SET_CFLG (cflg);
67517: COPY_CARRY;
67518: m68k_incpc(6);
67519: fill_prefetch_0 ();
67520: put_word(dataa,val);
67521: }}}}}endlabel3661: ;
67522: return 20;
67523: }
67524: unsigned long REGPARAM2 CPUFUNC(op_e100_5)(uae_u32 opcode) /* ASL */
67525: {
67526: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
67527: uae_u32 dstreg = opcode & 7;
67528: unsigned int retcycles = 0;
67529: OpcodeFamily = 65; CurrentInstrCycles = 4;
67530: {{ uae_u32 cnt = srcreg;
67531: { uae_s8 data = m68k_dreg(regs, dstreg);
67532: { uae_u32 val = (uae_u8)data;
67533: cnt &= 63;
67534: retcycles = cnt;
67535: CLEAR_CZNV;
67536: if (cnt >= 8) {
67537: SET_VFLG (val != 0);
67538: SET_CFLG (cnt == 8 ? val & 1 : 0);
67539: COPY_CARRY;
67540: val = 0;
67541: } else {
67542: uae_u32 mask = (0xff << (7 - cnt)) & 0xff;
67543: SET_VFLG ((val & mask) != mask && (val & mask) != 0);
67544: val <<= cnt - 1;
67545: SET_CFLG ((val & 0x80) >> 7);
67546: COPY_CARRY;
67547: val <<= 1;
67548: val &= 0xff;
67549: }
67550: SET_ZFLG (((uae_s8)(val)) == 0);
67551: SET_NFLG (((uae_s8)(val)) < 0);
67552: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
67553: }}}}m68k_incpc(2);
67554: fill_prefetch_2 ();
67555: return (6+retcycles*2);
67556: }
67557: unsigned long REGPARAM2 CPUFUNC(op_e108_5)(uae_u32 opcode) /* LSL */
67558: {
67559: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
67560: uae_u32 dstreg = opcode & 7;
67561: unsigned int retcycles = 0;
67562: OpcodeFamily = 67; CurrentInstrCycles = 4;
67563: {{ uae_u32 cnt = srcreg;
67564: { uae_s8 data = m68k_dreg(regs, dstreg);
67565: { uae_u32 val = (uae_u8)data;
67566: cnt &= 63;
67567: retcycles = cnt;
67568: CLEAR_CZNV;
67569: if (cnt >= 8) {
67570: SET_CFLG (cnt == 8 ? val & 1 : 0);
67571: COPY_CARRY;
67572: val = 0;
67573: } else {
67574: val <<= (cnt - 1);
67575: SET_CFLG ((val & 0x80) >> 7);
67576: COPY_CARRY;
67577: val <<= 1;
67578: val &= 0xff;
67579: }
67580: SET_ZFLG (((uae_s8)(val)) == 0);
67581: SET_NFLG (((uae_s8)(val)) < 0);
67582: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
67583: }}}}m68k_incpc(2);
67584: fill_prefetch_2 ();
67585: return (6+retcycles*2);
67586: }
67587: unsigned long REGPARAM2 CPUFUNC(op_e110_5)(uae_u32 opcode) /* ROXL */
67588: {
67589: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
67590: uae_u32 dstreg = opcode & 7;
67591: unsigned int retcycles = 0;
67592: OpcodeFamily = 70; CurrentInstrCycles = 4;
67593: {{ uae_u32 cnt = srcreg;
67594: { uae_s8 data = m68k_dreg(regs, dstreg);
67595: { uae_u32 val = (uae_u8)data;
67596: cnt &= 63;
67597: retcycles = cnt;
67598: CLEAR_CZNV;
67599: { cnt--;
67600: {
67601: uae_u32 carry;
67602: uae_u32 loval = val >> (7 - cnt);
67603: carry = loval & 1;
67604: val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1);
67605: SET_XFLG (carry);
67606: val &= 0xff;
67607: } }
67608: SET_CFLG (GET_XFLG);
67609: SET_ZFLG (((uae_s8)(val)) == 0);
67610: SET_NFLG (((uae_s8)(val)) < 0);
67611: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
67612: }}}}m68k_incpc(2);
67613: fill_prefetch_2 ();
67614: return (6+retcycles*2);
67615: }
67616: unsigned long REGPARAM2 CPUFUNC(op_e118_5)(uae_u32 opcode) /* ROL */
67617: {
67618: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
67619: uae_u32 dstreg = opcode & 7;
67620: unsigned int retcycles = 0;
67621: OpcodeFamily = 68; CurrentInstrCycles = 4;
67622: {{ uae_u32 cnt = srcreg;
67623: { uae_s8 data = m68k_dreg(regs, dstreg);
67624: { uae_u32 val = (uae_u8)data;
67625: cnt &= 63;
67626: retcycles = cnt;
67627: CLEAR_CZNV;
67628: { uae_u32 loval;
67629: cnt &= 7;
67630: loval = val >> (8 - cnt);
67631: val <<= cnt;
67632: val |= loval;
67633: val &= 0xff;
67634: SET_CFLG (val & 1);
67635: }
67636: SET_ZFLG (((uae_s8)(val)) == 0);
67637: SET_NFLG (((uae_s8)(val)) < 0);
67638: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
67639: }}}}m68k_incpc(2);
67640: fill_prefetch_2 ();
67641: return (6+retcycles*2);
67642: }
67643: unsigned long REGPARAM2 CPUFUNC(op_e120_5)(uae_u32 opcode) /* ASL */
67644: {
67645: uae_u32 srcreg = ((opcode >> 9) & 7);
67646: uae_u32 dstreg = opcode & 7;
67647: unsigned int retcycles = 0;
67648: OpcodeFamily = 65; CurrentInstrCycles = 4;
67649: {{ uae_s8 cnt = m68k_dreg(regs, srcreg);
67650: { uae_s8 data = m68k_dreg(regs, dstreg);
67651: { uae_u32 val = (uae_u8)data;
67652: cnt &= 63;
67653: retcycles = cnt;
67654: CLEAR_CZNV;
67655: if (cnt >= 8) {
67656: SET_VFLG (val != 0);
67657: SET_CFLG (cnt == 8 ? val & 1 : 0);
67658: COPY_CARRY;
67659: val = 0;
67660: } else if (cnt > 0) {
67661: uae_u32 mask = (0xff << (7 - cnt)) & 0xff;
67662: SET_VFLG ((val & mask) != mask && (val & mask) != 0);
67663: val <<= cnt - 1;
67664: SET_CFLG ((val & 0x80) >> 7);
67665: COPY_CARRY;
67666: val <<= 1;
67667: val &= 0xff;
67668: }
67669: SET_ZFLG (((uae_s8)(val)) == 0);
67670: SET_NFLG (((uae_s8)(val)) < 0);
67671: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
67672: }}}}m68k_incpc(2);
67673: fill_prefetch_2 ();
67674: return (6+retcycles*2);
67675: }
67676: unsigned long REGPARAM2 CPUFUNC(op_e128_5)(uae_u32 opcode) /* LSL */
67677: {
67678: uae_u32 srcreg = ((opcode >> 9) & 7);
67679: uae_u32 dstreg = opcode & 7;
67680: unsigned int retcycles = 0;
67681: OpcodeFamily = 67; CurrentInstrCycles = 4;
67682: {{ uae_s8 cnt = m68k_dreg(regs, srcreg);
67683: { uae_s8 data = m68k_dreg(regs, dstreg);
67684: { uae_u32 val = (uae_u8)data;
67685: cnt &= 63;
67686: retcycles = cnt;
67687: CLEAR_CZNV;
67688: if (cnt >= 8) {
67689: SET_CFLG (cnt == 8 ? val & 1 : 0);
67690: COPY_CARRY;
67691: val = 0;
67692: } else if (cnt > 0) {
67693: val <<= (cnt - 1);
67694: SET_CFLG ((val & 0x80) >> 7);
67695: COPY_CARRY;
67696: val <<= 1;
67697: val &= 0xff;
67698: }
67699: SET_ZFLG (((uae_s8)(val)) == 0);
67700: SET_NFLG (((uae_s8)(val)) < 0);
67701: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
67702: }}}}m68k_incpc(2);
67703: fill_prefetch_2 ();
67704: return (6+retcycles*2);
67705: }
67706: unsigned long REGPARAM2 CPUFUNC(op_e130_5)(uae_u32 opcode) /* ROXL */
67707: {
67708: uae_u32 srcreg = ((opcode >> 9) & 7);
67709: uae_u32 dstreg = opcode & 7;
67710: unsigned int retcycles = 0;
67711: OpcodeFamily = 70; CurrentInstrCycles = 4;
67712: {{ uae_s8 cnt = m68k_dreg(regs, srcreg);
67713: { uae_s8 data = m68k_dreg(regs, dstreg);
67714: { uae_u32 val = (uae_u8)data;
67715: cnt &= 63;
67716: retcycles = cnt;
67717: CLEAR_CZNV;
67718: if (cnt >= 36) cnt -= 36;
67719: if (cnt >= 18) cnt -= 18;
67720: if (cnt >= 9) cnt -= 9;
67721: if (cnt > 0) {
67722: cnt--;
67723: {
67724: uae_u32 carry;
67725: uae_u32 loval = val >> (7 - cnt);
67726: carry = loval & 1;
67727: val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1);
67728: SET_XFLG (carry);
67729: val &= 0xff;
67730: } }
67731: SET_CFLG (GET_XFLG);
67732: SET_ZFLG (((uae_s8)(val)) == 0);
67733: SET_NFLG (((uae_s8)(val)) < 0);
67734: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
67735: }}}}m68k_incpc(2);
67736: fill_prefetch_2 ();
67737: return (6+retcycles*2);
67738: }
67739: unsigned long REGPARAM2 CPUFUNC(op_e138_5)(uae_u32 opcode) /* ROL */
67740: {
67741: uae_u32 srcreg = ((opcode >> 9) & 7);
67742: uae_u32 dstreg = opcode & 7;
67743: unsigned int retcycles = 0;
67744: OpcodeFamily = 68; CurrentInstrCycles = 4;
67745: {{ uae_s8 cnt = m68k_dreg(regs, srcreg);
67746: { uae_s8 data = m68k_dreg(regs, dstreg);
67747: { uae_u32 val = (uae_u8)data;
67748: cnt &= 63;
67749: retcycles = cnt;
67750: CLEAR_CZNV;
67751: if (cnt > 0) {
67752: uae_u32 loval;
67753: cnt &= 7;
67754: loval = val >> (8 - cnt);
67755: val <<= cnt;
67756: val |= loval;
67757: val &= 0xff;
67758: SET_CFLG (val & 1);
67759: }
67760: SET_ZFLG (((uae_s8)(val)) == 0);
67761: SET_NFLG (((uae_s8)(val)) < 0);
67762: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xff) | ((val) & 0xff);
67763: }}}}m68k_incpc(2);
67764: fill_prefetch_2 ();
67765: return (6+retcycles*2);
67766: }
67767: unsigned long REGPARAM2 CPUFUNC(op_e140_5)(uae_u32 opcode) /* ASL */
67768: {
67769: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
67770: uae_u32 dstreg = opcode & 7;
67771: unsigned int retcycles = 0;
67772: OpcodeFamily = 65; CurrentInstrCycles = 4;
67773: {{ uae_u32 cnt = srcreg;
67774: { uae_s16 data = m68k_dreg(regs, dstreg);
67775: { uae_u32 val = (uae_u16)data;
67776: cnt &= 63;
67777: retcycles = cnt;
67778: CLEAR_CZNV;
67779: if (cnt >= 16) {
67780: SET_VFLG (val != 0);
67781: SET_CFLG (cnt == 16 ? val & 1 : 0);
67782: COPY_CARRY;
67783: val = 0;
67784: } else {
67785: uae_u32 mask = (0xffff << (15 - cnt)) & 0xffff;
67786: SET_VFLG ((val & mask) != mask && (val & mask) != 0);
67787: val <<= cnt - 1;
67788: SET_CFLG ((val & 0x8000) >> 15);
67789: COPY_CARRY;
67790: val <<= 1;
67791: val &= 0xffff;
67792: }
67793: SET_ZFLG (((uae_s16)(val)) == 0);
67794: SET_NFLG (((uae_s16)(val)) < 0);
67795: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
67796: }}}}m68k_incpc(2);
67797: fill_prefetch_2 ();
67798: return (6+retcycles*2);
67799: }
67800: unsigned long REGPARAM2 CPUFUNC(op_e148_5)(uae_u32 opcode) /* LSL */
67801: {
67802: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
67803: uae_u32 dstreg = opcode & 7;
67804: unsigned int retcycles = 0;
67805: OpcodeFamily = 67; CurrentInstrCycles = 4;
67806: {{ uae_u32 cnt = srcreg;
67807: { uae_s16 data = m68k_dreg(regs, dstreg);
67808: { uae_u32 val = (uae_u16)data;
67809: cnt &= 63;
67810: retcycles = cnt;
67811: CLEAR_CZNV;
67812: if (cnt >= 16) {
67813: SET_CFLG (cnt == 16 ? val & 1 : 0);
67814: COPY_CARRY;
67815: val = 0;
67816: } else {
67817: val <<= (cnt - 1);
67818: SET_CFLG ((val & 0x8000) >> 15);
67819: COPY_CARRY;
67820: val <<= 1;
67821: val &= 0xffff;
67822: }
67823: SET_ZFLG (((uae_s16)(val)) == 0);
67824: SET_NFLG (((uae_s16)(val)) < 0);
67825: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
67826: }}}}m68k_incpc(2);
67827: fill_prefetch_2 ();
67828: return (6+retcycles*2);
67829: }
67830: unsigned long REGPARAM2 CPUFUNC(op_e150_5)(uae_u32 opcode) /* ROXL */
67831: {
67832: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
67833: uae_u32 dstreg = opcode & 7;
67834: unsigned int retcycles = 0;
67835: OpcodeFamily = 70; CurrentInstrCycles = 4;
67836: {{ uae_u32 cnt = srcreg;
67837: { uae_s16 data = m68k_dreg(regs, dstreg);
67838: { uae_u32 val = (uae_u16)data;
67839: cnt &= 63;
67840: retcycles = cnt;
67841: CLEAR_CZNV;
67842: { cnt--;
67843: {
67844: uae_u32 carry;
67845: uae_u32 loval = val >> (15 - cnt);
67846: carry = loval & 1;
67847: val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1);
67848: SET_XFLG (carry);
67849: val &= 0xffff;
67850: } }
67851: SET_CFLG (GET_XFLG);
67852: SET_ZFLG (((uae_s16)(val)) == 0);
67853: SET_NFLG (((uae_s16)(val)) < 0);
67854: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
67855: }}}}m68k_incpc(2);
67856: fill_prefetch_2 ();
67857: return (6+retcycles*2);
67858: }
67859: unsigned long REGPARAM2 CPUFUNC(op_e158_5)(uae_u32 opcode) /* ROL */
67860: {
67861: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
67862: uae_u32 dstreg = opcode & 7;
67863: unsigned int retcycles = 0;
67864: OpcodeFamily = 68; CurrentInstrCycles = 4;
67865: {{ uae_u32 cnt = srcreg;
67866: { uae_s16 data = m68k_dreg(regs, dstreg);
67867: { uae_u32 val = (uae_u16)data;
67868: cnt &= 63;
67869: retcycles = cnt;
67870: CLEAR_CZNV;
67871: { uae_u32 loval;
67872: cnt &= 15;
67873: loval = val >> (16 - cnt);
67874: val <<= cnt;
67875: val |= loval;
67876: val &= 0xffff;
67877: SET_CFLG (val & 1);
67878: }
67879: SET_ZFLG (((uae_s16)(val)) == 0);
67880: SET_NFLG (((uae_s16)(val)) < 0);
67881: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
67882: }}}}m68k_incpc(2);
67883: fill_prefetch_2 ();
67884: return (6+retcycles*2);
67885: }
67886: unsigned long REGPARAM2 CPUFUNC(op_e160_5)(uae_u32 opcode) /* ASL */
67887: {
67888: uae_u32 srcreg = ((opcode >> 9) & 7);
67889: uae_u32 dstreg = opcode & 7;
67890: unsigned int retcycles = 0;
67891: OpcodeFamily = 65; CurrentInstrCycles = 4;
67892: {{ uae_s16 cnt = m68k_dreg(regs, srcreg);
67893: { uae_s16 data = m68k_dreg(regs, dstreg);
67894: { uae_u32 val = (uae_u16)data;
67895: cnt &= 63;
67896: retcycles = cnt;
67897: CLEAR_CZNV;
67898: if (cnt >= 16) {
67899: SET_VFLG (val != 0);
67900: SET_CFLG (cnt == 16 ? val & 1 : 0);
67901: COPY_CARRY;
67902: val = 0;
67903: } else if (cnt > 0) {
67904: uae_u32 mask = (0xffff << (15 - cnt)) & 0xffff;
67905: SET_VFLG ((val & mask) != mask && (val & mask) != 0);
67906: val <<= cnt - 1;
67907: SET_CFLG ((val & 0x8000) >> 15);
67908: COPY_CARRY;
67909: val <<= 1;
67910: val &= 0xffff;
67911: }
67912: SET_ZFLG (((uae_s16)(val)) == 0);
67913: SET_NFLG (((uae_s16)(val)) < 0);
67914: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
67915: }}}}m68k_incpc(2);
67916: fill_prefetch_2 ();
67917: return (6+retcycles*2);
67918: }
67919: unsigned long REGPARAM2 CPUFUNC(op_e168_5)(uae_u32 opcode) /* LSL */
67920: {
67921: uae_u32 srcreg = ((opcode >> 9) & 7);
67922: uae_u32 dstreg = opcode & 7;
67923: unsigned int retcycles = 0;
67924: OpcodeFamily = 67; CurrentInstrCycles = 4;
67925: {{ uae_s16 cnt = m68k_dreg(regs, srcreg);
67926: { uae_s16 data = m68k_dreg(regs, dstreg);
67927: { uae_u32 val = (uae_u16)data;
67928: cnt &= 63;
67929: retcycles = cnt;
67930: CLEAR_CZNV;
67931: if (cnt >= 16) {
67932: SET_CFLG (cnt == 16 ? val & 1 : 0);
67933: COPY_CARRY;
67934: val = 0;
67935: } else if (cnt > 0) {
67936: val <<= (cnt - 1);
67937: SET_CFLG ((val & 0x8000) >> 15);
67938: COPY_CARRY;
67939: val <<= 1;
67940: val &= 0xffff;
67941: }
67942: SET_ZFLG (((uae_s16)(val)) == 0);
67943: SET_NFLG (((uae_s16)(val)) < 0);
67944: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
67945: }}}}m68k_incpc(2);
67946: fill_prefetch_2 ();
67947: return (6+retcycles*2);
67948: }
67949: unsigned long REGPARAM2 CPUFUNC(op_e170_5)(uae_u32 opcode) /* ROXL */
67950: {
67951: uae_u32 srcreg = ((opcode >> 9) & 7);
67952: uae_u32 dstreg = opcode & 7;
67953: unsigned int retcycles = 0;
67954: OpcodeFamily = 70; CurrentInstrCycles = 4;
67955: {{ uae_s16 cnt = m68k_dreg(regs, srcreg);
67956: { uae_s16 data = m68k_dreg(regs, dstreg);
67957: { uae_u32 val = (uae_u16)data;
67958: cnt &= 63;
67959: retcycles = cnt;
67960: CLEAR_CZNV;
67961: if (cnt >= 34) cnt -= 34;
67962: if (cnt >= 17) cnt -= 17;
67963: if (cnt > 0) {
67964: cnt--;
67965: {
67966: uae_u32 carry;
67967: uae_u32 loval = val >> (15 - cnt);
67968: carry = loval & 1;
67969: val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1);
67970: SET_XFLG (carry);
67971: val &= 0xffff;
67972: } }
67973: SET_CFLG (GET_XFLG);
67974: SET_ZFLG (((uae_s16)(val)) == 0);
67975: SET_NFLG (((uae_s16)(val)) < 0);
67976: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
67977: }}}}m68k_incpc(2);
67978: fill_prefetch_2 ();
67979: return (6+retcycles*2);
67980: }
67981: unsigned long REGPARAM2 CPUFUNC(op_e178_5)(uae_u32 opcode) /* ROL */
67982: {
67983: uae_u32 srcreg = ((opcode >> 9) & 7);
67984: uae_u32 dstreg = opcode & 7;
67985: unsigned int retcycles = 0;
67986: OpcodeFamily = 68; CurrentInstrCycles = 4;
67987: {{ uae_s16 cnt = m68k_dreg(regs, srcreg);
67988: { uae_s16 data = m68k_dreg(regs, dstreg);
67989: { uae_u32 val = (uae_u16)data;
67990: cnt &= 63;
67991: retcycles = cnt;
67992: CLEAR_CZNV;
67993: if (cnt > 0) {
67994: uae_u32 loval;
67995: cnt &= 15;
67996: loval = val >> (16 - cnt);
67997: val <<= cnt;
67998: val |= loval;
67999: val &= 0xffff;
68000: SET_CFLG (val & 1);
68001: }
68002: SET_ZFLG (((uae_s16)(val)) == 0);
68003: SET_NFLG (((uae_s16)(val)) < 0);
68004: m68k_dreg(regs, dstreg) = (m68k_dreg(regs, dstreg) & ~0xffff) | ((val) & 0xffff);
68005: }}}}m68k_incpc(2);
68006: fill_prefetch_2 ();
68007: return (6+retcycles*2);
68008: }
68009: unsigned long REGPARAM2 CPUFUNC(op_e180_5)(uae_u32 opcode) /* ASL */
68010: {
68011: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
68012: uae_u32 dstreg = opcode & 7;
68013: unsigned int retcycles = 0;
68014: OpcodeFamily = 65; CurrentInstrCycles = 4;
68015: {{ uae_u32 cnt = srcreg;
68016: { uae_s32 data = m68k_dreg(regs, dstreg);
68017: { uae_u32 val = data;
68018: cnt &= 63;
68019: retcycles = cnt;
68020: CLEAR_CZNV;
68021: if (cnt >= 32) {
68022: SET_VFLG (val != 0);
68023: SET_CFLG (cnt == 32 ? val & 1 : 0);
68024: COPY_CARRY;
68025: val = 0;
68026: } else {
68027: uae_u32 mask = (0xffffffff << (31 - cnt)) & 0xffffffff;
68028: SET_VFLG ((val & mask) != mask && (val & mask) != 0);
68029: val <<= cnt - 1;
68030: SET_CFLG ((val & 0x80000000) >> 31);
68031: COPY_CARRY;
68032: val <<= 1;
68033: val &= 0xffffffff;
68034: }
68035: SET_ZFLG (((uae_s32)(val)) == 0);
68036: SET_NFLG (((uae_s32)(val)) < 0);
68037: m68k_dreg(regs, dstreg) = (val);
68038: }}}}m68k_incpc(2);
68039: fill_prefetch_2 ();
68040: return (8+retcycles*2);
68041: }
68042: unsigned long REGPARAM2 CPUFUNC(op_e188_5)(uae_u32 opcode) /* LSL */
68043: {
68044: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
68045: uae_u32 dstreg = opcode & 7;
68046: unsigned int retcycles = 0;
68047: OpcodeFamily = 67; CurrentInstrCycles = 4;
68048: {{ uae_u32 cnt = srcreg;
68049: { uae_s32 data = m68k_dreg(regs, dstreg);
68050: { uae_u32 val = data;
68051: cnt &= 63;
68052: retcycles = cnt;
68053: CLEAR_CZNV;
68054: if (cnt >= 32) {
68055: SET_CFLG (cnt == 32 ? val & 1 : 0);
68056: COPY_CARRY;
68057: val = 0;
68058: } else {
68059: val <<= (cnt - 1);
68060: SET_CFLG ((val & 0x80000000) >> 31);
68061: COPY_CARRY;
68062: val <<= 1;
68063: val &= 0xffffffff;
68064: }
68065: SET_ZFLG (((uae_s32)(val)) == 0);
68066: SET_NFLG (((uae_s32)(val)) < 0);
68067: m68k_dreg(regs, dstreg) = (val);
68068: }}}}m68k_incpc(2);
68069: fill_prefetch_2 ();
68070: return (8+retcycles*2);
68071: }
68072: unsigned long REGPARAM2 CPUFUNC(op_e190_5)(uae_u32 opcode) /* ROXL */
68073: {
68074: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
68075: uae_u32 dstreg = opcode & 7;
68076: unsigned int retcycles = 0;
68077: OpcodeFamily = 70; CurrentInstrCycles = 4;
68078: {{ uae_u32 cnt = srcreg;
68079: { uae_s32 data = m68k_dreg(regs, dstreg);
68080: { uae_u32 val = data;
68081: cnt &= 63;
68082: retcycles = cnt;
68083: CLEAR_CZNV;
68084: { cnt--;
68085: {
68086: uae_u32 carry;
68087: uae_u32 loval = val >> (31 - cnt);
68088: carry = loval & 1;
68089: val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1);
68090: SET_XFLG (carry);
68091: val &= 0xffffffff;
68092: } }
68093: SET_CFLG (GET_XFLG);
68094: SET_ZFLG (((uae_s32)(val)) == 0);
68095: SET_NFLG (((uae_s32)(val)) < 0);
68096: m68k_dreg(regs, dstreg) = (val);
68097: }}}}m68k_incpc(2);
68098: fill_prefetch_2 ();
68099: return (8+retcycles*2);
68100: }
68101: unsigned long REGPARAM2 CPUFUNC(op_e198_5)(uae_u32 opcode) /* ROL */
68102: {
68103: uae_u32 srcreg = imm8_table[((opcode >> 9) & 7)];
68104: uae_u32 dstreg = opcode & 7;
68105: unsigned int retcycles = 0;
68106: OpcodeFamily = 68; CurrentInstrCycles = 4;
68107: {{ uae_u32 cnt = srcreg;
68108: { uae_s32 data = m68k_dreg(regs, dstreg);
68109: { uae_u32 val = data;
68110: cnt &= 63;
68111: retcycles = cnt;
68112: CLEAR_CZNV;
68113: { uae_u32 loval;
68114: cnt &= 31;
68115: loval = val >> (32 - cnt);
68116: val <<= cnt;
68117: val |= loval;
68118: val &= 0xffffffff;
68119: SET_CFLG (val & 1);
68120: }
68121: SET_ZFLG (((uae_s32)(val)) == 0);
68122: SET_NFLG (((uae_s32)(val)) < 0);
68123: m68k_dreg(regs, dstreg) = (val);
68124: }}}}m68k_incpc(2);
68125: fill_prefetch_2 ();
68126: return (8+retcycles*2);
68127: }
68128: unsigned long REGPARAM2 CPUFUNC(op_e1a0_5)(uae_u32 opcode) /* ASL */
68129: {
68130: uae_u32 srcreg = ((opcode >> 9) & 7);
68131: uae_u32 dstreg = opcode & 7;
68132: unsigned int retcycles = 0;
68133: OpcodeFamily = 65; CurrentInstrCycles = 4;
68134: {{ uae_s32 cnt = m68k_dreg(regs, srcreg);
68135: { uae_s32 data = m68k_dreg(regs, dstreg);
68136: { uae_u32 val = data;
68137: cnt &= 63;
68138: retcycles = cnt;
68139: CLEAR_CZNV;
68140: if (cnt >= 32) {
68141: SET_VFLG (val != 0);
68142: SET_CFLG (cnt == 32 ? val & 1 : 0);
68143: COPY_CARRY;
68144: val = 0;
68145: } else if (cnt > 0) {
68146: uae_u32 mask = (0xffffffff << (31 - cnt)) & 0xffffffff;
68147: SET_VFLG ((val & mask) != mask && (val & mask) != 0);
68148: val <<= cnt - 1;
68149: SET_CFLG ((val & 0x80000000) >> 31);
68150: COPY_CARRY;
68151: val <<= 1;
68152: val &= 0xffffffff;
68153: }
68154: SET_ZFLG (((uae_s32)(val)) == 0);
68155: SET_NFLG (((uae_s32)(val)) < 0);
68156: m68k_dreg(regs, dstreg) = (val);
68157: }}}}m68k_incpc(2);
68158: fill_prefetch_2 ();
68159: return (8+retcycles*2);
68160: }
68161: unsigned long REGPARAM2 CPUFUNC(op_e1a8_5)(uae_u32 opcode) /* LSL */
68162: {
68163: uae_u32 srcreg = ((opcode >> 9) & 7);
68164: uae_u32 dstreg = opcode & 7;
68165: unsigned int retcycles = 0;
68166: OpcodeFamily = 67; CurrentInstrCycles = 4;
68167: {{ uae_s32 cnt = m68k_dreg(regs, srcreg);
68168: { uae_s32 data = m68k_dreg(regs, dstreg);
68169: { uae_u32 val = data;
68170: cnt &= 63;
68171: retcycles = cnt;
68172: CLEAR_CZNV;
68173: if (cnt >= 32) {
68174: SET_CFLG (cnt == 32 ? val & 1 : 0);
68175: COPY_CARRY;
68176: val = 0;
68177: } else if (cnt > 0) {
68178: val <<= (cnt - 1);
68179: SET_CFLG ((val & 0x80000000) >> 31);
68180: COPY_CARRY;
68181: val <<= 1;
68182: val &= 0xffffffff;
68183: }
68184: SET_ZFLG (((uae_s32)(val)) == 0);
68185: SET_NFLG (((uae_s32)(val)) < 0);
68186: m68k_dreg(regs, dstreg) = (val);
68187: }}}}m68k_incpc(2);
68188: fill_prefetch_2 ();
68189: return (8+retcycles*2);
68190: }
68191: unsigned long REGPARAM2 CPUFUNC(op_e1b0_5)(uae_u32 opcode) /* ROXL */
68192: {
68193: uae_u32 srcreg = ((opcode >> 9) & 7);
68194: uae_u32 dstreg = opcode & 7;
68195: unsigned int retcycles = 0;
68196: OpcodeFamily = 70; CurrentInstrCycles = 4;
68197: {{ uae_s32 cnt = m68k_dreg(regs, srcreg);
68198: { uae_s32 data = m68k_dreg(regs, dstreg);
68199: { uae_u32 val = data;
68200: cnt &= 63;
68201: retcycles = cnt;
68202: CLEAR_CZNV;
68203: if (cnt >= 33) cnt -= 33;
68204: if (cnt > 0) {
68205: cnt--;
68206: {
68207: uae_u32 carry;
68208: uae_u32 loval = val >> (31 - cnt);
68209: carry = loval & 1;
68210: val = (((val << 1) | GET_XFLG) << cnt) | (loval >> 1);
68211: SET_XFLG (carry);
68212: val &= 0xffffffff;
68213: } }
68214: SET_CFLG (GET_XFLG);
68215: SET_ZFLG (((uae_s32)(val)) == 0);
68216: SET_NFLG (((uae_s32)(val)) < 0);
68217: m68k_dreg(regs, dstreg) = (val);
68218: }}}}m68k_incpc(2);
68219: fill_prefetch_2 ();
68220: return (8+retcycles*2);
68221: }
68222: unsigned long REGPARAM2 CPUFUNC(op_e1b8_5)(uae_u32 opcode) /* ROL */
68223: {
68224: uae_u32 srcreg = ((opcode >> 9) & 7);
68225: uae_u32 dstreg = opcode & 7;
68226: unsigned int retcycles = 0;
68227: OpcodeFamily = 68; CurrentInstrCycles = 4;
68228: {{ uae_s32 cnt = m68k_dreg(regs, srcreg);
68229: { uae_s32 data = m68k_dreg(regs, dstreg);
68230: { uae_u32 val = data;
68231: cnt &= 63;
68232: retcycles = cnt;
68233: CLEAR_CZNV;
68234: if (cnt > 0) {
68235: uae_u32 loval;
68236: cnt &= 31;
68237: loval = val >> (32 - cnt);
68238: val <<= cnt;
68239: val |= loval;
68240: val &= 0xffffffff;
68241: SET_CFLG (val & 1);
68242: }
68243: SET_ZFLG (((uae_s32)(val)) == 0);
68244: SET_NFLG (((uae_s32)(val)) < 0);
68245: m68k_dreg(regs, dstreg) = (val);
68246: }}}}m68k_incpc(2);
68247: fill_prefetch_2 ();
68248: return (8+retcycles*2);
68249: }
68250: unsigned long REGPARAM2 CPUFUNC(op_e1d0_5)(uae_u32 opcode) /* ASLW */
68251: {
68252: uae_u32 srcreg = (opcode & 7);
68253: OpcodeFamily = 73; CurrentInstrCycles = 12;
68254: {{ uaecptr dataa = m68k_areg(regs, srcreg);
68255: if ((dataa & 1) != 0) {
68256: last_fault_for_exception_3 = dataa;
68257: last_op_for_exception_3 = opcode;
68258: last_addr_for_exception_3 = m68k_getpc() + 2;
68259: Exception(3, 0, M68000_EXC_SRC_CPU);
68260: goto endlabel3686;
68261: }
68262: {{ uae_s16 data = get_word(dataa);
68263: { uae_u32 val = (uae_u16)data;
68264: uae_u32 sign = 0x8000 & val;
68265: uae_u32 sign2;
68266: val <<= 1;
68267: CLEAR_CZNV;
68268: SET_ZFLG (((uae_s16)(val)) == 0);
68269: SET_NFLG (((uae_s16)(val)) < 0);
68270: sign2 = 0x8000 & val;
68271: SET_CFLG (sign != 0);
68272: COPY_CARRY;
68273: SET_VFLG (GET_VFLG | (sign2 != sign));
68274: m68k_incpc(2);
68275: fill_prefetch_2 ();
68276: put_word(dataa,val);
68277: }}}}}endlabel3686: ;
68278: return 12;
68279: }
68280: unsigned long REGPARAM2 CPUFUNC(op_e1d8_5)(uae_u32 opcode) /* ASLW */
68281: {
68282: uae_u32 srcreg = (opcode & 7);
68283: OpcodeFamily = 73; CurrentInstrCycles = 12;
68284: {{ uaecptr dataa = m68k_areg(regs, srcreg);
68285: if ((dataa & 1) != 0) {
68286: last_fault_for_exception_3 = dataa;
68287: last_op_for_exception_3 = opcode;
68288: last_addr_for_exception_3 = m68k_getpc() + 2;
68289: Exception(3, 0, M68000_EXC_SRC_CPU);
68290: goto endlabel3687;
68291: }
68292: {{ uae_s16 data = get_word(dataa);
68293: m68k_areg(regs, srcreg) += 2;
68294: { uae_u32 val = (uae_u16)data;
68295: uae_u32 sign = 0x8000 & val;
68296: uae_u32 sign2;
68297: val <<= 1;
68298: CLEAR_CZNV;
68299: SET_ZFLG (((uae_s16)(val)) == 0);
68300: SET_NFLG (((uae_s16)(val)) < 0);
68301: sign2 = 0x8000 & val;
68302: SET_CFLG (sign != 0);
68303: COPY_CARRY;
68304: SET_VFLG (GET_VFLG | (sign2 != sign));
68305: m68k_incpc(2);
68306: fill_prefetch_2 ();
68307: put_word(dataa,val);
68308: }}}}}endlabel3687: ;
68309: return 12;
68310: }
68311: unsigned long REGPARAM2 CPUFUNC(op_e1e0_5)(uae_u32 opcode) /* ASLW */
68312: {
68313: uae_u32 srcreg = (opcode & 7);
68314: OpcodeFamily = 73; CurrentInstrCycles = 14;
68315: {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2;
68316: if ((dataa & 1) != 0) {
68317: last_fault_for_exception_3 = dataa;
68318: last_op_for_exception_3 = opcode;
68319: last_addr_for_exception_3 = m68k_getpc() + 2;
68320: Exception(3, 0, M68000_EXC_SRC_CPU);
68321: goto endlabel3688;
68322: }
68323: {{ uae_s16 data = get_word(dataa);
68324: m68k_areg (regs, srcreg) = dataa;
68325: { uae_u32 val = (uae_u16)data;
68326: uae_u32 sign = 0x8000 & val;
68327: uae_u32 sign2;
68328: val <<= 1;
68329: CLEAR_CZNV;
68330: SET_ZFLG (((uae_s16)(val)) == 0);
68331: SET_NFLG (((uae_s16)(val)) < 0);
68332: sign2 = 0x8000 & val;
68333: SET_CFLG (sign != 0);
68334: COPY_CARRY;
68335: SET_VFLG (GET_VFLG | (sign2 != sign));
68336: m68k_incpc(2);
68337: fill_prefetch_2 ();
68338: put_word(dataa,val);
68339: }}}}}endlabel3688: ;
68340: return 14;
68341: }
68342: unsigned long REGPARAM2 CPUFUNC(op_e1e8_5)(uae_u32 opcode) /* ASLW */
68343: {
68344: uae_u32 srcreg = (opcode & 7);
68345: OpcodeFamily = 73; CurrentInstrCycles = 16;
68346: {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
68347: if ((dataa & 1) != 0) {
68348: last_fault_for_exception_3 = dataa;
68349: last_op_for_exception_3 = opcode;
68350: last_addr_for_exception_3 = m68k_getpc() + 4;
68351: Exception(3, 0, M68000_EXC_SRC_CPU);
68352: goto endlabel3689;
68353: }
68354: {{ uae_s16 data = get_word(dataa);
68355: { uae_u32 val = (uae_u16)data;
68356: uae_u32 sign = 0x8000 & val;
68357: uae_u32 sign2;
68358: val <<= 1;
68359: CLEAR_CZNV;
68360: SET_ZFLG (((uae_s16)(val)) == 0);
68361: SET_NFLG (((uae_s16)(val)) < 0);
68362: sign2 = 0x8000 & val;
68363: SET_CFLG (sign != 0);
68364: COPY_CARRY;
68365: SET_VFLG (GET_VFLG | (sign2 != sign));
68366: m68k_incpc(4);
68367: fill_prefetch_0 ();
68368: put_word(dataa,val);
68369: }}}}}endlabel3689: ;
68370: return 16;
68371: }
68372: unsigned long REGPARAM2 CPUFUNC(op_e1f0_5)(uae_u32 opcode) /* ASLW */
68373: {
68374: uae_u32 srcreg = (opcode & 7);
68375: OpcodeFamily = 73; CurrentInstrCycles = 18;
68376: {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
68377: BusCyclePenalty += 2;
68378: if ((dataa & 1) != 0) {
68379: last_fault_for_exception_3 = dataa;
68380: last_op_for_exception_3 = opcode;
68381: last_addr_for_exception_3 = m68k_getpc() + 4;
68382: Exception(3, 0, M68000_EXC_SRC_CPU);
68383: goto endlabel3690;
68384: }
68385: {{ uae_s16 data = get_word(dataa);
68386: { uae_u32 val = (uae_u16)data;
68387: uae_u32 sign = 0x8000 & val;
68388: uae_u32 sign2;
68389: val <<= 1;
68390: CLEAR_CZNV;
68391: SET_ZFLG (((uae_s16)(val)) == 0);
68392: SET_NFLG (((uae_s16)(val)) < 0);
68393: sign2 = 0x8000 & val;
68394: SET_CFLG (sign != 0);
68395: COPY_CARRY;
68396: SET_VFLG (GET_VFLG | (sign2 != sign));
68397: m68k_incpc(4);
68398: fill_prefetch_0 ();
68399: put_word(dataa,val);
68400: }}}}}endlabel3690: ;
68401: return 18;
68402: }
68403: unsigned long REGPARAM2 CPUFUNC(op_e1f8_5)(uae_u32 opcode) /* ASLW */
68404: {
68405: OpcodeFamily = 73; CurrentInstrCycles = 16;
68406: {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword_prefetch(2);
68407: if ((dataa & 1) != 0) {
68408: last_fault_for_exception_3 = dataa;
68409: last_op_for_exception_3 = opcode;
68410: last_addr_for_exception_3 = m68k_getpc() + 4;
68411: Exception(3, 0, M68000_EXC_SRC_CPU);
68412: goto endlabel3691;
68413: }
68414: {{ uae_s16 data = get_word(dataa);
68415: { uae_u32 val = (uae_u16)data;
68416: uae_u32 sign = 0x8000 & val;
68417: uae_u32 sign2;
68418: val <<= 1;
68419: CLEAR_CZNV;
68420: SET_ZFLG (((uae_s16)(val)) == 0);
68421: SET_NFLG (((uae_s16)(val)) < 0);
68422: sign2 = 0x8000 & val;
68423: SET_CFLG (sign != 0);
68424: COPY_CARRY;
68425: SET_VFLG (GET_VFLG | (sign2 != sign));
68426: m68k_incpc(4);
68427: fill_prefetch_0 ();
68428: put_word(dataa,val);
68429: }}}}}endlabel3691: ;
68430: return 16;
68431: }
68432: unsigned long REGPARAM2 CPUFUNC(op_e1f9_5)(uae_u32 opcode) /* ASLW */
68433: {
68434: OpcodeFamily = 73; CurrentInstrCycles = 20;
68435: {{ uaecptr dataa = get_ilong_prefetch(2);
68436: if ((dataa & 1) != 0) {
68437: last_fault_for_exception_3 = dataa;
68438: last_op_for_exception_3 = opcode;
68439: last_addr_for_exception_3 = m68k_getpc() + 6;
68440: Exception(3, 0, M68000_EXC_SRC_CPU);
68441: goto endlabel3692;
68442: }
68443: {{ uae_s16 data = get_word(dataa);
68444: { uae_u32 val = (uae_u16)data;
68445: uae_u32 sign = 0x8000 & val;
68446: uae_u32 sign2;
68447: val <<= 1;
68448: CLEAR_CZNV;
68449: SET_ZFLG (((uae_s16)(val)) == 0);
68450: SET_NFLG (((uae_s16)(val)) < 0);
68451: sign2 = 0x8000 & val;
68452: SET_CFLG (sign != 0);
68453: COPY_CARRY;
68454: SET_VFLG (GET_VFLG | (sign2 != sign));
68455: m68k_incpc(6);
68456: fill_prefetch_0 ();
68457: put_word(dataa,val);
68458: }}}}}endlabel3692: ;
68459: return 20;
68460: }
68461: unsigned long REGPARAM2 CPUFUNC(op_e2d0_5)(uae_u32 opcode) /* LSRW */
68462: {
68463: uae_u32 srcreg = (opcode & 7);
68464: OpcodeFamily = 74; CurrentInstrCycles = 12;
68465: {{ uaecptr dataa = m68k_areg(regs, srcreg);
68466: if ((dataa & 1) != 0) {
68467: last_fault_for_exception_3 = dataa;
68468: last_op_for_exception_3 = opcode;
68469: last_addr_for_exception_3 = m68k_getpc() + 2;
68470: Exception(3, 0, M68000_EXC_SRC_CPU);
68471: goto endlabel3693;
68472: }
68473: {{ uae_s16 data = get_word(dataa);
68474: { uae_u32 val = (uae_u16)data;
68475: uae_u32 carry = val & 1;
68476: val >>= 1;
68477: CLEAR_CZNV;
68478: SET_ZFLG (((uae_s16)(val)) == 0);
68479: SET_NFLG (((uae_s16)(val)) < 0);
68480: SET_CFLG (carry);
68481: COPY_CARRY;
68482: m68k_incpc(2);
68483: fill_prefetch_2 ();
68484: put_word(dataa,val);
68485: }}}}}endlabel3693: ;
68486: return 12;
68487: }
68488: unsigned long REGPARAM2 CPUFUNC(op_e2d8_5)(uae_u32 opcode) /* LSRW */
68489: {
68490: uae_u32 srcreg = (opcode & 7);
68491: OpcodeFamily = 74; CurrentInstrCycles = 12;
68492: {{ uaecptr dataa = m68k_areg(regs, srcreg);
68493: if ((dataa & 1) != 0) {
68494: last_fault_for_exception_3 = dataa;
68495: last_op_for_exception_3 = opcode;
68496: last_addr_for_exception_3 = m68k_getpc() + 2;
68497: Exception(3, 0, M68000_EXC_SRC_CPU);
68498: goto endlabel3694;
68499: }
68500: {{ uae_s16 data = get_word(dataa);
68501: m68k_areg(regs, srcreg) += 2;
68502: { uae_u32 val = (uae_u16)data;
68503: uae_u32 carry = val & 1;
68504: val >>= 1;
68505: CLEAR_CZNV;
68506: SET_ZFLG (((uae_s16)(val)) == 0);
68507: SET_NFLG (((uae_s16)(val)) < 0);
68508: SET_CFLG (carry);
68509: COPY_CARRY;
68510: m68k_incpc(2);
68511: fill_prefetch_2 ();
68512: put_word(dataa,val);
68513: }}}}}endlabel3694: ;
68514: return 12;
68515: }
68516: unsigned long REGPARAM2 CPUFUNC(op_e2e0_5)(uae_u32 opcode) /* LSRW */
68517: {
68518: uae_u32 srcreg = (opcode & 7);
68519: OpcodeFamily = 74; CurrentInstrCycles = 14;
68520: {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2;
68521: if ((dataa & 1) != 0) {
68522: last_fault_for_exception_3 = dataa;
68523: last_op_for_exception_3 = opcode;
68524: last_addr_for_exception_3 = m68k_getpc() + 2;
68525: Exception(3, 0, M68000_EXC_SRC_CPU);
68526: goto endlabel3695;
68527: }
68528: {{ uae_s16 data = get_word(dataa);
68529: m68k_areg (regs, srcreg) = dataa;
68530: { uae_u32 val = (uae_u16)data;
68531: uae_u32 carry = val & 1;
68532: val >>= 1;
68533: CLEAR_CZNV;
68534: SET_ZFLG (((uae_s16)(val)) == 0);
68535: SET_NFLG (((uae_s16)(val)) < 0);
68536: SET_CFLG (carry);
68537: COPY_CARRY;
68538: m68k_incpc(2);
68539: fill_prefetch_2 ();
68540: put_word(dataa,val);
68541: }}}}}endlabel3695: ;
68542: return 14;
68543: }
68544: unsigned long REGPARAM2 CPUFUNC(op_e2e8_5)(uae_u32 opcode) /* LSRW */
68545: {
68546: uae_u32 srcreg = (opcode & 7);
68547: OpcodeFamily = 74; CurrentInstrCycles = 16;
68548: {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
68549: if ((dataa & 1) != 0) {
68550: last_fault_for_exception_3 = dataa;
68551: last_op_for_exception_3 = opcode;
68552: last_addr_for_exception_3 = m68k_getpc() + 4;
68553: Exception(3, 0, M68000_EXC_SRC_CPU);
68554: goto endlabel3696;
68555: }
68556: {{ uae_s16 data = get_word(dataa);
68557: { uae_u32 val = (uae_u16)data;
68558: uae_u32 carry = val & 1;
68559: val >>= 1;
68560: CLEAR_CZNV;
68561: SET_ZFLG (((uae_s16)(val)) == 0);
68562: SET_NFLG (((uae_s16)(val)) < 0);
68563: SET_CFLG (carry);
68564: COPY_CARRY;
68565: m68k_incpc(4);
68566: fill_prefetch_0 ();
68567: put_word(dataa,val);
68568: }}}}}endlabel3696: ;
68569: return 16;
68570: }
68571: unsigned long REGPARAM2 CPUFUNC(op_e2f0_5)(uae_u32 opcode) /* LSRW */
68572: {
68573: uae_u32 srcreg = (opcode & 7);
68574: OpcodeFamily = 74; CurrentInstrCycles = 18;
68575: {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
68576: BusCyclePenalty += 2;
68577: if ((dataa & 1) != 0) {
68578: last_fault_for_exception_3 = dataa;
68579: last_op_for_exception_3 = opcode;
68580: last_addr_for_exception_3 = m68k_getpc() + 4;
68581: Exception(3, 0, M68000_EXC_SRC_CPU);
68582: goto endlabel3697;
68583: }
68584: {{ uae_s16 data = get_word(dataa);
68585: { uae_u32 val = (uae_u16)data;
68586: uae_u32 carry = val & 1;
68587: val >>= 1;
68588: CLEAR_CZNV;
68589: SET_ZFLG (((uae_s16)(val)) == 0);
68590: SET_NFLG (((uae_s16)(val)) < 0);
68591: SET_CFLG (carry);
68592: COPY_CARRY;
68593: m68k_incpc(4);
68594: fill_prefetch_0 ();
68595: put_word(dataa,val);
68596: }}}}}endlabel3697: ;
68597: return 18;
68598: }
68599: unsigned long REGPARAM2 CPUFUNC(op_e2f8_5)(uae_u32 opcode) /* LSRW */
68600: {
68601: OpcodeFamily = 74; CurrentInstrCycles = 16;
68602: {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword_prefetch(2);
68603: if ((dataa & 1) != 0) {
68604: last_fault_for_exception_3 = dataa;
68605: last_op_for_exception_3 = opcode;
68606: last_addr_for_exception_3 = m68k_getpc() + 4;
68607: Exception(3, 0, M68000_EXC_SRC_CPU);
68608: goto endlabel3698;
68609: }
68610: {{ uae_s16 data = get_word(dataa);
68611: { uae_u32 val = (uae_u16)data;
68612: uae_u32 carry = val & 1;
68613: val >>= 1;
68614: CLEAR_CZNV;
68615: SET_ZFLG (((uae_s16)(val)) == 0);
68616: SET_NFLG (((uae_s16)(val)) < 0);
68617: SET_CFLG (carry);
68618: COPY_CARRY;
68619: m68k_incpc(4);
68620: fill_prefetch_0 ();
68621: put_word(dataa,val);
68622: }}}}}endlabel3698: ;
68623: return 16;
68624: }
68625: unsigned long REGPARAM2 CPUFUNC(op_e2f9_5)(uae_u32 opcode) /* LSRW */
68626: {
68627: OpcodeFamily = 74; CurrentInstrCycles = 20;
68628: {{ uaecptr dataa = get_ilong_prefetch(2);
68629: if ((dataa & 1) != 0) {
68630: last_fault_for_exception_3 = dataa;
68631: last_op_for_exception_3 = opcode;
68632: last_addr_for_exception_3 = m68k_getpc() + 6;
68633: Exception(3, 0, M68000_EXC_SRC_CPU);
68634: goto endlabel3699;
68635: }
68636: {{ uae_s16 data = get_word(dataa);
68637: { uae_u32 val = (uae_u16)data;
68638: uae_u32 carry = val & 1;
68639: val >>= 1;
68640: CLEAR_CZNV;
68641: SET_ZFLG (((uae_s16)(val)) == 0);
68642: SET_NFLG (((uae_s16)(val)) < 0);
68643: SET_CFLG (carry);
68644: COPY_CARRY;
68645: m68k_incpc(6);
68646: fill_prefetch_0 ();
68647: put_word(dataa,val);
68648: }}}}}endlabel3699: ;
68649: return 20;
68650: }
68651: unsigned long REGPARAM2 CPUFUNC(op_e3d0_5)(uae_u32 opcode) /* LSLW */
68652: {
68653: uae_u32 srcreg = (opcode & 7);
68654: OpcodeFamily = 75; CurrentInstrCycles = 12;
68655: {{ uaecptr dataa = m68k_areg(regs, srcreg);
68656: if ((dataa & 1) != 0) {
68657: last_fault_for_exception_3 = dataa;
68658: last_op_for_exception_3 = opcode;
68659: last_addr_for_exception_3 = m68k_getpc() + 2;
68660: Exception(3, 0, M68000_EXC_SRC_CPU);
68661: goto endlabel3700;
68662: }
68663: {{ uae_s16 data = get_word(dataa);
68664: { uae_u16 val = data;
68665: uae_u32 carry = val & 0x8000;
68666: val <<= 1;
68667: CLEAR_CZNV;
68668: SET_ZFLG (((uae_s16)(val)) == 0);
68669: SET_NFLG (((uae_s16)(val)) < 0);
68670: SET_CFLG (carry >> 15);
68671: COPY_CARRY;
68672: m68k_incpc(2);
68673: fill_prefetch_2 ();
68674: put_word(dataa,val);
68675: }}}}}endlabel3700: ;
68676: return 12;
68677: }
68678: unsigned long REGPARAM2 CPUFUNC(op_e3d8_5)(uae_u32 opcode) /* LSLW */
68679: {
68680: uae_u32 srcreg = (opcode & 7);
68681: OpcodeFamily = 75; CurrentInstrCycles = 12;
68682: {{ uaecptr dataa = m68k_areg(regs, srcreg);
68683: if ((dataa & 1) != 0) {
68684: last_fault_for_exception_3 = dataa;
68685: last_op_for_exception_3 = opcode;
68686: last_addr_for_exception_3 = m68k_getpc() + 2;
68687: Exception(3, 0, M68000_EXC_SRC_CPU);
68688: goto endlabel3701;
68689: }
68690: {{ uae_s16 data = get_word(dataa);
68691: m68k_areg(regs, srcreg) += 2;
68692: { uae_u16 val = data;
68693: uae_u32 carry = val & 0x8000;
68694: val <<= 1;
68695: CLEAR_CZNV;
68696: SET_ZFLG (((uae_s16)(val)) == 0);
68697: SET_NFLG (((uae_s16)(val)) < 0);
68698: SET_CFLG (carry >> 15);
68699: COPY_CARRY;
68700: m68k_incpc(2);
68701: fill_prefetch_2 ();
68702: put_word(dataa,val);
68703: }}}}}endlabel3701: ;
68704: return 12;
68705: }
68706: unsigned long REGPARAM2 CPUFUNC(op_e3e0_5)(uae_u32 opcode) /* LSLW */
68707: {
68708: uae_u32 srcreg = (opcode & 7);
68709: OpcodeFamily = 75; CurrentInstrCycles = 14;
68710: {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2;
68711: if ((dataa & 1) != 0) {
68712: last_fault_for_exception_3 = dataa;
68713: last_op_for_exception_3 = opcode;
68714: last_addr_for_exception_3 = m68k_getpc() + 2;
68715: Exception(3, 0, M68000_EXC_SRC_CPU);
68716: goto endlabel3702;
68717: }
68718: {{ uae_s16 data = get_word(dataa);
68719: m68k_areg (regs, srcreg) = dataa;
68720: { uae_u16 val = data;
68721: uae_u32 carry = val & 0x8000;
68722: val <<= 1;
68723: CLEAR_CZNV;
68724: SET_ZFLG (((uae_s16)(val)) == 0);
68725: SET_NFLG (((uae_s16)(val)) < 0);
68726: SET_CFLG (carry >> 15);
68727: COPY_CARRY;
68728: m68k_incpc(2);
68729: fill_prefetch_2 ();
68730: put_word(dataa,val);
68731: }}}}}endlabel3702: ;
68732: return 14;
68733: }
68734: unsigned long REGPARAM2 CPUFUNC(op_e3e8_5)(uae_u32 opcode) /* LSLW */
68735: {
68736: uae_u32 srcreg = (opcode & 7);
68737: OpcodeFamily = 75; CurrentInstrCycles = 16;
68738: {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
68739: if ((dataa & 1) != 0) {
68740: last_fault_for_exception_3 = dataa;
68741: last_op_for_exception_3 = opcode;
68742: last_addr_for_exception_3 = m68k_getpc() + 4;
68743: Exception(3, 0, M68000_EXC_SRC_CPU);
68744: goto endlabel3703;
68745: }
68746: {{ uae_s16 data = get_word(dataa);
68747: { uae_u16 val = data;
68748: uae_u32 carry = val & 0x8000;
68749: val <<= 1;
68750: CLEAR_CZNV;
68751: SET_ZFLG (((uae_s16)(val)) == 0);
68752: SET_NFLG (((uae_s16)(val)) < 0);
68753: SET_CFLG (carry >> 15);
68754: COPY_CARRY;
68755: m68k_incpc(4);
68756: fill_prefetch_0 ();
68757: put_word(dataa,val);
68758: }}}}}endlabel3703: ;
68759: return 16;
68760: }
68761: unsigned long REGPARAM2 CPUFUNC(op_e3f0_5)(uae_u32 opcode) /* LSLW */
68762: {
68763: uae_u32 srcreg = (opcode & 7);
68764: OpcodeFamily = 75; CurrentInstrCycles = 18;
68765: {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
68766: BusCyclePenalty += 2;
68767: if ((dataa & 1) != 0) {
68768: last_fault_for_exception_3 = dataa;
68769: last_op_for_exception_3 = opcode;
68770: last_addr_for_exception_3 = m68k_getpc() + 4;
68771: Exception(3, 0, M68000_EXC_SRC_CPU);
68772: goto endlabel3704;
68773: }
68774: {{ uae_s16 data = get_word(dataa);
68775: { uae_u16 val = data;
68776: uae_u32 carry = val & 0x8000;
68777: val <<= 1;
68778: CLEAR_CZNV;
68779: SET_ZFLG (((uae_s16)(val)) == 0);
68780: SET_NFLG (((uae_s16)(val)) < 0);
68781: SET_CFLG (carry >> 15);
68782: COPY_CARRY;
68783: m68k_incpc(4);
68784: fill_prefetch_0 ();
68785: put_word(dataa,val);
68786: }}}}}endlabel3704: ;
68787: return 18;
68788: }
68789: unsigned long REGPARAM2 CPUFUNC(op_e3f8_5)(uae_u32 opcode) /* LSLW */
68790: {
68791: OpcodeFamily = 75; CurrentInstrCycles = 16;
68792: {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword_prefetch(2);
68793: if ((dataa & 1) != 0) {
68794: last_fault_for_exception_3 = dataa;
68795: last_op_for_exception_3 = opcode;
68796: last_addr_for_exception_3 = m68k_getpc() + 4;
68797: Exception(3, 0, M68000_EXC_SRC_CPU);
68798: goto endlabel3705;
68799: }
68800: {{ uae_s16 data = get_word(dataa);
68801: { uae_u16 val = data;
68802: uae_u32 carry = val & 0x8000;
68803: val <<= 1;
68804: CLEAR_CZNV;
68805: SET_ZFLG (((uae_s16)(val)) == 0);
68806: SET_NFLG (((uae_s16)(val)) < 0);
68807: SET_CFLG (carry >> 15);
68808: COPY_CARRY;
68809: m68k_incpc(4);
68810: fill_prefetch_0 ();
68811: put_word(dataa,val);
68812: }}}}}endlabel3705: ;
68813: return 16;
68814: }
68815: unsigned long REGPARAM2 CPUFUNC(op_e3f9_5)(uae_u32 opcode) /* LSLW */
68816: {
68817: OpcodeFamily = 75; CurrentInstrCycles = 20;
68818: {{ uaecptr dataa = get_ilong_prefetch(2);
68819: if ((dataa & 1) != 0) {
68820: last_fault_for_exception_3 = dataa;
68821: last_op_for_exception_3 = opcode;
68822: last_addr_for_exception_3 = m68k_getpc() + 6;
68823: Exception(3, 0, M68000_EXC_SRC_CPU);
68824: goto endlabel3706;
68825: }
68826: {{ uae_s16 data = get_word(dataa);
68827: { uae_u16 val = data;
68828: uae_u32 carry = val & 0x8000;
68829: val <<= 1;
68830: CLEAR_CZNV;
68831: SET_ZFLG (((uae_s16)(val)) == 0);
68832: SET_NFLG (((uae_s16)(val)) < 0);
68833: SET_CFLG (carry >> 15);
68834: COPY_CARRY;
68835: m68k_incpc(6);
68836: fill_prefetch_0 ();
68837: put_word(dataa,val);
68838: }}}}}endlabel3706: ;
68839: return 20;
68840: }
68841: unsigned long REGPARAM2 CPUFUNC(op_e4d0_5)(uae_u32 opcode) /* ROXRW */
68842: {
68843: uae_u32 srcreg = (opcode & 7);
68844: OpcodeFamily = 79; CurrentInstrCycles = 12;
68845: {{ uaecptr dataa = m68k_areg(regs, srcreg);
68846: if ((dataa & 1) != 0) {
68847: last_fault_for_exception_3 = dataa;
68848: last_op_for_exception_3 = opcode;
68849: last_addr_for_exception_3 = m68k_getpc() + 2;
68850: Exception(3, 0, M68000_EXC_SRC_CPU);
68851: goto endlabel3707;
68852: }
68853: {{ uae_s16 data = get_word(dataa);
68854: { uae_u16 val = data;
68855: uae_u32 carry = val & 1;
68856: val >>= 1;
68857: if (GET_XFLG) val |= 0x8000;
68858: CLEAR_CZNV;
68859: SET_ZFLG (((uae_s16)(val)) == 0);
68860: SET_NFLG (((uae_s16)(val)) < 0);
68861: SET_CFLG (carry);
68862: COPY_CARRY;
68863: m68k_incpc(2);
68864: fill_prefetch_2 ();
68865: put_word(dataa,val);
68866: }}}}}endlabel3707: ;
68867: return 12;
68868: }
68869: unsigned long REGPARAM2 CPUFUNC(op_e4d8_5)(uae_u32 opcode) /* ROXRW */
68870: {
68871: uae_u32 srcreg = (opcode & 7);
68872: OpcodeFamily = 79; CurrentInstrCycles = 12;
68873: {{ uaecptr dataa = m68k_areg(regs, srcreg);
68874: if ((dataa & 1) != 0) {
68875: last_fault_for_exception_3 = dataa;
68876: last_op_for_exception_3 = opcode;
68877: last_addr_for_exception_3 = m68k_getpc() + 2;
68878: Exception(3, 0, M68000_EXC_SRC_CPU);
68879: goto endlabel3708;
68880: }
68881: {{ uae_s16 data = get_word(dataa);
68882: m68k_areg(regs, srcreg) += 2;
68883: { uae_u16 val = data;
68884: uae_u32 carry = val & 1;
68885: val >>= 1;
68886: if (GET_XFLG) val |= 0x8000;
68887: CLEAR_CZNV;
68888: SET_ZFLG (((uae_s16)(val)) == 0);
68889: SET_NFLG (((uae_s16)(val)) < 0);
68890: SET_CFLG (carry);
68891: COPY_CARRY;
68892: m68k_incpc(2);
68893: fill_prefetch_2 ();
68894: put_word(dataa,val);
68895: }}}}}endlabel3708: ;
68896: return 12;
68897: }
68898: unsigned long REGPARAM2 CPUFUNC(op_e4e0_5)(uae_u32 opcode) /* ROXRW */
68899: {
68900: uae_u32 srcreg = (opcode & 7);
68901: OpcodeFamily = 79; CurrentInstrCycles = 14;
68902: {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2;
68903: if ((dataa & 1) != 0) {
68904: last_fault_for_exception_3 = dataa;
68905: last_op_for_exception_3 = opcode;
68906: last_addr_for_exception_3 = m68k_getpc() + 2;
68907: Exception(3, 0, M68000_EXC_SRC_CPU);
68908: goto endlabel3709;
68909: }
68910: {{ uae_s16 data = get_word(dataa);
68911: m68k_areg (regs, srcreg) = dataa;
68912: { uae_u16 val = data;
68913: uae_u32 carry = val & 1;
68914: val >>= 1;
68915: if (GET_XFLG) val |= 0x8000;
68916: CLEAR_CZNV;
68917: SET_ZFLG (((uae_s16)(val)) == 0);
68918: SET_NFLG (((uae_s16)(val)) < 0);
68919: SET_CFLG (carry);
68920: COPY_CARRY;
68921: m68k_incpc(2);
68922: fill_prefetch_2 ();
68923: put_word(dataa,val);
68924: }}}}}endlabel3709: ;
68925: return 14;
68926: }
68927: unsigned long REGPARAM2 CPUFUNC(op_e4e8_5)(uae_u32 opcode) /* ROXRW */
68928: {
68929: uae_u32 srcreg = (opcode & 7);
68930: OpcodeFamily = 79; CurrentInstrCycles = 16;
68931: {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
68932: if ((dataa & 1) != 0) {
68933: last_fault_for_exception_3 = dataa;
68934: last_op_for_exception_3 = opcode;
68935: last_addr_for_exception_3 = m68k_getpc() + 4;
68936: Exception(3, 0, M68000_EXC_SRC_CPU);
68937: goto endlabel3710;
68938: }
68939: {{ uae_s16 data = get_word(dataa);
68940: { uae_u16 val = data;
68941: uae_u32 carry = val & 1;
68942: val >>= 1;
68943: if (GET_XFLG) val |= 0x8000;
68944: CLEAR_CZNV;
68945: SET_ZFLG (((uae_s16)(val)) == 0);
68946: SET_NFLG (((uae_s16)(val)) < 0);
68947: SET_CFLG (carry);
68948: COPY_CARRY;
68949: m68k_incpc(4);
68950: fill_prefetch_0 ();
68951: put_word(dataa,val);
68952: }}}}}endlabel3710: ;
68953: return 16;
68954: }
68955: unsigned long REGPARAM2 CPUFUNC(op_e4f0_5)(uae_u32 opcode) /* ROXRW */
68956: {
68957: uae_u32 srcreg = (opcode & 7);
68958: OpcodeFamily = 79; CurrentInstrCycles = 18;
68959: {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
68960: BusCyclePenalty += 2;
68961: if ((dataa & 1) != 0) {
68962: last_fault_for_exception_3 = dataa;
68963: last_op_for_exception_3 = opcode;
68964: last_addr_for_exception_3 = m68k_getpc() + 4;
68965: Exception(3, 0, M68000_EXC_SRC_CPU);
68966: goto endlabel3711;
68967: }
68968: {{ uae_s16 data = get_word(dataa);
68969: { uae_u16 val = data;
68970: uae_u32 carry = val & 1;
68971: val >>= 1;
68972: if (GET_XFLG) val |= 0x8000;
68973: CLEAR_CZNV;
68974: SET_ZFLG (((uae_s16)(val)) == 0);
68975: SET_NFLG (((uae_s16)(val)) < 0);
68976: SET_CFLG (carry);
68977: COPY_CARRY;
68978: m68k_incpc(4);
68979: fill_prefetch_0 ();
68980: put_word(dataa,val);
68981: }}}}}endlabel3711: ;
68982: return 18;
68983: }
68984: unsigned long REGPARAM2 CPUFUNC(op_e4f8_5)(uae_u32 opcode) /* ROXRW */
68985: {
68986: OpcodeFamily = 79; CurrentInstrCycles = 16;
68987: {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword_prefetch(2);
68988: if ((dataa & 1) != 0) {
68989: last_fault_for_exception_3 = dataa;
68990: last_op_for_exception_3 = opcode;
68991: last_addr_for_exception_3 = m68k_getpc() + 4;
68992: Exception(3, 0, M68000_EXC_SRC_CPU);
68993: goto endlabel3712;
68994: }
68995: {{ uae_s16 data = get_word(dataa);
68996: { uae_u16 val = data;
68997: uae_u32 carry = val & 1;
68998: val >>= 1;
68999: if (GET_XFLG) val |= 0x8000;
69000: CLEAR_CZNV;
69001: SET_ZFLG (((uae_s16)(val)) == 0);
69002: SET_NFLG (((uae_s16)(val)) < 0);
69003: SET_CFLG (carry);
69004: COPY_CARRY;
69005: m68k_incpc(4);
69006: fill_prefetch_0 ();
69007: put_word(dataa,val);
69008: }}}}}endlabel3712: ;
69009: return 16;
69010: }
69011: unsigned long REGPARAM2 CPUFUNC(op_e4f9_5)(uae_u32 opcode) /* ROXRW */
69012: {
69013: OpcodeFamily = 79; CurrentInstrCycles = 20;
69014: {{ uaecptr dataa = get_ilong_prefetch(2);
69015: if ((dataa & 1) != 0) {
69016: last_fault_for_exception_3 = dataa;
69017: last_op_for_exception_3 = opcode;
69018: last_addr_for_exception_3 = m68k_getpc() + 6;
69019: Exception(3, 0, M68000_EXC_SRC_CPU);
69020: goto endlabel3713;
69021: }
69022: {{ uae_s16 data = get_word(dataa);
69023: { uae_u16 val = data;
69024: uae_u32 carry = val & 1;
69025: val >>= 1;
69026: if (GET_XFLG) val |= 0x8000;
69027: CLEAR_CZNV;
69028: SET_ZFLG (((uae_s16)(val)) == 0);
69029: SET_NFLG (((uae_s16)(val)) < 0);
69030: SET_CFLG (carry);
69031: COPY_CARRY;
69032: m68k_incpc(6);
69033: fill_prefetch_0 ();
69034: put_word(dataa,val);
69035: }}}}}endlabel3713: ;
69036: return 20;
69037: }
69038: unsigned long REGPARAM2 CPUFUNC(op_e5d0_5)(uae_u32 opcode) /* ROXLW */
69039: {
69040: uae_u32 srcreg = (opcode & 7);
69041: OpcodeFamily = 78; CurrentInstrCycles = 12;
69042: {{ uaecptr dataa = m68k_areg(regs, srcreg);
69043: if ((dataa & 1) != 0) {
69044: last_fault_for_exception_3 = dataa;
69045: last_op_for_exception_3 = opcode;
69046: last_addr_for_exception_3 = m68k_getpc() + 2;
69047: Exception(3, 0, M68000_EXC_SRC_CPU);
69048: goto endlabel3714;
69049: }
69050: {{ uae_s16 data = get_word(dataa);
69051: { uae_u16 val = data;
69052: uae_u32 carry = val & 0x8000;
69053: val <<= 1;
69054: if (GET_XFLG) val |= 1;
69055: CLEAR_CZNV;
69056: SET_ZFLG (((uae_s16)(val)) == 0);
69057: SET_NFLG (((uae_s16)(val)) < 0);
69058: SET_CFLG (carry >> 15);
69059: COPY_CARRY;
69060: m68k_incpc(2);
69061: fill_prefetch_2 ();
69062: put_word(dataa,val);
69063: }}}}}endlabel3714: ;
69064: return 12;
69065: }
69066: unsigned long REGPARAM2 CPUFUNC(op_e5d8_5)(uae_u32 opcode) /* ROXLW */
69067: {
69068: uae_u32 srcreg = (opcode & 7);
69069: OpcodeFamily = 78; CurrentInstrCycles = 12;
69070: {{ uaecptr dataa = m68k_areg(regs, srcreg);
69071: if ((dataa & 1) != 0) {
69072: last_fault_for_exception_3 = dataa;
69073: last_op_for_exception_3 = opcode;
69074: last_addr_for_exception_3 = m68k_getpc() + 2;
69075: Exception(3, 0, M68000_EXC_SRC_CPU);
69076: goto endlabel3715;
69077: }
69078: {{ uae_s16 data = get_word(dataa);
69079: m68k_areg(regs, srcreg) += 2;
69080: { uae_u16 val = data;
69081: uae_u32 carry = val & 0x8000;
69082: val <<= 1;
69083: if (GET_XFLG) val |= 1;
69084: CLEAR_CZNV;
69085: SET_ZFLG (((uae_s16)(val)) == 0);
69086: SET_NFLG (((uae_s16)(val)) < 0);
69087: SET_CFLG (carry >> 15);
69088: COPY_CARRY;
69089: m68k_incpc(2);
69090: fill_prefetch_2 ();
69091: put_word(dataa,val);
69092: }}}}}endlabel3715: ;
69093: return 12;
69094: }
69095: unsigned long REGPARAM2 CPUFUNC(op_e5e0_5)(uae_u32 opcode) /* ROXLW */
69096: {
69097: uae_u32 srcreg = (opcode & 7);
69098: OpcodeFamily = 78; CurrentInstrCycles = 14;
69099: {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2;
69100: if ((dataa & 1) != 0) {
69101: last_fault_for_exception_3 = dataa;
69102: last_op_for_exception_3 = opcode;
69103: last_addr_for_exception_3 = m68k_getpc() + 2;
69104: Exception(3, 0, M68000_EXC_SRC_CPU);
69105: goto endlabel3716;
69106: }
69107: {{ uae_s16 data = get_word(dataa);
69108: m68k_areg (regs, srcreg) = dataa;
69109: { uae_u16 val = data;
69110: uae_u32 carry = val & 0x8000;
69111: val <<= 1;
69112: if (GET_XFLG) val |= 1;
69113: CLEAR_CZNV;
69114: SET_ZFLG (((uae_s16)(val)) == 0);
69115: SET_NFLG (((uae_s16)(val)) < 0);
69116: SET_CFLG (carry >> 15);
69117: COPY_CARRY;
69118: m68k_incpc(2);
69119: fill_prefetch_2 ();
69120: put_word(dataa,val);
69121: }}}}}endlabel3716: ;
69122: return 14;
69123: }
69124: unsigned long REGPARAM2 CPUFUNC(op_e5e8_5)(uae_u32 opcode) /* ROXLW */
69125: {
69126: uae_u32 srcreg = (opcode & 7);
69127: OpcodeFamily = 78; CurrentInstrCycles = 16;
69128: {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
69129: if ((dataa & 1) != 0) {
69130: last_fault_for_exception_3 = dataa;
69131: last_op_for_exception_3 = opcode;
69132: last_addr_for_exception_3 = m68k_getpc() + 4;
69133: Exception(3, 0, M68000_EXC_SRC_CPU);
69134: goto endlabel3717;
69135: }
69136: {{ uae_s16 data = get_word(dataa);
69137: { uae_u16 val = data;
69138: uae_u32 carry = val & 0x8000;
69139: val <<= 1;
69140: if (GET_XFLG) val |= 1;
69141: CLEAR_CZNV;
69142: SET_ZFLG (((uae_s16)(val)) == 0);
69143: SET_NFLG (((uae_s16)(val)) < 0);
69144: SET_CFLG (carry >> 15);
69145: COPY_CARRY;
69146: m68k_incpc(4);
69147: fill_prefetch_0 ();
69148: put_word(dataa,val);
69149: }}}}}endlabel3717: ;
69150: return 16;
69151: }
69152: unsigned long REGPARAM2 CPUFUNC(op_e5f0_5)(uae_u32 opcode) /* ROXLW */
69153: {
69154: uae_u32 srcreg = (opcode & 7);
69155: OpcodeFamily = 78; CurrentInstrCycles = 18;
69156: {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
69157: BusCyclePenalty += 2;
69158: if ((dataa & 1) != 0) {
69159: last_fault_for_exception_3 = dataa;
69160: last_op_for_exception_3 = opcode;
69161: last_addr_for_exception_3 = m68k_getpc() + 4;
69162: Exception(3, 0, M68000_EXC_SRC_CPU);
69163: goto endlabel3718;
69164: }
69165: {{ uae_s16 data = get_word(dataa);
69166: { uae_u16 val = data;
69167: uae_u32 carry = val & 0x8000;
69168: val <<= 1;
69169: if (GET_XFLG) val |= 1;
69170: CLEAR_CZNV;
69171: SET_ZFLG (((uae_s16)(val)) == 0);
69172: SET_NFLG (((uae_s16)(val)) < 0);
69173: SET_CFLG (carry >> 15);
69174: COPY_CARRY;
69175: m68k_incpc(4);
69176: fill_prefetch_0 ();
69177: put_word(dataa,val);
69178: }}}}}endlabel3718: ;
69179: return 18;
69180: }
69181: unsigned long REGPARAM2 CPUFUNC(op_e5f8_5)(uae_u32 opcode) /* ROXLW */
69182: {
69183: OpcodeFamily = 78; CurrentInstrCycles = 16;
69184: {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword_prefetch(2);
69185: if ((dataa & 1) != 0) {
69186: last_fault_for_exception_3 = dataa;
69187: last_op_for_exception_3 = opcode;
69188: last_addr_for_exception_3 = m68k_getpc() + 4;
69189: Exception(3, 0, M68000_EXC_SRC_CPU);
69190: goto endlabel3719;
69191: }
69192: {{ uae_s16 data = get_word(dataa);
69193: { uae_u16 val = data;
69194: uae_u32 carry = val & 0x8000;
69195: val <<= 1;
69196: if (GET_XFLG) val |= 1;
69197: CLEAR_CZNV;
69198: SET_ZFLG (((uae_s16)(val)) == 0);
69199: SET_NFLG (((uae_s16)(val)) < 0);
69200: SET_CFLG (carry >> 15);
69201: COPY_CARRY;
69202: m68k_incpc(4);
69203: fill_prefetch_0 ();
69204: put_word(dataa,val);
69205: }}}}}endlabel3719: ;
69206: return 16;
69207: }
69208: unsigned long REGPARAM2 CPUFUNC(op_e5f9_5)(uae_u32 opcode) /* ROXLW */
69209: {
69210: OpcodeFamily = 78; CurrentInstrCycles = 20;
69211: {{ uaecptr dataa = get_ilong_prefetch(2);
69212: if ((dataa & 1) != 0) {
69213: last_fault_for_exception_3 = dataa;
69214: last_op_for_exception_3 = opcode;
69215: last_addr_for_exception_3 = m68k_getpc() + 6;
69216: Exception(3, 0, M68000_EXC_SRC_CPU);
69217: goto endlabel3720;
69218: }
69219: {{ uae_s16 data = get_word(dataa);
69220: { uae_u16 val = data;
69221: uae_u32 carry = val & 0x8000;
69222: val <<= 1;
69223: if (GET_XFLG) val |= 1;
69224: CLEAR_CZNV;
69225: SET_ZFLG (((uae_s16)(val)) == 0);
69226: SET_NFLG (((uae_s16)(val)) < 0);
69227: SET_CFLG (carry >> 15);
69228: COPY_CARRY;
69229: m68k_incpc(6);
69230: fill_prefetch_0 ();
69231: put_word(dataa,val);
69232: }}}}}endlabel3720: ;
69233: return 20;
69234: }
69235: unsigned long REGPARAM2 CPUFUNC(op_e6d0_5)(uae_u32 opcode) /* RORW */
69236: {
69237: uae_u32 srcreg = (opcode & 7);
69238: OpcodeFamily = 77; CurrentInstrCycles = 12;
69239: {{ uaecptr dataa = m68k_areg(regs, srcreg);
69240: if ((dataa & 1) != 0) {
69241: last_fault_for_exception_3 = dataa;
69242: last_op_for_exception_3 = opcode;
69243: last_addr_for_exception_3 = m68k_getpc() + 2;
69244: Exception(3, 0, M68000_EXC_SRC_CPU);
69245: goto endlabel3721;
69246: }
69247: {{ uae_s16 data = get_word(dataa);
69248: { uae_u16 val = data;
69249: uae_u32 carry = val & 1;
69250: val >>= 1;
69251: if (carry) val |= 0x8000;
69252: CLEAR_CZNV;
69253: SET_ZFLG (((uae_s16)(val)) == 0);
69254: SET_NFLG (((uae_s16)(val)) < 0);
69255: SET_CFLG (carry);
69256: m68k_incpc(2);
69257: fill_prefetch_2 ();
69258: put_word(dataa,val);
69259: }}}}}endlabel3721: ;
69260: return 12;
69261: }
69262: unsigned long REGPARAM2 CPUFUNC(op_e6d8_5)(uae_u32 opcode) /* RORW */
69263: {
69264: uae_u32 srcreg = (opcode & 7);
69265: OpcodeFamily = 77; CurrentInstrCycles = 12;
69266: {{ uaecptr dataa = m68k_areg(regs, srcreg);
69267: if ((dataa & 1) != 0) {
69268: last_fault_for_exception_3 = dataa;
69269: last_op_for_exception_3 = opcode;
69270: last_addr_for_exception_3 = m68k_getpc() + 2;
69271: Exception(3, 0, M68000_EXC_SRC_CPU);
69272: goto endlabel3722;
69273: }
69274: {{ uae_s16 data = get_word(dataa);
69275: m68k_areg(regs, srcreg) += 2;
69276: { uae_u16 val = data;
69277: uae_u32 carry = val & 1;
69278: val >>= 1;
69279: if (carry) val |= 0x8000;
69280: CLEAR_CZNV;
69281: SET_ZFLG (((uae_s16)(val)) == 0);
69282: SET_NFLG (((uae_s16)(val)) < 0);
69283: SET_CFLG (carry);
69284: m68k_incpc(2);
69285: fill_prefetch_2 ();
69286: put_word(dataa,val);
69287: }}}}}endlabel3722: ;
69288: return 12;
69289: }
69290: unsigned long REGPARAM2 CPUFUNC(op_e6e0_5)(uae_u32 opcode) /* RORW */
69291: {
69292: uae_u32 srcreg = (opcode & 7);
69293: OpcodeFamily = 77; CurrentInstrCycles = 14;
69294: {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2;
69295: if ((dataa & 1) != 0) {
69296: last_fault_for_exception_3 = dataa;
69297: last_op_for_exception_3 = opcode;
69298: last_addr_for_exception_3 = m68k_getpc() + 2;
69299: Exception(3, 0, M68000_EXC_SRC_CPU);
69300: goto endlabel3723;
69301: }
69302: {{ uae_s16 data = get_word(dataa);
69303: m68k_areg (regs, srcreg) = dataa;
69304: { uae_u16 val = data;
69305: uae_u32 carry = val & 1;
69306: val >>= 1;
69307: if (carry) val |= 0x8000;
69308: CLEAR_CZNV;
69309: SET_ZFLG (((uae_s16)(val)) == 0);
69310: SET_NFLG (((uae_s16)(val)) < 0);
69311: SET_CFLG (carry);
69312: m68k_incpc(2);
69313: fill_prefetch_2 ();
69314: put_word(dataa,val);
69315: }}}}}endlabel3723: ;
69316: return 14;
69317: }
69318: unsigned long REGPARAM2 CPUFUNC(op_e6e8_5)(uae_u32 opcode) /* RORW */
69319: {
69320: uae_u32 srcreg = (opcode & 7);
69321: OpcodeFamily = 77; CurrentInstrCycles = 16;
69322: {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
69323: if ((dataa & 1) != 0) {
69324: last_fault_for_exception_3 = dataa;
69325: last_op_for_exception_3 = opcode;
69326: last_addr_for_exception_3 = m68k_getpc() + 4;
69327: Exception(3, 0, M68000_EXC_SRC_CPU);
69328: goto endlabel3724;
69329: }
69330: {{ uae_s16 data = get_word(dataa);
69331: { uae_u16 val = data;
69332: uae_u32 carry = val & 1;
69333: val >>= 1;
69334: if (carry) val |= 0x8000;
69335: CLEAR_CZNV;
69336: SET_ZFLG (((uae_s16)(val)) == 0);
69337: SET_NFLG (((uae_s16)(val)) < 0);
69338: SET_CFLG (carry);
69339: m68k_incpc(4);
69340: fill_prefetch_0 ();
69341: put_word(dataa,val);
69342: }}}}}endlabel3724: ;
69343: return 16;
69344: }
69345: unsigned long REGPARAM2 CPUFUNC(op_e6f0_5)(uae_u32 opcode) /* RORW */
69346: {
69347: uae_u32 srcreg = (opcode & 7);
69348: OpcodeFamily = 77; CurrentInstrCycles = 18;
69349: {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
69350: BusCyclePenalty += 2;
69351: if ((dataa & 1) != 0) {
69352: last_fault_for_exception_3 = dataa;
69353: last_op_for_exception_3 = opcode;
69354: last_addr_for_exception_3 = m68k_getpc() + 4;
69355: Exception(3, 0, M68000_EXC_SRC_CPU);
69356: goto endlabel3725;
69357: }
69358: {{ uae_s16 data = get_word(dataa);
69359: { uae_u16 val = data;
69360: uae_u32 carry = val & 1;
69361: val >>= 1;
69362: if (carry) val |= 0x8000;
69363: CLEAR_CZNV;
69364: SET_ZFLG (((uae_s16)(val)) == 0);
69365: SET_NFLG (((uae_s16)(val)) < 0);
69366: SET_CFLG (carry);
69367: m68k_incpc(4);
69368: fill_prefetch_0 ();
69369: put_word(dataa,val);
69370: }}}}}endlabel3725: ;
69371: return 18;
69372: }
69373: unsigned long REGPARAM2 CPUFUNC(op_e6f8_5)(uae_u32 opcode) /* RORW */
69374: {
69375: OpcodeFamily = 77; CurrentInstrCycles = 16;
69376: {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword_prefetch(2);
69377: if ((dataa & 1) != 0) {
69378: last_fault_for_exception_3 = dataa;
69379: last_op_for_exception_3 = opcode;
69380: last_addr_for_exception_3 = m68k_getpc() + 4;
69381: Exception(3, 0, M68000_EXC_SRC_CPU);
69382: goto endlabel3726;
69383: }
69384: {{ uae_s16 data = get_word(dataa);
69385: { uae_u16 val = data;
69386: uae_u32 carry = val & 1;
69387: val >>= 1;
69388: if (carry) val |= 0x8000;
69389: CLEAR_CZNV;
69390: SET_ZFLG (((uae_s16)(val)) == 0);
69391: SET_NFLG (((uae_s16)(val)) < 0);
69392: SET_CFLG (carry);
69393: m68k_incpc(4);
69394: fill_prefetch_0 ();
69395: put_word(dataa,val);
69396: }}}}}endlabel3726: ;
69397: return 16;
69398: }
69399: unsigned long REGPARAM2 CPUFUNC(op_e6f9_5)(uae_u32 opcode) /* RORW */
69400: {
69401: OpcodeFamily = 77; CurrentInstrCycles = 20;
69402: {{ uaecptr dataa = get_ilong_prefetch(2);
69403: if ((dataa & 1) != 0) {
69404: last_fault_for_exception_3 = dataa;
69405: last_op_for_exception_3 = opcode;
69406: last_addr_for_exception_3 = m68k_getpc() + 6;
69407: Exception(3, 0, M68000_EXC_SRC_CPU);
69408: goto endlabel3727;
69409: }
69410: {{ uae_s16 data = get_word(dataa);
69411: { uae_u16 val = data;
69412: uae_u32 carry = val & 1;
69413: val >>= 1;
69414: if (carry) val |= 0x8000;
69415: CLEAR_CZNV;
69416: SET_ZFLG (((uae_s16)(val)) == 0);
69417: SET_NFLG (((uae_s16)(val)) < 0);
69418: SET_CFLG (carry);
69419: m68k_incpc(6);
69420: fill_prefetch_0 ();
69421: put_word(dataa,val);
69422: }}}}}endlabel3727: ;
69423: return 20;
69424: }
69425: unsigned long REGPARAM2 CPUFUNC(op_e7d0_5)(uae_u32 opcode) /* ROLW */
69426: {
69427: uae_u32 srcreg = (opcode & 7);
69428: OpcodeFamily = 76; CurrentInstrCycles = 12;
69429: {{ uaecptr dataa = m68k_areg(regs, srcreg);
69430: if ((dataa & 1) != 0) {
69431: last_fault_for_exception_3 = dataa;
69432: last_op_for_exception_3 = opcode;
69433: last_addr_for_exception_3 = m68k_getpc() + 2;
69434: Exception(3, 0, M68000_EXC_SRC_CPU);
69435: goto endlabel3728;
69436: }
69437: {{ uae_s16 data = get_word(dataa);
69438: { uae_u16 val = data;
69439: uae_u32 carry = val & 0x8000;
69440: val <<= 1;
69441: if (carry) val |= 1;
69442: CLEAR_CZNV;
69443: SET_ZFLG (((uae_s16)(val)) == 0);
69444: SET_NFLG (((uae_s16)(val)) < 0);
69445: SET_CFLG (carry >> 15);
69446: m68k_incpc(2);
69447: fill_prefetch_2 ();
69448: put_word(dataa,val);
69449: }}}}}endlabel3728: ;
69450: return 12;
69451: }
69452: unsigned long REGPARAM2 CPUFUNC(op_e7d8_5)(uae_u32 opcode) /* ROLW */
69453: {
69454: uae_u32 srcreg = (opcode & 7);
69455: OpcodeFamily = 76; CurrentInstrCycles = 12;
69456: {{ uaecptr dataa = m68k_areg(regs, srcreg);
69457: if ((dataa & 1) != 0) {
69458: last_fault_for_exception_3 = dataa;
69459: last_op_for_exception_3 = opcode;
69460: last_addr_for_exception_3 = m68k_getpc() + 2;
69461: Exception(3, 0, M68000_EXC_SRC_CPU);
69462: goto endlabel3729;
69463: }
69464: {{ uae_s16 data = get_word(dataa);
69465: m68k_areg(regs, srcreg) += 2;
69466: { uae_u16 val = data;
69467: uae_u32 carry = val & 0x8000;
69468: val <<= 1;
69469: if (carry) val |= 1;
69470: CLEAR_CZNV;
69471: SET_ZFLG (((uae_s16)(val)) == 0);
69472: SET_NFLG (((uae_s16)(val)) < 0);
69473: SET_CFLG (carry >> 15);
69474: m68k_incpc(2);
69475: fill_prefetch_2 ();
69476: put_word(dataa,val);
69477: }}}}}endlabel3729: ;
69478: return 12;
69479: }
69480: unsigned long REGPARAM2 CPUFUNC(op_e7e0_5)(uae_u32 opcode) /* ROLW */
69481: {
69482: uae_u32 srcreg = (opcode & 7);
69483: OpcodeFamily = 76; CurrentInstrCycles = 14;
69484: {{ uaecptr dataa = m68k_areg(regs, srcreg) - 2;
69485: if ((dataa & 1) != 0) {
69486: last_fault_for_exception_3 = dataa;
69487: last_op_for_exception_3 = opcode;
69488: last_addr_for_exception_3 = m68k_getpc() + 2;
69489: Exception(3, 0, M68000_EXC_SRC_CPU);
69490: goto endlabel3730;
69491: }
69492: {{ uae_s16 data = get_word(dataa);
69493: m68k_areg (regs, srcreg) = dataa;
69494: { uae_u16 val = data;
69495: uae_u32 carry = val & 0x8000;
69496: val <<= 1;
69497: if (carry) val |= 1;
69498: CLEAR_CZNV;
69499: SET_ZFLG (((uae_s16)(val)) == 0);
69500: SET_NFLG (((uae_s16)(val)) < 0);
69501: SET_CFLG (carry >> 15);
69502: m68k_incpc(2);
69503: fill_prefetch_2 ();
69504: put_word(dataa,val);
69505: }}}}}endlabel3730: ;
69506: return 14;
69507: }
69508: unsigned long REGPARAM2 CPUFUNC(op_e7e8_5)(uae_u32 opcode) /* ROLW */
69509: {
69510: uae_u32 srcreg = (opcode & 7);
69511: OpcodeFamily = 76; CurrentInstrCycles = 16;
69512: {{ uaecptr dataa = m68k_areg(regs, srcreg) + (uae_s32)(uae_s16)get_iword_prefetch(2);
69513: if ((dataa & 1) != 0) {
69514: last_fault_for_exception_3 = dataa;
69515: last_op_for_exception_3 = opcode;
69516: last_addr_for_exception_3 = m68k_getpc() + 4;
69517: Exception(3, 0, M68000_EXC_SRC_CPU);
69518: goto endlabel3731;
69519: }
69520: {{ uae_s16 data = get_word(dataa);
69521: { uae_u16 val = data;
69522: uae_u32 carry = val & 0x8000;
69523: val <<= 1;
69524: if (carry) val |= 1;
69525: CLEAR_CZNV;
69526: SET_ZFLG (((uae_s16)(val)) == 0);
69527: SET_NFLG (((uae_s16)(val)) < 0);
69528: SET_CFLG (carry >> 15);
69529: m68k_incpc(4);
69530: fill_prefetch_0 ();
69531: put_word(dataa,val);
69532: }}}}}endlabel3731: ;
69533: return 16;
69534: }
69535: unsigned long REGPARAM2 CPUFUNC(op_e7f0_5)(uae_u32 opcode) /* ROLW */
69536: {
69537: uae_u32 srcreg = (opcode & 7);
69538: OpcodeFamily = 76; CurrentInstrCycles = 18;
69539: {{ uaecptr dataa = get_disp_ea_000(m68k_areg(regs, srcreg), get_iword_prefetch(2));
69540: BusCyclePenalty += 2;
69541: if ((dataa & 1) != 0) {
69542: last_fault_for_exception_3 = dataa;
69543: last_op_for_exception_3 = opcode;
69544: last_addr_for_exception_3 = m68k_getpc() + 4;
69545: Exception(3, 0, M68000_EXC_SRC_CPU);
69546: goto endlabel3732;
69547: }
69548: {{ uae_s16 data = get_word(dataa);
69549: { uae_u16 val = data;
69550: uae_u32 carry = val & 0x8000;
69551: val <<= 1;
69552: if (carry) val |= 1;
69553: CLEAR_CZNV;
69554: SET_ZFLG (((uae_s16)(val)) == 0);
69555: SET_NFLG (((uae_s16)(val)) < 0);
69556: SET_CFLG (carry >> 15);
69557: m68k_incpc(4);
69558: fill_prefetch_0 ();
69559: put_word(dataa,val);
69560: }}}}}endlabel3732: ;
69561: return 18;
69562: }
69563: unsigned long REGPARAM2 CPUFUNC(op_e7f8_5)(uae_u32 opcode) /* ROLW */
69564: {
69565: OpcodeFamily = 76; CurrentInstrCycles = 16;
69566: {{ uaecptr dataa = (uae_s32)(uae_s16)get_iword_prefetch(2);
69567: if ((dataa & 1) != 0) {
69568: last_fault_for_exception_3 = dataa;
69569: last_op_for_exception_3 = opcode;
69570: last_addr_for_exception_3 = m68k_getpc() + 4;
69571: Exception(3, 0, M68000_EXC_SRC_CPU);
69572: goto endlabel3733;
69573: }
69574: {{ uae_s16 data = get_word(dataa);
69575: { uae_u16 val = data;
69576: uae_u32 carry = val & 0x8000;
69577: val <<= 1;
69578: if (carry) val |= 1;
69579: CLEAR_CZNV;
69580: SET_ZFLG (((uae_s16)(val)) == 0);
69581: SET_NFLG (((uae_s16)(val)) < 0);
69582: SET_CFLG (carry >> 15);
69583: m68k_incpc(4);
69584: fill_prefetch_0 ();
69585: put_word(dataa,val);
69586: }}}}}endlabel3733: ;
69587: return 16;
69588: }
69589: unsigned long REGPARAM2 CPUFUNC(op_e7f9_5)(uae_u32 opcode) /* ROLW */
69590: {
69591: OpcodeFamily = 76; CurrentInstrCycles = 20;
69592: {{ uaecptr dataa = get_ilong_prefetch(2);
69593: if ((dataa & 1) != 0) {
69594: last_fault_for_exception_3 = dataa;
69595: last_op_for_exception_3 = opcode;
69596: last_addr_for_exception_3 = m68k_getpc() + 6;
69597: Exception(3, 0, M68000_EXC_SRC_CPU);
69598: goto endlabel3734;
69599: }
69600: {{ uae_s16 data = get_word(dataa);
69601: { uae_u16 val = data;
69602: uae_u32 carry = val & 0x8000;
69603: val <<= 1;
69604: if (carry) val |= 1;
69605: CLEAR_CZNV;
69606: SET_ZFLG (((uae_s16)(val)) == 0);
69607: SET_NFLG (((uae_s16)(val)) < 0);
69608: SET_CFLG (carry >> 15);
69609: m68k_incpc(6);
69610: fill_prefetch_0 ();
69611: put_word(dataa,val);
69612: }}}}}endlabel3734: ;
69613: return 20;
69614: }
69615: #endif
69616:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.