OSDN Git Service

* xstormy16-decode.cxx: Regenerate.
[pf3gnuchains/pf3gnuchains3x.git] / sid / component / cgen-cpu / xstormy16 / xstormy16-decode.cxx
1 /* Simulator instruction decoder for xstormy16.
2
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5 Copyright (C) 2000-2004 Red Hat, Inc.
6
7 This file is part of the Red Hat simulators.
8
9
10 */
11
12
13 #if HAVE_CONFIG_H
14 #include "config.h"
15 #endif
16 #include "xstormy16.h"
17
18 using namespace xstormy16; // FIXME: namespace organization still wip
19
20
21 // The instruction descriptor array. 
22
23 xstormy16_idesc xstormy16_idesc::idesc_table[XSTORMY16_INSN_SYSCALL + 1] =
24 {
25   { xstormy16_sem_x_invalid, "X_INVALID", XSTORMY16_INSN_X_INVALID, { 0|(1<<CGEN_INSN_VIRTUAL), (1<<MACH_BASE) } },
26   { xstormy16_sem_movlmemimm, "MOVLMEMIMM", XSTORMY16_INSN_MOVLMEMIMM, { 0, (1<<MACH_BASE) } },
27   { xstormy16_sem_movhmemimm, "MOVHMEMIMM", XSTORMY16_INSN_MOVHMEMIMM, { 0, (1<<MACH_BASE) } },
28   { xstormy16_sem_movlgrmem, "MOVLGRMEM", XSTORMY16_INSN_MOVLGRMEM, { 0, (1<<MACH_BASE) } },
29   { xstormy16_sem_movhgrmem, "MOVHGRMEM", XSTORMY16_INSN_MOVHGRMEM, { 0, (1<<MACH_BASE) } },
30   { xstormy16_sem_movlmemgr, "MOVLMEMGR", XSTORMY16_INSN_MOVLMEMGR, { 0, (1<<MACH_BASE) } },
31   { xstormy16_sem_movhmemgr, "MOVHMEMGR", XSTORMY16_INSN_MOVHMEMGR, { 0, (1<<MACH_BASE) } },
32   { xstormy16_sem_movgrgri, "MOVGRGRI", XSTORMY16_INSN_MOVGRGRI, { 0, (1<<MACH_BASE) } },
33   { xstormy16_sem_movgrgripostinc, "MOVGRGRIPOSTINC", XSTORMY16_INSN_MOVGRGRIPOSTINC, { 0, (1<<MACH_BASE) } },
34   { xstormy16_sem_movgrgripredec, "MOVGRGRIPREDEC", XSTORMY16_INSN_MOVGRGRIPREDEC, { 0, (1<<MACH_BASE) } },
35   { xstormy16_sem_movgrigr, "MOVGRIGR", XSTORMY16_INSN_MOVGRIGR, { 0, (1<<MACH_BASE) } },
36   { xstormy16_sem_movgripostincgr, "MOVGRIPOSTINCGR", XSTORMY16_INSN_MOVGRIPOSTINCGR, { 0, (1<<MACH_BASE) } },
37   { xstormy16_sem_movgripredecgr, "MOVGRIPREDECGR", XSTORMY16_INSN_MOVGRIPREDECGR, { 0, (1<<MACH_BASE) } },
38   { xstormy16_sem_movgrgrii, "MOVGRGRII", XSTORMY16_INSN_MOVGRGRII, { 0, (1<<MACH_BASE) } },
39   { xstormy16_sem_movgrgriipostinc, "MOVGRGRIIPOSTINC", XSTORMY16_INSN_MOVGRGRIIPOSTINC, { 0, (1<<MACH_BASE) } },
40   { xstormy16_sem_movgrgriipredec, "MOVGRGRIIPREDEC", XSTORMY16_INSN_MOVGRGRIIPREDEC, { 0, (1<<MACH_BASE) } },
41   { xstormy16_sem_movgriigr, "MOVGRIIGR", XSTORMY16_INSN_MOVGRIIGR, { 0, (1<<MACH_BASE) } },
42   { xstormy16_sem_movgriipostincgr, "MOVGRIIPOSTINCGR", XSTORMY16_INSN_MOVGRIIPOSTINCGR, { 0, (1<<MACH_BASE) } },
43   { xstormy16_sem_movgriipredecgr, "MOVGRIIPREDECGR", XSTORMY16_INSN_MOVGRIIPREDECGR, { 0, (1<<MACH_BASE) } },
44   { xstormy16_sem_movgrgr, "MOVGRGR", XSTORMY16_INSN_MOVGRGR, { 0, (1<<MACH_BASE) } },
45   { xstormy16_sem_movwimm8, "MOVWIMM8", XSTORMY16_INSN_MOVWIMM8, { 0, (1<<MACH_BASE) } },
46   { xstormy16_sem_movwgrimm8, "MOVWGRIMM8", XSTORMY16_INSN_MOVWGRIMM8, { 0, (1<<MACH_BASE) } },
47   { xstormy16_sem_movwgrimm16, "MOVWGRIMM16", XSTORMY16_INSN_MOVWGRIMM16, { 0, (1<<MACH_BASE) } },
48   { xstormy16_sem_movlowgr, "MOVLOWGR", XSTORMY16_INSN_MOVLOWGR, { 0, (1<<MACH_BASE) } },
49   { xstormy16_sem_movhighgr, "MOVHIGHGR", XSTORMY16_INSN_MOVHIGHGR, { 0, (1<<MACH_BASE) } },
50   { xstormy16_sem_movfgrgri, "MOVFGRGRI", XSTORMY16_INSN_MOVFGRGRI, { 0, (1<<MACH_BASE) } },
51   { xstormy16_sem_movfgrgripostinc, "MOVFGRGRIPOSTINC", XSTORMY16_INSN_MOVFGRGRIPOSTINC, { 0, (1<<MACH_BASE) } },
52   { xstormy16_sem_movfgrgripredec, "MOVFGRGRIPREDEC", XSTORMY16_INSN_MOVFGRGRIPREDEC, { 0, (1<<MACH_BASE) } },
53   { xstormy16_sem_movfgrigr, "MOVFGRIGR", XSTORMY16_INSN_MOVFGRIGR, { 0, (1<<MACH_BASE) } },
54   { xstormy16_sem_movfgripostincgr, "MOVFGRIPOSTINCGR", XSTORMY16_INSN_MOVFGRIPOSTINCGR, { 0, (1<<MACH_BASE) } },
55   { xstormy16_sem_movfgripredecgr, "MOVFGRIPREDECGR", XSTORMY16_INSN_MOVFGRIPREDECGR, { 0, (1<<MACH_BASE) } },
56   { xstormy16_sem_movfgrgrii, "MOVFGRGRII", XSTORMY16_INSN_MOVFGRGRII, { 0, (1<<MACH_BASE) } },
57   { xstormy16_sem_movfgrgriipostinc, "MOVFGRGRIIPOSTINC", XSTORMY16_INSN_MOVFGRGRIIPOSTINC, { 0, (1<<MACH_BASE) } },
58   { xstormy16_sem_movfgrgriipredec, "MOVFGRGRIIPREDEC", XSTORMY16_INSN_MOVFGRGRIIPREDEC, { 0, (1<<MACH_BASE) } },
59   { xstormy16_sem_movfgriigr, "MOVFGRIIGR", XSTORMY16_INSN_MOVFGRIIGR, { 0, (1<<MACH_BASE) } },
60   { xstormy16_sem_movfgriipostincgr, "MOVFGRIIPOSTINCGR", XSTORMY16_INSN_MOVFGRIIPOSTINCGR, { 0, (1<<MACH_BASE) } },
61   { xstormy16_sem_movfgriipredecgr, "MOVFGRIIPREDECGR", XSTORMY16_INSN_MOVFGRIIPREDECGR, { 0, (1<<MACH_BASE) } },
62   { xstormy16_sem_maskgrgr, "MASKGRGR", XSTORMY16_INSN_MASKGRGR, { 0, (1<<MACH_BASE) } },
63   { xstormy16_sem_maskgrimm16, "MASKGRIMM16", XSTORMY16_INSN_MASKGRIMM16, { 0, (1<<MACH_BASE) } },
64   { xstormy16_sem_pushgr, "PUSHGR", XSTORMY16_INSN_PUSHGR, { 0, (1<<MACH_BASE) } },
65   { xstormy16_sem_popgr, "POPGR", XSTORMY16_INSN_POPGR, { 0, (1<<MACH_BASE) } },
66   { xstormy16_sem_swpn, "SWPN", XSTORMY16_INSN_SWPN, { 0, (1<<MACH_BASE) } },
67   { xstormy16_sem_swpb, "SWPB", XSTORMY16_INSN_SWPB, { 0, (1<<MACH_BASE) } },
68   { xstormy16_sem_swpw, "SWPW", XSTORMY16_INSN_SWPW, { 0, (1<<MACH_BASE) } },
69   { xstormy16_sem_andgrgr, "ANDGRGR", XSTORMY16_INSN_ANDGRGR, { 0, (1<<MACH_BASE) } },
70   { xstormy16_sem_andimm8, "ANDIMM8", XSTORMY16_INSN_ANDIMM8, { 0, (1<<MACH_BASE) } },
71   { xstormy16_sem_andgrimm16, "ANDGRIMM16", XSTORMY16_INSN_ANDGRIMM16, { 0, (1<<MACH_BASE) } },
72   { xstormy16_sem_orgrgr, "ORGRGR", XSTORMY16_INSN_ORGRGR, { 0, (1<<MACH_BASE) } },
73   { xstormy16_sem_orimm8, "ORIMM8", XSTORMY16_INSN_ORIMM8, { 0, (1<<MACH_BASE) } },
74   { xstormy16_sem_orgrimm16, "ORGRIMM16", XSTORMY16_INSN_ORGRIMM16, { 0, (1<<MACH_BASE) } },
75   { xstormy16_sem_xorgrgr, "XORGRGR", XSTORMY16_INSN_XORGRGR, { 0, (1<<MACH_BASE) } },
76   { xstormy16_sem_xorimm8, "XORIMM8", XSTORMY16_INSN_XORIMM8, { 0, (1<<MACH_BASE) } },
77   { xstormy16_sem_xorgrimm16, "XORGRIMM16", XSTORMY16_INSN_XORGRIMM16, { 0, (1<<MACH_BASE) } },
78   { xstormy16_sem_notgr, "NOTGR", XSTORMY16_INSN_NOTGR, { 0, (1<<MACH_BASE) } },
79   { xstormy16_sem_addgrgr, "ADDGRGR", XSTORMY16_INSN_ADDGRGR, { 0, (1<<MACH_BASE) } },
80   { xstormy16_sem_addgrimm4, "ADDGRIMM4", XSTORMY16_INSN_ADDGRIMM4, { 0, (1<<MACH_BASE) } },
81   { xstormy16_sem_addimm8, "ADDIMM8", XSTORMY16_INSN_ADDIMM8, { 0, (1<<MACH_BASE) } },
82   { xstormy16_sem_addgrimm16, "ADDGRIMM16", XSTORMY16_INSN_ADDGRIMM16, { 0, (1<<MACH_BASE) } },
83   { xstormy16_sem_adcgrgr, "ADCGRGR", XSTORMY16_INSN_ADCGRGR, { 0, (1<<MACH_BASE) } },
84   { xstormy16_sem_adcgrimm4, "ADCGRIMM4", XSTORMY16_INSN_ADCGRIMM4, { 0, (1<<MACH_BASE) } },
85   { xstormy16_sem_adcimm8, "ADCIMM8", XSTORMY16_INSN_ADCIMM8, { 0, (1<<MACH_BASE) } },
86   { xstormy16_sem_adcgrimm16, "ADCGRIMM16", XSTORMY16_INSN_ADCGRIMM16, { 0, (1<<MACH_BASE) } },
87   { xstormy16_sem_subgrgr, "SUBGRGR", XSTORMY16_INSN_SUBGRGR, { 0, (1<<MACH_BASE) } },
88   { xstormy16_sem_subgrimm4, "SUBGRIMM4", XSTORMY16_INSN_SUBGRIMM4, { 0, (1<<MACH_BASE) } },
89   { xstormy16_sem_subimm8, "SUBIMM8", XSTORMY16_INSN_SUBIMM8, { 0, (1<<MACH_BASE) } },
90   { xstormy16_sem_subgrimm16, "SUBGRIMM16", XSTORMY16_INSN_SUBGRIMM16, { 0, (1<<MACH_BASE) } },
91   { xstormy16_sem_sbcgrgr, "SBCGRGR", XSTORMY16_INSN_SBCGRGR, { 0, (1<<MACH_BASE) } },
92   { xstormy16_sem_sbcgrimm4, "SBCGRIMM4", XSTORMY16_INSN_SBCGRIMM4, { 0, (1<<MACH_BASE) } },
93   { xstormy16_sem_sbcgrimm8, "SBCGRIMM8", XSTORMY16_INSN_SBCGRIMM8, { 0, (1<<MACH_BASE) } },
94   { xstormy16_sem_sbcgrimm16, "SBCGRIMM16", XSTORMY16_INSN_SBCGRIMM16, { 0, (1<<MACH_BASE) } },
95   { xstormy16_sem_incgrimm2, "INCGRIMM2", XSTORMY16_INSN_INCGRIMM2, { 0, (1<<MACH_BASE) } },
96   { xstormy16_sem_decgrimm2, "DECGRIMM2", XSTORMY16_INSN_DECGRIMM2, { 0, (1<<MACH_BASE) } },
97   { xstormy16_sem_rrcgrgr, "RRCGRGR", XSTORMY16_INSN_RRCGRGR, { 0, (1<<MACH_BASE) } },
98   { xstormy16_sem_rrcgrimm4, "RRCGRIMM4", XSTORMY16_INSN_RRCGRIMM4, { 0, (1<<MACH_BASE) } },
99   { xstormy16_sem_rlcgrgr, "RLCGRGR", XSTORMY16_INSN_RLCGRGR, { 0, (1<<MACH_BASE) } },
100   { xstormy16_sem_rlcgrimm4, "RLCGRIMM4", XSTORMY16_INSN_RLCGRIMM4, { 0, (1<<MACH_BASE) } },
101   { xstormy16_sem_shrgrgr, "SHRGRGR", XSTORMY16_INSN_SHRGRGR, { 0, (1<<MACH_BASE) } },
102   { xstormy16_sem_shrgrimm, "SHRGRIMM", XSTORMY16_INSN_SHRGRIMM, { 0, (1<<MACH_BASE) } },
103   { xstormy16_sem_shlgrgr, "SHLGRGR", XSTORMY16_INSN_SHLGRGR, { 0, (1<<MACH_BASE) } },
104   { xstormy16_sem_shlgrimm, "SHLGRIMM", XSTORMY16_INSN_SHLGRIMM, { 0, (1<<MACH_BASE) } },
105   { xstormy16_sem_asrgrgr, "ASRGRGR", XSTORMY16_INSN_ASRGRGR, { 0, (1<<MACH_BASE) } },
106   { xstormy16_sem_asrgrimm, "ASRGRIMM", XSTORMY16_INSN_ASRGRIMM, { 0, (1<<MACH_BASE) } },
107   { xstormy16_sem_set1grimm, "SET1GRIMM", XSTORMY16_INSN_SET1GRIMM, { 0, (1<<MACH_BASE) } },
108   { xstormy16_sem_set1grgr, "SET1GRGR", XSTORMY16_INSN_SET1GRGR, { 0, (1<<MACH_BASE) } },
109   { xstormy16_sem_set1lmemimm, "SET1LMEMIMM", XSTORMY16_INSN_SET1LMEMIMM, { 0, (1<<MACH_BASE) } },
110   { xstormy16_sem_set1hmemimm, "SET1HMEMIMM", XSTORMY16_INSN_SET1HMEMIMM, { 0, (1<<MACH_BASE) } },
111   { xstormy16_sem_clr1grimm, "CLR1GRIMM", XSTORMY16_INSN_CLR1GRIMM, { 0, (1<<MACH_BASE) } },
112   { xstormy16_sem_clr1grgr, "CLR1GRGR", XSTORMY16_INSN_CLR1GRGR, { 0, (1<<MACH_BASE) } },
113   { xstormy16_sem_clr1lmemimm, "CLR1LMEMIMM", XSTORMY16_INSN_CLR1LMEMIMM, { 0, (1<<MACH_BASE) } },
114   { xstormy16_sem_clr1hmemimm, "CLR1HMEMIMM", XSTORMY16_INSN_CLR1HMEMIMM, { 0, (1<<MACH_BASE) } },
115   { xstormy16_sem_cbwgr, "CBWGR", XSTORMY16_INSN_CBWGR, { 0, (1<<MACH_BASE) } },
116   { xstormy16_sem_revgr, "REVGR", XSTORMY16_INSN_REVGR, { 0, (1<<MACH_BASE) } },
117   { xstormy16_sem_bccgrgr, "BCCGRGR", XSTORMY16_INSN_BCCGRGR, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE) } },
118   { xstormy16_sem_bccgrimm8, "BCCGRIMM8", XSTORMY16_INSN_BCCGRIMM8, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE) } },
119   { xstormy16_sem_bccimm16, "BCCIMM16", XSTORMY16_INSN_BCCIMM16, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE) } },
120   { xstormy16_sem_bngrimm4, "BNGRIMM4", XSTORMY16_INSN_BNGRIMM4, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE) } },
121   { xstormy16_sem_bngrgr, "BNGRGR", XSTORMY16_INSN_BNGRGR, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE) } },
122   { xstormy16_sem_bnlmemimm, "BNLMEMIMM", XSTORMY16_INSN_BNLMEMIMM, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE) } },
123   { xstormy16_sem_bnhmemimm, "BNHMEMIMM", XSTORMY16_INSN_BNHMEMIMM, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE) } },
124   { xstormy16_sem_bpgrimm4, "BPGRIMM4", XSTORMY16_INSN_BPGRIMM4, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE) } },
125   { xstormy16_sem_bpgrgr, "BPGRGR", XSTORMY16_INSN_BPGRGR, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE) } },
126   { xstormy16_sem_bplmemimm, "BPLMEMIMM", XSTORMY16_INSN_BPLMEMIMM, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE) } },
127   { xstormy16_sem_bphmemimm, "BPHMEMIMM", XSTORMY16_INSN_BPHMEMIMM, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE) } },
128   { xstormy16_sem_bcc, "BCC", XSTORMY16_INSN_BCC, { 0|(1<<CGEN_INSN_COND_CTI), (1<<MACH_BASE) } },
129   { xstormy16_sem_bgr, "BGR", XSTORMY16_INSN_BGR, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE) } },
130   { xstormy16_sem_br, "BR", XSTORMY16_INSN_BR, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE) } },
131   { xstormy16_sem_jmp, "JMP", XSTORMY16_INSN_JMP, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE) } },
132   { xstormy16_sem_jmpf, "JMPF", XSTORMY16_INSN_JMPF, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE) } },
133   { xstormy16_sem_callrgr, "CALLRGR", XSTORMY16_INSN_CALLRGR, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE) } },
134   { xstormy16_sem_callrimm, "CALLRIMM", XSTORMY16_INSN_CALLRIMM, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE) } },
135   { xstormy16_sem_callgr, "CALLGR", XSTORMY16_INSN_CALLGR, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE) } },
136   { xstormy16_sem_callfimm, "CALLFIMM", XSTORMY16_INSN_CALLFIMM, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE) } },
137   { xstormy16_sem_icallrgr, "ICALLRGR", XSTORMY16_INSN_ICALLRGR, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE) } },
138   { xstormy16_sem_icallgr, "ICALLGR", XSTORMY16_INSN_ICALLGR, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE) } },
139   { xstormy16_sem_icallfimm, "ICALLFIMM", XSTORMY16_INSN_ICALLFIMM, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE) } },
140   { xstormy16_sem_iret, "IRET", XSTORMY16_INSN_IRET, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE) } },
141   { xstormy16_sem_ret, "RET", XSTORMY16_INSN_RET, { 0|(1<<CGEN_INSN_UNCOND_CTI), (1<<MACH_BASE) } },
142   { xstormy16_sem_mul, "MUL", XSTORMY16_INSN_MUL, { 0, (1<<MACH_BASE) } },
143   { xstormy16_sem_div, "DIV", XSTORMY16_INSN_DIV, { 0, (1<<MACH_BASE) } },
144   { xstormy16_sem_sdiv, "SDIV", XSTORMY16_INSN_SDIV, { 0, (1<<MACH_BASE) } },
145   { xstormy16_sem_sdivlh, "SDIVLH", XSTORMY16_INSN_SDIVLH, { 0, (1<<MACH_BASE) } },
146   { xstormy16_sem_divlh, "DIVLH", XSTORMY16_INSN_DIVLH, { 0, (1<<MACH_BASE) } },
147   { xstormy16_sem_reset, "RESET", XSTORMY16_INSN_RESET, { 0, (1<<MACH_BASE) } },
148   { xstormy16_sem_nop, "NOP", XSTORMY16_INSN_NOP, { 0, (1<<MACH_BASE) } },
149   { xstormy16_sem_halt, "HALT", XSTORMY16_INSN_HALT, { 0, (1<<MACH_BASE) } },
150   { xstormy16_sem_hold, "HOLD", XSTORMY16_INSN_HOLD, { 0, (1<<MACH_BASE) } },
151   { xstormy16_sem_holdx, "HOLDX", XSTORMY16_INSN_HOLDX, { 0, (1<<MACH_BASE) } },
152   { xstormy16_sem_brk, "BRK", XSTORMY16_INSN_BRK, { 0, (1<<MACH_BASE) } },
153   { xstormy16_sem_syscall, "SYSCALL", XSTORMY16_INSN_SYSCALL, { 0, (1<<MACH_BASE) } },
154
155 };
156
157 // Given a canonical virtual insn id, return the target specific one.
158
159 xstormy16_insn_type
160 xstormy16_idesc::lookup_virtual (virtual_insn_type vit)
161 {
162   switch (vit)
163     {
164       case VIRTUAL_INSN_INVALID: return XSTORMY16_INSN_X_INVALID;
165       case VIRTUAL_INSN_COND: return XSTORMY16_INSN_X_INVALID;
166     }
167   abort ();
168 }
169
170
171 // Declare extractor functions
172
173 static void
174 xstormy16_extract_sfmt_empty (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
175 static void
176 xstormy16_extract_sfmt_movlmemimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
177 static void
178 xstormy16_extract_sfmt_movhmemimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
179 static void
180 xstormy16_extract_sfmt_movlgrmem (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
181 static void
182 xstormy16_extract_sfmt_movhgrmem (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
183 static void
184 xstormy16_extract_sfmt_movlmemgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
185 static void
186 xstormy16_extract_sfmt_movhmemgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
187 static void
188 xstormy16_extract_sfmt_movgrgri (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
189 static void
190 xstormy16_extract_sfmt_movgrgripostinc (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
191 static void
192 xstormy16_extract_sfmt_movgrgripredec (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
193 static void
194 xstormy16_extract_sfmt_movgrigr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
195 static void
196 xstormy16_extract_sfmt_movgripostincgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
197 static void
198 xstormy16_extract_sfmt_movgripredecgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
199 static void
200 xstormy16_extract_sfmt_movgrgrii (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
201 static void
202 xstormy16_extract_sfmt_movgrgriipostinc (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
203 static void
204 xstormy16_extract_sfmt_movgrgriipredec (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
205 static void
206 xstormy16_extract_sfmt_movgriigr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
207 static void
208 xstormy16_extract_sfmt_movgriipostincgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
209 static void
210 xstormy16_extract_sfmt_movgriipredecgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
211 static void
212 xstormy16_extract_sfmt_movgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
213 static void
214 xstormy16_extract_sfmt_movwimm8 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
215 static void
216 xstormy16_extract_sfmt_movwgrimm8 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
217 static void
218 xstormy16_extract_sfmt_movwgrimm16 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
219 static void
220 xstormy16_extract_sfmt_movlowgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
221 static void
222 xstormy16_extract_sfmt_movfgrgri (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
223 static void
224 xstormy16_extract_sfmt_movfgrgripostinc (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
225 static void
226 xstormy16_extract_sfmt_movfgrgripredec (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
227 static void
228 xstormy16_extract_sfmt_movfgrigr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
229 static void
230 xstormy16_extract_sfmt_movfgripostincgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
231 static void
232 xstormy16_extract_sfmt_movfgripredecgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
233 static void
234 xstormy16_extract_sfmt_movfgrgrii (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
235 static void
236 xstormy16_extract_sfmt_movfgrgriipostinc (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
237 static void
238 xstormy16_extract_sfmt_movfgrgriipredec (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
239 static void
240 xstormy16_extract_sfmt_movfgriigr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
241 static void
242 xstormy16_extract_sfmt_movfgriipostincgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
243 static void
244 xstormy16_extract_sfmt_movfgriipredecgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
245 static void
246 xstormy16_extract_sfmt_maskgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
247 static void
248 xstormy16_extract_sfmt_maskgrimm16 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
249 static void
250 xstormy16_extract_sfmt_pushgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
251 static void
252 xstormy16_extract_sfmt_popgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
253 static void
254 xstormy16_extract_sfmt_swpn (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
255 static void
256 xstormy16_extract_sfmt_swpw (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
257 static void
258 xstormy16_extract_sfmt_andgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
259 static void
260 xstormy16_extract_sfmt_andimm8 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
261 static void
262 xstormy16_extract_sfmt_andgrimm16 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
263 static void
264 xstormy16_extract_sfmt_addgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
265 static void
266 xstormy16_extract_sfmt_addgrimm4 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
267 static void
268 xstormy16_extract_sfmt_addimm8 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
269 static void
270 xstormy16_extract_sfmt_addgrimm16 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
271 static void
272 xstormy16_extract_sfmt_adcgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
273 static void
274 xstormy16_extract_sfmt_adcgrimm4 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
275 static void
276 xstormy16_extract_sfmt_adcimm8 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
277 static void
278 xstormy16_extract_sfmt_adcgrimm16 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
279 static void
280 xstormy16_extract_sfmt_incgrimm2 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
281 static void
282 xstormy16_extract_sfmt_rrcgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
283 static void
284 xstormy16_extract_sfmt_rrcgrimm4 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
285 static void
286 xstormy16_extract_sfmt_shrgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
287 static void
288 xstormy16_extract_sfmt_shrgrimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
289 static void
290 xstormy16_extract_sfmt_asrgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
291 static void
292 xstormy16_extract_sfmt_asrgrimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
293 static void
294 xstormy16_extract_sfmt_set1grimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
295 static void
296 xstormy16_extract_sfmt_set1lmemimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
297 static void
298 xstormy16_extract_sfmt_set1hmemimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
299 static void
300 xstormy16_extract_sfmt_bccgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
301 static void
302 xstormy16_extract_sfmt_bccgrimm8 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
303 static void
304 xstormy16_extract_sfmt_bccimm16 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
305 static void
306 xstormy16_extract_sfmt_bngrimm4 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
307 static void
308 xstormy16_extract_sfmt_bngrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
309 static void
310 xstormy16_extract_sfmt_bnlmemimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
311 static void
312 xstormy16_extract_sfmt_bnhmemimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
313 static void
314 xstormy16_extract_sfmt_bcc (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
315 static void
316 xstormy16_extract_sfmt_bgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
317 static void
318 xstormy16_extract_sfmt_br (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
319 static void
320 xstormy16_extract_sfmt_jmp (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
321 static void
322 xstormy16_extract_sfmt_jmpf (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
323 static void
324 xstormy16_extract_sfmt_callrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
325 static void
326 xstormy16_extract_sfmt_callrimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
327 static void
328 xstormy16_extract_sfmt_callgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
329 static void
330 xstormy16_extract_sfmt_callfimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
331 static void
332 xstormy16_extract_sfmt_icallrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
333 static void
334 xstormy16_extract_sfmt_icallgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
335 static void
336 xstormy16_extract_sfmt_icallfimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
337 static void
338 xstormy16_extract_sfmt_iret (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
339 static void
340 xstormy16_extract_sfmt_ret (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
341 static void
342 xstormy16_extract_sfmt_mul (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
343 static void
344 xstormy16_extract_sfmt_sdiv (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
345 static void
346 xstormy16_extract_sfmt_sdivlh (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
347 static void
348 xstormy16_extract_sfmt_reset (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn);
349
350 // Fetch & decode instruction
351 void
352 xstormy16_scache::decode (xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn)
353 {
354   /* Result of decoder.  */
355   XSTORMY16_INSN_TYPE itype;
356
357   {
358     xstormy16_insn_word insn = base_insn;
359
360     {
361       unsigned int val = (((insn >> 21) & (1023 << 1)) | ((insn >> 19) & (1 << 0)));
362       switch (val)
363       {
364       case 0 :
365         {
366           unsigned int val = (((insn >> 17) & (3 << 3)) | ((insn >> 16) & (7 << 0)));
367           switch (val)
368           {
369           case 0 : itype = XSTORMY16_INSN_NOP; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done;
370           case 1 : itype = XSTORMY16_INSN_SYSCALL; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done;
371           case 2 : itype = XSTORMY16_INSN_IRET; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_iret (this, current_cpu, pc, base_insn, entire_insn); goto done;
372           case 3 : itype = XSTORMY16_INSN_RET; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_ret (this, current_cpu, pc, base_insn, entire_insn); goto done;
373           case 5 : itype = XSTORMY16_INSN_BRK; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done;
374           case 8 : /* fall through */
375           case 9 : /* fall through */
376           case 10 : /* fall through */
377           case 11 : /* fall through */
378           case 12 : /* fall through */
379           case 13 : /* fall through */
380           case 14 : /* fall through */
381           case 15 : itype = XSTORMY16_INSN_CALLRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_callrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
382           case 16 : /* fall through */
383           case 17 : /* fall through */
384           case 18 : /* fall through */
385           case 19 : /* fall through */
386           case 20 : /* fall through */
387           case 21 : /* fall through */
388           case 22 : /* fall through */
389           case 23 : itype = XSTORMY16_INSN_BGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_bgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
390           case 24 : /* fall through */
391           case 25 : /* fall through */
392           case 26 : /* fall through */
393           case 27 : /* fall through */
394           case 28 : /* fall through */
395           case 29 : /* fall through */
396           case 30 : /* fall through */
397           case 31 : itype = XSTORMY16_INSN_ICALLRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_icallrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
398           default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
399           }
400         }
401       case 1 :
402         {
403           unsigned int val = (((insn >> 17) & (3 << 3)) | ((insn >> 16) & (7 << 0)));
404           switch (val)
405           {
406           case 0 : itype = XSTORMY16_INSN_HALT; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done;
407           case 2 : itype = XSTORMY16_INSN_HOLD; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done;
408           case 3 : itype = XSTORMY16_INSN_HOLDX; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done;
409           case 7 : itype = XSTORMY16_INSN_RESET; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done;
410           case 8 : /* fall through */
411           case 9 : /* fall through */
412           case 10 : /* fall through */
413           case 11 : /* fall through */
414           case 12 : /* fall through */
415           case 13 : /* fall through */
416           case 14 : /* fall through */
417           case 15 : itype = XSTORMY16_INSN_CALLRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_callrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
418           case 16 : /* fall through */
419           case 17 : /* fall through */
420           case 18 : /* fall through */
421           case 19 : /* fall through */
422           case 20 : /* fall through */
423           case 21 : /* fall through */
424           case 22 : /* fall through */
425           case 23 : itype = XSTORMY16_INSN_BGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_bgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
426           case 24 : /* fall through */
427           case 25 : /* fall through */
428           case 26 : /* fall through */
429           case 27 : /* fall through */
430           case 28 : /* fall through */
431           case 29 : /* fall through */
432           case 30 : /* fall through */
433           case 31 : itype = XSTORMY16_INSN_ICALLRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_icallrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
434           default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
435           }
436         }
437       case 2 : /* fall through */
438       case 3 :
439         {
440           unsigned int val = (((insn >> 21) & (1 << 0)));
441           switch (val)
442           {
443           case 0 : itype = XSTORMY16_INSN_JMP; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_jmp (this, current_cpu, pc, base_insn, entire_insn); goto done;
444           case 1 : itype = XSTORMY16_INSN_ICALLGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_icallgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
445           default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
446           }
447         }
448       case 4 : /* fall through */
449       case 5 :
450         {
451           unsigned int val = (((insn >> 20) & (3 << 0)));
452           switch (val)
453           {
454           case 0 : itype = XSTORMY16_INSN_PUSHGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_pushgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
455           case 1 : itype = XSTORMY16_INSN_POPGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_popgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
456           case 2 : /* fall through */
457           case 3 : itype = XSTORMY16_INSN_CALLGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_callgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
458           default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
459           }
460         }
461       case 6 :
462         {
463           unsigned int val = (((insn >> 20) & (3 << 0)));
464           switch (val)
465           {
466           case 0 : itype = XSTORMY16_INSN_DIV; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_mul (this, current_cpu, pc, base_insn, entire_insn); goto done;
467           case 1 : itype = XSTORMY16_INSN_MUL; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_mul (this, current_cpu, pc, base_insn, entire_insn); goto done;
468           case 2 : itype = XSTORMY16_INSN_DIVLH; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_sdivlh (this, current_cpu, pc, base_insn, entire_insn); goto done;
469           default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
470           }
471         }
472       case 7 :
473         {
474           unsigned int val = (((insn >> 21) & (1 << 0)));
475           switch (val)
476           {
477           case 0 : itype = XSTORMY16_INSN_SDIV; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_sdiv (this, current_cpu, pc, base_insn, entire_insn); goto done;
478           case 1 : itype = XSTORMY16_INSN_SDIVLH; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_sdivlh (this, current_cpu, pc, base_insn, entire_insn); goto done;
479           default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
480           }
481         }
482       case 8 : /* fall through */
483       case 9 : /* fall through */
484       case 10 : /* fall through */
485       case 11 : /* fall through */
486       case 12 : /* fall through */
487       case 13 : /* fall through */
488       case 14 : /* fall through */
489       case 15 : itype = XSTORMY16_INSN_CALLFIMM; xstormy16_extract_sfmt_callfimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
490       case 16 : /* fall through */
491       case 17 : /* fall through */
492       case 18 : /* fall through */
493       case 19 : /* fall through */
494       case 20 : /* fall through */
495       case 21 : /* fall through */
496       case 22 : /* fall through */
497       case 23 : itype = XSTORMY16_INSN_JMPF; xstormy16_extract_sfmt_jmpf (this, current_cpu, pc, base_insn, entire_insn); goto done;
498       case 24 : /* fall through */
499       case 25 : /* fall through */
500       case 26 : /* fall through */
501       case 27 : /* fall through */
502       case 28 : /* fall through */
503       case 29 : /* fall through */
504       case 30 : /* fall through */
505       case 31 : itype = XSTORMY16_INSN_ICALLFIMM; xstormy16_extract_sfmt_icallfimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
506       case 32 : /* fall through */
507       case 33 : /* fall through */
508       case 34 : /* fall through */
509       case 35 : /* fall through */
510       case 36 : /* fall through */
511       case 37 : /* fall through */
512       case 38 : /* fall through */
513       case 39 : itype = XSTORMY16_INSN_BNGRIMM4; xstormy16_extract_sfmt_bngrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
514       case 40 : /* fall through */
515       case 41 : /* fall through */
516       case 42 : /* fall through */
517       case 43 : /* fall through */
518       case 44 : /* fall through */
519       case 45 : /* fall through */
520       case 46 : /* fall through */
521       case 47 : itype = XSTORMY16_INSN_BPGRIMM4; xstormy16_extract_sfmt_bngrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
522       case 48 : /* fall through */
523       case 49 : /* fall through */
524       case 50 : /* fall through */
525       case 51 : /* fall through */
526       case 52 : /* fall through */
527       case 53 : /* fall through */
528       case 54 : /* fall through */
529       case 55 : itype = XSTORMY16_INSN_BNGRGR; xstormy16_extract_sfmt_bngrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
530       case 56 : /* fall through */
531       case 57 : /* fall through */
532       case 58 : /* fall through */
533       case 59 : /* fall through */
534       case 60 : /* fall through */
535       case 61 : /* fall through */
536       case 62 : /* fall through */
537       case 63 : itype = XSTORMY16_INSN_BPGRGR; xstormy16_extract_sfmt_bngrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
538       case 64 : /* fall through */
539       case 65 : /* fall through */
540       case 66 : /* fall through */
541       case 67 : /* fall through */
542       case 68 : /* fall through */
543       case 69 : /* fall through */
544       case 70 : /* fall through */
545       case 71 : itype = XSTORMY16_INSN_CLR1GRIMM; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_set1grimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
546       case 72 : /* fall through */
547       case 73 : /* fall through */
548       case 74 : /* fall through */
549       case 75 : /* fall through */
550       case 76 : /* fall through */
551       case 77 : /* fall through */
552       case 78 : /* fall through */
553       case 79 : itype = XSTORMY16_INSN_SET1GRIMM; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_set1grimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
554       case 80 : /* fall through */
555       case 81 : /* fall through */
556       case 82 : /* fall through */
557       case 83 : /* fall through */
558       case 84 : /* fall through */
559       case 85 : /* fall through */
560       case 86 : /* fall through */
561       case 87 : itype = XSTORMY16_INSN_CLR1GRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
562       case 88 : /* fall through */
563       case 89 : /* fall through */
564       case 90 : /* fall through */
565       case 91 : /* fall through */
566       case 92 : /* fall through */
567       case 93 : /* fall through */
568       case 94 : /* fall through */
569       case 95 : itype = XSTORMY16_INSN_SET1GRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
570       case 104 : /* fall through */
571       case 105 : /* fall through */
572       case 106 : /* fall through */
573       case 107 : /* fall through */
574       case 108 : /* fall through */
575       case 109 : /* fall through */
576       case 110 : /* fall through */
577       case 111 : itype = XSTORMY16_INSN_BCCGRGR; xstormy16_extract_sfmt_bccgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
578       case 128 : /* fall through */
579       case 129 : /* fall through */
580       case 130 : /* fall through */
581       case 131 : /* fall through */
582       case 132 : /* fall through */
583       case 133 : /* fall through */
584       case 134 : /* fall through */
585       case 135 : /* fall through */
586       case 136 : /* fall through */
587       case 137 : /* fall through */
588       case 138 : /* fall through */
589       case 139 : /* fall through */
590       case 140 : /* fall through */
591       case 141 : /* fall through */
592       case 142 : /* fall through */
593       case 143 : /* fall through */
594       case 144 : /* fall through */
595       case 145 : /* fall through */
596       case 146 : /* fall through */
597       case 147 : /* fall through */
598       case 148 : /* fall through */
599       case 149 : /* fall through */
600       case 150 : /* fall through */
601       case 151 : /* fall through */
602       case 152 : /* fall through */
603       case 153 : /* fall through */
604       case 154 : /* fall through */
605       case 155 : /* fall through */
606       case 156 : /* fall through */
607       case 157 : /* fall through */
608       case 158 : /* fall through */
609       case 159 : /* fall through */
610       case 160 : /* fall through */
611       case 161 : /* fall through */
612       case 162 : /* fall through */
613       case 163 : /* fall through */
614       case 164 : /* fall through */
615       case 165 : /* fall through */
616       case 166 : /* fall through */
617       case 167 : /* fall through */
618       case 168 : /* fall through */
619       case 169 : /* fall through */
620       case 170 : /* fall through */
621       case 171 : /* fall through */
622       case 172 : /* fall through */
623       case 173 : /* fall through */
624       case 174 : /* fall through */
625       case 175 : /* fall through */
626       case 176 : /* fall through */
627       case 177 : /* fall through */
628       case 178 : /* fall through */
629       case 179 : /* fall through */
630       case 180 : /* fall through */
631       case 181 : /* fall through */
632       case 182 : /* fall through */
633       case 183 : /* fall through */
634       case 184 : /* fall through */
635       case 185 : /* fall through */
636       case 186 : /* fall through */
637       case 187 : /* fall through */
638       case 188 : /* fall through */
639       case 189 : /* fall through */
640       case 190 : /* fall through */
641       case 191 : /* fall through */
642       case 192 : /* fall through */
643       case 193 : /* fall through */
644       case 194 : /* fall through */
645       case 195 : /* fall through */
646       case 196 : /* fall through */
647       case 197 : /* fall through */
648       case 198 : /* fall through */
649       case 199 : /* fall through */
650       case 200 : /* fall through */
651       case 201 : /* fall through */
652       case 202 : /* fall through */
653       case 203 : /* fall through */
654       case 204 : /* fall through */
655       case 205 : /* fall through */
656       case 206 : /* fall through */
657       case 207 : /* fall through */
658       case 208 : /* fall through */
659       case 209 : /* fall through */
660       case 210 : /* fall through */
661       case 211 : /* fall through */
662       case 212 : /* fall through */
663       case 213 : /* fall through */
664       case 214 : /* fall through */
665       case 215 : /* fall through */
666       case 216 : /* fall through */
667       case 217 : /* fall through */
668       case 218 : /* fall through */
669       case 219 : /* fall through */
670       case 220 : /* fall through */
671       case 221 : /* fall through */
672       case 222 : /* fall through */
673       case 223 : /* fall through */
674       case 224 : /* fall through */
675       case 225 : /* fall through */
676       case 226 : /* fall through */
677       case 227 : /* fall through */
678       case 228 : /* fall through */
679       case 229 : /* fall through */
680       case 230 : /* fall through */
681       case 231 : /* fall through */
682       case 232 : /* fall through */
683       case 233 : /* fall through */
684       case 234 : /* fall through */
685       case 235 : /* fall through */
686       case 236 : /* fall through */
687       case 237 : /* fall through */
688       case 238 : /* fall through */
689       case 239 : /* fall through */
690       case 240 : /* fall through */
691       case 241 : /* fall through */
692       case 242 : /* fall through */
693       case 243 : /* fall through */
694       case 244 : /* fall through */
695       case 245 : /* fall through */
696       case 246 : /* fall through */
697       case 247 : /* fall through */
698       case 248 : /* fall through */
699       case 249 : /* fall through */
700       case 250 : /* fall through */
701       case 251 : /* fall through */
702       case 252 : /* fall through */
703       case 253 : /* fall through */
704       case 254 : /* fall through */
705       case 255 :
706         {
707           unsigned int val = (((insn >> 16) & (1 << 0)));
708           switch (val)
709           {
710           case 0 : itype = XSTORMY16_INSN_BR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_br (this, current_cpu, pc, base_insn, entire_insn); goto done;
711           case 1 : itype = XSTORMY16_INSN_CALLRIMM; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_callrimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
712           default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
713           }
714         }
715       case 256 : /* fall through */
716       case 257 : /* fall through */
717       case 258 : /* fall through */
718       case 259 : /* fall through */
719       case 260 : /* fall through */
720       case 261 : /* fall through */
721       case 262 : /* fall through */
722       case 263 : /* fall through */
723       case 272 : /* fall through */
724       case 273 : /* fall through */
725       case 274 : /* fall through */
726       case 275 : /* fall through */
727       case 276 : /* fall through */
728       case 277 : /* fall through */
729       case 278 : /* fall through */
730       case 279 : /* fall through */
731       case 288 : /* fall through */
732       case 289 : /* fall through */
733       case 290 : /* fall through */
734       case 291 : /* fall through */
735       case 292 : /* fall through */
736       case 293 : /* fall through */
737       case 294 : /* fall through */
738       case 295 : /* fall through */
739       case 304 : /* fall through */
740       case 305 : /* fall through */
741       case 306 : /* fall through */
742       case 307 : /* fall through */
743       case 308 : /* fall through */
744       case 309 : /* fall through */
745       case 310 : /* fall through */
746       case 311 : /* fall through */
747       case 320 : /* fall through */
748       case 321 : /* fall through */
749       case 322 : /* fall through */
750       case 323 : /* fall through */
751       case 324 : /* fall through */
752       case 325 : /* fall through */
753       case 326 : /* fall through */
754       case 327 : /* fall through */
755       case 336 : /* fall through */
756       case 337 : /* fall through */
757       case 338 : /* fall through */
758       case 339 : /* fall through */
759       case 340 : /* fall through */
760       case 341 : /* fall through */
761       case 342 : /* fall through */
762       case 343 : /* fall through */
763       case 352 : /* fall through */
764       case 353 : /* fall through */
765       case 354 : /* fall through */
766       case 355 : /* fall through */
767       case 356 : /* fall through */
768       case 357 : /* fall through */
769       case 358 : /* fall through */
770       case 359 : /* fall through */
771       case 368 : /* fall through */
772       case 369 : /* fall through */
773       case 370 : /* fall through */
774       case 371 : /* fall through */
775       case 372 : /* fall through */
776       case 373 : /* fall through */
777       case 374 : /* fall through */
778       case 375 : itype = XSTORMY16_INSN_BCCGRIMM8; xstormy16_extract_sfmt_bccgrimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
779       case 264 : /* fall through */
780       case 265 : /* fall through */
781       case 266 : /* fall through */
782       case 267 : /* fall through */
783       case 268 : /* fall through */
784       case 269 : /* fall through */
785       case 270 : /* fall through */
786       case 271 : /* fall through */
787       case 280 : /* fall through */
788       case 281 : /* fall through */
789       case 282 : /* fall through */
790       case 283 : /* fall through */
791       case 284 : /* fall through */
792       case 285 : /* fall through */
793       case 286 : /* fall through */
794       case 287 : /* fall through */
795       case 296 : /* fall through */
796       case 297 : /* fall through */
797       case 298 : /* fall through */
798       case 299 : /* fall through */
799       case 300 : /* fall through */
800       case 301 : /* fall through */
801       case 302 : /* fall through */
802       case 303 : /* fall through */
803       case 312 : /* fall through */
804       case 313 : /* fall through */
805       case 314 : /* fall through */
806       case 315 : /* fall through */
807       case 316 : /* fall through */
808       case 317 : /* fall through */
809       case 318 : /* fall through */
810       case 319 : /* fall through */
811       case 328 : /* fall through */
812       case 329 : /* fall through */
813       case 330 : /* fall through */
814       case 331 : /* fall through */
815       case 332 : /* fall through */
816       case 333 : /* fall through */
817       case 334 : /* fall through */
818       case 335 : /* fall through */
819       case 344 : /* fall through */
820       case 345 : /* fall through */
821       case 346 : /* fall through */
822       case 347 : /* fall through */
823       case 348 : /* fall through */
824       case 349 : /* fall through */
825       case 350 : /* fall through */
826       case 351 : /* fall through */
827       case 360 : /* fall through */
828       case 361 : /* fall through */
829       case 362 : /* fall through */
830       case 363 : /* fall through */
831       case 364 : /* fall through */
832       case 365 : /* fall through */
833       case 366 : /* fall through */
834       case 367 : /* fall through */
835       case 376 : /* fall through */
836       case 377 : /* fall through */
837       case 378 : /* fall through */
838       case 379 : /* fall through */
839       case 380 : /* fall through */
840       case 381 : /* fall through */
841       case 382 : /* fall through */
842       case 383 : itype = XSTORMY16_INSN_MOVWGRIMM8; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movwgrimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
843       case 384 : /* fall through */
844       case 385 : itype = XSTORMY16_INSN_INCGRIMM2; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_incgrimm2 (this, current_cpu, pc, base_insn, entire_insn); goto done;
845       case 386 : /* fall through */
846       case 387 : itype = XSTORMY16_INSN_DECGRIMM2; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_incgrimm2 (this, current_cpu, pc, base_insn, entire_insn); goto done;
847       case 388 : /* fall through */
848       case 389 :
849         {
850           unsigned int val = (((insn >> 20) & (3 << 0)));
851           switch (val)
852           {
853           case 0 : itype = XSTORMY16_INSN_SWPB; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_swpn (this, current_cpu, pc, base_insn, entire_insn); goto done;
854           case 1 : itype = XSTORMY16_INSN_SWPN; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_swpn (this, current_cpu, pc, base_insn, entire_insn); goto done;
855           case 2 : itype = XSTORMY16_INSN_CBWGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_swpn (this, current_cpu, pc, base_insn, entire_insn); goto done;
856           case 3 : itype = XSTORMY16_INSN_NOTGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_swpn (this, current_cpu, pc, base_insn, entire_insn); goto done;
857           default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
858           }
859         }
860       case 390 : /* fall through */
861       case 391 :
862         {
863           unsigned int val = (((insn >> 20) & (3 << 0)));
864           switch (val)
865           {
866           case 0 : itype = XSTORMY16_INSN_MOVLOWGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movlowgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
867           case 1 : itype = XSTORMY16_INSN_MOVHIGHGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movlowgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
868           case 2 : itype = XSTORMY16_INSN_MASKGRIMM16; xstormy16_extract_sfmt_maskgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
869           case 3 : itype = XSTORMY16_INSN_REVGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_swpn (this, current_cpu, pc, base_insn, entire_insn); goto done;
870           default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
871           }
872         }
873       case 392 : /* fall through */
874       case 393 :
875         {
876           unsigned int val = (((insn >> 20) & (3 << 0)));
877           switch (val)
878           {
879           case 0 : itype = XSTORMY16_INSN_ANDGRIMM16; xstormy16_extract_sfmt_andgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
880           case 1 : itype = XSTORMY16_INSN_ORGRIMM16; xstormy16_extract_sfmt_andgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
881           case 2 : itype = XSTORMY16_INSN_XORGRIMM16; xstormy16_extract_sfmt_andgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
882           case 3 : itype = XSTORMY16_INSN_MOVWGRIMM16; xstormy16_extract_sfmt_movwgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
883           default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
884           }
885         }
886       case 394 : /* fall through */
887       case 395 :
888         {
889           unsigned int val = (((insn >> 20) & (3 << 0)));
890           switch (val)
891           {
892           case 0 : itype = XSTORMY16_INSN_ADDGRIMM16; xstormy16_extract_sfmt_addgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
893           case 1 : itype = XSTORMY16_INSN_ADCGRIMM16; xstormy16_extract_sfmt_adcgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
894           case 2 : itype = XSTORMY16_INSN_SUBGRIMM16; xstormy16_extract_sfmt_addgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
895           case 3 : itype = XSTORMY16_INSN_SBCGRIMM16; xstormy16_extract_sfmt_adcgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
896           default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
897           }
898         }
899       case 400 : /* fall through */
900       case 401 : /* fall through */
901       case 402 : /* fall through */
902       case 403 : /* fall through */
903       case 404 : /* fall through */
904       case 405 : /* fall through */
905       case 406 : /* fall through */
906       case 407 : itype = XSTORMY16_INSN_SWPW; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_swpw (this, current_cpu, pc, base_insn, entire_insn); goto done;
907       case 408 : /* fall through */
908       case 409 : /* fall through */
909       case 410 : /* fall through */
910       case 411 : /* fall through */
911       case 412 : /* fall through */
912       case 413 : /* fall through */
913       case 414 : /* fall through */
914       case 415 : itype = XSTORMY16_INSN_MASKGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_maskgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
915       case 432 : /* fall through */
916       case 433 : /* fall through */
917       case 434 : /* fall through */
918       case 435 : /* fall through */
919       case 436 : /* fall through */
920       case 437 : /* fall through */
921       case 438 : /* fall through */
922       case 439 : itype = XSTORMY16_INSN_ASRGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_asrgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
923       case 440 : /* fall through */
924       case 441 : /* fall through */
925       case 442 : /* fall through */
926       case 443 : /* fall through */
927       case 444 : /* fall through */
928       case 445 : /* fall through */
929       case 446 : /* fall through */
930       case 447 : itype = XSTORMY16_INSN_ASRGRIMM; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_asrgrimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
931       case 448 : /* fall through */
932       case 449 : /* fall through */
933       case 450 : /* fall through */
934       case 451 : /* fall through */
935       case 452 : /* fall through */
936       case 453 : /* fall through */
937       case 454 : /* fall through */
938       case 455 : itype = XSTORMY16_INSN_RRCGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_rrcgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
939       case 456 : /* fall through */
940       case 457 : /* fall through */
941       case 458 : /* fall through */
942       case 459 : /* fall through */
943       case 460 : /* fall through */
944       case 461 : /* fall through */
945       case 462 : /* fall through */
946       case 463 : itype = XSTORMY16_INSN_RRCGRIMM4; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_rrcgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
947       case 464 : /* fall through */
948       case 465 : /* fall through */
949       case 466 : /* fall through */
950       case 467 : /* fall through */
951       case 468 : /* fall through */
952       case 469 : /* fall through */
953       case 470 : /* fall through */
954       case 471 : itype = XSTORMY16_INSN_RLCGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_rrcgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
955       case 472 : /* fall through */
956       case 473 : /* fall through */
957       case 474 : /* fall through */
958       case 475 : /* fall through */
959       case 476 : /* fall through */
960       case 477 : /* fall through */
961       case 478 : /* fall through */
962       case 479 : itype = XSTORMY16_INSN_RLCGRIMM4; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_rrcgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
963       case 480 : /* fall through */
964       case 481 : /* fall through */
965       case 482 : /* fall through */
966       case 483 : /* fall through */
967       case 484 : /* fall through */
968       case 485 : /* fall through */
969       case 486 : /* fall through */
970       case 487 : itype = XSTORMY16_INSN_SHRGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_shrgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
971       case 488 : /* fall through */
972       case 489 : /* fall through */
973       case 490 : /* fall through */
974       case 491 : /* fall through */
975       case 492 : /* fall through */
976       case 493 : /* fall through */
977       case 494 : /* fall through */
978       case 495 : itype = XSTORMY16_INSN_SHRGRIMM; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_shrgrimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
979       case 496 : /* fall through */
980       case 497 : /* fall through */
981       case 498 : /* fall through */
982       case 499 : /* fall through */
983       case 500 : /* fall through */
984       case 501 : /* fall through */
985       case 502 : /* fall through */
986       case 503 : itype = XSTORMY16_INSN_SHLGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_shrgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
987       case 504 : /* fall through */
988       case 505 : /* fall through */
989       case 506 : /* fall through */
990       case 507 : /* fall through */
991       case 508 : /* fall through */
992       case 509 : /* fall through */
993       case 510 : /* fall through */
994       case 511 : itype = XSTORMY16_INSN_SHLGRIMM; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_shrgrimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
995       case 512 : /* fall through */
996       case 513 : /* fall through */
997       case 514 : /* fall through */
998       case 515 : /* fall through */
999       case 516 : /* fall through */
1000       case 517 : /* fall through */
1001       case 518 : /* fall through */
1002       case 519 : itype = XSTORMY16_INSN_ANDGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
1003       case 520 : /* fall through */
1004       case 521 : /* fall through */
1005       case 522 : /* fall through */
1006       case 523 : /* fall through */
1007       case 524 : /* fall through */
1008       case 525 : /* fall through */
1009       case 526 : /* fall through */
1010       case 527 : itype = XSTORMY16_INSN_ANDIMM8; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_andimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
1011       case 528 : /* fall through */
1012       case 529 : /* fall through */
1013       case 530 : /* fall through */
1014       case 531 : /* fall through */
1015       case 532 : /* fall through */
1016       case 533 : /* fall through */
1017       case 534 : /* fall through */
1018       case 535 : itype = XSTORMY16_INSN_ORGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
1019       case 536 : /* fall through */
1020       case 537 : /* fall through */
1021       case 538 : /* fall through */
1022       case 539 : /* fall through */
1023       case 540 : /* fall through */
1024       case 541 : /* fall through */
1025       case 542 : /* fall through */
1026       case 543 : itype = XSTORMY16_INSN_ORIMM8; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_andimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
1027       case 544 : /* fall through */
1028       case 545 : /* fall through */
1029       case 546 : /* fall through */
1030       case 547 : /* fall through */
1031       case 548 : /* fall through */
1032       case 549 : /* fall through */
1033       case 550 : /* fall through */
1034       case 551 : itype = XSTORMY16_INSN_XORGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
1035       case 552 : /* fall through */
1036       case 553 : /* fall through */
1037       case 554 : /* fall through */
1038       case 555 : /* fall through */
1039       case 556 : /* fall through */
1040       case 557 : /* fall through */
1041       case 558 : /* fall through */
1042       case 559 : itype = XSTORMY16_INSN_XORIMM8; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_andimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
1043       case 560 : /* fall through */
1044       case 561 : /* fall through */
1045       case 562 : /* fall through */
1046       case 563 : /* fall through */
1047       case 564 : /* fall through */
1048       case 565 : /* fall through */
1049       case 566 : /* fall through */
1050       case 567 : itype = XSTORMY16_INSN_MOVGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
1051       case 568 : /* fall through */
1052       case 569 : /* fall through */
1053       case 570 : /* fall through */
1054       case 571 : /* fall through */
1055       case 572 : /* fall through */
1056       case 573 : /* fall through */
1057       case 574 : /* fall through */
1058       case 575 : itype = XSTORMY16_INSN_MOVWIMM8; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movwimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
1059       case 584 : /* fall through */
1060       case 585 : /* fall through */
1061       case 586 : /* fall through */
1062       case 587 : /* fall through */
1063       case 588 : /* fall through */
1064       case 589 : /* fall through */
1065       case 590 : /* fall through */
1066       case 591 : itype = XSTORMY16_INSN_ADDGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_addgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
1067       case 600 : /* fall through */
1068       case 601 : /* fall through */
1069       case 602 : /* fall through */
1070       case 603 : /* fall through */
1071       case 604 : /* fall through */
1072       case 605 : /* fall through */
1073       case 606 : /* fall through */
1074       case 607 : itype = XSTORMY16_INSN_ADCGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_adcgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
1075       case 616 : /* fall through */
1076       case 617 : /* fall through */
1077       case 618 : /* fall through */
1078       case 619 : /* fall through */
1079       case 620 : /* fall through */
1080       case 621 : /* fall through */
1081       case 622 : /* fall through */
1082       case 623 : itype = XSTORMY16_INSN_SUBGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_addgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
1083       case 632 : /* fall through */
1084       case 633 : /* fall through */
1085       case 634 : /* fall through */
1086       case 635 : /* fall through */
1087       case 636 : /* fall through */
1088       case 637 : /* fall through */
1089       case 638 : /* fall through */
1090       case 639 : itype = XSTORMY16_INSN_SBCGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_adcgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
1091       case 648 : /* fall through */
1092       case 649 : /* fall through */
1093       case 650 : /* fall through */
1094       case 651 : /* fall through */
1095       case 652 : /* fall through */
1096       case 653 : /* fall through */
1097       case 654 : /* fall through */
1098       case 655 : itype = XSTORMY16_INSN_ADDGRIMM4; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_addgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
1099       case 664 : /* fall through */
1100       case 665 : /* fall through */
1101       case 666 : /* fall through */
1102       case 667 : /* fall through */
1103       case 668 : /* fall through */
1104       case 669 : /* fall through */
1105       case 670 : /* fall through */
1106       case 671 : itype = XSTORMY16_INSN_ADCGRIMM4; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_adcgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
1107       case 680 : /* fall through */
1108       case 681 : /* fall through */
1109       case 682 : /* fall through */
1110       case 683 : /* fall through */
1111       case 684 : /* fall through */
1112       case 685 : /* fall through */
1113       case 686 : /* fall through */
1114       case 687 : itype = XSTORMY16_INSN_SUBGRIMM4; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_addgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
1115       case 696 : /* fall through */
1116       case 697 : /* fall through */
1117       case 698 : /* fall through */
1118       case 699 : /* fall through */
1119       case 700 : /* fall through */
1120       case 701 : /* fall through */
1121       case 702 : /* fall through */
1122       case 703 : itype = XSTORMY16_INSN_SBCGRIMM4; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_adcgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
1123       case 712 : /* fall through */
1124       case 713 : /* fall through */
1125       case 714 : /* fall through */
1126       case 715 : /* fall through */
1127       case 716 : /* fall through */
1128       case 717 : /* fall through */
1129       case 718 : /* fall through */
1130       case 719 : itype = XSTORMY16_INSN_ADDIMM8; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_addimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
1131       case 728 : /* fall through */
1132       case 729 : /* fall through */
1133       case 730 : /* fall through */
1134       case 731 : /* fall through */
1135       case 732 : /* fall through */
1136       case 733 : /* fall through */
1137       case 734 : /* fall through */
1138       case 735 : itype = XSTORMY16_INSN_ADCIMM8; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_adcimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
1139       case 744 : /* fall through */
1140       case 745 : /* fall through */
1141       case 746 : /* fall through */
1142       case 747 : /* fall through */
1143       case 748 : /* fall through */
1144       case 749 : /* fall through */
1145       case 750 : /* fall through */
1146       case 751 : itype = XSTORMY16_INSN_SUBIMM8; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_addimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
1147       case 760 : /* fall through */
1148       case 761 : /* fall through */
1149       case 762 : /* fall through */
1150       case 763 : /* fall through */
1151       case 764 : /* fall through */
1152       case 765 : /* fall through */
1153       case 766 : /* fall through */
1154       case 767 : itype = XSTORMY16_INSN_SBCGRIMM8; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_adcimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
1155       case 768 : /* fall through */
1156       case 770 : /* fall through */
1157       case 772 : /* fall through */
1158       case 774 : /* fall through */
1159       case 776 : /* fall through */
1160       case 778 : /* fall through */
1161       case 780 : /* fall through */
1162       case 782 : itype = XSTORMY16_INSN_MOVGRGRIPOSTINC; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movgrgripostinc (this, current_cpu, pc, base_insn, entire_insn); goto done;
1163       case 769 : /* fall through */
1164       case 771 : /* fall through */
1165       case 773 : /* fall through */
1166       case 775 : /* fall through */
1167       case 777 : /* fall through */
1168       case 779 : /* fall through */
1169       case 781 : /* fall through */
1170       case 783 : itype = XSTORMY16_INSN_MOVGRGRIIPOSTINC; xstormy16_extract_sfmt_movgrgriipostinc (this, current_cpu, pc, base_insn, entire_insn); goto done;
1171       case 784 : /* fall through */
1172       case 786 : /* fall through */
1173       case 788 : /* fall through */
1174       case 790 : /* fall through */
1175       case 792 : /* fall through */
1176       case 794 : /* fall through */
1177       case 796 : /* fall through */
1178       case 798 : itype = XSTORMY16_INSN_MOVGRIPOSTINCGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movgripostincgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
1179       case 785 : /* fall through */
1180       case 787 : /* fall through */
1181       case 789 : /* fall through */
1182       case 791 : /* fall through */
1183       case 793 : /* fall through */
1184       case 795 : /* fall through */
1185       case 797 : /* fall through */
1186       case 799 : itype = XSTORMY16_INSN_MOVGRIIPOSTINCGR; xstormy16_extract_sfmt_movgriipostincgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
1187       case 800 : /* fall through */
1188       case 802 : /* fall through */
1189       case 804 : /* fall through */
1190       case 806 : /* fall through */
1191       case 808 : /* fall through */
1192       case 810 : /* fall through */
1193       case 812 : /* fall through */
1194       case 814 : itype = XSTORMY16_INSN_MOVFGRGRIPOSTINC; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movfgrgripostinc (this, current_cpu, pc, base_insn, entire_insn); goto done;
1195       case 801 : /* fall through */
1196       case 803 : /* fall through */
1197       case 805 : /* fall through */
1198       case 807 : /* fall through */
1199       case 809 : /* fall through */
1200       case 811 : /* fall through */
1201       case 813 : /* fall through */
1202       case 815 : itype = XSTORMY16_INSN_MOVFGRGRIIPOSTINC; xstormy16_extract_sfmt_movfgrgriipostinc (this, current_cpu, pc, base_insn, entire_insn); goto done;
1203       case 816 : /* fall through */
1204       case 818 : /* fall through */
1205       case 820 : /* fall through */
1206       case 822 : /* fall through */
1207       case 824 : /* fall through */
1208       case 826 : /* fall through */
1209       case 828 : /* fall through */
1210       case 830 : itype = XSTORMY16_INSN_MOVFGRIPOSTINCGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movfgripostincgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
1211       case 817 : /* fall through */
1212       case 819 : /* fall through */
1213       case 821 : /* fall through */
1214       case 823 : /* fall through */
1215       case 825 : /* fall through */
1216       case 827 : /* fall through */
1217       case 829 : /* fall through */
1218       case 831 : itype = XSTORMY16_INSN_MOVFGRIIPOSTINCGR; xstormy16_extract_sfmt_movfgriipostincgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
1219       case 832 : /* fall through */
1220       case 834 : /* fall through */
1221       case 836 : /* fall through */
1222       case 838 : /* fall through */
1223       case 840 : /* fall through */
1224       case 842 : /* fall through */
1225       case 844 : /* fall through */
1226       case 846 : itype = XSTORMY16_INSN_MOVGRGRIPREDEC; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movgrgripredec (this, current_cpu, pc, base_insn, entire_insn); goto done;
1227       case 833 : /* fall through */
1228       case 835 : /* fall through */
1229       case 837 : /* fall through */
1230       case 839 : /* fall through */
1231       case 841 : /* fall through */
1232       case 843 : /* fall through */
1233       case 845 : /* fall through */
1234       case 847 : itype = XSTORMY16_INSN_MOVGRGRIIPREDEC; xstormy16_extract_sfmt_movgrgriipredec (this, current_cpu, pc, base_insn, entire_insn); goto done;
1235       case 848 : /* fall through */
1236       case 850 : /* fall through */
1237       case 852 : /* fall through */
1238       case 854 : /* fall through */
1239       case 856 : /* fall through */
1240       case 858 : /* fall through */
1241       case 860 : /* fall through */
1242       case 862 : itype = XSTORMY16_INSN_MOVGRIPREDECGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movgripredecgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
1243       case 849 : /* fall through */
1244       case 851 : /* fall through */
1245       case 853 : /* fall through */
1246       case 855 : /* fall through */
1247       case 857 : /* fall through */
1248       case 859 : /* fall through */
1249       case 861 : /* fall through */
1250       case 863 : itype = XSTORMY16_INSN_MOVGRIIPREDECGR; xstormy16_extract_sfmt_movgriipredecgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
1251       case 864 : /* fall through */
1252       case 866 : /* fall through */
1253       case 868 : /* fall through */
1254       case 870 : /* fall through */
1255       case 872 : /* fall through */
1256       case 874 : /* fall through */
1257       case 876 : /* fall through */
1258       case 878 : itype = XSTORMY16_INSN_MOVFGRGRIPREDEC; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movfgrgripredec (this, current_cpu, pc, base_insn, entire_insn); goto done;
1259       case 865 : /* fall through */
1260       case 867 : /* fall through */
1261       case 869 : /* fall through */
1262       case 871 : /* fall through */
1263       case 873 : /* fall through */
1264       case 875 : /* fall through */
1265       case 877 : /* fall through */
1266       case 879 : itype = XSTORMY16_INSN_MOVFGRGRIIPREDEC; xstormy16_extract_sfmt_movfgrgriipredec (this, current_cpu, pc, base_insn, entire_insn); goto done;
1267       case 880 : /* fall through */
1268       case 882 : /* fall through */
1269       case 884 : /* fall through */
1270       case 886 : /* fall through */
1271       case 888 : /* fall through */
1272       case 890 : /* fall through */
1273       case 892 : /* fall through */
1274       case 894 : itype = XSTORMY16_INSN_MOVFGRIPREDECGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movfgripredecgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
1275       case 881 : /* fall through */
1276       case 883 : /* fall through */
1277       case 885 : /* fall through */
1278       case 887 : /* fall through */
1279       case 889 : /* fall through */
1280       case 891 : /* fall through */
1281       case 893 : /* fall through */
1282       case 895 : itype = XSTORMY16_INSN_MOVFGRIIPREDECGR; xstormy16_extract_sfmt_movfgriipredecgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
1283       case 896 : /* fall through */
1284       case 898 : /* fall through */
1285       case 900 : /* fall through */
1286       case 902 : /* fall through */
1287       case 904 : /* fall through */
1288       case 906 : /* fall through */
1289       case 908 : /* fall through */
1290       case 910 : itype = XSTORMY16_INSN_MOVGRGRI; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movgrgri (this, current_cpu, pc, base_insn, entire_insn); goto done;
1291       case 897 : /* fall through */
1292       case 899 : /* fall through */
1293       case 901 : /* fall through */
1294       case 903 : /* fall through */
1295       case 905 : /* fall through */
1296       case 907 : /* fall through */
1297       case 909 : /* fall through */
1298       case 911 : itype = XSTORMY16_INSN_MOVGRGRII; xstormy16_extract_sfmt_movgrgrii (this, current_cpu, pc, base_insn, entire_insn); goto done;
1299       case 912 : /* fall through */
1300       case 914 : /* fall through */
1301       case 916 : /* fall through */
1302       case 918 : /* fall through */
1303       case 920 : /* fall through */
1304       case 922 : /* fall through */
1305       case 924 : /* fall through */
1306       case 926 : itype = XSTORMY16_INSN_MOVGRIGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movgrigr (this, current_cpu, pc, base_insn, entire_insn); goto done;
1307       case 913 : /* fall through */
1308       case 915 : /* fall through */
1309       case 917 : /* fall through */
1310       case 919 : /* fall through */
1311       case 921 : /* fall through */
1312       case 923 : /* fall through */
1313       case 925 : /* fall through */
1314       case 927 : itype = XSTORMY16_INSN_MOVGRIIGR; xstormy16_extract_sfmt_movgriigr (this, current_cpu, pc, base_insn, entire_insn); goto done;
1315       case 928 : /* fall through */
1316       case 930 : /* fall through */
1317       case 932 : /* fall through */
1318       case 934 : /* fall through */
1319       case 936 : /* fall through */
1320       case 938 : /* fall through */
1321       case 940 : /* fall through */
1322       case 942 : itype = XSTORMY16_INSN_MOVFGRGRI; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movfgrgri (this, current_cpu, pc, base_insn, entire_insn); goto done;
1323       case 929 : /* fall through */
1324       case 931 : /* fall through */
1325       case 933 : /* fall through */
1326       case 935 : /* fall through */
1327       case 937 : /* fall through */
1328       case 939 : /* fall through */
1329       case 941 : /* fall through */
1330       case 943 : itype = XSTORMY16_INSN_MOVFGRGRII; xstormy16_extract_sfmt_movfgrgrii (this, current_cpu, pc, base_insn, entire_insn); goto done;
1331       case 944 : /* fall through */
1332       case 946 : /* fall through */
1333       case 948 : /* fall through */
1334       case 950 : /* fall through */
1335       case 952 : /* fall through */
1336       case 954 : /* fall through */
1337       case 956 : /* fall through */
1338       case 958 : itype = XSTORMY16_INSN_MOVFGRIGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movfgrigr (this, current_cpu, pc, base_insn, entire_insn); goto done;
1339       case 945 : /* fall through */
1340       case 947 : /* fall through */
1341       case 949 : /* fall through */
1342       case 951 : /* fall through */
1343       case 953 : /* fall through */
1344       case 955 : /* fall through */
1345       case 957 : /* fall through */
1346       case 959 : itype = XSTORMY16_INSN_MOVFGRIIGR; xstormy16_extract_sfmt_movfgriigr (this, current_cpu, pc, base_insn, entire_insn); goto done;
1347       case 960 : /* fall through */
1348       case 961 : /* fall through */
1349       case 962 : /* fall through */
1350       case 963 : /* fall through */
1351       case 964 : /* fall through */
1352       case 965 : /* fall through */
1353       case 966 : /* fall through */
1354       case 967 : /* fall through */
1355       case 968 : /* fall through */
1356       case 969 : /* fall through */
1357       case 970 : /* fall through */
1358       case 971 : /* fall through */
1359       case 972 : /* fall through */
1360       case 973 : /* fall through */
1361       case 974 : /* fall through */
1362       case 975 : itype = XSTORMY16_INSN_MOVLMEMIMM; xstormy16_extract_sfmt_movlmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
1363       case 976 : /* fall through */
1364       case 977 : /* fall through */
1365       case 978 : /* fall through */
1366       case 979 : /* fall through */
1367       case 980 : /* fall through */
1368       case 981 : /* fall through */
1369       case 982 : /* fall through */
1370       case 983 : /* fall through */
1371       case 984 : /* fall through */
1372       case 985 : /* fall through */
1373       case 986 : /* fall through */
1374       case 987 : /* fall through */
1375       case 988 : /* fall through */
1376       case 989 : /* fall through */
1377       case 990 : /* fall through */
1378       case 991 : itype = XSTORMY16_INSN_MOVHMEMIMM; xstormy16_extract_sfmt_movhmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
1379       case 992 : /* fall through */
1380       case 993 : /* fall through */
1381       case 994 : /* fall through */
1382       case 995 : /* fall through */
1383       case 996 : /* fall through */
1384       case 997 : /* fall through */
1385       case 998 : /* fall through */
1386       case 999 : itype = XSTORMY16_INSN_BNLMEMIMM; xstormy16_extract_sfmt_bnlmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
1387       case 1000 : /* fall through */
1388       case 1001 : /* fall through */
1389       case 1002 : /* fall through */
1390       case 1003 : /* fall through */
1391       case 1004 : /* fall through */
1392       case 1005 : /* fall through */
1393       case 1006 : /* fall through */
1394       case 1007 : itype = XSTORMY16_INSN_BPLMEMIMM; xstormy16_extract_sfmt_bnlmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
1395       case 1008 : /* fall through */
1396       case 1009 : /* fall through */
1397       case 1010 : /* fall through */
1398       case 1011 : /* fall through */
1399       case 1012 : /* fall through */
1400       case 1013 : /* fall through */
1401       case 1014 : /* fall through */
1402       case 1015 : itype = XSTORMY16_INSN_BNHMEMIMM; xstormy16_extract_sfmt_bnhmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
1403       case 1016 : /* fall through */
1404       case 1017 : /* fall through */
1405       case 1018 : /* fall through */
1406       case 1019 : /* fall through */
1407       case 1020 : /* fall through */
1408       case 1021 : /* fall through */
1409       case 1022 : /* fall through */
1410       case 1023 : itype = XSTORMY16_INSN_BPHMEMIMM; xstormy16_extract_sfmt_bnhmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
1411       case 1024 : /* fall through */
1412       case 1025 : /* fall through */
1413       case 1026 : /* fall through */
1414       case 1027 : /* fall through */
1415       case 1028 : /* fall through */
1416       case 1029 : /* fall through */
1417       case 1030 : /* fall through */
1418       case 1031 : /* fall through */
1419       case 1032 : /* fall through */
1420       case 1033 : /* fall through */
1421       case 1034 : /* fall through */
1422       case 1035 : /* fall through */
1423       case 1036 : /* fall through */
1424       case 1037 : /* fall through */
1425       case 1038 : /* fall through */
1426       case 1039 : /* fall through */
1427       case 1040 : /* fall through */
1428       case 1041 : /* fall through */
1429       case 1042 : /* fall through */
1430       case 1043 : /* fall through */
1431       case 1044 : /* fall through */
1432       case 1045 : /* fall through */
1433       case 1046 : /* fall through */
1434       case 1047 : /* fall through */
1435       case 1048 : /* fall through */
1436       case 1049 : /* fall through */
1437       case 1050 : /* fall through */
1438       case 1051 : /* fall through */
1439       case 1052 : /* fall through */
1440       case 1053 : /* fall through */
1441       case 1054 : /* fall through */
1442       case 1055 : /* fall through */
1443       case 1056 : /* fall through */
1444       case 1057 : /* fall through */
1445       case 1058 : /* fall through */
1446       case 1059 : /* fall through */
1447       case 1060 : /* fall through */
1448       case 1061 : /* fall through */
1449       case 1062 : /* fall through */
1450       case 1063 : /* fall through */
1451       case 1064 : /* fall through */
1452       case 1065 : /* fall through */
1453       case 1066 : /* fall through */
1454       case 1067 : /* fall through */
1455       case 1068 : /* fall through */
1456       case 1069 : /* fall through */
1457       case 1070 : /* fall through */
1458       case 1071 : /* fall through */
1459       case 1072 : /* fall through */
1460       case 1073 : /* fall through */
1461       case 1074 : /* fall through */
1462       case 1075 : /* fall through */
1463       case 1076 : /* fall through */
1464       case 1077 : /* fall through */
1465       case 1078 : /* fall through */
1466       case 1079 : /* fall through */
1467       case 1080 : /* fall through */
1468       case 1081 : /* fall through */
1469       case 1082 : /* fall through */
1470       case 1083 : /* fall through */
1471       case 1084 : /* fall through */
1472       case 1085 : /* fall through */
1473       case 1086 : /* fall through */
1474       case 1087 : /* fall through */
1475       case 1088 : /* fall through */
1476       case 1089 : /* fall through */
1477       case 1090 : /* fall through */
1478       case 1091 : /* fall through */
1479       case 1092 : /* fall through */
1480       case 1093 : /* fall through */
1481       case 1094 : /* fall through */
1482       case 1095 : /* fall through */
1483       case 1096 : /* fall through */
1484       case 1097 : /* fall through */
1485       case 1098 : /* fall through */
1486       case 1099 : /* fall through */
1487       case 1100 : /* fall through */
1488       case 1101 : /* fall through */
1489       case 1102 : /* fall through */
1490       case 1103 : /* fall through */
1491       case 1104 : /* fall through */
1492       case 1105 : /* fall through */
1493       case 1106 : /* fall through */
1494       case 1107 : /* fall through */
1495       case 1108 : /* fall through */
1496       case 1109 : /* fall through */
1497       case 1110 : /* fall through */
1498       case 1111 : /* fall through */
1499       case 1112 : /* fall through */
1500       case 1113 : /* fall through */
1501       case 1114 : /* fall through */
1502       case 1115 : /* fall through */
1503       case 1116 : /* fall through */
1504       case 1117 : /* fall through */
1505       case 1118 : /* fall through */
1506       case 1119 : /* fall through */
1507       case 1120 : /* fall through */
1508       case 1121 : /* fall through */
1509       case 1122 : /* fall through */
1510       case 1123 : /* fall through */
1511       case 1124 : /* fall through */
1512       case 1125 : /* fall through */
1513       case 1126 : /* fall through */
1514       case 1127 : /* fall through */
1515       case 1128 : /* fall through */
1516       case 1129 : /* fall through */
1517       case 1130 : /* fall through */
1518       case 1131 : /* fall through */
1519       case 1132 : /* fall through */
1520       case 1133 : /* fall through */
1521       case 1134 : /* fall through */
1522       case 1135 : /* fall through */
1523       case 1136 : /* fall through */
1524       case 1137 : /* fall through */
1525       case 1138 : /* fall through */
1526       case 1139 : /* fall through */
1527       case 1140 : /* fall through */
1528       case 1141 : /* fall through */
1529       case 1142 : /* fall through */
1530       case 1143 : /* fall through */
1531       case 1144 : /* fall through */
1532       case 1145 : /* fall through */
1533       case 1146 : /* fall through */
1534       case 1147 : /* fall through */
1535       case 1148 : /* fall through */
1536       case 1149 : /* fall through */
1537       case 1150 : /* fall through */
1538       case 1151 : itype = XSTORMY16_INSN_MOVLGRMEM; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movlgrmem (this, current_cpu, pc, base_insn, entire_insn); goto done;
1539       case 1152 : /* fall through */
1540       case 1153 : /* fall through */
1541       case 1154 : /* fall through */
1542       case 1155 : /* fall through */
1543       case 1156 : /* fall through */
1544       case 1157 : /* fall through */
1545       case 1158 : /* fall through */
1546       case 1159 : /* fall through */
1547       case 1160 : /* fall through */
1548       case 1161 : /* fall through */
1549       case 1162 : /* fall through */
1550       case 1163 : /* fall through */
1551       case 1164 : /* fall through */
1552       case 1165 : /* fall through */
1553       case 1166 : /* fall through */
1554       case 1167 : /* fall through */
1555       case 1168 : /* fall through */
1556       case 1169 : /* fall through */
1557       case 1170 : /* fall through */
1558       case 1171 : /* fall through */
1559       case 1172 : /* fall through */
1560       case 1173 : /* fall through */
1561       case 1174 : /* fall through */
1562       case 1175 : /* fall through */
1563       case 1176 : /* fall through */
1564       case 1177 : /* fall through */
1565       case 1178 : /* fall through */
1566       case 1179 : /* fall through */
1567       case 1180 : /* fall through */
1568       case 1181 : /* fall through */
1569       case 1182 : /* fall through */
1570       case 1183 : /* fall through */
1571       case 1184 : /* fall through */
1572       case 1185 : /* fall through */
1573       case 1186 : /* fall through */
1574       case 1187 : /* fall through */
1575       case 1188 : /* fall through */
1576       case 1189 : /* fall through */
1577       case 1190 : /* fall through */
1578       case 1191 : /* fall through */
1579       case 1192 : /* fall through */
1580       case 1193 : /* fall through */
1581       case 1194 : /* fall through */
1582       case 1195 : /* fall through */
1583       case 1196 : /* fall through */
1584       case 1197 : /* fall through */
1585       case 1198 : /* fall through */
1586       case 1199 : /* fall through */
1587       case 1200 : /* fall through */
1588       case 1201 : /* fall through */
1589       case 1202 : /* fall through */
1590       case 1203 : /* fall through */
1591       case 1204 : /* fall through */
1592       case 1205 : /* fall through */
1593       case 1206 : /* fall through */
1594       case 1207 : /* fall through */
1595       case 1208 : /* fall through */
1596       case 1209 : /* fall through */
1597       case 1210 : /* fall through */
1598       case 1211 : /* fall through */
1599       case 1212 : /* fall through */
1600       case 1213 : /* fall through */
1601       case 1214 : /* fall through */
1602       case 1215 : /* fall through */
1603       case 1216 : /* fall through */
1604       case 1217 : /* fall through */
1605       case 1218 : /* fall through */
1606       case 1219 : /* fall through */
1607       case 1220 : /* fall through */
1608       case 1221 : /* fall through */
1609       case 1222 : /* fall through */
1610       case 1223 : /* fall through */
1611       case 1224 : /* fall through */
1612       case 1225 : /* fall through */
1613       case 1226 : /* fall through */
1614       case 1227 : /* fall through */
1615       case 1228 : /* fall through */
1616       case 1229 : /* fall through */
1617       case 1230 : /* fall through */
1618       case 1231 : /* fall through */
1619       case 1232 : /* fall through */
1620       case 1233 : /* fall through */
1621       case 1234 : /* fall through */
1622       case 1235 : /* fall through */
1623       case 1236 : /* fall through */
1624       case 1237 : /* fall through */
1625       case 1238 : /* fall through */
1626       case 1239 : /* fall through */
1627       case 1240 : /* fall through */
1628       case 1241 : /* fall through */
1629       case 1242 : /* fall through */
1630       case 1243 : /* fall through */
1631       case 1244 : /* fall through */
1632       case 1245 : /* fall through */
1633       case 1246 : /* fall through */
1634       case 1247 : /* fall through */
1635       case 1248 : /* fall through */
1636       case 1249 : /* fall through */
1637       case 1250 : /* fall through */
1638       case 1251 : /* fall through */
1639       case 1252 : /* fall through */
1640       case 1253 : /* fall through */
1641       case 1254 : /* fall through */
1642       case 1255 : /* fall through */
1643       case 1256 : /* fall through */
1644       case 1257 : /* fall through */
1645       case 1258 : /* fall through */
1646       case 1259 : /* fall through */
1647       case 1260 : /* fall through */
1648       case 1261 : /* fall through */
1649       case 1262 : /* fall through */
1650       case 1263 : /* fall through */
1651       case 1264 : /* fall through */
1652       case 1265 : /* fall through */
1653       case 1266 : /* fall through */
1654       case 1267 : /* fall through */
1655       case 1268 : /* fall through */
1656       case 1269 : /* fall through */
1657       case 1270 : /* fall through */
1658       case 1271 : /* fall through */
1659       case 1272 : /* fall through */
1660       case 1273 : /* fall through */
1661       case 1274 : /* fall through */
1662       case 1275 : /* fall through */
1663       case 1276 : /* fall through */
1664       case 1277 : /* fall through */
1665       case 1278 : /* fall through */
1666       case 1279 : itype = XSTORMY16_INSN_MOVLMEMGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movlmemgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
1667       case 1280 : /* fall through */
1668       case 1281 : /* fall through */
1669       case 1282 : /* fall through */
1670       case 1283 : /* fall through */
1671       case 1284 : /* fall through */
1672       case 1285 : /* fall through */
1673       case 1286 : /* fall through */
1674       case 1287 : /* fall through */
1675       case 1288 : /* fall through */
1676       case 1289 : /* fall through */
1677       case 1290 : /* fall through */
1678       case 1291 : /* fall through */
1679       case 1292 : /* fall through */
1680       case 1293 : /* fall through */
1681       case 1294 : /* fall through */
1682       case 1295 : /* fall through */
1683       case 1296 : /* fall through */
1684       case 1297 : /* fall through */
1685       case 1298 : /* fall through */
1686       case 1299 : /* fall through */
1687       case 1300 : /* fall through */
1688       case 1301 : /* fall through */
1689       case 1302 : /* fall through */
1690       case 1303 : /* fall through */
1691       case 1304 : /* fall through */
1692       case 1305 : /* fall through */
1693       case 1306 : /* fall through */
1694       case 1307 : /* fall through */
1695       case 1308 : /* fall through */
1696       case 1309 : /* fall through */
1697       case 1310 : /* fall through */
1698       case 1311 : /* fall through */
1699       case 1312 : /* fall through */
1700       case 1313 : /* fall through */
1701       case 1314 : /* fall through */
1702       case 1315 : /* fall through */
1703       case 1316 : /* fall through */
1704       case 1317 : /* fall through */
1705       case 1318 : /* fall through */
1706       case 1319 : /* fall through */
1707       case 1320 : /* fall through */
1708       case 1321 : /* fall through */
1709       case 1322 : /* fall through */
1710       case 1323 : /* fall through */
1711       case 1324 : /* fall through */
1712       case 1325 : /* fall through */
1713       case 1326 : /* fall through */
1714       case 1327 : /* fall through */
1715       case 1328 : /* fall through */
1716       case 1329 : /* fall through */
1717       case 1330 : /* fall through */
1718       case 1331 : /* fall through */
1719       case 1332 : /* fall through */
1720       case 1333 : /* fall through */
1721       case 1334 : /* fall through */
1722       case 1335 : /* fall through */
1723       case 1336 : /* fall through */
1724       case 1337 : /* fall through */
1725       case 1338 : /* fall through */
1726       case 1339 : /* fall through */
1727       case 1340 : /* fall through */
1728       case 1341 : /* fall through */
1729       case 1342 : /* fall through */
1730       case 1343 : /* fall through */
1731       case 1344 : /* fall through */
1732       case 1345 : /* fall through */
1733       case 1346 : /* fall through */
1734       case 1347 : /* fall through */
1735       case 1348 : /* fall through */
1736       case 1349 : /* fall through */
1737       case 1350 : /* fall through */
1738       case 1351 : /* fall through */
1739       case 1352 : /* fall through */
1740       case 1353 : /* fall through */
1741       case 1354 : /* fall through */
1742       case 1355 : /* fall through */
1743       case 1356 : /* fall through */
1744       case 1357 : /* fall through */
1745       case 1358 : /* fall through */
1746       case 1359 : /* fall through */
1747       case 1360 : /* fall through */
1748       case 1361 : /* fall through */
1749       case 1362 : /* fall through */
1750       case 1363 : /* fall through */
1751       case 1364 : /* fall through */
1752       case 1365 : /* fall through */
1753       case 1366 : /* fall through */
1754       case 1367 : /* fall through */
1755       case 1368 : /* fall through */
1756       case 1369 : /* fall through */
1757       case 1370 : /* fall through */
1758       case 1371 : /* fall through */
1759       case 1372 : /* fall through */
1760       case 1373 : /* fall through */
1761       case 1374 : /* fall through */
1762       case 1375 : /* fall through */
1763       case 1376 : /* fall through */
1764       case 1377 : /* fall through */
1765       case 1378 : /* fall through */
1766       case 1379 : /* fall through */
1767       case 1380 : /* fall through */
1768       case 1381 : /* fall through */
1769       case 1382 : /* fall through */
1770       case 1383 : /* fall through */
1771       case 1384 : /* fall through */
1772       case 1385 : /* fall through */
1773       case 1386 : /* fall through */
1774       case 1387 : /* fall through */
1775       case 1388 : /* fall through */
1776       case 1389 : /* fall through */
1777       case 1390 : /* fall through */
1778       case 1391 : /* fall through */
1779       case 1392 : /* fall through */
1780       case 1393 : /* fall through */
1781       case 1394 : /* fall through */
1782       case 1395 : /* fall through */
1783       case 1396 : /* fall through */
1784       case 1397 : /* fall through */
1785       case 1398 : /* fall through */
1786       case 1399 : /* fall through */
1787       case 1400 : /* fall through */
1788       case 1401 : /* fall through */
1789       case 1402 : /* fall through */
1790       case 1403 : /* fall through */
1791       case 1404 : /* fall through */
1792       case 1405 : /* fall through */
1793       case 1406 : /* fall through */
1794       case 1407 : itype = XSTORMY16_INSN_MOVHGRMEM; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movhgrmem (this, current_cpu, pc, base_insn, entire_insn); goto done;
1795       case 1408 : /* fall through */
1796       case 1409 : /* fall through */
1797       case 1410 : /* fall through */
1798       case 1411 : /* fall through */
1799       case 1412 : /* fall through */
1800       case 1413 : /* fall through */
1801       case 1414 : /* fall through */
1802       case 1415 : /* fall through */
1803       case 1416 : /* fall through */
1804       case 1417 : /* fall through */
1805       case 1418 : /* fall through */
1806       case 1419 : /* fall through */
1807       case 1420 : /* fall through */
1808       case 1421 : /* fall through */
1809       case 1422 : /* fall through */
1810       case 1423 : /* fall through */
1811       case 1424 : /* fall through */
1812       case 1425 : /* fall through */
1813       case 1426 : /* fall through */
1814       case 1427 : /* fall through */
1815       case 1428 : /* fall through */
1816       case 1429 : /* fall through */
1817       case 1430 : /* fall through */
1818       case 1431 : /* fall through */
1819       case 1432 : /* fall through */
1820       case 1433 : /* fall through */
1821       case 1434 : /* fall through */
1822       case 1435 : /* fall through */
1823       case 1436 : /* fall through */
1824       case 1437 : /* fall through */
1825       case 1438 : /* fall through */
1826       case 1439 : /* fall through */
1827       case 1440 : /* fall through */
1828       case 1441 : /* fall through */
1829       case 1442 : /* fall through */
1830       case 1443 : /* fall through */
1831       case 1444 : /* fall through */
1832       case 1445 : /* fall through */
1833       case 1446 : /* fall through */
1834       case 1447 : /* fall through */
1835       case 1448 : /* fall through */
1836       case 1449 : /* fall through */
1837       case 1450 : /* fall through */
1838       case 1451 : /* fall through */
1839       case 1452 : /* fall through */
1840       case 1453 : /* fall through */
1841       case 1454 : /* fall through */
1842       case 1455 : /* fall through */
1843       case 1456 : /* fall through */
1844       case 1457 : /* fall through */
1845       case 1458 : /* fall through */
1846       case 1459 : /* fall through */
1847       case 1460 : /* fall through */
1848       case 1461 : /* fall through */
1849       case 1462 : /* fall through */
1850       case 1463 : /* fall through */
1851       case 1464 : /* fall through */
1852       case 1465 : /* fall through */
1853       case 1466 : /* fall through */
1854       case 1467 : /* fall through */
1855       case 1468 : /* fall through */
1856       case 1469 : /* fall through */
1857       case 1470 : /* fall through */
1858       case 1471 : /* fall through */
1859       case 1472 : /* fall through */
1860       case 1473 : /* fall through */
1861       case 1474 : /* fall through */
1862       case 1475 : /* fall through */
1863       case 1476 : /* fall through */
1864       case 1477 : /* fall through */
1865       case 1478 : /* fall through */
1866       case 1479 : /* fall through */
1867       case 1480 : /* fall through */
1868       case 1481 : /* fall through */
1869       case 1482 : /* fall through */
1870       case 1483 : /* fall through */
1871       case 1484 : /* fall through */
1872       case 1485 : /* fall through */
1873       case 1486 : /* fall through */
1874       case 1487 : /* fall through */
1875       case 1488 : /* fall through */
1876       case 1489 : /* fall through */
1877       case 1490 : /* fall through */
1878       case 1491 : /* fall through */
1879       case 1492 : /* fall through */
1880       case 1493 : /* fall through */
1881       case 1494 : /* fall through */
1882       case 1495 : /* fall through */
1883       case 1496 : /* fall through */
1884       case 1497 : /* fall through */
1885       case 1498 : /* fall through */
1886       case 1499 : /* fall through */
1887       case 1500 : /* fall through */
1888       case 1501 : /* fall through */
1889       case 1502 : /* fall through */
1890       case 1503 : /* fall through */
1891       case 1504 : /* fall through */
1892       case 1505 : /* fall through */
1893       case 1506 : /* fall through */
1894       case 1507 : /* fall through */
1895       case 1508 : /* fall through */
1896       case 1509 : /* fall through */
1897       case 1510 : /* fall through */
1898       case 1511 : /* fall through */
1899       case 1512 : /* fall through */
1900       case 1513 : /* fall through */
1901       case 1514 : /* fall through */
1902       case 1515 : /* fall through */
1903       case 1516 : /* fall through */
1904       case 1517 : /* fall through */
1905       case 1518 : /* fall through */
1906       case 1519 : /* fall through */
1907       case 1520 : /* fall through */
1908       case 1521 : /* fall through */
1909       case 1522 : /* fall through */
1910       case 1523 : /* fall through */
1911       case 1524 : /* fall through */
1912       case 1525 : /* fall through */
1913       case 1526 : /* fall through */
1914       case 1527 : /* fall through */
1915       case 1528 : /* fall through */
1916       case 1529 : /* fall through */
1917       case 1530 : /* fall through */
1918       case 1531 : /* fall through */
1919       case 1532 : /* fall through */
1920       case 1533 : /* fall through */
1921       case 1534 : /* fall through */
1922       case 1535 : itype = XSTORMY16_INSN_MOVHMEMGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movhmemgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
1923       case 1536 : /* fall through */
1924       case 1537 : /* fall through */
1925       case 1538 : /* fall through */
1926       case 1539 : /* fall through */
1927       case 1540 : /* fall through */
1928       case 1541 : /* fall through */
1929       case 1542 : /* fall through */
1930       case 1543 : /* fall through */
1931       case 1544 : /* fall through */
1932       case 1545 : /* fall through */
1933       case 1546 : /* fall through */
1934       case 1547 : /* fall through */
1935       case 1548 : /* fall through */
1936       case 1549 : /* fall through */
1937       case 1550 : /* fall through */
1938       case 1551 : /* fall through */
1939       case 1552 : /* fall through */
1940       case 1553 : /* fall through */
1941       case 1554 : /* fall through */
1942       case 1555 : /* fall through */
1943       case 1556 : /* fall through */
1944       case 1557 : /* fall through */
1945       case 1558 : /* fall through */
1946       case 1559 : /* fall through */
1947       case 1560 : /* fall through */
1948       case 1561 : /* fall through */
1949       case 1562 : /* fall through */
1950       case 1563 : /* fall through */
1951       case 1564 : /* fall through */
1952       case 1565 : /* fall through */
1953       case 1566 : /* fall through */
1954       case 1567 : /* fall through */
1955       case 1568 : /* fall through */
1956       case 1569 : /* fall through */
1957       case 1570 : /* fall through */
1958       case 1571 : /* fall through */
1959       case 1572 : /* fall through */
1960       case 1573 : /* fall through */
1961       case 1574 : /* fall through */
1962       case 1575 : /* fall through */
1963       case 1576 : /* fall through */
1964       case 1577 : /* fall through */
1965       case 1578 : /* fall through */
1966       case 1579 : /* fall through */
1967       case 1580 : /* fall through */
1968       case 1581 : /* fall through */
1969       case 1582 : /* fall through */
1970       case 1583 : /* fall through */
1971       case 1584 : /* fall through */
1972       case 1585 : /* fall through */
1973       case 1586 : /* fall through */
1974       case 1587 : /* fall through */
1975       case 1588 : /* fall through */
1976       case 1589 : /* fall through */
1977       case 1590 : /* fall through */
1978       case 1591 : /* fall through */
1979       case 1592 : /* fall through */
1980       case 1593 : /* fall through */
1981       case 1594 : /* fall through */
1982       case 1595 : /* fall through */
1983       case 1596 : /* fall through */
1984       case 1597 : /* fall through */
1985       case 1598 : /* fall through */
1986       case 1599 : /* fall through */
1987       case 1600 : /* fall through */
1988       case 1601 : /* fall through */
1989       case 1602 : /* fall through */
1990       case 1603 : /* fall through */
1991       case 1604 : /* fall through */
1992       case 1605 : /* fall through */
1993       case 1606 : /* fall through */
1994       case 1607 : /* fall through */
1995       case 1608 : /* fall through */
1996       case 1609 : /* fall through */
1997       case 1610 : /* fall through */
1998       case 1611 : /* fall through */
1999       case 1612 : /* fall through */
2000       case 1613 : /* fall through */
2001       case 1614 : /* fall through */
2002       case 1615 : /* fall through */
2003       case 1616 : /* fall through */
2004       case 1617 : /* fall through */
2005       case 1618 : /* fall through */
2006       case 1619 : /* fall through */
2007       case 1620 : /* fall through */
2008       case 1621 : /* fall through */
2009       case 1622 : /* fall through */
2010       case 1623 : /* fall through */
2011       case 1624 : /* fall through */
2012       case 1625 : /* fall through */
2013       case 1626 : /* fall through */
2014       case 1627 : /* fall through */
2015       case 1628 : /* fall through */
2016       case 1629 : /* fall through */
2017       case 1630 : /* fall through */
2018       case 1631 : /* fall through */
2019       case 1632 : /* fall through */
2020       case 1633 : /* fall through */
2021       case 1634 : /* fall through */
2022       case 1635 : /* fall through */
2023       case 1636 : /* fall through */
2024       case 1637 : /* fall through */
2025       case 1638 : /* fall through */
2026       case 1639 : /* fall through */
2027       case 1640 : /* fall through */
2028       case 1641 : /* fall through */
2029       case 1642 : /* fall through */
2030       case 1643 : /* fall through */
2031       case 1644 : /* fall through */
2032       case 1645 : /* fall through */
2033       case 1646 : /* fall through */
2034       case 1647 : /* fall through */
2035       case 1648 : /* fall through */
2036       case 1649 : /* fall through */
2037       case 1650 : /* fall through */
2038       case 1651 : /* fall through */
2039       case 1652 : /* fall through */
2040       case 1653 : /* fall through */
2041       case 1654 : /* fall through */
2042       case 1655 : /* fall through */
2043       case 1656 : /* fall through */
2044       case 1657 : /* fall through */
2045       case 1658 : /* fall through */
2046       case 1659 : /* fall through */
2047       case 1660 : /* fall through */
2048       case 1661 : /* fall through */
2049       case 1662 : /* fall through */
2050       case 1663 : itype = XSTORMY16_INSN_BCCIMM16; xstormy16_extract_sfmt_bccimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
2051       case 1664 : /* fall through */
2052       case 1665 : /* fall through */
2053       case 1666 : /* fall through */
2054       case 1667 : /* fall through */
2055       case 1668 : /* fall through */
2056       case 1669 : /* fall through */
2057       case 1670 : /* fall through */
2058       case 1671 : /* fall through */
2059       case 1672 : /* fall through */
2060       case 1673 : /* fall through */
2061       case 1674 : /* fall through */
2062       case 1675 : /* fall through */
2063       case 1676 : /* fall through */
2064       case 1677 : /* fall through */
2065       case 1678 : /* fall through */
2066       case 1679 : /* fall through */
2067       case 1680 : /* fall through */
2068       case 1681 : /* fall through */
2069       case 1682 : /* fall through */
2070       case 1683 : /* fall through */
2071       case 1684 : /* fall through */
2072       case 1685 : /* fall through */
2073       case 1686 : /* fall through */
2074       case 1687 : /* fall through */
2075       case 1688 : /* fall through */
2076       case 1689 : /* fall through */
2077       case 1690 : /* fall through */
2078       case 1691 : /* fall through */
2079       case 1692 : /* fall through */
2080       case 1693 : /* fall through */
2081       case 1694 : /* fall through */
2082       case 1695 : /* fall through */
2083       case 1696 : /* fall through */
2084       case 1697 : /* fall through */
2085       case 1698 : /* fall through */
2086       case 1699 : /* fall through */
2087       case 1700 : /* fall through */
2088       case 1701 : /* fall through */
2089       case 1702 : /* fall through */
2090       case 1703 : /* fall through */
2091       case 1704 : /* fall through */
2092       case 1705 : /* fall through */
2093       case 1706 : /* fall through */
2094       case 1707 : /* fall through */
2095       case 1708 : /* fall through */
2096       case 1709 : /* fall through */
2097       case 1710 : /* fall through */
2098       case 1711 : /* fall through */
2099       case 1712 : /* fall through */
2100       case 1713 : /* fall through */
2101       case 1714 : /* fall through */
2102       case 1715 : /* fall through */
2103       case 1716 : /* fall through */
2104       case 1717 : /* fall through */
2105       case 1718 : /* fall through */
2106       case 1719 : /* fall through */
2107       case 1720 : /* fall through */
2108       case 1721 : /* fall through */
2109       case 1722 : /* fall through */
2110       case 1723 : /* fall through */
2111       case 1724 : /* fall through */
2112       case 1725 : /* fall through */
2113       case 1726 : /* fall through */
2114       case 1727 : /* fall through */
2115       case 1728 : /* fall through */
2116       case 1729 : /* fall through */
2117       case 1730 : /* fall through */
2118       case 1731 : /* fall through */
2119       case 1732 : /* fall through */
2120       case 1733 : /* fall through */
2121       case 1734 : /* fall through */
2122       case 1735 : /* fall through */
2123       case 1736 : /* fall through */
2124       case 1737 : /* fall through */
2125       case 1738 : /* fall through */
2126       case 1739 : /* fall through */
2127       case 1740 : /* fall through */
2128       case 1741 : /* fall through */
2129       case 1742 : /* fall through */
2130       case 1743 : /* fall through */
2131       case 1744 : /* fall through */
2132       case 1745 : /* fall through */
2133       case 1746 : /* fall through */
2134       case 1747 : /* fall through */
2135       case 1748 : /* fall through */
2136       case 1749 : /* fall through */
2137       case 1750 : /* fall through */
2138       case 1751 : /* fall through */
2139       case 1752 : /* fall through */
2140       case 1753 : /* fall through */
2141       case 1754 : /* fall through */
2142       case 1755 : /* fall through */
2143       case 1756 : /* fall through */
2144       case 1757 : /* fall through */
2145       case 1758 : /* fall through */
2146       case 1759 : /* fall through */
2147       case 1760 : /* fall through */
2148       case 1761 : /* fall through */
2149       case 1762 : /* fall through */
2150       case 1763 : /* fall through */
2151       case 1764 : /* fall through */
2152       case 1765 : /* fall through */
2153       case 1766 : /* fall through */
2154       case 1767 : /* fall through */
2155       case 1768 : /* fall through */
2156       case 1769 : /* fall through */
2157       case 1770 : /* fall through */
2158       case 1771 : /* fall through */
2159       case 1772 : /* fall through */
2160       case 1773 : /* fall through */
2161       case 1774 : /* fall through */
2162       case 1775 : /* fall through */
2163       case 1776 : /* fall through */
2164       case 1777 : /* fall through */
2165       case 1778 : /* fall through */
2166       case 1779 : /* fall through */
2167       case 1780 : /* fall through */
2168       case 1781 : /* fall through */
2169       case 1782 : /* fall through */
2170       case 1783 : /* fall through */
2171       case 1784 : /* fall through */
2172       case 1785 : /* fall through */
2173       case 1786 : /* fall through */
2174       case 1787 : /* fall through */
2175       case 1788 : /* fall through */
2176       case 1789 : /* fall through */
2177       case 1790 : /* fall through */
2178       case 1791 : itype = XSTORMY16_INSN_BCC; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_bcc (this, current_cpu, pc, base_insn, entire_insn); goto done;
2179       case 1792 : /* fall through */
2180       case 1793 : /* fall through */
2181       case 1794 : /* fall through */
2182       case 1795 : /* fall through */
2183       case 1796 : /* fall through */
2184       case 1797 : /* fall through */
2185       case 1798 : /* fall through */
2186       case 1799 : /* fall through */
2187       case 1808 : /* fall through */
2188       case 1809 : /* fall through */
2189       case 1810 : /* fall through */
2190       case 1811 : /* fall through */
2191       case 1812 : /* fall through */
2192       case 1813 : /* fall through */
2193       case 1814 : /* fall through */
2194       case 1815 : /* fall through */
2195       case 1824 : /* fall through */
2196       case 1825 : /* fall through */
2197       case 1826 : /* fall through */
2198       case 1827 : /* fall through */
2199       case 1828 : /* fall through */
2200       case 1829 : /* fall through */
2201       case 1830 : /* fall through */
2202       case 1831 : /* fall through */
2203       case 1840 : /* fall through */
2204       case 1841 : /* fall through */
2205       case 1842 : /* fall through */
2206       case 1843 : /* fall through */
2207       case 1844 : /* fall through */
2208       case 1845 : /* fall through */
2209       case 1846 : /* fall through */
2210       case 1847 : /* fall through */
2211       case 1856 : /* fall through */
2212       case 1857 : /* fall through */
2213       case 1858 : /* fall through */
2214       case 1859 : /* fall through */
2215       case 1860 : /* fall through */
2216       case 1861 : /* fall through */
2217       case 1862 : /* fall through */
2218       case 1863 : /* fall through */
2219       case 1872 : /* fall through */
2220       case 1873 : /* fall through */
2221       case 1874 : /* fall through */
2222       case 1875 : /* fall through */
2223       case 1876 : /* fall through */
2224       case 1877 : /* fall through */
2225       case 1878 : /* fall through */
2226       case 1879 : /* fall through */
2227       case 1888 : /* fall through */
2228       case 1889 : /* fall through */
2229       case 1890 : /* fall through */
2230       case 1891 : /* fall through */
2231       case 1892 : /* fall through */
2232       case 1893 : /* fall through */
2233       case 1894 : /* fall through */
2234       case 1895 : /* fall through */
2235       case 1904 : /* fall through */
2236       case 1905 : /* fall through */
2237       case 1906 : /* fall through */
2238       case 1907 : /* fall through */
2239       case 1908 : /* fall through */
2240       case 1909 : /* fall through */
2241       case 1910 : /* fall through */
2242       case 1911 : itype = XSTORMY16_INSN_CLR1LMEMIMM; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_set1lmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
2243       case 1800 : /* fall through */
2244       case 1801 : /* fall through */
2245       case 1802 : /* fall through */
2246       case 1803 : /* fall through */
2247       case 1804 : /* fall through */
2248       case 1805 : /* fall through */
2249       case 1806 : /* fall through */
2250       case 1807 : /* fall through */
2251       case 1816 : /* fall through */
2252       case 1817 : /* fall through */
2253       case 1818 : /* fall through */
2254       case 1819 : /* fall through */
2255       case 1820 : /* fall through */
2256       case 1821 : /* fall through */
2257       case 1822 : /* fall through */
2258       case 1823 : /* fall through */
2259       case 1832 : /* fall through */
2260       case 1833 : /* fall through */
2261       case 1834 : /* fall through */
2262       case 1835 : /* fall through */
2263       case 1836 : /* fall through */
2264       case 1837 : /* fall through */
2265       case 1838 : /* fall through */
2266       case 1839 : /* fall through */
2267       case 1848 : /* fall through */
2268       case 1849 : /* fall through */
2269       case 1850 : /* fall through */
2270       case 1851 : /* fall through */
2271       case 1852 : /* fall through */
2272       case 1853 : /* fall through */
2273       case 1854 : /* fall through */
2274       case 1855 : /* fall through */
2275       case 1864 : /* fall through */
2276       case 1865 : /* fall through */
2277       case 1866 : /* fall through */
2278       case 1867 : /* fall through */
2279       case 1868 : /* fall through */
2280       case 1869 : /* fall through */
2281       case 1870 : /* fall through */
2282       case 1871 : /* fall through */
2283       case 1880 : /* fall through */
2284       case 1881 : /* fall through */
2285       case 1882 : /* fall through */
2286       case 1883 : /* fall through */
2287       case 1884 : /* fall through */
2288       case 1885 : /* fall through */
2289       case 1886 : /* fall through */
2290       case 1887 : /* fall through */
2291       case 1896 : /* fall through */
2292       case 1897 : /* fall through */
2293       case 1898 : /* fall through */
2294       case 1899 : /* fall through */
2295       case 1900 : /* fall through */
2296       case 1901 : /* fall through */
2297       case 1902 : /* fall through */
2298       case 1903 : /* fall through */
2299       case 1912 : /* fall through */
2300       case 1913 : /* fall through */
2301       case 1914 : /* fall through */
2302       case 1915 : /* fall through */
2303       case 1916 : /* fall through */
2304       case 1917 : /* fall through */
2305       case 1918 : /* fall through */
2306       case 1919 : itype = XSTORMY16_INSN_SET1LMEMIMM; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_set1lmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
2307       case 1920 : /* fall through */
2308       case 1921 : /* fall through */
2309       case 1922 : /* fall through */
2310       case 1923 : /* fall through */
2311       case 1924 : /* fall through */
2312       case 1925 : /* fall through */
2313       case 1926 : /* fall through */
2314       case 1927 : /* fall through */
2315       case 1936 : /* fall through */
2316       case 1937 : /* fall through */
2317       case 1938 : /* fall through */
2318       case 1939 : /* fall through */
2319       case 1940 : /* fall through */
2320       case 1941 : /* fall through */
2321       case 1942 : /* fall through */
2322       case 1943 : /* fall through */
2323       case 1952 : /* fall through */
2324       case 1953 : /* fall through */
2325       case 1954 : /* fall through */
2326       case 1955 : /* fall through */
2327       case 1956 : /* fall through */
2328       case 1957 : /* fall through */
2329       case 1958 : /* fall through */
2330       case 1959 : /* fall through */
2331       case 1968 : /* fall through */
2332       case 1969 : /* fall through */
2333       case 1970 : /* fall through */
2334       case 1971 : /* fall through */
2335       case 1972 : /* fall through */
2336       case 1973 : /* fall through */
2337       case 1974 : /* fall through */
2338       case 1975 : /* fall through */
2339       case 1984 : /* fall through */
2340       case 1985 : /* fall through */
2341       case 1986 : /* fall through */
2342       case 1987 : /* fall through */
2343       case 1988 : /* fall through */
2344       case 1989 : /* fall through */
2345       case 1990 : /* fall through */
2346       case 1991 : /* fall through */
2347       case 2000 : /* fall through */
2348       case 2001 : /* fall through */
2349       case 2002 : /* fall through */
2350       case 2003 : /* fall through */
2351       case 2004 : /* fall through */
2352       case 2005 : /* fall through */
2353       case 2006 : /* fall through */
2354       case 2007 : /* fall through */
2355       case 2016 : /* fall through */
2356       case 2017 : /* fall through */
2357       case 2018 : /* fall through */
2358       case 2019 : /* fall through */
2359       case 2020 : /* fall through */
2360       case 2021 : /* fall through */
2361       case 2022 : /* fall through */
2362       case 2023 : /* fall through */
2363       case 2032 : /* fall through */
2364       case 2033 : /* fall through */
2365       case 2034 : /* fall through */
2366       case 2035 : /* fall through */
2367       case 2036 : /* fall through */
2368       case 2037 : /* fall through */
2369       case 2038 : /* fall through */
2370       case 2039 : itype = XSTORMY16_INSN_CLR1HMEMIMM; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_set1hmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
2371       case 1928 : /* fall through */
2372       case 1929 : /* fall through */
2373       case 1930 : /* fall through */
2374       case 1931 : /* fall through */
2375       case 1932 : /* fall through */
2376       case 1933 : /* fall through */
2377       case 1934 : /* fall through */
2378       case 1935 : /* fall through */
2379       case 1944 : /* fall through */
2380       case 1945 : /* fall through */
2381       case 1946 : /* fall through */
2382       case 1947 : /* fall through */
2383       case 1948 : /* fall through */
2384       case 1949 : /* fall through */
2385       case 1950 : /* fall through */
2386       case 1951 : /* fall through */
2387       case 1960 : /* fall through */
2388       case 1961 : /* fall through */
2389       case 1962 : /* fall through */
2390       case 1963 : /* fall through */
2391       case 1964 : /* fall through */
2392       case 1965 : /* fall through */
2393       case 1966 : /* fall through */
2394       case 1967 : /* fall through */
2395       case 1976 : /* fall through */
2396       case 1977 : /* fall through */
2397       case 1978 : /* fall through */
2398       case 1979 : /* fall through */
2399       case 1980 : /* fall through */
2400       case 1981 : /* fall through */
2401       case 1982 : /* fall through */
2402       case 1983 : /* fall through */
2403       case 1992 : /* fall through */
2404       case 1993 : /* fall through */
2405       case 1994 : /* fall through */
2406       case 1995 : /* fall through */
2407       case 1996 : /* fall through */
2408       case 1997 : /* fall through */
2409       case 1998 : /* fall through */
2410       case 1999 : /* fall through */
2411       case 2008 : /* fall through */
2412       case 2009 : /* fall through */
2413       case 2010 : /* fall through */
2414       case 2011 : /* fall through */
2415       case 2012 : /* fall through */
2416       case 2013 : /* fall through */
2417       case 2014 : /* fall through */
2418       case 2015 : /* fall through */
2419       case 2024 : /* fall through */
2420       case 2025 : /* fall through */
2421       case 2026 : /* fall through */
2422       case 2027 : /* fall through */
2423       case 2028 : /* fall through */
2424       case 2029 : /* fall through */
2425       case 2030 : /* fall through */
2426       case 2031 : /* fall through */
2427       case 2040 : /* fall through */
2428       case 2041 : /* fall through */
2429       case 2042 : /* fall through */
2430       case 2043 : /* fall through */
2431       case 2044 : /* fall through */
2432       case 2045 : /* fall through */
2433       case 2046 : /* fall through */
2434       case 2047 : itype = XSTORMY16_INSN_SET1HMEMIMM; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_set1hmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
2435       default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn);  goto done;
2436       }
2437     }
2438
2439   }
2440
2441   /* The instruction has been decoded and fields extracted.  */
2442   done:
2443
2444   this->addr = pc;
2445   // FIXME: To be redone (to handle ISA variants).
2446   this->idesc = & xstormy16_idesc::idesc_table[itype];
2447   // ??? record semantic handler?
2448   assert(this->idesc->sem_index == itype);
2449 }
2450
2451 void
2452 xstormy16_extract_sfmt_empty (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
2453     xstormy16_insn_word insn = entire_insn;
2454 #define FLD(f) abuf->fields.fmt_empty.f
2455
2456
2457   /* Record the fields for the semantic handler.  */
2458   if (UNLIKELY(current_cpu->trace_extract_p))
2459     {
2460       current_cpu->trace_stream 
2461         << "0x" << hex << pc << dec << " (sfmt_empty)\t"
2462         << endl;
2463     }
2464
2465 #undef FLD
2466 }
2467
2468 void
2469 xstormy16_extract_sfmt_movlmemimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
2470     xstormy16_insn_word insn = entire_insn;
2471 #define FLD(f) abuf->fields.sfmt_movlmemimm.f
2472     UINT f_op2m;
2473     UINT f_lmem8;
2474     UINT f_imm16;
2475
2476     f_op2m = EXTRACT_MSB0_UINT (insn, 32, 7, 1);
2477     f_lmem8 = EXTRACT_MSB0_UINT (insn, 32, 8, 8);
2478     f_imm16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16);
2479
2480   /* Record the fields for the semantic handler.  */
2481   FLD (f_imm16) = f_imm16;
2482   FLD (f_lmem8) = f_lmem8;
2483   FLD (f_op2m) = f_op2m;
2484   if (UNLIKELY(current_cpu->trace_extract_p))
2485     {
2486       current_cpu->trace_stream 
2487         << "0x" << hex << pc << dec << " (sfmt_movlmemimm)\t"
2488         << " f_imm16:0x" << hex << f_imm16 << dec
2489         << " f_lmem8:0x" << hex << f_lmem8 << dec
2490         << " f_op2m:0x" << hex << f_op2m << dec
2491         << endl;
2492     }
2493
2494 #undef FLD
2495 }
2496
2497 void
2498 xstormy16_extract_sfmt_movhmemimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
2499     xstormy16_insn_word insn = entire_insn;
2500 #define FLD(f) abuf->fields.sfmt_movhmemimm.f
2501     UINT f_op2m;
2502     HI f_hmem8;
2503     UINT f_imm16;
2504
2505     f_op2m = EXTRACT_MSB0_UINT (insn, 32, 7, 1);
2506     f_hmem8 = ((EXTRACT_MSB0_UINT (insn, 32, 8, 8)) + (32512));
2507     f_imm16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16);
2508
2509   /* Record the fields for the semantic handler.  */
2510   FLD (f_hmem8) = f_hmem8;
2511   FLD (f_imm16) = f_imm16;
2512   FLD (f_op2m) = f_op2m;
2513   if (UNLIKELY(current_cpu->trace_extract_p))
2514     {
2515       current_cpu->trace_stream 
2516         << "0x" << hex << pc << dec << " (sfmt_movhmemimm)\t"
2517         << " f_hmem8:0x" << hex << f_hmem8 << dec
2518         << " f_imm16:0x" << hex << f_imm16 << dec
2519         << " f_op2m:0x" << hex << f_op2m << dec
2520         << endl;
2521     }
2522
2523 #undef FLD
2524 }
2525
2526 void
2527 xstormy16_extract_sfmt_movlgrmem (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
2528     xstormy16_insn_word insn = entire_insn;
2529 #define FLD(f) abuf->fields.sfmt_movlgrmem.f
2530     UINT f_Rm;
2531     UINT f_op2m;
2532     UINT f_lmem8;
2533
2534     f_Rm = EXTRACT_MSB0_UINT (insn, 16, 4, 3);
2535     f_op2m = EXTRACT_MSB0_UINT (insn, 16, 7, 1);
2536     f_lmem8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
2537
2538   /* Record the fields for the semantic handler.  */
2539   FLD (f_Rm) = f_Rm;
2540   FLD (f_lmem8) = f_lmem8;
2541   FLD (f_op2m) = f_op2m;
2542   if (UNLIKELY(current_cpu->trace_extract_p))
2543     {
2544       current_cpu->trace_stream 
2545         << "0x" << hex << pc << dec << " (sfmt_movlgrmem)\t"
2546         << " f_Rm:0x" << hex << f_Rm << dec
2547         << " f_lmem8:0x" << hex << f_lmem8 << dec
2548         << " f_op2m:0x" << hex << f_op2m << dec
2549         << endl;
2550     }
2551
2552 #undef FLD
2553 }
2554
2555 void
2556 xstormy16_extract_sfmt_movhgrmem (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
2557     xstormy16_insn_word insn = entire_insn;
2558 #define FLD(f) abuf->fields.sfmt_movhgrmem.f
2559     UINT f_Rm;
2560     UINT f_op2m;
2561     HI f_hmem8;
2562
2563     f_Rm = EXTRACT_MSB0_UINT (insn, 16, 4, 3);
2564     f_op2m = EXTRACT_MSB0_UINT (insn, 16, 7, 1);
2565     f_hmem8 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) + (32512));
2566
2567   /* Record the fields for the semantic handler.  */
2568   FLD (f_Rm) = f_Rm;
2569   FLD (f_hmem8) = f_hmem8;
2570   FLD (f_op2m) = f_op2m;
2571   if (UNLIKELY(current_cpu->trace_extract_p))
2572     {
2573       current_cpu->trace_stream 
2574         << "0x" << hex << pc << dec << " (sfmt_movhgrmem)\t"
2575         << " f_Rm:0x" << hex << f_Rm << dec
2576         << " f_hmem8:0x" << hex << f_hmem8 << dec
2577         << " f_op2m:0x" << hex << f_op2m << dec
2578         << endl;
2579     }
2580
2581 #undef FLD
2582 }
2583
2584 void
2585 xstormy16_extract_sfmt_movlmemgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
2586     xstormy16_insn_word insn = entire_insn;
2587 #define FLD(f) abuf->fields.sfmt_movlgrmem.f
2588     UINT f_Rm;
2589     UINT f_op2m;
2590     UINT f_lmem8;
2591
2592     f_Rm = EXTRACT_MSB0_UINT (insn, 16, 4, 3);
2593     f_op2m = EXTRACT_MSB0_UINT (insn, 16, 7, 1);
2594     f_lmem8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
2595
2596   /* Record the fields for the semantic handler.  */
2597   FLD (f_Rm) = f_Rm;
2598   FLD (f_lmem8) = f_lmem8;
2599   FLD (f_op2m) = f_op2m;
2600   if (UNLIKELY(current_cpu->trace_extract_p))
2601     {
2602       current_cpu->trace_stream 
2603         << "0x" << hex << pc << dec << " (sfmt_movlmemgr)\t"
2604         << " f_Rm:0x" << hex << f_Rm << dec
2605         << " f_lmem8:0x" << hex << f_lmem8 << dec
2606         << " f_op2m:0x" << hex << f_op2m << dec
2607         << endl;
2608     }
2609
2610 #undef FLD
2611 }
2612
2613 void
2614 xstormy16_extract_sfmt_movhmemgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
2615     xstormy16_insn_word insn = entire_insn;
2616 #define FLD(f) abuf->fields.sfmt_movhgrmem.f
2617     UINT f_Rm;
2618     UINT f_op2m;
2619     HI f_hmem8;
2620
2621     f_Rm = EXTRACT_MSB0_UINT (insn, 16, 4, 3);
2622     f_op2m = EXTRACT_MSB0_UINT (insn, 16, 7, 1);
2623     f_hmem8 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) + (32512));
2624
2625   /* Record the fields for the semantic handler.  */
2626   FLD (f_Rm) = f_Rm;
2627   FLD (f_hmem8) = f_hmem8;
2628   FLD (f_op2m) = f_op2m;
2629   if (UNLIKELY(current_cpu->trace_extract_p))
2630     {
2631       current_cpu->trace_stream 
2632         << "0x" << hex << pc << dec << " (sfmt_movhmemgr)\t"
2633         << " f_Rm:0x" << hex << f_Rm << dec
2634         << " f_hmem8:0x" << hex << f_hmem8 << dec
2635         << " f_op2m:0x" << hex << f_op2m << dec
2636         << endl;
2637     }
2638
2639 #undef FLD
2640 }
2641
2642 void
2643 xstormy16_extract_sfmt_movgrgri (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
2644     xstormy16_insn_word insn = entire_insn;
2645 #define FLD(f) abuf->fields.sfmt_movfgrgrii.f
2646     UINT f_op2m;
2647     UINT f_Rs;
2648     UINT f_Rdm;
2649
2650     f_op2m = EXTRACT_MSB0_UINT (insn, 16, 7, 1);
2651     f_Rs = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
2652     f_Rdm = EXTRACT_MSB0_UINT (insn, 16, 13, 3);
2653
2654   /* Record the fields for the semantic handler.  */
2655   FLD (f_Rs) = f_Rs;
2656   FLD (f_Rdm) = f_Rdm;
2657   FLD (f_op2m) = f_op2m;
2658   if (UNLIKELY(current_cpu->trace_extract_p))
2659     {
2660       current_cpu->trace_stream 
2661         << "0x" << hex << pc << dec << " (sfmt_movgrgri)\t"
2662         << " f_Rs:0x" << hex << f_Rs << dec
2663         << " f_Rdm:0x" << hex << f_Rdm << dec
2664         << " f_op2m:0x" << hex << f_op2m << dec
2665         << endl;
2666     }
2667
2668 #undef FLD
2669 }
2670
2671 void
2672 xstormy16_extract_sfmt_movgrgripostinc (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
2673     xstormy16_insn_word insn = entire_insn;
2674 #define FLD(f) abuf->fields.sfmt_movfgrgrii.f
2675     UINT f_op2m;
2676     UINT f_Rs;
2677     UINT f_Rdm;
2678
2679     f_op2m = EXTRACT_MSB0_UINT (insn, 16, 7, 1);
2680     f_Rs = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
2681     f_Rdm = EXTRACT_MSB0_UINT (insn, 16, 13, 3);
2682
2683   /* Record the fields for the semantic handler.  */
2684   FLD (f_Rs) = f_Rs;
2685   FLD (f_Rdm) = f_Rdm;
2686   FLD (f_op2m) = f_op2m;
2687   if (UNLIKELY(current_cpu->trace_extract_p))
2688     {
2689       current_cpu->trace_stream 
2690         << "0x" << hex << pc << dec << " (sfmt_movgrgripostinc)\t"
2691         << " f_Rs:0x" << hex << f_Rs << dec
2692         << " f_Rdm:0x" << hex << f_Rdm << dec
2693         << " f_op2m:0x" << hex << f_op2m << dec
2694         << endl;
2695     }
2696
2697 #undef FLD
2698 }
2699
2700 void
2701 xstormy16_extract_sfmt_movgrgripredec (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
2702     xstormy16_insn_word insn = entire_insn;
2703 #define FLD(f) abuf->fields.sfmt_movfgrgrii.f
2704     UINT f_op2m;
2705     UINT f_Rs;
2706     UINT f_Rdm;
2707
2708     f_op2m = EXTRACT_MSB0_UINT (insn, 16, 7, 1);
2709     f_Rs = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
2710     f_Rdm = EXTRACT_MSB0_UINT (insn, 16, 13, 3);
2711
2712   /* Record the fields for the semantic handler.  */
2713   FLD (f_Rs) = f_Rs;
2714   FLD (f_Rdm) = f_Rdm;
2715   FLD (f_op2m) = f_op2m;
2716   if (UNLIKELY(current_cpu->trace_extract_p))
2717     {
2718       current_cpu->trace_stream 
2719         << "0x" << hex << pc << dec << " (sfmt_movgrgripredec)\t"
2720         << " f_Rs:0x" << hex << f_Rs << dec
2721         << " f_Rdm:0x" << hex << f_Rdm << dec
2722         << " f_op2m:0x" << hex << f_op2m << dec
2723         << endl;
2724     }
2725
2726 #undef FLD
2727 }
2728
2729 void
2730 xstormy16_extract_sfmt_movgrigr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
2731     xstormy16_insn_word insn = entire_insn;
2732 #define FLD(f) abuf->fields.sfmt_movfgrgrii.f
2733     UINT f_op2m;
2734     UINT f_Rs;
2735     UINT f_Rdm;
2736
2737     f_op2m = EXTRACT_MSB0_UINT (insn, 16, 7, 1);
2738     f_Rs = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
2739     f_Rdm = EXTRACT_MSB0_UINT (insn, 16, 13, 3);
2740
2741   /* Record the fields for the semantic handler.  */
2742   FLD (f_Rdm) = f_Rdm;
2743   FLD (f_Rs) = f_Rs;
2744   FLD (f_op2m) = f_op2m;
2745   if (UNLIKELY(current_cpu->trace_extract_p))
2746     {
2747       current_cpu->trace_stream 
2748         << "0x" << hex << pc << dec << " (sfmt_movgrigr)\t"
2749         << " f_Rdm:0x" << hex << f_Rdm << dec
2750         << " f_Rs:0x" << hex << f_Rs << dec
2751         << " f_op2m:0x" << hex << f_op2m << dec
2752         << endl;
2753     }
2754
2755 #undef FLD
2756 }
2757
2758 void
2759 xstormy16_extract_sfmt_movgripostincgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
2760     xstormy16_insn_word insn = entire_insn;
2761 #define FLD(f) abuf->fields.sfmt_movfgrgrii.f
2762     UINT f_op2m;
2763     UINT f_Rs;
2764     UINT f_Rdm;
2765
2766     f_op2m = EXTRACT_MSB0_UINT (insn, 16, 7, 1);
2767     f_Rs = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
2768     f_Rdm = EXTRACT_MSB0_UINT (insn, 16, 13, 3);
2769
2770   /* Record the fields for the semantic handler.  */
2771   FLD (f_Rdm) = f_Rdm;
2772   FLD (f_Rs) = f_Rs;
2773   FLD (f_op2m) = f_op2m;
2774   if (UNLIKELY(current_cpu->trace_extract_p))
2775     {
2776       current_cpu->trace_stream 
2777         << "0x" << hex << pc << dec << " (sfmt_movgripostincgr)\t"
2778         << " f_Rdm:0x" << hex << f_Rdm << dec
2779         << " f_Rs:0x" << hex << f_Rs << dec
2780         << " f_op2m:0x" << hex << f_op2m << dec
2781         << endl;
2782     }
2783
2784 #undef FLD
2785 }
2786
2787 void
2788 xstormy16_extract_sfmt_movgripredecgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
2789     xstormy16_insn_word insn = entire_insn;
2790 #define FLD(f) abuf->fields.sfmt_movfgrgrii.f
2791     UINT f_op2m;
2792     UINT f_Rs;
2793     UINT f_Rdm;
2794
2795     f_op2m = EXTRACT_MSB0_UINT (insn, 16, 7, 1);
2796     f_Rs = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
2797     f_Rdm = EXTRACT_MSB0_UINT (insn, 16, 13, 3);
2798
2799   /* Record the fields for the semantic handler.  */
2800   FLD (f_Rdm) = f_Rdm;
2801   FLD (f_Rs) = f_Rs;
2802   FLD (f_op2m) = f_op2m;
2803   if (UNLIKELY(current_cpu->trace_extract_p))
2804     {
2805       current_cpu->trace_stream 
2806         << "0x" << hex << pc << dec << " (sfmt_movgripredecgr)\t"
2807         << " f_Rdm:0x" << hex << f_Rdm << dec
2808         << " f_Rs:0x" << hex << f_Rs << dec
2809         << " f_op2m:0x" << hex << f_op2m << dec
2810         << endl;
2811     }
2812
2813 #undef FLD
2814 }
2815
2816 void
2817 xstormy16_extract_sfmt_movgrgrii (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
2818     xstormy16_insn_word insn = entire_insn;
2819 #define FLD(f) abuf->fields.sfmt_movfgrgrii.f
2820     UINT f_op2m;
2821     UINT f_Rs;
2822     UINT f_Rdm;
2823     INT f_imm12;
2824
2825     f_op2m = EXTRACT_MSB0_UINT (insn, 32, 7, 1);
2826     f_Rs = EXTRACT_MSB0_UINT (insn, 32, 8, 4);
2827     f_Rdm = EXTRACT_MSB0_UINT (insn, 32, 13, 3);
2828     f_imm12 = EXTRACT_MSB0_INT (insn, 32, 20, 12);
2829
2830   /* Record the fields for the semantic handler.  */
2831   FLD (f_Rs) = f_Rs;
2832   FLD (f_Rdm) = f_Rdm;
2833   FLD (f_imm12) = f_imm12;
2834   FLD (f_op2m) = f_op2m;
2835   if (UNLIKELY(current_cpu->trace_extract_p))
2836     {
2837       current_cpu->trace_stream 
2838         << "0x" << hex << pc << dec << " (sfmt_movgrgrii)\t"
2839         << " f_Rs:0x" << hex << f_Rs << dec
2840         << " f_Rdm:0x" << hex << f_Rdm << dec
2841         << " f_imm12:0x" << hex << f_imm12 << dec
2842         << " f_op2m:0x" << hex << f_op2m << dec
2843         << endl;
2844     }
2845
2846 #undef FLD
2847 }
2848
2849 void
2850 xstormy16_extract_sfmt_movgrgriipostinc (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
2851     xstormy16_insn_word insn = entire_insn;
2852 #define FLD(f) abuf->fields.sfmt_movfgrgrii.f
2853     UINT f_op2m;
2854     UINT f_Rs;
2855     UINT f_Rdm;
2856     INT f_imm12;
2857
2858     f_op2m = EXTRACT_MSB0_UINT (insn, 32, 7, 1);
2859     f_Rs = EXTRACT_MSB0_UINT (insn, 32, 8, 4);
2860     f_Rdm = EXTRACT_MSB0_UINT (insn, 32, 13, 3);
2861     f_imm12 = EXTRACT_MSB0_INT (insn, 32, 20, 12);
2862
2863   /* Record the fields for the semantic handler.  */
2864   FLD (f_Rs) = f_Rs;
2865   FLD (f_Rdm) = f_Rdm;
2866   FLD (f_imm12) = f_imm12;
2867   FLD (f_op2m) = f_op2m;
2868   if (UNLIKELY(current_cpu->trace_extract_p))
2869     {
2870       current_cpu->trace_stream 
2871         << "0x" << hex << pc << dec << " (sfmt_movgrgriipostinc)\t"
2872         << " f_Rs:0x" << hex << f_Rs << dec
2873         << " f_Rdm:0x" << hex << f_Rdm << dec
2874         << " f_imm12:0x" << hex << f_imm12 << dec
2875         << " f_op2m:0x" << hex << f_op2m << dec
2876         << endl;
2877     }
2878
2879 #undef FLD
2880 }
2881
2882 void
2883 xstormy16_extract_sfmt_movgrgriipredec (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
2884     xstormy16_insn_word insn = entire_insn;
2885 #define FLD(f) abuf->fields.sfmt_movfgrgrii.f
2886     UINT f_op2m;
2887     UINT f_Rs;
2888     UINT f_Rdm;
2889     INT f_imm12;
2890
2891     f_op2m = EXTRACT_MSB0_UINT (insn, 32, 7, 1);
2892     f_Rs = EXTRACT_MSB0_UINT (insn, 32, 8, 4);
2893     f_Rdm = EXTRACT_MSB0_UINT (insn, 32, 13, 3);
2894     f_imm12 = EXTRACT_MSB0_INT (insn, 32, 20, 12);
2895
2896   /* Record the fields for the semantic handler.  */
2897   FLD (f_Rs) = f_Rs;
2898   FLD (f_Rdm) = f_Rdm;
2899   FLD (f_imm12) = f_imm12;
2900   FLD (f_op2m) = f_op2m;
2901   if (UNLIKELY(current_cpu->trace_extract_p))
2902     {
2903       current_cpu->trace_stream 
2904         << "0x" << hex << pc << dec << " (sfmt_movgrgriipredec)\t"
2905         << " f_Rs:0x" << hex << f_Rs << dec
2906         << " f_Rdm:0x" << hex << f_Rdm << dec
2907         << " f_imm12:0x" << hex << f_imm12 << dec
2908         << " f_op2m:0x" << hex << f_op2m << dec
2909         << endl;
2910     }
2911
2912 #undef FLD
2913 }
2914
2915 void
2916 xstormy16_extract_sfmt_movgriigr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
2917     xstormy16_insn_word insn = entire_insn;
2918 #define FLD(f) abuf->fields.sfmt_movfgrgrii.f
2919     UINT f_op2m;
2920     UINT f_Rs;
2921     UINT f_Rdm;
2922     INT f_imm12;
2923
2924     f_op2m = EXTRACT_MSB0_UINT (insn, 32, 7, 1);
2925     f_Rs = EXTRACT_MSB0_UINT (insn, 32, 8, 4);
2926     f_Rdm = EXTRACT_MSB0_UINT (insn, 32, 13, 3);
2927     f_imm12 = EXTRACT_MSB0_INT (insn, 32, 20, 12);
2928
2929   /* Record the fields for the semantic handler.  */
2930   FLD (f_Rdm) = f_Rdm;
2931   FLD (f_Rs) = f_Rs;
2932   FLD (f_imm12) = f_imm12;
2933   FLD (f_op2m) = f_op2m;
2934   if (UNLIKELY(current_cpu->trace_extract_p))
2935     {
2936       current_cpu->trace_stream 
2937         << "0x" << hex << pc << dec << " (sfmt_movgriigr)\t"
2938         << " f_Rdm:0x" << hex << f_Rdm << dec
2939         << " f_Rs:0x" << hex << f_Rs << dec
2940         << " f_imm12:0x" << hex << f_imm12 << dec
2941         << " f_op2m:0x" << hex << f_op2m << dec
2942         << endl;
2943     }
2944
2945 #undef FLD
2946 }
2947
2948 void
2949 xstormy16_extract_sfmt_movgriipostincgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
2950     xstormy16_insn_word insn = entire_insn;
2951 #define FLD(f) abuf->fields.sfmt_movfgrgrii.f
2952     UINT f_op2m;
2953     UINT f_Rs;
2954     UINT f_Rdm;
2955     INT f_imm12;
2956
2957     f_op2m = EXTRACT_MSB0_UINT (insn, 32, 7, 1);
2958     f_Rs = EXTRACT_MSB0_UINT (insn, 32, 8, 4);
2959     f_Rdm = EXTRACT_MSB0_UINT (insn, 32, 13, 3);
2960     f_imm12 = EXTRACT_MSB0_INT (insn, 32, 20, 12);
2961
2962   /* Record the fields for the semantic handler.  */
2963   FLD (f_Rdm) = f_Rdm;
2964   FLD (f_Rs) = f_Rs;
2965   FLD (f_imm12) = f_imm12;
2966   FLD (f_op2m) = f_op2m;
2967   if (UNLIKELY(current_cpu->trace_extract_p))
2968     {
2969       current_cpu->trace_stream 
2970         << "0x" << hex << pc << dec << " (sfmt_movgriipostincgr)\t"
2971         << " f_Rdm:0x" << hex << f_Rdm << dec
2972         << " f_Rs:0x" << hex << f_Rs << dec
2973         << " f_imm12:0x" << hex << f_imm12 << dec
2974         << " f_op2m:0x" << hex << f_op2m << dec
2975         << endl;
2976     }
2977
2978 #undef FLD
2979 }
2980
2981 void
2982 xstormy16_extract_sfmt_movgriipredecgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
2983     xstormy16_insn_word insn = entire_insn;
2984 #define FLD(f) abuf->fields.sfmt_movfgrgrii.f
2985     UINT f_op2m;
2986     UINT f_Rs;
2987     UINT f_Rdm;
2988     INT f_imm12;
2989
2990     f_op2m = EXTRACT_MSB0_UINT (insn, 32, 7, 1);
2991     f_Rs = EXTRACT_MSB0_UINT (insn, 32, 8, 4);
2992     f_Rdm = EXTRACT_MSB0_UINT (insn, 32, 13, 3);
2993     f_imm12 = EXTRACT_MSB0_INT (insn, 32, 20, 12);
2994
2995   /* Record the fields for the semantic handler.  */
2996   FLD (f_Rdm) = f_Rdm;
2997   FLD (f_Rs) = f_Rs;
2998   FLD (f_imm12) = f_imm12;
2999   FLD (f_op2m) = f_op2m;
3000   if (UNLIKELY(current_cpu->trace_extract_p))
3001     {
3002       current_cpu->trace_stream 
3003         << "0x" << hex << pc << dec << " (sfmt_movgriipredecgr)\t"
3004         << " f_Rdm:0x" << hex << f_Rdm << dec
3005         << " f_Rs:0x" << hex << f_Rs << dec
3006         << " f_imm12:0x" << hex << f_imm12 << dec
3007         << " f_op2m:0x" << hex << f_op2m << dec
3008         << endl;
3009     }
3010
3011 #undef FLD
3012 }
3013
3014 void
3015 xstormy16_extract_sfmt_movgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3016     xstormy16_insn_word insn = entire_insn;
3017 #define FLD(f) abuf->fields.sfmt_bccgrgr.f
3018     UINT f_Rs;
3019     UINT f_Rd;
3020
3021     f_Rs = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3022     f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
3023
3024   /* Record the fields for the semantic handler.  */
3025   FLD (f_Rs) = f_Rs;
3026   FLD (f_Rd) = f_Rd;
3027   if (UNLIKELY(current_cpu->trace_extract_p))
3028     {
3029       current_cpu->trace_stream 
3030         << "0x" << hex << pc << dec << " (sfmt_movgrgr)\t"
3031         << " f_Rs:0x" << hex << f_Rs << dec
3032         << " f_Rd:0x" << hex << f_Rd << dec
3033         << endl;
3034     }
3035
3036 #undef FLD
3037 }
3038
3039 void
3040 xstormy16_extract_sfmt_movwimm8 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3041     xstormy16_insn_word insn = entire_insn;
3042 #define FLD(f) abuf->fields.sfmt_bccgrimm8.f
3043     UINT f_imm8;
3044
3045     f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
3046
3047   /* Record the fields for the semantic handler.  */
3048   FLD (f_imm8) = f_imm8;
3049   if (UNLIKELY(current_cpu->trace_extract_p))
3050     {
3051       current_cpu->trace_stream 
3052         << "0x" << hex << pc << dec << " (sfmt_movwimm8)\t"
3053         << " f_imm8:0x" << hex << f_imm8 << dec
3054         << endl;
3055     }
3056
3057 #undef FLD
3058 }
3059
3060 void
3061 xstormy16_extract_sfmt_movwgrimm8 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3062     xstormy16_insn_word insn = entire_insn;
3063 #define FLD(f) abuf->fields.sfmt_bccgrimm8.f
3064     UINT f_Rm;
3065     UINT f_imm8;
3066
3067     f_Rm = EXTRACT_MSB0_UINT (insn, 16, 4, 3);
3068     f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
3069
3070   /* Record the fields for the semantic handler.  */
3071   FLD (f_Rm) = f_Rm;
3072   FLD (f_imm8) = f_imm8;
3073   if (UNLIKELY(current_cpu->trace_extract_p))
3074     {
3075       current_cpu->trace_stream 
3076         << "0x" << hex << pc << dec << " (sfmt_movwgrimm8)\t"
3077         << " f_Rm:0x" << hex << f_Rm << dec
3078         << " f_imm8:0x" << hex << f_imm8 << dec
3079         << endl;
3080     }
3081
3082 #undef FLD
3083 }
3084
3085 void
3086 xstormy16_extract_sfmt_movwgrimm16 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3087     xstormy16_insn_word insn = entire_insn;
3088 #define FLD(f) abuf->fields.sfmt_movwgrimm16.f
3089     UINT f_Rd;
3090     UINT f_imm16;
3091
3092     f_Rd = EXTRACT_MSB0_UINT (insn, 32, 12, 4);
3093     f_imm16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16);
3094
3095   /* Record the fields for the semantic handler.  */
3096   FLD (f_Rd) = f_Rd;
3097   FLD (f_imm16) = f_imm16;
3098   if (UNLIKELY(current_cpu->trace_extract_p))
3099     {
3100       current_cpu->trace_stream 
3101         << "0x" << hex << pc << dec << " (sfmt_movwgrimm16)\t"
3102         << " f_Rd:0x" << hex << f_Rd << dec
3103         << " f_imm16:0x" << hex << f_imm16 << dec
3104         << endl;
3105     }
3106
3107 #undef FLD
3108 }
3109
3110 void
3111 xstormy16_extract_sfmt_movlowgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3112     xstormy16_insn_word insn = entire_insn;
3113 #define FLD(f) abuf->fields.sfmt_jmp.f
3114     UINT f_Rd;
3115
3116     f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
3117
3118   /* Record the fields for the semantic handler.  */
3119   FLD (f_Rd) = f_Rd;
3120   if (UNLIKELY(current_cpu->trace_extract_p))
3121     {
3122       current_cpu->trace_stream 
3123         << "0x" << hex << pc << dec << " (sfmt_movlowgr)\t"
3124         << " f_Rd:0x" << hex << f_Rd << dec
3125         << endl;
3126     }
3127
3128 #undef FLD
3129 }
3130
3131 void
3132 xstormy16_extract_sfmt_movfgrgri (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3133     xstormy16_insn_word insn = entire_insn;
3134 #define FLD(f) abuf->fields.sfmt_movfgrgrii.f
3135     UINT f_op2m;
3136     UINT f_Rs;
3137     UINT f_Rdm;
3138
3139     f_op2m = EXTRACT_MSB0_UINT (insn, 16, 7, 1);
3140     f_Rs = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3141     f_Rdm = EXTRACT_MSB0_UINT (insn, 16, 13, 3);
3142
3143   /* Record the fields for the semantic handler.  */
3144   FLD (f_Rs) = f_Rs;
3145   FLD (f_Rdm) = f_Rdm;
3146   FLD (f_op2m) = f_op2m;
3147   if (UNLIKELY(current_cpu->trace_extract_p))
3148     {
3149       current_cpu->trace_stream 
3150         << "0x" << hex << pc << dec << " (sfmt_movfgrgri)\t"
3151         << " f_Rs:0x" << hex << f_Rs << dec
3152         << " f_Rdm:0x" << hex << f_Rdm << dec
3153         << " f_op2m:0x" << hex << f_op2m << dec
3154         << endl;
3155     }
3156
3157 #undef FLD
3158 }
3159
3160 void
3161 xstormy16_extract_sfmt_movfgrgripostinc (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3162     xstormy16_insn_word insn = entire_insn;
3163 #define FLD(f) abuf->fields.sfmt_movfgrgrii.f
3164     UINT f_op2m;
3165     UINT f_Rs;
3166     UINT f_Rdm;
3167
3168     f_op2m = EXTRACT_MSB0_UINT (insn, 16, 7, 1);
3169     f_Rs = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3170     f_Rdm = EXTRACT_MSB0_UINT (insn, 16, 13, 3);
3171
3172   /* Record the fields for the semantic handler.  */
3173   FLD (f_Rs) = f_Rs;
3174   FLD (f_Rdm) = f_Rdm;
3175   FLD (f_op2m) = f_op2m;
3176   if (UNLIKELY(current_cpu->trace_extract_p))
3177     {
3178       current_cpu->trace_stream 
3179         << "0x" << hex << pc << dec << " (sfmt_movfgrgripostinc)\t"
3180         << " f_Rs:0x" << hex << f_Rs << dec
3181         << " f_Rdm:0x" << hex << f_Rdm << dec
3182         << " f_op2m:0x" << hex << f_op2m << dec
3183         << endl;
3184     }
3185
3186 #undef FLD
3187 }
3188
3189 void
3190 xstormy16_extract_sfmt_movfgrgripredec (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3191     xstormy16_insn_word insn = entire_insn;
3192 #define FLD(f) abuf->fields.sfmt_movfgrgrii.f
3193     UINT f_op2m;
3194     UINT f_Rs;
3195     UINT f_Rdm;
3196
3197     f_op2m = EXTRACT_MSB0_UINT (insn, 16, 7, 1);
3198     f_Rs = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3199     f_Rdm = EXTRACT_MSB0_UINT (insn, 16, 13, 3);
3200
3201   /* Record the fields for the semantic handler.  */
3202   FLD (f_Rs) = f_Rs;
3203   FLD (f_Rdm) = f_Rdm;
3204   FLD (f_op2m) = f_op2m;
3205   if (UNLIKELY(current_cpu->trace_extract_p))
3206     {
3207       current_cpu->trace_stream 
3208         << "0x" << hex << pc << dec << " (sfmt_movfgrgripredec)\t"
3209         << " f_Rs:0x" << hex << f_Rs << dec
3210         << " f_Rdm:0x" << hex << f_Rdm << dec
3211         << " f_op2m:0x" << hex << f_op2m << dec
3212         << endl;
3213     }
3214
3215 #undef FLD
3216 }
3217
3218 void
3219 xstormy16_extract_sfmt_movfgrigr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3220     xstormy16_insn_word insn = entire_insn;
3221 #define FLD(f) abuf->fields.sfmt_movfgrgrii.f
3222     UINT f_op2m;
3223     UINT f_Rs;
3224     UINT f_Rdm;
3225
3226     f_op2m = EXTRACT_MSB0_UINT (insn, 16, 7, 1);
3227     f_Rs = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3228     f_Rdm = EXTRACT_MSB0_UINT (insn, 16, 13, 3);
3229
3230   /* Record the fields for the semantic handler.  */
3231   FLD (f_Rdm) = f_Rdm;
3232   FLD (f_Rs) = f_Rs;
3233   FLD (f_op2m) = f_op2m;
3234   if (UNLIKELY(current_cpu->trace_extract_p))
3235     {
3236       current_cpu->trace_stream 
3237         << "0x" << hex << pc << dec << " (sfmt_movfgrigr)\t"
3238         << " f_Rdm:0x" << hex << f_Rdm << dec
3239         << " f_Rs:0x" << hex << f_Rs << dec
3240         << " f_op2m:0x" << hex << f_op2m << dec
3241         << endl;
3242     }
3243
3244 #undef FLD
3245 }
3246
3247 void
3248 xstormy16_extract_sfmt_movfgripostincgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3249     xstormy16_insn_word insn = entire_insn;
3250 #define FLD(f) abuf->fields.sfmt_movfgrgrii.f
3251     UINT f_op2m;
3252     UINT f_Rs;
3253     UINT f_Rdm;
3254
3255     f_op2m = EXTRACT_MSB0_UINT (insn, 16, 7, 1);
3256     f_Rs = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3257     f_Rdm = EXTRACT_MSB0_UINT (insn, 16, 13, 3);
3258
3259   /* Record the fields for the semantic handler.  */
3260   FLD (f_Rdm) = f_Rdm;
3261   FLD (f_Rs) = f_Rs;
3262   FLD (f_op2m) = f_op2m;
3263   if (UNLIKELY(current_cpu->trace_extract_p))
3264     {
3265       current_cpu->trace_stream 
3266         << "0x" << hex << pc << dec << " (sfmt_movfgripostincgr)\t"
3267         << " f_Rdm:0x" << hex << f_Rdm << dec
3268         << " f_Rs:0x" << hex << f_Rs << dec
3269         << " f_op2m:0x" << hex << f_op2m << dec
3270         << endl;
3271     }
3272
3273 #undef FLD
3274 }
3275
3276 void
3277 xstormy16_extract_sfmt_movfgripredecgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3278     xstormy16_insn_word insn = entire_insn;
3279 #define FLD(f) abuf->fields.sfmt_movfgrgrii.f
3280     UINT f_op2m;
3281     UINT f_Rs;
3282     UINT f_Rdm;
3283
3284     f_op2m = EXTRACT_MSB0_UINT (insn, 16, 7, 1);
3285     f_Rs = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3286     f_Rdm = EXTRACT_MSB0_UINT (insn, 16, 13, 3);
3287
3288   /* Record the fields for the semantic handler.  */
3289   FLD (f_Rdm) = f_Rdm;
3290   FLD (f_Rs) = f_Rs;
3291   FLD (f_op2m) = f_op2m;
3292   if (UNLIKELY(current_cpu->trace_extract_p))
3293     {
3294       current_cpu->trace_stream 
3295         << "0x" << hex << pc << dec << " (sfmt_movfgripredecgr)\t"
3296         << " f_Rdm:0x" << hex << f_Rdm << dec
3297         << " f_Rs:0x" << hex << f_Rs << dec
3298         << " f_op2m:0x" << hex << f_op2m << dec
3299         << endl;
3300     }
3301
3302 #undef FLD
3303 }
3304
3305 void
3306 xstormy16_extract_sfmt_movfgrgrii (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3307     xstormy16_insn_word insn = entire_insn;
3308 #define FLD(f) abuf->fields.sfmt_movfgrgrii.f
3309     UINT f_op2m;
3310     UINT f_Rs;
3311     UINT f_Rdm;
3312     UINT f_Rb;
3313     INT f_imm12;
3314
3315     f_op2m = EXTRACT_MSB0_UINT (insn, 32, 7, 1);
3316     f_Rs = EXTRACT_MSB0_UINT (insn, 32, 8, 4);
3317     f_Rdm = EXTRACT_MSB0_UINT (insn, 32, 13, 3);
3318     f_Rb = EXTRACT_MSB0_UINT (insn, 32, 17, 3);
3319     f_imm12 = EXTRACT_MSB0_INT (insn, 32, 20, 12);
3320
3321   /* Record the fields for the semantic handler.  */
3322   FLD (f_Rb) = f_Rb;
3323   FLD (f_Rs) = f_Rs;
3324   FLD (f_Rdm) = f_Rdm;
3325   FLD (f_imm12) = f_imm12;
3326   FLD (f_op2m) = f_op2m;
3327   if (UNLIKELY(current_cpu->trace_extract_p))
3328     {
3329       current_cpu->trace_stream 
3330         << "0x" << hex << pc << dec << " (sfmt_movfgrgrii)\t"
3331         << " f_Rb:0x" << hex << f_Rb << dec
3332         << " f_Rs:0x" << hex << f_Rs << dec
3333         << " f_Rdm:0x" << hex << f_Rdm << dec
3334         << " f_imm12:0x" << hex << f_imm12 << dec
3335         << " f_op2m:0x" << hex << f_op2m << dec
3336         << endl;
3337     }
3338
3339 #undef FLD
3340 }
3341
3342 void
3343 xstormy16_extract_sfmt_movfgrgriipostinc (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3344     xstormy16_insn_word insn = entire_insn;
3345 #define FLD(f) abuf->fields.sfmt_movfgrgrii.f
3346     UINT f_op2m;
3347     UINT f_Rs;
3348     UINT f_Rdm;
3349     UINT f_Rb;
3350     INT f_imm12;
3351
3352     f_op2m = EXTRACT_MSB0_UINT (insn, 32, 7, 1);
3353     f_Rs = EXTRACT_MSB0_UINT (insn, 32, 8, 4);
3354     f_Rdm = EXTRACT_MSB0_UINT (insn, 32, 13, 3);
3355     f_Rb = EXTRACT_MSB0_UINT (insn, 32, 17, 3);
3356     f_imm12 = EXTRACT_MSB0_INT (insn, 32, 20, 12);
3357
3358   /* Record the fields for the semantic handler.  */
3359   FLD (f_Rb) = f_Rb;
3360   FLD (f_Rs) = f_Rs;
3361   FLD (f_Rdm) = f_Rdm;
3362   FLD (f_imm12) = f_imm12;
3363   FLD (f_op2m) = f_op2m;
3364   if (UNLIKELY(current_cpu->trace_extract_p))
3365     {
3366       current_cpu->trace_stream 
3367         << "0x" << hex << pc << dec << " (sfmt_movfgrgriipostinc)\t"
3368         << " f_Rb:0x" << hex << f_Rb << dec
3369         << " f_Rs:0x" << hex << f_Rs << dec
3370         << " f_Rdm:0x" << hex << f_Rdm << dec
3371         << " f_imm12:0x" << hex << f_imm12 << dec
3372         << " f_op2m:0x" << hex << f_op2m << dec
3373         << endl;
3374     }
3375
3376 #undef FLD
3377 }
3378
3379 void
3380 xstormy16_extract_sfmt_movfgrgriipredec (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3381     xstormy16_insn_word insn = entire_insn;
3382 #define FLD(f) abuf->fields.sfmt_movfgrgrii.f
3383     UINT f_op2m;
3384     UINT f_Rs;
3385     UINT f_Rdm;
3386     UINT f_Rb;
3387     INT f_imm12;
3388
3389     f_op2m = EXTRACT_MSB0_UINT (insn, 32, 7, 1);
3390     f_Rs = EXTRACT_MSB0_UINT (insn, 32, 8, 4);
3391     f_Rdm = EXTRACT_MSB0_UINT (insn, 32, 13, 3);
3392     f_Rb = EXTRACT_MSB0_UINT (insn, 32, 17, 3);
3393     f_imm12 = EXTRACT_MSB0_INT (insn, 32, 20, 12);
3394
3395   /* Record the fields for the semantic handler.  */
3396   FLD (f_Rb) = f_Rb;
3397   FLD (f_Rs) = f_Rs;
3398   FLD (f_Rdm) = f_Rdm;
3399   FLD (f_imm12) = f_imm12;
3400   FLD (f_op2m) = f_op2m;
3401   if (UNLIKELY(current_cpu->trace_extract_p))
3402     {
3403       current_cpu->trace_stream 
3404         << "0x" << hex << pc << dec << " (sfmt_movfgrgriipredec)\t"
3405         << " f_Rb:0x" << hex << f_Rb << dec
3406         << " f_Rs:0x" << hex << f_Rs << dec
3407         << " f_Rdm:0x" << hex << f_Rdm << dec
3408         << " f_imm12:0x" << hex << f_imm12 << dec
3409         << " f_op2m:0x" << hex << f_op2m << dec
3410         << endl;
3411     }
3412
3413 #undef FLD
3414 }
3415
3416 void
3417 xstormy16_extract_sfmt_movfgriigr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3418     xstormy16_insn_word insn = entire_insn;
3419 #define FLD(f) abuf->fields.sfmt_movfgrgrii.f
3420     UINT f_op2m;
3421     UINT f_Rs;
3422     UINT f_Rdm;
3423     UINT f_Rb;
3424     INT f_imm12;
3425
3426     f_op2m = EXTRACT_MSB0_UINT (insn, 32, 7, 1);
3427     f_Rs = EXTRACT_MSB0_UINT (insn, 32, 8, 4);
3428     f_Rdm = EXTRACT_MSB0_UINT (insn, 32, 13, 3);
3429     f_Rb = EXTRACT_MSB0_UINT (insn, 32, 17, 3);
3430     f_imm12 = EXTRACT_MSB0_INT (insn, 32, 20, 12);
3431
3432   /* Record the fields for the semantic handler.  */
3433   FLD (f_Rb) = f_Rb;
3434   FLD (f_Rdm) = f_Rdm;
3435   FLD (f_Rs) = f_Rs;
3436   FLD (f_imm12) = f_imm12;
3437   FLD (f_op2m) = f_op2m;
3438   if (UNLIKELY(current_cpu->trace_extract_p))
3439     {
3440       current_cpu->trace_stream 
3441         << "0x" << hex << pc << dec << " (sfmt_movfgriigr)\t"
3442         << " f_Rb:0x" << hex << f_Rb << dec
3443         << " f_Rdm:0x" << hex << f_Rdm << dec
3444         << " f_Rs:0x" << hex << f_Rs << dec
3445         << " f_imm12:0x" << hex << f_imm12 << dec
3446         << " f_op2m:0x" << hex << f_op2m << dec
3447         << endl;
3448     }
3449
3450 #undef FLD
3451 }
3452
3453 void
3454 xstormy16_extract_sfmt_movfgriipostincgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3455     xstormy16_insn_word insn = entire_insn;
3456 #define FLD(f) abuf->fields.sfmt_movfgrgrii.f
3457     UINT f_op2m;
3458     UINT f_Rs;
3459     UINT f_Rdm;
3460     UINT f_Rb;
3461     INT f_imm12;
3462
3463     f_op2m = EXTRACT_MSB0_UINT (insn, 32, 7, 1);
3464     f_Rs = EXTRACT_MSB0_UINT (insn, 32, 8, 4);
3465     f_Rdm = EXTRACT_MSB0_UINT (insn, 32, 13, 3);
3466     f_Rb = EXTRACT_MSB0_UINT (insn, 32, 17, 3);
3467     f_imm12 = EXTRACT_MSB0_INT (insn, 32, 20, 12);
3468
3469   /* Record the fields for the semantic handler.  */
3470   FLD (f_Rb) = f_Rb;
3471   FLD (f_Rdm) = f_Rdm;
3472   FLD (f_Rs) = f_Rs;
3473   FLD (f_imm12) = f_imm12;
3474   FLD (f_op2m) = f_op2m;
3475   if (UNLIKELY(current_cpu->trace_extract_p))
3476     {
3477       current_cpu->trace_stream 
3478         << "0x" << hex << pc << dec << " (sfmt_movfgriipostincgr)\t"
3479         << " f_Rb:0x" << hex << f_Rb << dec
3480         << " f_Rdm:0x" << hex << f_Rdm << dec
3481         << " f_Rs:0x" << hex << f_Rs << dec
3482         << " f_imm12:0x" << hex << f_imm12 << dec
3483         << " f_op2m:0x" << hex << f_op2m << dec
3484         << endl;
3485     }
3486
3487 #undef FLD
3488 }
3489
3490 void
3491 xstormy16_extract_sfmt_movfgriipredecgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3492     xstormy16_insn_word insn = entire_insn;
3493 #define FLD(f) abuf->fields.sfmt_movfgrgrii.f
3494     UINT f_op2m;
3495     UINT f_Rs;
3496     UINT f_Rdm;
3497     UINT f_Rb;
3498     INT f_imm12;
3499
3500     f_op2m = EXTRACT_MSB0_UINT (insn, 32, 7, 1);
3501     f_Rs = EXTRACT_MSB0_UINT (insn, 32, 8, 4);
3502     f_Rdm = EXTRACT_MSB0_UINT (insn, 32, 13, 3);
3503     f_Rb = EXTRACT_MSB0_UINT (insn, 32, 17, 3);
3504     f_imm12 = EXTRACT_MSB0_INT (insn, 32, 20, 12);
3505
3506   /* Record the fields for the semantic handler.  */
3507   FLD (f_Rb) = f_Rb;
3508   FLD (f_Rdm) = f_Rdm;
3509   FLD (f_Rs) = f_Rs;
3510   FLD (f_imm12) = f_imm12;
3511   FLD (f_op2m) = f_op2m;
3512   if (UNLIKELY(current_cpu->trace_extract_p))
3513     {
3514       current_cpu->trace_stream 
3515         << "0x" << hex << pc << dec << " (sfmt_movfgriipredecgr)\t"
3516         << " f_Rb:0x" << hex << f_Rb << dec
3517         << " f_Rdm:0x" << hex << f_Rdm << dec
3518         << " f_Rs:0x" << hex << f_Rs << dec
3519         << " f_imm12:0x" << hex << f_imm12 << dec
3520         << " f_op2m:0x" << hex << f_op2m << dec
3521         << endl;
3522     }
3523
3524 #undef FLD
3525 }
3526
3527 void
3528 xstormy16_extract_sfmt_maskgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3529     xstormy16_insn_word insn = entire_insn;
3530 #define FLD(f) abuf->fields.sfmt_bccgrgr.f
3531     UINT f_Rs;
3532     UINT f_Rd;
3533
3534     f_Rs = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3535     f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
3536
3537   /* Record the fields for the semantic handler.  */
3538   FLD (f_Rd) = f_Rd;
3539   FLD (f_Rs) = f_Rs;
3540   if (UNLIKELY(current_cpu->trace_extract_p))
3541     {
3542       current_cpu->trace_stream 
3543         << "0x" << hex << pc << dec << " (sfmt_maskgrgr)\t"
3544         << " f_Rd:0x" << hex << f_Rd << dec
3545         << " f_Rs:0x" << hex << f_Rs << dec
3546         << endl;
3547     }
3548
3549 #undef FLD
3550 }
3551
3552 void
3553 xstormy16_extract_sfmt_maskgrimm16 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3554     xstormy16_insn_word insn = entire_insn;
3555 #define FLD(f) abuf->fields.sfmt_movwgrimm16.f
3556     UINT f_Rd;
3557     UINT f_imm16;
3558
3559     f_Rd = EXTRACT_MSB0_UINT (insn, 32, 12, 4);
3560     f_imm16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16);
3561
3562   /* Record the fields for the semantic handler.  */
3563   FLD (f_Rd) = f_Rd;
3564   FLD (f_imm16) = f_imm16;
3565   if (UNLIKELY(current_cpu->trace_extract_p))
3566     {
3567       current_cpu->trace_stream 
3568         << "0x" << hex << pc << dec << " (sfmt_maskgrimm16)\t"
3569         << " f_Rd:0x" << hex << f_Rd << dec
3570         << " f_imm16:0x" << hex << f_imm16 << dec
3571         << endl;
3572     }
3573
3574 #undef FLD
3575 }
3576
3577 void
3578 xstormy16_extract_sfmt_pushgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3579     xstormy16_insn_word insn = entire_insn;
3580 #define FLD(f) abuf->fields.sfmt_jmp.f
3581     UINT f_Rd;
3582
3583     f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
3584
3585   /* Record the fields for the semantic handler.  */
3586   FLD (f_Rd) = f_Rd;
3587   if (UNLIKELY(current_cpu->trace_extract_p))
3588     {
3589       current_cpu->trace_stream 
3590         << "0x" << hex << pc << dec << " (sfmt_pushgr)\t"
3591         << " f_Rd:0x" << hex << f_Rd << dec
3592         << endl;
3593     }
3594
3595 #undef FLD
3596 }
3597
3598 void
3599 xstormy16_extract_sfmt_popgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3600     xstormy16_insn_word insn = entire_insn;
3601 #define FLD(f) abuf->fields.sfmt_jmp.f
3602     UINT f_Rd;
3603
3604     f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
3605
3606   /* Record the fields for the semantic handler.  */
3607   FLD (f_Rd) = f_Rd;
3608   if (UNLIKELY(current_cpu->trace_extract_p))
3609     {
3610       current_cpu->trace_stream 
3611         << "0x" << hex << pc << dec << " (sfmt_popgr)\t"
3612         << " f_Rd:0x" << hex << f_Rd << dec
3613         << endl;
3614     }
3615
3616 #undef FLD
3617 }
3618
3619 void
3620 xstormy16_extract_sfmt_swpn (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3621     xstormy16_insn_word insn = entire_insn;
3622 #define FLD(f) abuf->fields.sfmt_jmp.f
3623     UINT f_Rd;
3624
3625     f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
3626
3627   /* Record the fields for the semantic handler.  */
3628   FLD (f_Rd) = f_Rd;
3629   if (UNLIKELY(current_cpu->trace_extract_p))
3630     {
3631       current_cpu->trace_stream 
3632         << "0x" << hex << pc << dec << " (sfmt_swpn)\t"
3633         << " f_Rd:0x" << hex << f_Rd << dec
3634         << endl;
3635     }
3636
3637 #undef FLD
3638 }
3639
3640 void
3641 xstormy16_extract_sfmt_swpw (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3642     xstormy16_insn_word insn = entire_insn;
3643 #define FLD(f) abuf->fields.sfmt_bccgrgr.f
3644     UINT f_Rs;
3645     UINT f_Rd;
3646
3647     f_Rs = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3648     f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
3649
3650   /* Record the fields for the semantic handler.  */
3651   FLD (f_Rd) = f_Rd;
3652   FLD (f_Rs) = f_Rs;
3653   if (UNLIKELY(current_cpu->trace_extract_p))
3654     {
3655       current_cpu->trace_stream 
3656         << "0x" << hex << pc << dec << " (sfmt_swpw)\t"
3657         << " f_Rd:0x" << hex << f_Rd << dec
3658         << " f_Rs:0x" << hex << f_Rs << dec
3659         << endl;
3660     }
3661
3662 #undef FLD
3663 }
3664
3665 void
3666 xstormy16_extract_sfmt_andgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3667     xstormy16_insn_word insn = entire_insn;
3668 #define FLD(f) abuf->fields.sfmt_bccgrgr.f
3669     UINT f_Rs;
3670     UINT f_Rd;
3671
3672     f_Rs = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3673     f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
3674
3675   /* Record the fields for the semantic handler.  */
3676   FLD (f_Rd) = f_Rd;
3677   FLD (f_Rs) = f_Rs;
3678   if (UNLIKELY(current_cpu->trace_extract_p))
3679     {
3680       current_cpu->trace_stream 
3681         << "0x" << hex << pc << dec << " (sfmt_andgrgr)\t"
3682         << " f_Rd:0x" << hex << f_Rd << dec
3683         << " f_Rs:0x" << hex << f_Rs << dec
3684         << endl;
3685     }
3686
3687 #undef FLD
3688 }
3689
3690 void
3691 xstormy16_extract_sfmt_andimm8 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3692     xstormy16_insn_word insn = entire_insn;
3693 #define FLD(f) abuf->fields.sfmt_bccgrimm8.f
3694     UINT f_imm8;
3695
3696     f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
3697
3698   /* Record the fields for the semantic handler.  */
3699   FLD (f_imm8) = f_imm8;
3700   if (UNLIKELY(current_cpu->trace_extract_p))
3701     {
3702       current_cpu->trace_stream 
3703         << "0x" << hex << pc << dec << " (sfmt_andimm8)\t"
3704         << " f_imm8:0x" << hex << f_imm8 << dec
3705         << endl;
3706     }
3707
3708 #undef FLD
3709 }
3710
3711 void
3712 xstormy16_extract_sfmt_andgrimm16 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3713     xstormy16_insn_word insn = entire_insn;
3714 #define FLD(f) abuf->fields.sfmt_movwgrimm16.f
3715     UINT f_Rd;
3716     UINT f_imm16;
3717
3718     f_Rd = EXTRACT_MSB0_UINT (insn, 32, 12, 4);
3719     f_imm16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16);
3720
3721   /* Record the fields for the semantic handler.  */
3722   FLD (f_Rd) = f_Rd;
3723   FLD (f_imm16) = f_imm16;
3724   if (UNLIKELY(current_cpu->trace_extract_p))
3725     {
3726       current_cpu->trace_stream 
3727         << "0x" << hex << pc << dec << " (sfmt_andgrimm16)\t"
3728         << " f_Rd:0x" << hex << f_Rd << dec
3729         << " f_imm16:0x" << hex << f_imm16 << dec
3730         << endl;
3731     }
3732
3733 #undef FLD
3734 }
3735
3736 void
3737 xstormy16_extract_sfmt_addgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3738     xstormy16_insn_word insn = entire_insn;
3739 #define FLD(f) abuf->fields.sfmt_bccgrgr.f
3740     UINT f_Rs;
3741     UINT f_Rd;
3742
3743     f_Rs = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3744     f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
3745
3746   /* Record the fields for the semantic handler.  */
3747   FLD (f_Rd) = f_Rd;
3748   FLD (f_Rs) = f_Rs;
3749   if (UNLIKELY(current_cpu->trace_extract_p))
3750     {
3751       current_cpu->trace_stream 
3752         << "0x" << hex << pc << dec << " (sfmt_addgrgr)\t"
3753         << " f_Rd:0x" << hex << f_Rd << dec
3754         << " f_Rs:0x" << hex << f_Rs << dec
3755         << endl;
3756     }
3757
3758 #undef FLD
3759 }
3760
3761 void
3762 xstormy16_extract_sfmt_addgrimm4 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3763     xstormy16_insn_word insn = entire_insn;
3764 #define FLD(f) abuf->fields.sfmt_bngrimm4.f
3765     UINT f_imm4;
3766     UINT f_Rd;
3767
3768     f_imm4 = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3769     f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
3770
3771   /* Record the fields for the semantic handler.  */
3772   FLD (f_Rd) = f_Rd;
3773   FLD (f_imm4) = f_imm4;
3774   if (UNLIKELY(current_cpu->trace_extract_p))
3775     {
3776       current_cpu->trace_stream 
3777         << "0x" << hex << pc << dec << " (sfmt_addgrimm4)\t"
3778         << " f_Rd:0x" << hex << f_Rd << dec
3779         << " f_imm4:0x" << hex << f_imm4 << dec
3780         << endl;
3781     }
3782
3783 #undef FLD
3784 }
3785
3786 void
3787 xstormy16_extract_sfmt_addimm8 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3788     xstormy16_insn_word insn = entire_insn;
3789 #define FLD(f) abuf->fields.sfmt_bccgrimm8.f
3790     UINT f_imm8;
3791
3792     f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
3793
3794   /* Record the fields for the semantic handler.  */
3795   FLD (f_imm8) = f_imm8;
3796   if (UNLIKELY(current_cpu->trace_extract_p))
3797     {
3798       current_cpu->trace_stream 
3799         << "0x" << hex << pc << dec << " (sfmt_addimm8)\t"
3800         << " f_imm8:0x" << hex << f_imm8 << dec
3801         << endl;
3802     }
3803
3804 #undef FLD
3805 }
3806
3807 void
3808 xstormy16_extract_sfmt_addgrimm16 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3809     xstormy16_insn_word insn = entire_insn;
3810 #define FLD(f) abuf->fields.sfmt_movwgrimm16.f
3811     UINT f_Rd;
3812     UINT f_imm16;
3813
3814     f_Rd = EXTRACT_MSB0_UINT (insn, 32, 12, 4);
3815     f_imm16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16);
3816
3817   /* Record the fields for the semantic handler.  */
3818   FLD (f_Rd) = f_Rd;
3819   FLD (f_imm16) = f_imm16;
3820   if (UNLIKELY(current_cpu->trace_extract_p))
3821     {
3822       current_cpu->trace_stream 
3823         << "0x" << hex << pc << dec << " (sfmt_addgrimm16)\t"
3824         << " f_Rd:0x" << hex << f_Rd << dec
3825         << " f_imm16:0x" << hex << f_imm16 << dec
3826         << endl;
3827     }
3828
3829 #undef FLD
3830 }
3831
3832 void
3833 xstormy16_extract_sfmt_adcgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3834     xstormy16_insn_word insn = entire_insn;
3835 #define FLD(f) abuf->fields.sfmt_bccgrgr.f
3836     UINT f_Rs;
3837     UINT f_Rd;
3838
3839     f_Rs = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3840     f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
3841
3842   /* Record the fields for the semantic handler.  */
3843   FLD (f_Rd) = f_Rd;
3844   FLD (f_Rs) = f_Rs;
3845   if (UNLIKELY(current_cpu->trace_extract_p))
3846     {
3847       current_cpu->trace_stream 
3848         << "0x" << hex << pc << dec << " (sfmt_adcgrgr)\t"
3849         << " f_Rd:0x" << hex << f_Rd << dec
3850         << " f_Rs:0x" << hex << f_Rs << dec
3851         << endl;
3852     }
3853
3854 #undef FLD
3855 }
3856
3857 void
3858 xstormy16_extract_sfmt_adcgrimm4 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3859     xstormy16_insn_word insn = entire_insn;
3860 #define FLD(f) abuf->fields.sfmt_bngrimm4.f
3861     UINT f_imm4;
3862     UINT f_Rd;
3863
3864     f_imm4 = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3865     f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
3866
3867   /* Record the fields for the semantic handler.  */
3868   FLD (f_Rd) = f_Rd;
3869   FLD (f_imm4) = f_imm4;
3870   if (UNLIKELY(current_cpu->trace_extract_p))
3871     {
3872       current_cpu->trace_stream 
3873         << "0x" << hex << pc << dec << " (sfmt_adcgrimm4)\t"
3874         << " f_Rd:0x" << hex << f_Rd << dec
3875         << " f_imm4:0x" << hex << f_imm4 << dec
3876         << endl;
3877     }
3878
3879 #undef FLD
3880 }
3881
3882 void
3883 xstormy16_extract_sfmt_adcimm8 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3884     xstormy16_insn_word insn = entire_insn;
3885 #define FLD(f) abuf->fields.sfmt_bccgrimm8.f
3886     UINT f_imm8;
3887
3888     f_imm8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
3889
3890   /* Record the fields for the semantic handler.  */
3891   FLD (f_imm8) = f_imm8;
3892   if (UNLIKELY(current_cpu->trace_extract_p))
3893     {
3894       current_cpu->trace_stream 
3895         << "0x" << hex << pc << dec << " (sfmt_adcimm8)\t"
3896         << " f_imm8:0x" << hex << f_imm8 << dec
3897         << endl;
3898     }
3899
3900 #undef FLD
3901 }
3902
3903 void
3904 xstormy16_extract_sfmt_adcgrimm16 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3905     xstormy16_insn_word insn = entire_insn;
3906 #define FLD(f) abuf->fields.sfmt_movwgrimm16.f
3907     UINT f_Rd;
3908     UINT f_imm16;
3909
3910     f_Rd = EXTRACT_MSB0_UINT (insn, 32, 12, 4);
3911     f_imm16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16);
3912
3913   /* Record the fields for the semantic handler.  */
3914   FLD (f_Rd) = f_Rd;
3915   FLD (f_imm16) = f_imm16;
3916   if (UNLIKELY(current_cpu->trace_extract_p))
3917     {
3918       current_cpu->trace_stream 
3919         << "0x" << hex << pc << dec << " (sfmt_adcgrimm16)\t"
3920         << " f_Rd:0x" << hex << f_Rd << dec
3921         << " f_imm16:0x" << hex << f_imm16 << dec
3922         << endl;
3923     }
3924
3925 #undef FLD
3926 }
3927
3928 void
3929 xstormy16_extract_sfmt_incgrimm2 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3930     xstormy16_insn_word insn = entire_insn;
3931 #define FLD(f) abuf->fields.sfmt_incgrimm2.f
3932     UINT f_imm2;
3933     UINT f_Rd;
3934
3935     f_imm2 = EXTRACT_MSB0_UINT (insn, 16, 10, 2);
3936     f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
3937
3938   /* Record the fields for the semantic handler.  */
3939   FLD (f_Rd) = f_Rd;
3940   FLD (f_imm2) = f_imm2;
3941   if (UNLIKELY(current_cpu->trace_extract_p))
3942     {
3943       current_cpu->trace_stream 
3944         << "0x" << hex << pc << dec << " (sfmt_incgrimm2)\t"
3945         << " f_Rd:0x" << hex << f_Rd << dec
3946         << " f_imm2:0x" << hex << f_imm2 << dec
3947         << endl;
3948     }
3949
3950 #undef FLD
3951 }
3952
3953 void
3954 xstormy16_extract_sfmt_rrcgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3955     xstormy16_insn_word insn = entire_insn;
3956 #define FLD(f) abuf->fields.sfmt_bccgrgr.f
3957     UINT f_Rs;
3958     UINT f_Rd;
3959
3960     f_Rs = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3961     f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
3962
3963   /* Record the fields for the semantic handler.  */
3964   FLD (f_Rd) = f_Rd;
3965   FLD (f_Rs) = f_Rs;
3966   if (UNLIKELY(current_cpu->trace_extract_p))
3967     {
3968       current_cpu->trace_stream 
3969         << "0x" << hex << pc << dec << " (sfmt_rrcgrgr)\t"
3970         << " f_Rd:0x" << hex << f_Rd << dec
3971         << " f_Rs:0x" << hex << f_Rs << dec
3972         << endl;
3973     }
3974
3975 #undef FLD
3976 }
3977
3978 void
3979 xstormy16_extract_sfmt_rrcgrimm4 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
3980     xstormy16_insn_word insn = entire_insn;
3981 #define FLD(f) abuf->fields.sfmt_bngrimm4.f
3982     UINT f_imm4;
3983     UINT f_Rd;
3984
3985     f_imm4 = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3986     f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
3987
3988   /* Record the fields for the semantic handler.  */
3989   FLD (f_Rd) = f_Rd;
3990   FLD (f_imm4) = f_imm4;
3991   if (UNLIKELY(current_cpu->trace_extract_p))
3992     {
3993       current_cpu->trace_stream 
3994         << "0x" << hex << pc << dec << " (sfmt_rrcgrimm4)\t"
3995         << " f_Rd:0x" << hex << f_Rd << dec
3996         << " f_imm4:0x" << hex << f_imm4 << dec
3997         << endl;
3998     }
3999
4000 #undef FLD
4001 }
4002
4003 void
4004 xstormy16_extract_sfmt_shrgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4005     xstormy16_insn_word insn = entire_insn;
4006 #define FLD(f) abuf->fields.sfmt_bccgrgr.f
4007     UINT f_Rs;
4008     UINT f_Rd;
4009
4010     f_Rs = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4011     f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
4012
4013   /* Record the fields for the semantic handler.  */
4014   FLD (f_Rd) = f_Rd;
4015   FLD (f_Rs) = f_Rs;
4016   if (UNLIKELY(current_cpu->trace_extract_p))
4017     {
4018       current_cpu->trace_stream 
4019         << "0x" << hex << pc << dec << " (sfmt_shrgrgr)\t"
4020         << " f_Rd:0x" << hex << f_Rd << dec
4021         << " f_Rs:0x" << hex << f_Rs << dec
4022         << endl;
4023     }
4024
4025 #undef FLD
4026 }
4027
4028 void
4029 xstormy16_extract_sfmt_shrgrimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4030     xstormy16_insn_word insn = entire_insn;
4031 #define FLD(f) abuf->fields.sfmt_bngrimm4.f
4032     UINT f_imm4;
4033     UINT f_Rd;
4034
4035     f_imm4 = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4036     f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
4037
4038   /* Record the fields for the semantic handler.  */
4039   FLD (f_Rd) = f_Rd;
4040   FLD (f_imm4) = f_imm4;
4041   if (UNLIKELY(current_cpu->trace_extract_p))
4042     {
4043       current_cpu->trace_stream 
4044         << "0x" << hex << pc << dec << " (sfmt_shrgrimm)\t"
4045         << " f_Rd:0x" << hex << f_Rd << dec
4046         << " f_imm4:0x" << hex << f_imm4 << dec
4047         << endl;
4048     }
4049
4050 #undef FLD
4051 }
4052
4053 void
4054 xstormy16_extract_sfmt_asrgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4055     xstormy16_insn_word insn = entire_insn;
4056 #define FLD(f) abuf->fields.sfmt_bccgrgr.f
4057     UINT f_Rs;
4058     UINT f_Rd;
4059
4060     f_Rs = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4061     f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
4062
4063   /* Record the fields for the semantic handler.  */
4064   FLD (f_Rd) = f_Rd;
4065   FLD (f_Rs) = f_Rs;
4066   if (UNLIKELY(current_cpu->trace_extract_p))
4067     {
4068       current_cpu->trace_stream 
4069         << "0x" << hex << pc << dec << " (sfmt_asrgrgr)\t"
4070         << " f_Rd:0x" << hex << f_Rd << dec
4071         << " f_Rs:0x" << hex << f_Rs << dec
4072         << endl;
4073     }
4074
4075 #undef FLD
4076 }
4077
4078 void
4079 xstormy16_extract_sfmt_asrgrimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4080     xstormy16_insn_word insn = entire_insn;
4081 #define FLD(f) abuf->fields.sfmt_bngrimm4.f
4082     UINT f_imm4;
4083     UINT f_Rd;
4084
4085     f_imm4 = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4086     f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
4087
4088   /* Record the fields for the semantic handler.  */
4089   FLD (f_Rd) = f_Rd;
4090   FLD (f_imm4) = f_imm4;
4091   if (UNLIKELY(current_cpu->trace_extract_p))
4092     {
4093       current_cpu->trace_stream 
4094         << "0x" << hex << pc << dec << " (sfmt_asrgrimm)\t"
4095         << " f_Rd:0x" << hex << f_Rd << dec
4096         << " f_imm4:0x" << hex << f_imm4 << dec
4097         << endl;
4098     }
4099
4100 #undef FLD
4101 }
4102
4103 void
4104 xstormy16_extract_sfmt_set1grimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4105     xstormy16_insn_word insn = entire_insn;
4106 #define FLD(f) abuf->fields.sfmt_bngrimm4.f
4107     UINT f_imm4;
4108     UINT f_Rd;
4109
4110     f_imm4 = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
4111     f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
4112
4113   /* Record the fields for the semantic handler.  */
4114   FLD (f_Rd) = f_Rd;
4115   FLD (f_imm4) = f_imm4;
4116   if (UNLIKELY(current_cpu->trace_extract_p))
4117     {
4118       current_cpu->trace_stream 
4119         << "0x" << hex << pc << dec << " (sfmt_set1grimm)\t"
4120         << " f_Rd:0x" << hex << f_Rd << dec
4121         << " f_imm4:0x" << hex << f_imm4 << dec
4122         << endl;
4123     }
4124
4125 #undef FLD
4126 }
4127
4128 void
4129 xstormy16_extract_sfmt_set1lmemimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4130     xstormy16_insn_word insn = entire_insn;
4131 #define FLD(f) abuf->fields.sfmt_set1lmemimm.f
4132     UINT f_imm3;
4133     UINT f_lmem8;
4134
4135     f_imm3 = EXTRACT_MSB0_UINT (insn, 16, 4, 3);
4136     f_lmem8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
4137
4138   /* Record the fields for the semantic handler.  */
4139   FLD (f_imm3) = f_imm3;
4140   FLD (f_lmem8) = f_lmem8;
4141   if (UNLIKELY(current_cpu->trace_extract_p))
4142     {
4143       current_cpu->trace_stream 
4144         << "0x" << hex << pc << dec << " (sfmt_set1lmemimm)\t"
4145         << " f_imm3:0x" << hex << f_imm3 << dec
4146         << " f_lmem8:0x" << hex << f_lmem8 << dec
4147         << endl;
4148     }
4149
4150 #undef FLD
4151 }
4152
4153 void
4154 xstormy16_extract_sfmt_set1hmemimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4155     xstormy16_insn_word insn = entire_insn;
4156 #define FLD(f) abuf->fields.sfmt_set1hmemimm.f
4157     UINT f_imm3;
4158     HI f_hmem8;
4159
4160     f_imm3 = EXTRACT_MSB0_UINT (insn, 16, 4, 3);
4161     f_hmem8 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) + (32512));
4162
4163   /* Record the fields for the semantic handler.  */
4164   FLD (f_hmem8) = f_hmem8;
4165   FLD (f_imm3) = f_imm3;
4166   if (UNLIKELY(current_cpu->trace_extract_p))
4167     {
4168       current_cpu->trace_stream 
4169         << "0x" << hex << pc << dec << " (sfmt_set1hmemimm)\t"
4170         << " f_hmem8:0x" << hex << f_hmem8 << dec
4171         << " f_imm3:0x" << hex << f_imm3 << dec
4172         << endl;
4173     }
4174
4175 #undef FLD
4176 }
4177
4178 void
4179 xstormy16_extract_sfmt_bccgrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4180     xstormy16_insn_word insn = entire_insn;
4181 #define FLD(f) abuf->fields.sfmt_bccgrgr.f
4182     UINT f_Rs;
4183     UINT f_Rd;
4184     UINT f_op5;
4185     SI f_rel12;
4186
4187     f_Rs = EXTRACT_MSB0_UINT (insn, 32, 8, 4);
4188     f_Rd = EXTRACT_MSB0_UINT (insn, 32, 12, 4);
4189     f_op5 = EXTRACT_MSB0_UINT (insn, 32, 16, 4);
4190     f_rel12 = ((EXTRACT_MSB0_INT (insn, 32, 20, 12)) + (((pc) + (4))));
4191
4192   /* Record the fields for the semantic handler.  */
4193   FLD (f_Rd) = f_Rd;
4194   FLD (f_Rs) = f_Rs;
4195   FLD (f_op5) = f_op5;
4196   FLD (f_rel12) = f_rel12;
4197   if (UNLIKELY(current_cpu->trace_extract_p))
4198     {
4199       current_cpu->trace_stream 
4200         << "0x" << hex << pc << dec << " (sfmt_bccgrgr)\t"
4201         << " f_Rd:0x" << hex << f_Rd << dec
4202         << " f_Rs:0x" << hex << f_Rs << dec
4203         << " f_op5:0x" << hex << f_op5 << dec
4204         << " f_rel12:0x" << hex << f_rel12 << dec
4205         << endl;
4206     }
4207
4208 #undef FLD
4209 }
4210
4211 void
4212 xstormy16_extract_sfmt_bccgrimm8 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4213     xstormy16_insn_word insn = entire_insn;
4214 #define FLD(f) abuf->fields.sfmt_bccgrimm8.f
4215     UINT f_Rm;
4216     UINT f_imm8;
4217     UINT f_op5;
4218     SI f_rel12;
4219
4220     f_Rm = EXTRACT_MSB0_UINT (insn, 32, 4, 3);
4221     f_imm8 = EXTRACT_MSB0_UINT (insn, 32, 8, 8);
4222     f_op5 = EXTRACT_MSB0_UINT (insn, 32, 16, 4);
4223     f_rel12 = ((EXTRACT_MSB0_INT (insn, 32, 20, 12)) + (((pc) + (4))));
4224
4225   /* Record the fields for the semantic handler.  */
4226   FLD (f_Rm) = f_Rm;
4227   FLD (f_op5) = f_op5;
4228   FLD (f_imm8) = f_imm8;
4229   FLD (f_rel12) = f_rel12;
4230   if (UNLIKELY(current_cpu->trace_extract_p))
4231     {
4232       current_cpu->trace_stream 
4233         << "0x" << hex << pc << dec << " (sfmt_bccgrimm8)\t"
4234         << " f_Rm:0x" << hex << f_Rm << dec
4235         << " f_op5:0x" << hex << f_op5 << dec
4236         << " f_imm8:0x" << hex << f_imm8 << dec
4237         << " f_rel12:0x" << hex << f_rel12 << dec
4238         << endl;
4239     }
4240
4241 #undef FLD
4242 }
4243
4244 void
4245 xstormy16_extract_sfmt_bccimm16 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4246     xstormy16_insn_word insn = entire_insn;
4247 #define FLD(f) abuf->fields.sfmt_bccimm16.f
4248     UINT f_op2;
4249     SI f_rel8_4;
4250     UINT f_imm16;
4251
4252     f_op2 = EXTRACT_MSB0_UINT (insn, 32, 4, 4);
4253     f_rel8_4 = ((EXTRACT_MSB0_INT (insn, 32, 8, 8)) + (((pc) + (4))));
4254     f_imm16 = EXTRACT_MSB0_UINT (insn, 32, 16, 16);
4255
4256   /* Record the fields for the semantic handler.  */
4257   FLD (f_op2) = f_op2;
4258   FLD (f_imm16) = f_imm16;
4259   FLD (f_rel8_4) = f_rel8_4;
4260   if (UNLIKELY(current_cpu->trace_extract_p))
4261     {
4262       current_cpu->trace_stream 
4263         << "0x" << hex << pc << dec << " (sfmt_bccimm16)\t"
4264         << " f_op2:0x" << hex << f_op2 << dec
4265         << " f_imm16:0x" << hex << f_imm16 << dec
4266         << " f_rel8_4:0x" << hex << f_rel8_4 << dec
4267         << endl;
4268     }
4269
4270 #undef FLD
4271 }
4272
4273 void
4274 xstormy16_extract_sfmt_bngrimm4 (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4275     xstormy16_insn_word insn = entire_insn;
4276 #define FLD(f) abuf->fields.sfmt_bngrimm4.f
4277     UINT f_imm4;
4278     UINT f_Rd;
4279     SI f_rel12;
4280
4281     f_imm4 = EXTRACT_MSB0_UINT (insn, 32, 8, 4);
4282     f_Rd = EXTRACT_MSB0_UINT (insn, 32, 12, 4);
4283     f_rel12 = ((EXTRACT_MSB0_INT (insn, 32, 20, 12)) + (((pc) + (4))));
4284
4285   /* Record the fields for the semantic handler.  */
4286   FLD (f_Rd) = f_Rd;
4287   FLD (f_imm4) = f_imm4;
4288   FLD (f_rel12) = f_rel12;
4289   if (UNLIKELY(current_cpu->trace_extract_p))
4290     {
4291       current_cpu->trace_stream 
4292         << "0x" << hex << pc << dec << " (sfmt_bngrimm4)\t"
4293         << " f_Rd:0x" << hex << f_Rd << dec
4294         << " f_imm4:0x" << hex << f_imm4 << dec
4295         << " f_rel12:0x" << hex << f_rel12 << dec
4296         << endl;
4297     }
4298
4299 #undef FLD
4300 }
4301
4302 void
4303 xstormy16_extract_sfmt_bngrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4304     xstormy16_insn_word insn = entire_insn;
4305 #define FLD(f) abuf->fields.sfmt_bccgrgr.f
4306     UINT f_Rs;
4307     UINT f_Rd;
4308     SI f_rel12;
4309
4310     f_Rs = EXTRACT_MSB0_UINT (insn, 32, 8, 4);
4311     f_Rd = EXTRACT_MSB0_UINT (insn, 32, 12, 4);
4312     f_rel12 = ((EXTRACT_MSB0_INT (insn, 32, 20, 12)) + (((pc) + (4))));
4313
4314   /* Record the fields for the semantic handler.  */
4315   FLD (f_Rd) = f_Rd;
4316   FLD (f_Rs) = f_Rs;
4317   FLD (f_rel12) = f_rel12;
4318   if (UNLIKELY(current_cpu->trace_extract_p))
4319     {
4320       current_cpu->trace_stream 
4321         << "0x" << hex << pc << dec << " (sfmt_bngrgr)\t"
4322         << " f_Rd:0x" << hex << f_Rd << dec
4323         << " f_Rs:0x" << hex << f_Rs << dec
4324         << " f_rel12:0x" << hex << f_rel12 << dec
4325         << endl;
4326     }
4327
4328 #undef FLD
4329 }
4330
4331 void
4332 xstormy16_extract_sfmt_bnlmemimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4333     xstormy16_insn_word insn = entire_insn;
4334 #define FLD(f) abuf->fields.sfmt_bnlmemimm.f
4335     UINT f_lmem8;
4336     UINT f_imm3b;
4337     SI f_rel12;
4338
4339     f_lmem8 = EXTRACT_MSB0_UINT (insn, 32, 8, 8);
4340     f_imm3b = EXTRACT_MSB0_UINT (insn, 32, 17, 3);
4341     f_rel12 = ((EXTRACT_MSB0_INT (insn, 32, 20, 12)) + (((pc) + (4))));
4342
4343   /* Record the fields for the semantic handler.  */
4344   FLD (f_imm3b) = f_imm3b;
4345   FLD (f_lmem8) = f_lmem8;
4346   FLD (f_rel12) = f_rel12;
4347   if (UNLIKELY(current_cpu->trace_extract_p))
4348     {
4349       current_cpu->trace_stream 
4350         << "0x" << hex << pc << dec << " (sfmt_bnlmemimm)\t"
4351         << " f_imm3b:0x" << hex << f_imm3b << dec
4352         << " f_lmem8:0x" << hex << f_lmem8 << dec
4353         << " f_rel12:0x" << hex << f_rel12 << dec
4354         << endl;
4355     }
4356
4357 #undef FLD
4358 }
4359
4360 void
4361 xstormy16_extract_sfmt_bnhmemimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4362     xstormy16_insn_word insn = entire_insn;
4363 #define FLD(f) abuf->fields.sfmt_bnhmemimm.f
4364     HI f_hmem8;
4365     UINT f_imm3b;
4366     SI f_rel12;
4367
4368     f_hmem8 = ((EXTRACT_MSB0_UINT (insn, 32, 8, 8)) + (32512));
4369     f_imm3b = EXTRACT_MSB0_UINT (insn, 32, 17, 3);
4370     f_rel12 = ((EXTRACT_MSB0_INT (insn, 32, 20, 12)) + (((pc) + (4))));
4371
4372   /* Record the fields for the semantic handler.  */
4373   FLD (f_hmem8) = f_hmem8;
4374   FLD (f_imm3b) = f_imm3b;
4375   FLD (f_rel12) = f_rel12;
4376   if (UNLIKELY(current_cpu->trace_extract_p))
4377     {
4378       current_cpu->trace_stream 
4379         << "0x" << hex << pc << dec << " (sfmt_bnhmemimm)\t"
4380         << " f_hmem8:0x" << hex << f_hmem8 << dec
4381         << " f_imm3b:0x" << hex << f_imm3b << dec
4382         << " f_rel12:0x" << hex << f_rel12 << dec
4383         << endl;
4384     }
4385
4386 #undef FLD
4387 }
4388
4389 void
4390 xstormy16_extract_sfmt_bcc (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4391     xstormy16_insn_word insn = entire_insn;
4392 #define FLD(f) abuf->fields.sfmt_bcc.f
4393     UINT f_op2;
4394     SI f_rel8_2;
4395
4396     f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4);
4397     f_rel8_2 = ((EXTRACT_MSB0_INT (insn, 16, 8, 8)) + (((pc) + (2))));
4398
4399   /* Record the fields for the semantic handler.  */
4400   FLD (f_op2) = f_op2;
4401   FLD (f_rel8_2) = f_rel8_2;
4402   if (UNLIKELY(current_cpu->trace_extract_p))
4403     {
4404       current_cpu->trace_stream 
4405         << "0x" << hex << pc << dec << " (sfmt_bcc)\t"
4406         << " f_op2:0x" << hex << f_op2 << dec
4407         << " f_rel8_2:0x" << hex << f_rel8_2 << dec
4408         << endl;
4409     }
4410
4411 #undef FLD
4412 }
4413
4414 void
4415 xstormy16_extract_sfmt_bgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4416     xstormy16_insn_word insn = entire_insn;
4417 #define FLD(f) abuf->fields.sfmt_jmp.f
4418     UINT f_Rd;
4419
4420     f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
4421
4422   /* Record the fields for the semantic handler.  */
4423   FLD (f_Rd) = f_Rd;
4424   if (UNLIKELY(current_cpu->trace_extract_p))
4425     {
4426       current_cpu->trace_stream 
4427         << "0x" << hex << pc << dec << " (sfmt_bgr)\t"
4428         << " f_Rd:0x" << hex << f_Rd << dec
4429         << endl;
4430     }
4431
4432 #undef FLD
4433 }
4434
4435 void
4436 xstormy16_extract_sfmt_br (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4437     xstormy16_insn_word insn = entire_insn;
4438 #define FLD(f) abuf->fields.sfmt_br.f
4439     SI f_rel12a;
4440
4441     f_rel12a = ((((EXTRACT_MSB0_INT (insn, 16, 4, 11)) << (1))) + (((pc) + (2))));
4442
4443   /* Record the fields for the semantic handler.  */
4444   FLD (f_rel12a) = f_rel12a;
4445   if (UNLIKELY(current_cpu->trace_extract_p))
4446     {
4447       current_cpu->trace_stream 
4448         << "0x" << hex << pc << dec << " (sfmt_br)\t"
4449         << " f_rel12a:0x" << hex << f_rel12a << dec
4450         << endl;
4451     }
4452
4453 #undef FLD
4454 }
4455
4456 void
4457 xstormy16_extract_sfmt_jmp (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4458     xstormy16_insn_word insn = entire_insn;
4459 #define FLD(f) abuf->fields.sfmt_jmp.f
4460     UINT f_Rbj;
4461     UINT f_Rd;
4462
4463     f_Rbj = EXTRACT_MSB0_UINT (insn, 16, 11, 1);
4464     f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
4465
4466   /* Record the fields for the semantic handler.  */
4467   FLD (f_Rbj) = f_Rbj;
4468   FLD (f_Rd) = f_Rd;
4469   if (UNLIKELY(current_cpu->trace_extract_p))
4470     {
4471       current_cpu->trace_stream 
4472         << "0x" << hex << pc << dec << " (sfmt_jmp)\t"
4473         << " f_Rbj:0x" << hex << f_Rbj << dec
4474         << " f_Rd:0x" << hex << f_Rd << dec
4475         << endl;
4476     }
4477
4478 #undef FLD
4479 }
4480
4481 void
4482 xstormy16_extract_sfmt_jmpf (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4483     xstormy16_insn_word insn = entire_insn;
4484 #define FLD(f) abuf->fields.sfmt_jmpf.f
4485     UINT f_abs24_1;
4486     UINT f_abs24_2;
4487     UINT f_abs24;
4488
4489     f_abs24_1 = EXTRACT_MSB0_UINT (insn, 32, 8, 8);
4490     f_abs24_2 = EXTRACT_MSB0_UINT (insn, 32, 16, 16);
4491   f_abs24 = ((((f_abs24_2) << (8))) | (f_abs24_1));
4492
4493   /* Record the fields for the semantic handler.  */
4494   FLD (f_abs24) = f_abs24;
4495   if (UNLIKELY(current_cpu->trace_extract_p))
4496     {
4497       current_cpu->trace_stream 
4498         << "0x" << hex << pc << dec << " (sfmt_jmpf)\t"
4499         << " f_abs24:0x" << hex << f_abs24 << dec
4500         << endl;
4501     }
4502
4503 #undef FLD
4504 }
4505
4506 void
4507 xstormy16_extract_sfmt_callrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4508     xstormy16_insn_word insn = entire_insn;
4509 #define FLD(f) abuf->fields.sfmt_jmp.f
4510     UINT f_Rd;
4511
4512     f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
4513
4514   /* Record the fields for the semantic handler.  */
4515   FLD (f_Rd) = f_Rd;
4516   if (UNLIKELY(current_cpu->trace_extract_p))
4517     {
4518       current_cpu->trace_stream 
4519         << "0x" << hex << pc << dec << " (sfmt_callrgr)\t"
4520         << " f_Rd:0x" << hex << f_Rd << dec
4521         << endl;
4522     }
4523
4524 #undef FLD
4525 }
4526
4527 void
4528 xstormy16_extract_sfmt_callrimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4529     xstormy16_insn_word insn = entire_insn;
4530 #define FLD(f) abuf->fields.sfmt_br.f
4531     SI f_rel12a;
4532
4533     f_rel12a = ((((EXTRACT_MSB0_INT (insn, 16, 4, 11)) << (1))) + (((pc) + (2))));
4534
4535   /* Record the fields for the semantic handler.  */
4536   FLD (f_rel12a) = f_rel12a;
4537   if (UNLIKELY(current_cpu->trace_extract_p))
4538     {
4539       current_cpu->trace_stream 
4540         << "0x" << hex << pc << dec << " (sfmt_callrimm)\t"
4541         << " f_rel12a:0x" << hex << f_rel12a << dec
4542         << endl;
4543     }
4544
4545 #undef FLD
4546 }
4547
4548 void
4549 xstormy16_extract_sfmt_callgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4550     xstormy16_insn_word insn = entire_insn;
4551 #define FLD(f) abuf->fields.sfmt_jmp.f
4552     UINT f_Rbj;
4553     UINT f_Rd;
4554
4555     f_Rbj = EXTRACT_MSB0_UINT (insn, 16, 11, 1);
4556     f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
4557
4558   /* Record the fields for the semantic handler.  */
4559   FLD (f_Rbj) = f_Rbj;
4560   FLD (f_Rd) = f_Rd;
4561   if (UNLIKELY(current_cpu->trace_extract_p))
4562     {
4563       current_cpu->trace_stream 
4564         << "0x" << hex << pc << dec << " (sfmt_callgr)\t"
4565         << " f_Rbj:0x" << hex << f_Rbj << dec
4566         << " f_Rd:0x" << hex << f_Rd << dec
4567         << endl;
4568     }
4569
4570 #undef FLD
4571 }
4572
4573 void
4574 xstormy16_extract_sfmt_callfimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4575     xstormy16_insn_word insn = entire_insn;
4576 #define FLD(f) abuf->fields.sfmt_jmpf.f
4577     UINT f_abs24_1;
4578     UINT f_abs24_2;
4579     UINT f_abs24;
4580
4581     f_abs24_1 = EXTRACT_MSB0_UINT (insn, 32, 8, 8);
4582     f_abs24_2 = EXTRACT_MSB0_UINT (insn, 32, 16, 16);
4583   f_abs24 = ((((f_abs24_2) << (8))) | (f_abs24_1));
4584
4585   /* Record the fields for the semantic handler.  */
4586   FLD (f_abs24) = f_abs24;
4587   if (UNLIKELY(current_cpu->trace_extract_p))
4588     {
4589       current_cpu->trace_stream 
4590         << "0x" << hex << pc << dec << " (sfmt_callfimm)\t"
4591         << " f_abs24:0x" << hex << f_abs24 << dec
4592         << endl;
4593     }
4594
4595 #undef FLD
4596 }
4597
4598 void
4599 xstormy16_extract_sfmt_icallrgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4600     xstormy16_insn_word insn = entire_insn;
4601 #define FLD(f) abuf->fields.sfmt_jmp.f
4602     UINT f_Rd;
4603
4604     f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
4605
4606   /* Record the fields for the semantic handler.  */
4607   FLD (f_Rd) = f_Rd;
4608   if (UNLIKELY(current_cpu->trace_extract_p))
4609     {
4610       current_cpu->trace_stream 
4611         << "0x" << hex << pc << dec << " (sfmt_icallrgr)\t"
4612         << " f_Rd:0x" << hex << f_Rd << dec
4613         << endl;
4614     }
4615
4616 #undef FLD
4617 }
4618
4619 void
4620 xstormy16_extract_sfmt_icallgr (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4621     xstormy16_insn_word insn = entire_insn;
4622 #define FLD(f) abuf->fields.sfmt_jmp.f
4623     UINT f_Rbj;
4624     UINT f_Rd;
4625
4626     f_Rbj = EXTRACT_MSB0_UINT (insn, 16, 11, 1);
4627     f_Rd = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
4628
4629   /* Record the fields for the semantic handler.  */
4630   FLD (f_Rbj) = f_Rbj;
4631   FLD (f_Rd) = f_Rd;
4632   if (UNLIKELY(current_cpu->trace_extract_p))
4633     {
4634       current_cpu->trace_stream 
4635         << "0x" << hex << pc << dec << " (sfmt_icallgr)\t"
4636         << " f_Rbj:0x" << hex << f_Rbj << dec
4637         << " f_Rd:0x" << hex << f_Rd << dec
4638         << endl;
4639     }
4640
4641 #undef FLD
4642 }
4643
4644 void
4645 xstormy16_extract_sfmt_icallfimm (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4646     xstormy16_insn_word insn = entire_insn;
4647 #define FLD(f) abuf->fields.sfmt_jmpf.f
4648     UINT f_abs24_1;
4649     UINT f_abs24_2;
4650     UINT f_abs24;
4651
4652     f_abs24_1 = EXTRACT_MSB0_UINT (insn, 32, 8, 8);
4653     f_abs24_2 = EXTRACT_MSB0_UINT (insn, 32, 16, 16);
4654   f_abs24 = ((((f_abs24_2) << (8))) | (f_abs24_1));
4655
4656   /* Record the fields for the semantic handler.  */
4657   FLD (f_abs24) = f_abs24;
4658   if (UNLIKELY(current_cpu->trace_extract_p))
4659     {
4660       current_cpu->trace_stream 
4661         << "0x" << hex << pc << dec << " (sfmt_icallfimm)\t"
4662         << " f_abs24:0x" << hex << f_abs24 << dec
4663         << endl;
4664     }
4665
4666 #undef FLD
4667 }
4668
4669 void
4670 xstormy16_extract_sfmt_iret (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4671     xstormy16_insn_word insn = entire_insn;
4672 #define FLD(f) abuf->fields.fmt_empty.f
4673
4674
4675   /* Record the fields for the semantic handler.  */
4676   if (UNLIKELY(current_cpu->trace_extract_p))
4677     {
4678       current_cpu->trace_stream 
4679         << "0x" << hex << pc << dec << " (sfmt_iret)\t"
4680         << endl;
4681     }
4682
4683 #undef FLD
4684 }
4685
4686 void
4687 xstormy16_extract_sfmt_ret (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4688     xstormy16_insn_word insn = entire_insn;
4689 #define FLD(f) abuf->fields.fmt_empty.f
4690
4691
4692   /* Record the fields for the semantic handler.  */
4693   if (UNLIKELY(current_cpu->trace_extract_p))
4694     {
4695       current_cpu->trace_stream 
4696         << "0x" << hex << pc << dec << " (sfmt_ret)\t"
4697         << endl;
4698     }
4699
4700 #undef FLD
4701 }
4702
4703 void
4704 xstormy16_extract_sfmt_mul (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4705     xstormy16_insn_word insn = entire_insn;
4706 #define FLD(f) abuf->fields.fmt_empty.f
4707
4708
4709   /* Record the fields for the semantic handler.  */
4710   if (UNLIKELY(current_cpu->trace_extract_p))
4711     {
4712       current_cpu->trace_stream 
4713         << "0x" << hex << pc << dec << " (sfmt_mul)\t"
4714         << endl;
4715     }
4716
4717 #undef FLD
4718 }
4719
4720 void
4721 xstormy16_extract_sfmt_sdiv (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4722     xstormy16_insn_word insn = entire_insn;
4723 #define FLD(f) abuf->fields.fmt_empty.f
4724
4725
4726   /* Record the fields for the semantic handler.  */
4727   if (UNLIKELY(current_cpu->trace_extract_p))
4728     {
4729       current_cpu->trace_stream 
4730         << "0x" << hex << pc << dec << " (sfmt_sdiv)\t"
4731         << endl;
4732     }
4733
4734 #undef FLD
4735 }
4736
4737 void
4738 xstormy16_extract_sfmt_sdivlh (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4739     xstormy16_insn_word insn = entire_insn;
4740 #define FLD(f) abuf->fields.fmt_empty.f
4741
4742
4743   /* Record the fields for the semantic handler.  */
4744   if (UNLIKELY(current_cpu->trace_extract_p))
4745     {
4746       current_cpu->trace_stream 
4747         << "0x" << hex << pc << dec << " (sfmt_sdivlh)\t"
4748         << endl;
4749     }
4750
4751 #undef FLD
4752 }
4753
4754 void
4755 xstormy16_extract_sfmt_reset (xstormy16_scache* abuf, xstormy16_cpu* current_cpu, PCADDR pc, xstormy16_insn_word base_insn, xstormy16_insn_word entire_insn){
4756     xstormy16_insn_word insn = entire_insn;
4757 #define FLD(f) abuf->fields.fmt_empty.f
4758
4759
4760   /* Record the fields for the semantic handler.  */
4761   if (UNLIKELY(current_cpu->trace_extract_p))
4762     {
4763       current_cpu->trace_stream 
4764         << "0x" << hex << pc << dec << " (sfmt_reset)\t"
4765         << endl;
4766     }
4767
4768 #undef FLD
4769 }
4770