|
|
1.1 root 1: /*****************************************************************************/
2: /* Generator - Sega Genesis emulation - (c) James Ponder 1997-1998 */
3: /*****************************************************************************/
4: /* */
5: /* cpu68k-2.c */
6: /* */
7: /*****************************************************************************/
8:
9: #include "generator.h"
10: #include "cpu68k.h"
11: #include "mem68k.h"
12: #include "reg68k.h"
13:
14: #include "cpu68k-inline.h"
15:
16: #include <stdio.h>
17:
18: void cpu_op_318a(t_ipc *ipc) /* MOVE */ {
19: /* mask f1f8, bits 2000, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 0, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
20: int srcreg = (ipc->opcode >> 0) & 7;
21: uint32 srcdata = DATAREG(srcreg);
22: int dstreg = (ipc->opcode >> 9) & 7;
23: uint32 outdata = srcdata;
24:
25: DATAREG(dstreg) = outdata;
26: PC+= 2;
27: }
28:
29: void cpu_op_318b(t_ipc *ipc) /* MOVE */ {
30: /* mask f1f8, bits 2000, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 0, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
31: int srcreg = (ipc->opcode >> 0) & 7;
32: uint32 srcdata = DATAREG(srcreg);
33: int dstreg = (ipc->opcode >> 9) & 7;
34: uint32 outdata = srcdata;
35:
36: DATAREG(dstreg) = outdata;
37:
38: VFLAG = 0;
39: CFLAG = 0;
40: NFLAG = ((sint32)outdata) < 0;
41: ZFLAG = !outdata;
42: PC+= 2;
43: }
44:
45: void cpu_op_319a(t_ipc *ipc) /* MOVE */ {
46: /* mask f1f8, bits 2080, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 0, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
47: int srcreg = (ipc->opcode >> 0) & 7;
48: uint32 srcdata = DATAREG(srcreg);
49: int dstreg = (ipc->opcode >> 9) & 7;
50: uint32 dstaddr = ADDRREG(dstreg);
51: uint32 outdata = srcdata;
52:
53: storelong(dstaddr, outdata);
54: PC+= 2;
55: }
56:
57: void cpu_op_319b(t_ipc *ipc) /* MOVE */ {
58: /* mask f1f8, bits 2080, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 0, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
59: int srcreg = (ipc->opcode >> 0) & 7;
60: uint32 srcdata = DATAREG(srcreg);
61: int dstreg = (ipc->opcode >> 9) & 7;
62: uint32 dstaddr = ADDRREG(dstreg);
63: uint32 outdata = srcdata;
64:
65: storelong(dstaddr, outdata);
66:
67: VFLAG = 0;
68: CFLAG = 0;
69: NFLAG = ((sint32)outdata) < 0;
70: ZFLAG = !outdata;
71: PC+= 2;
72: }
73:
74: void cpu_op_320a(t_ipc *ipc) /* MOVE */ {
75: /* mask f1f8, bits 20c0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 0, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
76: int srcreg = (ipc->opcode >> 0) & 7;
77: uint32 srcdata = DATAREG(srcreg);
78: int dstreg = (ipc->opcode >> 9) & 7;
79: uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
80: uint32 outdata = srcdata;
81:
82: storelong(dstaddr, outdata);
83: PC+= 2;
84: }
85:
86: void cpu_op_320b(t_ipc *ipc) /* MOVE */ {
87: /* mask f1f8, bits 20c0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 0, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
88: int srcreg = (ipc->opcode >> 0) & 7;
89: uint32 srcdata = DATAREG(srcreg);
90: int dstreg = (ipc->opcode >> 9) & 7;
91: uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
92: uint32 outdata = srcdata;
93:
94: storelong(dstaddr, outdata);
95:
96: VFLAG = 0;
97: CFLAG = 0;
98: NFLAG = ((sint32)outdata) < 0;
99: ZFLAG = !outdata;
100: PC+= 2;
101: }
102:
103: void cpu_op_321a(t_ipc *ipc) /* MOVE */ {
104: /* mask f1f8, bits 2100, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 0, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
105: int srcreg = (ipc->opcode >> 0) & 7;
106: uint32 srcdata = DATAREG(srcreg);
107: int dstreg = (ipc->opcode >> 9) & 7;
108: uint32 dstaddr = ADDRREG(dstreg)-=4;
109: uint32 outdata = srcdata;
110:
111: storelong(dstaddr, outdata);
112: PC+= 2;
113: }
114:
115: void cpu_op_321b(t_ipc *ipc) /* MOVE */ {
116: /* mask f1f8, bits 2100, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 0, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
117: int srcreg = (ipc->opcode >> 0) & 7;
118: uint32 srcdata = DATAREG(srcreg);
119: int dstreg = (ipc->opcode >> 9) & 7;
120: uint32 dstaddr = ADDRREG(dstreg)-=4;
121: uint32 outdata = srcdata;
122:
123: storelong(dstaddr, outdata);
124:
125: VFLAG = 0;
126: CFLAG = 0;
127: NFLAG = ((sint32)outdata) < 0;
128: ZFLAG = !outdata;
129: PC+= 2;
130: }
131:
132: void cpu_op_322a(t_ipc *ipc) /* MOVE */ {
133: /* mask f1f8, bits 2140, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 0, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
134: int srcreg = (ipc->opcode >> 0) & 7;
135: uint32 srcdata = DATAREG(srcreg);
136: int dstreg = (ipc->opcode >> 9) & 7;
137: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
138: uint32 outdata = srcdata;
139:
140: storelong(dstaddr, outdata);
141: PC+= 4;
142: }
143:
144: void cpu_op_322b(t_ipc *ipc) /* MOVE */ {
145: /* mask f1f8, bits 2140, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 0, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
146: int srcreg = (ipc->opcode >> 0) & 7;
147: uint32 srcdata = DATAREG(srcreg);
148: int dstreg = (ipc->opcode >> 9) & 7;
149: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
150: uint32 outdata = srcdata;
151:
152: storelong(dstaddr, outdata);
153:
154: VFLAG = 0;
155: CFLAG = 0;
156: NFLAG = ((sint32)outdata) < 0;
157: ZFLAG = !outdata;
158: PC+= 4;
159: }
160:
161: void cpu_op_323a(t_ipc *ipc) /* MOVE */ {
162: /* mask f1f8, bits 2180, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 0, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
163: int srcreg = (ipc->opcode >> 0) & 7;
164: uint32 srcdata = DATAREG(srcreg);
165: int dstreg = (ipc->opcode >> 9) & 7;
166: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
167: uint32 outdata = srcdata;
168:
169: storelong(dstaddr, outdata);
170: PC+= 4;
171: }
172:
173: void cpu_op_323b(t_ipc *ipc) /* MOVE */ {
174: /* mask f1f8, bits 2180, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 0, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
175: int srcreg = (ipc->opcode >> 0) & 7;
176: uint32 srcdata = DATAREG(srcreg);
177: int dstreg = (ipc->opcode >> 9) & 7;
178: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
179: uint32 outdata = srcdata;
180:
181: storelong(dstaddr, outdata);
182:
183: VFLAG = 0;
184: CFLAG = 0;
185: NFLAG = ((sint32)outdata) < 0;
186: ZFLAG = !outdata;
187: PC+= 4;
188: }
189:
190: void cpu_op_324a(t_ipc *ipc) /* MOVE */ {
191: /* mask fff8, bits 21c0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 0, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
192: int srcreg = (ipc->opcode >> 0) & 7;
193: uint32 srcdata = DATAREG(srcreg);
194: uint32 dstaddr = ipc->dst;
195: uint32 outdata = srcdata;
196:
197: storelong(dstaddr, outdata);
198: PC+= 4;
199: }
200:
201: void cpu_op_324b(t_ipc *ipc) /* MOVE */ {
202: /* mask fff8, bits 21c0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 0, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
203: int srcreg = (ipc->opcode >> 0) & 7;
204: uint32 srcdata = DATAREG(srcreg);
205: uint32 dstaddr = ipc->dst;
206: uint32 outdata = srcdata;
207:
208: storelong(dstaddr, outdata);
209:
210: VFLAG = 0;
211: CFLAG = 0;
212: NFLAG = ((sint32)outdata) < 0;
213: ZFLAG = !outdata;
214: PC+= 4;
215: }
216:
217: void cpu_op_325a(t_ipc *ipc) /* MOVE */ {
218: /* mask fff8, bits 23c0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 0, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
219: int srcreg = (ipc->opcode >> 0) & 7;
220: uint32 srcdata = DATAREG(srcreg);
221: uint32 dstaddr = ipc->dst;
222: uint32 outdata = srcdata;
223:
224: storelong(dstaddr, outdata);
225: PC+= 6;
226: }
227:
228: void cpu_op_325b(t_ipc *ipc) /* MOVE */ {
229: /* mask fff8, bits 23c0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 0, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
230: int srcreg = (ipc->opcode >> 0) & 7;
231: uint32 srcdata = DATAREG(srcreg);
232: uint32 dstaddr = ipc->dst;
233: uint32 outdata = srcdata;
234:
235: storelong(dstaddr, outdata);
236:
237: VFLAG = 0;
238: CFLAG = 0;
239: NFLAG = ((sint32)outdata) < 0;
240: ZFLAG = !outdata;
241: PC+= 6;
242: }
243:
244: void cpu_op_326a(t_ipc *ipc) /* MOVE */ {
245: /* mask f1f8, bits 2008, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 1, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
246: int srcreg = (ipc->opcode >> 0) & 7;
247: uint32 srcdata = ADDRREG(srcreg);
248: int dstreg = (ipc->opcode >> 9) & 7;
249: uint32 outdata = srcdata;
250:
251: DATAREG(dstreg) = outdata;
252: PC+= 2;
253: }
254:
255: void cpu_op_326b(t_ipc *ipc) /* MOVE */ {
256: /* mask f1f8, bits 2008, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 1, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
257: int srcreg = (ipc->opcode >> 0) & 7;
258: uint32 srcdata = ADDRREG(srcreg);
259: int dstreg = (ipc->opcode >> 9) & 7;
260: uint32 outdata = srcdata;
261:
262: DATAREG(dstreg) = outdata;
263:
264: VFLAG = 0;
265: CFLAG = 0;
266: NFLAG = ((sint32)outdata) < 0;
267: ZFLAG = !outdata;
268: PC+= 2;
269: }
270:
271: void cpu_op_327a(t_ipc *ipc) /* MOVE */ {
272: /* mask f1f8, bits 2088, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 1, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
273: int srcreg = (ipc->opcode >> 0) & 7;
274: uint32 srcdata = ADDRREG(srcreg);
275: int dstreg = (ipc->opcode >> 9) & 7;
276: uint32 dstaddr = ADDRREG(dstreg);
277: uint32 outdata = srcdata;
278:
279: storelong(dstaddr, outdata);
280: PC+= 2;
281: }
282:
283: void cpu_op_327b(t_ipc *ipc) /* MOVE */ {
284: /* mask f1f8, bits 2088, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 1, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
285: int srcreg = (ipc->opcode >> 0) & 7;
286: uint32 srcdata = ADDRREG(srcreg);
287: int dstreg = (ipc->opcode >> 9) & 7;
288: uint32 dstaddr = ADDRREG(dstreg);
289: uint32 outdata = srcdata;
290:
291: storelong(dstaddr, outdata);
292:
293: VFLAG = 0;
294: CFLAG = 0;
295: NFLAG = ((sint32)outdata) < 0;
296: ZFLAG = !outdata;
297: PC+= 2;
298: }
299:
300: void cpu_op_328a(t_ipc *ipc) /* MOVE */ {
301: /* mask f1f8, bits 20c8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 1, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
302: int srcreg = (ipc->opcode >> 0) & 7;
303: uint32 srcdata = ADDRREG(srcreg);
304: int dstreg = (ipc->opcode >> 9) & 7;
305: uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
306: uint32 outdata = srcdata;
307:
308: storelong(dstaddr, outdata);
309: PC+= 2;
310: }
311:
312: void cpu_op_328b(t_ipc *ipc) /* MOVE */ {
313: /* mask f1f8, bits 20c8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 1, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
314: int srcreg = (ipc->opcode >> 0) & 7;
315: uint32 srcdata = ADDRREG(srcreg);
316: int dstreg = (ipc->opcode >> 9) & 7;
317: uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
318: uint32 outdata = srcdata;
319:
320: storelong(dstaddr, outdata);
321:
322: VFLAG = 0;
323: CFLAG = 0;
324: NFLAG = ((sint32)outdata) < 0;
325: ZFLAG = !outdata;
326: PC+= 2;
327: }
328:
329: void cpu_op_329a(t_ipc *ipc) /* MOVE */ {
330: /* mask f1f8, bits 2108, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 1, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
331: int srcreg = (ipc->opcode >> 0) & 7;
332: uint32 srcdata = ADDRREG(srcreg);
333: int dstreg = (ipc->opcode >> 9) & 7;
334: uint32 dstaddr = ADDRREG(dstreg)-=4;
335: uint32 outdata = srcdata;
336:
337: storelong(dstaddr, outdata);
338: PC+= 2;
339: }
340:
341: void cpu_op_329b(t_ipc *ipc) /* MOVE */ {
342: /* mask f1f8, bits 2108, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 1, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
343: int srcreg = (ipc->opcode >> 0) & 7;
344: uint32 srcdata = ADDRREG(srcreg);
345: int dstreg = (ipc->opcode >> 9) & 7;
346: uint32 dstaddr = ADDRREG(dstreg)-=4;
347: uint32 outdata = srcdata;
348:
349: storelong(dstaddr, outdata);
350:
351: VFLAG = 0;
352: CFLAG = 0;
353: NFLAG = ((sint32)outdata) < 0;
354: ZFLAG = !outdata;
355: PC+= 2;
356: }
357:
358: void cpu_op_330a(t_ipc *ipc) /* MOVE */ {
359: /* mask f1f8, bits 2148, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 1, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
360: int srcreg = (ipc->opcode >> 0) & 7;
361: uint32 srcdata = ADDRREG(srcreg);
362: int dstreg = (ipc->opcode >> 9) & 7;
363: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
364: uint32 outdata = srcdata;
365:
366: storelong(dstaddr, outdata);
367: PC+= 4;
368: }
369:
370: void cpu_op_330b(t_ipc *ipc) /* MOVE */ {
371: /* mask f1f8, bits 2148, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 1, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
372: int srcreg = (ipc->opcode >> 0) & 7;
373: uint32 srcdata = ADDRREG(srcreg);
374: int dstreg = (ipc->opcode >> 9) & 7;
375: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
376: uint32 outdata = srcdata;
377:
378: storelong(dstaddr, outdata);
379:
380: VFLAG = 0;
381: CFLAG = 0;
382: NFLAG = ((sint32)outdata) < 0;
383: ZFLAG = !outdata;
384: PC+= 4;
385: }
386:
387: void cpu_op_331a(t_ipc *ipc) /* MOVE */ {
388: /* mask f1f8, bits 2188, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 1, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
389: int srcreg = (ipc->opcode >> 0) & 7;
390: uint32 srcdata = ADDRREG(srcreg);
391: int dstreg = (ipc->opcode >> 9) & 7;
392: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
393: uint32 outdata = srcdata;
394:
395: storelong(dstaddr, outdata);
396: PC+= 4;
397: }
398:
399: void cpu_op_331b(t_ipc *ipc) /* MOVE */ {
400: /* mask f1f8, bits 2188, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 1, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
401: int srcreg = (ipc->opcode >> 0) & 7;
402: uint32 srcdata = ADDRREG(srcreg);
403: int dstreg = (ipc->opcode >> 9) & 7;
404: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
405: uint32 outdata = srcdata;
406:
407: storelong(dstaddr, outdata);
408:
409: VFLAG = 0;
410: CFLAG = 0;
411: NFLAG = ((sint32)outdata) < 0;
412: ZFLAG = !outdata;
413: PC+= 4;
414: }
415:
416: void cpu_op_332a(t_ipc *ipc) /* MOVE */ {
417: /* mask fff8, bits 21c8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 1, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
418: int srcreg = (ipc->opcode >> 0) & 7;
419: uint32 srcdata = ADDRREG(srcreg);
420: uint32 dstaddr = ipc->dst;
421: uint32 outdata = srcdata;
422:
423: storelong(dstaddr, outdata);
424: PC+= 4;
425: }
426:
427: void cpu_op_332b(t_ipc *ipc) /* MOVE */ {
428: /* mask fff8, bits 21c8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 1, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
429: int srcreg = (ipc->opcode >> 0) & 7;
430: uint32 srcdata = ADDRREG(srcreg);
431: uint32 dstaddr = ipc->dst;
432: uint32 outdata = srcdata;
433:
434: storelong(dstaddr, outdata);
435:
436: VFLAG = 0;
437: CFLAG = 0;
438: NFLAG = ((sint32)outdata) < 0;
439: ZFLAG = !outdata;
440: PC+= 4;
441: }
442:
443: void cpu_op_333a(t_ipc *ipc) /* MOVE */ {
444: /* mask fff8, bits 23c8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 1, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
445: int srcreg = (ipc->opcode >> 0) & 7;
446: uint32 srcdata = ADDRREG(srcreg);
447: uint32 dstaddr = ipc->dst;
448: uint32 outdata = srcdata;
449:
450: storelong(dstaddr, outdata);
451: PC+= 6;
452: }
453:
454: void cpu_op_333b(t_ipc *ipc) /* MOVE */ {
455: /* mask fff8, bits 23c8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 1, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
456: int srcreg = (ipc->opcode >> 0) & 7;
457: uint32 srcdata = ADDRREG(srcreg);
458: uint32 dstaddr = ipc->dst;
459: uint32 outdata = srcdata;
460:
461: storelong(dstaddr, outdata);
462:
463: VFLAG = 0;
464: CFLAG = 0;
465: NFLAG = ((sint32)outdata) < 0;
466: ZFLAG = !outdata;
467: PC+= 6;
468: }
469:
470: void cpu_op_334a(t_ipc *ipc) /* MOVE */ {
471: /* mask f1f8, bits 2010, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 2, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
472: int srcreg = (ipc->opcode >> 0) & 7;
473: uint32 srcaddr = ADDRREG(srcreg);
474: uint32 srcdata = fetchlong(srcaddr);
475: int dstreg = (ipc->opcode >> 9) & 7;
476: uint32 outdata = srcdata;
477:
478: DATAREG(dstreg) = outdata;
479: PC+= 2;
480: }
481:
482: void cpu_op_334b(t_ipc *ipc) /* MOVE */ {
483: /* mask f1f8, bits 2010, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 2, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
484: int srcreg = (ipc->opcode >> 0) & 7;
485: uint32 srcaddr = ADDRREG(srcreg);
486: uint32 srcdata = fetchlong(srcaddr);
487: int dstreg = (ipc->opcode >> 9) & 7;
488: uint32 outdata = srcdata;
489:
490: DATAREG(dstreg) = outdata;
491:
492: VFLAG = 0;
493: CFLAG = 0;
494: NFLAG = ((sint32)outdata) < 0;
495: ZFLAG = !outdata;
496: PC+= 2;
497: }
498:
499: void cpu_op_335a(t_ipc *ipc) /* MOVE */ {
500: /* mask f1f8, bits 2090, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 2, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
501: int srcreg = (ipc->opcode >> 0) & 7;
502: uint32 srcaddr = ADDRREG(srcreg);
503: uint32 srcdata = fetchlong(srcaddr);
504: int dstreg = (ipc->opcode >> 9) & 7;
505: uint32 dstaddr = ADDRREG(dstreg);
506: uint32 outdata = srcdata;
507:
508: storelong(dstaddr, outdata);
509: PC+= 2;
510: }
511:
512: void cpu_op_335b(t_ipc *ipc) /* MOVE */ {
513: /* mask f1f8, bits 2090, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 2, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
514: int srcreg = (ipc->opcode >> 0) & 7;
515: uint32 srcaddr = ADDRREG(srcreg);
516: uint32 srcdata = fetchlong(srcaddr);
517: int dstreg = (ipc->opcode >> 9) & 7;
518: uint32 dstaddr = ADDRREG(dstreg);
519: uint32 outdata = srcdata;
520:
521: storelong(dstaddr, outdata);
522:
523: VFLAG = 0;
524: CFLAG = 0;
525: NFLAG = ((sint32)outdata) < 0;
526: ZFLAG = !outdata;
527: PC+= 2;
528: }
529:
530: void cpu_op_336a(t_ipc *ipc) /* MOVE */ {
531: /* mask f1f8, bits 20d0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 2, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
532: int srcreg = (ipc->opcode >> 0) & 7;
533: uint32 srcaddr = ADDRREG(srcreg);
534: uint32 srcdata = fetchlong(srcaddr);
535: int dstreg = (ipc->opcode >> 9) & 7;
536: uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
537: uint32 outdata = srcdata;
538:
539: storelong(dstaddr, outdata);
540: PC+= 2;
541: }
542:
543: void cpu_op_336b(t_ipc *ipc) /* MOVE */ {
544: /* mask f1f8, bits 20d0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 2, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
545: int srcreg = (ipc->opcode >> 0) & 7;
546: uint32 srcaddr = ADDRREG(srcreg);
547: uint32 srcdata = fetchlong(srcaddr);
548: int dstreg = (ipc->opcode >> 9) & 7;
549: uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
550: uint32 outdata = srcdata;
551:
552: storelong(dstaddr, outdata);
553:
554: VFLAG = 0;
555: CFLAG = 0;
556: NFLAG = ((sint32)outdata) < 0;
557: ZFLAG = !outdata;
558: PC+= 2;
559: }
560:
561: void cpu_op_337a(t_ipc *ipc) /* MOVE */ {
562: /* mask f1f8, bits 2110, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 2, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
563: int srcreg = (ipc->opcode >> 0) & 7;
564: uint32 srcaddr = ADDRREG(srcreg);
565: uint32 srcdata = fetchlong(srcaddr);
566: int dstreg = (ipc->opcode >> 9) & 7;
567: uint32 dstaddr = ADDRREG(dstreg)-=4;
568: uint32 outdata = srcdata;
569:
570: storelong(dstaddr, outdata);
571: PC+= 2;
572: }
573:
574: void cpu_op_337b(t_ipc *ipc) /* MOVE */ {
575: /* mask f1f8, bits 2110, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 2, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
576: int srcreg = (ipc->opcode >> 0) & 7;
577: uint32 srcaddr = ADDRREG(srcreg);
578: uint32 srcdata = fetchlong(srcaddr);
579: int dstreg = (ipc->opcode >> 9) & 7;
580: uint32 dstaddr = ADDRREG(dstreg)-=4;
581: uint32 outdata = srcdata;
582:
583: storelong(dstaddr, outdata);
584:
585: VFLAG = 0;
586: CFLAG = 0;
587: NFLAG = ((sint32)outdata) < 0;
588: ZFLAG = !outdata;
589: PC+= 2;
590: }
591:
592: void cpu_op_338a(t_ipc *ipc) /* MOVE */ {
593: /* mask f1f8, bits 2150, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 2, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
594: int srcreg = (ipc->opcode >> 0) & 7;
595: uint32 srcaddr = ADDRREG(srcreg);
596: uint32 srcdata = fetchlong(srcaddr);
597: int dstreg = (ipc->opcode >> 9) & 7;
598: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
599: uint32 outdata = srcdata;
600:
601: storelong(dstaddr, outdata);
602: PC+= 4;
603: }
604:
605: void cpu_op_338b(t_ipc *ipc) /* MOVE */ {
606: /* mask f1f8, bits 2150, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 2, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
607: int srcreg = (ipc->opcode >> 0) & 7;
608: uint32 srcaddr = ADDRREG(srcreg);
609: uint32 srcdata = fetchlong(srcaddr);
610: int dstreg = (ipc->opcode >> 9) & 7;
611: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
612: uint32 outdata = srcdata;
613:
614: storelong(dstaddr, outdata);
615:
616: VFLAG = 0;
617: CFLAG = 0;
618: NFLAG = ((sint32)outdata) < 0;
619: ZFLAG = !outdata;
620: PC+= 4;
621: }
622:
623: void cpu_op_339a(t_ipc *ipc) /* MOVE */ {
624: /* mask f1f8, bits 2190, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 2, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
625: int srcreg = (ipc->opcode >> 0) & 7;
626: uint32 srcaddr = ADDRREG(srcreg);
627: uint32 srcdata = fetchlong(srcaddr);
628: int dstreg = (ipc->opcode >> 9) & 7;
629: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
630: uint32 outdata = srcdata;
631:
632: storelong(dstaddr, outdata);
633: PC+= 4;
634: }
635:
636: void cpu_op_339b(t_ipc *ipc) /* MOVE */ {
637: /* mask f1f8, bits 2190, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 2, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
638: int srcreg = (ipc->opcode >> 0) & 7;
639: uint32 srcaddr = ADDRREG(srcreg);
640: uint32 srcdata = fetchlong(srcaddr);
641: int dstreg = (ipc->opcode >> 9) & 7;
642: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
643: uint32 outdata = srcdata;
644:
645: storelong(dstaddr, outdata);
646:
647: VFLAG = 0;
648: CFLAG = 0;
649: NFLAG = ((sint32)outdata) < 0;
650: ZFLAG = !outdata;
651: PC+= 4;
652: }
653:
654: void cpu_op_340a(t_ipc *ipc) /* MOVE */ {
655: /* mask fff8, bits 21d0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 2, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
656: int srcreg = (ipc->opcode >> 0) & 7;
657: uint32 srcaddr = ADDRREG(srcreg);
658: uint32 srcdata = fetchlong(srcaddr);
659: uint32 dstaddr = ipc->dst;
660: uint32 outdata = srcdata;
661:
662: storelong(dstaddr, outdata);
663: PC+= 4;
664: }
665:
666: void cpu_op_340b(t_ipc *ipc) /* MOVE */ {
667: /* mask fff8, bits 21d0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 2, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
668: int srcreg = (ipc->opcode >> 0) & 7;
669: uint32 srcaddr = ADDRREG(srcreg);
670: uint32 srcdata = fetchlong(srcaddr);
671: uint32 dstaddr = ipc->dst;
672: uint32 outdata = srcdata;
673:
674: storelong(dstaddr, outdata);
675:
676: VFLAG = 0;
677: CFLAG = 0;
678: NFLAG = ((sint32)outdata) < 0;
679: ZFLAG = !outdata;
680: PC+= 4;
681: }
682:
683: void cpu_op_341a(t_ipc *ipc) /* MOVE */ {
684: /* mask fff8, bits 23d0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 2, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
685: int srcreg = (ipc->opcode >> 0) & 7;
686: uint32 srcaddr = ADDRREG(srcreg);
687: uint32 srcdata = fetchlong(srcaddr);
688: uint32 dstaddr = ipc->dst;
689: uint32 outdata = srcdata;
690:
691: storelong(dstaddr, outdata);
692: PC+= 6;
693: }
694:
695: void cpu_op_341b(t_ipc *ipc) /* MOVE */ {
696: /* mask fff8, bits 23d0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 2, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
697: int srcreg = (ipc->opcode >> 0) & 7;
698: uint32 srcaddr = ADDRREG(srcreg);
699: uint32 srcdata = fetchlong(srcaddr);
700: uint32 dstaddr = ipc->dst;
701: uint32 outdata = srcdata;
702:
703: storelong(dstaddr, outdata);
704:
705: VFLAG = 0;
706: CFLAG = 0;
707: NFLAG = ((sint32)outdata) < 0;
708: ZFLAG = !outdata;
709: PC+= 6;
710: }
711:
712: void cpu_op_342a(t_ipc *ipc) /* MOVE */ {
713: /* mask f1f8, bits 2018, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 3, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
714: int srcreg = (ipc->opcode >> 0) & 7;
715: uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
716: uint32 srcdata = fetchlong(srcaddr);
717: int dstreg = (ipc->opcode >> 9) & 7;
718: uint32 outdata = srcdata;
719:
720: DATAREG(dstreg) = outdata;
721: PC+= 2;
722: }
723:
724: void cpu_op_342b(t_ipc *ipc) /* MOVE */ {
725: /* mask f1f8, bits 2018, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 3, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
726: int srcreg = (ipc->opcode >> 0) & 7;
727: uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
728: uint32 srcdata = fetchlong(srcaddr);
729: int dstreg = (ipc->opcode >> 9) & 7;
730: uint32 outdata = srcdata;
731:
732: DATAREG(dstreg) = outdata;
733:
734: VFLAG = 0;
735: CFLAG = 0;
736: NFLAG = ((sint32)outdata) < 0;
737: ZFLAG = !outdata;
738: PC+= 2;
739: }
740:
741: void cpu_op_343a(t_ipc *ipc) /* MOVE */ {
742: /* mask f1f8, bits 2098, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 3, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
743: int srcreg = (ipc->opcode >> 0) & 7;
744: uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
745: uint32 srcdata = fetchlong(srcaddr);
746: int dstreg = (ipc->opcode >> 9) & 7;
747: uint32 dstaddr = ADDRREG(dstreg);
748: uint32 outdata = srcdata;
749:
750: storelong(dstaddr, outdata);
751: PC+= 2;
752: }
753:
754: void cpu_op_343b(t_ipc *ipc) /* MOVE */ {
755: /* mask f1f8, bits 2098, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 3, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
756: int srcreg = (ipc->opcode >> 0) & 7;
757: uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
758: uint32 srcdata = fetchlong(srcaddr);
759: int dstreg = (ipc->opcode >> 9) & 7;
760: uint32 dstaddr = ADDRREG(dstreg);
761: uint32 outdata = srcdata;
762:
763: storelong(dstaddr, outdata);
764:
765: VFLAG = 0;
766: CFLAG = 0;
767: NFLAG = ((sint32)outdata) < 0;
768: ZFLAG = !outdata;
769: PC+= 2;
770: }
771:
772: void cpu_op_344a(t_ipc *ipc) /* MOVE */ {
773: /* mask f1f8, bits 20d8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 3, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
774: int srcreg = (ipc->opcode >> 0) & 7;
775: uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
776: uint32 srcdata = fetchlong(srcaddr);
777: int dstreg = (ipc->opcode >> 9) & 7;
778: uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
779: uint32 outdata = srcdata;
780:
781: storelong(dstaddr, outdata);
782: PC+= 2;
783: }
784:
785: void cpu_op_344b(t_ipc *ipc) /* MOVE */ {
786: /* mask f1f8, bits 20d8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 3, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
787: int srcreg = (ipc->opcode >> 0) & 7;
788: uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
789: uint32 srcdata = fetchlong(srcaddr);
790: int dstreg = (ipc->opcode >> 9) & 7;
791: uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
792: uint32 outdata = srcdata;
793:
794: storelong(dstaddr, outdata);
795:
796: VFLAG = 0;
797: CFLAG = 0;
798: NFLAG = ((sint32)outdata) < 0;
799: ZFLAG = !outdata;
800: PC+= 2;
801: }
802:
803: void cpu_op_345a(t_ipc *ipc) /* MOVE */ {
804: /* mask f1f8, bits 2118, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 3, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
805: int srcreg = (ipc->opcode >> 0) & 7;
806: uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
807: uint32 srcdata = fetchlong(srcaddr);
808: int dstreg = (ipc->opcode >> 9) & 7;
809: uint32 dstaddr = ADDRREG(dstreg)-=4;
810: uint32 outdata = srcdata;
811:
812: storelong(dstaddr, outdata);
813: PC+= 2;
814: }
815:
816: void cpu_op_345b(t_ipc *ipc) /* MOVE */ {
817: /* mask f1f8, bits 2118, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 3, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
818: int srcreg = (ipc->opcode >> 0) & 7;
819: uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
820: uint32 srcdata = fetchlong(srcaddr);
821: int dstreg = (ipc->opcode >> 9) & 7;
822: uint32 dstaddr = ADDRREG(dstreg)-=4;
823: uint32 outdata = srcdata;
824:
825: storelong(dstaddr, outdata);
826:
827: VFLAG = 0;
828: CFLAG = 0;
829: NFLAG = ((sint32)outdata) < 0;
830: ZFLAG = !outdata;
831: PC+= 2;
832: }
833:
834: void cpu_op_346a(t_ipc *ipc) /* MOVE */ {
835: /* mask f1f8, bits 2158, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 3, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
836: int srcreg = (ipc->opcode >> 0) & 7;
837: uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
838: uint32 srcdata = fetchlong(srcaddr);
839: int dstreg = (ipc->opcode >> 9) & 7;
840: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
841: uint32 outdata = srcdata;
842:
843: storelong(dstaddr, outdata);
844: PC+= 4;
845: }
846:
847: void cpu_op_346b(t_ipc *ipc) /* MOVE */ {
848: /* mask f1f8, bits 2158, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 3, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
849: int srcreg = (ipc->opcode >> 0) & 7;
850: uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
851: uint32 srcdata = fetchlong(srcaddr);
852: int dstreg = (ipc->opcode >> 9) & 7;
853: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
854: uint32 outdata = srcdata;
855:
856: storelong(dstaddr, outdata);
857:
858: VFLAG = 0;
859: CFLAG = 0;
860: NFLAG = ((sint32)outdata) < 0;
861: ZFLAG = !outdata;
862: PC+= 4;
863: }
864:
865: void cpu_op_347a(t_ipc *ipc) /* MOVE */ {
866: /* mask f1f8, bits 2198, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 3, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
867: int srcreg = (ipc->opcode >> 0) & 7;
868: uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
869: uint32 srcdata = fetchlong(srcaddr);
870: int dstreg = (ipc->opcode >> 9) & 7;
871: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
872: uint32 outdata = srcdata;
873:
874: storelong(dstaddr, outdata);
875: PC+= 4;
876: }
877:
878: void cpu_op_347b(t_ipc *ipc) /* MOVE */ {
879: /* mask f1f8, bits 2198, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 3, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
880: int srcreg = (ipc->opcode >> 0) & 7;
881: uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
882: uint32 srcdata = fetchlong(srcaddr);
883: int dstreg = (ipc->opcode >> 9) & 7;
884: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
885: uint32 outdata = srcdata;
886:
887: storelong(dstaddr, outdata);
888:
889: VFLAG = 0;
890: CFLAG = 0;
891: NFLAG = ((sint32)outdata) < 0;
892: ZFLAG = !outdata;
893: PC+= 4;
894: }
895:
896: void cpu_op_348a(t_ipc *ipc) /* MOVE */ {
897: /* mask fff8, bits 21d8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 3, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
898: int srcreg = (ipc->opcode >> 0) & 7;
899: uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
900: uint32 srcdata = fetchlong(srcaddr);
901: uint32 dstaddr = ipc->dst;
902: uint32 outdata = srcdata;
903:
904: storelong(dstaddr, outdata);
905: PC+= 4;
906: }
907:
908: void cpu_op_348b(t_ipc *ipc) /* MOVE */ {
909: /* mask fff8, bits 21d8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 3, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
910: int srcreg = (ipc->opcode >> 0) & 7;
911: uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
912: uint32 srcdata = fetchlong(srcaddr);
913: uint32 dstaddr = ipc->dst;
914: uint32 outdata = srcdata;
915:
916: storelong(dstaddr, outdata);
917:
918: VFLAG = 0;
919: CFLAG = 0;
920: NFLAG = ((sint32)outdata) < 0;
921: ZFLAG = !outdata;
922: PC+= 4;
923: }
924:
925: void cpu_op_349a(t_ipc *ipc) /* MOVE */ {
926: /* mask fff8, bits 23d8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 3, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
927: int srcreg = (ipc->opcode >> 0) & 7;
928: uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
929: uint32 srcdata = fetchlong(srcaddr);
930: uint32 dstaddr = ipc->dst;
931: uint32 outdata = srcdata;
932:
933: storelong(dstaddr, outdata);
934: PC+= 6;
935: }
936:
937: void cpu_op_349b(t_ipc *ipc) /* MOVE */ {
938: /* mask fff8, bits 23d8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 3, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
939: int srcreg = (ipc->opcode >> 0) & 7;
940: uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
941: uint32 srcdata = fetchlong(srcaddr);
942: uint32 dstaddr = ipc->dst;
943: uint32 outdata = srcdata;
944:
945: storelong(dstaddr, outdata);
946:
947: VFLAG = 0;
948: CFLAG = 0;
949: NFLAG = ((sint32)outdata) < 0;
950: ZFLAG = !outdata;
951: PC+= 6;
952: }
953:
954: void cpu_op_350a(t_ipc *ipc) /* MOVE */ {
955: /* mask f1f8, bits 2020, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 4, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
956: int srcreg = (ipc->opcode >> 0) & 7;
957: uint32 srcaddr = ADDRREG(srcreg)-=4;
958: uint32 srcdata = fetchlong(srcaddr);
959: int dstreg = (ipc->opcode >> 9) & 7;
960: uint32 outdata = srcdata;
961:
962: DATAREG(dstreg) = outdata;
963: PC+= 2;
964: }
965:
966: void cpu_op_350b(t_ipc *ipc) /* MOVE */ {
967: /* mask f1f8, bits 2020, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 4, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
968: int srcreg = (ipc->opcode >> 0) & 7;
969: uint32 srcaddr = ADDRREG(srcreg)-=4;
970: uint32 srcdata = fetchlong(srcaddr);
971: int dstreg = (ipc->opcode >> 9) & 7;
972: uint32 outdata = srcdata;
973:
974: DATAREG(dstreg) = outdata;
975:
976: VFLAG = 0;
977: CFLAG = 0;
978: NFLAG = ((sint32)outdata) < 0;
979: ZFLAG = !outdata;
980: PC+= 2;
981: }
982:
983: void cpu_op_351a(t_ipc *ipc) /* MOVE */ {
984: /* mask f1f8, bits 20a0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 4, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
985: int srcreg = (ipc->opcode >> 0) & 7;
986: uint32 srcaddr = ADDRREG(srcreg)-=4;
987: uint32 srcdata = fetchlong(srcaddr);
988: int dstreg = (ipc->opcode >> 9) & 7;
989: uint32 dstaddr = ADDRREG(dstreg);
990: uint32 outdata = srcdata;
991:
992: storelong(dstaddr, outdata);
993: PC+= 2;
994: }
995:
996: void cpu_op_351b(t_ipc *ipc) /* MOVE */ {
997: /* mask f1f8, bits 20a0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 4, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
998: int srcreg = (ipc->opcode >> 0) & 7;
999: uint32 srcaddr = ADDRREG(srcreg)-=4;
1000: uint32 srcdata = fetchlong(srcaddr);
1001: int dstreg = (ipc->opcode >> 9) & 7;
1002: uint32 dstaddr = ADDRREG(dstreg);
1003: uint32 outdata = srcdata;
1004:
1005: storelong(dstaddr, outdata);
1006:
1007: VFLAG = 0;
1008: CFLAG = 0;
1009: NFLAG = ((sint32)outdata) < 0;
1010: ZFLAG = !outdata;
1011: PC+= 2;
1012: }
1013:
1014: void cpu_op_352a(t_ipc *ipc) /* MOVE */ {
1015: /* mask f1f8, bits 20e0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 4, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
1016: int srcreg = (ipc->opcode >> 0) & 7;
1017: uint32 srcaddr = ADDRREG(srcreg)-=4;
1018: uint32 srcdata = fetchlong(srcaddr);
1019: int dstreg = (ipc->opcode >> 9) & 7;
1020: uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
1021: uint32 outdata = srcdata;
1022:
1023: storelong(dstaddr, outdata);
1024: PC+= 2;
1025: }
1026:
1027: void cpu_op_352b(t_ipc *ipc) /* MOVE */ {
1028: /* mask f1f8, bits 20e0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 4, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
1029: int srcreg = (ipc->opcode >> 0) & 7;
1030: uint32 srcaddr = ADDRREG(srcreg)-=4;
1031: uint32 srcdata = fetchlong(srcaddr);
1032: int dstreg = (ipc->opcode >> 9) & 7;
1033: uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
1034: uint32 outdata = srcdata;
1035:
1036: storelong(dstaddr, outdata);
1037:
1038: VFLAG = 0;
1039: CFLAG = 0;
1040: NFLAG = ((sint32)outdata) < 0;
1041: ZFLAG = !outdata;
1042: PC+= 2;
1043: }
1044:
1045: void cpu_op_353a(t_ipc *ipc) /* MOVE */ {
1046: /* mask f1f8, bits 2120, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 4, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
1047: int srcreg = (ipc->opcode >> 0) & 7;
1048: uint32 srcaddr = ADDRREG(srcreg)-=4;
1049: uint32 srcdata = fetchlong(srcaddr);
1050: int dstreg = (ipc->opcode >> 9) & 7;
1051: uint32 dstaddr = ADDRREG(dstreg)-=4;
1052: uint32 outdata = srcdata;
1053:
1054: storelong(dstaddr, outdata);
1055: PC+= 2;
1056: }
1057:
1058: void cpu_op_353b(t_ipc *ipc) /* MOVE */ {
1059: /* mask f1f8, bits 2120, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 4, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
1060: int srcreg = (ipc->opcode >> 0) & 7;
1061: uint32 srcaddr = ADDRREG(srcreg)-=4;
1062: uint32 srcdata = fetchlong(srcaddr);
1063: int dstreg = (ipc->opcode >> 9) & 7;
1064: uint32 dstaddr = ADDRREG(dstreg)-=4;
1065: uint32 outdata = srcdata;
1066:
1067: storelong(dstaddr, outdata);
1068:
1069: VFLAG = 0;
1070: CFLAG = 0;
1071: NFLAG = ((sint32)outdata) < 0;
1072: ZFLAG = !outdata;
1073: PC+= 2;
1074: }
1075:
1076: void cpu_op_354a(t_ipc *ipc) /* MOVE */ {
1077: /* mask f1f8, bits 2160, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 4, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
1078: int srcreg = (ipc->opcode >> 0) & 7;
1079: uint32 srcaddr = ADDRREG(srcreg)-=4;
1080: uint32 srcdata = fetchlong(srcaddr);
1081: int dstreg = (ipc->opcode >> 9) & 7;
1082: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
1083: uint32 outdata = srcdata;
1084:
1085: storelong(dstaddr, outdata);
1086: PC+= 4;
1087: }
1088:
1089: void cpu_op_354b(t_ipc *ipc) /* MOVE */ {
1090: /* mask f1f8, bits 2160, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 4, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
1091: int srcreg = (ipc->opcode >> 0) & 7;
1092: uint32 srcaddr = ADDRREG(srcreg)-=4;
1093: uint32 srcdata = fetchlong(srcaddr);
1094: int dstreg = (ipc->opcode >> 9) & 7;
1095: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
1096: uint32 outdata = srcdata;
1097:
1098: storelong(dstaddr, outdata);
1099:
1100: VFLAG = 0;
1101: CFLAG = 0;
1102: NFLAG = ((sint32)outdata) < 0;
1103: ZFLAG = !outdata;
1104: PC+= 4;
1105: }
1106:
1107: void cpu_op_355a(t_ipc *ipc) /* MOVE */ {
1108: /* mask f1f8, bits 21a0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 4, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
1109: int srcreg = (ipc->opcode >> 0) & 7;
1110: uint32 srcaddr = ADDRREG(srcreg)-=4;
1111: uint32 srcdata = fetchlong(srcaddr);
1112: int dstreg = (ipc->opcode >> 9) & 7;
1113: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
1114: uint32 outdata = srcdata;
1115:
1116: storelong(dstaddr, outdata);
1117: PC+= 4;
1118: }
1119:
1120: void cpu_op_355b(t_ipc *ipc) /* MOVE */ {
1121: /* mask f1f8, bits 21a0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 4, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
1122: int srcreg = (ipc->opcode >> 0) & 7;
1123: uint32 srcaddr = ADDRREG(srcreg)-=4;
1124: uint32 srcdata = fetchlong(srcaddr);
1125: int dstreg = (ipc->opcode >> 9) & 7;
1126: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
1127: uint32 outdata = srcdata;
1128:
1129: storelong(dstaddr, outdata);
1130:
1131: VFLAG = 0;
1132: CFLAG = 0;
1133: NFLAG = ((sint32)outdata) < 0;
1134: ZFLAG = !outdata;
1135: PC+= 4;
1136: }
1137:
1138: void cpu_op_356a(t_ipc *ipc) /* MOVE */ {
1139: /* mask fff8, bits 21e0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 4, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
1140: int srcreg = (ipc->opcode >> 0) & 7;
1141: uint32 srcaddr = ADDRREG(srcreg)-=4;
1142: uint32 srcdata = fetchlong(srcaddr);
1143: uint32 dstaddr = ipc->dst;
1144: uint32 outdata = srcdata;
1145:
1146: storelong(dstaddr, outdata);
1147: PC+= 4;
1148: }
1149:
1150: void cpu_op_356b(t_ipc *ipc) /* MOVE */ {
1151: /* mask fff8, bits 21e0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 4, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
1152: int srcreg = (ipc->opcode >> 0) & 7;
1153: uint32 srcaddr = ADDRREG(srcreg)-=4;
1154: uint32 srcdata = fetchlong(srcaddr);
1155: uint32 dstaddr = ipc->dst;
1156: uint32 outdata = srcdata;
1157:
1158: storelong(dstaddr, outdata);
1159:
1160: VFLAG = 0;
1161: CFLAG = 0;
1162: NFLAG = ((sint32)outdata) < 0;
1163: ZFLAG = !outdata;
1164: PC+= 4;
1165: }
1166:
1167: void cpu_op_357a(t_ipc *ipc) /* MOVE */ {
1168: /* mask fff8, bits 23e0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 4, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
1169: int srcreg = (ipc->opcode >> 0) & 7;
1170: uint32 srcaddr = ADDRREG(srcreg)-=4;
1171: uint32 srcdata = fetchlong(srcaddr);
1172: uint32 dstaddr = ipc->dst;
1173: uint32 outdata = srcdata;
1174:
1175: storelong(dstaddr, outdata);
1176: PC+= 6;
1177: }
1178:
1179: void cpu_op_357b(t_ipc *ipc) /* MOVE */ {
1180: /* mask fff8, bits 23e0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 4, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
1181: int srcreg = (ipc->opcode >> 0) & 7;
1182: uint32 srcaddr = ADDRREG(srcreg)-=4;
1183: uint32 srcdata = fetchlong(srcaddr);
1184: uint32 dstaddr = ipc->dst;
1185: uint32 outdata = srcdata;
1186:
1187: storelong(dstaddr, outdata);
1188:
1189: VFLAG = 0;
1190: CFLAG = 0;
1191: NFLAG = ((sint32)outdata) < 0;
1192: ZFLAG = !outdata;
1193: PC+= 6;
1194: }
1195:
1196: void cpu_op_358a(t_ipc *ipc) /* MOVE */ {
1197: /* mask f1f8, bits 2028, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 5, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
1198: int srcreg = (ipc->opcode >> 0) & 7;
1199: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1200: uint32 srcdata = fetchlong(srcaddr);
1201: int dstreg = (ipc->opcode >> 9) & 7;
1202: uint32 outdata = srcdata;
1203:
1204: DATAREG(dstreg) = outdata;
1205: PC+= 4;
1206: }
1207:
1208: void cpu_op_358b(t_ipc *ipc) /* MOVE */ {
1209: /* mask f1f8, bits 2028, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 5, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
1210: int srcreg = (ipc->opcode >> 0) & 7;
1211: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1212: uint32 srcdata = fetchlong(srcaddr);
1213: int dstreg = (ipc->opcode >> 9) & 7;
1214: uint32 outdata = srcdata;
1215:
1216: DATAREG(dstreg) = outdata;
1217:
1218: VFLAG = 0;
1219: CFLAG = 0;
1220: NFLAG = ((sint32)outdata) < 0;
1221: ZFLAG = !outdata;
1222: PC+= 4;
1223: }
1224:
1225: void cpu_op_359a(t_ipc *ipc) /* MOVE */ {
1226: /* mask f1f8, bits 20a8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 5, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
1227: int srcreg = (ipc->opcode >> 0) & 7;
1228: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1229: uint32 srcdata = fetchlong(srcaddr);
1230: int dstreg = (ipc->opcode >> 9) & 7;
1231: uint32 dstaddr = ADDRREG(dstreg);
1232: uint32 outdata = srcdata;
1233:
1234: storelong(dstaddr, outdata);
1235: PC+= 4;
1236: }
1237:
1238: void cpu_op_359b(t_ipc *ipc) /* MOVE */ {
1239: /* mask f1f8, bits 20a8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 5, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
1240: int srcreg = (ipc->opcode >> 0) & 7;
1241: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1242: uint32 srcdata = fetchlong(srcaddr);
1243: int dstreg = (ipc->opcode >> 9) & 7;
1244: uint32 dstaddr = ADDRREG(dstreg);
1245: uint32 outdata = srcdata;
1246:
1247: storelong(dstaddr, outdata);
1248:
1249: VFLAG = 0;
1250: CFLAG = 0;
1251: NFLAG = ((sint32)outdata) < 0;
1252: ZFLAG = !outdata;
1253: PC+= 4;
1254: }
1255:
1256: void cpu_op_360a(t_ipc *ipc) /* MOVE */ {
1257: /* mask f1f8, bits 20e8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 5, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
1258: int srcreg = (ipc->opcode >> 0) & 7;
1259: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1260: uint32 srcdata = fetchlong(srcaddr);
1261: int dstreg = (ipc->opcode >> 9) & 7;
1262: uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
1263: uint32 outdata = srcdata;
1264:
1265: storelong(dstaddr, outdata);
1266: PC+= 4;
1267: }
1268:
1269: void cpu_op_360b(t_ipc *ipc) /* MOVE */ {
1270: /* mask f1f8, bits 20e8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 5, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
1271: int srcreg = (ipc->opcode >> 0) & 7;
1272: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1273: uint32 srcdata = fetchlong(srcaddr);
1274: int dstreg = (ipc->opcode >> 9) & 7;
1275: uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
1276: uint32 outdata = srcdata;
1277:
1278: storelong(dstaddr, outdata);
1279:
1280: VFLAG = 0;
1281: CFLAG = 0;
1282: NFLAG = ((sint32)outdata) < 0;
1283: ZFLAG = !outdata;
1284: PC+= 4;
1285: }
1286:
1287: void cpu_op_361a(t_ipc *ipc) /* MOVE */ {
1288: /* mask f1f8, bits 2128, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 5, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
1289: int srcreg = (ipc->opcode >> 0) & 7;
1290: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1291: uint32 srcdata = fetchlong(srcaddr);
1292: int dstreg = (ipc->opcode >> 9) & 7;
1293: uint32 dstaddr = ADDRREG(dstreg)-=4;
1294: uint32 outdata = srcdata;
1295:
1296: storelong(dstaddr, outdata);
1297: PC+= 4;
1298: }
1299:
1300: void cpu_op_361b(t_ipc *ipc) /* MOVE */ {
1301: /* mask f1f8, bits 2128, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 5, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
1302: int srcreg = (ipc->opcode >> 0) & 7;
1303: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1304: uint32 srcdata = fetchlong(srcaddr);
1305: int dstreg = (ipc->opcode >> 9) & 7;
1306: uint32 dstaddr = ADDRREG(dstreg)-=4;
1307: uint32 outdata = srcdata;
1308:
1309: storelong(dstaddr, outdata);
1310:
1311: VFLAG = 0;
1312: CFLAG = 0;
1313: NFLAG = ((sint32)outdata) < 0;
1314: ZFLAG = !outdata;
1315: PC+= 4;
1316: }
1317:
1318: void cpu_op_362a(t_ipc *ipc) /* MOVE */ {
1319: /* mask f1f8, bits 2168, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 5, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
1320: int srcreg = (ipc->opcode >> 0) & 7;
1321: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1322: uint32 srcdata = fetchlong(srcaddr);
1323: int dstreg = (ipc->opcode >> 9) & 7;
1324: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
1325: uint32 outdata = srcdata;
1326:
1327: storelong(dstaddr, outdata);
1328: PC+= 6;
1329: }
1330:
1331: void cpu_op_362b(t_ipc *ipc) /* MOVE */ {
1332: /* mask f1f8, bits 2168, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 5, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
1333: int srcreg = (ipc->opcode >> 0) & 7;
1334: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1335: uint32 srcdata = fetchlong(srcaddr);
1336: int dstreg = (ipc->opcode >> 9) & 7;
1337: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
1338: uint32 outdata = srcdata;
1339:
1340: storelong(dstaddr, outdata);
1341:
1342: VFLAG = 0;
1343: CFLAG = 0;
1344: NFLAG = ((sint32)outdata) < 0;
1345: ZFLAG = !outdata;
1346: PC+= 6;
1347: }
1348:
1349: void cpu_op_363a(t_ipc *ipc) /* MOVE */ {
1350: /* mask f1f8, bits 21a8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 5, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
1351: int srcreg = (ipc->opcode >> 0) & 7;
1352: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1353: uint32 srcdata = fetchlong(srcaddr);
1354: int dstreg = (ipc->opcode >> 9) & 7;
1355: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
1356: uint32 outdata = srcdata;
1357:
1358: storelong(dstaddr, outdata);
1359: PC+= 6;
1360: }
1361:
1362: void cpu_op_363b(t_ipc *ipc) /* MOVE */ {
1363: /* mask f1f8, bits 21a8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 5, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
1364: int srcreg = (ipc->opcode >> 0) & 7;
1365: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1366: uint32 srcdata = fetchlong(srcaddr);
1367: int dstreg = (ipc->opcode >> 9) & 7;
1368: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
1369: uint32 outdata = srcdata;
1370:
1371: storelong(dstaddr, outdata);
1372:
1373: VFLAG = 0;
1374: CFLAG = 0;
1375: NFLAG = ((sint32)outdata) < 0;
1376: ZFLAG = !outdata;
1377: PC+= 6;
1378: }
1379:
1380: void cpu_op_364a(t_ipc *ipc) /* MOVE */ {
1381: /* mask fff8, bits 21e8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 5, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
1382: int srcreg = (ipc->opcode >> 0) & 7;
1383: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1384: uint32 srcdata = fetchlong(srcaddr);
1385: uint32 dstaddr = ipc->dst;
1386: uint32 outdata = srcdata;
1387:
1388: storelong(dstaddr, outdata);
1389: PC+= 6;
1390: }
1391:
1392: void cpu_op_364b(t_ipc *ipc) /* MOVE */ {
1393: /* mask fff8, bits 21e8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 5, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
1394: int srcreg = (ipc->opcode >> 0) & 7;
1395: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1396: uint32 srcdata = fetchlong(srcaddr);
1397: uint32 dstaddr = ipc->dst;
1398: uint32 outdata = srcdata;
1399:
1400: storelong(dstaddr, outdata);
1401:
1402: VFLAG = 0;
1403: CFLAG = 0;
1404: NFLAG = ((sint32)outdata) < 0;
1405: ZFLAG = !outdata;
1406: PC+= 6;
1407: }
1408:
1409: void cpu_op_365a(t_ipc *ipc) /* MOVE */ {
1410: /* mask fff8, bits 23e8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 5, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
1411: int srcreg = (ipc->opcode >> 0) & 7;
1412: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1413: uint32 srcdata = fetchlong(srcaddr);
1414: uint32 dstaddr = ipc->dst;
1415: uint32 outdata = srcdata;
1416:
1417: storelong(dstaddr, outdata);
1418: PC+= 8;
1419: }
1420:
1421: void cpu_op_365b(t_ipc *ipc) /* MOVE */ {
1422: /* mask fff8, bits 23e8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 5, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
1423: int srcreg = (ipc->opcode >> 0) & 7;
1424: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1425: uint32 srcdata = fetchlong(srcaddr);
1426: uint32 dstaddr = ipc->dst;
1427: uint32 outdata = srcdata;
1428:
1429: storelong(dstaddr, outdata);
1430:
1431: VFLAG = 0;
1432: CFLAG = 0;
1433: NFLAG = ((sint32)outdata) < 0;
1434: ZFLAG = !outdata;
1435: PC+= 8;
1436: }
1437:
1438: void cpu_op_366a(t_ipc *ipc) /* MOVE */ {
1439: /* mask f1f8, bits 2030, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 6, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
1440: int srcreg = (ipc->opcode >> 0) & 7;
1441: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1442: uint32 srcdata = fetchlong(srcaddr);
1443: int dstreg = (ipc->opcode >> 9) & 7;
1444: uint32 outdata = srcdata;
1445:
1446: DATAREG(dstreg) = outdata;
1447: PC+= 4;
1448: }
1449:
1450: void cpu_op_366b(t_ipc *ipc) /* MOVE */ {
1451: /* mask f1f8, bits 2030, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 6, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
1452: int srcreg = (ipc->opcode >> 0) & 7;
1453: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1454: uint32 srcdata = fetchlong(srcaddr);
1455: int dstreg = (ipc->opcode >> 9) & 7;
1456: uint32 outdata = srcdata;
1457:
1458: DATAREG(dstreg) = outdata;
1459:
1460: VFLAG = 0;
1461: CFLAG = 0;
1462: NFLAG = ((sint32)outdata) < 0;
1463: ZFLAG = !outdata;
1464: PC+= 4;
1465: }
1466:
1467: void cpu_op_367a(t_ipc *ipc) /* MOVE */ {
1468: /* mask f1f8, bits 20b0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 6, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
1469: int srcreg = (ipc->opcode >> 0) & 7;
1470: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1471: uint32 srcdata = fetchlong(srcaddr);
1472: int dstreg = (ipc->opcode >> 9) & 7;
1473: uint32 dstaddr = ADDRREG(dstreg);
1474: uint32 outdata = srcdata;
1475:
1476: storelong(dstaddr, outdata);
1477: PC+= 4;
1478: }
1479:
1480: void cpu_op_367b(t_ipc *ipc) /* MOVE */ {
1481: /* mask f1f8, bits 20b0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 6, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
1482: int srcreg = (ipc->opcode >> 0) & 7;
1483: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1484: uint32 srcdata = fetchlong(srcaddr);
1485: int dstreg = (ipc->opcode >> 9) & 7;
1486: uint32 dstaddr = ADDRREG(dstreg);
1487: uint32 outdata = srcdata;
1488:
1489: storelong(dstaddr, outdata);
1490:
1491: VFLAG = 0;
1492: CFLAG = 0;
1493: NFLAG = ((sint32)outdata) < 0;
1494: ZFLAG = !outdata;
1495: PC+= 4;
1496: }
1497:
1498: void cpu_op_368a(t_ipc *ipc) /* MOVE */ {
1499: /* mask f1f8, bits 20f0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 6, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
1500: int srcreg = (ipc->opcode >> 0) & 7;
1501: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1502: uint32 srcdata = fetchlong(srcaddr);
1503: int dstreg = (ipc->opcode >> 9) & 7;
1504: uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
1505: uint32 outdata = srcdata;
1506:
1507: storelong(dstaddr, outdata);
1508: PC+= 4;
1509: }
1510:
1511: void cpu_op_368b(t_ipc *ipc) /* MOVE */ {
1512: /* mask f1f8, bits 20f0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 6, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
1513: int srcreg = (ipc->opcode >> 0) & 7;
1514: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1515: uint32 srcdata = fetchlong(srcaddr);
1516: int dstreg = (ipc->opcode >> 9) & 7;
1517: uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
1518: uint32 outdata = srcdata;
1519:
1520: storelong(dstaddr, outdata);
1521:
1522: VFLAG = 0;
1523: CFLAG = 0;
1524: NFLAG = ((sint32)outdata) < 0;
1525: ZFLAG = !outdata;
1526: PC+= 4;
1527: }
1528:
1529: void cpu_op_369a(t_ipc *ipc) /* MOVE */ {
1530: /* mask f1f8, bits 2130, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 6, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
1531: int srcreg = (ipc->opcode >> 0) & 7;
1532: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1533: uint32 srcdata = fetchlong(srcaddr);
1534: int dstreg = (ipc->opcode >> 9) & 7;
1535: uint32 dstaddr = ADDRREG(dstreg)-=4;
1536: uint32 outdata = srcdata;
1537:
1538: storelong(dstaddr, outdata);
1539: PC+= 4;
1540: }
1541:
1542: void cpu_op_369b(t_ipc *ipc) /* MOVE */ {
1543: /* mask f1f8, bits 2130, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 6, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
1544: int srcreg = (ipc->opcode >> 0) & 7;
1545: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1546: uint32 srcdata = fetchlong(srcaddr);
1547: int dstreg = (ipc->opcode >> 9) & 7;
1548: uint32 dstaddr = ADDRREG(dstreg)-=4;
1549: uint32 outdata = srcdata;
1550:
1551: storelong(dstaddr, outdata);
1552:
1553: VFLAG = 0;
1554: CFLAG = 0;
1555: NFLAG = ((sint32)outdata) < 0;
1556: ZFLAG = !outdata;
1557: PC+= 4;
1558: }
1559:
1560: void cpu_op_370a(t_ipc *ipc) /* MOVE */ {
1561: /* mask f1f8, bits 2170, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 6, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
1562: int srcreg = (ipc->opcode >> 0) & 7;
1563: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1564: uint32 srcdata = fetchlong(srcaddr);
1565: int dstreg = (ipc->opcode >> 9) & 7;
1566: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
1567: uint32 outdata = srcdata;
1568:
1569: storelong(dstaddr, outdata);
1570: PC+= 6;
1571: }
1572:
1573: void cpu_op_370b(t_ipc *ipc) /* MOVE */ {
1574: /* mask f1f8, bits 2170, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 6, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
1575: int srcreg = (ipc->opcode >> 0) & 7;
1576: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1577: uint32 srcdata = fetchlong(srcaddr);
1578: int dstreg = (ipc->opcode >> 9) & 7;
1579: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
1580: uint32 outdata = srcdata;
1581:
1582: storelong(dstaddr, outdata);
1583:
1584: VFLAG = 0;
1585: CFLAG = 0;
1586: NFLAG = ((sint32)outdata) < 0;
1587: ZFLAG = !outdata;
1588: PC+= 6;
1589: }
1590:
1591: void cpu_op_371a(t_ipc *ipc) /* MOVE */ {
1592: /* mask f1f8, bits 21b0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 6, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
1593: int srcreg = (ipc->opcode >> 0) & 7;
1594: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1595: uint32 srcdata = fetchlong(srcaddr);
1596: int dstreg = (ipc->opcode >> 9) & 7;
1597: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
1598: uint32 outdata = srcdata;
1599:
1600: storelong(dstaddr, outdata);
1601: PC+= 6;
1602: }
1603:
1604: void cpu_op_371b(t_ipc *ipc) /* MOVE */ {
1605: /* mask f1f8, bits 21b0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 6, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
1606: int srcreg = (ipc->opcode >> 0) & 7;
1607: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1608: uint32 srcdata = fetchlong(srcaddr);
1609: int dstreg = (ipc->opcode >> 9) & 7;
1610: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
1611: uint32 outdata = srcdata;
1612:
1613: storelong(dstaddr, outdata);
1614:
1615: VFLAG = 0;
1616: CFLAG = 0;
1617: NFLAG = ((sint32)outdata) < 0;
1618: ZFLAG = !outdata;
1619: PC+= 6;
1620: }
1621:
1622: void cpu_op_372a(t_ipc *ipc) /* MOVE */ {
1623: /* mask fff8, bits 21f0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 6, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
1624: int srcreg = (ipc->opcode >> 0) & 7;
1625: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1626: uint32 srcdata = fetchlong(srcaddr);
1627: uint32 dstaddr = ipc->dst;
1628: uint32 outdata = srcdata;
1629:
1630: storelong(dstaddr, outdata);
1631: PC+= 6;
1632: }
1633:
1634: void cpu_op_372b(t_ipc *ipc) /* MOVE */ {
1635: /* mask fff8, bits 21f0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 6, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
1636: int srcreg = (ipc->opcode >> 0) & 7;
1637: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1638: uint32 srcdata = fetchlong(srcaddr);
1639: uint32 dstaddr = ipc->dst;
1640: uint32 outdata = srcdata;
1641:
1642: storelong(dstaddr, outdata);
1643:
1644: VFLAG = 0;
1645: CFLAG = 0;
1646: NFLAG = ((sint32)outdata) < 0;
1647: ZFLAG = !outdata;
1648: PC+= 6;
1649: }
1650:
1651: void cpu_op_373a(t_ipc *ipc) /* MOVE */ {
1652: /* mask fff8, bits 23f0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 6, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
1653: int srcreg = (ipc->opcode >> 0) & 7;
1654: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1655: uint32 srcdata = fetchlong(srcaddr);
1656: uint32 dstaddr = ipc->dst;
1657: uint32 outdata = srcdata;
1658:
1659: storelong(dstaddr, outdata);
1660: PC+= 8;
1661: }
1662:
1663: void cpu_op_373b(t_ipc *ipc) /* MOVE */ {
1664: /* mask fff8, bits 23f0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 6, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
1665: int srcreg = (ipc->opcode >> 0) & 7;
1666: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1667: uint32 srcdata = fetchlong(srcaddr);
1668: uint32 dstaddr = ipc->dst;
1669: uint32 outdata = srcdata;
1670:
1671: storelong(dstaddr, outdata);
1672:
1673: VFLAG = 0;
1674: CFLAG = 0;
1675: NFLAG = ((sint32)outdata) < 0;
1676: ZFLAG = !outdata;
1677: PC+= 8;
1678: }
1679:
1680: void cpu_op_374a(t_ipc *ipc) /* MOVE */ {
1681: /* mask f1ff, bits 2038, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 7, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
1682: uint32 srcaddr = ipc->src;
1683: uint32 srcdata = fetchlong(srcaddr);
1684: int dstreg = (ipc->opcode >> 9) & 7;
1685: uint32 outdata = srcdata;
1686:
1687: DATAREG(dstreg) = outdata;
1688: PC+= 4;
1689: }
1690:
1691: void cpu_op_374b(t_ipc *ipc) /* MOVE */ {
1692: /* mask f1ff, bits 2038, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 7, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
1693: uint32 srcaddr = ipc->src;
1694: uint32 srcdata = fetchlong(srcaddr);
1695: int dstreg = (ipc->opcode >> 9) & 7;
1696: uint32 outdata = srcdata;
1697:
1698: DATAREG(dstreg) = outdata;
1699:
1700: VFLAG = 0;
1701: CFLAG = 0;
1702: NFLAG = ((sint32)outdata) < 0;
1703: ZFLAG = !outdata;
1704: PC+= 4;
1705: }
1706:
1707: void cpu_op_375a(t_ipc *ipc) /* MOVE */ {
1708: /* mask f1ff, bits 20b8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 7, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
1709: uint32 srcaddr = ipc->src;
1710: uint32 srcdata = fetchlong(srcaddr);
1711: int dstreg = (ipc->opcode >> 9) & 7;
1712: uint32 dstaddr = ADDRREG(dstreg);
1713: uint32 outdata = srcdata;
1714:
1715: storelong(dstaddr, outdata);
1716: PC+= 4;
1717: }
1718:
1719: void cpu_op_375b(t_ipc *ipc) /* MOVE */ {
1720: /* mask f1ff, bits 20b8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 7, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
1721: uint32 srcaddr = ipc->src;
1722: uint32 srcdata = fetchlong(srcaddr);
1723: int dstreg = (ipc->opcode >> 9) & 7;
1724: uint32 dstaddr = ADDRREG(dstreg);
1725: uint32 outdata = srcdata;
1726:
1727: storelong(dstaddr, outdata);
1728:
1729: VFLAG = 0;
1730: CFLAG = 0;
1731: NFLAG = ((sint32)outdata) < 0;
1732: ZFLAG = !outdata;
1733: PC+= 4;
1734: }
1735:
1736: void cpu_op_376a(t_ipc *ipc) /* MOVE */ {
1737: /* mask f1ff, bits 20f8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 7, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
1738: uint32 srcaddr = ipc->src;
1739: uint32 srcdata = fetchlong(srcaddr);
1740: int dstreg = (ipc->opcode >> 9) & 7;
1741: uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
1742: uint32 outdata = srcdata;
1743:
1744: storelong(dstaddr, outdata);
1745: PC+= 4;
1746: }
1747:
1748: void cpu_op_376b(t_ipc *ipc) /* MOVE */ {
1749: /* mask f1ff, bits 20f8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 7, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
1750: uint32 srcaddr = ipc->src;
1751: uint32 srcdata = fetchlong(srcaddr);
1752: int dstreg = (ipc->opcode >> 9) & 7;
1753: uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
1754: uint32 outdata = srcdata;
1755:
1756: storelong(dstaddr, outdata);
1757:
1758: VFLAG = 0;
1759: CFLAG = 0;
1760: NFLAG = ((sint32)outdata) < 0;
1761: ZFLAG = !outdata;
1762: PC+= 4;
1763: }
1764:
1765: void cpu_op_377a(t_ipc *ipc) /* MOVE */ {
1766: /* mask f1ff, bits 2138, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 7, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
1767: uint32 srcaddr = ipc->src;
1768: uint32 srcdata = fetchlong(srcaddr);
1769: int dstreg = (ipc->opcode >> 9) & 7;
1770: uint32 dstaddr = ADDRREG(dstreg)-=4;
1771: uint32 outdata = srcdata;
1772:
1773: storelong(dstaddr, outdata);
1774: PC+= 4;
1775: }
1776:
1777: void cpu_op_377b(t_ipc *ipc) /* MOVE */ {
1778: /* mask f1ff, bits 2138, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 7, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
1779: uint32 srcaddr = ipc->src;
1780: uint32 srcdata = fetchlong(srcaddr);
1781: int dstreg = (ipc->opcode >> 9) & 7;
1782: uint32 dstaddr = ADDRREG(dstreg)-=4;
1783: uint32 outdata = srcdata;
1784:
1785: storelong(dstaddr, outdata);
1786:
1787: VFLAG = 0;
1788: CFLAG = 0;
1789: NFLAG = ((sint32)outdata) < 0;
1790: ZFLAG = !outdata;
1791: PC+= 4;
1792: }
1793:
1794: void cpu_op_378a(t_ipc *ipc) /* MOVE */ {
1795: /* mask f1ff, bits 2178, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 7, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
1796: uint32 srcaddr = ipc->src;
1797: uint32 srcdata = fetchlong(srcaddr);
1798: int dstreg = (ipc->opcode >> 9) & 7;
1799: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
1800: uint32 outdata = srcdata;
1801:
1802: storelong(dstaddr, outdata);
1803: PC+= 6;
1804: }
1805:
1806: void cpu_op_378b(t_ipc *ipc) /* MOVE */ {
1807: /* mask f1ff, bits 2178, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 7, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
1808: uint32 srcaddr = ipc->src;
1809: uint32 srcdata = fetchlong(srcaddr);
1810: int dstreg = (ipc->opcode >> 9) & 7;
1811: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
1812: uint32 outdata = srcdata;
1813:
1814: storelong(dstaddr, outdata);
1815:
1816: VFLAG = 0;
1817: CFLAG = 0;
1818: NFLAG = ((sint32)outdata) < 0;
1819: ZFLAG = !outdata;
1820: PC+= 6;
1821: }
1822:
1823: void cpu_op_379a(t_ipc *ipc) /* MOVE */ {
1824: /* mask f1ff, bits 21b8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 7, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
1825: uint32 srcaddr = ipc->src;
1826: uint32 srcdata = fetchlong(srcaddr);
1827: int dstreg = (ipc->opcode >> 9) & 7;
1828: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
1829: uint32 outdata = srcdata;
1830:
1831: storelong(dstaddr, outdata);
1832: PC+= 6;
1833: }
1834:
1835: void cpu_op_379b(t_ipc *ipc) /* MOVE */ {
1836: /* mask f1ff, bits 21b8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 7, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
1837: uint32 srcaddr = ipc->src;
1838: uint32 srcdata = fetchlong(srcaddr);
1839: int dstreg = (ipc->opcode >> 9) & 7;
1840: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
1841: uint32 outdata = srcdata;
1842:
1843: storelong(dstaddr, outdata);
1844:
1845: VFLAG = 0;
1846: CFLAG = 0;
1847: NFLAG = ((sint32)outdata) < 0;
1848: ZFLAG = !outdata;
1849: PC+= 6;
1850: }
1851:
1852: void cpu_op_380a(t_ipc *ipc) /* MOVE */ {
1853: /* mask ffff, bits 21f8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 7, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
1854: uint32 srcaddr = ipc->src;
1855: uint32 srcdata = fetchlong(srcaddr);
1856: uint32 dstaddr = ipc->dst;
1857: uint32 outdata = srcdata;
1858:
1859: storelong(dstaddr, outdata);
1860: PC+= 6;
1861: }
1862:
1863: void cpu_op_380b(t_ipc *ipc) /* MOVE */ {
1864: /* mask ffff, bits 21f8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 7, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
1865: uint32 srcaddr = ipc->src;
1866: uint32 srcdata = fetchlong(srcaddr);
1867: uint32 dstaddr = ipc->dst;
1868: uint32 outdata = srcdata;
1869:
1870: storelong(dstaddr, outdata);
1871:
1872: VFLAG = 0;
1873: CFLAG = 0;
1874: NFLAG = ((sint32)outdata) < 0;
1875: ZFLAG = !outdata;
1876: PC+= 6;
1877: }
1878:
1879: void cpu_op_381a(t_ipc *ipc) /* MOVE */ {
1880: /* mask ffff, bits 23f8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 7, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
1881: uint32 srcaddr = ipc->src;
1882: uint32 srcdata = fetchlong(srcaddr);
1883: uint32 dstaddr = ipc->dst;
1884: uint32 outdata = srcdata;
1885:
1886: storelong(dstaddr, outdata);
1887: PC+= 8;
1888: }
1889:
1890: void cpu_op_381b(t_ipc *ipc) /* MOVE */ {
1891: /* mask ffff, bits 23f8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 7, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
1892: uint32 srcaddr = ipc->src;
1893: uint32 srcdata = fetchlong(srcaddr);
1894: uint32 dstaddr = ipc->dst;
1895: uint32 outdata = srcdata;
1896:
1897: storelong(dstaddr, outdata);
1898:
1899: VFLAG = 0;
1900: CFLAG = 0;
1901: NFLAG = ((sint32)outdata) < 0;
1902: ZFLAG = !outdata;
1903: PC+= 8;
1904: }
1905:
1906: void cpu_op_382a(t_ipc *ipc) /* MOVE */ {
1907: /* mask f1ff, bits 2039, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 8, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
1908: uint32 srcaddr = ipc->src;
1909: uint32 srcdata = fetchlong(srcaddr);
1910: int dstreg = (ipc->opcode >> 9) & 7;
1911: uint32 outdata = srcdata;
1912:
1913: DATAREG(dstreg) = outdata;
1914: PC+= 6;
1915: }
1916:
1917: void cpu_op_382b(t_ipc *ipc) /* MOVE */ {
1918: /* mask f1ff, bits 2039, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 8, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
1919: uint32 srcaddr = ipc->src;
1920: uint32 srcdata = fetchlong(srcaddr);
1921: int dstreg = (ipc->opcode >> 9) & 7;
1922: uint32 outdata = srcdata;
1923:
1924: DATAREG(dstreg) = outdata;
1925:
1926: VFLAG = 0;
1927: CFLAG = 0;
1928: NFLAG = ((sint32)outdata) < 0;
1929: ZFLAG = !outdata;
1930: PC+= 6;
1931: }
1932:
1933: void cpu_op_383a(t_ipc *ipc) /* MOVE */ {
1934: /* mask f1ff, bits 20b9, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 8, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
1935: uint32 srcaddr = ipc->src;
1936: uint32 srcdata = fetchlong(srcaddr);
1937: int dstreg = (ipc->opcode >> 9) & 7;
1938: uint32 dstaddr = ADDRREG(dstreg);
1939: uint32 outdata = srcdata;
1940:
1941: storelong(dstaddr, outdata);
1942: PC+= 6;
1943: }
1944:
1945: void cpu_op_383b(t_ipc *ipc) /* MOVE */ {
1946: /* mask f1ff, bits 20b9, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 8, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
1947: uint32 srcaddr = ipc->src;
1948: uint32 srcdata = fetchlong(srcaddr);
1949: int dstreg = (ipc->opcode >> 9) & 7;
1950: uint32 dstaddr = ADDRREG(dstreg);
1951: uint32 outdata = srcdata;
1952:
1953: storelong(dstaddr, outdata);
1954:
1955: VFLAG = 0;
1956: CFLAG = 0;
1957: NFLAG = ((sint32)outdata) < 0;
1958: ZFLAG = !outdata;
1959: PC+= 6;
1960: }
1961:
1962: void cpu_op_384a(t_ipc *ipc) /* MOVE */ {
1963: /* mask f1ff, bits 20f9, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 8, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
1964: uint32 srcaddr = ipc->src;
1965: uint32 srcdata = fetchlong(srcaddr);
1966: int dstreg = (ipc->opcode >> 9) & 7;
1967: uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
1968: uint32 outdata = srcdata;
1969:
1970: storelong(dstaddr, outdata);
1971: PC+= 6;
1972: }
1973:
1974: void cpu_op_384b(t_ipc *ipc) /* MOVE */ {
1975: /* mask f1ff, bits 20f9, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 8, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
1976: uint32 srcaddr = ipc->src;
1977: uint32 srcdata = fetchlong(srcaddr);
1978: int dstreg = (ipc->opcode >> 9) & 7;
1979: uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
1980: uint32 outdata = srcdata;
1981:
1982: storelong(dstaddr, outdata);
1983:
1984: VFLAG = 0;
1985: CFLAG = 0;
1986: NFLAG = ((sint32)outdata) < 0;
1987: ZFLAG = !outdata;
1988: PC+= 6;
1989: }
1990:
1991: void cpu_op_385a(t_ipc *ipc) /* MOVE */ {
1992: /* mask f1ff, bits 2139, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 8, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
1993: uint32 srcaddr = ipc->src;
1994: uint32 srcdata = fetchlong(srcaddr);
1995: int dstreg = (ipc->opcode >> 9) & 7;
1996: uint32 dstaddr = ADDRREG(dstreg)-=4;
1997: uint32 outdata = srcdata;
1998:
1999: storelong(dstaddr, outdata);
2000: PC+= 6;
2001: }
2002:
2003: void cpu_op_385b(t_ipc *ipc) /* MOVE */ {
2004: /* mask f1ff, bits 2139, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 8, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
2005: uint32 srcaddr = ipc->src;
2006: uint32 srcdata = fetchlong(srcaddr);
2007: int dstreg = (ipc->opcode >> 9) & 7;
2008: uint32 dstaddr = ADDRREG(dstreg)-=4;
2009: uint32 outdata = srcdata;
2010:
2011: storelong(dstaddr, outdata);
2012:
2013: VFLAG = 0;
2014: CFLAG = 0;
2015: NFLAG = ((sint32)outdata) < 0;
2016: ZFLAG = !outdata;
2017: PC+= 6;
2018: }
2019:
2020: void cpu_op_386a(t_ipc *ipc) /* MOVE */ {
2021: /* mask f1ff, bits 2179, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 8, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
2022: uint32 srcaddr = ipc->src;
2023: uint32 srcdata = fetchlong(srcaddr);
2024: int dstreg = (ipc->opcode >> 9) & 7;
2025: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
2026: uint32 outdata = srcdata;
2027:
2028: storelong(dstaddr, outdata);
2029: PC+= 8;
2030: }
2031:
2032: void cpu_op_386b(t_ipc *ipc) /* MOVE */ {
2033: /* mask f1ff, bits 2179, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 8, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
2034: uint32 srcaddr = ipc->src;
2035: uint32 srcdata = fetchlong(srcaddr);
2036: int dstreg = (ipc->opcode >> 9) & 7;
2037: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
2038: uint32 outdata = srcdata;
2039:
2040: storelong(dstaddr, outdata);
2041:
2042: VFLAG = 0;
2043: CFLAG = 0;
2044: NFLAG = ((sint32)outdata) < 0;
2045: ZFLAG = !outdata;
2046: PC+= 8;
2047: }
2048:
2049: void cpu_op_387a(t_ipc *ipc) /* MOVE */ {
2050: /* mask f1ff, bits 21b9, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 8, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
2051: uint32 srcaddr = ipc->src;
2052: uint32 srcdata = fetchlong(srcaddr);
2053: int dstreg = (ipc->opcode >> 9) & 7;
2054: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
2055: uint32 outdata = srcdata;
2056:
2057: storelong(dstaddr, outdata);
2058: PC+= 8;
2059: }
2060:
2061: void cpu_op_387b(t_ipc *ipc) /* MOVE */ {
2062: /* mask f1ff, bits 21b9, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 8, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
2063: uint32 srcaddr = ipc->src;
2064: uint32 srcdata = fetchlong(srcaddr);
2065: int dstreg = (ipc->opcode >> 9) & 7;
2066: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
2067: uint32 outdata = srcdata;
2068:
2069: storelong(dstaddr, outdata);
2070:
2071: VFLAG = 0;
2072: CFLAG = 0;
2073: NFLAG = ((sint32)outdata) < 0;
2074: ZFLAG = !outdata;
2075: PC+= 8;
2076: }
2077:
2078: void cpu_op_388a(t_ipc *ipc) /* MOVE */ {
2079: /* mask ffff, bits 21f9, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 8, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
2080: uint32 srcaddr = ipc->src;
2081: uint32 srcdata = fetchlong(srcaddr);
2082: uint32 dstaddr = ipc->dst;
2083: uint32 outdata = srcdata;
2084:
2085: storelong(dstaddr, outdata);
2086: PC+= 8;
2087: }
2088:
2089: void cpu_op_388b(t_ipc *ipc) /* MOVE */ {
2090: /* mask ffff, bits 21f9, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 8, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
2091: uint32 srcaddr = ipc->src;
2092: uint32 srcdata = fetchlong(srcaddr);
2093: uint32 dstaddr = ipc->dst;
2094: uint32 outdata = srcdata;
2095:
2096: storelong(dstaddr, outdata);
2097:
2098: VFLAG = 0;
2099: CFLAG = 0;
2100: NFLAG = ((sint32)outdata) < 0;
2101: ZFLAG = !outdata;
2102: PC+= 8;
2103: }
2104:
2105: void cpu_op_389a(t_ipc *ipc) /* MOVE */ {
2106: /* mask ffff, bits 23f9, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 8, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
2107: uint32 srcaddr = ipc->src;
2108: uint32 srcdata = fetchlong(srcaddr);
2109: uint32 dstaddr = ipc->dst;
2110: uint32 outdata = srcdata;
2111:
2112: storelong(dstaddr, outdata);
2113: PC+= 10;
2114: }
2115:
2116: void cpu_op_389b(t_ipc *ipc) /* MOVE */ {
2117: /* mask ffff, bits 23f9, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 8, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
2118: uint32 srcaddr = ipc->src;
2119: uint32 srcdata = fetchlong(srcaddr);
2120: uint32 dstaddr = ipc->dst;
2121: uint32 outdata = srcdata;
2122:
2123: storelong(dstaddr, outdata);
2124:
2125: VFLAG = 0;
2126: CFLAG = 0;
2127: NFLAG = ((sint32)outdata) < 0;
2128: ZFLAG = !outdata;
2129: PC+= 10;
2130: }
2131:
2132: void cpu_op_390a(t_ipc *ipc) /* MOVE */ {
2133: /* mask f1ff, bits 203a, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 9, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
2134: uint32 srcaddr = ipc->src;
2135: uint32 srcdata = fetchlong(srcaddr);
2136: int dstreg = (ipc->opcode >> 9) & 7;
2137: uint32 outdata = srcdata;
2138:
2139: DATAREG(dstreg) = outdata;
2140: PC+= 4;
2141: }
2142:
2143: void cpu_op_390b(t_ipc *ipc) /* MOVE */ {
2144: /* mask f1ff, bits 203a, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 9, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
2145: uint32 srcaddr = ipc->src;
2146: uint32 srcdata = fetchlong(srcaddr);
2147: int dstreg = (ipc->opcode >> 9) & 7;
2148: uint32 outdata = srcdata;
2149:
2150: DATAREG(dstreg) = outdata;
2151:
2152: VFLAG = 0;
2153: CFLAG = 0;
2154: NFLAG = ((sint32)outdata) < 0;
2155: ZFLAG = !outdata;
2156: PC+= 4;
2157: }
2158:
2159: void cpu_op_391a(t_ipc *ipc) /* MOVE */ {
2160: /* mask f1ff, bits 20ba, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 9, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
2161: uint32 srcaddr = ipc->src;
2162: uint32 srcdata = fetchlong(srcaddr);
2163: int dstreg = (ipc->opcode >> 9) & 7;
2164: uint32 dstaddr = ADDRREG(dstreg);
2165: uint32 outdata = srcdata;
2166:
2167: storelong(dstaddr, outdata);
2168: PC+= 4;
2169: }
2170:
2171: void cpu_op_391b(t_ipc *ipc) /* MOVE */ {
2172: /* mask f1ff, bits 20ba, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 9, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
2173: uint32 srcaddr = ipc->src;
2174: uint32 srcdata = fetchlong(srcaddr);
2175: int dstreg = (ipc->opcode >> 9) & 7;
2176: uint32 dstaddr = ADDRREG(dstreg);
2177: uint32 outdata = srcdata;
2178:
2179: storelong(dstaddr, outdata);
2180:
2181: VFLAG = 0;
2182: CFLAG = 0;
2183: NFLAG = ((sint32)outdata) < 0;
2184: ZFLAG = !outdata;
2185: PC+= 4;
2186: }
2187:
2188: void cpu_op_392a(t_ipc *ipc) /* MOVE */ {
2189: /* mask f1ff, bits 20fa, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 9, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
2190: uint32 srcaddr = ipc->src;
2191: uint32 srcdata = fetchlong(srcaddr);
2192: int dstreg = (ipc->opcode >> 9) & 7;
2193: uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
2194: uint32 outdata = srcdata;
2195:
2196: storelong(dstaddr, outdata);
2197: PC+= 4;
2198: }
2199:
2200: void cpu_op_392b(t_ipc *ipc) /* MOVE */ {
2201: /* mask f1ff, bits 20fa, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 9, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
2202: uint32 srcaddr = ipc->src;
2203: uint32 srcdata = fetchlong(srcaddr);
2204: int dstreg = (ipc->opcode >> 9) & 7;
2205: uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
2206: uint32 outdata = srcdata;
2207:
2208: storelong(dstaddr, outdata);
2209:
2210: VFLAG = 0;
2211: CFLAG = 0;
2212: NFLAG = ((sint32)outdata) < 0;
2213: ZFLAG = !outdata;
2214: PC+= 4;
2215: }
2216:
2217: void cpu_op_393a(t_ipc *ipc) /* MOVE */ {
2218: /* mask f1ff, bits 213a, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 9, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
2219: uint32 srcaddr = ipc->src;
2220: uint32 srcdata = fetchlong(srcaddr);
2221: int dstreg = (ipc->opcode >> 9) & 7;
2222: uint32 dstaddr = ADDRREG(dstreg)-=4;
2223: uint32 outdata = srcdata;
2224:
2225: storelong(dstaddr, outdata);
2226: PC+= 4;
2227: }
2228:
2229: void cpu_op_393b(t_ipc *ipc) /* MOVE */ {
2230: /* mask f1ff, bits 213a, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 9, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
2231: uint32 srcaddr = ipc->src;
2232: uint32 srcdata = fetchlong(srcaddr);
2233: int dstreg = (ipc->opcode >> 9) & 7;
2234: uint32 dstaddr = ADDRREG(dstreg)-=4;
2235: uint32 outdata = srcdata;
2236:
2237: storelong(dstaddr, outdata);
2238:
2239: VFLAG = 0;
2240: CFLAG = 0;
2241: NFLAG = ((sint32)outdata) < 0;
2242: ZFLAG = !outdata;
2243: PC+= 4;
2244: }
2245:
2246: void cpu_op_394a(t_ipc *ipc) /* MOVE */ {
2247: /* mask f1ff, bits 217a, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 9, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
2248: uint32 srcaddr = ipc->src;
2249: uint32 srcdata = fetchlong(srcaddr);
2250: int dstreg = (ipc->opcode >> 9) & 7;
2251: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
2252: uint32 outdata = srcdata;
2253:
2254: storelong(dstaddr, outdata);
2255: PC+= 6;
2256: }
2257:
2258: void cpu_op_394b(t_ipc *ipc) /* MOVE */ {
2259: /* mask f1ff, bits 217a, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 9, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
2260: uint32 srcaddr = ipc->src;
2261: uint32 srcdata = fetchlong(srcaddr);
2262: int dstreg = (ipc->opcode >> 9) & 7;
2263: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
2264: uint32 outdata = srcdata;
2265:
2266: storelong(dstaddr, outdata);
2267:
2268: VFLAG = 0;
2269: CFLAG = 0;
2270: NFLAG = ((sint32)outdata) < 0;
2271: ZFLAG = !outdata;
2272: PC+= 6;
2273: }
2274:
2275: void cpu_op_395a(t_ipc *ipc) /* MOVE */ {
2276: /* mask f1ff, bits 21ba, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 9, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
2277: uint32 srcaddr = ipc->src;
2278: uint32 srcdata = fetchlong(srcaddr);
2279: int dstreg = (ipc->opcode >> 9) & 7;
2280: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
2281: uint32 outdata = srcdata;
2282:
2283: storelong(dstaddr, outdata);
2284: PC+= 6;
2285: }
2286:
2287: void cpu_op_395b(t_ipc *ipc) /* MOVE */ {
2288: /* mask f1ff, bits 21ba, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 9, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
2289: uint32 srcaddr = ipc->src;
2290: uint32 srcdata = fetchlong(srcaddr);
2291: int dstreg = (ipc->opcode >> 9) & 7;
2292: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
2293: uint32 outdata = srcdata;
2294:
2295: storelong(dstaddr, outdata);
2296:
2297: VFLAG = 0;
2298: CFLAG = 0;
2299: NFLAG = ((sint32)outdata) < 0;
2300: ZFLAG = !outdata;
2301: PC+= 6;
2302: }
2303:
2304: void cpu_op_396a(t_ipc *ipc) /* MOVE */ {
2305: /* mask ffff, bits 21fa, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 9, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
2306: uint32 srcaddr = ipc->src;
2307: uint32 srcdata = fetchlong(srcaddr);
2308: uint32 dstaddr = ipc->dst;
2309: uint32 outdata = srcdata;
2310:
2311: storelong(dstaddr, outdata);
2312: PC+= 6;
2313: }
2314:
2315: void cpu_op_396b(t_ipc *ipc) /* MOVE */ {
2316: /* mask ffff, bits 21fa, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 9, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
2317: uint32 srcaddr = ipc->src;
2318: uint32 srcdata = fetchlong(srcaddr);
2319: uint32 dstaddr = ipc->dst;
2320: uint32 outdata = srcdata;
2321:
2322: storelong(dstaddr, outdata);
2323:
2324: VFLAG = 0;
2325: CFLAG = 0;
2326: NFLAG = ((sint32)outdata) < 0;
2327: ZFLAG = !outdata;
2328: PC+= 6;
2329: }
2330:
2331: void cpu_op_397a(t_ipc *ipc) /* MOVE */ {
2332: /* mask ffff, bits 23fa, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 9, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
2333: uint32 srcaddr = ipc->src;
2334: uint32 srcdata = fetchlong(srcaddr);
2335: uint32 dstaddr = ipc->dst;
2336: uint32 outdata = srcdata;
2337:
2338: storelong(dstaddr, outdata);
2339: PC+= 8;
2340: }
2341:
2342: void cpu_op_397b(t_ipc *ipc) /* MOVE */ {
2343: /* mask ffff, bits 23fa, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 9, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
2344: uint32 srcaddr = ipc->src;
2345: uint32 srcdata = fetchlong(srcaddr);
2346: uint32 dstaddr = ipc->dst;
2347: uint32 outdata = srcdata;
2348:
2349: storelong(dstaddr, outdata);
2350:
2351: VFLAG = 0;
2352: CFLAG = 0;
2353: NFLAG = ((sint32)outdata) < 0;
2354: ZFLAG = !outdata;
2355: PC+= 8;
2356: }
2357:
2358: void cpu_op_398a(t_ipc *ipc) /* MOVE */ {
2359: /* mask f1ff, bits 203b, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 10, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
2360: uint32 srcaddr = idxval_src(ipc);
2361: uint32 srcdata = fetchlong(srcaddr);
2362: int dstreg = (ipc->opcode >> 9) & 7;
2363: uint32 outdata = srcdata;
2364:
2365: DATAREG(dstreg) = outdata;
2366: PC+= 4;
2367: }
2368:
2369: void cpu_op_398b(t_ipc *ipc) /* MOVE */ {
2370: /* mask f1ff, bits 203b, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 10, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
2371: uint32 srcaddr = idxval_src(ipc);
2372: uint32 srcdata = fetchlong(srcaddr);
2373: int dstreg = (ipc->opcode >> 9) & 7;
2374: uint32 outdata = srcdata;
2375:
2376: DATAREG(dstreg) = outdata;
2377:
2378: VFLAG = 0;
2379: CFLAG = 0;
2380: NFLAG = ((sint32)outdata) < 0;
2381: ZFLAG = !outdata;
2382: PC+= 4;
2383: }
2384:
2385: void cpu_op_399a(t_ipc *ipc) /* MOVE */ {
2386: /* mask f1ff, bits 20bb, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 10, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
2387: uint32 srcaddr = idxval_src(ipc);
2388: uint32 srcdata = fetchlong(srcaddr);
2389: int dstreg = (ipc->opcode >> 9) & 7;
2390: uint32 dstaddr = ADDRREG(dstreg);
2391: uint32 outdata = srcdata;
2392:
2393: storelong(dstaddr, outdata);
2394: PC+= 4;
2395: }
2396:
2397: void cpu_op_399b(t_ipc *ipc) /* MOVE */ {
2398: /* mask f1ff, bits 20bb, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 10, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
2399: uint32 srcaddr = idxval_src(ipc);
2400: uint32 srcdata = fetchlong(srcaddr);
2401: int dstreg = (ipc->opcode >> 9) & 7;
2402: uint32 dstaddr = ADDRREG(dstreg);
2403: uint32 outdata = srcdata;
2404:
2405: storelong(dstaddr, outdata);
2406:
2407: VFLAG = 0;
2408: CFLAG = 0;
2409: NFLAG = ((sint32)outdata) < 0;
2410: ZFLAG = !outdata;
2411: PC+= 4;
2412: }
2413:
2414: void cpu_op_400a(t_ipc *ipc) /* MOVE */ {
2415: /* mask f1ff, bits 20fb, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 10, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
2416: uint32 srcaddr = idxval_src(ipc);
2417: uint32 srcdata = fetchlong(srcaddr);
2418: int dstreg = (ipc->opcode >> 9) & 7;
2419: uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
2420: uint32 outdata = srcdata;
2421:
2422: storelong(dstaddr, outdata);
2423: PC+= 4;
2424: }
2425:
2426: void cpu_op_400b(t_ipc *ipc) /* MOVE */ {
2427: /* mask f1ff, bits 20fb, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 10, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
2428: uint32 srcaddr = idxval_src(ipc);
2429: uint32 srcdata = fetchlong(srcaddr);
2430: int dstreg = (ipc->opcode >> 9) & 7;
2431: uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
2432: uint32 outdata = srcdata;
2433:
2434: storelong(dstaddr, outdata);
2435:
2436: VFLAG = 0;
2437: CFLAG = 0;
2438: NFLAG = ((sint32)outdata) < 0;
2439: ZFLAG = !outdata;
2440: PC+= 4;
2441: }
2442:
2443: void cpu_op_401a(t_ipc *ipc) /* MOVE */ {
2444: /* mask f1ff, bits 213b, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 10, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
2445: uint32 srcaddr = idxval_src(ipc);
2446: uint32 srcdata = fetchlong(srcaddr);
2447: int dstreg = (ipc->opcode >> 9) & 7;
2448: uint32 dstaddr = ADDRREG(dstreg)-=4;
2449: uint32 outdata = srcdata;
2450:
2451: storelong(dstaddr, outdata);
2452: PC+= 4;
2453: }
2454:
2455: void cpu_op_401b(t_ipc *ipc) /* MOVE */ {
2456: /* mask f1ff, bits 213b, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 10, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
2457: uint32 srcaddr = idxval_src(ipc);
2458: uint32 srcdata = fetchlong(srcaddr);
2459: int dstreg = (ipc->opcode >> 9) & 7;
2460: uint32 dstaddr = ADDRREG(dstreg)-=4;
2461: uint32 outdata = srcdata;
2462:
2463: storelong(dstaddr, outdata);
2464:
2465: VFLAG = 0;
2466: CFLAG = 0;
2467: NFLAG = ((sint32)outdata) < 0;
2468: ZFLAG = !outdata;
2469: PC+= 4;
2470: }
2471:
2472: void cpu_op_402a(t_ipc *ipc) /* MOVE */ {
2473: /* mask f1ff, bits 217b, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 10, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
2474: uint32 srcaddr = idxval_src(ipc);
2475: uint32 srcdata = fetchlong(srcaddr);
2476: int dstreg = (ipc->opcode >> 9) & 7;
2477: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
2478: uint32 outdata = srcdata;
2479:
2480: storelong(dstaddr, outdata);
2481: PC+= 6;
2482: }
2483:
2484: void cpu_op_402b(t_ipc *ipc) /* MOVE */ {
2485: /* mask f1ff, bits 217b, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 10, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
2486: uint32 srcaddr = idxval_src(ipc);
2487: uint32 srcdata = fetchlong(srcaddr);
2488: int dstreg = (ipc->opcode >> 9) & 7;
2489: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
2490: uint32 outdata = srcdata;
2491:
2492: storelong(dstaddr, outdata);
2493:
2494: VFLAG = 0;
2495: CFLAG = 0;
2496: NFLAG = ((sint32)outdata) < 0;
2497: ZFLAG = !outdata;
2498: PC+= 6;
2499: }
2500:
2501: void cpu_op_403a(t_ipc *ipc) /* MOVE */ {
2502: /* mask f1ff, bits 21bb, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 10, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
2503: uint32 srcaddr = idxval_src(ipc);
2504: uint32 srcdata = fetchlong(srcaddr);
2505: int dstreg = (ipc->opcode >> 9) & 7;
2506: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
2507: uint32 outdata = srcdata;
2508:
2509: storelong(dstaddr, outdata);
2510: PC+= 6;
2511: }
2512:
2513: void cpu_op_403b(t_ipc *ipc) /* MOVE */ {
2514: /* mask f1ff, bits 21bb, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 10, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
2515: uint32 srcaddr = idxval_src(ipc);
2516: uint32 srcdata = fetchlong(srcaddr);
2517: int dstreg = (ipc->opcode >> 9) & 7;
2518: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
2519: uint32 outdata = srcdata;
2520:
2521: storelong(dstaddr, outdata);
2522:
2523: VFLAG = 0;
2524: CFLAG = 0;
2525: NFLAG = ((sint32)outdata) < 0;
2526: ZFLAG = !outdata;
2527: PC+= 6;
2528: }
2529:
2530: void cpu_op_404a(t_ipc *ipc) /* MOVE */ {
2531: /* mask ffff, bits 21fb, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 10, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
2532: uint32 srcaddr = idxval_src(ipc);
2533: uint32 srcdata = fetchlong(srcaddr);
2534: uint32 dstaddr = ipc->dst;
2535: uint32 outdata = srcdata;
2536:
2537: storelong(dstaddr, outdata);
2538: PC+= 6;
2539: }
2540:
2541: void cpu_op_404b(t_ipc *ipc) /* MOVE */ {
2542: /* mask ffff, bits 21fb, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 10, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
2543: uint32 srcaddr = idxval_src(ipc);
2544: uint32 srcdata = fetchlong(srcaddr);
2545: uint32 dstaddr = ipc->dst;
2546: uint32 outdata = srcdata;
2547:
2548: storelong(dstaddr, outdata);
2549:
2550: VFLAG = 0;
2551: CFLAG = 0;
2552: NFLAG = ((sint32)outdata) < 0;
2553: ZFLAG = !outdata;
2554: PC+= 6;
2555: }
2556:
2557: void cpu_op_405a(t_ipc *ipc) /* MOVE */ {
2558: /* mask ffff, bits 23fb, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 10, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
2559: uint32 srcaddr = idxval_src(ipc);
2560: uint32 srcdata = fetchlong(srcaddr);
2561: uint32 dstaddr = ipc->dst;
2562: uint32 outdata = srcdata;
2563:
2564: storelong(dstaddr, outdata);
2565: PC+= 8;
2566: }
2567:
2568: void cpu_op_405b(t_ipc *ipc) /* MOVE */ {
2569: /* mask ffff, bits 23fb, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 10, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
2570: uint32 srcaddr = idxval_src(ipc);
2571: uint32 srcdata = fetchlong(srcaddr);
2572: uint32 dstaddr = ipc->dst;
2573: uint32 outdata = srcdata;
2574:
2575: storelong(dstaddr, outdata);
2576:
2577: VFLAG = 0;
2578: CFLAG = 0;
2579: NFLAG = ((sint32)outdata) < 0;
2580: ZFLAG = !outdata;
2581: PC+= 8;
2582: }
2583:
2584: void cpu_op_406a(t_ipc *ipc) /* MOVE */ {
2585: /* mask f1ff, bits 203c, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 13, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
2586: uint32 srcdata = ipc->src;
2587: int dstreg = (ipc->opcode >> 9) & 7;
2588: uint32 outdata = srcdata;
2589:
2590: DATAREG(dstreg) = outdata;
2591: PC+= 6;
2592: }
2593:
2594: void cpu_op_406b(t_ipc *ipc) /* MOVE */ {
2595: /* mask f1ff, bits 203c, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 13, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
2596: uint32 srcdata = ipc->src;
2597: int dstreg = (ipc->opcode >> 9) & 7;
2598: uint32 outdata = srcdata;
2599:
2600: DATAREG(dstreg) = outdata;
2601:
2602: VFLAG = 0;
2603: CFLAG = 0;
2604: NFLAG = ((sint32)outdata) < 0;
2605: ZFLAG = !outdata;
2606: PC+= 6;
2607: }
2608:
2609: void cpu_op_407a(t_ipc *ipc) /* MOVE */ {
2610: /* mask f1ff, bits 20bc, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 13, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
2611: uint32 srcdata = ipc->src;
2612: int dstreg = (ipc->opcode >> 9) & 7;
2613: uint32 dstaddr = ADDRREG(dstreg);
2614: uint32 outdata = srcdata;
2615:
2616: storelong(dstaddr, outdata);
2617: PC+= 6;
2618: }
2619:
2620: void cpu_op_407b(t_ipc *ipc) /* MOVE */ {
2621: /* mask f1ff, bits 20bc, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 13, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
2622: uint32 srcdata = ipc->src;
2623: int dstreg = (ipc->opcode >> 9) & 7;
2624: uint32 dstaddr = ADDRREG(dstreg);
2625: uint32 outdata = srcdata;
2626:
2627: storelong(dstaddr, outdata);
2628:
2629: VFLAG = 0;
2630: CFLAG = 0;
2631: NFLAG = ((sint32)outdata) < 0;
2632: ZFLAG = !outdata;
2633: PC+= 6;
2634: }
2635:
2636: void cpu_op_408a(t_ipc *ipc) /* MOVE */ {
2637: /* mask f1ff, bits 20fc, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 13, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
2638: uint32 srcdata = ipc->src;
2639: int dstreg = (ipc->opcode >> 9) & 7;
2640: uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
2641: uint32 outdata = srcdata;
2642:
2643: storelong(dstaddr, outdata);
2644: PC+= 6;
2645: }
2646:
2647: void cpu_op_408b(t_ipc *ipc) /* MOVE */ {
2648: /* mask f1ff, bits 20fc, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 13, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
2649: uint32 srcdata = ipc->src;
2650: int dstreg = (ipc->opcode >> 9) & 7;
2651: uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
2652: uint32 outdata = srcdata;
2653:
2654: storelong(dstaddr, outdata);
2655:
2656: VFLAG = 0;
2657: CFLAG = 0;
2658: NFLAG = ((sint32)outdata) < 0;
2659: ZFLAG = !outdata;
2660: PC+= 6;
2661: }
2662:
2663: void cpu_op_409a(t_ipc *ipc) /* MOVE */ {
2664: /* mask f1ff, bits 213c, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 13, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
2665: uint32 srcdata = ipc->src;
2666: int dstreg = (ipc->opcode >> 9) & 7;
2667: uint32 dstaddr = ADDRREG(dstreg)-=4;
2668: uint32 outdata = srcdata;
2669:
2670: storelong(dstaddr, outdata);
2671: PC+= 6;
2672: }
2673:
2674: void cpu_op_409b(t_ipc *ipc) /* MOVE */ {
2675: /* mask f1ff, bits 213c, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 13, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
2676: uint32 srcdata = ipc->src;
2677: int dstreg = (ipc->opcode >> 9) & 7;
2678: uint32 dstaddr = ADDRREG(dstreg)-=4;
2679: uint32 outdata = srcdata;
2680:
2681: storelong(dstaddr, outdata);
2682:
2683: VFLAG = 0;
2684: CFLAG = 0;
2685: NFLAG = ((sint32)outdata) < 0;
2686: ZFLAG = !outdata;
2687: PC+= 6;
2688: }
2689:
2690: void cpu_op_410a(t_ipc *ipc) /* MOVE */ {
2691: /* mask f1ff, bits 217c, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 13, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
2692: uint32 srcdata = ipc->src;
2693: int dstreg = (ipc->opcode >> 9) & 7;
2694: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
2695: uint32 outdata = srcdata;
2696:
2697: storelong(dstaddr, outdata);
2698: PC+= 8;
2699: }
2700:
2701: void cpu_op_410b(t_ipc *ipc) /* MOVE */ {
2702: /* mask f1ff, bits 217c, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 13, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
2703: uint32 srcdata = ipc->src;
2704: int dstreg = (ipc->opcode >> 9) & 7;
2705: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
2706: uint32 outdata = srcdata;
2707:
2708: storelong(dstaddr, outdata);
2709:
2710: VFLAG = 0;
2711: CFLAG = 0;
2712: NFLAG = ((sint32)outdata) < 0;
2713: ZFLAG = !outdata;
2714: PC+= 8;
2715: }
2716:
2717: void cpu_op_411a(t_ipc *ipc) /* MOVE */ {
2718: /* mask f1ff, bits 21bc, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 13, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
2719: uint32 srcdata = ipc->src;
2720: int dstreg = (ipc->opcode >> 9) & 7;
2721: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
2722: uint32 outdata = srcdata;
2723:
2724: storelong(dstaddr, outdata);
2725: PC+= 8;
2726: }
2727:
2728: void cpu_op_411b(t_ipc *ipc) /* MOVE */ {
2729: /* mask f1ff, bits 21bc, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 13, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
2730: uint32 srcdata = ipc->src;
2731: int dstreg = (ipc->opcode >> 9) & 7;
2732: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
2733: uint32 outdata = srcdata;
2734:
2735: storelong(dstaddr, outdata);
2736:
2737: VFLAG = 0;
2738: CFLAG = 0;
2739: NFLAG = ((sint32)outdata) < 0;
2740: ZFLAG = !outdata;
2741: PC+= 8;
2742: }
2743:
2744: void cpu_op_412a(t_ipc *ipc) /* MOVE */ {
2745: /* mask ffff, bits 21fc, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 13, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
2746: uint32 srcdata = ipc->src;
2747: uint32 dstaddr = ipc->dst;
2748: uint32 outdata = srcdata;
2749:
2750: storelong(dstaddr, outdata);
2751: PC+= 8;
2752: }
2753:
2754: void cpu_op_412b(t_ipc *ipc) /* MOVE */ {
2755: /* mask ffff, bits 21fc, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 13, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
2756: uint32 srcdata = ipc->src;
2757: uint32 dstaddr = ipc->dst;
2758: uint32 outdata = srcdata;
2759:
2760: storelong(dstaddr, outdata);
2761:
2762: VFLAG = 0;
2763: CFLAG = 0;
2764: NFLAG = ((sint32)outdata) < 0;
2765: ZFLAG = !outdata;
2766: PC+= 8;
2767: }
2768:
2769: void cpu_op_413a(t_ipc *ipc) /* MOVE */ {
2770: /* mask ffff, bits 23fc, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 13, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
2771: uint32 srcdata = ipc->src;
2772: uint32 dstaddr = ipc->dst;
2773: uint32 outdata = srcdata;
2774:
2775: storelong(dstaddr, outdata);
2776: PC+= 10;
2777: }
2778:
2779: void cpu_op_413b(t_ipc *ipc) /* MOVE */ {
2780: /* mask ffff, bits 23fc, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 3, stype 13, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
2781: uint32 srcdata = ipc->src;
2782: uint32 dstaddr = ipc->dst;
2783: uint32 outdata = srcdata;
2784:
2785: storelong(dstaddr, outdata);
2786:
2787: VFLAG = 0;
2788: CFLAG = 0;
2789: NFLAG = ((sint32)outdata) < 0;
2790: ZFLAG = !outdata;
2791: PC+= 10;
2792: }
2793:
2794: void cpu_op_414a(t_ipc *ipc) /* MOVE */ {
2795: /* mask f1f8, bits 2040, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set 0, size 3, stype 0, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
2796: int srcreg = (ipc->opcode >> 0) & 7;
2797: uint32 srcdata = DATAREG(srcreg);
2798: int dstreg = (ipc->opcode >> 9) & 7;
2799: uint32 outdata = srcdata;
2800:
2801: ADDRREG(dstreg) = outdata;
2802: PC+= 2;
2803: }
2804:
2805: void cpu_op_415a(t_ipc *ipc) /* MOVE */ {
2806: /* mask f1f8, bits 2048, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set 0, size 3, stype 1, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
2807: int srcreg = (ipc->opcode >> 0) & 7;
2808: uint32 srcdata = ADDRREG(srcreg);
2809: int dstreg = (ipc->opcode >> 9) & 7;
2810: uint32 outdata = srcdata;
2811:
2812: ADDRREG(dstreg) = outdata;
2813: PC+= 2;
2814: }
2815:
2816: void cpu_op_416a(t_ipc *ipc) /* MOVE */ {
2817: /* mask f1f8, bits 2050, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set 0, size 3, stype 2, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
2818: int srcreg = (ipc->opcode >> 0) & 7;
2819: uint32 srcaddr = ADDRREG(srcreg);
2820: uint32 srcdata = fetchlong(srcaddr);
2821: int dstreg = (ipc->opcode >> 9) & 7;
2822: uint32 outdata = srcdata;
2823:
2824: ADDRREG(dstreg) = outdata;
2825: PC+= 2;
2826: }
2827:
2828: void cpu_op_417a(t_ipc *ipc) /* MOVE */ {
2829: /* mask f1f8, bits 2058, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set 0, size 3, stype 3, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
2830: int srcreg = (ipc->opcode >> 0) & 7;
2831: uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
2832: uint32 srcdata = fetchlong(srcaddr);
2833: int dstreg = (ipc->opcode >> 9) & 7;
2834: uint32 outdata = srcdata;
2835:
2836: ADDRREG(dstreg) = outdata;
2837: PC+= 2;
2838: }
2839:
2840: void cpu_op_418a(t_ipc *ipc) /* MOVE */ {
2841: /* mask f1f8, bits 2060, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set 0, size 3, stype 4, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
2842: int srcreg = (ipc->opcode >> 0) & 7;
2843: uint32 srcaddr = ADDRREG(srcreg)-=4;
2844: uint32 srcdata = fetchlong(srcaddr);
2845: int dstreg = (ipc->opcode >> 9) & 7;
2846: uint32 outdata = srcdata;
2847:
2848: ADDRREG(dstreg) = outdata;
2849: PC+= 2;
2850: }
2851:
2852: void cpu_op_419a(t_ipc *ipc) /* MOVE */ {
2853: /* mask f1f8, bits 2068, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set 0, size 3, stype 5, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
2854: int srcreg = (ipc->opcode >> 0) & 7;
2855: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
2856: uint32 srcdata = fetchlong(srcaddr);
2857: int dstreg = (ipc->opcode >> 9) & 7;
2858: uint32 outdata = srcdata;
2859:
2860: ADDRREG(dstreg) = outdata;
2861: PC+= 4;
2862: }
2863:
2864: void cpu_op_420a(t_ipc *ipc) /* MOVE */ {
2865: /* mask f1f8, bits 2070, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set 0, size 3, stype 6, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
2866: int srcreg = (ipc->opcode >> 0) & 7;
2867: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
2868: uint32 srcdata = fetchlong(srcaddr);
2869: int dstreg = (ipc->opcode >> 9) & 7;
2870: uint32 outdata = srcdata;
2871:
2872: ADDRREG(dstreg) = outdata;
2873: PC+= 4;
2874: }
2875:
2876: void cpu_op_421a(t_ipc *ipc) /* MOVE */ {
2877: /* mask f1ff, bits 2078, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set 0, size 3, stype 7, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
2878: uint32 srcaddr = ipc->src;
2879: uint32 srcdata = fetchlong(srcaddr);
2880: int dstreg = (ipc->opcode >> 9) & 7;
2881: uint32 outdata = srcdata;
2882:
2883: ADDRREG(dstreg) = outdata;
2884: PC+= 4;
2885: }
2886:
2887: void cpu_op_422a(t_ipc *ipc) /* MOVE */ {
2888: /* mask f1ff, bits 2079, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set 0, size 3, stype 8, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
2889: uint32 srcaddr = ipc->src;
2890: uint32 srcdata = fetchlong(srcaddr);
2891: int dstreg = (ipc->opcode >> 9) & 7;
2892: uint32 outdata = srcdata;
2893:
2894: ADDRREG(dstreg) = outdata;
2895: PC+= 6;
2896: }
2897:
2898: void cpu_op_423a(t_ipc *ipc) /* MOVE */ {
2899: /* mask f1ff, bits 207a, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set 0, size 3, stype 9, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
2900: uint32 srcaddr = ipc->src;
2901: uint32 srcdata = fetchlong(srcaddr);
2902: int dstreg = (ipc->opcode >> 9) & 7;
2903: uint32 outdata = srcdata;
2904:
2905: ADDRREG(dstreg) = outdata;
2906: PC+= 4;
2907: }
2908:
2909: void cpu_op_424a(t_ipc *ipc) /* MOVE */ {
2910: /* mask f1ff, bits 207b, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set 0, size 3, stype 10, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
2911: uint32 srcaddr = idxval_src(ipc);
2912: uint32 srcdata = fetchlong(srcaddr);
2913: int dstreg = (ipc->opcode >> 9) & 7;
2914: uint32 outdata = srcdata;
2915:
2916: ADDRREG(dstreg) = outdata;
2917: PC+= 4;
2918: }
2919:
2920: void cpu_op_425a(t_ipc *ipc) /* MOVE */ {
2921: /* mask f1ff, bits 207c, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set 0, size 3, stype 13, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
2922: uint32 srcdata = ipc->src;
2923: int dstreg = (ipc->opcode >> 9) & 7;
2924: uint32 outdata = srcdata;
2925:
2926: ADDRREG(dstreg) = outdata;
2927: PC+= 6;
2928: }
2929:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.