xref: /inferno-os/libinterp/dec.c (revision 37da2899f40661e3e9631e497da8dc59b971cbd0)
1 /* Machine generated by decgen.c */
2 
3 #include "lib9.h"
4 #include "isa.h"
5 #include "interp.h"
6 
7 #define DIND(reg, xxx) (uchar*)((*(ulong*)(R.reg+R.PC->xxx.i.f))+R.PC->xxx.i.s)
8 static void
D00(void)9 D00(void)
10 {
11 	R.s = R.MP+R.PC->s.ind;
12 	R.d = R.MP+R.PC->d.ind;
13 	R.m = R.d;
14 }
15 static void
D01(void)16 D01(void)
17 {
18 	R.s = R.MP+R.PC->s.ind;
19 	R.d = R.FP+R.PC->d.ind;
20 	R.m = R.d;
21 }
22 static void
D02(void)23 D02(void)
24 {
25 	R.s = R.MP+R.PC->s.ind;
26 	R.d = (uchar*)&R.PC->d.imm;
27 	R.m = R.d;
28 }
29 static void
D03(void)30 D03(void)
31 {
32 	R.s = R.MP+R.PC->s.ind;
33 }
34 static void
D04(void)35 D04(void)
36 {
37 	R.s = R.MP+R.PC->s.ind;
38 	R.d = DIND(MP, d);
39 	R.m = R.d;
40 }
41 static void
D05(void)42 D05(void)
43 {
44 	R.s = R.MP+R.PC->s.ind;
45 	R.d = DIND(FP, d);
46 	R.m = R.d;
47 }
48 static void
D06(void)49 D06(void)
50 {
51 	R.s = R.MP+R.PC->s.ind;
52 }
53 static void
D07(void)54 D07(void)
55 {
56 	R.s = R.MP+R.PC->s.ind;
57 }
58 static void
D08(void)59 D08(void)
60 {
61 	R.s = R.FP+R.PC->s.ind;
62 	R.d = R.MP+R.PC->d.ind;
63 	R.m = R.d;
64 }
65 static void
D09(void)66 D09(void)
67 {
68 	R.s = R.FP+R.PC->s.ind;
69 	R.d = R.FP+R.PC->d.ind;
70 	R.m = R.d;
71 }
72 static void
D0A(void)73 D0A(void)
74 {
75 	R.s = R.FP+R.PC->s.ind;
76 	R.d = (uchar*)&R.PC->d.imm;
77 	R.m = R.d;
78 }
79 static void
D0B(void)80 D0B(void)
81 {
82 	R.s = R.FP+R.PC->s.ind;
83 }
84 static void
D0C(void)85 D0C(void)
86 {
87 	R.s = R.FP+R.PC->s.ind;
88 	R.d = DIND(MP, d);
89 	R.m = R.d;
90 }
91 static void
D0D(void)92 D0D(void)
93 {
94 	R.s = R.FP+R.PC->s.ind;
95 	R.d = DIND(FP, d);
96 	R.m = R.d;
97 }
98 static void
D0E(void)99 D0E(void)
100 {
101 	R.s = R.FP+R.PC->s.ind;
102 }
103 static void
D0F(void)104 D0F(void)
105 {
106 	R.s = R.FP+R.PC->s.ind;
107 }
108 static void
D10(void)109 D10(void)
110 {
111 	R.s = (uchar*)&R.PC->s.imm;
112 	R.d = R.MP+R.PC->d.ind;
113 	R.m = R.d;
114 }
115 static void
D11(void)116 D11(void)
117 {
118 	R.s = (uchar*)&R.PC->s.imm;
119 	R.d = R.FP+R.PC->d.ind;
120 	R.m = R.d;
121 }
122 static void
D12(void)123 D12(void)
124 {
125 	R.s = (uchar*)&R.PC->s.imm;
126 	R.d = (uchar*)&R.PC->d.imm;
127 	R.m = R.d;
128 }
129 static void
D13(void)130 D13(void)
131 {
132 	R.s = (uchar*)&R.PC->s.imm;
133 }
134 static void
D14(void)135 D14(void)
136 {
137 	R.s = (uchar*)&R.PC->s.imm;
138 	R.d = DIND(MP, d);
139 	R.m = R.d;
140 }
141 static void
D15(void)142 D15(void)
143 {
144 	R.s = (uchar*)&R.PC->s.imm;
145 	R.d = DIND(FP, d);
146 	R.m = R.d;
147 }
148 static void
D16(void)149 D16(void)
150 {
151 	R.s = (uchar*)&R.PC->s.imm;
152 }
153 static void
D17(void)154 D17(void)
155 {
156 	R.s = (uchar*)&R.PC->s.imm;
157 }
158 static void
D18(void)159 D18(void)
160 {
161 	R.d = R.MP+R.PC->d.ind;
162 	R.m = R.d;
163 }
164 static void
D19(void)165 D19(void)
166 {
167 	R.d = R.FP+R.PC->d.ind;
168 	R.m = R.d;
169 }
170 static void
D1A(void)171 D1A(void)
172 {
173 	R.d = (uchar*)&R.PC->d.imm;
174 	R.m = R.d;
175 }
176 static void
D1B(void)177 D1B(void)
178 {
179 }
180 static void
D1C(void)181 D1C(void)
182 {
183 	R.d = DIND(MP, d);
184 	R.m = R.d;
185 }
186 static void
D1D(void)187 D1D(void)
188 {
189 	R.d = DIND(FP, d);
190 	R.m = R.d;
191 }
192 static void
D1E(void)193 D1E(void)
194 {
195 }
196 static void
D1F(void)197 D1F(void)
198 {
199 }
200 static void
D20(void)201 D20(void)
202 {
203 	R.s = DIND(MP, s);
204 	R.d = R.MP+R.PC->d.ind;
205 	R.m = R.d;
206 }
207 static void
D21(void)208 D21(void)
209 {
210 	R.s = DIND(MP, s);
211 	R.d = R.FP+R.PC->d.ind;
212 	R.m = R.d;
213 }
214 static void
D22(void)215 D22(void)
216 {
217 	R.s = DIND(MP, s);
218 	R.d = (uchar*)&R.PC->d.imm;
219 	R.m = R.d;
220 }
221 static void
D23(void)222 D23(void)
223 {
224 	R.s = DIND(MP, s);
225 }
226 static void
D24(void)227 D24(void)
228 {
229 	R.s = DIND(MP, s);
230 	R.d = DIND(MP, d);
231 	R.m = R.d;
232 }
233 static void
D25(void)234 D25(void)
235 {
236 	R.s = DIND(MP, s);
237 	R.d = DIND(FP, d);
238 	R.m = R.d;
239 }
240 static void
D26(void)241 D26(void)
242 {
243 	R.s = DIND(MP, s);
244 }
245 static void
D27(void)246 D27(void)
247 {
248 	R.s = DIND(MP, s);
249 }
250 static void
D28(void)251 D28(void)
252 {
253 	R.s = DIND(FP, s);
254 	R.d = R.MP+R.PC->d.ind;
255 	R.m = R.d;
256 }
257 static void
D29(void)258 D29(void)
259 {
260 	R.s = DIND(FP, s);
261 	R.d = R.FP+R.PC->d.ind;
262 	R.m = R.d;
263 }
264 static void
D2A(void)265 D2A(void)
266 {
267 	R.s = DIND(FP, s);
268 	R.d = (uchar*)&R.PC->d.imm;
269 	R.m = R.d;
270 }
271 static void
D2B(void)272 D2B(void)
273 {
274 	R.s = DIND(FP, s);
275 }
276 static void
D2C(void)277 D2C(void)
278 {
279 	R.s = DIND(FP, s);
280 	R.d = DIND(MP, d);
281 	R.m = R.d;
282 }
283 static void
D2D(void)284 D2D(void)
285 {
286 	R.s = DIND(FP, s);
287 	R.d = DIND(FP, d);
288 	R.m = R.d;
289 }
290 static void
D2E(void)291 D2E(void)
292 {
293 	R.s = DIND(FP, s);
294 }
295 static void
D2F(void)296 D2F(void)
297 {
298 	R.s = DIND(FP, s);
299 }
300 static void
D30(void)301 D30(void)
302 {
303 	R.d = R.MP+R.PC->d.ind;
304 	R.m = R.d;
305 }
306 static void
D31(void)307 D31(void)
308 {
309 	R.d = R.FP+R.PC->d.ind;
310 	R.m = R.d;
311 }
312 static void
D32(void)313 D32(void)
314 {
315 	R.d = (uchar*)&R.PC->d.imm;
316 	R.m = R.d;
317 }
318 static void
D33(void)319 D33(void)
320 {
321 }
322 static void
D34(void)323 D34(void)
324 {
325 	R.d = DIND(MP, d);
326 	R.m = R.d;
327 }
328 static void
D35(void)329 D35(void)
330 {
331 	R.d = DIND(FP, d);
332 	R.m = R.d;
333 }
334 static void
D36(void)335 D36(void)
336 {
337 }
338 static void
D37(void)339 D37(void)
340 {
341 }
342 static void
D38(void)343 D38(void)
344 {
345 	R.d = R.MP+R.PC->d.ind;
346 	R.m = R.d;
347 }
348 static void
D39(void)349 D39(void)
350 {
351 	R.d = R.FP+R.PC->d.ind;
352 	R.m = R.d;
353 }
354 static void
D3A(void)355 D3A(void)
356 {
357 	R.d = (uchar*)&R.PC->d.imm;
358 	R.m = R.d;
359 }
360 static void
D3B(void)361 D3B(void)
362 {
363 }
364 static void
D3C(void)365 D3C(void)
366 {
367 	R.d = DIND(MP, d);
368 	R.m = R.d;
369 }
370 static void
D3D(void)371 D3D(void)
372 {
373 	R.d = DIND(FP, d);
374 	R.m = R.d;
375 }
376 static void
D3E(void)377 D3E(void)
378 {
379 }
380 static void
D3F(void)381 D3F(void)
382 {
383 }
384 static void
D40(void)385 D40(void)
386 {
387 	R.s = R.MP+R.PC->s.ind;
388 	R.d = R.MP+R.PC->d.ind;
389 	R.t = (short)R.PC->reg;
390 	R.m = &R.t;
391 }
392 static void
D41(void)393 D41(void)
394 {
395 	R.s = R.MP+R.PC->s.ind;
396 	R.d = R.FP+R.PC->d.ind;
397 	R.t = (short)R.PC->reg;
398 	R.m = &R.t;
399 }
400 static void
D42(void)401 D42(void)
402 {
403 	R.s = R.MP+R.PC->s.ind;
404 	R.d = (uchar*)&R.PC->d.imm;
405 	R.t = (short)R.PC->reg;
406 	R.m = &R.t;
407 }
408 static void
D43(void)409 D43(void)
410 {
411 	R.s = R.MP+R.PC->s.ind;
412 }
413 static void
D44(void)414 D44(void)
415 {
416 	R.s = R.MP+R.PC->s.ind;
417 	R.d = DIND(MP, d);
418 	R.t = (short)R.PC->reg;
419 	R.m = &R.t;
420 }
421 static void
D45(void)422 D45(void)
423 {
424 	R.s = R.MP+R.PC->s.ind;
425 	R.d = DIND(FP, d);
426 	R.t = (short)R.PC->reg;
427 	R.m = &R.t;
428 }
429 static void
D46(void)430 D46(void)
431 {
432 	R.s = R.MP+R.PC->s.ind;
433 }
434 static void
D47(void)435 D47(void)
436 {
437 	R.s = R.MP+R.PC->s.ind;
438 }
439 static void
D48(void)440 D48(void)
441 {
442 	R.s = R.FP+R.PC->s.ind;
443 	R.d = R.MP+R.PC->d.ind;
444 	R.t = (short)R.PC->reg;
445 	R.m = &R.t;
446 }
447 static void
D49(void)448 D49(void)
449 {
450 	R.s = R.FP+R.PC->s.ind;
451 	R.d = R.FP+R.PC->d.ind;
452 	R.t = (short)R.PC->reg;
453 	R.m = &R.t;
454 }
455 static void
D4A(void)456 D4A(void)
457 {
458 	R.s = R.FP+R.PC->s.ind;
459 	R.d = (uchar*)&R.PC->d.imm;
460 	R.t = (short)R.PC->reg;
461 	R.m = &R.t;
462 }
463 static void
D4B(void)464 D4B(void)
465 {
466 	R.s = R.FP+R.PC->s.ind;
467 }
468 static void
D4C(void)469 D4C(void)
470 {
471 	R.s = R.FP+R.PC->s.ind;
472 	R.d = DIND(MP, d);
473 	R.t = (short)R.PC->reg;
474 	R.m = &R.t;
475 }
476 static void
D4D(void)477 D4D(void)
478 {
479 	R.s = R.FP+R.PC->s.ind;
480 	R.d = DIND(FP, d);
481 	R.t = (short)R.PC->reg;
482 	R.m = &R.t;
483 }
484 static void
D4E(void)485 D4E(void)
486 {
487 	R.s = R.FP+R.PC->s.ind;
488 }
489 static void
D4F(void)490 D4F(void)
491 {
492 	R.s = R.FP+R.PC->s.ind;
493 }
494 static void
D50(void)495 D50(void)
496 {
497 	R.s = (uchar*)&R.PC->s.imm;
498 	R.d = R.MP+R.PC->d.ind;
499 	R.t = (short)R.PC->reg;
500 	R.m = &R.t;
501 }
502 static void
D51(void)503 D51(void)
504 {
505 	R.s = (uchar*)&R.PC->s.imm;
506 	R.d = R.FP+R.PC->d.ind;
507 	R.t = (short)R.PC->reg;
508 	R.m = &R.t;
509 }
510 static void
D52(void)511 D52(void)
512 {
513 	R.s = (uchar*)&R.PC->s.imm;
514 	R.d = (uchar*)&R.PC->d.imm;
515 	R.t = (short)R.PC->reg;
516 	R.m = &R.t;
517 }
518 static void
D53(void)519 D53(void)
520 {
521 	R.s = (uchar*)&R.PC->s.imm;
522 }
523 static void
D54(void)524 D54(void)
525 {
526 	R.s = (uchar*)&R.PC->s.imm;
527 	R.d = DIND(MP, d);
528 	R.t = (short)R.PC->reg;
529 	R.m = &R.t;
530 }
531 static void
D55(void)532 D55(void)
533 {
534 	R.s = (uchar*)&R.PC->s.imm;
535 	R.d = DIND(FP, d);
536 	R.t = (short)R.PC->reg;
537 	R.m = &R.t;
538 }
539 static void
D56(void)540 D56(void)
541 {
542 	R.s = (uchar*)&R.PC->s.imm;
543 }
544 static void
D57(void)545 D57(void)
546 {
547 	R.s = (uchar*)&R.PC->s.imm;
548 }
549 static void
D58(void)550 D58(void)
551 {
552 	R.d = R.MP+R.PC->d.ind;
553 	R.t = (short)R.PC->reg;
554 	R.m = &R.t;
555 }
556 static void
D59(void)557 D59(void)
558 {
559 	R.d = R.FP+R.PC->d.ind;
560 	R.t = (short)R.PC->reg;
561 	R.m = &R.t;
562 }
563 static void
D5A(void)564 D5A(void)
565 {
566 	R.d = (uchar*)&R.PC->d.imm;
567 	R.t = (short)R.PC->reg;
568 	R.m = &R.t;
569 }
570 static void
D5B(void)571 D5B(void)
572 {
573 }
574 static void
D5C(void)575 D5C(void)
576 {
577 	R.d = DIND(MP, d);
578 	R.t = (short)R.PC->reg;
579 	R.m = &R.t;
580 }
581 static void
D5D(void)582 D5D(void)
583 {
584 	R.d = DIND(FP, d);
585 	R.t = (short)R.PC->reg;
586 	R.m = &R.t;
587 }
588 static void
D5E(void)589 D5E(void)
590 {
591 }
592 static void
D5F(void)593 D5F(void)
594 {
595 }
596 static void
D60(void)597 D60(void)
598 {
599 	R.s = DIND(MP, s);
600 	R.d = R.MP+R.PC->d.ind;
601 	R.t = (short)R.PC->reg;
602 	R.m = &R.t;
603 }
604 static void
D61(void)605 D61(void)
606 {
607 	R.s = DIND(MP, s);
608 	R.d = R.FP+R.PC->d.ind;
609 	R.t = (short)R.PC->reg;
610 	R.m = &R.t;
611 }
612 static void
D62(void)613 D62(void)
614 {
615 	R.s = DIND(MP, s);
616 	R.d = (uchar*)&R.PC->d.imm;
617 	R.t = (short)R.PC->reg;
618 	R.m = &R.t;
619 }
620 static void
D63(void)621 D63(void)
622 {
623 	R.s = DIND(MP, s);
624 }
625 static void
D64(void)626 D64(void)
627 {
628 	R.s = DIND(MP, s);
629 	R.d = DIND(MP, d);
630 	R.t = (short)R.PC->reg;
631 	R.m = &R.t;
632 }
633 static void
D65(void)634 D65(void)
635 {
636 	R.s = DIND(MP, s);
637 	R.d = DIND(FP, d);
638 	R.t = (short)R.PC->reg;
639 	R.m = &R.t;
640 }
641 static void
D66(void)642 D66(void)
643 {
644 	R.s = DIND(MP, s);
645 }
646 static void
D67(void)647 D67(void)
648 {
649 	R.s = DIND(MP, s);
650 }
651 static void
D68(void)652 D68(void)
653 {
654 	R.s = DIND(FP, s);
655 	R.d = R.MP+R.PC->d.ind;
656 	R.t = (short)R.PC->reg;
657 	R.m = &R.t;
658 }
659 static void
D69(void)660 D69(void)
661 {
662 	R.s = DIND(FP, s);
663 	R.d = R.FP+R.PC->d.ind;
664 	R.t = (short)R.PC->reg;
665 	R.m = &R.t;
666 }
667 static void
D6A(void)668 D6A(void)
669 {
670 	R.s = DIND(FP, s);
671 	R.d = (uchar*)&R.PC->d.imm;
672 	R.t = (short)R.PC->reg;
673 	R.m = &R.t;
674 }
675 static void
D6B(void)676 D6B(void)
677 {
678 	R.s = DIND(FP, s);
679 }
680 static void
D6C(void)681 D6C(void)
682 {
683 	R.s = DIND(FP, s);
684 	R.d = DIND(MP, d);
685 	R.t = (short)R.PC->reg;
686 	R.m = &R.t;
687 }
688 static void
D6D(void)689 D6D(void)
690 {
691 	R.s = DIND(FP, s);
692 	R.d = DIND(FP, d);
693 	R.t = (short)R.PC->reg;
694 	R.m = &R.t;
695 }
696 static void
D6E(void)697 D6E(void)
698 {
699 	R.s = DIND(FP, s);
700 }
701 static void
D6F(void)702 D6F(void)
703 {
704 	R.s = DIND(FP, s);
705 }
706 static void
D70(void)707 D70(void)
708 {
709 	R.d = R.MP+R.PC->d.ind;
710 	R.t = (short)R.PC->reg;
711 	R.m = &R.t;
712 }
713 static void
D71(void)714 D71(void)
715 {
716 	R.d = R.FP+R.PC->d.ind;
717 	R.t = (short)R.PC->reg;
718 	R.m = &R.t;
719 }
720 static void
D72(void)721 D72(void)
722 {
723 	R.d = (uchar*)&R.PC->d.imm;
724 	R.t = (short)R.PC->reg;
725 	R.m = &R.t;
726 }
727 static void
D73(void)728 D73(void)
729 {
730 }
731 static void
D74(void)732 D74(void)
733 {
734 	R.d = DIND(MP, d);
735 	R.t = (short)R.PC->reg;
736 	R.m = &R.t;
737 }
738 static void
D75(void)739 D75(void)
740 {
741 	R.d = DIND(FP, d);
742 	R.t = (short)R.PC->reg;
743 	R.m = &R.t;
744 }
745 static void
D76(void)746 D76(void)
747 {
748 }
749 static void
D77(void)750 D77(void)
751 {
752 }
753 static void
D78(void)754 D78(void)
755 {
756 	R.d = R.MP+R.PC->d.ind;
757 	R.t = (short)R.PC->reg;
758 	R.m = &R.t;
759 }
760 static void
D79(void)761 D79(void)
762 {
763 	R.d = R.FP+R.PC->d.ind;
764 	R.t = (short)R.PC->reg;
765 	R.m = &R.t;
766 }
767 static void
D7A(void)768 D7A(void)
769 {
770 	R.d = (uchar*)&R.PC->d.imm;
771 	R.t = (short)R.PC->reg;
772 	R.m = &R.t;
773 }
774 static void
D7B(void)775 D7B(void)
776 {
777 }
778 static void
D7C(void)779 D7C(void)
780 {
781 	R.d = DIND(MP, d);
782 	R.t = (short)R.PC->reg;
783 	R.m = &R.t;
784 }
785 static void
D7D(void)786 D7D(void)
787 {
788 	R.d = DIND(FP, d);
789 	R.t = (short)R.PC->reg;
790 	R.m = &R.t;
791 }
792 static void
D7E(void)793 D7E(void)
794 {
795 }
796 static void
D7F(void)797 D7F(void)
798 {
799 }
800 static void
D80(void)801 D80(void)
802 {
803 	R.s = R.MP+R.PC->s.ind;
804 	R.d = R.MP+R.PC->d.ind;
805 	R.m = R.FP+R.PC->reg;
806 }
807 static void
D81(void)808 D81(void)
809 {
810 	R.s = R.MP+R.PC->s.ind;
811 	R.d = R.FP+R.PC->d.ind;
812 	R.m = R.FP+R.PC->reg;
813 }
814 static void
D82(void)815 D82(void)
816 {
817 	R.s = R.MP+R.PC->s.ind;
818 	R.d = (uchar*)&R.PC->d.imm;
819 	R.m = R.FP+R.PC->reg;
820 }
821 static void
D83(void)822 D83(void)
823 {
824 	R.s = R.MP+R.PC->s.ind;
825 }
826 static void
D84(void)827 D84(void)
828 {
829 	R.s = R.MP+R.PC->s.ind;
830 	R.d = DIND(MP, d);
831 	R.m = R.FP+R.PC->reg;
832 }
833 static void
D85(void)834 D85(void)
835 {
836 	R.s = R.MP+R.PC->s.ind;
837 	R.d = DIND(FP, d);
838 	R.m = R.FP+R.PC->reg;
839 }
840 static void
D86(void)841 D86(void)
842 {
843 	R.s = R.MP+R.PC->s.ind;
844 }
845 static void
D87(void)846 D87(void)
847 {
848 	R.s = R.MP+R.PC->s.ind;
849 }
850 static void
D88(void)851 D88(void)
852 {
853 	R.s = R.FP+R.PC->s.ind;
854 	R.d = R.MP+R.PC->d.ind;
855 	R.m = R.FP+R.PC->reg;
856 }
857 static void
D89(void)858 D89(void)
859 {
860 	R.s = R.FP+R.PC->s.ind;
861 	R.d = R.FP+R.PC->d.ind;
862 	R.m = R.FP+R.PC->reg;
863 }
864 static void
D8A(void)865 D8A(void)
866 {
867 	R.s = R.FP+R.PC->s.ind;
868 	R.d = (uchar*)&R.PC->d.imm;
869 	R.m = R.FP+R.PC->reg;
870 }
871 static void
D8B(void)872 D8B(void)
873 {
874 	R.s = R.FP+R.PC->s.ind;
875 }
876 static void
D8C(void)877 D8C(void)
878 {
879 	R.s = R.FP+R.PC->s.ind;
880 	R.d = DIND(MP, d);
881 	R.m = R.FP+R.PC->reg;
882 }
883 static void
D8D(void)884 D8D(void)
885 {
886 	R.s = R.FP+R.PC->s.ind;
887 	R.d = DIND(FP, d);
888 	R.m = R.FP+R.PC->reg;
889 }
890 static void
D8E(void)891 D8E(void)
892 {
893 	R.s = R.FP+R.PC->s.ind;
894 }
895 static void
D8F(void)896 D8F(void)
897 {
898 	R.s = R.FP+R.PC->s.ind;
899 }
900 static void
D90(void)901 D90(void)
902 {
903 	R.s = (uchar*)&R.PC->s.imm;
904 	R.d = R.MP+R.PC->d.ind;
905 	R.m = R.FP+R.PC->reg;
906 }
907 static void
D91(void)908 D91(void)
909 {
910 	R.s = (uchar*)&R.PC->s.imm;
911 	R.d = R.FP+R.PC->d.ind;
912 	R.m = R.FP+R.PC->reg;
913 }
914 static void
D92(void)915 D92(void)
916 {
917 	R.s = (uchar*)&R.PC->s.imm;
918 	R.d = (uchar*)&R.PC->d.imm;
919 	R.m = R.FP+R.PC->reg;
920 }
921 static void
D93(void)922 D93(void)
923 {
924 	R.s = (uchar*)&R.PC->s.imm;
925 }
926 static void
D94(void)927 D94(void)
928 {
929 	R.s = (uchar*)&R.PC->s.imm;
930 	R.d = DIND(MP, d);
931 	R.m = R.FP+R.PC->reg;
932 }
933 static void
D95(void)934 D95(void)
935 {
936 	R.s = (uchar*)&R.PC->s.imm;
937 	R.d = DIND(FP, d);
938 	R.m = R.FP+R.PC->reg;
939 }
940 static void
D96(void)941 D96(void)
942 {
943 	R.s = (uchar*)&R.PC->s.imm;
944 }
945 static void
D97(void)946 D97(void)
947 {
948 	R.s = (uchar*)&R.PC->s.imm;
949 }
950 static void
D98(void)951 D98(void)
952 {
953 	R.d = R.MP+R.PC->d.ind;
954 	R.m = R.FP+R.PC->reg;
955 }
956 static void
D99(void)957 D99(void)
958 {
959 	R.d = R.FP+R.PC->d.ind;
960 	R.m = R.FP+R.PC->reg;
961 }
962 static void
D9A(void)963 D9A(void)
964 {
965 	R.d = (uchar*)&R.PC->d.imm;
966 	R.m = R.FP+R.PC->reg;
967 }
968 static void
D9B(void)969 D9B(void)
970 {
971 }
972 static void
D9C(void)973 D9C(void)
974 {
975 	R.d = DIND(MP, d);
976 	R.m = R.FP+R.PC->reg;
977 }
978 static void
D9D(void)979 D9D(void)
980 {
981 	R.d = DIND(FP, d);
982 	R.m = R.FP+R.PC->reg;
983 }
984 static void
D9E(void)985 D9E(void)
986 {
987 }
988 static void
D9F(void)989 D9F(void)
990 {
991 }
992 static void
DA0(void)993 DA0(void)
994 {
995 	R.s = DIND(MP, s);
996 	R.d = R.MP+R.PC->d.ind;
997 	R.m = R.FP+R.PC->reg;
998 }
999 static void
DA1(void)1000 DA1(void)
1001 {
1002 	R.s = DIND(MP, s);
1003 	R.d = R.FP+R.PC->d.ind;
1004 	R.m = R.FP+R.PC->reg;
1005 }
1006 static void
DA2(void)1007 DA2(void)
1008 {
1009 	R.s = DIND(MP, s);
1010 	R.d = (uchar*)&R.PC->d.imm;
1011 	R.m = R.FP+R.PC->reg;
1012 }
1013 static void
DA3(void)1014 DA3(void)
1015 {
1016 	R.s = DIND(MP, s);
1017 }
1018 static void
DA4(void)1019 DA4(void)
1020 {
1021 	R.s = DIND(MP, s);
1022 	R.d = DIND(MP, d);
1023 	R.m = R.FP+R.PC->reg;
1024 }
1025 static void
DA5(void)1026 DA5(void)
1027 {
1028 	R.s = DIND(MP, s);
1029 	R.d = DIND(FP, d);
1030 	R.m = R.FP+R.PC->reg;
1031 }
1032 static void
DA6(void)1033 DA6(void)
1034 {
1035 	R.s = DIND(MP, s);
1036 }
1037 static void
DA7(void)1038 DA7(void)
1039 {
1040 	R.s = DIND(MP, s);
1041 }
1042 static void
DA8(void)1043 DA8(void)
1044 {
1045 	R.s = DIND(FP, s);
1046 	R.d = R.MP+R.PC->d.ind;
1047 	R.m = R.FP+R.PC->reg;
1048 }
1049 static void
DA9(void)1050 DA9(void)
1051 {
1052 	R.s = DIND(FP, s);
1053 	R.d = R.FP+R.PC->d.ind;
1054 	R.m = R.FP+R.PC->reg;
1055 }
1056 static void
DAA(void)1057 DAA(void)
1058 {
1059 	R.s = DIND(FP, s);
1060 	R.d = (uchar*)&R.PC->d.imm;
1061 	R.m = R.FP+R.PC->reg;
1062 }
1063 static void
DAB(void)1064 DAB(void)
1065 {
1066 	R.s = DIND(FP, s);
1067 }
1068 static void
DAC(void)1069 DAC(void)
1070 {
1071 	R.s = DIND(FP, s);
1072 	R.d = DIND(MP, d);
1073 	R.m = R.FP+R.PC->reg;
1074 }
1075 static void
DAD(void)1076 DAD(void)
1077 {
1078 	R.s = DIND(FP, s);
1079 	R.d = DIND(FP, d);
1080 	R.m = R.FP+R.PC->reg;
1081 }
1082 static void
DAE(void)1083 DAE(void)
1084 {
1085 	R.s = DIND(FP, s);
1086 }
1087 static void
DAF(void)1088 DAF(void)
1089 {
1090 	R.s = DIND(FP, s);
1091 }
1092 static void
DB0(void)1093 DB0(void)
1094 {
1095 	R.d = R.MP+R.PC->d.ind;
1096 	R.m = R.FP+R.PC->reg;
1097 }
1098 static void
DB1(void)1099 DB1(void)
1100 {
1101 	R.d = R.FP+R.PC->d.ind;
1102 	R.m = R.FP+R.PC->reg;
1103 }
1104 static void
DB2(void)1105 DB2(void)
1106 {
1107 	R.d = (uchar*)&R.PC->d.imm;
1108 	R.m = R.FP+R.PC->reg;
1109 }
1110 static void
DB3(void)1111 DB3(void)
1112 {
1113 }
1114 static void
DB4(void)1115 DB4(void)
1116 {
1117 	R.d = DIND(MP, d);
1118 	R.m = R.FP+R.PC->reg;
1119 }
1120 static void
DB5(void)1121 DB5(void)
1122 {
1123 	R.d = DIND(FP, d);
1124 	R.m = R.FP+R.PC->reg;
1125 }
1126 static void
DB6(void)1127 DB6(void)
1128 {
1129 }
1130 static void
DB7(void)1131 DB7(void)
1132 {
1133 }
1134 static void
DB8(void)1135 DB8(void)
1136 {
1137 	R.d = R.MP+R.PC->d.ind;
1138 	R.m = R.FP+R.PC->reg;
1139 }
1140 static void
DB9(void)1141 DB9(void)
1142 {
1143 	R.d = R.FP+R.PC->d.ind;
1144 	R.m = R.FP+R.PC->reg;
1145 }
1146 static void
DBA(void)1147 DBA(void)
1148 {
1149 	R.d = (uchar*)&R.PC->d.imm;
1150 	R.m = R.FP+R.PC->reg;
1151 }
1152 static void
DBB(void)1153 DBB(void)
1154 {
1155 }
1156 static void
DBC(void)1157 DBC(void)
1158 {
1159 	R.d = DIND(MP, d);
1160 	R.m = R.FP+R.PC->reg;
1161 }
1162 static void
DBD(void)1163 DBD(void)
1164 {
1165 	R.d = DIND(FP, d);
1166 	R.m = R.FP+R.PC->reg;
1167 }
1168 static void
DBE(void)1169 DBE(void)
1170 {
1171 }
1172 static void
DBF(void)1173 DBF(void)
1174 {
1175 }
1176 static void
DC0(void)1177 DC0(void)
1178 {
1179 	R.s = R.MP+R.PC->s.ind;
1180 	R.d = R.MP+R.PC->d.ind;
1181 	R.m = R.MP+R.PC->reg;
1182 }
1183 static void
DC1(void)1184 DC1(void)
1185 {
1186 	R.s = R.MP+R.PC->s.ind;
1187 	R.d = R.FP+R.PC->d.ind;
1188 	R.m = R.MP+R.PC->reg;
1189 }
1190 static void
DC2(void)1191 DC2(void)
1192 {
1193 	R.s = R.MP+R.PC->s.ind;
1194 	R.d = (uchar*)&R.PC->d.imm;
1195 	R.m = R.MP+R.PC->reg;
1196 }
1197 static void
DC3(void)1198 DC3(void)
1199 {
1200 	R.s = R.MP+R.PC->s.ind;
1201 }
1202 static void
DC4(void)1203 DC4(void)
1204 {
1205 	R.s = R.MP+R.PC->s.ind;
1206 	R.d = DIND(MP, d);
1207 	R.m = R.MP+R.PC->reg;
1208 }
1209 static void
DC5(void)1210 DC5(void)
1211 {
1212 	R.s = R.MP+R.PC->s.ind;
1213 	R.d = DIND(FP, d);
1214 	R.m = R.MP+R.PC->reg;
1215 }
1216 static void
DC6(void)1217 DC6(void)
1218 {
1219 	R.s = R.MP+R.PC->s.ind;
1220 }
1221 static void
DC7(void)1222 DC7(void)
1223 {
1224 	R.s = R.MP+R.PC->s.ind;
1225 }
1226 static void
DC8(void)1227 DC8(void)
1228 {
1229 	R.s = R.FP+R.PC->s.ind;
1230 	R.d = R.MP+R.PC->d.ind;
1231 	R.m = R.MP+R.PC->reg;
1232 }
1233 static void
DC9(void)1234 DC9(void)
1235 {
1236 	R.s = R.FP+R.PC->s.ind;
1237 	R.d = R.FP+R.PC->d.ind;
1238 	R.m = R.MP+R.PC->reg;
1239 }
1240 static void
DCA(void)1241 DCA(void)
1242 {
1243 	R.s = R.FP+R.PC->s.ind;
1244 	R.d = (uchar*)&R.PC->d.imm;
1245 	R.m = R.MP+R.PC->reg;
1246 }
1247 static void
DCB(void)1248 DCB(void)
1249 {
1250 	R.s = R.FP+R.PC->s.ind;
1251 }
1252 static void
DCC(void)1253 DCC(void)
1254 {
1255 	R.s = R.FP+R.PC->s.ind;
1256 	R.d = DIND(MP, d);
1257 	R.m = R.MP+R.PC->reg;
1258 }
1259 static void
DCD(void)1260 DCD(void)
1261 {
1262 	R.s = R.FP+R.PC->s.ind;
1263 	R.d = DIND(FP, d);
1264 	R.m = R.MP+R.PC->reg;
1265 }
1266 static void
DCE(void)1267 DCE(void)
1268 {
1269 	R.s = R.FP+R.PC->s.ind;
1270 }
1271 static void
DCF(void)1272 DCF(void)
1273 {
1274 	R.s = R.FP+R.PC->s.ind;
1275 }
1276 static void
DD0(void)1277 DD0(void)
1278 {
1279 	R.s = (uchar*)&R.PC->s.imm;
1280 	R.d = R.MP+R.PC->d.ind;
1281 	R.m = R.MP+R.PC->reg;
1282 }
1283 static void
DD1(void)1284 DD1(void)
1285 {
1286 	R.s = (uchar*)&R.PC->s.imm;
1287 	R.d = R.FP+R.PC->d.ind;
1288 	R.m = R.MP+R.PC->reg;
1289 }
1290 static void
DD2(void)1291 DD2(void)
1292 {
1293 	R.s = (uchar*)&R.PC->s.imm;
1294 	R.d = (uchar*)&R.PC->d.imm;
1295 	R.m = R.MP+R.PC->reg;
1296 }
1297 static void
DD3(void)1298 DD3(void)
1299 {
1300 	R.s = (uchar*)&R.PC->s.imm;
1301 }
1302 static void
DD4(void)1303 DD4(void)
1304 {
1305 	R.s = (uchar*)&R.PC->s.imm;
1306 	R.d = DIND(MP, d);
1307 	R.m = R.MP+R.PC->reg;
1308 }
1309 static void
DD5(void)1310 DD5(void)
1311 {
1312 	R.s = (uchar*)&R.PC->s.imm;
1313 	R.d = DIND(FP, d);
1314 	R.m = R.MP+R.PC->reg;
1315 }
1316 static void
DD6(void)1317 DD6(void)
1318 {
1319 	R.s = (uchar*)&R.PC->s.imm;
1320 }
1321 static void
DD7(void)1322 DD7(void)
1323 {
1324 	R.s = (uchar*)&R.PC->s.imm;
1325 }
1326 static void
DD8(void)1327 DD8(void)
1328 {
1329 	R.d = R.MP+R.PC->d.ind;
1330 	R.m = R.MP+R.PC->reg;
1331 }
1332 static void
DD9(void)1333 DD9(void)
1334 {
1335 	R.d = R.FP+R.PC->d.ind;
1336 	R.m = R.MP+R.PC->reg;
1337 }
1338 static void
DDA(void)1339 DDA(void)
1340 {
1341 	R.d = (uchar*)&R.PC->d.imm;
1342 	R.m = R.MP+R.PC->reg;
1343 }
1344 static void
DDB(void)1345 DDB(void)
1346 {
1347 }
1348 static void
DDC(void)1349 DDC(void)
1350 {
1351 	R.d = DIND(MP, d);
1352 	R.m = R.MP+R.PC->reg;
1353 }
1354 static void
DDD(void)1355 DDD(void)
1356 {
1357 	R.d = DIND(FP, d);
1358 	R.m = R.MP+R.PC->reg;
1359 }
1360 static void
DDE(void)1361 DDE(void)
1362 {
1363 }
1364 static void
DDF(void)1365 DDF(void)
1366 {
1367 }
1368 static void
DE0(void)1369 DE0(void)
1370 {
1371 	R.s = DIND(MP, s);
1372 	R.d = R.MP+R.PC->d.ind;
1373 	R.m = R.MP+R.PC->reg;
1374 }
1375 static void
DE1(void)1376 DE1(void)
1377 {
1378 	R.s = DIND(MP, s);
1379 	R.d = R.FP+R.PC->d.ind;
1380 	R.m = R.MP+R.PC->reg;
1381 }
1382 static void
DE2(void)1383 DE2(void)
1384 {
1385 	R.s = DIND(MP, s);
1386 	R.d = (uchar*)&R.PC->d.imm;
1387 	R.m = R.MP+R.PC->reg;
1388 }
1389 static void
DE3(void)1390 DE3(void)
1391 {
1392 	R.s = DIND(MP, s);
1393 }
1394 static void
DE4(void)1395 DE4(void)
1396 {
1397 	R.s = DIND(MP, s);
1398 	R.d = DIND(MP, d);
1399 	R.m = R.MP+R.PC->reg;
1400 }
1401 static void
DE5(void)1402 DE5(void)
1403 {
1404 	R.s = DIND(MP, s);
1405 	R.d = DIND(FP, d);
1406 	R.m = R.MP+R.PC->reg;
1407 }
1408 static void
DE6(void)1409 DE6(void)
1410 {
1411 	R.s = DIND(MP, s);
1412 }
1413 static void
DE7(void)1414 DE7(void)
1415 {
1416 	R.s = DIND(MP, s);
1417 }
1418 static void
DE8(void)1419 DE8(void)
1420 {
1421 	R.s = DIND(FP, s);
1422 	R.d = R.MP+R.PC->d.ind;
1423 	R.m = R.MP+R.PC->reg;
1424 }
1425 static void
DE9(void)1426 DE9(void)
1427 {
1428 	R.s = DIND(FP, s);
1429 	R.d = R.FP+R.PC->d.ind;
1430 	R.m = R.MP+R.PC->reg;
1431 }
1432 static void
DEA(void)1433 DEA(void)
1434 {
1435 	R.s = DIND(FP, s);
1436 	R.d = (uchar*)&R.PC->d.imm;
1437 	R.m = R.MP+R.PC->reg;
1438 }
1439 static void
DEB(void)1440 DEB(void)
1441 {
1442 	R.s = DIND(FP, s);
1443 }
1444 static void
DEC(void)1445 DEC(void)
1446 {
1447 	R.s = DIND(FP, s);
1448 	R.d = DIND(MP, d);
1449 	R.m = R.MP+R.PC->reg;
1450 }
1451 static void
DED(void)1452 DED(void)
1453 {
1454 	R.s = DIND(FP, s);
1455 	R.d = DIND(FP, d);
1456 	R.m = R.MP+R.PC->reg;
1457 }
1458 static void
DEE(void)1459 DEE(void)
1460 {
1461 	R.s = DIND(FP, s);
1462 }
1463 static void
DEF(void)1464 DEF(void)
1465 {
1466 	R.s = DIND(FP, s);
1467 }
1468 static void
DF0(void)1469 DF0(void)
1470 {
1471 	R.d = R.MP+R.PC->d.ind;
1472 	R.m = R.MP+R.PC->reg;
1473 }
1474 static void
DF1(void)1475 DF1(void)
1476 {
1477 	R.d = R.FP+R.PC->d.ind;
1478 	R.m = R.MP+R.PC->reg;
1479 }
1480 static void
DF2(void)1481 DF2(void)
1482 {
1483 	R.d = (uchar*)&R.PC->d.imm;
1484 	R.m = R.MP+R.PC->reg;
1485 }
1486 static void
DF3(void)1487 DF3(void)
1488 {
1489 }
1490 static void
DF4(void)1491 DF4(void)
1492 {
1493 	R.d = DIND(MP, d);
1494 	R.m = R.MP+R.PC->reg;
1495 }
1496 static void
DF5(void)1497 DF5(void)
1498 {
1499 	R.d = DIND(FP, d);
1500 	R.m = R.MP+R.PC->reg;
1501 }
1502 static void
DF6(void)1503 DF6(void)
1504 {
1505 }
1506 static void
DF7(void)1507 DF7(void)
1508 {
1509 }
1510 static void
DF8(void)1511 DF8(void)
1512 {
1513 	R.d = R.MP+R.PC->d.ind;
1514 	R.m = R.MP+R.PC->reg;
1515 }
1516 static void
DF9(void)1517 DF9(void)
1518 {
1519 	R.d = R.FP+R.PC->d.ind;
1520 	R.m = R.MP+R.PC->reg;
1521 }
1522 static void
DFA(void)1523 DFA(void)
1524 {
1525 	R.d = (uchar*)&R.PC->d.imm;
1526 	R.m = R.MP+R.PC->reg;
1527 }
1528 static void
DFB(void)1529 DFB(void)
1530 {
1531 }
1532 static void
DFC(void)1533 DFC(void)
1534 {
1535 	R.d = DIND(MP, d);
1536 	R.m = R.MP+R.PC->reg;
1537 }
1538 static void
DFD(void)1539 DFD(void)
1540 {
1541 	R.d = DIND(FP, d);
1542 	R.m = R.MP+R.PC->reg;
1543 }
1544 static void
DFE(void)1545 DFE(void)
1546 {
1547 }
1548 static void
DFF(void)1549 DFF(void)
1550 {
1551 }
1552 
1553 void	(*dec[])(void) =
1554 {
1555 	D00,
1556 	D01,
1557 	D02,
1558 	D03,
1559 	D04,
1560 	D05,
1561 	D06,
1562 	D07,
1563 	D08,
1564 	D09,
1565 	D0A,
1566 	D0B,
1567 	D0C,
1568 	D0D,
1569 	D0E,
1570 	D0F,
1571 	D10,
1572 	D11,
1573 	D12,
1574 	D13,
1575 	D14,
1576 	D15,
1577 	D16,
1578 	D17,
1579 	D18,
1580 	D19,
1581 	D1A,
1582 	D1B,
1583 	D1C,
1584 	D1D,
1585 	D1E,
1586 	D1F,
1587 	D20,
1588 	D21,
1589 	D22,
1590 	D23,
1591 	D24,
1592 	D25,
1593 	D26,
1594 	D27,
1595 	D28,
1596 	D29,
1597 	D2A,
1598 	D2B,
1599 	D2C,
1600 	D2D,
1601 	D2E,
1602 	D2F,
1603 	D30,
1604 	D31,
1605 	D32,
1606 	D33,
1607 	D34,
1608 	D35,
1609 	D36,
1610 	D37,
1611 	D38,
1612 	D39,
1613 	D3A,
1614 	D3B,
1615 	D3C,
1616 	D3D,
1617 	D3E,
1618 	D3F,
1619 	D40,
1620 	D41,
1621 	D42,
1622 	D43,
1623 	D44,
1624 	D45,
1625 	D46,
1626 	D47,
1627 	D48,
1628 	D49,
1629 	D4A,
1630 	D4B,
1631 	D4C,
1632 	D4D,
1633 	D4E,
1634 	D4F,
1635 	D50,
1636 	D51,
1637 	D52,
1638 	D53,
1639 	D54,
1640 	D55,
1641 	D56,
1642 	D57,
1643 	D58,
1644 	D59,
1645 	D5A,
1646 	D5B,
1647 	D5C,
1648 	D5D,
1649 	D5E,
1650 	D5F,
1651 	D60,
1652 	D61,
1653 	D62,
1654 	D63,
1655 	D64,
1656 	D65,
1657 	D66,
1658 	D67,
1659 	D68,
1660 	D69,
1661 	D6A,
1662 	D6B,
1663 	D6C,
1664 	D6D,
1665 	D6E,
1666 	D6F,
1667 	D70,
1668 	D71,
1669 	D72,
1670 	D73,
1671 	D74,
1672 	D75,
1673 	D76,
1674 	D77,
1675 	D78,
1676 	D79,
1677 	D7A,
1678 	D7B,
1679 	D7C,
1680 	D7D,
1681 	D7E,
1682 	D7F,
1683 	D80,
1684 	D81,
1685 	D82,
1686 	D83,
1687 	D84,
1688 	D85,
1689 	D86,
1690 	D87,
1691 	D88,
1692 	D89,
1693 	D8A,
1694 	D8B,
1695 	D8C,
1696 	D8D,
1697 	D8E,
1698 	D8F,
1699 	D90,
1700 	D91,
1701 	D92,
1702 	D93,
1703 	D94,
1704 	D95,
1705 	D96,
1706 	D97,
1707 	D98,
1708 	D99,
1709 	D9A,
1710 	D9B,
1711 	D9C,
1712 	D9D,
1713 	D9E,
1714 	D9F,
1715 	DA0,
1716 	DA1,
1717 	DA2,
1718 	DA3,
1719 	DA4,
1720 	DA5,
1721 	DA6,
1722 	DA7,
1723 	DA8,
1724 	DA9,
1725 	DAA,
1726 	DAB,
1727 	DAC,
1728 	DAD,
1729 	DAE,
1730 	DAF,
1731 	DB0,
1732 	DB1,
1733 	DB2,
1734 	DB3,
1735 	DB4,
1736 	DB5,
1737 	DB6,
1738 	DB7,
1739 	DB8,
1740 	DB9,
1741 	DBA,
1742 	DBB,
1743 	DBC,
1744 	DBD,
1745 	DBE,
1746 	DBF,
1747 	DC0,
1748 	DC1,
1749 	DC2,
1750 	DC3,
1751 	DC4,
1752 	DC5,
1753 	DC6,
1754 	DC7,
1755 	DC8,
1756 	DC9,
1757 	DCA,
1758 	DCB,
1759 	DCC,
1760 	DCD,
1761 	DCE,
1762 	DCF,
1763 	DD0,
1764 	DD1,
1765 	DD2,
1766 	DD3,
1767 	DD4,
1768 	DD5,
1769 	DD6,
1770 	DD7,
1771 	DD8,
1772 	DD9,
1773 	DDA,
1774 	DDB,
1775 	DDC,
1776 	DDD,
1777 	DDE,
1778 	DDF,
1779 	DE0,
1780 	DE1,
1781 	DE2,
1782 	DE3,
1783 	DE4,
1784 	DE5,
1785 	DE6,
1786 	DE7,
1787 	DE8,
1788 	DE9,
1789 	DEA,
1790 	DEB,
1791 	DEC,
1792 	DED,
1793 	DEE,
1794 	DEF,
1795 	DF0,
1796 	DF1,
1797 	DF2,
1798 	DF3,
1799 	DF4,
1800 	DF5,
1801 	DF6,
1802 	DF7,
1803 	DF8,
1804 	DF9,
1805 	DFA,
1806 	DFB,
1807 	DFC,
1808 	DFD,
1809 	DFE,
1810 	DFF
1811 };
1812