OSDN Git Service

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