xref: /inferno-os/libinterp/dec.c (revision 46439007cf417cbd9ac8049bb4122c890097a0fa)
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
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
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
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
30 D03(void)
31 {
32 	R.s = R.MP+R.PC->s.ind;
33 }
34 static 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
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
49 D06(void)
50 {
51 	R.s = R.MP+R.PC->s.ind;
52 }
53 static void
54 D07(void)
55 {
56 	R.s = R.MP+R.PC->s.ind;
57 }
58 static 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
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
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
80 D0B(void)
81 {
82 	R.s = R.FP+R.PC->s.ind;
83 }
84 static 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
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
99 D0E(void)
100 {
101 	R.s = R.FP+R.PC->s.ind;
102 }
103 static void
104 D0F(void)
105 {
106 	R.s = R.FP+R.PC->s.ind;
107 }
108 static 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
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
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
130 D13(void)
131 {
132 	R.s = (uchar*)&R.PC->s.imm;
133 }
134 static 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
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
149 D16(void)
150 {
151 	R.s = (uchar*)&R.PC->s.imm;
152 }
153 static void
154 D17(void)
155 {
156 	R.s = (uchar*)&R.PC->s.imm;
157 }
158 static void
159 D18(void)
160 {
161 	R.d = R.MP+R.PC->d.ind;
162 	R.m = R.d;
163 }
164 static void
165 D19(void)
166 {
167 	R.d = R.FP+R.PC->d.ind;
168 	R.m = R.d;
169 }
170 static void
171 D1A(void)
172 {
173 	R.d = (uchar*)&R.PC->d.imm;
174 	R.m = R.d;
175 }
176 static void
177 D1B(void)
178 {
179 }
180 static void
181 D1C(void)
182 {
183 	R.d = DIND(MP, d);
184 	R.m = R.d;
185 }
186 static void
187 D1D(void)
188 {
189 	R.d = DIND(FP, d);
190 	R.m = R.d;
191 }
192 static void
193 D1E(void)
194 {
195 }
196 static void
197 D1F(void)
198 {
199 }
200 static 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
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
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
222 D23(void)
223 {
224 	R.s = DIND(MP, s);
225 }
226 static 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
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
241 D26(void)
242 {
243 	R.s = DIND(MP, s);
244 }
245 static void
246 D27(void)
247 {
248 	R.s = DIND(MP, s);
249 }
250 static 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
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
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
272 D2B(void)
273 {
274 	R.s = DIND(FP, s);
275 }
276 static 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
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
291 D2E(void)
292 {
293 	R.s = DIND(FP, s);
294 }
295 static void
296 D2F(void)
297 {
298 	R.s = DIND(FP, s);
299 }
300 static void
301 D30(void)
302 {
303 	R.d = R.MP+R.PC->d.ind;
304 	R.m = R.d;
305 }
306 static void
307 D31(void)
308 {
309 	R.d = R.FP+R.PC->d.ind;
310 	R.m = R.d;
311 }
312 static void
313 D32(void)
314 {
315 	R.d = (uchar*)&R.PC->d.imm;
316 	R.m = R.d;
317 }
318 static void
319 D33(void)
320 {
321 }
322 static void
323 D34(void)
324 {
325 	R.d = DIND(MP, d);
326 	R.m = R.d;
327 }
328 static void
329 D35(void)
330 {
331 	R.d = DIND(FP, d);
332 	R.m = R.d;
333 }
334 static void
335 D36(void)
336 {
337 }
338 static void
339 D37(void)
340 {
341 }
342 static void
343 D38(void)
344 {
345 	R.d = R.MP+R.PC->d.ind;
346 	R.m = R.d;
347 }
348 static void
349 D39(void)
350 {
351 	R.d = R.FP+R.PC->d.ind;
352 	R.m = R.d;
353 }
354 static void
355 D3A(void)
356 {
357 	R.d = (uchar*)&R.PC->d.imm;
358 	R.m = R.d;
359 }
360 static void
361 D3B(void)
362 {
363 }
364 static void
365 D3C(void)
366 {
367 	R.d = DIND(MP, d);
368 	R.m = R.d;
369 }
370 static void
371 D3D(void)
372 {
373 	R.d = DIND(FP, d);
374 	R.m = R.d;
375 }
376 static void
377 D3E(void)
378 {
379 }
380 static void
381 D3F(void)
382 {
383 }
384 static 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
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
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
409 D43(void)
410 {
411 	R.s = R.MP+R.PC->s.ind;
412 }
413 static 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
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
430 D46(void)
431 {
432 	R.s = R.MP+R.PC->s.ind;
433 }
434 static void
435 D47(void)
436 {
437 	R.s = R.MP+R.PC->s.ind;
438 }
439 static 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
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
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
464 D4B(void)
465 {
466 	R.s = R.FP+R.PC->s.ind;
467 }
468 static 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
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
485 D4E(void)
486 {
487 	R.s = R.FP+R.PC->s.ind;
488 }
489 static void
490 D4F(void)
491 {
492 	R.s = R.FP+R.PC->s.ind;
493 }
494 static 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
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
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
519 D53(void)
520 {
521 	R.s = (uchar*)&R.PC->s.imm;
522 }
523 static 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
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
540 D56(void)
541 {
542 	R.s = (uchar*)&R.PC->s.imm;
543 }
544 static void
545 D57(void)
546 {
547 	R.s = (uchar*)&R.PC->s.imm;
548 }
549 static 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
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
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
571 D5B(void)
572 {
573 }
574 static 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
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
589 D5E(void)
590 {
591 }
592 static void
593 D5F(void)
594 {
595 }
596 static 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
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
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
621 D63(void)
622 {
623 	R.s = DIND(MP, s);
624 }
625 static 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
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
642 D66(void)
643 {
644 	R.s = DIND(MP, s);
645 }
646 static void
647 D67(void)
648 {
649 	R.s = DIND(MP, s);
650 }
651 static 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
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
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
676 D6B(void)
677 {
678 	R.s = DIND(FP, s);
679 }
680 static 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
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
697 D6E(void)
698 {
699 	R.s = DIND(FP, s);
700 }
701 static void
702 D6F(void)
703 {
704 	R.s = DIND(FP, s);
705 }
706 static 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
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
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
728 D73(void)
729 {
730 }
731 static 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
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
746 D76(void)
747 {
748 }
749 static void
750 D77(void)
751 {
752 }
753 static 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
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
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
775 D7B(void)
776 {
777 }
778 static 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
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
793 D7E(void)
794 {
795 }
796 static void
797 D7F(void)
798 {
799 }
800 static 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
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
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
822 D83(void)
823 {
824 	R.s = R.MP+R.PC->s.ind;
825 }
826 static 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
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
841 D86(void)
842 {
843 	R.s = R.MP+R.PC->s.ind;
844 }
845 static void
846 D87(void)
847 {
848 	R.s = R.MP+R.PC->s.ind;
849 }
850 static 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
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
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
872 D8B(void)
873 {
874 	R.s = R.FP+R.PC->s.ind;
875 }
876 static 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
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
891 D8E(void)
892 {
893 	R.s = R.FP+R.PC->s.ind;
894 }
895 static void
896 D8F(void)
897 {
898 	R.s = R.FP+R.PC->s.ind;
899 }
900 static 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
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
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
922 D93(void)
923 {
924 	R.s = (uchar*)&R.PC->s.imm;
925 }
926 static 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
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
941 D96(void)
942 {
943 	R.s = (uchar*)&R.PC->s.imm;
944 }
945 static void
946 D97(void)
947 {
948 	R.s = (uchar*)&R.PC->s.imm;
949 }
950 static 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
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
963 D9A(void)
964 {
965 	R.d = (uchar*)&R.PC->d.imm;
966 	R.m = R.FP+R.PC->reg;
967 }
968 static void
969 D9B(void)
970 {
971 }
972 static void
973 D9C(void)
974 {
975 	R.d = DIND(MP, d);
976 	R.m = R.FP+R.PC->reg;
977 }
978 static void
979 D9D(void)
980 {
981 	R.d = DIND(FP, d);
982 	R.m = R.FP+R.PC->reg;
983 }
984 static void
985 D9E(void)
986 {
987 }
988 static void
989 D9F(void)
990 {
991 }
992 static 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
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
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
1014 DA3(void)
1015 {
1016 	R.s = DIND(MP, s);
1017 }
1018 static 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
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
1033 DA6(void)
1034 {
1035 	R.s = DIND(MP, s);
1036 }
1037 static void
1038 DA7(void)
1039 {
1040 	R.s = DIND(MP, s);
1041 }
1042 static 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
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
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
1064 DAB(void)
1065 {
1066 	R.s = DIND(FP, s);
1067 }
1068 static 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
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
1083 DAE(void)
1084 {
1085 	R.s = DIND(FP, s);
1086 }
1087 static void
1088 DAF(void)
1089 {
1090 	R.s = DIND(FP, s);
1091 }
1092 static 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
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
1105 DB2(void)
1106 {
1107 	R.d = (uchar*)&R.PC->d.imm;
1108 	R.m = R.FP+R.PC->reg;
1109 }
1110 static void
1111 DB3(void)
1112 {
1113 }
1114 static void
1115 DB4(void)
1116 {
1117 	R.d = DIND(MP, d);
1118 	R.m = R.FP+R.PC->reg;
1119 }
1120 static void
1121 DB5(void)
1122 {
1123 	R.d = DIND(FP, d);
1124 	R.m = R.FP+R.PC->reg;
1125 }
1126 static void
1127 DB6(void)
1128 {
1129 }
1130 static void
1131 DB7(void)
1132 {
1133 }
1134 static 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
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
1147 DBA(void)
1148 {
1149 	R.d = (uchar*)&R.PC->d.imm;
1150 	R.m = R.FP+R.PC->reg;
1151 }
1152 static void
1153 DBB(void)
1154 {
1155 }
1156 static void
1157 DBC(void)
1158 {
1159 	R.d = DIND(MP, d);
1160 	R.m = R.FP+R.PC->reg;
1161 }
1162 static void
1163 DBD(void)
1164 {
1165 	R.d = DIND(FP, d);
1166 	R.m = R.FP+R.PC->reg;
1167 }
1168 static void
1169 DBE(void)
1170 {
1171 }
1172 static void
1173 DBF(void)
1174 {
1175 }
1176 static 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
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
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
1198 DC3(void)
1199 {
1200 	R.s = R.MP+R.PC->s.ind;
1201 }
1202 static 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
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
1217 DC6(void)
1218 {
1219 	R.s = R.MP+R.PC->s.ind;
1220 }
1221 static void
1222 DC7(void)
1223 {
1224 	R.s = R.MP+R.PC->s.ind;
1225 }
1226 static 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
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
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
1248 DCB(void)
1249 {
1250 	R.s = R.FP+R.PC->s.ind;
1251 }
1252 static 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
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
1267 DCE(void)
1268 {
1269 	R.s = R.FP+R.PC->s.ind;
1270 }
1271 static void
1272 DCF(void)
1273 {
1274 	R.s = R.FP+R.PC->s.ind;
1275 }
1276 static 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
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
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
1298 DD3(void)
1299 {
1300 	R.s = (uchar*)&R.PC->s.imm;
1301 }
1302 static 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
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
1317 DD6(void)
1318 {
1319 	R.s = (uchar*)&R.PC->s.imm;
1320 }
1321 static void
1322 DD7(void)
1323 {
1324 	R.s = (uchar*)&R.PC->s.imm;
1325 }
1326 static 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
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
1339 DDA(void)
1340 {
1341 	R.d = (uchar*)&R.PC->d.imm;
1342 	R.m = R.MP+R.PC->reg;
1343 }
1344 static void
1345 DDB(void)
1346 {
1347 }
1348 static void
1349 DDC(void)
1350 {
1351 	R.d = DIND(MP, d);
1352 	R.m = R.MP+R.PC->reg;
1353 }
1354 static void
1355 DDD(void)
1356 {
1357 	R.d = DIND(FP, d);
1358 	R.m = R.MP+R.PC->reg;
1359 }
1360 static void
1361 DDE(void)
1362 {
1363 }
1364 static void
1365 DDF(void)
1366 {
1367 }
1368 static 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
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
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
1390 DE3(void)
1391 {
1392 	R.s = DIND(MP, s);
1393 }
1394 static 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
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
1409 DE6(void)
1410 {
1411 	R.s = DIND(MP, s);
1412 }
1413 static void
1414 DE7(void)
1415 {
1416 	R.s = DIND(MP, s);
1417 }
1418 static 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
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
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
1440 DEB(void)
1441 {
1442 	R.s = DIND(FP, s);
1443 }
1444 static 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
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
1459 DEE(void)
1460 {
1461 	R.s = DIND(FP, s);
1462 }
1463 static void
1464 DEF(void)
1465 {
1466 	R.s = DIND(FP, s);
1467 }
1468 static 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
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
1481 DF2(void)
1482 {
1483 	R.d = (uchar*)&R.PC->d.imm;
1484 	R.m = R.MP+R.PC->reg;
1485 }
1486 static void
1487 DF3(void)
1488 {
1489 }
1490 static void
1491 DF4(void)
1492 {
1493 	R.d = DIND(MP, d);
1494 	R.m = R.MP+R.PC->reg;
1495 }
1496 static void
1497 DF5(void)
1498 {
1499 	R.d = DIND(FP, d);
1500 	R.m = R.MP+R.PC->reg;
1501 }
1502 static void
1503 DF6(void)
1504 {
1505 }
1506 static void
1507 DF7(void)
1508 {
1509 }
1510 static 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
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
1523 DFA(void)
1524 {
1525 	R.d = (uchar*)&R.PC->d.imm;
1526 	R.m = R.MP+R.PC->reg;
1527 }
1528 static void
1529 DFB(void)
1530 {
1531 }
1532 static void
1533 DFC(void)
1534 {
1535 	R.d = DIND(MP, d);
1536 	R.m = R.MP+R.PC->reg;
1537 }
1538 static void
1539 DFD(void)
1540 {
1541 	R.d = DIND(FP, d);
1542 	R.m = R.MP+R.PC->reg;
1543 }
1544 static void
1545 DFE(void)
1546 {
1547 }
1548 static 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