Switch the license of all files explicitly copyright the FSF
[external/binutils.git] / sim / cris / decodev10.c
1 /* Simulator instruction decoder for crisv10f.
2
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5 Copyright 1996-2005 Free Software Foundation, Inc.
6
7 This file is part of the GNU simulators.
8
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 3 of the License, or
12 (at your option) any later version.
13
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 GNU General Public License for more details.
18
19 You should have received a copy of the GNU General Public License
20 along with this program.  If not, see <http://www.gnu.org/licenses/>.
21
22 */
23
24 #define WANT_CPU crisv10f
25 #define WANT_CPU_CRISV10F
26
27 #include "sim-main.h"
28 #include "sim-assert.h"
29 #include "cgen-ops.h"
30
31 /* The instruction descriptor array.
32    This is computed at runtime.  Space for it is not malloc'd to save a
33    teensy bit of cpu in the decoder.  Moving it to malloc space is trivial
34    but won't be done until necessary (we don't currently support the runtime
35    addition of instructions nor an SMP machine with different cpus).  */
36 static IDESC crisv10f_insn_data[CRISV10F_INSN__MAX];
37
38 /* Commas between elements are contained in the macros.
39    Some of these are conditionally compiled out.  */
40
41 static const struct insn_sem crisv10f_insn_sem[] =
42 {
43   { VIRTUAL_INSN_X_INVALID, CRISV10F_INSN_X_INVALID, CRISV10F_SFMT_EMPTY },
44   { VIRTUAL_INSN_X_AFTER, CRISV10F_INSN_X_AFTER, CRISV10F_SFMT_EMPTY },
45   { VIRTUAL_INSN_X_BEFORE, CRISV10F_INSN_X_BEFORE, CRISV10F_SFMT_EMPTY },
46   { VIRTUAL_INSN_X_CTI_CHAIN, CRISV10F_INSN_X_CTI_CHAIN, CRISV10F_SFMT_EMPTY },
47   { VIRTUAL_INSN_X_CHAIN, CRISV10F_INSN_X_CHAIN, CRISV10F_SFMT_EMPTY },
48   { VIRTUAL_INSN_X_BEGIN, CRISV10F_INSN_X_BEGIN, CRISV10F_SFMT_EMPTY },
49   { CRIS_INSN_NOP, CRISV10F_INSN_NOP, CRISV10F_SFMT_NOP },
50   { CRIS_INSN_MOVE_B_R, CRISV10F_INSN_MOVE_B_R, CRISV10F_SFMT_MOVE_B_R },
51   { CRIS_INSN_MOVE_W_R, CRISV10F_INSN_MOVE_W_R, CRISV10F_SFMT_MOVE_B_R },
52   { CRIS_INSN_MOVE_D_R, CRISV10F_INSN_MOVE_D_R, CRISV10F_SFMT_MOVE_D_R },
53   { CRIS_INSN_MOVEPCR, CRISV10F_INSN_MOVEPCR, CRISV10F_SFMT_MOVEPCR },
54   { CRIS_INSN_MOVEQ, CRISV10F_INSN_MOVEQ, CRISV10F_SFMT_MOVEQ },
55   { CRIS_INSN_MOVS_B_R, CRISV10F_INSN_MOVS_B_R, CRISV10F_SFMT_MOVS_B_R },
56   { CRIS_INSN_MOVS_W_R, CRISV10F_INSN_MOVS_W_R, CRISV10F_SFMT_MOVS_B_R },
57   { CRIS_INSN_MOVU_B_R, CRISV10F_INSN_MOVU_B_R, CRISV10F_SFMT_MOVS_B_R },
58   { CRIS_INSN_MOVU_W_R, CRISV10F_INSN_MOVU_W_R, CRISV10F_SFMT_MOVS_B_R },
59   { CRIS_INSN_MOVECBR, CRISV10F_INSN_MOVECBR, CRISV10F_SFMT_MOVECBR },
60   { CRIS_INSN_MOVECWR, CRISV10F_INSN_MOVECWR, CRISV10F_SFMT_MOVECWR },
61   { CRIS_INSN_MOVECDR, CRISV10F_INSN_MOVECDR, CRISV10F_SFMT_MOVECDR },
62   { CRIS_INSN_MOVSCBR, CRISV10F_INSN_MOVSCBR, CRISV10F_SFMT_MOVSCBR },
63   { CRIS_INSN_MOVSCWR, CRISV10F_INSN_MOVSCWR, CRISV10F_SFMT_MOVSCWR },
64   { CRIS_INSN_MOVUCBR, CRISV10F_INSN_MOVUCBR, CRISV10F_SFMT_MOVUCBR },
65   { CRIS_INSN_MOVUCWR, CRISV10F_INSN_MOVUCWR, CRISV10F_SFMT_MOVUCWR },
66   { CRIS_INSN_ADDQ, CRISV10F_INSN_ADDQ, CRISV10F_SFMT_ADDQ },
67   { CRIS_INSN_SUBQ, CRISV10F_INSN_SUBQ, CRISV10F_SFMT_ADDQ },
68   { CRIS_INSN_CMP_R_B_R, CRISV10F_INSN_CMP_R_B_R, CRISV10F_SFMT_CMP_R_B_R },
69   { CRIS_INSN_CMP_R_W_R, CRISV10F_INSN_CMP_R_W_R, CRISV10F_SFMT_CMP_R_B_R },
70   { CRIS_INSN_CMP_R_D_R, CRISV10F_INSN_CMP_R_D_R, CRISV10F_SFMT_CMP_R_B_R },
71   { CRIS_INSN_CMP_M_B_M, CRISV10F_INSN_CMP_M_B_M, CRISV10F_SFMT_CMP_M_B_M },
72   { CRIS_INSN_CMP_M_W_M, CRISV10F_INSN_CMP_M_W_M, CRISV10F_SFMT_CMP_M_W_M },
73   { CRIS_INSN_CMP_M_D_M, CRISV10F_INSN_CMP_M_D_M, CRISV10F_SFMT_CMP_M_D_M },
74   { CRIS_INSN_CMPCBR, CRISV10F_INSN_CMPCBR, CRISV10F_SFMT_CMPCBR },
75   { CRIS_INSN_CMPCWR, CRISV10F_INSN_CMPCWR, CRISV10F_SFMT_CMPCWR },
76   { CRIS_INSN_CMPCDR, CRISV10F_INSN_CMPCDR, CRISV10F_SFMT_CMPCDR },
77   { CRIS_INSN_CMPQ, CRISV10F_INSN_CMPQ, CRISV10F_SFMT_CMPQ },
78   { CRIS_INSN_CMPS_M_B_M, CRISV10F_INSN_CMPS_M_B_M, CRISV10F_SFMT_CMP_M_B_M },
79   { CRIS_INSN_CMPS_M_W_M, CRISV10F_INSN_CMPS_M_W_M, CRISV10F_SFMT_CMP_M_W_M },
80   { CRIS_INSN_CMPSCBR, CRISV10F_INSN_CMPSCBR, CRISV10F_SFMT_CMPCBR },
81   { CRIS_INSN_CMPSCWR, CRISV10F_INSN_CMPSCWR, CRISV10F_SFMT_CMPCWR },
82   { CRIS_INSN_CMPU_M_B_M, CRISV10F_INSN_CMPU_M_B_M, CRISV10F_SFMT_CMP_M_B_M },
83   { CRIS_INSN_CMPU_M_W_M, CRISV10F_INSN_CMPU_M_W_M, CRISV10F_SFMT_CMP_M_W_M },
84   { CRIS_INSN_CMPUCBR, CRISV10F_INSN_CMPUCBR, CRISV10F_SFMT_CMPUCBR },
85   { CRIS_INSN_CMPUCWR, CRISV10F_INSN_CMPUCWR, CRISV10F_SFMT_CMPUCWR },
86   { CRIS_INSN_MOVE_M_B_M, CRISV10F_INSN_MOVE_M_B_M, CRISV10F_SFMT_MOVE_M_B_M },
87   { CRIS_INSN_MOVE_M_W_M, CRISV10F_INSN_MOVE_M_W_M, CRISV10F_SFMT_MOVE_M_W_M },
88   { CRIS_INSN_MOVE_M_D_M, CRISV10F_INSN_MOVE_M_D_M, CRISV10F_SFMT_MOVE_M_D_M },
89   { CRIS_INSN_MOVS_M_B_M, CRISV10F_INSN_MOVS_M_B_M, CRISV10F_SFMT_MOVS_M_B_M },
90   { CRIS_INSN_MOVS_M_W_M, CRISV10F_INSN_MOVS_M_W_M, CRISV10F_SFMT_MOVS_M_W_M },
91   { CRIS_INSN_MOVU_M_B_M, CRISV10F_INSN_MOVU_M_B_M, CRISV10F_SFMT_MOVS_M_B_M },
92   { CRIS_INSN_MOVU_M_W_M, CRISV10F_INSN_MOVU_M_W_M, CRISV10F_SFMT_MOVS_M_W_M },
93   { CRIS_INSN_MOVE_R_SPRV10, CRISV10F_INSN_MOVE_R_SPRV10, CRISV10F_SFMT_MOVE_R_SPRV10 },
94   { CRIS_INSN_MOVE_SPR_RV10, CRISV10F_INSN_MOVE_SPR_RV10, CRISV10F_SFMT_MOVE_SPR_RV10 },
95   { CRIS_INSN_RET_TYPE, CRISV10F_INSN_RET_TYPE, CRISV10F_SFMT_RET_TYPE },
96   { CRIS_INSN_MOVE_M_SPRV10, CRISV10F_INSN_MOVE_M_SPRV10, CRISV10F_SFMT_MOVE_M_SPRV10 },
97   { CRIS_INSN_MOVE_C_SPRV10_P5, CRISV10F_INSN_MOVE_C_SPRV10_P5, CRISV10F_SFMT_MOVE_C_SPRV10_P5 },
98   { CRIS_INSN_MOVE_C_SPRV10_P9, CRISV10F_INSN_MOVE_C_SPRV10_P9, CRISV10F_SFMT_MOVE_C_SPRV10_P9 },
99   { CRIS_INSN_MOVE_C_SPRV10_P10, CRISV10F_INSN_MOVE_C_SPRV10_P10, CRISV10F_SFMT_MOVE_C_SPRV10_P9 },
100   { CRIS_INSN_MOVE_C_SPRV10_P11, CRISV10F_INSN_MOVE_C_SPRV10_P11, CRISV10F_SFMT_MOVE_C_SPRV10_P9 },
101   { CRIS_INSN_MOVE_C_SPRV10_P12, CRISV10F_INSN_MOVE_C_SPRV10_P12, CRISV10F_SFMT_MOVE_C_SPRV10_P9 },
102   { CRIS_INSN_MOVE_C_SPRV10_P13, CRISV10F_INSN_MOVE_C_SPRV10_P13, CRISV10F_SFMT_MOVE_C_SPRV10_P9 },
103   { CRIS_INSN_MOVE_C_SPRV10_P7, CRISV10F_INSN_MOVE_C_SPRV10_P7, CRISV10F_SFMT_MOVE_C_SPRV10_P9 },
104   { CRIS_INSN_MOVE_C_SPRV10_P14, CRISV10F_INSN_MOVE_C_SPRV10_P14, CRISV10F_SFMT_MOVE_C_SPRV10_P9 },
105   { CRIS_INSN_MOVE_C_SPRV10_P15, CRISV10F_INSN_MOVE_C_SPRV10_P15, CRISV10F_SFMT_MOVE_C_SPRV10_P9 },
106   { CRIS_INSN_MOVE_SPR_MV10, CRISV10F_INSN_MOVE_SPR_MV10, CRISV10F_SFMT_MOVE_SPR_MV10 },
107   { CRIS_INSN_SBFS, CRISV10F_INSN_SBFS, CRISV10F_SFMT_SBFS },
108   { CRIS_INSN_MOVEM_R_M, CRISV10F_INSN_MOVEM_R_M, CRISV10F_SFMT_MOVEM_R_M },
109   { CRIS_INSN_MOVEM_M_R, CRISV10F_INSN_MOVEM_M_R, CRISV10F_SFMT_MOVEM_M_R },
110   { CRIS_INSN_MOVEM_M_PC, CRISV10F_INSN_MOVEM_M_PC, CRISV10F_SFMT_MOVEM_M_PC },
111   { CRIS_INSN_ADD_B_R, CRISV10F_INSN_ADD_B_R, CRISV10F_SFMT_ADD_B_R },
112   { CRIS_INSN_ADD_W_R, CRISV10F_INSN_ADD_W_R, CRISV10F_SFMT_ADD_B_R },
113   { CRIS_INSN_ADD_D_R, CRISV10F_INSN_ADD_D_R, CRISV10F_SFMT_ADD_D_R },
114   { CRIS_INSN_ADD_M_B_M, CRISV10F_INSN_ADD_M_B_M, CRISV10F_SFMT_ADD_M_B_M },
115   { CRIS_INSN_ADD_M_W_M, CRISV10F_INSN_ADD_M_W_M, CRISV10F_SFMT_ADD_M_W_M },
116   { CRIS_INSN_ADD_M_D_M, CRISV10F_INSN_ADD_M_D_M, CRISV10F_SFMT_ADD_M_D_M },
117   { CRIS_INSN_ADDCBR, CRISV10F_INSN_ADDCBR, CRISV10F_SFMT_ADDCBR },
118   { CRIS_INSN_ADDCWR, CRISV10F_INSN_ADDCWR, CRISV10F_SFMT_ADDCWR },
119   { CRIS_INSN_ADDCDR, CRISV10F_INSN_ADDCDR, CRISV10F_SFMT_ADDCDR },
120   { CRIS_INSN_ADDCPC, CRISV10F_INSN_ADDCPC, CRISV10F_SFMT_ADDCPC },
121   { CRIS_INSN_ADDS_B_R, CRISV10F_INSN_ADDS_B_R, CRISV10F_SFMT_ADD_D_R },
122   { CRIS_INSN_ADDS_W_R, CRISV10F_INSN_ADDS_W_R, CRISV10F_SFMT_ADD_D_R },
123   { CRIS_INSN_ADDS_M_B_M, CRISV10F_INSN_ADDS_M_B_M, CRISV10F_SFMT_ADDS_M_B_M },
124   { CRIS_INSN_ADDS_M_W_M, CRISV10F_INSN_ADDS_M_W_M, CRISV10F_SFMT_ADDS_M_W_M },
125   { CRIS_INSN_ADDSCBR, CRISV10F_INSN_ADDSCBR, CRISV10F_SFMT_ADDSCBR },
126   { CRIS_INSN_ADDSCWR, CRISV10F_INSN_ADDSCWR, CRISV10F_SFMT_ADDSCWR },
127   { CRIS_INSN_ADDSPCPC, CRISV10F_INSN_ADDSPCPC, CRISV10F_SFMT_ADDSPCPC },
128   { CRIS_INSN_ADDU_B_R, CRISV10F_INSN_ADDU_B_R, CRISV10F_SFMT_ADD_D_R },
129   { CRIS_INSN_ADDU_W_R, CRISV10F_INSN_ADDU_W_R, CRISV10F_SFMT_ADD_D_R },
130   { CRIS_INSN_ADDU_M_B_M, CRISV10F_INSN_ADDU_M_B_M, CRISV10F_SFMT_ADDS_M_B_M },
131   { CRIS_INSN_ADDU_M_W_M, CRISV10F_INSN_ADDU_M_W_M, CRISV10F_SFMT_ADDS_M_W_M },
132   { CRIS_INSN_ADDUCBR, CRISV10F_INSN_ADDUCBR, CRISV10F_SFMT_ADDSCBR },
133   { CRIS_INSN_ADDUCWR, CRISV10F_INSN_ADDUCWR, CRISV10F_SFMT_ADDSCWR },
134   { CRIS_INSN_SUB_B_R, CRISV10F_INSN_SUB_B_R, CRISV10F_SFMT_ADD_B_R },
135   { CRIS_INSN_SUB_W_R, CRISV10F_INSN_SUB_W_R, CRISV10F_SFMT_ADD_B_R },
136   { CRIS_INSN_SUB_D_R, CRISV10F_INSN_SUB_D_R, CRISV10F_SFMT_ADD_D_R },
137   { CRIS_INSN_SUB_M_B_M, CRISV10F_INSN_SUB_M_B_M, CRISV10F_SFMT_ADD_M_B_M },
138   { CRIS_INSN_SUB_M_W_M, CRISV10F_INSN_SUB_M_W_M, CRISV10F_SFMT_ADD_M_W_M },
139   { CRIS_INSN_SUB_M_D_M, CRISV10F_INSN_SUB_M_D_M, CRISV10F_SFMT_ADD_M_D_M },
140   { CRIS_INSN_SUBCBR, CRISV10F_INSN_SUBCBR, CRISV10F_SFMT_ADDCBR },
141   { CRIS_INSN_SUBCWR, CRISV10F_INSN_SUBCWR, CRISV10F_SFMT_ADDCWR },
142   { CRIS_INSN_SUBCDR, CRISV10F_INSN_SUBCDR, CRISV10F_SFMT_ADDCDR },
143   { CRIS_INSN_SUBS_B_R, CRISV10F_INSN_SUBS_B_R, CRISV10F_SFMT_ADD_D_R },
144   { CRIS_INSN_SUBS_W_R, CRISV10F_INSN_SUBS_W_R, CRISV10F_SFMT_ADD_D_R },
145   { CRIS_INSN_SUBS_M_B_M, CRISV10F_INSN_SUBS_M_B_M, CRISV10F_SFMT_ADDS_M_B_M },
146   { CRIS_INSN_SUBS_M_W_M, CRISV10F_INSN_SUBS_M_W_M, CRISV10F_SFMT_ADDS_M_W_M },
147   { CRIS_INSN_SUBSCBR, CRISV10F_INSN_SUBSCBR, CRISV10F_SFMT_ADDSCBR },
148   { CRIS_INSN_SUBSCWR, CRISV10F_INSN_SUBSCWR, CRISV10F_SFMT_ADDSCWR },
149   { CRIS_INSN_SUBU_B_R, CRISV10F_INSN_SUBU_B_R, CRISV10F_SFMT_ADD_D_R },
150   { CRIS_INSN_SUBU_W_R, CRISV10F_INSN_SUBU_W_R, CRISV10F_SFMT_ADD_D_R },
151   { CRIS_INSN_SUBU_M_B_M, CRISV10F_INSN_SUBU_M_B_M, CRISV10F_SFMT_ADDS_M_B_M },
152   { CRIS_INSN_SUBU_M_W_M, CRISV10F_INSN_SUBU_M_W_M, CRISV10F_SFMT_ADDS_M_W_M },
153   { CRIS_INSN_SUBUCBR, CRISV10F_INSN_SUBUCBR, CRISV10F_SFMT_ADDSCBR },
154   { CRIS_INSN_SUBUCWR, CRISV10F_INSN_SUBUCWR, CRISV10F_SFMT_ADDSCWR },
155   { CRIS_INSN_ADDI_B_R, CRISV10F_INSN_ADDI_B_R, CRISV10F_SFMT_ADDI_B_R },
156   { CRIS_INSN_ADDI_W_R, CRISV10F_INSN_ADDI_W_R, CRISV10F_SFMT_ADDI_B_R },
157   { CRIS_INSN_ADDI_D_R, CRISV10F_INSN_ADDI_D_R, CRISV10F_SFMT_ADDI_B_R },
158   { CRIS_INSN_NEG_B_R, CRISV10F_INSN_NEG_B_R, CRISV10F_SFMT_NEG_B_R },
159   { CRIS_INSN_NEG_W_R, CRISV10F_INSN_NEG_W_R, CRISV10F_SFMT_NEG_B_R },
160   { CRIS_INSN_NEG_D_R, CRISV10F_INSN_NEG_D_R, CRISV10F_SFMT_NEG_D_R },
161   { CRIS_INSN_TEST_M_B_M, CRISV10F_INSN_TEST_M_B_M, CRISV10F_SFMT_TEST_M_B_M },
162   { CRIS_INSN_TEST_M_W_M, CRISV10F_INSN_TEST_M_W_M, CRISV10F_SFMT_TEST_M_W_M },
163   { CRIS_INSN_TEST_M_D_M, CRISV10F_INSN_TEST_M_D_M, CRISV10F_SFMT_TEST_M_D_M },
164   { CRIS_INSN_MOVE_R_M_B_M, CRISV10F_INSN_MOVE_R_M_B_M, CRISV10F_SFMT_MOVE_R_M_B_M },
165   { CRIS_INSN_MOVE_R_M_W_M, CRISV10F_INSN_MOVE_R_M_W_M, CRISV10F_SFMT_MOVE_R_M_W_M },
166   { CRIS_INSN_MOVE_R_M_D_M, CRISV10F_INSN_MOVE_R_M_D_M, CRISV10F_SFMT_MOVE_R_M_D_M },
167   { CRIS_INSN_MULS_B, CRISV10F_INSN_MULS_B, CRISV10F_SFMT_MULS_B },
168   { CRIS_INSN_MULS_W, CRISV10F_INSN_MULS_W, CRISV10F_SFMT_MULS_B },
169   { CRIS_INSN_MULS_D, CRISV10F_INSN_MULS_D, CRISV10F_SFMT_MULS_B },
170   { CRIS_INSN_MULU_B, CRISV10F_INSN_MULU_B, CRISV10F_SFMT_MULS_B },
171   { CRIS_INSN_MULU_W, CRISV10F_INSN_MULU_W, CRISV10F_SFMT_MULS_B },
172   { CRIS_INSN_MULU_D, CRISV10F_INSN_MULU_D, CRISV10F_SFMT_MULS_B },
173   { CRIS_INSN_MSTEP, CRISV10F_INSN_MSTEP, CRISV10F_SFMT_MSTEP },
174   { CRIS_INSN_DSTEP, CRISV10F_INSN_DSTEP, CRISV10F_SFMT_DSTEP },
175   { CRIS_INSN_ABS, CRISV10F_INSN_ABS, CRISV10F_SFMT_MOVS_B_R },
176   { CRIS_INSN_AND_B_R, CRISV10F_INSN_AND_B_R, CRISV10F_SFMT_AND_B_R },
177   { CRIS_INSN_AND_W_R, CRISV10F_INSN_AND_W_R, CRISV10F_SFMT_AND_W_R },
178   { CRIS_INSN_AND_D_R, CRISV10F_INSN_AND_D_R, CRISV10F_SFMT_AND_D_R },
179   { CRIS_INSN_AND_M_B_M, CRISV10F_INSN_AND_M_B_M, CRISV10F_SFMT_AND_M_B_M },
180   { CRIS_INSN_AND_M_W_M, CRISV10F_INSN_AND_M_W_M, CRISV10F_SFMT_AND_M_W_M },
181   { CRIS_INSN_AND_M_D_M, CRISV10F_INSN_AND_M_D_M, CRISV10F_SFMT_AND_M_D_M },
182   { CRIS_INSN_ANDCBR, CRISV10F_INSN_ANDCBR, CRISV10F_SFMT_ANDCBR },
183   { CRIS_INSN_ANDCWR, CRISV10F_INSN_ANDCWR, CRISV10F_SFMT_ANDCWR },
184   { CRIS_INSN_ANDCDR, CRISV10F_INSN_ANDCDR, CRISV10F_SFMT_ANDCDR },
185   { CRIS_INSN_ANDQ, CRISV10F_INSN_ANDQ, CRISV10F_SFMT_ANDQ },
186   { CRIS_INSN_ORR_B_R, CRISV10F_INSN_ORR_B_R, CRISV10F_SFMT_AND_B_R },
187   { CRIS_INSN_ORR_W_R, CRISV10F_INSN_ORR_W_R, CRISV10F_SFMT_AND_W_R },
188   { CRIS_INSN_ORR_D_R, CRISV10F_INSN_ORR_D_R, CRISV10F_SFMT_AND_D_R },
189   { CRIS_INSN_OR_M_B_M, CRISV10F_INSN_OR_M_B_M, CRISV10F_SFMT_AND_M_B_M },
190   { CRIS_INSN_OR_M_W_M, CRISV10F_INSN_OR_M_W_M, CRISV10F_SFMT_AND_M_W_M },
191   { CRIS_INSN_OR_M_D_M, CRISV10F_INSN_OR_M_D_M, CRISV10F_SFMT_AND_M_D_M },
192   { CRIS_INSN_ORCBR, CRISV10F_INSN_ORCBR, CRISV10F_SFMT_ANDCBR },
193   { CRIS_INSN_ORCWR, CRISV10F_INSN_ORCWR, CRISV10F_SFMT_ANDCWR },
194   { CRIS_INSN_ORCDR, CRISV10F_INSN_ORCDR, CRISV10F_SFMT_ANDCDR },
195   { CRIS_INSN_ORQ, CRISV10F_INSN_ORQ, CRISV10F_SFMT_ANDQ },
196   { CRIS_INSN_XOR, CRISV10F_INSN_XOR, CRISV10F_SFMT_DSTEP },
197   { CRIS_INSN_SWAP, CRISV10F_INSN_SWAP, CRISV10F_SFMT_SWAP },
198   { CRIS_INSN_ASRR_B_R, CRISV10F_INSN_ASRR_B_R, CRISV10F_SFMT_ASRR_B_R },
199   { CRIS_INSN_ASRR_W_R, CRISV10F_INSN_ASRR_W_R, CRISV10F_SFMT_ASRR_B_R },
200   { CRIS_INSN_ASRR_D_R, CRISV10F_INSN_ASRR_D_R, CRISV10F_SFMT_AND_D_R },
201   { CRIS_INSN_ASRQ, CRISV10F_INSN_ASRQ, CRISV10F_SFMT_ASRQ },
202   { CRIS_INSN_LSRR_B_R, CRISV10F_INSN_LSRR_B_R, CRISV10F_SFMT_LSRR_B_R },
203   { CRIS_INSN_LSRR_W_R, CRISV10F_INSN_LSRR_W_R, CRISV10F_SFMT_LSRR_B_R },
204   { CRIS_INSN_LSRR_D_R, CRISV10F_INSN_LSRR_D_R, CRISV10F_SFMT_LSRR_D_R },
205   { CRIS_INSN_LSRQ, CRISV10F_INSN_LSRQ, CRISV10F_SFMT_ASRQ },
206   { CRIS_INSN_LSLR_B_R, CRISV10F_INSN_LSLR_B_R, CRISV10F_SFMT_LSRR_B_R },
207   { CRIS_INSN_LSLR_W_R, CRISV10F_INSN_LSLR_W_R, CRISV10F_SFMT_LSRR_B_R },
208   { CRIS_INSN_LSLR_D_R, CRISV10F_INSN_LSLR_D_R, CRISV10F_SFMT_LSRR_D_R },
209   { CRIS_INSN_LSLQ, CRISV10F_INSN_LSLQ, CRISV10F_SFMT_ASRQ },
210   { CRIS_INSN_BTST, CRISV10F_INSN_BTST, CRISV10F_SFMT_BTST },
211   { CRIS_INSN_BTSTQ, CRISV10F_INSN_BTSTQ, CRISV10F_SFMT_BTSTQ },
212   { CRIS_INSN_SETF, CRISV10F_INSN_SETF, CRISV10F_SFMT_SETF },
213   { CRIS_INSN_CLEARF, CRISV10F_INSN_CLEARF, CRISV10F_SFMT_SETF },
214   { CRIS_INSN_BCC_B, CRISV10F_INSN_BCC_B, CRISV10F_SFMT_BCC_B },
215   { CRIS_INSN_BA_B, CRISV10F_INSN_BA_B, CRISV10F_SFMT_BA_B },
216   { CRIS_INSN_BCC_W, CRISV10F_INSN_BCC_W, CRISV10F_SFMT_BCC_W },
217   { CRIS_INSN_BA_W, CRISV10F_INSN_BA_W, CRISV10F_SFMT_BA_W },
218   { CRIS_INSN_JUMP_R, CRISV10F_INSN_JUMP_R, CRISV10F_SFMT_JUMP_R },
219   { CRIS_INSN_JUMP_M, CRISV10F_INSN_JUMP_M, CRISV10F_SFMT_JUMP_M },
220   { CRIS_INSN_JUMP_C, CRISV10F_INSN_JUMP_C, CRISV10F_SFMT_JUMP_C },
221   { CRIS_INSN_BREAK, CRISV10F_INSN_BREAK, CRISV10F_SFMT_BREAK },
222   { CRIS_INSN_BOUND_R_B_R, CRISV10F_INSN_BOUND_R_B_R, CRISV10F_SFMT_DSTEP },
223   { CRIS_INSN_BOUND_R_W_R, CRISV10F_INSN_BOUND_R_W_R, CRISV10F_SFMT_DSTEP },
224   { CRIS_INSN_BOUND_R_D_R, CRISV10F_INSN_BOUND_R_D_R, CRISV10F_SFMT_DSTEP },
225   { CRIS_INSN_BOUND_M_B_M, CRISV10F_INSN_BOUND_M_B_M, CRISV10F_SFMT_BOUND_M_B_M },
226   { CRIS_INSN_BOUND_M_W_M, CRISV10F_INSN_BOUND_M_W_M, CRISV10F_SFMT_BOUND_M_W_M },
227   { CRIS_INSN_BOUND_M_D_M, CRISV10F_INSN_BOUND_M_D_M, CRISV10F_SFMT_BOUND_M_D_M },
228   { CRIS_INSN_BOUND_CB, CRISV10F_INSN_BOUND_CB, CRISV10F_SFMT_BOUND_CB },
229   { CRIS_INSN_BOUND_CW, CRISV10F_INSN_BOUND_CW, CRISV10F_SFMT_BOUND_CW },
230   { CRIS_INSN_BOUND_CD, CRISV10F_INSN_BOUND_CD, CRISV10F_SFMT_BOUND_CD },
231   { CRIS_INSN_SCC, CRISV10F_INSN_SCC, CRISV10F_SFMT_SCC },
232   { CRIS_INSN_LZ, CRISV10F_INSN_LZ, CRISV10F_SFMT_MOVS_B_R },
233   { CRIS_INSN_ADDOQ, CRISV10F_INSN_ADDOQ, CRISV10F_SFMT_ADDOQ },
234   { CRIS_INSN_BDAPQPC, CRISV10F_INSN_BDAPQPC, CRISV10F_SFMT_BDAPQPC },
235   { CRIS_INSN_BDAP_32_PC, CRISV10F_INSN_BDAP_32_PC, CRISV10F_SFMT_BDAP_32_PC },
236   { CRIS_INSN_MOVE_M_PCPLUS_P0, CRISV10F_INSN_MOVE_M_PCPLUS_P0, CRISV10F_SFMT_MOVE_M_PCPLUS_P0 },
237   { CRIS_INSN_MOVE_M_SPPLUS_P8, CRISV10F_INSN_MOVE_M_SPPLUS_P8, CRISV10F_SFMT_MOVE_M_SPPLUS_P8 },
238   { CRIS_INSN_ADDO_M_B_M, CRISV10F_INSN_ADDO_M_B_M, CRISV10F_SFMT_ADDO_M_B_M },
239   { CRIS_INSN_ADDO_M_W_M, CRISV10F_INSN_ADDO_M_W_M, CRISV10F_SFMT_ADDO_M_W_M },
240   { CRIS_INSN_ADDO_M_D_M, CRISV10F_INSN_ADDO_M_D_M, CRISV10F_SFMT_ADDO_M_D_M },
241   { CRIS_INSN_ADDO_CB, CRISV10F_INSN_ADDO_CB, CRISV10F_SFMT_ADDO_CB },
242   { CRIS_INSN_ADDO_CW, CRISV10F_INSN_ADDO_CW, CRISV10F_SFMT_ADDO_CW },
243   { CRIS_INSN_ADDO_CD, CRISV10F_INSN_ADDO_CD, CRISV10F_SFMT_ADDO_CD },
244   { CRIS_INSN_DIP_M, CRISV10F_INSN_DIP_M, CRISV10F_SFMT_DIP_M },
245   { CRIS_INSN_DIP_C, CRISV10F_INSN_DIP_C, CRISV10F_SFMT_DIP_C },
246   { CRIS_INSN_ADDI_ACR_B_R, CRISV10F_INSN_ADDI_ACR_B_R, CRISV10F_SFMT_ADDI_ACR_B_R },
247   { CRIS_INSN_ADDI_ACR_W_R, CRISV10F_INSN_ADDI_ACR_W_R, CRISV10F_SFMT_ADDI_ACR_B_R },
248   { CRIS_INSN_ADDI_ACR_D_R, CRISV10F_INSN_ADDI_ACR_D_R, CRISV10F_SFMT_ADDI_ACR_B_R },
249   { CRIS_INSN_BIAP_PC_B_R, CRISV10F_INSN_BIAP_PC_B_R, CRISV10F_SFMT_BIAP_PC_B_R },
250   { CRIS_INSN_BIAP_PC_W_R, CRISV10F_INSN_BIAP_PC_W_R, CRISV10F_SFMT_BIAP_PC_B_R },
251   { CRIS_INSN_BIAP_PC_D_R, CRISV10F_INSN_BIAP_PC_D_R, CRISV10F_SFMT_BIAP_PC_B_R },
252 };
253
254 static const struct insn_sem crisv10f_insn_sem_invalid = {
255   VIRTUAL_INSN_X_INVALID, CRISV10F_INSN_X_INVALID, CRISV10F_SFMT_EMPTY
256 };
257
258 /* Initialize an IDESC from the compile-time computable parts.  */
259
260 static INLINE void
261 init_idesc (SIM_CPU *cpu, IDESC *id, const struct insn_sem *t)
262 {
263   const CGEN_INSN *insn_table = CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu))->init_entries;
264
265   id->num = t->index;
266   id->sfmt = t->sfmt;
267   if ((int) t->type <= 0)
268     id->idata = & cgen_virtual_insn_table[- (int) t->type];
269   else
270     id->idata = & insn_table[t->type];
271   id->attrs = CGEN_INSN_ATTRS (id->idata);
272   /* Oh my god, a magic number.  */
273   id->length = CGEN_INSN_BITSIZE (id->idata) / 8;
274
275 #if WITH_PROFILE_MODEL_P
276   id->timing = & MODEL_TIMING (CPU_MODEL (cpu)) [t->index];
277   {
278     SIM_DESC sd = CPU_STATE (cpu);
279     SIM_ASSERT (t->index == id->timing->num);
280   }
281 #endif
282
283   /* Semantic pointers are initialized elsewhere.  */
284 }
285
286 /* Initialize the instruction descriptor table.  */
287
288 void
289 crisv10f_init_idesc_table (SIM_CPU *cpu)
290 {
291   IDESC *id,*tabend;
292   const struct insn_sem *t,*tend;
293   int tabsize = CRISV10F_INSN__MAX;
294   IDESC *table = crisv10f_insn_data;
295
296   memset (table, 0, tabsize * sizeof (IDESC));
297
298   /* First set all entries to the `invalid insn'.  */
299   t = & crisv10f_insn_sem_invalid;
300   for (id = table, tabend = table + tabsize; id < tabend; ++id)
301     init_idesc (cpu, id, t);
302
303   /* Now fill in the values for the chosen cpu.  */
304   for (t = crisv10f_insn_sem, tend = t + sizeof (crisv10f_insn_sem) / sizeof (*t);
305        t != tend; ++t)
306     {
307       init_idesc (cpu, & table[t->index], t);
308     }
309
310   /* Link the IDESC table into the cpu.  */
311   CPU_IDESC (cpu) = table;
312 }
313
314 /* Given an instruction, return a pointer to its IDESC entry.  */
315
316 const IDESC *
317 crisv10f_decode (SIM_CPU *current_cpu, IADDR pc,
318               CGEN_INSN_INT base_insn,
319               ARGBUF *abuf)
320 {
321   /* Result of decoder.  */
322   CRISV10F_INSN_TYPE itype;
323
324   {
325     CGEN_INSN_INT insn = base_insn;
326
327     {
328       unsigned int val = (((insn >> 4) & (255 << 0)));
329       switch (val)
330       {
331       case 0 : /* fall through */
332       case 1 : /* fall through */
333       case 2 : /* fall through */
334       case 3 : /* fall through */
335       case 4 : /* fall through */
336       case 5 : /* fall through */
337       case 6 : /* fall through */
338       case 7 : /* fall through */
339       case 8 : /* fall through */
340       case 9 : /* fall through */
341       case 10 : /* fall through */
342       case 11 : /* fall through */
343       case 12 : /* fall through */
344       case 13 : /* fall through */
345       case 14 : /* fall through */
346       case 15 :
347         {
348           unsigned int val = (((insn >> 12) & (15 << 0)));
349           switch (val)
350           {
351           case 0 : /* fall through */
352           case 1 : /* fall through */
353           case 2 : /* fall through */
354           case 3 : /* fall through */
355           case 4 : /* fall through */
356           case 5 : /* fall through */
357           case 6 : /* fall through */
358           case 7 : /* fall through */
359           case 8 : /* fall through */
360           case 9 : /* fall through */
361           case 10 : /* fall through */
362           case 11 : /* fall through */
363           case 12 : /* fall through */
364           case 13 : /* fall through */
365           case 15 :
366             if ((base_insn & 0xf00) == 0x0)
367               { itype = CRISV10F_INSN_BCC_B; goto extract_sfmt_bcc_b; }
368             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
369           case 14 :
370             if ((base_insn & 0xff00) == 0xe000)
371               { itype = CRISV10F_INSN_BA_B; goto extract_sfmt_ba_b; }
372             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
373           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
374           }
375         }
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 : /* fall through */
384       case 24 : /* fall through */
385       case 25 : /* fall through */
386       case 26 : /* fall through */
387       case 27 : /* fall through */
388       case 28 : /* fall through */
389       case 29 : /* fall through */
390       case 30 : /* fall through */
391       case 31 :
392         {
393           unsigned int val = (((insn >> 12) & (15 << 0)));
394           switch (val)
395           {
396           case 0 : /* fall through */
397           case 1 : /* fall through */
398           case 2 : /* fall through */
399           case 3 : /* fall through */
400           case 4 : /* fall through */
401           case 5 : /* fall through */
402           case 6 : /* fall through */
403           case 7 : /* fall through */
404           case 8 : /* fall through */
405           case 9 : /* fall through */
406           case 10 : /* fall through */
407           case 11 : /* fall through */
408           case 12 : /* fall through */
409           case 13 : /* fall through */
410           case 14 :
411             if ((base_insn & 0xf00) == 0x100)
412               { itype = CRISV10F_INSN_ADDOQ; goto extract_sfmt_addoq; }
413             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
414           case 15 :
415             if ((base_insn & 0xff00) == 0xf100)
416               { itype = CRISV10F_INSN_BDAPQPC; goto extract_sfmt_bdapqpc; }
417             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
418           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
419           }
420         }
421       case 32 : /* fall through */
422       case 33 : /* fall through */
423       case 34 : /* fall through */
424       case 35 :
425         if ((base_insn & 0xfc0) == 0x200)
426           { itype = CRISV10F_INSN_ADDQ; goto extract_sfmt_addq; }
427         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
428       case 36 : /* fall through */
429       case 37 : /* fall through */
430       case 38 : /* fall through */
431       case 39 :
432         if ((base_insn & 0xfc0) == 0x240)
433           { itype = CRISV10F_INSN_MOVEQ; goto extract_sfmt_moveq; }
434         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
435       case 40 : /* fall through */
436       case 41 : /* fall through */
437       case 42 : /* fall through */
438       case 43 :
439         if ((base_insn & 0xfc0) == 0x280)
440           { itype = CRISV10F_INSN_SUBQ; goto extract_sfmt_addq; }
441         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
442       case 44 : /* fall through */
443       case 45 : /* fall through */
444       case 46 : /* fall through */
445       case 47 :
446         if ((base_insn & 0xfc0) == 0x2c0)
447           { itype = CRISV10F_INSN_CMPQ; goto extract_sfmt_cmpq; }
448         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
449       case 48 : /* fall through */
450       case 49 : /* fall through */
451       case 50 : /* fall through */
452       case 51 :
453         if ((base_insn & 0xfc0) == 0x300)
454           { itype = CRISV10F_INSN_ANDQ; goto extract_sfmt_andq; }
455         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
456       case 52 : /* fall through */
457       case 53 : /* fall through */
458       case 54 : /* fall through */
459       case 55 :
460         if ((base_insn & 0xfc0) == 0x340)
461           { itype = CRISV10F_INSN_ORQ; goto extract_sfmt_andq; }
462         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
463       case 56 : /* fall through */
464       case 57 :
465         if ((base_insn & 0xfe0) == 0x380)
466           { itype = CRISV10F_INSN_BTSTQ; goto extract_sfmt_btstq; }
467         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
468       case 58 : /* fall through */
469       case 59 :
470         if ((base_insn & 0xfe0) == 0x3a0)
471           { itype = CRISV10F_INSN_ASRQ; goto extract_sfmt_asrq; }
472         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
473       case 60 : /* fall through */
474       case 61 :
475         if ((base_insn & 0xfe0) == 0x3c0)
476           { itype = CRISV10F_INSN_LSLQ; goto extract_sfmt_asrq; }
477         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
478       case 62 : /* fall through */
479       case 63 :
480         if ((base_insn & 0xfe0) == 0x3e0)
481           { itype = CRISV10F_INSN_LSRQ; goto extract_sfmt_asrq; }
482         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
483       case 64 :
484         if ((base_insn & 0xff0) == 0x400)
485           { itype = CRISV10F_INSN_ADDU_B_R; goto extract_sfmt_add_d_r; }
486         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
487       case 65 :
488         if ((base_insn & 0xff0) == 0x410)
489           { itype = CRISV10F_INSN_ADDU_W_R; goto extract_sfmt_add_d_r; }
490         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
491       case 66 :
492         if ((base_insn & 0xff0) == 0x420)
493           { itype = CRISV10F_INSN_ADDS_B_R; goto extract_sfmt_add_d_r; }
494         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
495       case 67 :
496         if ((base_insn & 0xff0) == 0x430)
497           { itype = CRISV10F_INSN_ADDS_W_R; goto extract_sfmt_add_d_r; }
498         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
499       case 68 :
500         if ((base_insn & 0xff0) == 0x440)
501           { itype = CRISV10F_INSN_MOVU_B_R; goto extract_sfmt_movs_b_r; }
502         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
503       case 69 :
504         if ((base_insn & 0xff0) == 0x450)
505           { itype = CRISV10F_INSN_MOVU_W_R; goto extract_sfmt_movs_b_r; }
506         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
507       case 70 :
508         if ((base_insn & 0xff0) == 0x460)
509           { itype = CRISV10F_INSN_MOVS_B_R; goto extract_sfmt_movs_b_r; }
510         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
511       case 71 :
512         if ((base_insn & 0xff0) == 0x470)
513           { itype = CRISV10F_INSN_MOVS_W_R; goto extract_sfmt_movs_b_r; }
514         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
515       case 72 :
516         if ((base_insn & 0xff0) == 0x480)
517           { itype = CRISV10F_INSN_SUBU_B_R; goto extract_sfmt_add_d_r; }
518         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
519       case 73 :
520         if ((base_insn & 0xff0) == 0x490)
521           { itype = CRISV10F_INSN_SUBU_W_R; goto extract_sfmt_add_d_r; }
522         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
523       case 74 :
524         if ((base_insn & 0xff0) == 0x4a0)
525           { itype = CRISV10F_INSN_SUBS_B_R; goto extract_sfmt_add_d_r; }
526         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
527       case 75 :
528         if ((base_insn & 0xff0) == 0x4b0)
529           { itype = CRISV10F_INSN_SUBS_W_R; goto extract_sfmt_add_d_r; }
530         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
531       case 76 :
532         if ((base_insn & 0xff0) == 0x4c0)
533           { itype = CRISV10F_INSN_LSLR_B_R; goto extract_sfmt_lsrr_b_r; }
534         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
535       case 77 :
536         if ((base_insn & 0xff0) == 0x4d0)
537           { itype = CRISV10F_INSN_LSLR_W_R; goto extract_sfmt_lsrr_b_r; }
538         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
539       case 78 :
540         if ((base_insn & 0xff0) == 0x4e0)
541           { itype = CRISV10F_INSN_LSLR_D_R; goto extract_sfmt_lsrr_d_r; }
542         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
543       case 79 :
544         if ((base_insn & 0xff0) == 0x4f0)
545           { itype = CRISV10F_INSN_BTST; goto extract_sfmt_btst; }
546         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
547       case 80 :
548         {
549           unsigned int val = (((insn >> 8) & (7 << 4)) | ((insn >> 0) & (15 << 0)));
550           switch (val)
551           {
552           case 0 : /* fall through */
553           case 1 : /* fall through */
554           case 2 : /* fall through */
555           case 3 : /* fall through */
556           case 4 : /* fall through */
557           case 5 : /* fall through */
558           case 6 : /* fall through */
559           case 7 : /* fall through */
560           case 8 : /* fall through */
561           case 9 : /* fall through */
562           case 10 : /* fall through */
563           case 11 : /* fall through */
564           case 12 : /* fall through */
565           case 13 : /* fall through */
566           case 14 : /* fall through */
567           case 16 : /* fall through */
568           case 17 : /* fall through */
569           case 18 : /* fall through */
570           case 19 : /* fall through */
571           case 20 : /* fall through */
572           case 21 : /* fall through */
573           case 22 : /* fall through */
574           case 23 : /* fall through */
575           case 24 : /* fall through */
576           case 25 : /* fall through */
577           case 26 : /* fall through */
578           case 27 : /* fall through */
579           case 28 : /* fall through */
580           case 29 : /* fall through */
581           case 30 : /* fall through */
582           case 31 : /* fall through */
583           case 32 : /* fall through */
584           case 33 : /* fall through */
585           case 34 : /* fall through */
586           case 35 : /* fall through */
587           case 36 : /* fall through */
588           case 37 : /* fall through */
589           case 38 : /* fall through */
590           case 39 : /* fall through */
591           case 40 : /* fall through */
592           case 41 : /* fall through */
593           case 42 : /* fall through */
594           case 43 : /* fall through */
595           case 44 : /* fall through */
596           case 45 : /* fall through */
597           case 46 : /* fall through */
598           case 47 : /* fall through */
599           case 48 : /* fall through */
600           case 49 : /* fall through */
601           case 50 : /* fall through */
602           case 51 : /* fall through */
603           case 52 : /* fall through */
604           case 53 : /* fall through */
605           case 54 : /* fall through */
606           case 55 : /* fall through */
607           case 56 : /* fall through */
608           case 57 : /* fall through */
609           case 58 : /* fall through */
610           case 59 : /* fall through */
611           case 60 : /* fall through */
612           case 61 : /* fall through */
613           case 62 : /* fall through */
614           case 63 : /* fall through */
615           case 64 : /* fall through */
616           case 65 : /* fall through */
617           case 66 : /* fall through */
618           case 67 : /* fall through */
619           case 68 : /* fall through */
620           case 69 : /* fall through */
621           case 70 : /* fall through */
622           case 71 : /* fall through */
623           case 72 : /* fall through */
624           case 73 : /* fall through */
625           case 74 : /* fall through */
626           case 75 : /* fall through */
627           case 76 : /* fall through */
628           case 77 : /* fall through */
629           case 78 : /* fall through */
630           case 79 : /* fall through */
631           case 80 : /* fall through */
632           case 81 : /* fall through */
633           case 82 : /* fall through */
634           case 83 : /* fall through */
635           case 84 : /* fall through */
636           case 85 : /* fall through */
637           case 86 : /* fall through */
638           case 87 : /* fall through */
639           case 88 : /* fall through */
640           case 89 : /* fall through */
641           case 90 : /* fall through */
642           case 91 : /* fall through */
643           case 92 : /* fall through */
644           case 93 : /* fall through */
645           case 94 : /* fall through */
646           case 95 : /* fall through */
647           case 96 : /* fall through */
648           case 97 : /* fall through */
649           case 98 : /* fall through */
650           case 99 : /* fall through */
651           case 100 : /* fall through */
652           case 101 : /* fall through */
653           case 102 : /* fall through */
654           case 103 : /* fall through */
655           case 104 : /* fall through */
656           case 105 : /* fall through */
657           case 106 : /* fall through */
658           case 107 : /* fall through */
659           case 108 : /* fall through */
660           case 109 : /* fall through */
661           case 110 : /* fall through */
662           case 111 : /* fall through */
663           case 112 : /* fall through */
664           case 113 : /* fall through */
665           case 114 : /* fall through */
666           case 115 : /* fall through */
667           case 116 : /* fall through */
668           case 117 : /* fall through */
669           case 118 : /* fall through */
670           case 119 : /* fall through */
671           case 120 : /* fall through */
672           case 121 : /* fall through */
673           case 122 : /* fall through */
674           case 123 : /* fall through */
675           case 124 : /* fall through */
676           case 125 : /* fall through */
677           case 126 : /* fall through */
678           case 127 :
679             if ((base_insn & 0xff0) == 0x500)
680               { itype = CRISV10F_INSN_ADDI_B_R; goto extract_sfmt_addi_b_r; }
681             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
682           case 15 :
683             {
684               unsigned int val = (((insn >> 15) & (1 << 0)));
685               switch (val)
686               {
687               case 0 :
688                 if ((base_insn & 0xffff) == 0x50f)
689                   { itype = CRISV10F_INSN_NOP; goto extract_sfmt_nop; }
690                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
691               case 1 :
692                 if ((base_insn & 0xff0) == 0x500)
693                   { itype = CRISV10F_INSN_ADDI_B_R; goto extract_sfmt_addi_b_r; }
694                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
695               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
696               }
697             }
698           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
699           }
700         }
701       case 81 :
702         if ((base_insn & 0xff0) == 0x510)
703           { itype = CRISV10F_INSN_ADDI_W_R; goto extract_sfmt_addi_b_r; }
704         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
705       case 82 :
706         if ((base_insn & 0xff0) == 0x520)
707           { itype = CRISV10F_INSN_ADDI_D_R; goto extract_sfmt_addi_b_r; }
708         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
709       case 83 :
710         if ((base_insn & 0xff0) == 0x530)
711           { itype = CRISV10F_INSN_SCC; goto extract_sfmt_scc; }
712         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
713       case 84 :
714         {
715           unsigned int val = (((insn >> 0) & (15 << 0)));
716           switch (val)
717           {
718           case 0 : /* fall through */
719           case 1 : /* fall through */
720           case 2 : /* fall through */
721           case 3 : /* fall through */
722           case 4 : /* fall through */
723           case 5 : /* fall through */
724           case 6 : /* fall through */
725           case 7 : /* fall through */
726           case 8 : /* fall through */
727           case 9 : /* fall through */
728           case 10 : /* fall through */
729           case 11 : /* fall through */
730           case 12 : /* fall through */
731           case 13 : /* fall through */
732           case 14 :
733             if ((base_insn & 0xff0) == 0x540)
734               { itype = CRISV10F_INSN_ADDI_ACR_B_R; goto extract_sfmt_addi_acr_b_r; }
735             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
736           case 15 :
737             if ((base_insn & 0xfff) == 0x54f)
738               { itype = CRISV10F_INSN_BIAP_PC_B_R; goto extract_sfmt_biap_pc_b_r; }
739             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
740           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
741           }
742         }
743       case 85 :
744         {
745           unsigned int val = (((insn >> 0) & (15 << 0)));
746           switch (val)
747           {
748           case 0 : /* fall through */
749           case 1 : /* fall through */
750           case 2 : /* fall through */
751           case 3 : /* fall through */
752           case 4 : /* fall through */
753           case 5 : /* fall through */
754           case 6 : /* fall through */
755           case 7 : /* fall through */
756           case 8 : /* fall through */
757           case 9 : /* fall through */
758           case 10 : /* fall through */
759           case 11 : /* fall through */
760           case 12 : /* fall through */
761           case 13 : /* fall through */
762           case 14 :
763             if ((base_insn & 0xff0) == 0x550)
764               { itype = CRISV10F_INSN_ADDI_ACR_W_R; goto extract_sfmt_addi_acr_b_r; }
765             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
766           case 15 :
767             if ((base_insn & 0xfff) == 0x55f)
768               { itype = CRISV10F_INSN_BIAP_PC_W_R; goto extract_sfmt_biap_pc_b_r; }
769             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
770           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
771           }
772         }
773       case 86 :
774         {
775           unsigned int val = (((insn >> 0) & (15 << 0)));
776           switch (val)
777           {
778           case 0 : /* fall through */
779           case 1 : /* fall through */
780           case 2 : /* fall through */
781           case 3 : /* fall through */
782           case 4 : /* fall through */
783           case 5 : /* fall through */
784           case 6 : /* fall through */
785           case 7 : /* fall through */
786           case 8 : /* fall through */
787           case 9 : /* fall through */
788           case 10 : /* fall through */
789           case 11 : /* fall through */
790           case 12 : /* fall through */
791           case 13 : /* fall through */
792           case 14 :
793             if ((base_insn & 0xff0) == 0x560)
794               { itype = CRISV10F_INSN_ADDI_ACR_D_R; goto extract_sfmt_addi_acr_b_r; }
795             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
796           case 15 :
797             if ((base_insn & 0xfff) == 0x56f)
798               { itype = CRISV10F_INSN_BIAP_PC_D_R; goto extract_sfmt_biap_pc_b_r; }
799             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
800           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
801           }
802         }
803       case 88 :
804         if ((base_insn & 0xff0) == 0x580)
805           { itype = CRISV10F_INSN_NEG_B_R; goto extract_sfmt_neg_b_r; }
806         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
807       case 89 :
808         if ((base_insn & 0xff0) == 0x590)
809           { itype = CRISV10F_INSN_NEG_W_R; goto extract_sfmt_neg_b_r; }
810         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
811       case 90 :
812         if ((base_insn & 0xff0) == 0x5a0)
813           { itype = CRISV10F_INSN_NEG_D_R; goto extract_sfmt_neg_d_r; }
814         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
815       case 91 :
816         if ((base_insn & 0xff0) == 0x5b0)
817           { itype = CRISV10F_INSN_SETF; goto extract_sfmt_setf; }
818         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
819       case 92 :
820         if ((base_insn & 0xff0) == 0x5c0)
821           { itype = CRISV10F_INSN_BOUND_R_B_R; goto extract_sfmt_dstep; }
822         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
823       case 93 :
824         if ((base_insn & 0xff0) == 0x5d0)
825           { itype = CRISV10F_INSN_BOUND_R_W_R; goto extract_sfmt_dstep; }
826         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
827       case 94 :
828         if ((base_insn & 0xff0) == 0x5e0)
829           { itype = CRISV10F_INSN_BOUND_R_D_R; goto extract_sfmt_dstep; }
830         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
831       case 95 :
832         if ((base_insn & 0xff0) == 0x5f0)
833           { itype = CRISV10F_INSN_CLEARF; goto extract_sfmt_setf; }
834         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
835       case 96 :
836         if ((base_insn & 0xff0) == 0x600)
837           { itype = CRISV10F_INSN_ADD_B_R; goto extract_sfmt_add_b_r; }
838         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
839       case 97 :
840         if ((base_insn & 0xff0) == 0x610)
841           { itype = CRISV10F_INSN_ADD_W_R; goto extract_sfmt_add_b_r; }
842         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
843       case 98 :
844         if ((base_insn & 0xff0) == 0x620)
845           { itype = CRISV10F_INSN_ADD_D_R; goto extract_sfmt_add_d_r; }
846         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
847       case 99 :
848         if ((base_insn & 0xff0) == 0x630)
849           { itype = CRISV10F_INSN_MOVE_R_SPRV10; goto extract_sfmt_move_r_sprv10; }
850         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
851       case 100 :
852         if ((base_insn & 0xff0) == 0x640)
853           { itype = CRISV10F_INSN_MOVE_B_R; goto extract_sfmt_move_b_r; }
854         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
855       case 101 :
856         if ((base_insn & 0xff0) == 0x650)
857           { itype = CRISV10F_INSN_MOVE_W_R; goto extract_sfmt_move_b_r; }
858         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
859       case 102 :
860         {
861           unsigned int val = (((insn >> 0) & (15 << 0)));
862           switch (val)
863           {
864           case 0 : /* fall through */
865           case 1 : /* fall through */
866           case 2 : /* fall through */
867           case 3 : /* fall through */
868           case 4 : /* fall through */
869           case 5 : /* fall through */
870           case 6 : /* fall through */
871           case 7 : /* fall through */
872           case 8 : /* fall through */
873           case 9 : /* fall through */
874           case 10 : /* fall through */
875           case 11 : /* fall through */
876           case 12 : /* fall through */
877           case 13 : /* fall through */
878           case 14 :
879             if ((base_insn & 0xff0) == 0x660)
880               { itype = CRISV10F_INSN_MOVE_D_R; goto extract_sfmt_move_d_r; }
881             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
882           case 15 :
883             if ((base_insn & 0xfff) == 0x66f)
884               { itype = CRISV10F_INSN_MOVEPCR; goto extract_sfmt_movepcr; }
885             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
886           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
887           }
888         }
889       case 103 :
890         {
891           unsigned int val = (((insn >> 0) & (15 << 0)));
892           switch (val)
893           {
894           case 0 : /* fall through */
895           case 1 : /* fall through */
896           case 2 : /* fall through */
897           case 3 : /* fall through */
898           case 4 : /* fall through */
899           case 5 : /* fall through */
900           case 6 : /* fall through */
901           case 7 : /* fall through */
902           case 8 : /* fall through */
903           case 9 : /* fall through */
904           case 10 : /* fall through */
905           case 11 : /* fall through */
906           case 12 : /* fall through */
907           case 13 : /* fall through */
908           case 14 :
909             if ((base_insn & 0xff0) == 0x670)
910               { itype = CRISV10F_INSN_MOVE_SPR_RV10; goto extract_sfmt_move_spr_rv10; }
911             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
912           case 15 :
913             if ((base_insn & 0xfff) == 0x67f)
914               { itype = CRISV10F_INSN_RET_TYPE; goto extract_sfmt_ret_type; }
915             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
916           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
917           }
918         }
919       case 104 :
920         if ((base_insn & 0xff0) == 0x680)
921           { itype = CRISV10F_INSN_SUB_B_R; goto extract_sfmt_add_b_r; }
922         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
923       case 105 :
924         if ((base_insn & 0xff0) == 0x690)
925           { itype = CRISV10F_INSN_SUB_W_R; goto extract_sfmt_add_b_r; }
926         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
927       case 106 :
928         if ((base_insn & 0xff0) == 0x6a0)
929           { itype = CRISV10F_INSN_SUB_D_R; goto extract_sfmt_add_d_r; }
930         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
931       case 107 :
932         if ((base_insn & 0xff0) == 0x6b0)
933           { itype = CRISV10F_INSN_ABS; goto extract_sfmt_movs_b_r; }
934         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
935       case 108 :
936         if ((base_insn & 0xff0) == 0x6c0)
937           { itype = CRISV10F_INSN_CMP_R_B_R; goto extract_sfmt_cmp_r_b_r; }
938         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
939       case 109 :
940         if ((base_insn & 0xff0) == 0x6d0)
941           { itype = CRISV10F_INSN_CMP_R_W_R; goto extract_sfmt_cmp_r_b_r; }
942         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
943       case 110 :
944         if ((base_insn & 0xff0) == 0x6e0)
945           { itype = CRISV10F_INSN_CMP_R_D_R; goto extract_sfmt_cmp_r_b_r; }
946         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
947       case 111 :
948         if ((base_insn & 0xff0) == 0x6f0)
949           { itype = CRISV10F_INSN_DSTEP; goto extract_sfmt_dstep; }
950         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
951       case 112 :
952         if ((base_insn & 0xff0) == 0x700)
953           { itype = CRISV10F_INSN_AND_B_R; goto extract_sfmt_and_b_r; }
954         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
955       case 113 :
956         if ((base_insn & 0xff0) == 0x710)
957           { itype = CRISV10F_INSN_AND_W_R; goto extract_sfmt_and_w_r; }
958         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
959       case 114 :
960         if ((base_insn & 0xff0) == 0x720)
961           { itype = CRISV10F_INSN_AND_D_R; goto extract_sfmt_and_d_r; }
962         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
963       case 115 :
964         if ((base_insn & 0xff0) == 0x730)
965           { itype = CRISV10F_INSN_LZ; goto extract_sfmt_movs_b_r; }
966         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
967       case 116 :
968         if ((base_insn & 0xff0) == 0x740)
969           { itype = CRISV10F_INSN_ORR_B_R; goto extract_sfmt_and_b_r; }
970         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
971       case 117 :
972         if ((base_insn & 0xff0) == 0x750)
973           { itype = CRISV10F_INSN_ORR_W_R; goto extract_sfmt_and_w_r; }
974         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
975       case 118 :
976         if ((base_insn & 0xff0) == 0x760)
977           { itype = CRISV10F_INSN_ORR_D_R; goto extract_sfmt_and_d_r; }
978         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
979       case 119 :
980         if ((base_insn & 0xff0) == 0x770)
981           { itype = CRISV10F_INSN_SWAP; goto extract_sfmt_swap; }
982         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
983       case 120 :
984         if ((base_insn & 0xff0) == 0x780)
985           { itype = CRISV10F_INSN_ASRR_B_R; goto extract_sfmt_asrr_b_r; }
986         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
987       case 121 :
988         if ((base_insn & 0xff0) == 0x790)
989           { itype = CRISV10F_INSN_ASRR_W_R; goto extract_sfmt_asrr_b_r; }
990         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
991       case 122 :
992         if ((base_insn & 0xff0) == 0x7a0)
993           { itype = CRISV10F_INSN_ASRR_D_R; goto extract_sfmt_and_d_r; }
994         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
995       case 123 :
996         if ((base_insn & 0xff0) == 0x7b0)
997           { itype = CRISV10F_INSN_XOR; goto extract_sfmt_dstep; }
998         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
999       case 124 :
1000         if ((base_insn & 0xff0) == 0x7c0)
1001           { itype = CRISV10F_INSN_LSRR_B_R; goto extract_sfmt_lsrr_b_r; }
1002         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1003       case 125 :
1004         if ((base_insn & 0xff0) == 0x7d0)
1005           { itype = CRISV10F_INSN_LSRR_W_R; goto extract_sfmt_lsrr_b_r; }
1006         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1007       case 126 :
1008         if ((base_insn & 0xff0) == 0x7e0)
1009           { itype = CRISV10F_INSN_LSRR_D_R; goto extract_sfmt_lsrr_d_r; }
1010         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1011       case 127 :
1012         if ((base_insn & 0xff0) == 0x7f0)
1013           { itype = CRISV10F_INSN_MSTEP; goto extract_sfmt_mstep; }
1014         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1015       case 128 :
1016         if ((base_insn & 0xbf0) == 0x800)
1017           { itype = CRISV10F_INSN_ADDU_M_B_M; goto extract_sfmt_adds_m_b_m; }
1018         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1019       case 129 :
1020         if ((base_insn & 0xbf0) == 0x810)
1021           { itype = CRISV10F_INSN_ADDU_M_W_M; goto extract_sfmt_adds_m_w_m; }
1022         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1023       case 130 :
1024         if ((base_insn & 0xbf0) == 0x820)
1025           { itype = CRISV10F_INSN_ADDS_M_B_M; goto extract_sfmt_adds_m_b_m; }
1026         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1027       case 131 :
1028         {
1029           unsigned int val = (((insn >> 8) & (7 << 4)) | ((insn >> 0) & (15 << 0)));
1030           switch (val)
1031           {
1032           case 0 : /* fall through */
1033           case 1 : /* fall through */
1034           case 2 : /* fall through */
1035           case 3 : /* fall through */
1036           case 4 : /* fall through */
1037           case 5 : /* fall through */
1038           case 6 : /* fall through */
1039           case 7 : /* fall through */
1040           case 8 : /* fall through */
1041           case 9 : /* fall through */
1042           case 10 : /* fall through */
1043           case 11 : /* fall through */
1044           case 12 : /* fall through */
1045           case 13 : /* fall through */
1046           case 14 : /* fall through */
1047           case 15 : /* fall through */
1048           case 16 : /* fall through */
1049           case 17 : /* fall through */
1050           case 18 : /* fall through */
1051           case 19 : /* fall through */
1052           case 20 : /* fall through */
1053           case 21 : /* fall through */
1054           case 22 : /* fall through */
1055           case 23 : /* fall through */
1056           case 24 : /* fall through */
1057           case 25 : /* fall through */
1058           case 26 : /* fall through */
1059           case 27 : /* fall through */
1060           case 28 : /* fall through */
1061           case 29 : /* fall through */
1062           case 30 : /* fall through */
1063           case 31 : /* fall through */
1064           case 32 : /* fall through */
1065           case 33 : /* fall through */
1066           case 34 : /* fall through */
1067           case 35 : /* fall through */
1068           case 36 : /* fall through */
1069           case 37 : /* fall through */
1070           case 38 : /* fall through */
1071           case 39 : /* fall through */
1072           case 40 : /* fall through */
1073           case 41 : /* fall through */
1074           case 42 : /* fall through */
1075           case 43 : /* fall through */
1076           case 44 : /* fall through */
1077           case 45 : /* fall through */
1078           case 46 : /* fall through */
1079           case 47 : /* fall through */
1080           case 48 : /* fall through */
1081           case 49 : /* fall through */
1082           case 50 : /* fall through */
1083           case 51 : /* fall through */
1084           case 52 : /* fall through */
1085           case 53 : /* fall through */
1086           case 54 : /* fall through */
1087           case 55 : /* fall through */
1088           case 56 : /* fall through */
1089           case 57 : /* fall through */
1090           case 58 : /* fall through */
1091           case 59 : /* fall through */
1092           case 60 : /* fall through */
1093           case 61 : /* fall through */
1094           case 62 : /* fall through */
1095           case 63 : /* fall through */
1096           case 64 : /* fall through */
1097           case 65 : /* fall through */
1098           case 66 : /* fall through */
1099           case 67 : /* fall through */
1100           case 68 : /* fall through */
1101           case 69 : /* fall through */
1102           case 70 : /* fall through */
1103           case 71 : /* fall through */
1104           case 72 : /* fall through */
1105           case 73 : /* fall through */
1106           case 74 : /* fall through */
1107           case 75 : /* fall through */
1108           case 76 : /* fall through */
1109           case 77 : /* fall through */
1110           case 78 : /* fall through */
1111           case 79 : /* fall through */
1112           case 80 : /* fall through */
1113           case 81 : /* fall through */
1114           case 82 : /* fall through */
1115           case 83 : /* fall through */
1116           case 84 : /* fall through */
1117           case 85 : /* fall through */
1118           case 86 : /* fall through */
1119           case 87 : /* fall through */
1120           case 88 : /* fall through */
1121           case 89 : /* fall through */
1122           case 90 : /* fall through */
1123           case 91 : /* fall through */
1124           case 92 : /* fall through */
1125           case 93 : /* fall through */
1126           case 94 : /* fall through */
1127           case 95 : /* fall through */
1128           case 96 : /* fall through */
1129           case 97 : /* fall through */
1130           case 98 : /* fall through */
1131           case 99 : /* fall through */
1132           case 100 : /* fall through */
1133           case 101 : /* fall through */
1134           case 102 : /* fall through */
1135           case 103 : /* fall through */
1136           case 104 : /* fall through */
1137           case 105 : /* fall through */
1138           case 106 : /* fall through */
1139           case 107 : /* fall through */
1140           case 108 : /* fall through */
1141           case 109 : /* fall through */
1142           case 110 : /* fall through */
1143           case 111 : /* fall through */
1144           case 112 : /* fall through */
1145           case 113 : /* fall through */
1146           case 114 : /* fall through */
1147           case 115 : /* fall through */
1148           case 116 : /* fall through */
1149           case 117 : /* fall through */
1150           case 118 : /* fall through */
1151           case 119 : /* fall through */
1152           case 120 : /* fall through */
1153           case 121 : /* fall through */
1154           case 122 : /* fall through */
1155           case 123 : /* fall through */
1156           case 124 : /* fall through */
1157           case 125 : /* fall through */
1158           case 126 :
1159             if ((base_insn & 0xbf0) == 0x830)
1160               { itype = CRISV10F_INSN_ADDS_M_W_M; goto extract_sfmt_adds_m_w_m; }
1161             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1162           case 127 :
1163             {
1164               unsigned int val = (((insn >> 15) & (1 << 0)));
1165               switch (val)
1166               {
1167               case 0 :
1168                 if ((base_insn & 0xbf0) == 0x830)
1169                   { itype = CRISV10F_INSN_ADDS_M_W_M; goto extract_sfmt_adds_m_w_m; }
1170                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1171               case 1 :
1172                 if ((base_insn & 0xffff) == 0xf83f)
1173                   { itype = CRISV10F_INSN_ADDSPCPC; goto extract_sfmt_addspcpc; }
1174                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1175               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1176               }
1177             }
1178           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1179           }
1180         }
1181       case 132 :
1182         if ((base_insn & 0xbf0) == 0x840)
1183           { itype = CRISV10F_INSN_MOVU_M_B_M; goto extract_sfmt_movs_m_b_m; }
1184         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1185       case 133 :
1186         if ((base_insn & 0xbf0) == 0x850)
1187           { itype = CRISV10F_INSN_MOVU_M_W_M; goto extract_sfmt_movs_m_w_m; }
1188         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1189       case 134 :
1190         if ((base_insn & 0xbf0) == 0x860)
1191           { itype = CRISV10F_INSN_MOVS_M_B_M; goto extract_sfmt_movs_m_b_m; }
1192         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1193       case 135 :
1194         if ((base_insn & 0xbf0) == 0x870)
1195           { itype = CRISV10F_INSN_MOVS_M_W_M; goto extract_sfmt_movs_m_w_m; }
1196         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1197       case 136 :
1198         if ((base_insn & 0xbf0) == 0x880)
1199           { itype = CRISV10F_INSN_SUBU_M_B_M; goto extract_sfmt_adds_m_b_m; }
1200         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1201       case 137 :
1202         if ((base_insn & 0xbf0) == 0x890)
1203           { itype = CRISV10F_INSN_SUBU_M_W_M; goto extract_sfmt_adds_m_w_m; }
1204         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1205       case 138 :
1206         if ((base_insn & 0xbf0) == 0x8a0)
1207           { itype = CRISV10F_INSN_SUBS_M_B_M; goto extract_sfmt_adds_m_b_m; }
1208         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1209       case 139 :
1210         if ((base_insn & 0xbf0) == 0x8b0)
1211           { itype = CRISV10F_INSN_SUBS_M_W_M; goto extract_sfmt_adds_m_w_m; }
1212         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1213       case 140 :
1214         if ((base_insn & 0xbf0) == 0x8c0)
1215           { itype = CRISV10F_INSN_CMPU_M_B_M; goto extract_sfmt_cmp_m_b_m; }
1216         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1217       case 141 :
1218         if ((base_insn & 0xbf0) == 0x8d0)
1219           { itype = CRISV10F_INSN_CMPU_M_W_M; goto extract_sfmt_cmp_m_w_m; }
1220         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1221       case 142 :
1222         if ((base_insn & 0xbf0) == 0x8e0)
1223           { itype = CRISV10F_INSN_CMPS_M_B_M; goto extract_sfmt_cmp_m_b_m; }
1224         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1225       case 143 :
1226         if ((base_insn & 0xbf0) == 0x8f0)
1227           { itype = CRISV10F_INSN_CMPS_M_W_M; goto extract_sfmt_cmp_m_w_m; }
1228         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1229       case 144 :
1230         if ((base_insn & 0xff0) == 0x900)
1231           { itype = CRISV10F_INSN_MULU_B; goto extract_sfmt_muls_b; }
1232         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1233       case 145 :
1234         if ((base_insn & 0xff0) == 0x910)
1235           { itype = CRISV10F_INSN_MULU_W; goto extract_sfmt_muls_b; }
1236         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1237       case 146 :
1238         if ((base_insn & 0xff0) == 0x920)
1239           { itype = CRISV10F_INSN_MULU_D; goto extract_sfmt_muls_b; }
1240         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1241       case 147 :
1242         {
1243           unsigned int val = (((insn >> 12) & (15 << 0)));
1244           switch (val)
1245           {
1246           case 0 : /* fall through */
1247           case 1 : /* fall through */
1248           case 2 : /* fall through */
1249           case 3 : /* fall through */
1250           case 4 : /* fall through */
1251           case 5 : /* fall through */
1252           case 6 : /* fall through */
1253           case 7 : /* fall through */
1254           case 8 : /* fall through */
1255           case 9 : /* fall through */
1256           case 10 : /* fall through */
1257           case 11 : /* fall through */
1258           case 12 : /* fall through */
1259           case 13 : /* fall through */
1260           case 15 :
1261             if ((base_insn & 0xbf0) == 0x930)
1262               { itype = CRISV10F_INSN_JUMP_M; goto extract_sfmt_jump_m; }
1263             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1264           case 14 :
1265             if ((base_insn & 0xfff0) == 0xe930)
1266               { itype = CRISV10F_INSN_BREAK; goto extract_sfmt_break; }
1267             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1268           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1269           }
1270         }
1271       case 148 :
1272         if ((base_insn & 0xbf0) == 0x940)
1273           { itype = CRISV10F_INSN_ADDO_M_B_M; goto extract_sfmt_addo_m_b_m; }
1274         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1275       case 149 :
1276         if ((base_insn & 0xbf0) == 0x950)
1277           { itype = CRISV10F_INSN_ADDO_M_W_M; goto extract_sfmt_addo_m_w_m; }
1278         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1279       case 150 :
1280         if ((base_insn & 0xbf0) == 0x960)
1281           { itype = CRISV10F_INSN_ADDO_M_D_M; goto extract_sfmt_addo_m_d_m; }
1282         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1283       case 151 :
1284         if ((base_insn & 0xfbf0) == 0x970)
1285           { itype = CRISV10F_INSN_DIP_M; goto extract_sfmt_dip_m; }
1286         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1287       case 155 :
1288         if ((base_insn & 0xff0) == 0x9b0)
1289           { itype = CRISV10F_INSN_JUMP_R; goto extract_sfmt_jump_r; }
1290         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1291       case 156 :
1292         if ((base_insn & 0xbf0) == 0x9c0)
1293           { itype = CRISV10F_INSN_BOUND_M_B_M; goto extract_sfmt_bound_m_b_m; }
1294         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1295       case 157 :
1296         if ((base_insn & 0xbf0) == 0x9d0)
1297           { itype = CRISV10F_INSN_BOUND_M_W_M; goto extract_sfmt_bound_m_w_m; }
1298         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1299       case 158 :
1300         if ((base_insn & 0xbf0) == 0x9e0)
1301           { itype = CRISV10F_INSN_BOUND_M_D_M; goto extract_sfmt_bound_m_d_m; }
1302         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1303       case 160 :
1304         if ((base_insn & 0xbf0) == 0xa00)
1305           { itype = CRISV10F_INSN_ADD_M_B_M; goto extract_sfmt_add_m_b_m; }
1306         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1307       case 161 :
1308         if ((base_insn & 0xbf0) == 0xa10)
1309           { itype = CRISV10F_INSN_ADD_M_W_M; goto extract_sfmt_add_m_w_m; }
1310         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1311       case 162 :
1312         if ((base_insn & 0xbf0) == 0xa20)
1313           { itype = CRISV10F_INSN_ADD_M_D_M; goto extract_sfmt_add_m_d_m; }
1314         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1315       case 163 :
1316         if ((base_insn & 0xbf0) == 0xa30)
1317           { itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10; }
1318         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1319       case 164 :
1320         if ((base_insn & 0xbf0) == 0xa40)
1321           { itype = CRISV10F_INSN_MOVE_M_B_M; goto extract_sfmt_move_m_b_m; }
1322         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1323       case 165 :
1324         if ((base_insn & 0xbf0) == 0xa50)
1325           { itype = CRISV10F_INSN_MOVE_M_W_M; goto extract_sfmt_move_m_w_m; }
1326         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1327       case 166 :
1328         if ((base_insn & 0xbf0) == 0xa60)
1329           { itype = CRISV10F_INSN_MOVE_M_D_M; goto extract_sfmt_move_m_d_m; }
1330         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1331       case 167 : /* fall through */
1332       case 231 :
1333         if ((base_insn & 0xbf0) == 0xa70)
1334           { itype = CRISV10F_INSN_MOVE_SPR_MV10; goto extract_sfmt_move_spr_mv10; }
1335         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1336       case 168 :
1337         if ((base_insn & 0xbf0) == 0xa80)
1338           { itype = CRISV10F_INSN_SUB_M_B_M; goto extract_sfmt_add_m_b_m; }
1339         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1340       case 169 :
1341         if ((base_insn & 0xbf0) == 0xa90)
1342           { itype = CRISV10F_INSN_SUB_M_W_M; goto extract_sfmt_add_m_w_m; }
1343         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1344       case 170 :
1345         if ((base_insn & 0xbf0) == 0xaa0)
1346           { itype = CRISV10F_INSN_SUB_M_D_M; goto extract_sfmt_add_m_d_m; }
1347         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1348       case 172 :
1349         if ((base_insn & 0xbf0) == 0xac0)
1350           { itype = CRISV10F_INSN_CMP_M_B_M; goto extract_sfmt_cmp_m_b_m; }
1351         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1352       case 173 :
1353         if ((base_insn & 0xbf0) == 0xad0)
1354           { itype = CRISV10F_INSN_CMP_M_W_M; goto extract_sfmt_cmp_m_w_m; }
1355         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1356       case 174 :
1357         if ((base_insn & 0xbf0) == 0xae0)
1358           { itype = CRISV10F_INSN_CMP_M_D_M; goto extract_sfmt_cmp_m_d_m; }
1359         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1360       case 176 :
1361         if ((base_insn & 0xbf0) == 0xb00)
1362           { itype = CRISV10F_INSN_AND_M_B_M; goto extract_sfmt_and_m_b_m; }
1363         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1364       case 177 :
1365         if ((base_insn & 0xbf0) == 0xb10)
1366           { itype = CRISV10F_INSN_AND_M_W_M; goto extract_sfmt_and_m_w_m; }
1367         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1368       case 178 :
1369         if ((base_insn & 0xbf0) == 0xb20)
1370           { itype = CRISV10F_INSN_AND_M_D_M; goto extract_sfmt_and_m_d_m; }
1371         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1372       case 180 :
1373         if ((base_insn & 0xbf0) == 0xb40)
1374           { itype = CRISV10F_INSN_OR_M_B_M; goto extract_sfmt_and_m_b_m; }
1375         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1376       case 181 :
1377         if ((base_insn & 0xbf0) == 0xb50)
1378           { itype = CRISV10F_INSN_OR_M_W_M; goto extract_sfmt_and_m_w_m; }
1379         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1380       case 182 :
1381         if ((base_insn & 0xbf0) == 0xb60)
1382           { itype = CRISV10F_INSN_OR_M_D_M; goto extract_sfmt_and_m_d_m; }
1383         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1384       case 183 : /* fall through */
1385       case 247 :
1386         if ((base_insn & 0xfbf0) == 0x3b70)
1387           { itype = CRISV10F_INSN_SBFS; goto extract_sfmt_sbfs; }
1388         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1389       case 184 : /* fall through */
1390       case 248 :
1391         if ((base_insn & 0xfbf0) == 0xb80)
1392           { itype = CRISV10F_INSN_TEST_M_B_M; goto extract_sfmt_test_m_b_m; }
1393         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1394       case 185 : /* fall through */
1395       case 249 :
1396         if ((base_insn & 0xfbf0) == 0xb90)
1397           { itype = CRISV10F_INSN_TEST_M_W_M; goto extract_sfmt_test_m_w_m; }
1398         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1399       case 186 : /* fall through */
1400       case 250 :
1401         if ((base_insn & 0xfbf0) == 0xba0)
1402           { itype = CRISV10F_INSN_TEST_M_D_M; goto extract_sfmt_test_m_d_m; }
1403         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1404       case 187 : /* fall through */
1405       case 251 :
1406         {
1407           unsigned int val = (((insn >> 12) & (15 << 0)));
1408           switch (val)
1409           {
1410           case 0 : /* fall through */
1411           case 1 : /* fall through */
1412           case 2 : /* fall through */
1413           case 3 : /* fall through */
1414           case 4 : /* fall through */
1415           case 5 : /* fall through */
1416           case 6 : /* fall through */
1417           case 7 : /* fall through */
1418           case 8 : /* fall through */
1419           case 9 : /* fall through */
1420           case 10 : /* fall through */
1421           case 11 : /* fall through */
1422           case 12 : /* fall through */
1423           case 13 : /* fall through */
1424           case 14 :
1425             if ((base_insn & 0xbf0) == 0xbb0)
1426               { itype = CRISV10F_INSN_MOVEM_M_R; goto extract_sfmt_movem_m_r; }
1427             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1428           case 15 :
1429             if ((base_insn & 0xfbf0) == 0xfbb0)
1430               { itype = CRISV10F_INSN_MOVEM_M_PC; goto extract_sfmt_movem_m_pc; }
1431             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1432           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1433           }
1434         }
1435       case 188 : /* fall through */
1436       case 252 :
1437         if ((base_insn & 0xbf0) == 0xbc0)
1438           { itype = CRISV10F_INSN_MOVE_R_M_B_M; goto extract_sfmt_move_r_m_b_m; }
1439         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1440       case 189 : /* fall through */
1441       case 253 :
1442         if ((base_insn & 0xbf0) == 0xbd0)
1443           { itype = CRISV10F_INSN_MOVE_R_M_W_M; goto extract_sfmt_move_r_m_w_m; }
1444         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1445       case 190 : /* fall through */
1446       case 254 :
1447         if ((base_insn & 0xbf0) == 0xbe0)
1448           { itype = CRISV10F_INSN_MOVE_R_M_D_M; goto extract_sfmt_move_r_m_d_m; }
1449         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1450       case 191 : /* fall through */
1451       case 255 :
1452         if ((base_insn & 0xbf0) == 0xbf0)
1453           { itype = CRISV10F_INSN_MOVEM_R_M; goto extract_sfmt_movem_r_m; }
1454         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1455       case 192 :
1456         {
1457           unsigned int val = (((insn >> 0) & (15 << 0)));
1458           switch (val)
1459           {
1460           case 0 : /* fall through */
1461           case 1 : /* fall through */
1462           case 2 : /* fall through */
1463           case 3 : /* fall through */
1464           case 4 : /* fall through */
1465           case 5 : /* fall through */
1466           case 6 : /* fall through */
1467           case 7 : /* fall through */
1468           case 8 : /* fall through */
1469           case 9 : /* fall through */
1470           case 10 : /* fall through */
1471           case 11 : /* fall through */
1472           case 12 : /* fall through */
1473           case 13 : /* fall through */
1474           case 14 :
1475             if ((base_insn & 0xbf0) == 0x800)
1476               { itype = CRISV10F_INSN_ADDU_M_B_M; goto extract_sfmt_adds_m_b_m; }
1477             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1478           case 15 :
1479             if ((base_insn & 0xfff) == 0xc0f)
1480               { itype = CRISV10F_INSN_ADDUCBR; goto extract_sfmt_addscbr; }
1481             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1482           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1483           }
1484         }
1485       case 193 :
1486         {
1487           unsigned int val = (((insn >> 0) & (15 << 0)));
1488           switch (val)
1489           {
1490           case 0 : /* fall through */
1491           case 1 : /* fall through */
1492           case 2 : /* fall through */
1493           case 3 : /* fall through */
1494           case 4 : /* fall through */
1495           case 5 : /* fall through */
1496           case 6 : /* fall through */
1497           case 7 : /* fall through */
1498           case 8 : /* fall through */
1499           case 9 : /* fall through */
1500           case 10 : /* fall through */
1501           case 11 : /* fall through */
1502           case 12 : /* fall through */
1503           case 13 : /* fall through */
1504           case 14 :
1505             if ((base_insn & 0xbf0) == 0x810)
1506               { itype = CRISV10F_INSN_ADDU_M_W_M; goto extract_sfmt_adds_m_w_m; }
1507             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1508           case 15 :
1509             if ((base_insn & 0xfff) == 0xc1f)
1510               { itype = CRISV10F_INSN_ADDUCWR; goto extract_sfmt_addscwr; }
1511             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1512           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1513           }
1514         }
1515       case 194 :
1516         {
1517           unsigned int val = (((insn >> 0) & (15 << 0)));
1518           switch (val)
1519           {
1520           case 0 : /* fall through */
1521           case 1 : /* fall through */
1522           case 2 : /* fall through */
1523           case 3 : /* fall through */
1524           case 4 : /* fall through */
1525           case 5 : /* fall through */
1526           case 6 : /* fall through */
1527           case 7 : /* fall through */
1528           case 8 : /* fall through */
1529           case 9 : /* fall through */
1530           case 10 : /* fall through */
1531           case 11 : /* fall through */
1532           case 12 : /* fall through */
1533           case 13 : /* fall through */
1534           case 14 :
1535             if ((base_insn & 0xbf0) == 0x820)
1536               { itype = CRISV10F_INSN_ADDS_M_B_M; goto extract_sfmt_adds_m_b_m; }
1537             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1538           case 15 :
1539             if ((base_insn & 0xfff) == 0xc2f)
1540               { itype = CRISV10F_INSN_ADDSCBR; goto extract_sfmt_addscbr; }
1541             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1542           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1543           }
1544         }
1545       case 195 :
1546         {
1547           unsigned int val = (((insn >> 0) & (15 << 0)));
1548           switch (val)
1549           {
1550           case 0 : /* fall through */
1551           case 1 : /* fall through */
1552           case 2 : /* fall through */
1553           case 3 : /* fall through */
1554           case 4 : /* fall through */
1555           case 5 : /* fall through */
1556           case 6 : /* fall through */
1557           case 7 : /* fall through */
1558           case 8 : /* fall through */
1559           case 9 : /* fall through */
1560           case 10 : /* fall through */
1561           case 11 : /* fall through */
1562           case 12 : /* fall through */
1563           case 13 : /* fall through */
1564           case 14 :
1565             if ((base_insn & 0xbf0) == 0x830)
1566               { itype = CRISV10F_INSN_ADDS_M_W_M; goto extract_sfmt_adds_m_w_m; }
1567             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1568           case 15 :
1569             if ((base_insn & 0xfff) == 0xc3f)
1570               { itype = CRISV10F_INSN_ADDSCWR; goto extract_sfmt_addscwr; }
1571             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1572           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1573           }
1574         }
1575       case 196 :
1576         {
1577           unsigned int val = (((insn >> 0) & (15 << 0)));
1578           switch (val)
1579           {
1580           case 0 : /* fall through */
1581           case 1 : /* fall through */
1582           case 2 : /* fall through */
1583           case 3 : /* fall through */
1584           case 4 : /* fall through */
1585           case 5 : /* fall through */
1586           case 6 : /* fall through */
1587           case 7 : /* fall through */
1588           case 8 : /* fall through */
1589           case 9 : /* fall through */
1590           case 10 : /* fall through */
1591           case 11 : /* fall through */
1592           case 12 : /* fall through */
1593           case 13 : /* fall through */
1594           case 14 :
1595             if ((base_insn & 0xbf0) == 0x840)
1596               { itype = CRISV10F_INSN_MOVU_M_B_M; goto extract_sfmt_movs_m_b_m; }
1597             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1598           case 15 :
1599             if ((base_insn & 0xfff) == 0xc4f)
1600               { itype = CRISV10F_INSN_MOVUCBR; goto extract_sfmt_movucbr; }
1601             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1602           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1603           }
1604         }
1605       case 197 :
1606         {
1607           unsigned int val = (((insn >> 0) & (15 << 0)));
1608           switch (val)
1609           {
1610           case 0 : /* fall through */
1611           case 1 : /* fall through */
1612           case 2 : /* fall through */
1613           case 3 : /* fall through */
1614           case 4 : /* fall through */
1615           case 5 : /* fall through */
1616           case 6 : /* fall through */
1617           case 7 : /* fall through */
1618           case 8 : /* fall through */
1619           case 9 : /* fall through */
1620           case 10 : /* fall through */
1621           case 11 : /* fall through */
1622           case 12 : /* fall through */
1623           case 13 : /* fall through */
1624           case 14 :
1625             if ((base_insn & 0xbf0) == 0x850)
1626               { itype = CRISV10F_INSN_MOVU_M_W_M; goto extract_sfmt_movs_m_w_m; }
1627             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1628           case 15 :
1629             if ((base_insn & 0xfff) == 0xc5f)
1630               { itype = CRISV10F_INSN_MOVUCWR; goto extract_sfmt_movucwr; }
1631             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1632           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1633           }
1634         }
1635       case 198 :
1636         {
1637           unsigned int val = (((insn >> 0) & (15 << 0)));
1638           switch (val)
1639           {
1640           case 0 : /* fall through */
1641           case 1 : /* fall through */
1642           case 2 : /* fall through */
1643           case 3 : /* fall through */
1644           case 4 : /* fall through */
1645           case 5 : /* fall through */
1646           case 6 : /* fall through */
1647           case 7 : /* fall through */
1648           case 8 : /* fall through */
1649           case 9 : /* fall through */
1650           case 10 : /* fall through */
1651           case 11 : /* fall through */
1652           case 12 : /* fall through */
1653           case 13 : /* fall through */
1654           case 14 :
1655             if ((base_insn & 0xbf0) == 0x860)
1656               { itype = CRISV10F_INSN_MOVS_M_B_M; goto extract_sfmt_movs_m_b_m; }
1657             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1658           case 15 :
1659             if ((base_insn & 0xfff) == 0xc6f)
1660               { itype = CRISV10F_INSN_MOVSCBR; goto extract_sfmt_movscbr; }
1661             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1662           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1663           }
1664         }
1665       case 199 :
1666         {
1667           unsigned int val = (((insn >> 0) & (15 << 0)));
1668           switch (val)
1669           {
1670           case 0 : /* fall through */
1671           case 1 : /* fall through */
1672           case 2 : /* fall through */
1673           case 3 : /* fall through */
1674           case 4 : /* fall through */
1675           case 5 : /* fall through */
1676           case 6 : /* fall through */
1677           case 7 : /* fall through */
1678           case 8 : /* fall through */
1679           case 9 : /* fall through */
1680           case 10 : /* fall through */
1681           case 11 : /* fall through */
1682           case 12 : /* fall through */
1683           case 13 : /* fall through */
1684           case 14 :
1685             if ((base_insn & 0xbf0) == 0x870)
1686               { itype = CRISV10F_INSN_MOVS_M_W_M; goto extract_sfmt_movs_m_w_m; }
1687             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1688           case 15 :
1689             if ((base_insn & 0xfff) == 0xc7f)
1690               { itype = CRISV10F_INSN_MOVSCWR; goto extract_sfmt_movscwr; }
1691             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1692           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1693           }
1694         }
1695       case 200 :
1696         {
1697           unsigned int val = (((insn >> 0) & (15 << 0)));
1698           switch (val)
1699           {
1700           case 0 : /* fall through */
1701           case 1 : /* fall through */
1702           case 2 : /* fall through */
1703           case 3 : /* fall through */
1704           case 4 : /* fall through */
1705           case 5 : /* fall through */
1706           case 6 : /* fall through */
1707           case 7 : /* fall through */
1708           case 8 : /* fall through */
1709           case 9 : /* fall through */
1710           case 10 : /* fall through */
1711           case 11 : /* fall through */
1712           case 12 : /* fall through */
1713           case 13 : /* fall through */
1714           case 14 :
1715             if ((base_insn & 0xbf0) == 0x880)
1716               { itype = CRISV10F_INSN_SUBU_M_B_M; goto extract_sfmt_adds_m_b_m; }
1717             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1718           case 15 :
1719             if ((base_insn & 0xfff) == 0xc8f)
1720               { itype = CRISV10F_INSN_SUBUCBR; goto extract_sfmt_addscbr; }
1721             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1722           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1723           }
1724         }
1725       case 201 :
1726         {
1727           unsigned int val = (((insn >> 0) & (15 << 0)));
1728           switch (val)
1729           {
1730           case 0 : /* fall through */
1731           case 1 : /* fall through */
1732           case 2 : /* fall through */
1733           case 3 : /* fall through */
1734           case 4 : /* fall through */
1735           case 5 : /* fall through */
1736           case 6 : /* fall through */
1737           case 7 : /* fall through */
1738           case 8 : /* fall through */
1739           case 9 : /* fall through */
1740           case 10 : /* fall through */
1741           case 11 : /* fall through */
1742           case 12 : /* fall through */
1743           case 13 : /* fall through */
1744           case 14 :
1745             if ((base_insn & 0xbf0) == 0x890)
1746               { itype = CRISV10F_INSN_SUBU_M_W_M; goto extract_sfmt_adds_m_w_m; }
1747             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1748           case 15 :
1749             if ((base_insn & 0xfff) == 0xc9f)
1750               { itype = CRISV10F_INSN_SUBUCWR; goto extract_sfmt_addscwr; }
1751             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1752           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1753           }
1754         }
1755       case 202 :
1756         {
1757           unsigned int val = (((insn >> 0) & (15 << 0)));
1758           switch (val)
1759           {
1760           case 0 : /* fall through */
1761           case 1 : /* fall through */
1762           case 2 : /* fall through */
1763           case 3 : /* fall through */
1764           case 4 : /* fall through */
1765           case 5 : /* fall through */
1766           case 6 : /* fall through */
1767           case 7 : /* fall through */
1768           case 8 : /* fall through */
1769           case 9 : /* fall through */
1770           case 10 : /* fall through */
1771           case 11 : /* fall through */
1772           case 12 : /* fall through */
1773           case 13 : /* fall through */
1774           case 14 :
1775             if ((base_insn & 0xbf0) == 0x8a0)
1776               { itype = CRISV10F_INSN_SUBS_M_B_M; goto extract_sfmt_adds_m_b_m; }
1777             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1778           case 15 :
1779             if ((base_insn & 0xfff) == 0xcaf)
1780               { itype = CRISV10F_INSN_SUBSCBR; goto extract_sfmt_addscbr; }
1781             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1782           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1783           }
1784         }
1785       case 203 :
1786         {
1787           unsigned int val = (((insn >> 0) & (15 << 0)));
1788           switch (val)
1789           {
1790           case 0 : /* fall through */
1791           case 1 : /* fall through */
1792           case 2 : /* fall through */
1793           case 3 : /* fall through */
1794           case 4 : /* fall through */
1795           case 5 : /* fall through */
1796           case 6 : /* fall through */
1797           case 7 : /* fall through */
1798           case 8 : /* fall through */
1799           case 9 : /* fall through */
1800           case 10 : /* fall through */
1801           case 11 : /* fall through */
1802           case 12 : /* fall through */
1803           case 13 : /* fall through */
1804           case 14 :
1805             if ((base_insn & 0xbf0) == 0x8b0)
1806               { itype = CRISV10F_INSN_SUBS_M_W_M; goto extract_sfmt_adds_m_w_m; }
1807             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1808           case 15 :
1809             if ((base_insn & 0xfff) == 0xcbf)
1810               { itype = CRISV10F_INSN_SUBSCWR; goto extract_sfmt_addscwr; }
1811             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1812           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1813           }
1814         }
1815       case 204 :
1816         {
1817           unsigned int val = (((insn >> 0) & (15 << 0)));
1818           switch (val)
1819           {
1820           case 0 : /* fall through */
1821           case 1 : /* fall through */
1822           case 2 : /* fall through */
1823           case 3 : /* fall through */
1824           case 4 : /* fall through */
1825           case 5 : /* fall through */
1826           case 6 : /* fall through */
1827           case 7 : /* fall through */
1828           case 8 : /* fall through */
1829           case 9 : /* fall through */
1830           case 10 : /* fall through */
1831           case 11 : /* fall through */
1832           case 12 : /* fall through */
1833           case 13 : /* fall through */
1834           case 14 :
1835             if ((base_insn & 0xbf0) == 0x8c0)
1836               { itype = CRISV10F_INSN_CMPU_M_B_M; goto extract_sfmt_cmp_m_b_m; }
1837             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1838           case 15 :
1839             if ((base_insn & 0xfff) == 0xccf)
1840               { itype = CRISV10F_INSN_CMPUCBR; goto extract_sfmt_cmpucbr; }
1841             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1842           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1843           }
1844         }
1845       case 205 :
1846         {
1847           unsigned int val = (((insn >> 0) & (15 << 0)));
1848           switch (val)
1849           {
1850           case 0 : /* fall through */
1851           case 1 : /* fall through */
1852           case 2 : /* fall through */
1853           case 3 : /* fall through */
1854           case 4 : /* fall through */
1855           case 5 : /* fall through */
1856           case 6 : /* fall through */
1857           case 7 : /* fall through */
1858           case 8 : /* fall through */
1859           case 9 : /* fall through */
1860           case 10 : /* fall through */
1861           case 11 : /* fall through */
1862           case 12 : /* fall through */
1863           case 13 : /* fall through */
1864           case 14 :
1865             if ((base_insn & 0xbf0) == 0x8d0)
1866               { itype = CRISV10F_INSN_CMPU_M_W_M; goto extract_sfmt_cmp_m_w_m; }
1867             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1868           case 15 :
1869             if ((base_insn & 0xfff) == 0xcdf)
1870               { itype = CRISV10F_INSN_CMPUCWR; goto extract_sfmt_cmpucwr; }
1871             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1872           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1873           }
1874         }
1875       case 206 :
1876         {
1877           unsigned int val = (((insn >> 0) & (15 << 0)));
1878           switch (val)
1879           {
1880           case 0 : /* fall through */
1881           case 1 : /* fall through */
1882           case 2 : /* fall through */
1883           case 3 : /* fall through */
1884           case 4 : /* fall through */
1885           case 5 : /* fall through */
1886           case 6 : /* fall through */
1887           case 7 : /* fall through */
1888           case 8 : /* fall through */
1889           case 9 : /* fall through */
1890           case 10 : /* fall through */
1891           case 11 : /* fall through */
1892           case 12 : /* fall through */
1893           case 13 : /* fall through */
1894           case 14 :
1895             if ((base_insn & 0xbf0) == 0x8e0)
1896               { itype = CRISV10F_INSN_CMPS_M_B_M; goto extract_sfmt_cmp_m_b_m; }
1897             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1898           case 15 :
1899             if ((base_insn & 0xfff) == 0xcef)
1900               { itype = CRISV10F_INSN_CMPSCBR; goto extract_sfmt_cmpcbr; }
1901             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1902           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1903           }
1904         }
1905       case 207 :
1906         {
1907           unsigned int val = (((insn >> 0) & (15 << 0)));
1908           switch (val)
1909           {
1910           case 0 : /* fall through */
1911           case 1 : /* fall through */
1912           case 2 : /* fall through */
1913           case 3 : /* fall through */
1914           case 4 : /* fall through */
1915           case 5 : /* fall through */
1916           case 6 : /* fall through */
1917           case 7 : /* fall through */
1918           case 8 : /* fall through */
1919           case 9 : /* fall through */
1920           case 10 : /* fall through */
1921           case 11 : /* fall through */
1922           case 12 : /* fall through */
1923           case 13 : /* fall through */
1924           case 14 :
1925             if ((base_insn & 0xbf0) == 0x8f0)
1926               { itype = CRISV10F_INSN_CMPS_M_W_M; goto extract_sfmt_cmp_m_w_m; }
1927             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1928           case 15 :
1929             if ((base_insn & 0xfff) == 0xcff)
1930               { itype = CRISV10F_INSN_CMPSCWR; goto extract_sfmt_cmpcwr; }
1931             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1932           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1933           }
1934         }
1935       case 208 :
1936         if ((base_insn & 0xff0) == 0xd00)
1937           { itype = CRISV10F_INSN_MULS_B; goto extract_sfmt_muls_b; }
1938         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1939       case 209 :
1940         if ((base_insn & 0xff0) == 0xd10)
1941           { itype = CRISV10F_INSN_MULS_W; goto extract_sfmt_muls_b; }
1942         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1943       case 210 :
1944         if ((base_insn & 0xff0) == 0xd20)
1945           { itype = CRISV10F_INSN_MULS_D; goto extract_sfmt_muls_b; }
1946         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1947       case 211 :
1948         {
1949           unsigned int val = (((insn >> 0) & (15 << 0)));
1950           switch (val)
1951           {
1952           case 0 : /* fall through */
1953           case 1 : /* fall through */
1954           case 2 : /* fall through */
1955           case 3 : /* fall through */
1956           case 4 : /* fall through */
1957           case 5 : /* fall through */
1958           case 6 : /* fall through */
1959           case 7 : /* fall through */
1960           case 8 : /* fall through */
1961           case 9 : /* fall through */
1962           case 10 : /* fall through */
1963           case 11 : /* fall through */
1964           case 12 : /* fall through */
1965           case 13 : /* fall through */
1966           case 14 :
1967             if ((base_insn & 0xbf0) == 0x930)
1968               { itype = CRISV10F_INSN_JUMP_M; goto extract_sfmt_jump_m; }
1969             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1970           case 15 :
1971             if ((base_insn & 0xfff) == 0xd3f)
1972               { itype = CRISV10F_INSN_JUMP_C; goto extract_sfmt_jump_c; }
1973             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1974           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1975           }
1976         }
1977       case 212 :
1978         {
1979           unsigned int val = (((insn >> 0) & (15 << 0)));
1980           switch (val)
1981           {
1982           case 0 : /* fall through */
1983           case 1 : /* fall through */
1984           case 2 : /* fall through */
1985           case 3 : /* fall through */
1986           case 4 : /* fall through */
1987           case 5 : /* fall through */
1988           case 6 : /* fall through */
1989           case 7 : /* fall through */
1990           case 8 : /* fall through */
1991           case 9 : /* fall through */
1992           case 10 : /* fall through */
1993           case 11 : /* fall through */
1994           case 12 : /* fall through */
1995           case 13 : /* fall through */
1996           case 14 :
1997             if ((base_insn & 0xbf0) == 0x940)
1998               { itype = CRISV10F_INSN_ADDO_M_B_M; goto extract_sfmt_addo_m_b_m; }
1999             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2000           case 15 :
2001             if ((base_insn & 0xfff) == 0xd4f)
2002               { itype = CRISV10F_INSN_ADDO_CB; goto extract_sfmt_addo_cb; }
2003             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2004           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2005           }
2006         }
2007       case 213 :
2008         {
2009           unsigned int val = (((insn >> 0) & (15 << 0)));
2010           switch (val)
2011           {
2012           case 0 : /* fall through */
2013           case 1 : /* fall through */
2014           case 2 : /* fall through */
2015           case 3 : /* fall through */
2016           case 4 : /* fall through */
2017           case 5 : /* fall through */
2018           case 6 : /* fall through */
2019           case 7 : /* fall through */
2020           case 8 : /* fall through */
2021           case 9 : /* fall through */
2022           case 10 : /* fall through */
2023           case 11 : /* fall through */
2024           case 12 : /* fall through */
2025           case 13 : /* fall through */
2026           case 14 :
2027             if ((base_insn & 0xbf0) == 0x950)
2028               { itype = CRISV10F_INSN_ADDO_M_W_M; goto extract_sfmt_addo_m_w_m; }
2029             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2030           case 15 :
2031             if ((base_insn & 0xfff) == 0xd5f)
2032               { itype = CRISV10F_INSN_ADDO_CW; goto extract_sfmt_addo_cw; }
2033             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2034           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2035           }
2036         }
2037       case 214 :
2038         {
2039           unsigned int val = (((insn >> 12) & (15 << 0)));
2040           switch (val)
2041           {
2042           case 0 : /* fall through */
2043           case 1 : /* fall through */
2044           case 2 : /* fall through */
2045           case 3 : /* fall through */
2046           case 4 : /* fall through */
2047           case 5 : /* fall through */
2048           case 6 : /* fall through */
2049           case 7 : /* fall through */
2050           case 8 : /* fall through */
2051           case 9 : /* fall through */
2052           case 10 : /* fall through */
2053           case 11 : /* fall through */
2054           case 12 : /* fall through */
2055           case 13 : /* fall through */
2056           case 14 :
2057             {
2058               unsigned int val = (((insn >> 0) & (15 << 0)));
2059               switch (val)
2060               {
2061               case 0 : /* fall through */
2062               case 1 : /* fall through */
2063               case 2 : /* fall through */
2064               case 3 : /* fall through */
2065               case 4 : /* fall through */
2066               case 5 : /* fall through */
2067               case 6 : /* fall through */
2068               case 7 : /* fall through */
2069               case 8 : /* fall through */
2070               case 9 : /* fall through */
2071               case 10 : /* fall through */
2072               case 11 : /* fall through */
2073               case 12 : /* fall through */
2074               case 13 : /* fall through */
2075               case 14 :
2076                 if ((base_insn & 0xbf0) == 0x960)
2077                   { itype = CRISV10F_INSN_ADDO_M_D_M; goto extract_sfmt_addo_m_d_m; }
2078                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2079               case 15 :
2080                 if ((base_insn & 0xfff) == 0xd6f)
2081                   { itype = CRISV10F_INSN_ADDO_CD; goto extract_sfmt_addo_cd; }
2082                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2083               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2084               }
2085             }
2086           case 15 :
2087             {
2088               unsigned int val = (((insn >> 0) & (15 << 0)));
2089               switch (val)
2090               {
2091               case 0 : /* fall through */
2092               case 1 : /* fall through */
2093               case 2 : /* fall through */
2094               case 3 : /* fall through */
2095               case 4 : /* fall through */
2096               case 5 : /* fall through */
2097               case 6 : /* fall through */
2098               case 7 : /* fall through */
2099               case 8 : /* fall through */
2100               case 9 : /* fall through */
2101               case 10 : /* fall through */
2102               case 11 : /* fall through */
2103               case 12 : /* fall through */
2104               case 13 : /* fall through */
2105               case 14 :
2106                 if ((base_insn & 0xbf0) == 0x960)
2107                   { itype = CRISV10F_INSN_ADDO_M_D_M; goto extract_sfmt_addo_m_d_m; }
2108                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2109               case 15 :
2110                 if ((base_insn & 0xffff) == 0xfd6f)
2111                   { itype = CRISV10F_INSN_BDAP_32_PC; goto extract_sfmt_bdap_32_pc; }
2112                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2113               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2114               }
2115             }
2116           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2117           }
2118         }
2119       case 215 :
2120         {
2121           unsigned int val = (((insn >> 0) & (15 << 0)));
2122           switch (val)
2123           {
2124           case 0 : /* fall through */
2125           case 1 : /* fall through */
2126           case 2 : /* fall through */
2127           case 3 : /* fall through */
2128           case 4 : /* fall through */
2129           case 5 : /* fall through */
2130           case 6 : /* fall through */
2131           case 7 : /* fall through */
2132           case 8 : /* fall through */
2133           case 9 : /* fall through */
2134           case 10 : /* fall through */
2135           case 11 : /* fall through */
2136           case 12 : /* fall through */
2137           case 13 : /* fall through */
2138           case 14 :
2139             if ((base_insn & 0xfbf0) == 0x970)
2140               { itype = CRISV10F_INSN_DIP_M; goto extract_sfmt_dip_m; }
2141             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2142           case 15 :
2143             if ((base_insn & 0xffff) == 0xd7f)
2144               { itype = CRISV10F_INSN_DIP_C; goto extract_sfmt_dip_c; }
2145             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2146           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2147           }
2148         }
2149       case 220 :
2150         {
2151           unsigned int val = (((insn >> 0) & (15 << 0)));
2152           switch (val)
2153           {
2154           case 0 : /* fall through */
2155           case 1 : /* fall through */
2156           case 2 : /* fall through */
2157           case 3 : /* fall through */
2158           case 4 : /* fall through */
2159           case 5 : /* fall through */
2160           case 6 : /* fall through */
2161           case 7 : /* fall through */
2162           case 8 : /* fall through */
2163           case 9 : /* fall through */
2164           case 10 : /* fall through */
2165           case 11 : /* fall through */
2166           case 12 : /* fall through */
2167           case 13 : /* fall through */
2168           case 14 :
2169             if ((base_insn & 0xbf0) == 0x9c0)
2170               { itype = CRISV10F_INSN_BOUND_M_B_M; goto extract_sfmt_bound_m_b_m; }
2171             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2172           case 15 :
2173             if ((base_insn & 0xfff) == 0xdcf)
2174               { itype = CRISV10F_INSN_BOUND_CB; goto extract_sfmt_bound_cb; }
2175             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2176           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2177           }
2178         }
2179       case 221 :
2180         {
2181           unsigned int val = (((insn >> 0) & (15 << 0)));
2182           switch (val)
2183           {
2184           case 0 : /* fall through */
2185           case 1 : /* fall through */
2186           case 2 : /* fall through */
2187           case 3 : /* fall through */
2188           case 4 : /* fall through */
2189           case 5 : /* fall through */
2190           case 6 : /* fall through */
2191           case 7 : /* fall through */
2192           case 8 : /* fall through */
2193           case 9 : /* fall through */
2194           case 10 : /* fall through */
2195           case 11 : /* fall through */
2196           case 12 : /* fall through */
2197           case 13 : /* fall through */
2198           case 14 :
2199             if ((base_insn & 0xbf0) == 0x9d0)
2200               { itype = CRISV10F_INSN_BOUND_M_W_M; goto extract_sfmt_bound_m_w_m; }
2201             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2202           case 15 :
2203             if ((base_insn & 0xfff) == 0xddf)
2204               { itype = CRISV10F_INSN_BOUND_CW; goto extract_sfmt_bound_cw; }
2205             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2206           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2207           }
2208         }
2209       case 222 :
2210         {
2211           unsigned int val = (((insn >> 0) & (15 << 0)));
2212           switch (val)
2213           {
2214           case 0 : /* fall through */
2215           case 1 : /* fall through */
2216           case 2 : /* fall through */
2217           case 3 : /* fall through */
2218           case 4 : /* fall through */
2219           case 5 : /* fall through */
2220           case 6 : /* fall through */
2221           case 7 : /* fall through */
2222           case 8 : /* fall through */
2223           case 9 : /* fall through */
2224           case 10 : /* fall through */
2225           case 11 : /* fall through */
2226           case 12 : /* fall through */
2227           case 13 : /* fall through */
2228           case 14 :
2229             if ((base_insn & 0xbf0) == 0x9e0)
2230               { itype = CRISV10F_INSN_BOUND_M_D_M; goto extract_sfmt_bound_m_d_m; }
2231             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2232           case 15 :
2233             if ((base_insn & 0xfff) == 0xdef)
2234               { itype = CRISV10F_INSN_BOUND_CD; goto extract_sfmt_bound_cd; }
2235             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2236           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2237           }
2238         }
2239       case 223 :
2240         {
2241           unsigned int val = (((insn >> 12) & (15 << 0)));
2242           switch (val)
2243           {
2244           case 0 : /* fall through */
2245           case 1 : /* fall through */
2246           case 2 : /* fall through */
2247           case 3 : /* fall through */
2248           case 4 : /* fall through */
2249           case 5 : /* fall through */
2250           case 6 : /* fall through */
2251           case 7 : /* fall through */
2252           case 8 : /* fall through */
2253           case 9 : /* fall through */
2254           case 10 : /* fall through */
2255           case 11 : /* fall through */
2256           case 12 : /* fall through */
2257           case 13 : /* fall through */
2258           case 15 :
2259             if ((base_insn & 0xfff) == 0xdff)
2260               { itype = CRISV10F_INSN_BCC_W; goto extract_sfmt_bcc_w; }
2261             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2262           case 14 :
2263             if ((base_insn & 0xffff) == 0xedff)
2264               { itype = CRISV10F_INSN_BA_W; goto extract_sfmt_ba_w; }
2265             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2266           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2267           }
2268         }
2269       case 224 :
2270         {
2271           unsigned int val = (((insn >> 0) & (15 << 0)));
2272           switch (val)
2273           {
2274           case 0 : /* fall through */
2275           case 1 : /* fall through */
2276           case 2 : /* fall through */
2277           case 3 : /* fall through */
2278           case 4 : /* fall through */
2279           case 5 : /* fall through */
2280           case 6 : /* fall through */
2281           case 7 : /* fall through */
2282           case 8 : /* fall through */
2283           case 9 : /* fall through */
2284           case 10 : /* fall through */
2285           case 11 : /* fall through */
2286           case 12 : /* fall through */
2287           case 13 : /* fall through */
2288           case 14 :
2289             if ((base_insn & 0xbf0) == 0xa00)
2290               { itype = CRISV10F_INSN_ADD_M_B_M; goto extract_sfmt_add_m_b_m; }
2291             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2292           case 15 :
2293             if ((base_insn & 0xfff) == 0xe0f)
2294               { itype = CRISV10F_INSN_ADDCBR; goto extract_sfmt_addcbr; }
2295             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2296           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2297           }
2298         }
2299       case 225 :
2300         {
2301           unsigned int val = (((insn >> 0) & (15 << 0)));
2302           switch (val)
2303           {
2304           case 0 : /* fall through */
2305           case 1 : /* fall through */
2306           case 2 : /* fall through */
2307           case 3 : /* fall through */
2308           case 4 : /* fall through */
2309           case 5 : /* fall through */
2310           case 6 : /* fall through */
2311           case 7 : /* fall through */
2312           case 8 : /* fall through */
2313           case 9 : /* fall through */
2314           case 10 : /* fall through */
2315           case 11 : /* fall through */
2316           case 12 : /* fall through */
2317           case 13 : /* fall through */
2318           case 14 :
2319             if ((base_insn & 0xbf0) == 0xa10)
2320               { itype = CRISV10F_INSN_ADD_M_W_M; goto extract_sfmt_add_m_w_m; }
2321             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2322           case 15 :
2323             if ((base_insn & 0xfff) == 0xe1f)
2324               { itype = CRISV10F_INSN_ADDCWR; goto extract_sfmt_addcwr; }
2325             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2326           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2327           }
2328         }
2329       case 226 :
2330         {
2331           unsigned int val = (((insn >> 12) & (15 << 0)));
2332           switch (val)
2333           {
2334           case 0 : /* fall through */
2335           case 1 : /* fall through */
2336           case 2 : /* fall through */
2337           case 3 : /* fall through */
2338           case 4 : /* fall through */
2339           case 5 : /* fall through */
2340           case 6 : /* fall through */
2341           case 7 : /* fall through */
2342           case 8 : /* fall through */
2343           case 9 : /* fall through */
2344           case 10 : /* fall through */
2345           case 11 : /* fall through */
2346           case 12 : /* fall through */
2347           case 13 : /* fall through */
2348           case 14 :
2349             {
2350               unsigned int val = (((insn >> 0) & (15 << 0)));
2351               switch (val)
2352               {
2353               case 0 : /* fall through */
2354               case 1 : /* fall through */
2355               case 2 : /* fall through */
2356               case 3 : /* fall through */
2357               case 4 : /* fall through */
2358               case 5 : /* fall through */
2359               case 6 : /* fall through */
2360               case 7 : /* fall through */
2361               case 8 : /* fall through */
2362               case 9 : /* fall through */
2363               case 10 : /* fall through */
2364               case 11 : /* fall through */
2365               case 12 : /* fall through */
2366               case 13 : /* fall through */
2367               case 14 :
2368                 if ((base_insn & 0xbf0) == 0xa20)
2369                   { itype = CRISV10F_INSN_ADD_M_D_M; goto extract_sfmt_add_m_d_m; }
2370                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2371               case 15 :
2372                 if ((base_insn & 0xfff) == 0xe2f)
2373                   { itype = CRISV10F_INSN_ADDCDR; goto extract_sfmt_addcdr; }
2374                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2375               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2376               }
2377             }
2378           case 15 :
2379             {
2380               unsigned int val = (((insn >> 0) & (15 << 0)));
2381               switch (val)
2382               {
2383               case 0 : /* fall through */
2384               case 1 : /* fall through */
2385               case 2 : /* fall through */
2386               case 3 : /* fall through */
2387               case 4 : /* fall through */
2388               case 5 : /* fall through */
2389               case 6 : /* fall through */
2390               case 7 : /* fall through */
2391               case 8 : /* fall through */
2392               case 9 : /* fall through */
2393               case 10 : /* fall through */
2394               case 11 : /* fall through */
2395               case 12 : /* fall through */
2396               case 13 : /* fall through */
2397               case 14 :
2398                 if ((base_insn & 0xbf0) == 0xa20)
2399                   { itype = CRISV10F_INSN_ADD_M_D_M; goto extract_sfmt_add_m_d_m; }
2400                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2401               case 15 :
2402                 if ((base_insn & 0xffff) == 0xfe2f)
2403                   { itype = CRISV10F_INSN_ADDCPC; goto extract_sfmt_addcpc; }
2404                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2405               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2406               }
2407             }
2408           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2409           }
2410         }
2411       case 227 :
2412         {
2413           unsigned int val = (((insn >> 11) & (15 << 1)) | ((insn >> 0) & (1 << 0)));
2414           switch (val)
2415           {
2416           case 0 : /* fall through */
2417           case 2 : /* fall through */
2418           case 3 : /* fall through */
2419           case 4 : /* fall through */
2420           case 5 : /* fall through */
2421           case 6 : /* fall through */
2422           case 7 : /* fall through */
2423           case 8 : /* fall through */
2424           case 9 : /* fall through */
2425           case 10 : /* fall through */
2426           case 12 : /* fall through */
2427           case 13 : /* fall through */
2428           case 14 : /* fall through */
2429           case 17 : /* fall through */
2430           case 18 : /* fall through */
2431           case 20 : /* fall through */
2432           case 22 : /* fall through */
2433           case 24 : /* fall through */
2434           case 26 : /* fall through */
2435           case 28 : /* fall through */
2436           case 30 :
2437             if ((base_insn & 0xbf0) == 0xa30)
2438               { itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10; }
2439             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2440           case 1 :
2441             {
2442               unsigned int val = (((insn >> 1) & (7 << 0)));
2443               switch (val)
2444               {
2445               case 0 : /* fall through */
2446               case 1 : /* fall through */
2447               case 2 : /* fall through */
2448               case 3 : /* fall through */
2449               case 4 : /* fall through */
2450               case 5 : /* fall through */
2451               case 6 :
2452                 if ((base_insn & 0xbf0) == 0xa30)
2453                   { itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10; }
2454                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2455               case 7 :
2456                 if ((base_insn & 0xffff) == 0xe3f)
2457                   { itype = CRISV10F_INSN_MOVE_M_PCPLUS_P0; goto extract_sfmt_move_m_pcplus_p0; }
2458                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2459               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2460               }
2461             }
2462           case 11 :
2463             {
2464               unsigned int val = (((insn >> 1) & (7 << 0)));
2465               switch (val)
2466               {
2467               case 0 : /* fall through */
2468               case 1 : /* fall through */
2469               case 2 : /* fall through */
2470               case 3 : /* fall through */
2471               case 4 : /* fall through */
2472               case 5 : /* fall through */
2473               case 6 :
2474                 if ((base_insn & 0xbf0) == 0xa30)
2475                   { itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10; }
2476                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2477               case 7 :
2478                 if ((base_insn & 0xffff) == 0x5e3f)
2479                   { itype = CRISV10F_INSN_MOVE_C_SPRV10_P5; goto extract_sfmt_move_c_sprv10_p5; }
2480                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2481               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2482               }
2483             }
2484           case 15 :
2485             {
2486               unsigned int val = (((insn >> 1) & (7 << 0)));
2487               switch (val)
2488               {
2489               case 0 : /* fall through */
2490               case 1 : /* fall through */
2491               case 2 : /* fall through */
2492               case 3 : /* fall through */
2493               case 4 : /* fall through */
2494               case 5 : /* fall through */
2495               case 6 :
2496                 if ((base_insn & 0xbf0) == 0xa30)
2497                   { itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10; }
2498                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2499               case 7 :
2500                 if ((base_insn & 0xffff) == 0x7e3f)
2501                   { itype = CRISV10F_INSN_MOVE_C_SPRV10_P7; goto extract_sfmt_move_c_sprv10_p9; }
2502                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2503               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2504               }
2505             }
2506           case 16 :
2507             {
2508               unsigned int val = (((insn >> 1) & (7 << 0)));
2509               switch (val)
2510               {
2511               case 0 : /* fall through */
2512               case 1 : /* fall through */
2513               case 2 : /* fall through */
2514               case 3 : /* fall through */
2515               case 4 : /* fall through */
2516               case 5 : /* fall through */
2517               case 6 :
2518                 if ((base_insn & 0xbf0) == 0xa30)
2519                   { itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10; }
2520                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2521               case 7 :
2522                 if ((base_insn & 0xffff) == 0x8e3e)
2523                   { itype = CRISV10F_INSN_MOVE_M_SPPLUS_P8; goto extract_sfmt_move_m_spplus_p8; }
2524                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2525               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2526               }
2527             }
2528           case 19 :
2529             {
2530               unsigned int val = (((insn >> 1) & (7 << 0)));
2531               switch (val)
2532               {
2533               case 0 : /* fall through */
2534               case 1 : /* fall through */
2535               case 2 : /* fall through */
2536               case 3 : /* fall through */
2537               case 4 : /* fall through */
2538               case 5 : /* fall through */
2539               case 6 :
2540                 if ((base_insn & 0xbf0) == 0xa30)
2541                   { itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10; }
2542                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2543               case 7 :
2544                 if ((base_insn & 0xffff) == 0x9e3f)
2545                   { itype = CRISV10F_INSN_MOVE_C_SPRV10_P9; goto extract_sfmt_move_c_sprv10_p9; }
2546                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2547               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2548               }
2549             }
2550           case 21 :
2551             {
2552               unsigned int val = (((insn >> 1) & (7 << 0)));
2553               switch (val)
2554               {
2555               case 0 : /* fall through */
2556               case 1 : /* fall through */
2557               case 2 : /* fall through */
2558               case 3 : /* fall through */
2559               case 4 : /* fall through */
2560               case 5 : /* fall through */
2561               case 6 :
2562                 if ((base_insn & 0xbf0) == 0xa30)
2563                   { itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10; }
2564                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2565               case 7 :
2566                 if ((base_insn & 0xffff) == 0xae3f)
2567                   { itype = CRISV10F_INSN_MOVE_C_SPRV10_P10; goto extract_sfmt_move_c_sprv10_p9; }
2568                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2569               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2570               }
2571             }
2572           case 23 :
2573             {
2574               unsigned int val = (((insn >> 1) & (7 << 0)));
2575               switch (val)
2576               {
2577               case 0 : /* fall through */
2578               case 1 : /* fall through */
2579               case 2 : /* fall through */
2580               case 3 : /* fall through */
2581               case 4 : /* fall through */
2582               case 5 : /* fall through */
2583               case 6 :
2584                 if ((base_insn & 0xbf0) == 0xa30)
2585                   { itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10; }
2586                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2587               case 7 :
2588                 if ((base_insn & 0xffff) == 0xbe3f)
2589                   { itype = CRISV10F_INSN_MOVE_C_SPRV10_P11; goto extract_sfmt_move_c_sprv10_p9; }
2590                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2591               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2592               }
2593             }
2594           case 25 :
2595             {
2596               unsigned int val = (((insn >> 1) & (7 << 0)));
2597               switch (val)
2598               {
2599               case 0 : /* fall through */
2600               case 1 : /* fall through */
2601               case 2 : /* fall through */
2602               case 3 : /* fall through */
2603               case 4 : /* fall through */
2604               case 5 : /* fall through */
2605               case 6 :
2606                 if ((base_insn & 0xbf0) == 0xa30)
2607                   { itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10; }
2608                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2609               case 7 :
2610                 if ((base_insn & 0xffff) == 0xce3f)
2611                   { itype = CRISV10F_INSN_MOVE_C_SPRV10_P12; goto extract_sfmt_move_c_sprv10_p9; }
2612                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2613               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2614               }
2615             }
2616           case 27 :
2617             {
2618               unsigned int val = (((insn >> 1) & (7 << 0)));
2619               switch (val)
2620               {
2621               case 0 : /* fall through */
2622               case 1 : /* fall through */
2623               case 2 : /* fall through */
2624               case 3 : /* fall through */
2625               case 4 : /* fall through */
2626               case 5 : /* fall through */
2627               case 6 :
2628                 if ((base_insn & 0xbf0) == 0xa30)
2629                   { itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10; }
2630                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2631               case 7 :
2632                 if ((base_insn & 0xffff) == 0xde3f)
2633                   { itype = CRISV10F_INSN_MOVE_C_SPRV10_P13; goto extract_sfmt_move_c_sprv10_p9; }
2634                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2635               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2636               }
2637             }
2638           case 29 :
2639             {
2640               unsigned int val = (((insn >> 1) & (7 << 0)));
2641               switch (val)
2642               {
2643               case 0 : /* fall through */
2644               case 1 : /* fall through */
2645               case 2 : /* fall through */
2646               case 3 : /* fall through */
2647               case 4 : /* fall through */
2648               case 5 : /* fall through */
2649               case 6 :
2650                 if ((base_insn & 0xbf0) == 0xa30)
2651                   { itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10; }
2652                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2653               case 7 :
2654                 if ((base_insn & 0xffff) == 0xee3f)
2655                   { itype = CRISV10F_INSN_MOVE_C_SPRV10_P14; goto extract_sfmt_move_c_sprv10_p9; }
2656                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2657               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2658               }
2659             }
2660           case 31 :
2661             {
2662               unsigned int val = (((insn >> 1) & (7 << 0)));
2663               switch (val)
2664               {
2665               case 0 : /* fall through */
2666               case 1 : /* fall through */
2667               case 2 : /* fall through */
2668               case 3 : /* fall through */
2669               case 4 : /* fall through */
2670               case 5 : /* fall through */
2671               case 6 :
2672                 if ((base_insn & 0xbf0) == 0xa30)
2673                   { itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10; }
2674                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2675               case 7 :
2676                 if ((base_insn & 0xffff) == 0xfe3f)
2677                   { itype = CRISV10F_INSN_MOVE_C_SPRV10_P15; goto extract_sfmt_move_c_sprv10_p9; }
2678                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2679               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2680               }
2681             }
2682           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2683           }
2684         }
2685       case 228 :
2686         {
2687           unsigned int val = (((insn >> 0) & (15 << 0)));
2688           switch (val)
2689           {
2690           case 0 : /* fall through */
2691           case 1 : /* fall through */
2692           case 2 : /* fall through */
2693           case 3 : /* fall through */
2694           case 4 : /* fall through */
2695           case 5 : /* fall through */
2696           case 6 : /* fall through */
2697           case 7 : /* fall through */
2698           case 8 : /* fall through */
2699           case 9 : /* fall through */
2700           case 10 : /* fall through */
2701           case 11 : /* fall through */
2702           case 12 : /* fall through */
2703           case 13 : /* fall through */
2704           case 14 :
2705             if ((base_insn & 0xbf0) == 0xa40)
2706               { itype = CRISV10F_INSN_MOVE_M_B_M; goto extract_sfmt_move_m_b_m; }
2707             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2708           case 15 :
2709             if ((base_insn & 0xfff) == 0xe4f)
2710               { itype = CRISV10F_INSN_MOVECBR; goto extract_sfmt_movecbr; }
2711             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2712           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2713           }
2714         }
2715       case 229 :
2716         {
2717           unsigned int val = (((insn >> 0) & (15 << 0)));
2718           switch (val)
2719           {
2720           case 0 : /* fall through */
2721           case 1 : /* fall through */
2722           case 2 : /* fall through */
2723           case 3 : /* fall through */
2724           case 4 : /* fall through */
2725           case 5 : /* fall through */
2726           case 6 : /* fall through */
2727           case 7 : /* fall through */
2728           case 8 : /* fall through */
2729           case 9 : /* fall through */
2730           case 10 : /* fall through */
2731           case 11 : /* fall through */
2732           case 12 : /* fall through */
2733           case 13 : /* fall through */
2734           case 14 :
2735             if ((base_insn & 0xbf0) == 0xa50)
2736               { itype = CRISV10F_INSN_MOVE_M_W_M; goto extract_sfmt_move_m_w_m; }
2737             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2738           case 15 :
2739             if ((base_insn & 0xfff) == 0xe5f)
2740               { itype = CRISV10F_INSN_MOVECWR; goto extract_sfmt_movecwr; }
2741             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2742           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2743           }
2744         }
2745       case 230 :
2746         {
2747           unsigned int val = (((insn >> 0) & (15 << 0)));
2748           switch (val)
2749           {
2750           case 0 : /* fall through */
2751           case 1 : /* fall through */
2752           case 2 : /* fall through */
2753           case 3 : /* fall through */
2754           case 4 : /* fall through */
2755           case 5 : /* fall through */
2756           case 6 : /* fall through */
2757           case 7 : /* fall through */
2758           case 8 : /* fall through */
2759           case 9 : /* fall through */
2760           case 10 : /* fall through */
2761           case 11 : /* fall through */
2762           case 12 : /* fall through */
2763           case 13 : /* fall through */
2764           case 14 :
2765             if ((base_insn & 0xbf0) == 0xa60)
2766               { itype = CRISV10F_INSN_MOVE_M_D_M; goto extract_sfmt_move_m_d_m; }
2767             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2768           case 15 :
2769             if ((base_insn & 0xfff) == 0xe6f)
2770               { itype = CRISV10F_INSN_MOVECDR; goto extract_sfmt_movecdr; }
2771             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2772           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2773           }
2774         }
2775       case 232 :
2776         {
2777           unsigned int val = (((insn >> 0) & (15 << 0)));
2778           switch (val)
2779           {
2780           case 0 : /* fall through */
2781           case 1 : /* fall through */
2782           case 2 : /* fall through */
2783           case 3 : /* fall through */
2784           case 4 : /* fall through */
2785           case 5 : /* fall through */
2786           case 6 : /* fall through */
2787           case 7 : /* fall through */
2788           case 8 : /* fall through */
2789           case 9 : /* fall through */
2790           case 10 : /* fall through */
2791           case 11 : /* fall through */
2792           case 12 : /* fall through */
2793           case 13 : /* fall through */
2794           case 14 :
2795             if ((base_insn & 0xbf0) == 0xa80)
2796               { itype = CRISV10F_INSN_SUB_M_B_M; goto extract_sfmt_add_m_b_m; }
2797             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2798           case 15 :
2799             if ((base_insn & 0xfff) == 0xe8f)
2800               { itype = CRISV10F_INSN_SUBCBR; goto extract_sfmt_addcbr; }
2801             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2802           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2803           }
2804         }
2805       case 233 :
2806         {
2807           unsigned int val = (((insn >> 0) & (15 << 0)));
2808           switch (val)
2809           {
2810           case 0 : /* fall through */
2811           case 1 : /* fall through */
2812           case 2 : /* fall through */
2813           case 3 : /* fall through */
2814           case 4 : /* fall through */
2815           case 5 : /* fall through */
2816           case 6 : /* fall through */
2817           case 7 : /* fall through */
2818           case 8 : /* fall through */
2819           case 9 : /* fall through */
2820           case 10 : /* fall through */
2821           case 11 : /* fall through */
2822           case 12 : /* fall through */
2823           case 13 : /* fall through */
2824           case 14 :
2825             if ((base_insn & 0xbf0) == 0xa90)
2826               { itype = CRISV10F_INSN_SUB_M_W_M; goto extract_sfmt_add_m_w_m; }
2827             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2828           case 15 :
2829             if ((base_insn & 0xfff) == 0xe9f)
2830               { itype = CRISV10F_INSN_SUBCWR; goto extract_sfmt_addcwr; }
2831             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2832           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2833           }
2834         }
2835       case 234 :
2836         {
2837           unsigned int val = (((insn >> 0) & (15 << 0)));
2838           switch (val)
2839           {
2840           case 0 : /* fall through */
2841           case 1 : /* fall through */
2842           case 2 : /* fall through */
2843           case 3 : /* fall through */
2844           case 4 : /* fall through */
2845           case 5 : /* fall through */
2846           case 6 : /* fall through */
2847           case 7 : /* fall through */
2848           case 8 : /* fall through */
2849           case 9 : /* fall through */
2850           case 10 : /* fall through */
2851           case 11 : /* fall through */
2852           case 12 : /* fall through */
2853           case 13 : /* fall through */
2854           case 14 :
2855             if ((base_insn & 0xbf0) == 0xaa0)
2856               { itype = CRISV10F_INSN_SUB_M_D_M; goto extract_sfmt_add_m_d_m; }
2857             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2858           case 15 :
2859             if ((base_insn & 0xfff) == 0xeaf)
2860               { itype = CRISV10F_INSN_SUBCDR; goto extract_sfmt_addcdr; }
2861             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2862           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2863           }
2864         }
2865       case 236 :
2866         {
2867           unsigned int val = (((insn >> 0) & (15 << 0)));
2868           switch (val)
2869           {
2870           case 0 : /* fall through */
2871           case 1 : /* fall through */
2872           case 2 : /* fall through */
2873           case 3 : /* fall through */
2874           case 4 : /* fall through */
2875           case 5 : /* fall through */
2876           case 6 : /* fall through */
2877           case 7 : /* fall through */
2878           case 8 : /* fall through */
2879           case 9 : /* fall through */
2880           case 10 : /* fall through */
2881           case 11 : /* fall through */
2882           case 12 : /* fall through */
2883           case 13 : /* fall through */
2884           case 14 :
2885             if ((base_insn & 0xbf0) == 0xac0)
2886               { itype = CRISV10F_INSN_CMP_M_B_M; goto extract_sfmt_cmp_m_b_m; }
2887             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2888           case 15 :
2889             if ((base_insn & 0xfff) == 0xecf)
2890               { itype = CRISV10F_INSN_CMPCBR; goto extract_sfmt_cmpcbr; }
2891             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2892           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2893           }
2894         }
2895       case 237 :
2896         {
2897           unsigned int val = (((insn >> 0) & (15 << 0)));
2898           switch (val)
2899           {
2900           case 0 : /* fall through */
2901           case 1 : /* fall through */
2902           case 2 : /* fall through */
2903           case 3 : /* fall through */
2904           case 4 : /* fall through */
2905           case 5 : /* fall through */
2906           case 6 : /* fall through */
2907           case 7 : /* fall through */
2908           case 8 : /* fall through */
2909           case 9 : /* fall through */
2910           case 10 : /* fall through */
2911           case 11 : /* fall through */
2912           case 12 : /* fall through */
2913           case 13 : /* fall through */
2914           case 14 :
2915             if ((base_insn & 0xbf0) == 0xad0)
2916               { itype = CRISV10F_INSN_CMP_M_W_M; goto extract_sfmt_cmp_m_w_m; }
2917             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2918           case 15 :
2919             if ((base_insn & 0xfff) == 0xedf)
2920               { itype = CRISV10F_INSN_CMPCWR; goto extract_sfmt_cmpcwr; }
2921             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2922           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2923           }
2924         }
2925       case 238 :
2926         {
2927           unsigned int val = (((insn >> 0) & (15 << 0)));
2928           switch (val)
2929           {
2930           case 0 : /* fall through */
2931           case 1 : /* fall through */
2932           case 2 : /* fall through */
2933           case 3 : /* fall through */
2934           case 4 : /* fall through */
2935           case 5 : /* fall through */
2936           case 6 : /* fall through */
2937           case 7 : /* fall through */
2938           case 8 : /* fall through */
2939           case 9 : /* fall through */
2940           case 10 : /* fall through */
2941           case 11 : /* fall through */
2942           case 12 : /* fall through */
2943           case 13 : /* fall through */
2944           case 14 :
2945             if ((base_insn & 0xbf0) == 0xae0)
2946               { itype = CRISV10F_INSN_CMP_M_D_M; goto extract_sfmt_cmp_m_d_m; }
2947             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2948           case 15 :
2949             if ((base_insn & 0xfff) == 0xeef)
2950               { itype = CRISV10F_INSN_CMPCDR; goto extract_sfmt_cmpcdr; }
2951             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2952           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2953           }
2954         }
2955       case 240 :
2956         {
2957           unsigned int val = (((insn >> 0) & (15 << 0)));
2958           switch (val)
2959           {
2960           case 0 : /* fall through */
2961           case 1 : /* fall through */
2962           case 2 : /* fall through */
2963           case 3 : /* fall through */
2964           case 4 : /* fall through */
2965           case 5 : /* fall through */
2966           case 6 : /* fall through */
2967           case 7 : /* fall through */
2968           case 8 : /* fall through */
2969           case 9 : /* fall through */
2970           case 10 : /* fall through */
2971           case 11 : /* fall through */
2972           case 12 : /* fall through */
2973           case 13 : /* fall through */
2974           case 14 :
2975             if ((base_insn & 0xbf0) == 0xb00)
2976               { itype = CRISV10F_INSN_AND_M_B_M; goto extract_sfmt_and_m_b_m; }
2977             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2978           case 15 :
2979             if ((base_insn & 0xfff) == 0xf0f)
2980               { itype = CRISV10F_INSN_ANDCBR; goto extract_sfmt_andcbr; }
2981             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2982           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2983           }
2984         }
2985       case 241 :
2986         {
2987           unsigned int val = (((insn >> 0) & (15 << 0)));
2988           switch (val)
2989           {
2990           case 0 : /* fall through */
2991           case 1 : /* fall through */
2992           case 2 : /* fall through */
2993           case 3 : /* fall through */
2994           case 4 : /* fall through */
2995           case 5 : /* fall through */
2996           case 6 : /* fall through */
2997           case 7 : /* fall through */
2998           case 8 : /* fall through */
2999           case 9 : /* fall through */
3000           case 10 : /* fall through */
3001           case 11 : /* fall through */
3002           case 12 : /* fall through */
3003           case 13 : /* fall through */
3004           case 14 :
3005             if ((base_insn & 0xbf0) == 0xb10)
3006               { itype = CRISV10F_INSN_AND_M_W_M; goto extract_sfmt_and_m_w_m; }
3007             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3008           case 15 :
3009             if ((base_insn & 0xfff) == 0xf1f)
3010               { itype = CRISV10F_INSN_ANDCWR; goto extract_sfmt_andcwr; }
3011             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3012           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3013           }
3014         }
3015       case 242 :
3016         {
3017           unsigned int val = (((insn >> 0) & (15 << 0)));
3018           switch (val)
3019           {
3020           case 0 : /* fall through */
3021           case 1 : /* fall through */
3022           case 2 : /* fall through */
3023           case 3 : /* fall through */
3024           case 4 : /* fall through */
3025           case 5 : /* fall through */
3026           case 6 : /* fall through */
3027           case 7 : /* fall through */
3028           case 8 : /* fall through */
3029           case 9 : /* fall through */
3030           case 10 : /* fall through */
3031           case 11 : /* fall through */
3032           case 12 : /* fall through */
3033           case 13 : /* fall through */
3034           case 14 :
3035             if ((base_insn & 0xbf0) == 0xb20)
3036               { itype = CRISV10F_INSN_AND_M_D_M; goto extract_sfmt_and_m_d_m; }
3037             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3038           case 15 :
3039             if ((base_insn & 0xfff) == 0xf2f)
3040               { itype = CRISV10F_INSN_ANDCDR; goto extract_sfmt_andcdr; }
3041             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3042           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3043           }
3044         }
3045       case 244 :
3046         {
3047           unsigned int val = (((insn >> 0) & (15 << 0)));
3048           switch (val)
3049           {
3050           case 0 : /* fall through */
3051           case 1 : /* fall through */
3052           case 2 : /* fall through */
3053           case 3 : /* fall through */
3054           case 4 : /* fall through */
3055           case 5 : /* fall through */
3056           case 6 : /* fall through */
3057           case 7 : /* fall through */
3058           case 8 : /* fall through */
3059           case 9 : /* fall through */
3060           case 10 : /* fall through */
3061           case 11 : /* fall through */
3062           case 12 : /* fall through */
3063           case 13 : /* fall through */
3064           case 14 :
3065             if ((base_insn & 0xbf0) == 0xb40)
3066               { itype = CRISV10F_INSN_OR_M_B_M; goto extract_sfmt_and_m_b_m; }
3067             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3068           case 15 :
3069             if ((base_insn & 0xfff) == 0xf4f)
3070               { itype = CRISV10F_INSN_ORCBR; goto extract_sfmt_andcbr; }
3071             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3072           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3073           }
3074         }
3075       case 245 :
3076         {
3077           unsigned int val = (((insn >> 0) & (15 << 0)));
3078           switch (val)
3079           {
3080           case 0 : /* fall through */
3081           case 1 : /* fall through */
3082           case 2 : /* fall through */
3083           case 3 : /* fall through */
3084           case 4 : /* fall through */
3085           case 5 : /* fall through */
3086           case 6 : /* fall through */
3087           case 7 : /* fall through */
3088           case 8 : /* fall through */
3089           case 9 : /* fall through */
3090           case 10 : /* fall through */
3091           case 11 : /* fall through */
3092           case 12 : /* fall through */
3093           case 13 : /* fall through */
3094           case 14 :
3095             if ((base_insn & 0xbf0) == 0xb50)
3096               { itype = CRISV10F_INSN_OR_M_W_M; goto extract_sfmt_and_m_w_m; }
3097             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3098           case 15 :
3099             if ((base_insn & 0xfff) == 0xf5f)
3100               { itype = CRISV10F_INSN_ORCWR; goto extract_sfmt_andcwr; }
3101             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3102           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3103           }
3104         }
3105       case 246 :
3106         {
3107           unsigned int val = (((insn >> 0) & (15 << 0)));
3108           switch (val)
3109           {
3110           case 0 : /* fall through */
3111           case 1 : /* fall through */
3112           case 2 : /* fall through */
3113           case 3 : /* fall through */
3114           case 4 : /* fall through */
3115           case 5 : /* fall through */
3116           case 6 : /* fall through */
3117           case 7 : /* fall through */
3118           case 8 : /* fall through */
3119           case 9 : /* fall through */
3120           case 10 : /* fall through */
3121           case 11 : /* fall through */
3122           case 12 : /* fall through */
3123           case 13 : /* fall through */
3124           case 14 :
3125             if ((base_insn & 0xbf0) == 0xb60)
3126               { itype = CRISV10F_INSN_OR_M_D_M; goto extract_sfmt_and_m_d_m; }
3127             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3128           case 15 :
3129             if ((base_insn & 0xfff) == 0xf6f)
3130               { itype = CRISV10F_INSN_ORCDR; goto extract_sfmt_andcdr; }
3131             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3132           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3133           }
3134         }
3135       default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3136       }
3137     }
3138   }
3139
3140   /* The instruction has been decoded, now extract the fields.  */
3141
3142  extract_sfmt_empty:
3143   {
3144     const IDESC *idesc = &crisv10f_insn_data[itype];
3145 #define FLD(f) abuf->fields.fmt_empty.f
3146
3147
3148   /* Record the fields for the semantic handler.  */
3149   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_empty", (char *) 0));
3150
3151 #undef FLD
3152     return idesc;
3153   }
3154
3155  extract_sfmt_nop:
3156   {
3157     const IDESC *idesc = &crisv10f_insn_data[itype];
3158 #define FLD(f) abuf->fields.fmt_empty.f
3159
3160
3161   /* Record the fields for the semantic handler.  */
3162   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_nop", (char *) 0));
3163
3164 #undef FLD
3165     return idesc;
3166   }
3167
3168  extract_sfmt_move_b_r:
3169   {
3170     const IDESC *idesc = &crisv10f_insn_data[itype];
3171     CGEN_INSN_INT insn = base_insn;
3172 #define FLD(f) abuf->fields.sfmt_add_b_r.f
3173     UINT f_operand2;
3174     UINT f_operand1;
3175
3176     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3177     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3178
3179   /* Record the fields for the semantic handler.  */
3180   FLD (f_operand1) = f_operand1;
3181   FLD (f_operand2) = f_operand2;
3182   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_b_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3183
3184 #if WITH_PROFILE_MODEL_P
3185   /* Record the fields for profiling.  */
3186   if (PROFILE_MODEL_P (current_cpu))
3187     {
3188       FLD (in_Rs) = f_operand1;
3189       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3190     }
3191 #endif
3192 #undef FLD
3193     return idesc;
3194   }
3195
3196  extract_sfmt_move_d_r:
3197   {
3198     const IDESC *idesc = &crisv10f_insn_data[itype];
3199     CGEN_INSN_INT insn = base_insn;
3200 #define FLD(f) abuf->fields.sfmt_add_b_r.f
3201     UINT f_operand2;
3202     UINT f_operand1;
3203
3204     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3205     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3206
3207   /* Record the fields for the semantic handler.  */
3208   FLD (f_operand1) = f_operand1;
3209   FLD (f_operand2) = f_operand2;
3210   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_d_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3211
3212 #if WITH_PROFILE_MODEL_P
3213   /* Record the fields for profiling.  */
3214   if (PROFILE_MODEL_P (current_cpu))
3215     {
3216       FLD (in_Rs) = f_operand1;
3217       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3218     }
3219 #endif
3220 #undef FLD
3221     return idesc;
3222   }
3223
3224  extract_sfmt_movepcr:
3225   {
3226     const IDESC *idesc = &crisv10f_insn_data[itype];
3227     CGEN_INSN_INT insn = base_insn;
3228 #define FLD(f) abuf->fields.sfmt_moveq.f
3229     UINT f_operand2;
3230
3231     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3232
3233   /* Record the fields for the semantic handler.  */
3234   FLD (f_operand2) = f_operand2;
3235   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movepcr", "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3236
3237 #if WITH_PROFILE_MODEL_P
3238   /* Record the fields for profiling.  */
3239   if (PROFILE_MODEL_P (current_cpu))
3240     {
3241       FLD (out_Rd) = f_operand2;
3242     }
3243 #endif
3244 #undef FLD
3245     return idesc;
3246   }
3247
3248  extract_sfmt_moveq:
3249   {
3250     const IDESC *idesc = &crisv10f_insn_data[itype];
3251     CGEN_INSN_INT insn = base_insn;
3252 #define FLD(f) abuf->fields.sfmt_moveq.f
3253     UINT f_operand2;
3254     INT f_s6;
3255
3256     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3257     f_s6 = EXTRACT_LSB0_INT (insn, 16, 5, 6);
3258
3259   /* Record the fields for the semantic handler.  */
3260   FLD (f_s6) = f_s6;
3261   FLD (f_operand2) = f_operand2;
3262   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_moveq", "f_s6 0x%x", 'x', f_s6, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3263
3264 #if WITH_PROFILE_MODEL_P
3265   /* Record the fields for profiling.  */
3266   if (PROFILE_MODEL_P (current_cpu))
3267     {
3268       FLD (out_Rd) = f_operand2;
3269     }
3270 #endif
3271 #undef FLD
3272     return idesc;
3273   }
3274
3275  extract_sfmt_movs_b_r:
3276   {
3277     const IDESC *idesc = &crisv10f_insn_data[itype];
3278     CGEN_INSN_INT insn = base_insn;
3279 #define FLD(f) abuf->fields.sfmt_muls_b.f
3280     UINT f_operand2;
3281     UINT f_operand1;
3282
3283     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3284     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3285
3286   /* Record the fields for the semantic handler.  */
3287   FLD (f_operand1) = f_operand1;
3288   FLD (f_operand2) = f_operand2;
3289   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movs_b_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3290
3291 #if WITH_PROFILE_MODEL_P
3292   /* Record the fields for profiling.  */
3293   if (PROFILE_MODEL_P (current_cpu))
3294     {
3295       FLD (in_Rs) = f_operand1;
3296       FLD (out_Rd) = f_operand2;
3297     }
3298 #endif
3299 #undef FLD
3300     return idesc;
3301   }
3302
3303  extract_sfmt_movecbr:
3304   {
3305     const IDESC *idesc = &crisv10f_insn_data[itype];
3306     CGEN_INSN_INT insn = base_insn;
3307 #define FLD(f) abuf->fields.sfmt_addcbr.f
3308     INT f_indir_pc__byte;
3309     UINT f_operand2;
3310     /* Contents of trailing part of insn.  */
3311     UINT word_1;
3312
3313   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3314     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3315     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3316
3317   /* Record the fields for the semantic handler.  */
3318   FLD (f_operand2) = f_operand2;
3319   FLD (f_indir_pc__byte) = f_indir_pc__byte;
3320   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movecbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
3321
3322 #if WITH_PROFILE_MODEL_P
3323   /* Record the fields for profiling.  */
3324   if (PROFILE_MODEL_P (current_cpu))
3325     {
3326       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3327     }
3328 #endif
3329 #undef FLD
3330     return idesc;
3331   }
3332
3333  extract_sfmt_movecwr:
3334   {
3335     const IDESC *idesc = &crisv10f_insn_data[itype];
3336     CGEN_INSN_INT insn = base_insn;
3337 #define FLD(f) abuf->fields.sfmt_addcwr.f
3338     INT f_indir_pc__word;
3339     UINT f_operand2;
3340     /* Contents of trailing part of insn.  */
3341     UINT word_1;
3342
3343   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3344     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3345     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3346
3347   /* Record the fields for the semantic handler.  */
3348   FLD (f_operand2) = f_operand2;
3349   FLD (f_indir_pc__word) = f_indir_pc__word;
3350   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movecwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
3351
3352 #if WITH_PROFILE_MODEL_P
3353   /* Record the fields for profiling.  */
3354   if (PROFILE_MODEL_P (current_cpu))
3355     {
3356       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3357     }
3358 #endif
3359 #undef FLD
3360     return idesc;
3361   }
3362
3363  extract_sfmt_movecdr:
3364   {
3365     const IDESC *idesc = &crisv10f_insn_data[itype];
3366     CGEN_INSN_INT insn = base_insn;
3367 #define FLD(f) abuf->fields.sfmt_bound_cd.f
3368     INT f_indir_pc__dword;
3369     UINT f_operand2;
3370     /* Contents of trailing part of insn.  */
3371     UINT word_1;
3372
3373   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3374     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
3375     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3376
3377   /* Record the fields for the semantic handler.  */
3378   FLD (f_indir_pc__dword) = f_indir_pc__dword;
3379   FLD (f_operand2) = f_operand2;
3380   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movecdr", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3381
3382 #if WITH_PROFILE_MODEL_P
3383   /* Record the fields for profiling.  */
3384   if (PROFILE_MODEL_P (current_cpu))
3385     {
3386       FLD (out_Rd) = f_operand2;
3387     }
3388 #endif
3389 #undef FLD
3390     return idesc;
3391   }
3392
3393  extract_sfmt_movscbr:
3394   {
3395     const IDESC *idesc = &crisv10f_insn_data[itype];
3396     CGEN_INSN_INT insn = base_insn;
3397 #define FLD(f) abuf->fields.sfmt_bound_cb.f
3398     UINT f_operand2;
3399     INT f_indir_pc__byte;
3400     /* Contents of trailing part of insn.  */
3401     UINT word_1;
3402
3403   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3404     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3405     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3406
3407   /* Record the fields for the semantic handler.  */
3408   FLD (f_indir_pc__byte) = f_indir_pc__byte;
3409   FLD (f_operand2) = f_operand2;
3410   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movscbr", "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3411
3412 #if WITH_PROFILE_MODEL_P
3413   /* Record the fields for profiling.  */
3414   if (PROFILE_MODEL_P (current_cpu))
3415     {
3416       FLD (out_Rd) = f_operand2;
3417     }
3418 #endif
3419 #undef FLD
3420     return idesc;
3421   }
3422
3423  extract_sfmt_movscwr:
3424   {
3425     const IDESC *idesc = &crisv10f_insn_data[itype];
3426     CGEN_INSN_INT insn = base_insn;
3427 #define FLD(f) abuf->fields.sfmt_bound_cw.f
3428     UINT f_operand2;
3429     INT f_indir_pc__word;
3430     /* Contents of trailing part of insn.  */
3431     UINT word_1;
3432
3433   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3434     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3435     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3436
3437   /* Record the fields for the semantic handler.  */
3438   FLD (f_indir_pc__word) = f_indir_pc__word;
3439   FLD (f_operand2) = f_operand2;
3440   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movscwr", "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3441
3442 #if WITH_PROFILE_MODEL_P
3443   /* Record the fields for profiling.  */
3444   if (PROFILE_MODEL_P (current_cpu))
3445     {
3446       FLD (out_Rd) = f_operand2;
3447     }
3448 #endif
3449 #undef FLD
3450     return idesc;
3451   }
3452
3453  extract_sfmt_movucbr:
3454   {
3455     const IDESC *idesc = &crisv10f_insn_data[itype];
3456     CGEN_INSN_INT insn = base_insn;
3457 #define FLD(f) abuf->fields.sfmt_bound_cb.f
3458     UINT f_operand2;
3459     INT f_indir_pc__byte;
3460     /* Contents of trailing part of insn.  */
3461     UINT word_1;
3462
3463   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3464     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3465     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3466
3467   /* Record the fields for the semantic handler.  */
3468   FLD (f_indir_pc__byte) = f_indir_pc__byte;
3469   FLD (f_operand2) = f_operand2;
3470   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movucbr", "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3471
3472 #if WITH_PROFILE_MODEL_P
3473   /* Record the fields for profiling.  */
3474   if (PROFILE_MODEL_P (current_cpu))
3475     {
3476       FLD (out_Rd) = f_operand2;
3477     }
3478 #endif
3479 #undef FLD
3480     return idesc;
3481   }
3482
3483  extract_sfmt_movucwr:
3484   {
3485     const IDESC *idesc = &crisv10f_insn_data[itype];
3486     CGEN_INSN_INT insn = base_insn;
3487 #define FLD(f) abuf->fields.sfmt_bound_cw.f
3488     UINT f_operand2;
3489     INT f_indir_pc__word;
3490     /* Contents of trailing part of insn.  */
3491     UINT word_1;
3492
3493   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3494     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3495     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3496
3497   /* Record the fields for the semantic handler.  */
3498   FLD (f_indir_pc__word) = f_indir_pc__word;
3499   FLD (f_operand2) = f_operand2;
3500   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movucwr", "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3501
3502 #if WITH_PROFILE_MODEL_P
3503   /* Record the fields for profiling.  */
3504   if (PROFILE_MODEL_P (current_cpu))
3505     {
3506       FLD (out_Rd) = f_operand2;
3507     }
3508 #endif
3509 #undef FLD
3510     return idesc;
3511   }
3512
3513  extract_sfmt_addq:
3514   {
3515     const IDESC *idesc = &crisv10f_insn_data[itype];
3516     CGEN_INSN_INT insn = base_insn;
3517 #define FLD(f) abuf->fields.sfmt_addq.f
3518     UINT f_operand2;
3519     UINT f_u6;
3520
3521     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3522     f_u6 = EXTRACT_LSB0_UINT (insn, 16, 5, 6);
3523
3524   /* Record the fields for the semantic handler.  */
3525   FLD (f_operand2) = f_operand2;
3526   FLD (f_u6) = f_u6;
3527   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addq", "f_operand2 0x%x", 'x', f_operand2, "f_u6 0x%x", 'x', f_u6, (char *) 0));
3528
3529 #if WITH_PROFILE_MODEL_P
3530   /* Record the fields for profiling.  */
3531   if (PROFILE_MODEL_P (current_cpu))
3532     {
3533       FLD (in_Rd) = f_operand2;
3534       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3535     }
3536 #endif
3537 #undef FLD
3538     return idesc;
3539   }
3540
3541  extract_sfmt_cmp_r_b_r:
3542   {
3543     const IDESC *idesc = &crisv10f_insn_data[itype];
3544     CGEN_INSN_INT insn = base_insn;
3545 #define FLD(f) abuf->fields.sfmt_add_b_r.f
3546     UINT f_operand2;
3547     UINT f_operand1;
3548
3549     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3550     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3551
3552   /* Record the fields for the semantic handler.  */
3553   FLD (f_operand2) = f_operand2;
3554   FLD (f_operand1) = f_operand1;
3555   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmp_r_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
3556
3557 #if WITH_PROFILE_MODEL_P
3558   /* Record the fields for profiling.  */
3559   if (PROFILE_MODEL_P (current_cpu))
3560     {
3561       FLD (in_Rd) = f_operand2;
3562       FLD (in_Rs) = f_operand1;
3563     }
3564 #endif
3565 #undef FLD
3566     return idesc;
3567   }
3568
3569  extract_sfmt_cmp_m_b_m:
3570   {
3571     const IDESC *idesc = &crisv10f_insn_data[itype];
3572     CGEN_INSN_INT insn = base_insn;
3573 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3574     UINT f_operand2;
3575     UINT f_memmode;
3576     UINT f_operand1;
3577
3578     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3579     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3580     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3581
3582   /* Record the fields for the semantic handler.  */
3583   FLD (f_operand2) = f_operand2;
3584   FLD (f_operand1) = f_operand1;
3585   FLD (f_memmode) = f_memmode;
3586   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmp_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3587
3588 #if WITH_PROFILE_MODEL_P
3589   /* Record the fields for profiling.  */
3590   if (PROFILE_MODEL_P (current_cpu))
3591     {
3592       FLD (in_Rd) = f_operand2;
3593       FLD (in_Rs) = f_operand1;
3594       FLD (out_Rs) = f_operand1;
3595     }
3596 #endif
3597 #undef FLD
3598     return idesc;
3599   }
3600
3601  extract_sfmt_cmp_m_w_m:
3602   {
3603     const IDESC *idesc = &crisv10f_insn_data[itype];
3604     CGEN_INSN_INT insn = base_insn;
3605 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3606     UINT f_operand2;
3607     UINT f_memmode;
3608     UINT f_operand1;
3609
3610     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3611     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3612     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3613
3614   /* Record the fields for the semantic handler.  */
3615   FLD (f_operand2) = f_operand2;
3616   FLD (f_operand1) = f_operand1;
3617   FLD (f_memmode) = f_memmode;
3618   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmp_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3619
3620 #if WITH_PROFILE_MODEL_P
3621   /* Record the fields for profiling.  */
3622   if (PROFILE_MODEL_P (current_cpu))
3623     {
3624       FLD (in_Rd) = f_operand2;
3625       FLD (in_Rs) = f_operand1;
3626       FLD (out_Rs) = f_operand1;
3627     }
3628 #endif
3629 #undef FLD
3630     return idesc;
3631   }
3632
3633  extract_sfmt_cmp_m_d_m:
3634   {
3635     const IDESC *idesc = &crisv10f_insn_data[itype];
3636     CGEN_INSN_INT insn = base_insn;
3637 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3638     UINT f_operand2;
3639     UINT f_memmode;
3640     UINT f_operand1;
3641
3642     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3643     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3644     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3645
3646   /* Record the fields for the semantic handler.  */
3647   FLD (f_operand2) = f_operand2;
3648   FLD (f_operand1) = f_operand1;
3649   FLD (f_memmode) = f_memmode;
3650   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmp_m_d_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3651
3652 #if WITH_PROFILE_MODEL_P
3653   /* Record the fields for profiling.  */
3654   if (PROFILE_MODEL_P (current_cpu))
3655     {
3656       FLD (in_Rd) = f_operand2;
3657       FLD (in_Rs) = f_operand1;
3658       FLD (out_Rs) = f_operand1;
3659     }
3660 #endif
3661 #undef FLD
3662     return idesc;
3663   }
3664
3665  extract_sfmt_cmpcbr:
3666   {
3667     const IDESC *idesc = &crisv10f_insn_data[itype];
3668     CGEN_INSN_INT insn = base_insn;
3669 #define FLD(f) abuf->fields.sfmt_bound_cb.f
3670     INT f_indir_pc__byte;
3671     UINT f_operand2;
3672     /* Contents of trailing part of insn.  */
3673     UINT word_1;
3674
3675   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3676     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3677     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3678
3679   /* Record the fields for the semantic handler.  */
3680   FLD (f_operand2) = f_operand2;
3681   FLD (f_indir_pc__byte) = f_indir_pc__byte;
3682   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpcbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
3683
3684 #if WITH_PROFILE_MODEL_P
3685   /* Record the fields for profiling.  */
3686   if (PROFILE_MODEL_P (current_cpu))
3687     {
3688       FLD (in_Rd) = f_operand2;
3689     }
3690 #endif
3691 #undef FLD
3692     return idesc;
3693   }
3694
3695  extract_sfmt_cmpcwr:
3696   {
3697     const IDESC *idesc = &crisv10f_insn_data[itype];
3698     CGEN_INSN_INT insn = base_insn;
3699 #define FLD(f) abuf->fields.sfmt_bound_cw.f
3700     INT f_indir_pc__word;
3701     UINT f_operand2;
3702     /* Contents of trailing part of insn.  */
3703     UINT word_1;
3704
3705   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3706     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3707     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3708
3709   /* Record the fields for the semantic handler.  */
3710   FLD (f_operand2) = f_operand2;
3711   FLD (f_indir_pc__word) = f_indir_pc__word;
3712   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpcwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
3713
3714 #if WITH_PROFILE_MODEL_P
3715   /* Record the fields for profiling.  */
3716   if (PROFILE_MODEL_P (current_cpu))
3717     {
3718       FLD (in_Rd) = f_operand2;
3719     }
3720 #endif
3721 #undef FLD
3722     return idesc;
3723   }
3724
3725  extract_sfmt_cmpcdr:
3726   {
3727     const IDESC *idesc = &crisv10f_insn_data[itype];
3728     CGEN_INSN_INT insn = base_insn;
3729 #define FLD(f) abuf->fields.sfmt_bound_cd.f
3730     INT f_indir_pc__dword;
3731     UINT f_operand2;
3732     /* Contents of trailing part of insn.  */
3733     UINT word_1;
3734
3735   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3736     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
3737     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3738
3739   /* Record the fields for the semantic handler.  */
3740   FLD (f_operand2) = f_operand2;
3741   FLD (f_indir_pc__dword) = f_indir_pc__dword;
3742   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpcdr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
3743
3744 #if WITH_PROFILE_MODEL_P
3745   /* Record the fields for profiling.  */
3746   if (PROFILE_MODEL_P (current_cpu))
3747     {
3748       FLD (in_Rd) = f_operand2;
3749     }
3750 #endif
3751 #undef FLD
3752     return idesc;
3753   }
3754
3755  extract_sfmt_cmpq:
3756   {
3757     const IDESC *idesc = &crisv10f_insn_data[itype];
3758     CGEN_INSN_INT insn = base_insn;
3759 #define FLD(f) abuf->fields.sfmt_andq.f
3760     UINT f_operand2;
3761     INT f_s6;
3762
3763     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3764     f_s6 = EXTRACT_LSB0_INT (insn, 16, 5, 6);
3765
3766   /* Record the fields for the semantic handler.  */
3767   FLD (f_operand2) = f_operand2;
3768   FLD (f_s6) = f_s6;
3769   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpq", "f_operand2 0x%x", 'x', f_operand2, "f_s6 0x%x", 'x', f_s6, (char *) 0));
3770
3771 #if WITH_PROFILE_MODEL_P
3772   /* Record the fields for profiling.  */
3773   if (PROFILE_MODEL_P (current_cpu))
3774     {
3775       FLD (in_Rd) = f_operand2;
3776     }
3777 #endif
3778 #undef FLD
3779     return idesc;
3780   }
3781
3782  extract_sfmt_cmpucbr:
3783   {
3784     const IDESC *idesc = &crisv10f_insn_data[itype];
3785     CGEN_INSN_INT insn = base_insn;
3786 #define FLD(f) abuf->fields.sfmt_bound_cb.f
3787     INT f_indir_pc__byte;
3788     UINT f_operand2;
3789     /* Contents of trailing part of insn.  */
3790     UINT word_1;
3791
3792   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3793     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3794     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3795
3796   /* Record the fields for the semantic handler.  */
3797   FLD (f_operand2) = f_operand2;
3798   FLD (f_indir_pc__byte) = f_indir_pc__byte;
3799   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpucbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
3800
3801 #if WITH_PROFILE_MODEL_P
3802   /* Record the fields for profiling.  */
3803   if (PROFILE_MODEL_P (current_cpu))
3804     {
3805       FLD (in_Rd) = f_operand2;
3806     }
3807 #endif
3808 #undef FLD
3809     return idesc;
3810   }
3811
3812  extract_sfmt_cmpucwr:
3813   {
3814     const IDESC *idesc = &crisv10f_insn_data[itype];
3815     CGEN_INSN_INT insn = base_insn;
3816 #define FLD(f) abuf->fields.sfmt_bound_cw.f
3817     INT f_indir_pc__word;
3818     UINT f_operand2;
3819     /* Contents of trailing part of insn.  */
3820     UINT word_1;
3821
3822   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3823     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3824     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3825
3826   /* Record the fields for the semantic handler.  */
3827   FLD (f_operand2) = f_operand2;
3828   FLD (f_indir_pc__word) = f_indir_pc__word;
3829   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpucwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
3830
3831 #if WITH_PROFILE_MODEL_P
3832   /* Record the fields for profiling.  */
3833   if (PROFILE_MODEL_P (current_cpu))
3834     {
3835       FLD (in_Rd) = f_operand2;
3836     }
3837 #endif
3838 #undef FLD
3839     return idesc;
3840   }
3841
3842  extract_sfmt_move_m_b_m:
3843   {
3844     const IDESC *idesc = &crisv10f_insn_data[itype];
3845     CGEN_INSN_INT insn = base_insn;
3846 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3847     UINT f_operand2;
3848     UINT f_memmode;
3849     UINT f_operand1;
3850
3851     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3852     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3853     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3854
3855   /* Record the fields for the semantic handler.  */
3856   FLD (f_operand1) = f_operand1;
3857   FLD (f_operand2) = f_operand2;
3858   FLD (f_memmode) = f_memmode;
3859   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_m_b_m", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3860
3861 #if WITH_PROFILE_MODEL_P
3862   /* Record the fields for profiling.  */
3863   if (PROFILE_MODEL_P (current_cpu))
3864     {
3865       FLD (in_Rs) = f_operand1;
3866       FLD (out_Rs) = f_operand1;
3867       FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3868     }
3869 #endif
3870 #undef FLD
3871     return idesc;
3872   }
3873
3874  extract_sfmt_move_m_w_m:
3875   {
3876     const IDESC *idesc = &crisv10f_insn_data[itype];
3877     CGEN_INSN_INT insn = base_insn;
3878 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3879     UINT f_operand2;
3880     UINT f_memmode;
3881     UINT f_operand1;
3882
3883     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3884     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3885     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3886
3887   /* Record the fields for the semantic handler.  */
3888   FLD (f_operand1) = f_operand1;
3889   FLD (f_operand2) = f_operand2;
3890   FLD (f_memmode) = f_memmode;
3891   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_m_w_m", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3892
3893 #if WITH_PROFILE_MODEL_P
3894   /* Record the fields for profiling.  */
3895   if (PROFILE_MODEL_P (current_cpu))
3896     {
3897       FLD (in_Rs) = f_operand1;
3898       FLD (out_Rs) = f_operand1;
3899       FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3900     }
3901 #endif
3902 #undef FLD
3903     return idesc;
3904   }
3905
3906  extract_sfmt_move_m_d_m:
3907   {
3908     const IDESC *idesc = &crisv10f_insn_data[itype];
3909     CGEN_INSN_INT insn = base_insn;
3910 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3911     UINT f_operand2;
3912     UINT f_memmode;
3913     UINT f_operand1;
3914
3915     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3916     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3917     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3918
3919   /* Record the fields for the semantic handler.  */
3920   FLD (f_operand1) = f_operand1;
3921   FLD (f_operand2) = f_operand2;
3922   FLD (f_memmode) = f_memmode;
3923   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_m_d_m", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3924
3925 #if WITH_PROFILE_MODEL_P
3926   /* Record the fields for profiling.  */
3927   if (PROFILE_MODEL_P (current_cpu))
3928     {
3929       FLD (in_Rs) = f_operand1;
3930       FLD (out_Rs) = f_operand1;
3931       FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3932     }
3933 #endif
3934 #undef FLD
3935     return idesc;
3936   }
3937
3938  extract_sfmt_movs_m_b_m:
3939   {
3940     const IDESC *idesc = &crisv10f_insn_data[itype];
3941     CGEN_INSN_INT insn = base_insn;
3942 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3943     UINT f_operand2;
3944     UINT f_memmode;
3945     UINT f_operand1;
3946
3947     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3948     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3949     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3950
3951   /* Record the fields for the semantic handler.  */
3952   FLD (f_operand1) = f_operand1;
3953   FLD (f_memmode) = f_memmode;
3954   FLD (f_operand2) = f_operand2;
3955   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movs_m_b_m", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3956
3957 #if WITH_PROFILE_MODEL_P
3958   /* Record the fields for profiling.  */
3959   if (PROFILE_MODEL_P (current_cpu))
3960     {
3961       FLD (in_Rs) = f_operand1;
3962       FLD (out_Rd) = f_operand2;
3963       FLD (out_Rs) = f_operand1;
3964     }
3965 #endif
3966 #undef FLD
3967     return idesc;
3968   }
3969
3970  extract_sfmt_movs_m_w_m:
3971   {
3972     const IDESC *idesc = &crisv10f_insn_data[itype];
3973     CGEN_INSN_INT insn = base_insn;
3974 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3975     UINT f_operand2;
3976     UINT f_memmode;
3977     UINT f_operand1;
3978
3979     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3980     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3981     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3982
3983   /* Record the fields for the semantic handler.  */
3984   FLD (f_operand1) = f_operand1;
3985   FLD (f_memmode) = f_memmode;
3986   FLD (f_operand2) = f_operand2;
3987   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movs_m_w_m", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3988
3989 #if WITH_PROFILE_MODEL_P
3990   /* Record the fields for profiling.  */
3991   if (PROFILE_MODEL_P (current_cpu))
3992     {
3993       FLD (in_Rs) = f_operand1;
3994       FLD (out_Rd) = f_operand2;
3995       FLD (out_Rs) = f_operand1;
3996     }
3997 #endif
3998 #undef FLD
3999     return idesc;
4000   }
4001
4002  extract_sfmt_move_r_sprv10:
4003   {
4004     const IDESC *idesc = &crisv10f_insn_data[itype];
4005     CGEN_INSN_INT insn = base_insn;
4006 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
4007     UINT f_operand2;
4008     UINT f_operand1;
4009
4010     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4011     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4012
4013   /* Record the fields for the semantic handler.  */
4014   FLD (f_operand1) = f_operand1;
4015   FLD (f_operand2) = f_operand2;
4016   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_r_sprv10", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
4017
4018 #if WITH_PROFILE_MODEL_P
4019   /* Record the fields for profiling.  */
4020   if (PROFILE_MODEL_P (current_cpu))
4021     {
4022       FLD (in_Rs) = f_operand1;
4023       FLD (out_Pd) = f_operand2;
4024     }
4025 #endif
4026 #undef FLD
4027     return idesc;
4028   }
4029
4030  extract_sfmt_move_spr_rv10:
4031   {
4032     const IDESC *idesc = &crisv10f_insn_data[itype];
4033     CGEN_INSN_INT insn = base_insn;
4034 #define FLD(f) abuf->fields.sfmt_move_spr_rv10.f
4035     UINT f_operand2;
4036     UINT f_operand1;
4037
4038     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4039     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4040
4041   /* Record the fields for the semantic handler.  */
4042   FLD (f_operand2) = f_operand2;
4043   FLD (f_operand1) = f_operand1;
4044   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_spr_rv10", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4045
4046 #if WITH_PROFILE_MODEL_P
4047   /* Record the fields for profiling.  */
4048   if (PROFILE_MODEL_P (current_cpu))
4049     {
4050       FLD (in_Ps) = f_operand2;
4051       FLD (out_h_gr_SI_index_of__DFLT_Rs) = FLD (f_operand1);
4052     }
4053 #endif
4054 #undef FLD
4055     return idesc;
4056   }
4057
4058  extract_sfmt_ret_type:
4059   {
4060     const IDESC *idesc = &crisv10f_insn_data[itype];
4061     CGEN_INSN_INT insn = base_insn;
4062 #define FLD(f) abuf->fields.sfmt_move_spr_rv10.f
4063     UINT f_operand2;
4064
4065     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4066
4067   /* Record the fields for the semantic handler.  */
4068   FLD (f_operand2) = f_operand2;
4069   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ret_type", "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
4070
4071 #if WITH_PROFILE_MODEL_P
4072   /* Record the fields for profiling.  */
4073   if (PROFILE_MODEL_P (current_cpu))
4074     {
4075       FLD (in_Ps) = f_operand2;
4076     }
4077 #endif
4078 #undef FLD
4079     return idesc;
4080   }
4081
4082  extract_sfmt_move_m_sprv10:
4083   {
4084     const IDESC *idesc = &crisv10f_insn_data[itype];
4085     CGEN_INSN_INT insn = base_insn;
4086 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
4087     UINT f_operand2;
4088     UINT f_memmode;
4089     UINT f_operand1;
4090
4091     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4092     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4093     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4094
4095   /* Record the fields for the semantic handler.  */
4096   FLD (f_operand1) = f_operand1;
4097   FLD (f_operand2) = f_operand2;
4098   FLD (f_memmode) = f_memmode;
4099   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_m_sprv10", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4100
4101 #if WITH_PROFILE_MODEL_P
4102   /* Record the fields for profiling.  */
4103   if (PROFILE_MODEL_P (current_cpu))
4104     {
4105       FLD (in_Rs) = f_operand1;
4106       FLD (out_Pd) = f_operand2;
4107       FLD (out_Rs) = f_operand1;
4108     }
4109 #endif
4110 #undef FLD
4111     return idesc;
4112   }
4113
4114  extract_sfmt_move_c_sprv10_p5:
4115   {
4116     const IDESC *idesc = &crisv10f_insn_data[itype];
4117     CGEN_INSN_INT insn = base_insn;
4118 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p5.f
4119     UINT f_operand2;
4120     INT f_indir_pc__word;
4121     /* Contents of trailing part of insn.  */
4122     UINT word_1;
4123
4124   word_1 = GETIMEMUSI (current_cpu, pc + 2);
4125     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4126     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4127
4128   /* Record the fields for the semantic handler.  */
4129   FLD (f_indir_pc__word) = f_indir_pc__word;
4130   FLD (f_operand2) = f_operand2;
4131   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_c_sprv10_p5", "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
4132
4133 #if WITH_PROFILE_MODEL_P
4134   /* Record the fields for profiling.  */
4135   if (PROFILE_MODEL_P (current_cpu))
4136     {
4137       FLD (out_Pd) = f_operand2;
4138     }
4139 #endif
4140 #undef FLD
4141     return idesc;
4142   }
4143
4144  extract_sfmt_move_c_sprv10_p9:
4145   {
4146     const IDESC *idesc = &crisv10f_insn_data[itype];
4147     CGEN_INSN_INT insn = base_insn;
4148 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
4149     INT f_indir_pc__dword;
4150     UINT f_operand2;
4151     /* Contents of trailing part of insn.  */
4152     UINT word_1;
4153
4154   word_1 = GETIMEMUSI (current_cpu, pc + 2);
4155     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
4156     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4157
4158   /* Record the fields for the semantic handler.  */
4159   FLD (f_indir_pc__dword) = f_indir_pc__dword;
4160   FLD (f_operand2) = f_operand2;
4161   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_c_sprv10_p9", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
4162
4163 #if WITH_PROFILE_MODEL_P
4164   /* Record the fields for profiling.  */
4165   if (PROFILE_MODEL_P (current_cpu))
4166     {
4167       FLD (out_Pd) = f_operand2;
4168     }
4169 #endif
4170 #undef FLD
4171     return idesc;
4172   }
4173
4174  extract_sfmt_move_spr_mv10:
4175   {
4176     const IDESC *idesc = &crisv10f_insn_data[itype];
4177     CGEN_INSN_INT insn = base_insn;
4178 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
4179     UINT f_operand2;
4180     UINT f_memmode;
4181     UINT f_operand1;
4182
4183     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4184     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4185     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4186
4187   /* Record the fields for the semantic handler.  */
4188   FLD (f_operand2) = f_operand2;
4189   FLD (f_operand1) = f_operand1;
4190   FLD (f_memmode) = f_memmode;
4191   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_spr_mv10", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4192
4193 #if WITH_PROFILE_MODEL_P
4194   /* Record the fields for profiling.  */
4195   if (PROFILE_MODEL_P (current_cpu))
4196     {
4197       FLD (in_Ps) = f_operand2;
4198       FLD (in_Rs) = f_operand1;
4199       FLD (out_Rs) = f_operand1;
4200     }
4201 #endif
4202 #undef FLD
4203     return idesc;
4204   }
4205
4206  extract_sfmt_sbfs:
4207   {
4208     const IDESC *idesc = &crisv10f_insn_data[itype];
4209 #define FLD(f) abuf->fields.fmt_empty.f
4210
4211
4212   /* Record the fields for the semantic handler.  */
4213   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sbfs", (char *) 0));
4214
4215 #undef FLD
4216     return idesc;
4217   }
4218
4219  extract_sfmt_movem_r_m:
4220   {
4221     const IDESC *idesc = &crisv10f_insn_data[itype];
4222     CGEN_INSN_INT insn = base_insn;
4223 #define FLD(f) abuf->fields.sfmt_movem_r_m.f
4224     UINT f_operand2;
4225     UINT f_memmode;
4226     UINT f_operand1;
4227
4228     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4229     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4230     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4231
4232   /* Record the fields for the semantic handler.  */
4233   FLD (f_operand2) = f_operand2;
4234   FLD (f_operand1) = f_operand1;
4235   FLD (f_memmode) = f_memmode;
4236   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movem_r_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4237
4238 #if WITH_PROFILE_MODEL_P
4239   /* Record the fields for profiling.  */
4240   if (PROFILE_MODEL_P (current_cpu))
4241     {
4242       FLD (in_Rd) = f_operand2;
4243       FLD (in_Rs) = f_operand1;
4244       FLD (in_h_gr_SI_0) = 0;
4245       FLD (in_h_gr_SI_1) = 1;
4246       FLD (in_h_gr_SI_10) = 10;
4247       FLD (in_h_gr_SI_11) = 11;
4248       FLD (in_h_gr_SI_12) = 12;
4249       FLD (in_h_gr_SI_13) = 13;
4250       FLD (in_h_gr_SI_14) = 14;
4251       FLD (in_h_gr_SI_15) = 15;
4252       FLD (in_h_gr_SI_2) = 2;
4253       FLD (in_h_gr_SI_3) = 3;
4254       FLD (in_h_gr_SI_4) = 4;
4255       FLD (in_h_gr_SI_5) = 5;
4256       FLD (in_h_gr_SI_6) = 6;
4257       FLD (in_h_gr_SI_7) = 7;
4258       FLD (in_h_gr_SI_8) = 8;
4259       FLD (in_h_gr_SI_9) = 9;
4260       FLD (out_Rs) = f_operand1;
4261     }
4262 #endif
4263 #undef FLD
4264     return idesc;
4265   }
4266
4267  extract_sfmt_movem_m_r:
4268   {
4269     const IDESC *idesc = &crisv10f_insn_data[itype];
4270     CGEN_INSN_INT insn = base_insn;
4271 #define FLD(f) abuf->fields.sfmt_movem_m_r.f
4272     UINT f_operand2;
4273     UINT f_memmode;
4274     UINT f_operand1;
4275
4276     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4277     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4278     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4279
4280   /* Record the fields for the semantic handler.  */
4281   FLD (f_operand2) = f_operand2;
4282   FLD (f_operand1) = f_operand1;
4283   FLD (f_memmode) = f_memmode;
4284   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movem_m_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4285
4286 #if WITH_PROFILE_MODEL_P
4287   /* Record the fields for profiling.  */
4288   if (PROFILE_MODEL_P (current_cpu))
4289     {
4290       FLD (in_Rd) = f_operand2;
4291       FLD (in_Rs) = f_operand1;
4292       FLD (out_Rs) = f_operand1;
4293       FLD (out_h_gr_SI_0) = 0;
4294       FLD (out_h_gr_SI_1) = 1;
4295       FLD (out_h_gr_SI_10) = 10;
4296       FLD (out_h_gr_SI_11) = 11;
4297       FLD (out_h_gr_SI_12) = 12;
4298       FLD (out_h_gr_SI_13) = 13;
4299       FLD (out_h_gr_SI_14) = 14;
4300       FLD (out_h_gr_SI_2) = 2;
4301       FLD (out_h_gr_SI_3) = 3;
4302       FLD (out_h_gr_SI_4) = 4;
4303       FLD (out_h_gr_SI_5) = 5;
4304       FLD (out_h_gr_SI_6) = 6;
4305       FLD (out_h_gr_SI_7) = 7;
4306       FLD (out_h_gr_SI_8) = 8;
4307       FLD (out_h_gr_SI_9) = 9;
4308     }
4309 #endif
4310 #undef FLD
4311     return idesc;
4312   }
4313
4314  extract_sfmt_movem_m_pc:
4315   {
4316     const IDESC *idesc = &crisv10f_insn_data[itype];
4317     CGEN_INSN_INT insn = base_insn;
4318 #define FLD(f) abuf->fields.sfmt_movem_m_r.f
4319     UINT f_memmode;
4320     UINT f_operand1;
4321
4322     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4323     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4324
4325   /* Record the fields for the semantic handler.  */
4326   FLD (f_operand1) = f_operand1;
4327   FLD (f_memmode) = f_memmode;
4328   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movem_m_pc", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4329
4330 #if WITH_PROFILE_MODEL_P
4331   /* Record the fields for profiling.  */
4332   if (PROFILE_MODEL_P (current_cpu))
4333     {
4334       FLD (in_Rs) = f_operand1;
4335       FLD (out_Rs) = f_operand1;
4336       FLD (out_h_gr_SI_0) = 0;
4337       FLD (out_h_gr_SI_1) = 1;
4338       FLD (out_h_gr_SI_10) = 10;
4339       FLD (out_h_gr_SI_11) = 11;
4340       FLD (out_h_gr_SI_12) = 12;
4341       FLD (out_h_gr_SI_13) = 13;
4342       FLD (out_h_gr_SI_14) = 14;
4343       FLD (out_h_gr_SI_2) = 2;
4344       FLD (out_h_gr_SI_3) = 3;
4345       FLD (out_h_gr_SI_4) = 4;
4346       FLD (out_h_gr_SI_5) = 5;
4347       FLD (out_h_gr_SI_6) = 6;
4348       FLD (out_h_gr_SI_7) = 7;
4349       FLD (out_h_gr_SI_8) = 8;
4350       FLD (out_h_gr_SI_9) = 9;
4351     }
4352 #endif
4353 #undef FLD
4354     return idesc;
4355   }
4356
4357  extract_sfmt_add_b_r:
4358   {
4359     const IDESC *idesc = &crisv10f_insn_data[itype];
4360     CGEN_INSN_INT insn = base_insn;
4361 #define FLD(f) abuf->fields.sfmt_add_b_r.f
4362     UINT f_operand2;
4363     UINT f_operand1;
4364
4365     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4366     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4367
4368   /* Record the fields for the semantic handler.  */
4369   FLD (f_operand2) = f_operand2;
4370   FLD (f_operand1) = f_operand1;
4371   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4372
4373 #if WITH_PROFILE_MODEL_P
4374   /* Record the fields for profiling.  */
4375   if (PROFILE_MODEL_P (current_cpu))
4376     {
4377       FLD (in_Rd) = f_operand2;
4378       FLD (in_Rs) = f_operand1;
4379       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4380     }
4381 #endif
4382 #undef FLD
4383     return idesc;
4384   }
4385
4386  extract_sfmt_add_d_r:
4387   {
4388     const IDESC *idesc = &crisv10f_insn_data[itype];
4389     CGEN_INSN_INT insn = base_insn;
4390 #define FLD(f) abuf->fields.sfmt_add_b_r.f
4391     UINT f_operand2;
4392     UINT f_operand1;
4393
4394     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4395     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4396
4397   /* Record the fields for the semantic handler.  */
4398   FLD (f_operand2) = f_operand2;
4399   FLD (f_operand1) = f_operand1;
4400   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add_d_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4401
4402 #if WITH_PROFILE_MODEL_P
4403   /* Record the fields for profiling.  */
4404   if (PROFILE_MODEL_P (current_cpu))
4405     {
4406       FLD (in_Rd) = f_operand2;
4407       FLD (in_Rs) = f_operand1;
4408       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4409     }
4410 #endif
4411 #undef FLD
4412     return idesc;
4413   }
4414
4415  extract_sfmt_add_m_b_m:
4416   {
4417     const IDESC *idesc = &crisv10f_insn_data[itype];
4418     CGEN_INSN_INT insn = base_insn;
4419 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4420     UINT f_operand2;
4421     UINT f_memmode;
4422     UINT f_operand1;
4423
4424     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4425     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4426     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4427
4428   /* Record the fields for the semantic handler.  */
4429   FLD (f_operand2) = f_operand2;
4430   FLD (f_operand1) = f_operand1;
4431   FLD (f_memmode) = f_memmode;
4432   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4433
4434 #if WITH_PROFILE_MODEL_P
4435   /* Record the fields for profiling.  */
4436   if (PROFILE_MODEL_P (current_cpu))
4437     {
4438       FLD (in_Rd) = f_operand2;
4439       FLD (in_Rs) = f_operand1;
4440       FLD (out_Rs) = f_operand1;
4441       FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
4442     }
4443 #endif
4444 #undef FLD
4445     return idesc;
4446   }
4447
4448  extract_sfmt_add_m_w_m:
4449   {
4450     const IDESC *idesc = &crisv10f_insn_data[itype];
4451     CGEN_INSN_INT insn = base_insn;
4452 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4453     UINT f_operand2;
4454     UINT f_memmode;
4455     UINT f_operand1;
4456
4457     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4458     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4459     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4460
4461   /* Record the fields for the semantic handler.  */
4462   FLD (f_operand2) = f_operand2;
4463   FLD (f_operand1) = f_operand1;
4464   FLD (f_memmode) = f_memmode;
4465   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4466
4467 #if WITH_PROFILE_MODEL_P
4468   /* Record the fields for profiling.  */
4469   if (PROFILE_MODEL_P (current_cpu))
4470     {
4471       FLD (in_Rd) = f_operand2;
4472       FLD (in_Rs) = f_operand1;
4473       FLD (out_Rs) = f_operand1;
4474       FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
4475     }
4476 #endif
4477 #undef FLD
4478     return idesc;
4479   }
4480
4481  extract_sfmt_add_m_d_m:
4482   {
4483     const IDESC *idesc = &crisv10f_insn_data[itype];
4484     CGEN_INSN_INT insn = base_insn;
4485 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4486     UINT f_operand2;
4487     UINT f_memmode;
4488     UINT f_operand1;
4489
4490     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4491     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4492     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4493
4494   /* Record the fields for the semantic handler.  */
4495   FLD (f_operand2) = f_operand2;
4496   FLD (f_operand1) = f_operand1;
4497   FLD (f_memmode) = f_memmode;
4498   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add_m_d_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4499
4500 #if WITH_PROFILE_MODEL_P
4501   /* Record the fields for profiling.  */
4502   if (PROFILE_MODEL_P (current_cpu))
4503     {
4504       FLD (in_Rd) = f_operand2;
4505       FLD (in_Rs) = f_operand1;
4506       FLD (out_Rs) = f_operand1;
4507       FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
4508     }
4509 #endif
4510 #undef FLD
4511     return idesc;
4512   }
4513
4514  extract_sfmt_addcbr:
4515   {
4516     const IDESC *idesc = &crisv10f_insn_data[itype];
4517     CGEN_INSN_INT insn = base_insn;
4518 #define FLD(f) abuf->fields.sfmt_addcbr.f
4519     INT f_indir_pc__byte;
4520     UINT f_operand2;
4521     /* Contents of trailing part of insn.  */
4522     UINT word_1;
4523
4524   word_1 = GETIMEMUSI (current_cpu, pc + 2);
4525     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4526     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4527
4528   /* Record the fields for the semantic handler.  */
4529   FLD (f_operand2) = f_operand2;
4530   FLD (f_indir_pc__byte) = f_indir_pc__byte;
4531   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addcbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
4532
4533 #if WITH_PROFILE_MODEL_P
4534   /* Record the fields for profiling.  */
4535   if (PROFILE_MODEL_P (current_cpu))
4536     {
4537       FLD (in_Rd) = f_operand2;
4538       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4539     }
4540 #endif
4541 #undef FLD
4542     return idesc;
4543   }
4544
4545  extract_sfmt_addcwr:
4546   {
4547     const IDESC *idesc = &crisv10f_insn_data[itype];
4548     CGEN_INSN_INT insn = base_insn;
4549 #define FLD(f) abuf->fields.sfmt_addcwr.f
4550     INT f_indir_pc__word;
4551     UINT f_operand2;
4552     /* Contents of trailing part of insn.  */
4553     UINT word_1;
4554
4555   word_1 = GETIMEMUSI (current_cpu, pc + 2);
4556     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4557     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4558
4559   /* Record the fields for the semantic handler.  */
4560   FLD (f_operand2) = f_operand2;
4561   FLD (f_indir_pc__word) = f_indir_pc__word;
4562   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addcwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
4563
4564 #if WITH_PROFILE_MODEL_P
4565   /* Record the fields for profiling.  */
4566   if (PROFILE_MODEL_P (current_cpu))
4567     {
4568       FLD (in_Rd) = f_operand2;
4569       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4570     }
4571 #endif
4572 #undef FLD
4573     return idesc;
4574   }
4575
4576  extract_sfmt_addcdr:
4577   {
4578     const IDESC *idesc = &crisv10f_insn_data[itype];
4579     CGEN_INSN_INT insn = base_insn;
4580 #define FLD(f) abuf->fields.sfmt_addcdr.f
4581     INT f_indir_pc__dword;
4582     UINT f_operand2;
4583     /* Contents of trailing part of insn.  */
4584     UINT word_1;
4585
4586   word_1 = GETIMEMUSI (current_cpu, pc + 2);
4587     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
4588     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4589
4590   /* Record the fields for the semantic handler.  */
4591   FLD (f_operand2) = f_operand2;
4592   FLD (f_indir_pc__dword) = f_indir_pc__dword;
4593   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addcdr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
4594
4595 #if WITH_PROFILE_MODEL_P
4596   /* Record the fields for profiling.  */
4597   if (PROFILE_MODEL_P (current_cpu))
4598     {
4599       FLD (in_Rd) = f_operand2;
4600       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4601     }
4602 #endif
4603 #undef FLD
4604     return idesc;
4605   }
4606
4607  extract_sfmt_addcpc:
4608   {
4609     const IDESC *idesc = &crisv10f_insn_data[itype];
4610     CGEN_INSN_INT insn = base_insn;
4611 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
4612     INT f_indir_pc__dword;
4613     /* Contents of trailing part of insn.  */
4614     UINT word_1;
4615
4616   word_1 = GETIMEMUSI (current_cpu, pc + 2);
4617     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
4618
4619   /* Record the fields for the semantic handler.  */
4620   FLD (f_indir_pc__dword) = f_indir_pc__dword;
4621   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addcpc", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
4622
4623 #if WITH_PROFILE_MODEL_P
4624   /* Record the fields for profiling.  */
4625   if (PROFILE_MODEL_P (current_cpu))
4626     {
4627     }
4628 #endif
4629 #undef FLD
4630     return idesc;
4631   }
4632
4633  extract_sfmt_adds_m_b_m:
4634   {
4635     const IDESC *idesc = &crisv10f_insn_data[itype];
4636     CGEN_INSN_INT insn = base_insn;
4637 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4638     UINT f_operand2;
4639     UINT f_memmode;
4640     UINT f_operand1;
4641
4642     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4643     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4644     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4645
4646   /* Record the fields for the semantic handler.  */
4647   FLD (f_operand2) = f_operand2;
4648   FLD (f_operand1) = f_operand1;
4649   FLD (f_memmode) = f_memmode;
4650   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_adds_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4651
4652 #if WITH_PROFILE_MODEL_P
4653   /* Record the fields for profiling.  */
4654   if (PROFILE_MODEL_P (current_cpu))
4655     {
4656       FLD (in_Rd) = f_operand2;
4657       FLD (in_Rs) = f_operand1;
4658       FLD (out_Rs) = f_operand1;
4659       FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
4660     }
4661 #endif
4662 #undef FLD
4663     return idesc;
4664   }
4665
4666  extract_sfmt_adds_m_w_m:
4667   {
4668     const IDESC *idesc = &crisv10f_insn_data[itype];
4669     CGEN_INSN_INT insn = base_insn;
4670 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4671     UINT f_operand2;
4672     UINT f_memmode;
4673     UINT f_operand1;
4674
4675     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4676     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4677     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4678
4679   /* Record the fields for the semantic handler.  */
4680   FLD (f_operand2) = f_operand2;
4681   FLD (f_operand1) = f_operand1;
4682   FLD (f_memmode) = f_memmode;
4683   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_adds_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4684
4685 #if WITH_PROFILE_MODEL_P
4686   /* Record the fields for profiling.  */
4687   if (PROFILE_MODEL_P (current_cpu))
4688     {
4689       FLD (in_Rd) = f_operand2;
4690       FLD (in_Rs) = f_operand1;
4691       FLD (out_Rs) = f_operand1;
4692       FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
4693     }
4694 #endif
4695 #undef FLD
4696     return idesc;
4697   }
4698
4699  extract_sfmt_addscbr:
4700   {
4701     const IDESC *idesc = &crisv10f_insn_data[itype];
4702     CGEN_INSN_INT insn = base_insn;
4703 #define FLD(f) abuf->fields.sfmt_addcbr.f
4704     INT f_indir_pc__byte;
4705     UINT f_operand2;
4706     /* Contents of trailing part of insn.  */
4707     UINT word_1;
4708
4709   word_1 = GETIMEMUSI (current_cpu, pc + 2);
4710     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4711     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4712
4713   /* Record the fields for the semantic handler.  */
4714   FLD (f_operand2) = f_operand2;
4715   FLD (f_indir_pc__byte) = f_indir_pc__byte;
4716   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addscbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
4717
4718 #if WITH_PROFILE_MODEL_P
4719   /* Record the fields for profiling.  */
4720   if (PROFILE_MODEL_P (current_cpu))
4721     {
4722       FLD (in_Rd) = f_operand2;
4723       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4724     }
4725 #endif
4726 #undef FLD
4727     return idesc;
4728   }
4729
4730  extract_sfmt_addscwr:
4731   {
4732     const IDESC *idesc = &crisv10f_insn_data[itype];
4733     CGEN_INSN_INT insn = base_insn;
4734 #define FLD(f) abuf->fields.sfmt_addcwr.f
4735     INT f_indir_pc__word;
4736     UINT f_operand2;
4737     /* Contents of trailing part of insn.  */
4738     UINT word_1;
4739
4740   word_1 = GETIMEMUSI (current_cpu, pc + 2);
4741     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4742     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4743
4744   /* Record the fields for the semantic handler.  */
4745   FLD (f_operand2) = f_operand2;
4746   FLD (f_indir_pc__word) = f_indir_pc__word;
4747   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addscwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
4748
4749 #if WITH_PROFILE_MODEL_P
4750   /* Record the fields for profiling.  */
4751   if (PROFILE_MODEL_P (current_cpu))
4752     {
4753       FLD (in_Rd) = f_operand2;
4754       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4755     }
4756 #endif
4757 #undef FLD
4758     return idesc;
4759   }
4760
4761  extract_sfmt_addspcpc:
4762   {
4763     const IDESC *idesc = &crisv10f_insn_data[itype];
4764 #define FLD(f) abuf->fields.fmt_empty.f
4765
4766
4767   /* Record the fields for the semantic handler.  */
4768   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addspcpc", (char *) 0));
4769
4770 #if WITH_PROFILE_MODEL_P
4771   /* Record the fields for profiling.  */
4772   if (PROFILE_MODEL_P (current_cpu))
4773     {
4774     }
4775 #endif
4776 #undef FLD
4777     return idesc;
4778   }
4779
4780  extract_sfmt_addi_b_r:
4781   {
4782     const IDESC *idesc = &crisv10f_insn_data[itype];
4783     CGEN_INSN_INT insn = base_insn;
4784 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
4785     UINT f_operand2;
4786     UINT f_operand1;
4787
4788     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4789     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4790
4791   /* Record the fields for the semantic handler.  */
4792   FLD (f_operand2) = f_operand2;
4793   FLD (f_operand1) = f_operand1;
4794   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addi_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4795
4796 #if WITH_PROFILE_MODEL_P
4797   /* Record the fields for profiling.  */
4798   if (PROFILE_MODEL_P (current_cpu))
4799     {
4800       FLD (in_Rd) = f_operand2;
4801       FLD (in_Rs) = f_operand1;
4802       FLD (out_Rs) = f_operand1;
4803     }
4804 #endif
4805 #undef FLD
4806     return idesc;
4807   }
4808
4809  extract_sfmt_neg_b_r:
4810   {
4811     const IDESC *idesc = &crisv10f_insn_data[itype];
4812     CGEN_INSN_INT insn = base_insn;
4813 #define FLD(f) abuf->fields.sfmt_add_b_r.f
4814     UINT f_operand2;
4815     UINT f_operand1;
4816
4817     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4818     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4819
4820   /* Record the fields for the semantic handler.  */
4821   FLD (f_operand1) = f_operand1;
4822   FLD (f_operand2) = f_operand2;
4823   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_neg_b_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
4824
4825 #if WITH_PROFILE_MODEL_P
4826   /* Record the fields for profiling.  */
4827   if (PROFILE_MODEL_P (current_cpu))
4828     {
4829       FLD (in_Rs) = f_operand1;
4830       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4831     }
4832 #endif
4833 #undef FLD
4834     return idesc;
4835   }
4836
4837  extract_sfmt_neg_d_r:
4838   {
4839     const IDESC *idesc = &crisv10f_insn_data[itype];
4840     CGEN_INSN_INT insn = base_insn;
4841 #define FLD(f) abuf->fields.sfmt_add_b_r.f
4842     UINT f_operand2;
4843     UINT f_operand1;
4844
4845     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4846     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4847
4848   /* Record the fields for the semantic handler.  */
4849   FLD (f_operand1) = f_operand1;
4850   FLD (f_operand2) = f_operand2;
4851   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_neg_d_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
4852
4853 #if WITH_PROFILE_MODEL_P
4854   /* Record the fields for profiling.  */
4855   if (PROFILE_MODEL_P (current_cpu))
4856     {
4857       FLD (in_Rs) = f_operand1;
4858       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4859     }
4860 #endif
4861 #undef FLD
4862     return idesc;
4863   }
4864
4865  extract_sfmt_test_m_b_m:
4866   {
4867     const IDESC *idesc = &crisv10f_insn_data[itype];
4868     CGEN_INSN_INT insn = base_insn;
4869 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
4870     UINT f_memmode;
4871     UINT f_operand1;
4872
4873     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4874     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4875
4876   /* Record the fields for the semantic handler.  */
4877   FLD (f_operand1) = f_operand1;
4878   FLD (f_memmode) = f_memmode;
4879   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_test_m_b_m", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4880
4881 #if WITH_PROFILE_MODEL_P
4882   /* Record the fields for profiling.  */
4883   if (PROFILE_MODEL_P (current_cpu))
4884     {
4885       FLD (in_Rs) = f_operand1;
4886       FLD (out_Rs) = f_operand1;
4887     }
4888 #endif
4889 #undef FLD
4890     return idesc;
4891   }
4892
4893  extract_sfmt_test_m_w_m:
4894   {
4895     const IDESC *idesc = &crisv10f_insn_data[itype];
4896     CGEN_INSN_INT insn = base_insn;
4897 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
4898     UINT f_memmode;
4899     UINT f_operand1;
4900
4901     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4902     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4903
4904   /* Record the fields for the semantic handler.  */
4905   FLD (f_operand1) = f_operand1;
4906   FLD (f_memmode) = f_memmode;
4907   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_test_m_w_m", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4908
4909 #if WITH_PROFILE_MODEL_P
4910   /* Record the fields for profiling.  */
4911   if (PROFILE_MODEL_P (current_cpu))
4912     {
4913       FLD (in_Rs) = f_operand1;
4914       FLD (out_Rs) = f_operand1;
4915     }
4916 #endif
4917 #undef FLD
4918     return idesc;
4919   }
4920
4921  extract_sfmt_test_m_d_m:
4922   {
4923     const IDESC *idesc = &crisv10f_insn_data[itype];
4924     CGEN_INSN_INT insn = base_insn;
4925 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
4926     UINT f_memmode;
4927     UINT f_operand1;
4928
4929     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4930     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4931
4932   /* Record the fields for the semantic handler.  */
4933   FLD (f_operand1) = f_operand1;
4934   FLD (f_memmode) = f_memmode;
4935   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_test_m_d_m", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4936
4937 #if WITH_PROFILE_MODEL_P
4938   /* Record the fields for profiling.  */
4939   if (PROFILE_MODEL_P (current_cpu))
4940     {
4941       FLD (in_Rs) = f_operand1;
4942       FLD (out_Rs) = f_operand1;
4943     }
4944 #endif
4945 #undef FLD
4946     return idesc;
4947   }
4948
4949  extract_sfmt_move_r_m_b_m:
4950   {
4951     const IDESC *idesc = &crisv10f_insn_data[itype];
4952     CGEN_INSN_INT insn = base_insn;
4953 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
4954     UINT f_operand2;
4955     UINT f_memmode;
4956     UINT f_operand1;
4957
4958     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4959     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4960     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4961
4962   /* Record the fields for the semantic handler.  */
4963   FLD (f_operand2) = f_operand2;
4964   FLD (f_operand1) = f_operand1;
4965   FLD (f_memmode) = f_memmode;
4966   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_r_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4967
4968 #if WITH_PROFILE_MODEL_P
4969   /* Record the fields for profiling.  */
4970   if (PROFILE_MODEL_P (current_cpu))
4971     {
4972       FLD (in_Rd) = f_operand2;
4973       FLD (in_Rs) = f_operand1;
4974       FLD (out_Rs) = f_operand1;
4975     }
4976 #endif
4977 #undef FLD
4978     return idesc;
4979   }
4980
4981  extract_sfmt_move_r_m_w_m:
4982   {
4983     const IDESC *idesc = &crisv10f_insn_data[itype];
4984     CGEN_INSN_INT insn = base_insn;
4985 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
4986     UINT f_operand2;
4987     UINT f_memmode;
4988     UINT f_operand1;
4989
4990     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4991     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4992     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4993
4994   /* Record the fields for the semantic handler.  */
4995   FLD (f_operand2) = f_operand2;
4996   FLD (f_operand1) = f_operand1;
4997   FLD (f_memmode) = f_memmode;
4998   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_r_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4999
5000 #if WITH_PROFILE_MODEL_P
5001   /* Record the fields for profiling.  */
5002   if (PROFILE_MODEL_P (current_cpu))
5003     {
5004       FLD (in_Rd) = f_operand2;
5005       FLD (in_Rs) = f_operand1;
5006       FLD (out_Rs) = f_operand1;
5007     }
5008 #endif
5009 #undef FLD
5010     return idesc;
5011   }
5012
5013  extract_sfmt_move_r_m_d_m:
5014   {
5015     const IDESC *idesc = &crisv10f_insn_data[itype];
5016     CGEN_INSN_INT insn = base_insn;
5017 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
5018     UINT f_operand2;
5019     UINT f_memmode;
5020     UINT f_operand1;
5021
5022     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5023     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5024     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5025
5026   /* Record the fields for the semantic handler.  */
5027   FLD (f_operand2) = f_operand2;
5028   FLD (f_operand1) = f_operand1;
5029   FLD (f_memmode) = f_memmode;
5030   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_r_m_d_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
5031
5032 #if WITH_PROFILE_MODEL_P
5033   /* Record the fields for profiling.  */
5034   if (PROFILE_MODEL_P (current_cpu))
5035     {
5036       FLD (in_Rd) = f_operand2;
5037       FLD (in_Rs) = f_operand1;
5038       FLD (out_Rs) = f_operand1;
5039     }
5040 #endif
5041 #undef FLD
5042     return idesc;
5043   }
5044
5045  extract_sfmt_muls_b:
5046   {
5047     const IDESC *idesc = &crisv10f_insn_data[itype];
5048     CGEN_INSN_INT insn = base_insn;
5049 #define FLD(f) abuf->fields.sfmt_muls_b.f
5050     UINT f_operand2;
5051     UINT f_operand1;
5052
5053     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5054     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5055
5056   /* Record the fields for the semantic handler.  */
5057   FLD (f_operand2) = f_operand2;
5058   FLD (f_operand1) = f_operand1;
5059   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_muls_b", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
5060
5061 #if WITH_PROFILE_MODEL_P
5062   /* Record the fields for profiling.  */
5063   if (PROFILE_MODEL_P (current_cpu))
5064     {
5065       FLD (in_Rd) = f_operand2;
5066       FLD (in_Rs) = f_operand1;
5067       FLD (out_Rd) = f_operand2;
5068       FLD (out_h_sr_SI_7) = 7;
5069     }
5070 #endif
5071 #undef FLD
5072     return idesc;
5073   }
5074
5075  extract_sfmt_mstep:
5076   {
5077     const IDESC *idesc = &crisv10f_insn_data[itype];
5078     CGEN_INSN_INT insn = base_insn;
5079 #define FLD(f) abuf->fields.sfmt_muls_b.f
5080     UINT f_operand2;
5081     UINT f_operand1;
5082
5083     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5084     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5085
5086   /* Record the fields for the semantic handler.  */
5087   FLD (f_operand2) = f_operand2;
5088   FLD (f_operand1) = f_operand1;
5089   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mstep", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
5090
5091 #if WITH_PROFILE_MODEL_P
5092   /* Record the fields for profiling.  */
5093   if (PROFILE_MODEL_P (current_cpu))
5094     {
5095       FLD (in_Rd) = f_operand2;
5096       FLD (in_Rs) = f_operand1;
5097       FLD (out_Rd) = f_operand2;
5098     }
5099 #endif
5100 #undef FLD
5101     return idesc;
5102   }
5103
5104  extract_sfmt_dstep:
5105   {
5106     const IDESC *idesc = &crisv10f_insn_data[itype];
5107     CGEN_INSN_INT insn = base_insn;
5108 #define FLD(f) abuf->fields.sfmt_muls_b.f
5109     UINT f_operand2;
5110     UINT f_operand1;
5111
5112     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5113     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5114
5115   /* Record the fields for the semantic handler.  */
5116   FLD (f_operand2) = f_operand2;
5117   FLD (f_operand1) = f_operand1;
5118   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dstep", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
5119
5120 #if WITH_PROFILE_MODEL_P
5121   /* Record the fields for profiling.  */
5122   if (PROFILE_MODEL_P (current_cpu))
5123     {
5124       FLD (in_Rd) = f_operand2;
5125       FLD (in_Rs) = f_operand1;
5126       FLD (out_Rd) = f_operand2;
5127     }
5128 #endif
5129 #undef FLD
5130     return idesc;
5131   }
5132
5133  extract_sfmt_and_b_r:
5134   {
5135     const IDESC *idesc = &crisv10f_insn_data[itype];
5136     CGEN_INSN_INT insn = base_insn;
5137 #define FLD(f) abuf->fields.sfmt_add_b_r.f
5138     UINT f_operand2;
5139     UINT f_operand1;
5140
5141     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5142     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5143
5144   /* Record the fields for the semantic handler.  */
5145   FLD (f_operand2) = f_operand2;
5146   FLD (f_operand1) = f_operand1;
5147   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
5148
5149 #if WITH_PROFILE_MODEL_P
5150   /* Record the fields for profiling.  */
5151   if (PROFILE_MODEL_P (current_cpu))
5152     {
5153       FLD (in_Rd) = f_operand2;
5154       FLD (in_Rs) = f_operand1;
5155       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
5156     }
5157 #endif
5158 #undef FLD
5159     return idesc;
5160   }
5161
5162  extract_sfmt_and_w_r:
5163   {
5164     const IDESC *idesc = &crisv10f_insn_data[itype];
5165     CGEN_INSN_INT insn = base_insn;
5166 #define FLD(f) abuf->fields.sfmt_add_b_r.f
5167     UINT f_operand2;
5168     UINT f_operand1;
5169
5170     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5171     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5172
5173   /* Record the fields for the semantic handler.  */
5174   FLD (f_operand2) = f_operand2;
5175   FLD (f_operand1) = f_operand1;
5176   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_w_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
5177
5178 #if WITH_PROFILE_MODEL_P
5179   /* Record the fields for profiling.  */
5180   if (PROFILE_MODEL_P (current_cpu))
5181     {
5182       FLD (in_Rd) = f_operand2;
5183       FLD (in_Rs) = f_operand1;
5184       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
5185     }
5186 #endif
5187 #undef FLD
5188     return idesc;
5189   }
5190
5191  extract_sfmt_and_d_r:
5192   {
5193     const IDESC *idesc = &crisv10f_insn_data[itype];
5194     CGEN_INSN_INT insn = base_insn;
5195 #define FLD(f) abuf->fields.sfmt_add_b_r.f
5196     UINT f_operand2;
5197     UINT f_operand1;
5198
5199     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5200     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5201
5202   /* Record the fields for the semantic handler.  */
5203   FLD (f_operand2) = f_operand2;
5204   FLD (f_operand1) = f_operand1;
5205   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_d_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
5206
5207 #if WITH_PROFILE_MODEL_P
5208   /* Record the fields for profiling.  */
5209   if (PROFILE_MODEL_P (current_cpu))
5210     {
5211       FLD (in_Rd) = f_operand2;
5212       FLD (in_Rs) = f_operand1;
5213       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
5214     }
5215 #endif
5216 #undef FLD
5217     return idesc;
5218   }
5219
5220  extract_sfmt_and_m_b_m:
5221   {
5222     const IDESC *idesc = &crisv10f_insn_data[itype];
5223     CGEN_INSN_INT insn = base_insn;
5224 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
5225     UINT f_operand2;
5226     UINT f_memmode;
5227     UINT f_operand1;
5228
5229     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5230     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5231     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5232
5233   /* Record the fields for the semantic handler.  */
5234   FLD (f_operand2) = f_operand2;
5235   FLD (f_operand1) = f_operand1;
5236   FLD (f_memmode) = f_memmode;
5237   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
5238
5239 #if WITH_PROFILE_MODEL_P
5240   /* Record the fields for profiling.  */
5241   if (PROFILE_MODEL_P (current_cpu))
5242     {
5243       FLD (in_Rd) = f_operand2;
5244       FLD (in_Rs) = f_operand1;
5245       FLD (out_Rs) = f_operand1;
5246       FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
5247     }
5248 #endif
5249 #undef FLD
5250     return idesc;
5251   }
5252
5253  extract_sfmt_and_m_w_m:
5254   {
5255     const IDESC *idesc = &crisv10f_insn_data[itype];
5256     CGEN_INSN_INT insn = base_insn;
5257 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
5258     UINT f_operand2;
5259     UINT f_memmode;
5260     UINT f_operand1;
5261
5262     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5263     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5264     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5265
5266   /* Record the fields for the semantic handler.  */
5267   FLD (f_operand2) = f_operand2;
5268   FLD (f_operand1) = f_operand1;
5269   FLD (f_memmode) = f_memmode;
5270   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
5271
5272 #if WITH_PROFILE_MODEL_P
5273   /* Record the fields for profiling.  */
5274   if (PROFILE_MODEL_P (current_cpu))
5275     {
5276       FLD (in_Rd) = f_operand2;
5277       FLD (in_Rs) = f_operand1;
5278       FLD (out_Rs) = f_operand1;
5279       FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
5280     }
5281 #endif
5282 #undef FLD
5283     return idesc;
5284   }
5285
5286  extract_sfmt_and_m_d_m:
5287   {
5288     const IDESC *idesc = &crisv10f_insn_data[itype];
5289     CGEN_INSN_INT insn = base_insn;
5290 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
5291     UINT f_operand2;
5292     UINT f_memmode;
5293     UINT f_operand1;
5294
5295     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5296     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5297     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5298
5299   /* Record the fields for the semantic handler.  */
5300   FLD (f_operand2) = f_operand2;
5301   FLD (f_operand1) = f_operand1;
5302   FLD (f_memmode) = f_memmode;
5303   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_m_d_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
5304
5305 #if WITH_PROFILE_MODEL_P
5306   /* Record the fields for profiling.  */
5307   if (PROFILE_MODEL_P (current_cpu))
5308     {
5309       FLD (in_Rd) = f_operand2;
5310       FLD (in_Rs) = f_operand1;
5311       FLD (out_Rs) = f_operand1;
5312       FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
5313     }
5314 #endif
5315 #undef FLD
5316     return idesc;
5317   }
5318
5319  extract_sfmt_andcbr:
5320   {
5321     const IDESC *idesc = &crisv10f_insn_data[itype];
5322     CGEN_INSN_INT insn = base_insn;
5323 #define FLD(f) abuf->fields.sfmt_addcbr.f
5324     INT f_indir_pc__byte;
5325     UINT f_operand2;
5326     /* Contents of trailing part of insn.  */
5327     UINT word_1;
5328
5329   word_1 = GETIMEMUSI (current_cpu, pc + 2);
5330     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
5331     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5332
5333   /* Record the fields for the semantic handler.  */
5334   FLD (f_operand2) = f_operand2;
5335   FLD (f_indir_pc__byte) = f_indir_pc__byte;
5336   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andcbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
5337
5338 #if WITH_PROFILE_MODEL_P
5339   /* Record the fields for profiling.  */
5340   if (PROFILE_MODEL_P (current_cpu))
5341     {
5342       FLD (in_Rd) = f_operand2;
5343       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
5344     }
5345 #endif
5346 #undef FLD
5347     return idesc;
5348   }
5349
5350  extract_sfmt_andcwr:
5351   {
5352     const IDESC *idesc = &crisv10f_insn_data[itype];
5353     CGEN_INSN_INT insn = base_insn;
5354 #define FLD(f) abuf->fields.sfmt_addcwr.f
5355     INT f_indir_pc__word;
5356     UINT f_operand2;
5357     /* Contents of trailing part of insn.  */
5358     UINT word_1;
5359
5360   word_1 = GETIMEMUSI (current_cpu, pc + 2);
5361     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
5362     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5363
5364   /* Record the fields for the semantic handler.  */
5365   FLD (f_operand2) = f_operand2;
5366   FLD (f_indir_pc__word) = f_indir_pc__word;
5367   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andcwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
5368
5369 #if WITH_PROFILE_MODEL_P
5370   /* Record the fields for profiling.  */
5371   if (PROFILE_MODEL_P (current_cpu))
5372     {
5373       FLD (in_Rd) = f_operand2;
5374       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
5375     }
5376 #endif
5377 #undef FLD
5378     return idesc;
5379   }
5380
5381  extract_sfmt_andcdr:
5382   {
5383     const IDESC *idesc = &crisv10f_insn_data[itype];
5384     CGEN_INSN_INT insn = base_insn;
5385 #define FLD(f) abuf->fields.sfmt_addcdr.f
5386     INT f_indir_pc__dword;
5387     UINT f_operand2;
5388     /* Contents of trailing part of insn.  */
5389     UINT word_1;
5390
5391   word_1 = GETIMEMUSI (current_cpu, pc + 2);
5392     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
5393     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5394
5395   /* Record the fields for the semantic handler.  */
5396   FLD (f_operand2) = f_operand2;
5397   FLD (f_indir_pc__dword) = f_indir_pc__dword;
5398   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andcdr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
5399
5400 #if WITH_PROFILE_MODEL_P
5401   /* Record the fields for profiling.  */
5402   if (PROFILE_MODEL_P (current_cpu))
5403     {
5404       FLD (in_Rd) = f_operand2;
5405       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
5406     }
5407 #endif
5408 #undef FLD
5409     return idesc;
5410   }
5411
5412  extract_sfmt_andq:
5413   {
5414     const IDESC *idesc = &crisv10f_insn_data[itype];
5415     CGEN_INSN_INT insn = base_insn;
5416 #define FLD(f) abuf->fields.sfmt_andq.f
5417     UINT f_operand2;
5418     INT f_s6;
5419
5420     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5421     f_s6 = EXTRACT_LSB0_INT (insn, 16, 5, 6);
5422
5423   /* Record the fields for the semantic handler.  */
5424   FLD (f_operand2) = f_operand2;
5425   FLD (f_s6) = f_s6;
5426   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andq", "f_operand2 0x%x", 'x', f_operand2, "f_s6 0x%x", 'x', f_s6, (char *) 0));
5427
5428 #if WITH_PROFILE_MODEL_P
5429   /* Record the fields for profiling.  */
5430   if (PROFILE_MODEL_P (current_cpu))
5431     {
5432       FLD (in_Rd) = f_operand2;
5433       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
5434     }
5435 #endif
5436 #undef FLD
5437     return idesc;
5438   }
5439
5440  extract_sfmt_swap:
5441   {
5442     const IDESC *idesc = &crisv10f_insn_data[itype];
5443     CGEN_INSN_INT insn = base_insn;
5444 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
5445     UINT f_operand2;
5446     UINT f_operand1;
5447
5448     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5449     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5450
5451   /* Record the fields for the semantic handler.  */
5452   FLD (f_operand1) = f_operand1;
5453   FLD (f_operand2) = f_operand2;
5454   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_swap", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
5455
5456 #if WITH_PROFILE_MODEL_P
5457   /* Record the fields for profiling.  */
5458   if (PROFILE_MODEL_P (current_cpu))
5459     {
5460       FLD (in_Rs) = f_operand1;
5461       FLD (out_Rs) = f_operand1;
5462     }
5463 #endif
5464 #undef FLD
5465     return idesc;
5466   }
5467
5468  extract_sfmt_asrr_b_r:
5469   {
5470     const IDESC *idesc = &crisv10f_insn_data[itype];
5471     CGEN_INSN_INT insn = base_insn;
5472 #define FLD(f) abuf->fields.sfmt_add_b_r.f
5473     UINT f_operand2;
5474     UINT f_operand1;
5475
5476     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5477     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5478
5479   /* Record the fields for the semantic handler.  */
5480   FLD (f_operand2) = f_operand2;
5481   FLD (f_operand1) = f_operand1;
5482   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_asrr_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
5483
5484 #if WITH_PROFILE_MODEL_P
5485   /* Record the fields for profiling.  */
5486   if (PROFILE_MODEL_P (current_cpu))
5487     {
5488       FLD (in_Rd) = f_operand2;
5489       FLD (in_Rs) = f_operand1;
5490       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
5491     }
5492 #endif
5493 #undef FLD
5494     return idesc;
5495   }
5496
5497  extract_sfmt_asrq:
5498   {
5499     const IDESC *idesc = &crisv10f_insn_data[itype];
5500     CGEN_INSN_INT insn = base_insn;
5501 #define FLD(f) abuf->fields.sfmt_asrq.f
5502     UINT f_operand2;
5503     UINT f_u5;
5504
5505     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5506     f_u5 = EXTRACT_LSB0_UINT (insn, 16, 4, 5);
5507
5508   /* Record the fields for the semantic handler.  */
5509   FLD (f_operand2) = f_operand2;
5510   FLD (f_u5) = f_u5;
5511   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_asrq", "f_operand2 0x%x", 'x', f_operand2, "f_u5 0x%x", 'x', f_u5, (char *) 0));
5512
5513 #if WITH_PROFILE_MODEL_P
5514   /* Record the fields for profiling.  */
5515   if (PROFILE_MODEL_P (current_cpu))
5516     {
5517       FLD (in_Rd) = f_operand2;
5518       FLD (out_Rd) = f_operand2;
5519     }
5520 #endif
5521 #undef FLD
5522     return idesc;
5523   }
5524
5525  extract_sfmt_lsrr_b_r:
5526   {
5527     const IDESC *idesc = &crisv10f_insn_data[itype];
5528     CGEN_INSN_INT insn = base_insn;
5529 #define FLD(f) abuf->fields.sfmt_add_b_r.f
5530     UINT f_operand2;
5531     UINT f_operand1;
5532
5533     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5534     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5535
5536   /* Record the fields for the semantic handler.  */
5537   FLD (f_operand2) = f_operand2;
5538   FLD (f_operand1) = f_operand1;
5539   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lsrr_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
5540
5541 #if WITH_PROFILE_MODEL_P
5542   /* Record the fields for profiling.  */
5543   if (PROFILE_MODEL_P (current_cpu))
5544     {
5545       FLD (in_Rd) = f_operand2;
5546       FLD (in_Rs) = f_operand1;
5547       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
5548     }
5549 #endif
5550 #undef FLD
5551     return idesc;
5552   }
5553
5554  extract_sfmt_lsrr_d_r:
5555   {
5556     const IDESC *idesc = &crisv10f_insn_data[itype];
5557     CGEN_INSN_INT insn = base_insn;
5558 #define FLD(f) abuf->fields.sfmt_add_b_r.f
5559     UINT f_operand2;
5560     UINT f_operand1;
5561
5562     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5563     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5564
5565   /* Record the fields for the semantic handler.  */
5566   FLD (f_operand2) = f_operand2;
5567   FLD (f_operand1) = f_operand1;
5568   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lsrr_d_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
5569
5570 #if WITH_PROFILE_MODEL_P
5571   /* Record the fields for profiling.  */
5572   if (PROFILE_MODEL_P (current_cpu))
5573     {
5574       FLD (in_Rd) = f_operand2;
5575       FLD (in_Rs) = f_operand1;
5576       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
5577     }
5578 #endif
5579 #undef FLD
5580     return idesc;
5581   }
5582
5583  extract_sfmt_btst:
5584   {
5585     const IDESC *idesc = &crisv10f_insn_data[itype];
5586     CGEN_INSN_INT insn = base_insn;
5587 #define FLD(f) abuf->fields.sfmt_add_b_r.f
5588     UINT f_operand2;
5589     UINT f_operand1;
5590
5591     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5592     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5593
5594   /* Record the fields for the semantic handler.  */
5595   FLD (f_operand2) = f_operand2;
5596   FLD (f_operand1) = f_operand1;
5597   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_btst", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
5598
5599 #if WITH_PROFILE_MODEL_P
5600   /* Record the fields for profiling.  */
5601   if (PROFILE_MODEL_P (current_cpu))
5602     {
5603       FLD (in_Rd) = f_operand2;
5604       FLD (in_Rs) = f_operand1;
5605     }
5606 #endif
5607 #undef FLD
5608     return idesc;
5609   }
5610
5611  extract_sfmt_btstq:
5612   {
5613     const IDESC *idesc = &crisv10f_insn_data[itype];
5614     CGEN_INSN_INT insn = base_insn;
5615 #define FLD(f) abuf->fields.sfmt_asrq.f
5616     UINT f_operand2;
5617     UINT f_u5;
5618
5619     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5620     f_u5 = EXTRACT_LSB0_UINT (insn, 16, 4, 5);
5621
5622   /* Record the fields for the semantic handler.  */
5623   FLD (f_operand2) = f_operand2;
5624   FLD (f_u5) = f_u5;
5625   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_btstq", "f_operand2 0x%x", 'x', f_operand2, "f_u5 0x%x", 'x', f_u5, (char *) 0));
5626
5627 #if WITH_PROFILE_MODEL_P
5628   /* Record the fields for profiling.  */
5629   if (PROFILE_MODEL_P (current_cpu))
5630     {
5631       FLD (in_Rd) = f_operand2;
5632     }
5633 #endif
5634 #undef FLD
5635     return idesc;
5636   }
5637
5638  extract_sfmt_setf:
5639   {
5640     const IDESC *idesc = &crisv10f_insn_data[itype];
5641     CGEN_INSN_INT insn = base_insn;
5642 #define FLD(f) abuf->fields.sfmt_setf.f
5643     UINT f_operand2;
5644     UINT f_operand1;
5645     UINT f_dstsrc;
5646
5647     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5648     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5649   f_dstsrc = ((((f_operand1) | (((f_operand2) << (4))))) & (255));
5650
5651   /* Record the fields for the semantic handler.  */
5652   FLD (f_dstsrc) = f_dstsrc;
5653   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_setf", "f_dstsrc 0x%x", 'x', f_dstsrc, (char *) 0));
5654
5655 #undef FLD
5656     return idesc;
5657   }
5658
5659  extract_sfmt_bcc_b:
5660   {
5661     const IDESC *idesc = &crisv10f_insn_data[itype];
5662     CGEN_INSN_INT insn = base_insn;
5663 #define FLD(f) abuf->fields.sfmt_bcc_b.f
5664     UINT f_operand2;
5665     UINT f_disp9_lo;
5666     INT f_disp9_hi;
5667     INT f_disp9;
5668
5669     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5670     f_disp9_lo = EXTRACT_LSB0_UINT (insn, 16, 7, 7);
5671     f_disp9_hi = EXTRACT_LSB0_INT (insn, 16, 0, 1);
5672 {
5673   SI tmp_abslo;
5674   SI tmp_absval;
5675   tmp_abslo = ((f_disp9_lo) << (1));
5676   tmp_absval = ((((((f_disp9_hi) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo));
5677   f_disp9 = ((((pc) + (tmp_absval))) + (((GET_H_V32_NON_V32 ()) ? (0) : (2))));
5678 }
5679
5680   /* Record the fields for the semantic handler.  */
5681   FLD (f_operand2) = f_operand2;
5682   FLD (i_o_pcrel) = f_disp9;
5683   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bcc_b", "f_operand2 0x%x", 'x', f_operand2, "o_pcrel 0x%x", 'x', f_disp9, (char *) 0));
5684
5685 #if WITH_PROFILE_MODEL_P
5686   /* Record the fields for profiling.  */
5687   if (PROFILE_MODEL_P (current_cpu))
5688     {
5689     }
5690 #endif
5691 #undef FLD
5692     return idesc;
5693   }
5694
5695  extract_sfmt_ba_b:
5696   {
5697     const IDESC *idesc = &crisv10f_insn_data[itype];
5698     CGEN_INSN_INT insn = base_insn;
5699 #define FLD(f) abuf->fields.sfmt_bcc_b.f
5700     UINT f_disp9_lo;
5701     INT f_disp9_hi;
5702     INT f_disp9;
5703
5704     f_disp9_lo = EXTRACT_LSB0_UINT (insn, 16, 7, 7);
5705     f_disp9_hi = EXTRACT_LSB0_INT (insn, 16, 0, 1);
5706 {
5707   SI tmp_abslo;
5708   SI tmp_absval;
5709   tmp_abslo = ((f_disp9_lo) << (1));
5710   tmp_absval = ((((((f_disp9_hi) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo));
5711   f_disp9 = ((((pc) + (tmp_absval))) + (((GET_H_V32_NON_V32 ()) ? (0) : (2))));
5712 }
5713
5714   /* Record the fields for the semantic handler.  */
5715   FLD (i_o_pcrel) = f_disp9;
5716   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ba_b", "o_pcrel 0x%x", 'x', f_disp9, (char *) 0));
5717
5718 #if WITH_PROFILE_MODEL_P
5719   /* Record the fields for profiling.  */
5720   if (PROFILE_MODEL_P (current_cpu))
5721     {
5722     }
5723 #endif
5724 #undef FLD
5725     return idesc;
5726   }
5727
5728  extract_sfmt_bcc_w:
5729   {
5730     const IDESC *idesc = &crisv10f_insn_data[itype];
5731     CGEN_INSN_INT insn = base_insn;
5732 #define FLD(f) abuf->fields.sfmt_bcc_w.f
5733     SI f_indir_pc__word_pcrel;
5734     UINT f_operand2;
5735     /* Contents of trailing part of insn.  */
5736     UINT word_1;
5737
5738   word_1 = GETIMEMUSI (current_cpu, pc + 2);
5739     f_indir_pc__word_pcrel = ((EXTHISI (((HI) (UINT) ((0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0)))))) + (((pc) + (((GET_H_V32_NON_V32 ()) ? (0) : (4))))));
5740     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5741
5742   /* Record the fields for the semantic handler.  */
5743   FLD (f_operand2) = f_operand2;
5744   FLD (i_o_word_pcrel) = f_indir_pc__word_pcrel;
5745   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bcc_w", "f_operand2 0x%x", 'x', f_operand2, "o_word_pcrel 0x%x", 'x', f_indir_pc__word_pcrel, (char *) 0));
5746
5747 #if WITH_PROFILE_MODEL_P
5748   /* Record the fields for profiling.  */
5749   if (PROFILE_MODEL_P (current_cpu))
5750     {
5751     }
5752 #endif
5753 #undef FLD
5754     return idesc;
5755   }
5756
5757  extract_sfmt_ba_w:
5758   {
5759     const IDESC *idesc = &crisv10f_insn_data[itype];
5760     CGEN_INSN_INT insn = base_insn;
5761 #define FLD(f) abuf->fields.sfmt_bcc_w.f
5762     SI f_indir_pc__word_pcrel;
5763     /* Contents of trailing part of insn.  */
5764     UINT word_1;
5765
5766   word_1 = GETIMEMUSI (current_cpu, pc + 2);
5767     f_indir_pc__word_pcrel = ((EXTHISI (((HI) (UINT) ((0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0)))))) + (((pc) + (((GET_H_V32_NON_V32 ()) ? (0) : (4))))));
5768
5769   /* Record the fields for the semantic handler.  */
5770   FLD (i_o_word_pcrel) = f_indir_pc__word_pcrel;
5771   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ba_w", "o_word_pcrel 0x%x", 'x', f_indir_pc__word_pcrel, (char *) 0));
5772
5773 #if WITH_PROFILE_MODEL_P
5774   /* Record the fields for profiling.  */
5775   if (PROFILE_MODEL_P (current_cpu))
5776     {
5777     }
5778 #endif
5779 #undef FLD
5780     return idesc;
5781   }
5782
5783  extract_sfmt_jump_r:
5784   {
5785     const IDESC *idesc = &crisv10f_insn_data[itype];
5786     CGEN_INSN_INT insn = base_insn;
5787 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
5788     UINT f_operand2;
5789     UINT f_operand1;
5790
5791     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5792     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5793
5794   /* Record the fields for the semantic handler.  */
5795   FLD (f_operand1) = f_operand1;
5796   FLD (f_operand2) = f_operand2;
5797   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jump_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
5798
5799 #if WITH_PROFILE_MODEL_P
5800   /* Record the fields for profiling.  */
5801   if (PROFILE_MODEL_P (current_cpu))
5802     {
5803       FLD (in_Rs) = f_operand1;
5804       FLD (out_Pd) = f_operand2;
5805     }
5806 #endif
5807 #undef FLD
5808     return idesc;
5809   }
5810
5811  extract_sfmt_jump_m:
5812   {
5813     const IDESC *idesc = &crisv10f_insn_data[itype];
5814     CGEN_INSN_INT insn = base_insn;
5815 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
5816     UINT f_operand2;
5817     UINT f_memmode;
5818     UINT f_operand1;
5819
5820     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5821     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5822     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5823
5824   /* Record the fields for the semantic handler.  */
5825   FLD (f_operand1) = f_operand1;
5826   FLD (f_memmode) = f_memmode;
5827   FLD (f_operand2) = f_operand2;
5828   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jump_m", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
5829
5830 #if WITH_PROFILE_MODEL_P
5831   /* Record the fields for profiling.  */
5832   if (PROFILE_MODEL_P (current_cpu))
5833     {
5834       FLD (in_Rs) = f_operand1;
5835       FLD (out_Pd) = f_operand2;
5836       FLD (out_Rs) = f_operand1;
5837     }
5838 #endif
5839 #undef FLD
5840     return idesc;
5841   }
5842
5843  extract_sfmt_jump_c:
5844   {
5845     const IDESC *idesc = &crisv10f_insn_data[itype];
5846     CGEN_INSN_INT insn = base_insn;
5847 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
5848     INT f_indir_pc__dword;
5849     UINT f_operand2;
5850     /* Contents of trailing part of insn.  */
5851     UINT word_1;
5852
5853   word_1 = GETIMEMUSI (current_cpu, pc + 2);
5854     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
5855     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5856
5857   /* Record the fields for the semantic handler.  */
5858   FLD (f_indir_pc__dword) = f_indir_pc__dword;
5859   FLD (f_operand2) = f_operand2;
5860   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jump_c", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
5861
5862 #if WITH_PROFILE_MODEL_P
5863   /* Record the fields for profiling.  */
5864   if (PROFILE_MODEL_P (current_cpu))
5865     {
5866       FLD (out_Pd) = f_operand2;
5867     }
5868 #endif
5869 #undef FLD
5870     return idesc;
5871   }
5872
5873  extract_sfmt_break:
5874   {
5875     const IDESC *idesc = &crisv10f_insn_data[itype];
5876     CGEN_INSN_INT insn = base_insn;
5877 #define FLD(f) abuf->fields.sfmt_break.f
5878     UINT f_u4;
5879
5880     f_u4 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5881
5882   /* Record the fields for the semantic handler.  */
5883   FLD (f_u4) = f_u4;
5884   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_break", "f_u4 0x%x", 'x', f_u4, (char *) 0));
5885
5886 #if WITH_PROFILE_MODEL_P
5887   /* Record the fields for profiling.  */
5888   if (PROFILE_MODEL_P (current_cpu))
5889     {
5890     }
5891 #endif
5892 #undef FLD
5893     return idesc;
5894   }
5895
5896  extract_sfmt_bound_m_b_m:
5897   {
5898     const IDESC *idesc = &crisv10f_insn_data[itype];
5899     CGEN_INSN_INT insn = base_insn;
5900 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
5901     UINT f_operand2;
5902     UINT f_memmode;
5903     UINT f_operand1;
5904
5905     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5906     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5907     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5908
5909   /* Record the fields for the semantic handler.  */
5910   FLD (f_operand2) = f_operand2;
5911   FLD (f_operand1) = f_operand1;
5912   FLD (f_memmode) = f_memmode;
5913   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bound_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
5914
5915 #if WITH_PROFILE_MODEL_P
5916   /* Record the fields for profiling.  */
5917   if (PROFILE_MODEL_P (current_cpu))
5918     {
5919       FLD (in_Rd) = f_operand2;
5920       FLD (in_Rs) = f_operand1;
5921       FLD (out_Rd) = f_operand2;
5922       FLD (out_Rs) = f_operand1;
5923     }
5924 #endif
5925 #undef FLD
5926     return idesc;
5927   }
5928
5929  extract_sfmt_bound_m_w_m:
5930   {
5931     const IDESC *idesc = &crisv10f_insn_data[itype];
5932     CGEN_INSN_INT insn = base_insn;
5933 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
5934     UINT f_operand2;
5935     UINT f_memmode;
5936     UINT f_operand1;
5937
5938     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5939     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5940     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5941
5942   /* Record the fields for the semantic handler.  */
5943   FLD (f_operand2) = f_operand2;
5944   FLD (f_operand1) = f_operand1;
5945   FLD (f_memmode) = f_memmode;
5946   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bound_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
5947
5948 #if WITH_PROFILE_MODEL_P
5949   /* Record the fields for profiling.  */
5950   if (PROFILE_MODEL_P (current_cpu))
5951     {
5952       FLD (in_Rd) = f_operand2;
5953       FLD (in_Rs) = f_operand1;
5954       FLD (out_Rd) = f_operand2;
5955       FLD (out_Rs) = f_operand1;
5956     }
5957 #endif
5958 #undef FLD
5959     return idesc;
5960   }
5961
5962  extract_sfmt_bound_m_d_m:
5963   {
5964     const IDESC *idesc = &crisv10f_insn_data[itype];
5965     CGEN_INSN_INT insn = base_insn;
5966 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
5967     UINT f_operand2;
5968     UINT f_memmode;
5969     UINT f_operand1;
5970
5971     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5972     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5973     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5974
5975   /* Record the fields for the semantic handler.  */
5976   FLD (f_operand2) = f_operand2;
5977   FLD (f_operand1) = f_operand1;
5978   FLD (f_memmode) = f_memmode;
5979   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bound_m_d_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
5980
5981 #if WITH_PROFILE_MODEL_P
5982   /* Record the fields for profiling.  */
5983   if (PROFILE_MODEL_P (current_cpu))
5984     {
5985       FLD (in_Rd) = f_operand2;
5986       FLD (in_Rs) = f_operand1;
5987       FLD (out_Rd) = f_operand2;
5988       FLD (out_Rs) = f_operand1;
5989     }
5990 #endif
5991 #undef FLD
5992     return idesc;
5993   }
5994
5995  extract_sfmt_bound_cb:
5996   {
5997     const IDESC *idesc = &crisv10f_insn_data[itype];
5998     CGEN_INSN_INT insn = base_insn;
5999 #define FLD(f) abuf->fields.sfmt_bound_cb.f
6000     INT f_indir_pc__byte;
6001     UINT f_operand2;
6002     /* Contents of trailing part of insn.  */
6003     UINT word_1;
6004
6005   word_1 = GETIMEMUSI (current_cpu, pc + 2);
6006     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
6007     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
6008
6009   /* Record the fields for the semantic handler.  */
6010   FLD (f_operand2) = f_operand2;
6011   FLD (f_indir_pc__byte) = f_indir_pc__byte;
6012   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bound_cb", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
6013
6014 #if WITH_PROFILE_MODEL_P
6015   /* Record the fields for profiling.  */
6016   if (PROFILE_MODEL_P (current_cpu))
6017     {
6018       FLD (in_Rd) = f_operand2;
6019       FLD (out_Rd) = f_operand2;
6020     }
6021 #endif
6022 #undef FLD
6023     return idesc;
6024   }
6025
6026  extract_sfmt_bound_cw:
6027   {
6028     const IDESC *idesc = &crisv10f_insn_data[itype];
6029     CGEN_INSN_INT insn = base_insn;
6030 #define FLD(f) abuf->fields.sfmt_bound_cw.f
6031     INT f_indir_pc__word;
6032     UINT f_operand2;
6033     /* Contents of trailing part of insn.  */
6034     UINT word_1;
6035
6036   word_1 = GETIMEMUSI (current_cpu, pc + 2);
6037     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
6038     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
6039
6040   /* Record the fields for the semantic handler.  */
6041   FLD (f_operand2) = f_operand2;
6042   FLD (f_indir_pc__word) = f_indir_pc__word;
6043   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bound_cw", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
6044
6045 #if WITH_PROFILE_MODEL_P
6046   /* Record the fields for profiling.  */
6047   if (PROFILE_MODEL_P (current_cpu))
6048     {
6049       FLD (in_Rd) = f_operand2;
6050       FLD (out_Rd) = f_operand2;
6051     }
6052 #endif
6053 #undef FLD
6054     return idesc;
6055   }
6056
6057  extract_sfmt_bound_cd:
6058   {
6059     const IDESC *idesc = &crisv10f_insn_data[itype];
6060     CGEN_INSN_INT insn = base_insn;
6061 #define FLD(f) abuf->fields.sfmt_bound_cd.f
6062     INT f_indir_pc__dword;
6063     UINT f_operand2;
6064     /* Contents of trailing part of insn.  */
6065     UINT word_1;
6066
6067   word_1 = GETIMEMUSI (current_cpu, pc + 2);
6068     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
6069     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
6070
6071   /* Record the fields for the semantic handler.  */
6072   FLD (f_operand2) = f_operand2;
6073   FLD (f_indir_pc__dword) = f_indir_pc__dword;
6074   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bound_cd", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
6075
6076 #if WITH_PROFILE_MODEL_P
6077   /* Record the fields for profiling.  */
6078   if (PROFILE_MODEL_P (current_cpu))
6079     {
6080       FLD (in_Rd) = f_operand2;
6081       FLD (out_Rd) = f_operand2;
6082     }
6083 #endif
6084 #undef FLD
6085     return idesc;
6086   }
6087
6088  extract_sfmt_scc:
6089   {
6090     const IDESC *idesc = &crisv10f_insn_data[itype];
6091     CGEN_INSN_INT insn = base_insn;
6092 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
6093     UINT f_operand2;
6094     UINT f_operand1;
6095
6096     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
6097     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
6098
6099   /* Record the fields for the semantic handler.  */
6100   FLD (f_operand2) = f_operand2;
6101   FLD (f_operand1) = f_operand1;
6102   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_scc", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
6103
6104 #if WITH_PROFILE_MODEL_P
6105   /* Record the fields for profiling.  */
6106   if (PROFILE_MODEL_P (current_cpu))
6107     {
6108       FLD (out_Rs) = f_operand1;
6109     }
6110 #endif
6111 #undef FLD
6112     return idesc;
6113   }
6114
6115  extract_sfmt_addoq:
6116   {
6117     const IDESC *idesc = &crisv10f_insn_data[itype];
6118     CGEN_INSN_INT insn = base_insn;
6119 #define FLD(f) abuf->fields.sfmt_addoq.f
6120     UINT f_operand2;
6121     INT f_s8;
6122
6123     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
6124     f_s8 = EXTRACT_LSB0_INT (insn, 16, 7, 8);
6125
6126   /* Record the fields for the semantic handler.  */
6127   FLD (f_operand2) = f_operand2;
6128   FLD (f_s8) = f_s8;
6129   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addoq", "f_operand2 0x%x", 'x', f_operand2, "f_s8 0x%x", 'x', f_s8, (char *) 0));
6130
6131 #if WITH_PROFILE_MODEL_P
6132   /* Record the fields for profiling.  */
6133   if (PROFILE_MODEL_P (current_cpu))
6134     {
6135       FLD (in_Rd) = f_operand2;
6136     }
6137 #endif
6138 #undef FLD
6139     return idesc;
6140   }
6141
6142  extract_sfmt_bdapqpc:
6143   {
6144     const IDESC *idesc = &crisv10f_insn_data[itype];
6145     CGEN_INSN_INT insn = base_insn;
6146 #define FLD(f) abuf->fields.sfmt_addoq.f
6147     INT f_s8;
6148
6149     f_s8 = EXTRACT_LSB0_INT (insn, 16, 7, 8);
6150
6151   /* Record the fields for the semantic handler.  */
6152   FLD (f_s8) = f_s8;
6153   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bdapqpc", "f_s8 0x%x", 'x', f_s8, (char *) 0));
6154
6155 #if WITH_PROFILE_MODEL_P
6156   /* Record the fields for profiling.  */
6157   if (PROFILE_MODEL_P (current_cpu))
6158     {
6159     }
6160 #endif
6161 #undef FLD
6162     return idesc;
6163   }
6164
6165  extract_sfmt_bdap_32_pc:
6166   {
6167     const IDESC *idesc = &crisv10f_insn_data[itype];
6168     CGEN_INSN_INT insn = base_insn;
6169 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
6170     INT f_indir_pc__dword;
6171     /* Contents of trailing part of insn.  */
6172     UINT word_1;
6173
6174   word_1 = GETIMEMUSI (current_cpu, pc + 2);
6175     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
6176
6177   /* Record the fields for the semantic handler.  */
6178   FLD (f_indir_pc__dword) = f_indir_pc__dword;
6179   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bdap_32_pc", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
6180
6181 #if WITH_PROFILE_MODEL_P
6182   /* Record the fields for profiling.  */
6183   if (PROFILE_MODEL_P (current_cpu))
6184     {
6185     }
6186 #endif
6187 #undef FLD
6188     return idesc;
6189   }
6190
6191  extract_sfmt_move_m_pcplus_p0:
6192   {
6193     const IDESC *idesc = &crisv10f_insn_data[itype];
6194     CGEN_INSN_INT insn = base_insn;
6195 #define FLD(f) abuf->fields.sfmt_move_m_spplus_p8.f
6196     UINT f_memmode;
6197
6198     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
6199
6200   /* Record the fields for the semantic handler.  */
6201   FLD (f_memmode) = f_memmode;
6202   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_m_pcplus_p0", "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
6203
6204 #if WITH_PROFILE_MODEL_P
6205   /* Record the fields for profiling.  */
6206   if (PROFILE_MODEL_P (current_cpu))
6207     {
6208     }
6209 #endif
6210 #undef FLD
6211     return idesc;
6212   }
6213
6214  extract_sfmt_move_m_spplus_p8:
6215   {
6216     const IDESC *idesc = &crisv10f_insn_data[itype];
6217     CGEN_INSN_INT insn = base_insn;
6218 #define FLD(f) abuf->fields.sfmt_move_m_spplus_p8.f
6219     UINT f_memmode;
6220
6221     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
6222
6223   /* Record the fields for the semantic handler.  */
6224   FLD (f_memmode) = f_memmode;
6225   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_m_spplus_p8", "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
6226
6227 #if WITH_PROFILE_MODEL_P
6228   /* Record the fields for profiling.  */
6229   if (PROFILE_MODEL_P (current_cpu))
6230     {
6231       FLD (in_h_gr_SI_14) = 14;
6232       FLD (out_h_gr_SI_14) = 14;
6233     }
6234 #endif
6235 #undef FLD
6236     return idesc;
6237   }
6238
6239  extract_sfmt_addo_m_b_m:
6240   {
6241     const IDESC *idesc = &crisv10f_insn_data[itype];
6242     CGEN_INSN_INT insn = base_insn;
6243 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
6244     UINT f_operand2;
6245     UINT f_memmode;
6246     UINT f_operand1;
6247
6248     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
6249     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
6250     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
6251
6252   /* Record the fields for the semantic handler.  */
6253   FLD (f_operand2) = f_operand2;
6254   FLD (f_operand1) = f_operand1;
6255   FLD (f_memmode) = f_memmode;
6256   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
6257
6258 #if WITH_PROFILE_MODEL_P
6259   /* Record the fields for profiling.  */
6260   if (PROFILE_MODEL_P (current_cpu))
6261     {
6262       FLD (in_Rd) = f_operand2;
6263       FLD (in_Rs) = f_operand1;
6264       FLD (out_Rs) = f_operand1;
6265     }
6266 #endif
6267 #undef FLD
6268     return idesc;
6269   }
6270
6271  extract_sfmt_addo_m_w_m:
6272   {
6273     const IDESC *idesc = &crisv10f_insn_data[itype];
6274     CGEN_INSN_INT insn = base_insn;
6275 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
6276     UINT f_operand2;
6277     UINT f_memmode;
6278     UINT f_operand1;
6279
6280     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
6281     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
6282     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
6283
6284   /* Record the fields for the semantic handler.  */
6285   FLD (f_operand2) = f_operand2;
6286   FLD (f_operand1) = f_operand1;
6287   FLD (f_memmode) = f_memmode;
6288   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
6289
6290 #if WITH_PROFILE_MODEL_P
6291   /* Record the fields for profiling.  */
6292   if (PROFILE_MODEL_P (current_cpu))
6293     {
6294       FLD (in_Rd) = f_operand2;
6295       FLD (in_Rs) = f_operand1;
6296       FLD (out_Rs) = f_operand1;
6297     }
6298 #endif
6299 #undef FLD
6300     return idesc;
6301   }
6302
6303  extract_sfmt_addo_m_d_m:
6304   {
6305     const IDESC *idesc = &crisv10f_insn_data[itype];
6306     CGEN_INSN_INT insn = base_insn;
6307 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
6308     UINT f_operand2;
6309     UINT f_memmode;
6310     UINT f_operand1;
6311
6312     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
6313     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
6314     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
6315
6316   /* Record the fields for the semantic handler.  */
6317   FLD (f_operand2) = f_operand2;
6318   FLD (f_operand1) = f_operand1;
6319   FLD (f_memmode) = f_memmode;
6320   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_m_d_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
6321
6322 #if WITH_PROFILE_MODEL_P
6323   /* Record the fields for profiling.  */
6324   if (PROFILE_MODEL_P (current_cpu))
6325     {
6326       FLD (in_Rd) = f_operand2;
6327       FLD (in_Rs) = f_operand1;
6328       FLD (out_Rs) = f_operand1;
6329     }
6330 #endif
6331 #undef FLD
6332     return idesc;
6333   }
6334
6335  extract_sfmt_addo_cb:
6336   {
6337     const IDESC *idesc = &crisv10f_insn_data[itype];
6338     CGEN_INSN_INT insn = base_insn;
6339 #define FLD(f) abuf->fields.sfmt_bound_cb.f
6340     INT f_indir_pc__byte;
6341     UINT f_operand2;
6342     /* Contents of trailing part of insn.  */
6343     UINT word_1;
6344
6345   word_1 = GETIMEMUSI (current_cpu, pc + 2);
6346     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
6347     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
6348
6349   /* Record the fields for the semantic handler.  */
6350   FLD (f_operand2) = f_operand2;
6351   FLD (f_indir_pc__byte) = f_indir_pc__byte;
6352   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_cb", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
6353
6354 #if WITH_PROFILE_MODEL_P
6355   /* Record the fields for profiling.  */
6356   if (PROFILE_MODEL_P (current_cpu))
6357     {
6358       FLD (in_Rd) = f_operand2;
6359     }
6360 #endif
6361 #undef FLD
6362     return idesc;
6363   }
6364
6365  extract_sfmt_addo_cw:
6366   {
6367     const IDESC *idesc = &crisv10f_insn_data[itype];
6368     CGEN_INSN_INT insn = base_insn;
6369 #define FLD(f) abuf->fields.sfmt_bound_cw.f
6370     INT f_indir_pc__word;
6371     UINT f_operand2;
6372     /* Contents of trailing part of insn.  */
6373     UINT word_1;
6374
6375   word_1 = GETIMEMUSI (current_cpu, pc + 2);
6376     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
6377     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
6378
6379   /* Record the fields for the semantic handler.  */
6380   FLD (f_operand2) = f_operand2;
6381   FLD (f_indir_pc__word) = f_indir_pc__word;
6382   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_cw", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
6383
6384 #if WITH_PROFILE_MODEL_P
6385   /* Record the fields for profiling.  */
6386   if (PROFILE_MODEL_P (current_cpu))
6387     {
6388       FLD (in_Rd) = f_operand2;
6389     }
6390 #endif
6391 #undef FLD
6392     return idesc;
6393   }
6394
6395  extract_sfmt_addo_cd:
6396   {
6397     const IDESC *idesc = &crisv10f_insn_data[itype];
6398     CGEN_INSN_INT insn = base_insn;
6399 #define FLD(f) abuf->fields.sfmt_bound_cd.f
6400     INT f_indir_pc__dword;
6401     UINT f_operand2;
6402     /* Contents of trailing part of insn.  */
6403     UINT word_1;
6404
6405   word_1 = GETIMEMUSI (current_cpu, pc + 2);
6406     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
6407     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
6408
6409   /* Record the fields for the semantic handler.  */
6410   FLD (f_operand2) = f_operand2;
6411   FLD (f_indir_pc__dword) = f_indir_pc__dword;
6412   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_cd", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
6413
6414 #if WITH_PROFILE_MODEL_P
6415   /* Record the fields for profiling.  */
6416   if (PROFILE_MODEL_P (current_cpu))
6417     {
6418       FLD (in_Rd) = f_operand2;
6419     }
6420 #endif
6421 #undef FLD
6422     return idesc;
6423   }
6424
6425  extract_sfmt_dip_m:
6426   {
6427     const IDESC *idesc = &crisv10f_insn_data[itype];
6428     CGEN_INSN_INT insn = base_insn;
6429 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
6430     UINT f_memmode;
6431     UINT f_operand1;
6432
6433     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
6434     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
6435
6436   /* Record the fields for the semantic handler.  */
6437   FLD (f_operand1) = f_operand1;
6438   FLD (f_memmode) = f_memmode;
6439   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dip_m", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
6440
6441 #if WITH_PROFILE_MODEL_P
6442   /* Record the fields for profiling.  */
6443   if (PROFILE_MODEL_P (current_cpu))
6444     {
6445       FLD (in_Rs) = f_operand1;
6446       FLD (out_Rs) = f_operand1;
6447     }
6448 #endif
6449 #undef FLD
6450     return idesc;
6451   }
6452
6453  extract_sfmt_dip_c:
6454   {
6455     const IDESC *idesc = &crisv10f_insn_data[itype];
6456     CGEN_INSN_INT insn = base_insn;
6457 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
6458     INT f_indir_pc__dword;
6459     /* Contents of trailing part of insn.  */
6460     UINT word_1;
6461
6462   word_1 = GETIMEMUSI (current_cpu, pc + 2);
6463     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
6464
6465   /* Record the fields for the semantic handler.  */
6466   FLD (f_indir_pc__dword) = f_indir_pc__dword;
6467   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dip_c", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
6468
6469 #undef FLD
6470     return idesc;
6471   }
6472
6473  extract_sfmt_addi_acr_b_r:
6474   {
6475     const IDESC *idesc = &crisv10f_insn_data[itype];
6476     CGEN_INSN_INT insn = base_insn;
6477 #define FLD(f) abuf->fields.sfmt_add_b_r.f
6478     UINT f_operand2;
6479     UINT f_operand1;
6480
6481     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
6482     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
6483
6484   /* Record the fields for the semantic handler.  */
6485   FLD (f_operand2) = f_operand2;
6486   FLD (f_operand1) = f_operand1;
6487   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addi_acr_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
6488
6489 #if WITH_PROFILE_MODEL_P
6490   /* Record the fields for profiling.  */
6491   if (PROFILE_MODEL_P (current_cpu))
6492     {
6493       FLD (in_Rd) = f_operand2;
6494       FLD (in_Rs) = f_operand1;
6495     }
6496 #endif
6497 #undef FLD
6498     return idesc;
6499   }
6500
6501  extract_sfmt_biap_pc_b_r:
6502   {
6503     const IDESC *idesc = &crisv10f_insn_data[itype];
6504     CGEN_INSN_INT insn = base_insn;
6505 #define FLD(f) abuf->fields.sfmt_addoq.f
6506     UINT f_operand2;
6507
6508     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
6509
6510   /* Record the fields for the semantic handler.  */
6511   FLD (f_operand2) = f_operand2;
6512   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_biap_pc_b_r", "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
6513
6514 #if WITH_PROFILE_MODEL_P
6515   /* Record the fields for profiling.  */
6516   if (PROFILE_MODEL_P (current_cpu))
6517     {
6518       FLD (in_Rd) = f_operand2;
6519     }
6520 #endif
6521 #undef FLD
6522     return idesc;
6523   }
6524
6525 }