Switch the license of all files explicitly copyright the FSF
[external/binutils.git] / sim / cris / decodev32.c
1 /* Simulator instruction decoder for crisv32f.
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 crisv32f
25 #define WANT_CPU_CRISV32F
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 crisv32f_insn_data[CRISV32F_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 crisv32f_insn_sem[] =
42 {
43   { VIRTUAL_INSN_X_INVALID, CRISV32F_INSN_X_INVALID, CRISV32F_SFMT_EMPTY },
44   { VIRTUAL_INSN_X_AFTER, CRISV32F_INSN_X_AFTER, CRISV32F_SFMT_EMPTY },
45   { VIRTUAL_INSN_X_BEFORE, CRISV32F_INSN_X_BEFORE, CRISV32F_SFMT_EMPTY },
46   { VIRTUAL_INSN_X_CTI_CHAIN, CRISV32F_INSN_X_CTI_CHAIN, CRISV32F_SFMT_EMPTY },
47   { VIRTUAL_INSN_X_CHAIN, CRISV32F_INSN_X_CHAIN, CRISV32F_SFMT_EMPTY },
48   { VIRTUAL_INSN_X_BEGIN, CRISV32F_INSN_X_BEGIN, CRISV32F_SFMT_EMPTY },
49   { CRIS_INSN_MOVE_B_R, CRISV32F_INSN_MOVE_B_R, CRISV32F_SFMT_MOVE_B_R },
50   { CRIS_INSN_MOVE_W_R, CRISV32F_INSN_MOVE_W_R, CRISV32F_SFMT_MOVE_B_R },
51   { CRIS_INSN_MOVE_D_R, CRISV32F_INSN_MOVE_D_R, CRISV32F_SFMT_MOVE_D_R },
52   { CRIS_INSN_MOVEQ, CRISV32F_INSN_MOVEQ, CRISV32F_SFMT_MOVEQ },
53   { CRIS_INSN_MOVS_B_R, CRISV32F_INSN_MOVS_B_R, CRISV32F_SFMT_MOVS_B_R },
54   { CRIS_INSN_MOVS_W_R, CRISV32F_INSN_MOVS_W_R, CRISV32F_SFMT_MOVS_B_R },
55   { CRIS_INSN_MOVU_B_R, CRISV32F_INSN_MOVU_B_R, CRISV32F_SFMT_MOVS_B_R },
56   { CRIS_INSN_MOVU_W_R, CRISV32F_INSN_MOVU_W_R, CRISV32F_SFMT_MOVS_B_R },
57   { CRIS_INSN_MOVECBR, CRISV32F_INSN_MOVECBR, CRISV32F_SFMT_MOVECBR },
58   { CRIS_INSN_MOVECWR, CRISV32F_INSN_MOVECWR, CRISV32F_SFMT_MOVECWR },
59   { CRIS_INSN_MOVECDR, CRISV32F_INSN_MOVECDR, CRISV32F_SFMT_MOVECDR },
60   { CRIS_INSN_MOVSCBR, CRISV32F_INSN_MOVSCBR, CRISV32F_SFMT_MOVSCBR },
61   { CRIS_INSN_MOVSCWR, CRISV32F_INSN_MOVSCWR, CRISV32F_SFMT_MOVSCWR },
62   { CRIS_INSN_MOVUCBR, CRISV32F_INSN_MOVUCBR, CRISV32F_SFMT_MOVUCBR },
63   { CRIS_INSN_MOVUCWR, CRISV32F_INSN_MOVUCWR, CRISV32F_SFMT_MOVUCWR },
64   { CRIS_INSN_ADDQ, CRISV32F_INSN_ADDQ, CRISV32F_SFMT_ADDQ },
65   { CRIS_INSN_SUBQ, CRISV32F_INSN_SUBQ, CRISV32F_SFMT_ADDQ },
66   { CRIS_INSN_CMP_R_B_R, CRISV32F_INSN_CMP_R_B_R, CRISV32F_SFMT_CMP_R_B_R },
67   { CRIS_INSN_CMP_R_W_R, CRISV32F_INSN_CMP_R_W_R, CRISV32F_SFMT_CMP_R_B_R },
68   { CRIS_INSN_CMP_R_D_R, CRISV32F_INSN_CMP_R_D_R, CRISV32F_SFMT_CMP_R_B_R },
69   { CRIS_INSN_CMP_M_B_M, CRISV32F_INSN_CMP_M_B_M, CRISV32F_SFMT_CMP_M_B_M },
70   { CRIS_INSN_CMP_M_W_M, CRISV32F_INSN_CMP_M_W_M, CRISV32F_SFMT_CMP_M_W_M },
71   { CRIS_INSN_CMP_M_D_M, CRISV32F_INSN_CMP_M_D_M, CRISV32F_SFMT_CMP_M_D_M },
72   { CRIS_INSN_CMPCBR, CRISV32F_INSN_CMPCBR, CRISV32F_SFMT_CMPCBR },
73   { CRIS_INSN_CMPCWR, CRISV32F_INSN_CMPCWR, CRISV32F_SFMT_CMPCWR },
74   { CRIS_INSN_CMPCDR, CRISV32F_INSN_CMPCDR, CRISV32F_SFMT_CMPCDR },
75   { CRIS_INSN_CMPQ, CRISV32F_INSN_CMPQ, CRISV32F_SFMT_CMPQ },
76   { CRIS_INSN_CMPS_M_B_M, CRISV32F_INSN_CMPS_M_B_M, CRISV32F_SFMT_CMP_M_B_M },
77   { CRIS_INSN_CMPS_M_W_M, CRISV32F_INSN_CMPS_M_W_M, CRISV32F_SFMT_CMP_M_W_M },
78   { CRIS_INSN_CMPSCBR, CRISV32F_INSN_CMPSCBR, CRISV32F_SFMT_CMPCBR },
79   { CRIS_INSN_CMPSCWR, CRISV32F_INSN_CMPSCWR, CRISV32F_SFMT_CMPCWR },
80   { CRIS_INSN_CMPU_M_B_M, CRISV32F_INSN_CMPU_M_B_M, CRISV32F_SFMT_CMP_M_B_M },
81   { CRIS_INSN_CMPU_M_W_M, CRISV32F_INSN_CMPU_M_W_M, CRISV32F_SFMT_CMP_M_W_M },
82   { CRIS_INSN_CMPUCBR, CRISV32F_INSN_CMPUCBR, CRISV32F_SFMT_CMPUCBR },
83   { CRIS_INSN_CMPUCWR, CRISV32F_INSN_CMPUCWR, CRISV32F_SFMT_CMPUCWR },
84   { CRIS_INSN_MOVE_M_B_M, CRISV32F_INSN_MOVE_M_B_M, CRISV32F_SFMT_MOVE_M_B_M },
85   { CRIS_INSN_MOVE_M_W_M, CRISV32F_INSN_MOVE_M_W_M, CRISV32F_SFMT_MOVE_M_W_M },
86   { CRIS_INSN_MOVE_M_D_M, CRISV32F_INSN_MOVE_M_D_M, CRISV32F_SFMT_MOVE_M_D_M },
87   { CRIS_INSN_MOVS_M_B_M, CRISV32F_INSN_MOVS_M_B_M, CRISV32F_SFMT_MOVS_M_B_M },
88   { CRIS_INSN_MOVS_M_W_M, CRISV32F_INSN_MOVS_M_W_M, CRISV32F_SFMT_MOVS_M_W_M },
89   { CRIS_INSN_MOVU_M_B_M, CRISV32F_INSN_MOVU_M_B_M, CRISV32F_SFMT_MOVS_M_B_M },
90   { CRIS_INSN_MOVU_M_W_M, CRISV32F_INSN_MOVU_M_W_M, CRISV32F_SFMT_MOVS_M_W_M },
91   { CRIS_INSN_MOVE_R_SPRV32, CRISV32F_INSN_MOVE_R_SPRV32, CRISV32F_SFMT_MOVE_R_SPRV32 },
92   { CRIS_INSN_MOVE_SPR_RV32, CRISV32F_INSN_MOVE_SPR_RV32, CRISV32F_SFMT_MOVE_SPR_RV32 },
93   { CRIS_INSN_MOVE_M_SPRV32, CRISV32F_INSN_MOVE_M_SPRV32, CRISV32F_SFMT_MOVE_M_SPRV32 },
94   { CRIS_INSN_MOVE_C_SPRV32_P2, CRISV32F_INSN_MOVE_C_SPRV32_P2, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
95   { CRIS_INSN_MOVE_C_SPRV32_P3, CRISV32F_INSN_MOVE_C_SPRV32_P3, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
96   { CRIS_INSN_MOVE_C_SPRV32_P5, CRISV32F_INSN_MOVE_C_SPRV32_P5, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
97   { CRIS_INSN_MOVE_C_SPRV32_P6, CRISV32F_INSN_MOVE_C_SPRV32_P6, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
98   { CRIS_INSN_MOVE_C_SPRV32_P7, CRISV32F_INSN_MOVE_C_SPRV32_P7, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
99   { CRIS_INSN_MOVE_C_SPRV32_P9, CRISV32F_INSN_MOVE_C_SPRV32_P9, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
100   { CRIS_INSN_MOVE_C_SPRV32_P10, CRISV32F_INSN_MOVE_C_SPRV32_P10, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
101   { CRIS_INSN_MOVE_C_SPRV32_P11, CRISV32F_INSN_MOVE_C_SPRV32_P11, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
102   { CRIS_INSN_MOVE_C_SPRV32_P12, CRISV32F_INSN_MOVE_C_SPRV32_P12, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
103   { CRIS_INSN_MOVE_C_SPRV32_P13, CRISV32F_INSN_MOVE_C_SPRV32_P13, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
104   { CRIS_INSN_MOVE_C_SPRV32_P14, CRISV32F_INSN_MOVE_C_SPRV32_P14, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
105   { CRIS_INSN_MOVE_C_SPRV32_P15, CRISV32F_INSN_MOVE_C_SPRV32_P15, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
106   { CRIS_INSN_MOVE_SPR_MV32, CRISV32F_INSN_MOVE_SPR_MV32, CRISV32F_SFMT_MOVE_SPR_MV32 },
107   { CRIS_INSN_MOVE_SS_R, CRISV32F_INSN_MOVE_SS_R, CRISV32F_SFMT_MOVE_SS_R },
108   { CRIS_INSN_MOVE_R_SS, CRISV32F_INSN_MOVE_R_SS, CRISV32F_SFMT_MOVE_R_SS },
109   { CRIS_INSN_MOVEM_R_M_V32, CRISV32F_INSN_MOVEM_R_M_V32, CRISV32F_SFMT_MOVEM_R_M_V32 },
110   { CRIS_INSN_MOVEM_M_R_V32, CRISV32F_INSN_MOVEM_M_R_V32, CRISV32F_SFMT_MOVEM_M_R_V32 },
111   { CRIS_INSN_ADD_B_R, CRISV32F_INSN_ADD_B_R, CRISV32F_SFMT_ADD_B_R },
112   { CRIS_INSN_ADD_W_R, CRISV32F_INSN_ADD_W_R, CRISV32F_SFMT_ADD_B_R },
113   { CRIS_INSN_ADD_D_R, CRISV32F_INSN_ADD_D_R, CRISV32F_SFMT_ADD_D_R },
114   { CRIS_INSN_ADD_M_B_M, CRISV32F_INSN_ADD_M_B_M, CRISV32F_SFMT_ADD_M_B_M },
115   { CRIS_INSN_ADD_M_W_M, CRISV32F_INSN_ADD_M_W_M, CRISV32F_SFMT_ADD_M_W_M },
116   { CRIS_INSN_ADD_M_D_M, CRISV32F_INSN_ADD_M_D_M, CRISV32F_SFMT_ADD_M_D_M },
117   { CRIS_INSN_ADDCBR, CRISV32F_INSN_ADDCBR, CRISV32F_SFMT_ADDCBR },
118   { CRIS_INSN_ADDCWR, CRISV32F_INSN_ADDCWR, CRISV32F_SFMT_ADDCWR },
119   { CRIS_INSN_ADDCDR, CRISV32F_INSN_ADDCDR, CRISV32F_SFMT_ADDCDR },
120   { CRIS_INSN_ADDS_B_R, CRISV32F_INSN_ADDS_B_R, CRISV32F_SFMT_ADD_D_R },
121   { CRIS_INSN_ADDS_W_R, CRISV32F_INSN_ADDS_W_R, CRISV32F_SFMT_ADD_D_R },
122   { CRIS_INSN_ADDS_M_B_M, CRISV32F_INSN_ADDS_M_B_M, CRISV32F_SFMT_ADDS_M_B_M },
123   { CRIS_INSN_ADDS_M_W_M, CRISV32F_INSN_ADDS_M_W_M, CRISV32F_SFMT_ADDS_M_W_M },
124   { CRIS_INSN_ADDSCBR, CRISV32F_INSN_ADDSCBR, CRISV32F_SFMT_ADDSCBR },
125   { CRIS_INSN_ADDSCWR, CRISV32F_INSN_ADDSCWR, CRISV32F_SFMT_ADDSCWR },
126   { CRIS_INSN_ADDU_B_R, CRISV32F_INSN_ADDU_B_R, CRISV32F_SFMT_ADD_D_R },
127   { CRIS_INSN_ADDU_W_R, CRISV32F_INSN_ADDU_W_R, CRISV32F_SFMT_ADD_D_R },
128   { CRIS_INSN_ADDU_M_B_M, CRISV32F_INSN_ADDU_M_B_M, CRISV32F_SFMT_ADDS_M_B_M },
129   { CRIS_INSN_ADDU_M_W_M, CRISV32F_INSN_ADDU_M_W_M, CRISV32F_SFMT_ADDS_M_W_M },
130   { CRIS_INSN_ADDUCBR, CRISV32F_INSN_ADDUCBR, CRISV32F_SFMT_ADDSCBR },
131   { CRIS_INSN_ADDUCWR, CRISV32F_INSN_ADDUCWR, CRISV32F_SFMT_ADDSCWR },
132   { CRIS_INSN_SUB_B_R, CRISV32F_INSN_SUB_B_R, CRISV32F_SFMT_ADD_B_R },
133   { CRIS_INSN_SUB_W_R, CRISV32F_INSN_SUB_W_R, CRISV32F_SFMT_ADD_B_R },
134   { CRIS_INSN_SUB_D_R, CRISV32F_INSN_SUB_D_R, CRISV32F_SFMT_ADD_D_R },
135   { CRIS_INSN_SUB_M_B_M, CRISV32F_INSN_SUB_M_B_M, CRISV32F_SFMT_ADD_M_B_M },
136   { CRIS_INSN_SUB_M_W_M, CRISV32F_INSN_SUB_M_W_M, CRISV32F_SFMT_ADD_M_W_M },
137   { CRIS_INSN_SUB_M_D_M, CRISV32F_INSN_SUB_M_D_M, CRISV32F_SFMT_ADD_M_D_M },
138   { CRIS_INSN_SUBCBR, CRISV32F_INSN_SUBCBR, CRISV32F_SFMT_ADDCBR },
139   { CRIS_INSN_SUBCWR, CRISV32F_INSN_SUBCWR, CRISV32F_SFMT_ADDCWR },
140   { CRIS_INSN_SUBCDR, CRISV32F_INSN_SUBCDR, CRISV32F_SFMT_ADDCDR },
141   { CRIS_INSN_SUBS_B_R, CRISV32F_INSN_SUBS_B_R, CRISV32F_SFMT_ADD_D_R },
142   { CRIS_INSN_SUBS_W_R, CRISV32F_INSN_SUBS_W_R, CRISV32F_SFMT_ADD_D_R },
143   { CRIS_INSN_SUBS_M_B_M, CRISV32F_INSN_SUBS_M_B_M, CRISV32F_SFMT_ADDS_M_B_M },
144   { CRIS_INSN_SUBS_M_W_M, CRISV32F_INSN_SUBS_M_W_M, CRISV32F_SFMT_ADDS_M_W_M },
145   { CRIS_INSN_SUBSCBR, CRISV32F_INSN_SUBSCBR, CRISV32F_SFMT_ADDSCBR },
146   { CRIS_INSN_SUBSCWR, CRISV32F_INSN_SUBSCWR, CRISV32F_SFMT_ADDSCWR },
147   { CRIS_INSN_SUBU_B_R, CRISV32F_INSN_SUBU_B_R, CRISV32F_SFMT_ADD_D_R },
148   { CRIS_INSN_SUBU_W_R, CRISV32F_INSN_SUBU_W_R, CRISV32F_SFMT_ADD_D_R },
149   { CRIS_INSN_SUBU_M_B_M, CRISV32F_INSN_SUBU_M_B_M, CRISV32F_SFMT_ADDS_M_B_M },
150   { CRIS_INSN_SUBU_M_W_M, CRISV32F_INSN_SUBU_M_W_M, CRISV32F_SFMT_ADDS_M_W_M },
151   { CRIS_INSN_SUBUCBR, CRISV32F_INSN_SUBUCBR, CRISV32F_SFMT_ADDSCBR },
152   { CRIS_INSN_SUBUCWR, CRISV32F_INSN_SUBUCWR, CRISV32F_SFMT_ADDSCWR },
153   { CRIS_INSN_ADDC_R, CRISV32F_INSN_ADDC_R, CRISV32F_SFMT_ADD_D_R },
154   { CRIS_INSN_ADDC_M, CRISV32F_INSN_ADDC_M, CRISV32F_SFMT_ADDC_M },
155   { CRIS_INSN_ADDC_C, CRISV32F_INSN_ADDC_C, CRISV32F_SFMT_ADDCDR },
156   { CRIS_INSN_LAPC_D, CRISV32F_INSN_LAPC_D, CRISV32F_SFMT_LAPC_D },
157   { CRIS_INSN_LAPCQ, CRISV32F_INSN_LAPCQ, CRISV32F_SFMT_LAPCQ },
158   { CRIS_INSN_ADDI_B_R, CRISV32F_INSN_ADDI_B_R, CRISV32F_SFMT_ADDI_B_R },
159   { CRIS_INSN_ADDI_W_R, CRISV32F_INSN_ADDI_W_R, CRISV32F_SFMT_ADDI_B_R },
160   { CRIS_INSN_ADDI_D_R, CRISV32F_INSN_ADDI_D_R, CRISV32F_SFMT_ADDI_B_R },
161   { CRIS_INSN_NEG_B_R, CRISV32F_INSN_NEG_B_R, CRISV32F_SFMT_NEG_B_R },
162   { CRIS_INSN_NEG_W_R, CRISV32F_INSN_NEG_W_R, CRISV32F_SFMT_NEG_B_R },
163   { CRIS_INSN_NEG_D_R, CRISV32F_INSN_NEG_D_R, CRISV32F_SFMT_NEG_D_R },
164   { CRIS_INSN_TEST_M_B_M, CRISV32F_INSN_TEST_M_B_M, CRISV32F_SFMT_TEST_M_B_M },
165   { CRIS_INSN_TEST_M_W_M, CRISV32F_INSN_TEST_M_W_M, CRISV32F_SFMT_TEST_M_W_M },
166   { CRIS_INSN_TEST_M_D_M, CRISV32F_INSN_TEST_M_D_M, CRISV32F_SFMT_TEST_M_D_M },
167   { CRIS_INSN_MOVE_R_M_B_M, CRISV32F_INSN_MOVE_R_M_B_M, CRISV32F_SFMT_MOVE_R_M_B_M },
168   { CRIS_INSN_MOVE_R_M_W_M, CRISV32F_INSN_MOVE_R_M_W_M, CRISV32F_SFMT_MOVE_R_M_W_M },
169   { CRIS_INSN_MOVE_R_M_D_M, CRISV32F_INSN_MOVE_R_M_D_M, CRISV32F_SFMT_MOVE_R_M_D_M },
170   { CRIS_INSN_MULS_B, CRISV32F_INSN_MULS_B, CRISV32F_SFMT_MULS_B },
171   { CRIS_INSN_MULS_W, CRISV32F_INSN_MULS_W, CRISV32F_SFMT_MULS_B },
172   { CRIS_INSN_MULS_D, CRISV32F_INSN_MULS_D, CRISV32F_SFMT_MULS_B },
173   { CRIS_INSN_MULU_B, CRISV32F_INSN_MULU_B, CRISV32F_SFMT_MULS_B },
174   { CRIS_INSN_MULU_W, CRISV32F_INSN_MULU_W, CRISV32F_SFMT_MULS_B },
175   { CRIS_INSN_MULU_D, CRISV32F_INSN_MULU_D, CRISV32F_SFMT_MULS_B },
176   { CRIS_INSN_MCP, CRISV32F_INSN_MCP, CRISV32F_SFMT_MCP },
177   { CRIS_INSN_DSTEP, CRISV32F_INSN_DSTEP, CRISV32F_SFMT_DSTEP },
178   { CRIS_INSN_ABS, CRISV32F_INSN_ABS, CRISV32F_SFMT_MOVS_B_R },
179   { CRIS_INSN_AND_B_R, CRISV32F_INSN_AND_B_R, CRISV32F_SFMT_AND_B_R },
180   { CRIS_INSN_AND_W_R, CRISV32F_INSN_AND_W_R, CRISV32F_SFMT_AND_W_R },
181   { CRIS_INSN_AND_D_R, CRISV32F_INSN_AND_D_R, CRISV32F_SFMT_AND_D_R },
182   { CRIS_INSN_AND_M_B_M, CRISV32F_INSN_AND_M_B_M, CRISV32F_SFMT_AND_M_B_M },
183   { CRIS_INSN_AND_M_W_M, CRISV32F_INSN_AND_M_W_M, CRISV32F_SFMT_AND_M_W_M },
184   { CRIS_INSN_AND_M_D_M, CRISV32F_INSN_AND_M_D_M, CRISV32F_SFMT_AND_M_D_M },
185   { CRIS_INSN_ANDCBR, CRISV32F_INSN_ANDCBR, CRISV32F_SFMT_ANDCBR },
186   { CRIS_INSN_ANDCWR, CRISV32F_INSN_ANDCWR, CRISV32F_SFMT_ANDCWR },
187   { CRIS_INSN_ANDCDR, CRISV32F_INSN_ANDCDR, CRISV32F_SFMT_ANDCDR },
188   { CRIS_INSN_ANDQ, CRISV32F_INSN_ANDQ, CRISV32F_SFMT_ANDQ },
189   { CRIS_INSN_ORR_B_R, CRISV32F_INSN_ORR_B_R, CRISV32F_SFMT_AND_B_R },
190   { CRIS_INSN_ORR_W_R, CRISV32F_INSN_ORR_W_R, CRISV32F_SFMT_AND_W_R },
191   { CRIS_INSN_ORR_D_R, CRISV32F_INSN_ORR_D_R, CRISV32F_SFMT_AND_D_R },
192   { CRIS_INSN_OR_M_B_M, CRISV32F_INSN_OR_M_B_M, CRISV32F_SFMT_AND_M_B_M },
193   { CRIS_INSN_OR_M_W_M, CRISV32F_INSN_OR_M_W_M, CRISV32F_SFMT_AND_M_W_M },
194   { CRIS_INSN_OR_M_D_M, CRISV32F_INSN_OR_M_D_M, CRISV32F_SFMT_AND_M_D_M },
195   { CRIS_INSN_ORCBR, CRISV32F_INSN_ORCBR, CRISV32F_SFMT_ANDCBR },
196   { CRIS_INSN_ORCWR, CRISV32F_INSN_ORCWR, CRISV32F_SFMT_ANDCWR },
197   { CRIS_INSN_ORCDR, CRISV32F_INSN_ORCDR, CRISV32F_SFMT_ANDCDR },
198   { CRIS_INSN_ORQ, CRISV32F_INSN_ORQ, CRISV32F_SFMT_ANDQ },
199   { CRIS_INSN_XOR, CRISV32F_INSN_XOR, CRISV32F_SFMT_DSTEP },
200   { CRIS_INSN_SWAP, CRISV32F_INSN_SWAP, CRISV32F_SFMT_SWAP },
201   { CRIS_INSN_ASRR_B_R, CRISV32F_INSN_ASRR_B_R, CRISV32F_SFMT_ASRR_B_R },
202   { CRIS_INSN_ASRR_W_R, CRISV32F_INSN_ASRR_W_R, CRISV32F_SFMT_ASRR_B_R },
203   { CRIS_INSN_ASRR_D_R, CRISV32F_INSN_ASRR_D_R, CRISV32F_SFMT_AND_D_R },
204   { CRIS_INSN_ASRQ, CRISV32F_INSN_ASRQ, CRISV32F_SFMT_ASRQ },
205   { CRIS_INSN_LSRR_B_R, CRISV32F_INSN_LSRR_B_R, CRISV32F_SFMT_LSRR_B_R },
206   { CRIS_INSN_LSRR_W_R, CRISV32F_INSN_LSRR_W_R, CRISV32F_SFMT_LSRR_B_R },
207   { CRIS_INSN_LSRR_D_R, CRISV32F_INSN_LSRR_D_R, CRISV32F_SFMT_LSRR_D_R },
208   { CRIS_INSN_LSRQ, CRISV32F_INSN_LSRQ, CRISV32F_SFMT_ASRQ },
209   { CRIS_INSN_LSLR_B_R, CRISV32F_INSN_LSLR_B_R, CRISV32F_SFMT_LSRR_B_R },
210   { CRIS_INSN_LSLR_W_R, CRISV32F_INSN_LSLR_W_R, CRISV32F_SFMT_LSRR_B_R },
211   { CRIS_INSN_LSLR_D_R, CRISV32F_INSN_LSLR_D_R, CRISV32F_SFMT_LSRR_D_R },
212   { CRIS_INSN_LSLQ, CRISV32F_INSN_LSLQ, CRISV32F_SFMT_ASRQ },
213   { CRIS_INSN_BTST, CRISV32F_INSN_BTST, CRISV32F_SFMT_BTST },
214   { CRIS_INSN_BTSTQ, CRISV32F_INSN_BTSTQ, CRISV32F_SFMT_BTSTQ },
215   { CRIS_INSN_SETF, CRISV32F_INSN_SETF, CRISV32F_SFMT_SETF },
216   { CRIS_INSN_CLEARF, CRISV32F_INSN_CLEARF, CRISV32F_SFMT_SETF },
217   { CRIS_INSN_RFE, CRISV32F_INSN_RFE, CRISV32F_SFMT_RFE },
218   { CRIS_INSN_SFE, CRISV32F_INSN_SFE, CRISV32F_SFMT_SFE },
219   { CRIS_INSN_RFG, CRISV32F_INSN_RFG, CRISV32F_SFMT_RFG },
220   { CRIS_INSN_RFN, CRISV32F_INSN_RFN, CRISV32F_SFMT_RFN },
221   { CRIS_INSN_HALT, CRISV32F_INSN_HALT, CRISV32F_SFMT_HALT },
222   { CRIS_INSN_BCC_B, CRISV32F_INSN_BCC_B, CRISV32F_SFMT_BCC_B },
223   { CRIS_INSN_BA_B, CRISV32F_INSN_BA_B, CRISV32F_SFMT_BA_B },
224   { CRIS_INSN_BCC_W, CRISV32F_INSN_BCC_W, CRISV32F_SFMT_BCC_W },
225   { CRIS_INSN_BA_W, CRISV32F_INSN_BA_W, CRISV32F_SFMT_BA_W },
226   { CRIS_INSN_JAS_R, CRISV32F_INSN_JAS_R, CRISV32F_SFMT_JAS_R },
227   { CRIS_INSN_JAS_C, CRISV32F_INSN_JAS_C, CRISV32F_SFMT_JAS_C },
228   { CRIS_INSN_JUMP_P, CRISV32F_INSN_JUMP_P, CRISV32F_SFMT_JUMP_P },
229   { CRIS_INSN_BAS_C, CRISV32F_INSN_BAS_C, CRISV32F_SFMT_BAS_C },
230   { CRIS_INSN_JASC_R, CRISV32F_INSN_JASC_R, CRISV32F_SFMT_JASC_R },
231   { CRIS_INSN_JASC_C, CRISV32F_INSN_JASC_C, CRISV32F_SFMT_JAS_C },
232   { CRIS_INSN_BASC_C, CRISV32F_INSN_BASC_C, CRISV32F_SFMT_BAS_C },
233   { CRIS_INSN_BREAK, CRISV32F_INSN_BREAK, CRISV32F_SFMT_BREAK },
234   { CRIS_INSN_BOUND_R_B_R, CRISV32F_INSN_BOUND_R_B_R, CRISV32F_SFMT_DSTEP },
235   { CRIS_INSN_BOUND_R_W_R, CRISV32F_INSN_BOUND_R_W_R, CRISV32F_SFMT_DSTEP },
236   { CRIS_INSN_BOUND_R_D_R, CRISV32F_INSN_BOUND_R_D_R, CRISV32F_SFMT_DSTEP },
237   { CRIS_INSN_BOUND_CB, CRISV32F_INSN_BOUND_CB, CRISV32F_SFMT_BOUND_CB },
238   { CRIS_INSN_BOUND_CW, CRISV32F_INSN_BOUND_CW, CRISV32F_SFMT_BOUND_CW },
239   { CRIS_INSN_BOUND_CD, CRISV32F_INSN_BOUND_CD, CRISV32F_SFMT_BOUND_CD },
240   { CRIS_INSN_SCC, CRISV32F_INSN_SCC, CRISV32F_SFMT_SCC },
241   { CRIS_INSN_LZ, CRISV32F_INSN_LZ, CRISV32F_SFMT_MOVS_B_R },
242   { CRIS_INSN_ADDOQ, CRISV32F_INSN_ADDOQ, CRISV32F_SFMT_ADDOQ },
243   { CRIS_INSN_ADDO_M_B_M, CRISV32F_INSN_ADDO_M_B_M, CRISV32F_SFMT_ADDO_M_B_M },
244   { CRIS_INSN_ADDO_M_W_M, CRISV32F_INSN_ADDO_M_W_M, CRISV32F_SFMT_ADDO_M_W_M },
245   { CRIS_INSN_ADDO_M_D_M, CRISV32F_INSN_ADDO_M_D_M, CRISV32F_SFMT_ADDO_M_D_M },
246   { CRIS_INSN_ADDO_CB, CRISV32F_INSN_ADDO_CB, CRISV32F_SFMT_ADDO_CB },
247   { CRIS_INSN_ADDO_CW, CRISV32F_INSN_ADDO_CW, CRISV32F_SFMT_ADDO_CW },
248   { CRIS_INSN_ADDO_CD, CRISV32F_INSN_ADDO_CD, CRISV32F_SFMT_ADDO_CD },
249   { CRIS_INSN_ADDI_ACR_B_R, CRISV32F_INSN_ADDI_ACR_B_R, CRISV32F_SFMT_ADDI_ACR_B_R },
250   { CRIS_INSN_ADDI_ACR_W_R, CRISV32F_INSN_ADDI_ACR_W_R, CRISV32F_SFMT_ADDI_ACR_B_R },
251   { CRIS_INSN_ADDI_ACR_D_R, CRISV32F_INSN_ADDI_ACR_D_R, CRISV32F_SFMT_ADDI_ACR_B_R },
252   { CRIS_INSN_FIDXI, CRISV32F_INSN_FIDXI, CRISV32F_SFMT_FIDXI },
253   { CRIS_INSN_FTAGI, CRISV32F_INSN_FTAGI, CRISV32F_SFMT_FIDXI },
254   { CRIS_INSN_FIDXD, CRISV32F_INSN_FIDXD, CRISV32F_SFMT_FIDXI },
255   { CRIS_INSN_FTAGD, CRISV32F_INSN_FTAGD, CRISV32F_SFMT_FIDXI },
256 };
257
258 static const struct insn_sem crisv32f_insn_sem_invalid = {
259   VIRTUAL_INSN_X_INVALID, CRISV32F_INSN_X_INVALID, CRISV32F_SFMT_EMPTY
260 };
261
262 /* Initialize an IDESC from the compile-time computable parts.  */
263
264 static INLINE void
265 init_idesc (SIM_CPU *cpu, IDESC *id, const struct insn_sem *t)
266 {
267   const CGEN_INSN *insn_table = CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu))->init_entries;
268
269   id->num = t->index;
270   id->sfmt = t->sfmt;
271   if ((int) t->type <= 0)
272     id->idata = & cgen_virtual_insn_table[- (int) t->type];
273   else
274     id->idata = & insn_table[t->type];
275   id->attrs = CGEN_INSN_ATTRS (id->idata);
276   /* Oh my god, a magic number.  */
277   id->length = CGEN_INSN_BITSIZE (id->idata) / 8;
278
279 #if WITH_PROFILE_MODEL_P
280   id->timing = & MODEL_TIMING (CPU_MODEL (cpu)) [t->index];
281   {
282     SIM_DESC sd = CPU_STATE (cpu);
283     SIM_ASSERT (t->index == id->timing->num);
284   }
285 #endif
286
287   /* Semantic pointers are initialized elsewhere.  */
288 }
289
290 /* Initialize the instruction descriptor table.  */
291
292 void
293 crisv32f_init_idesc_table (SIM_CPU *cpu)
294 {
295   IDESC *id,*tabend;
296   const struct insn_sem *t,*tend;
297   int tabsize = CRISV32F_INSN__MAX;
298   IDESC *table = crisv32f_insn_data;
299
300   memset (table, 0, tabsize * sizeof (IDESC));
301
302   /* First set all entries to the `invalid insn'.  */
303   t = & crisv32f_insn_sem_invalid;
304   for (id = table, tabend = table + tabsize; id < tabend; ++id)
305     init_idesc (cpu, id, t);
306
307   /* Now fill in the values for the chosen cpu.  */
308   for (t = crisv32f_insn_sem, tend = t + sizeof (crisv32f_insn_sem) / sizeof (*t);
309        t != tend; ++t)
310     {
311       init_idesc (cpu, & table[t->index], t);
312     }
313
314   /* Link the IDESC table into the cpu.  */
315   CPU_IDESC (cpu) = table;
316 }
317
318 /* Given an instruction, return a pointer to its IDESC entry.  */
319
320 const IDESC *
321 crisv32f_decode (SIM_CPU *current_cpu, IADDR pc,
322               CGEN_INSN_INT base_insn,
323               ARGBUF *abuf)
324 {
325   /* Result of decoder.  */
326   CRISV32F_INSN_TYPE itype;
327
328   {
329     CGEN_INSN_INT insn = base_insn;
330
331     {
332       unsigned int val = (((insn >> 4) & (255 << 0)));
333       switch (val)
334       {
335       case 0 : /* fall through */
336       case 1 : /* fall through */
337       case 2 : /* fall through */
338       case 3 : /* fall through */
339       case 4 : /* fall through */
340       case 5 : /* fall through */
341       case 6 : /* fall through */
342       case 7 : /* fall through */
343       case 8 : /* fall through */
344       case 9 : /* fall through */
345       case 10 : /* fall through */
346       case 11 : /* fall through */
347       case 12 : /* fall through */
348       case 13 : /* fall through */
349       case 14 : /* fall through */
350       case 15 :
351         {
352           unsigned int val = (((insn >> 12) & (15 << 0)));
353           switch (val)
354           {
355           case 0 : /* fall through */
356           case 1 : /* fall through */
357           case 2 : /* fall through */
358           case 3 : /* fall through */
359           case 4 : /* fall through */
360           case 5 : /* fall through */
361           case 6 : /* fall through */
362           case 7 : /* fall through */
363           case 8 : /* fall through */
364           case 9 : /* fall through */
365           case 10 : /* fall through */
366           case 11 : /* fall through */
367           case 12 : /* fall through */
368           case 13 : /* fall through */
369           case 15 :
370             if ((base_insn & 0xf00) == 0x0)
371               { itype = CRISV32F_INSN_BCC_B; goto extract_sfmt_bcc_b; }
372             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
373           case 14 :
374             if ((base_insn & 0xff00) == 0xe000)
375               { itype = CRISV32F_INSN_BA_B; goto extract_sfmt_ba_b; }
376             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
377           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
378           }
379         }
380       case 16 : /* fall through */
381       case 17 : /* fall through */
382       case 18 : /* fall through */
383       case 19 : /* fall through */
384       case 20 : /* fall through */
385       case 21 : /* fall through */
386       case 22 : /* fall through */
387       case 23 : /* fall through */
388       case 24 : /* fall through */
389       case 25 : /* fall through */
390       case 26 : /* fall through */
391       case 27 : /* fall through */
392       case 28 : /* fall through */
393       case 29 : /* fall through */
394       case 30 : /* fall through */
395       case 31 :
396         if ((base_insn & 0xf00) == 0x100)
397           { itype = CRISV32F_INSN_ADDOQ; goto extract_sfmt_addoq; }
398         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
399       case 32 : /* fall through */
400       case 33 : /* fall through */
401       case 34 : /* fall through */
402       case 35 :
403         if ((base_insn & 0xfc0) == 0x200)
404           { itype = CRISV32F_INSN_ADDQ; goto extract_sfmt_addq; }
405         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
406       case 36 : /* fall through */
407       case 37 : /* fall through */
408       case 38 : /* fall through */
409       case 39 :
410         if ((base_insn & 0xfc0) == 0x240)
411           { itype = CRISV32F_INSN_MOVEQ; goto extract_sfmt_moveq; }
412         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
413       case 40 : /* fall through */
414       case 41 : /* fall through */
415       case 42 : /* fall through */
416       case 43 :
417         if ((base_insn & 0xfc0) == 0x280)
418           { itype = CRISV32F_INSN_SUBQ; goto extract_sfmt_addq; }
419         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
420       case 44 : /* fall through */
421       case 45 : /* fall through */
422       case 46 : /* fall through */
423       case 47 :
424         if ((base_insn & 0xfc0) == 0x2c0)
425           { itype = CRISV32F_INSN_CMPQ; goto extract_sfmt_cmpq; }
426         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
427       case 48 : /* fall through */
428       case 49 : /* fall through */
429       case 50 : /* fall through */
430       case 51 :
431         if ((base_insn & 0xfc0) == 0x300)
432           { itype = CRISV32F_INSN_ANDQ; goto extract_sfmt_andq; }
433         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
434       case 52 : /* fall through */
435       case 53 : /* fall through */
436       case 54 : /* fall through */
437       case 55 :
438         if ((base_insn & 0xfc0) == 0x340)
439           { itype = CRISV32F_INSN_ORQ; goto extract_sfmt_andq; }
440         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
441       case 56 : /* fall through */
442       case 57 :
443         if ((base_insn & 0xfe0) == 0x380)
444           { itype = CRISV32F_INSN_BTSTQ; goto extract_sfmt_btstq; }
445         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
446       case 58 : /* fall through */
447       case 59 :
448         if ((base_insn & 0xfe0) == 0x3a0)
449           { itype = CRISV32F_INSN_ASRQ; goto extract_sfmt_asrq; }
450         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
451       case 60 : /* fall through */
452       case 61 :
453         if ((base_insn & 0xfe0) == 0x3c0)
454           { itype = CRISV32F_INSN_LSLQ; goto extract_sfmt_asrq; }
455         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
456       case 62 : /* fall through */
457       case 63 :
458         if ((base_insn & 0xfe0) == 0x3e0)
459           { itype = CRISV32F_INSN_LSRQ; goto extract_sfmt_asrq; }
460         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
461       case 64 :
462         if ((base_insn & 0xff0) == 0x400)
463           { itype = CRISV32F_INSN_ADDU_B_R; goto extract_sfmt_add_d_r; }
464         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
465       case 65 :
466         if ((base_insn & 0xff0) == 0x410)
467           { itype = CRISV32F_INSN_ADDU_W_R; goto extract_sfmt_add_d_r; }
468         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
469       case 66 :
470         if ((base_insn & 0xff0) == 0x420)
471           { itype = CRISV32F_INSN_ADDS_B_R; goto extract_sfmt_add_d_r; }
472         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
473       case 67 :
474         if ((base_insn & 0xff0) == 0x430)
475           { itype = CRISV32F_INSN_ADDS_W_R; goto extract_sfmt_add_d_r; }
476         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
477       case 68 :
478         if ((base_insn & 0xff0) == 0x440)
479           { itype = CRISV32F_INSN_MOVU_B_R; goto extract_sfmt_movs_b_r; }
480         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
481       case 69 :
482         if ((base_insn & 0xff0) == 0x450)
483           { itype = CRISV32F_INSN_MOVU_W_R; goto extract_sfmt_movs_b_r; }
484         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
485       case 70 :
486         if ((base_insn & 0xff0) == 0x460)
487           { itype = CRISV32F_INSN_MOVS_B_R; goto extract_sfmt_movs_b_r; }
488         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
489       case 71 :
490         if ((base_insn & 0xff0) == 0x470)
491           { itype = CRISV32F_INSN_MOVS_W_R; goto extract_sfmt_movs_b_r; }
492         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
493       case 72 :
494         if ((base_insn & 0xff0) == 0x480)
495           { itype = CRISV32F_INSN_SUBU_B_R; goto extract_sfmt_add_d_r; }
496         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
497       case 73 :
498         if ((base_insn & 0xff0) == 0x490)
499           { itype = CRISV32F_INSN_SUBU_W_R; goto extract_sfmt_add_d_r; }
500         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
501       case 74 :
502         if ((base_insn & 0xff0) == 0x4a0)
503           { itype = CRISV32F_INSN_SUBS_B_R; goto extract_sfmt_add_d_r; }
504         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
505       case 75 :
506         if ((base_insn & 0xff0) == 0x4b0)
507           { itype = CRISV32F_INSN_SUBS_W_R; goto extract_sfmt_add_d_r; }
508         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
509       case 76 :
510         if ((base_insn & 0xff0) == 0x4c0)
511           { itype = CRISV32F_INSN_LSLR_B_R; goto extract_sfmt_lsrr_b_r; }
512         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
513       case 77 :
514         if ((base_insn & 0xff0) == 0x4d0)
515           { itype = CRISV32F_INSN_LSLR_W_R; goto extract_sfmt_lsrr_b_r; }
516         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
517       case 78 :
518         if ((base_insn & 0xff0) == 0x4e0)
519           { itype = CRISV32F_INSN_LSLR_D_R; goto extract_sfmt_lsrr_d_r; }
520         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
521       case 79 :
522         if ((base_insn & 0xff0) == 0x4f0)
523           { itype = CRISV32F_INSN_BTST; goto extract_sfmt_btst; }
524         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
525       case 80 :
526         if ((base_insn & 0xff0) == 0x500)
527           { itype = CRISV32F_INSN_ADDI_B_R; goto extract_sfmt_addi_b_r; }
528         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
529       case 81 :
530         if ((base_insn & 0xff0) == 0x510)
531           { itype = CRISV32F_INSN_ADDI_W_R; goto extract_sfmt_addi_b_r; }
532         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
533       case 82 :
534         if ((base_insn & 0xff0) == 0x520)
535           { itype = CRISV32F_INSN_ADDI_D_R; goto extract_sfmt_addi_b_r; }
536         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
537       case 83 :
538         if ((base_insn & 0xff0) == 0x530)
539           { itype = CRISV32F_INSN_SCC; goto extract_sfmt_scc; }
540         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
541       case 84 :
542         if ((base_insn & 0xff0) == 0x540)
543           { itype = CRISV32F_INSN_ADDI_ACR_B_R; goto extract_sfmt_addi_acr_b_r; }
544         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
545       case 85 :
546         if ((base_insn & 0xff0) == 0x550)
547           { itype = CRISV32F_INSN_ADDI_ACR_W_R; goto extract_sfmt_addi_acr_b_r; }
548         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
549       case 86 :
550         if ((base_insn & 0xff0) == 0x560)
551           { itype = CRISV32F_INSN_ADDI_ACR_D_R; goto extract_sfmt_addi_acr_b_r; }
552         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
553       case 87 :
554         if ((base_insn & 0xff0) == 0x570)
555           { itype = CRISV32F_INSN_ADDC_R; goto extract_sfmt_add_d_r; }
556         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
557       case 88 :
558         if ((base_insn & 0xff0) == 0x580)
559           { itype = CRISV32F_INSN_NEG_B_R; goto extract_sfmt_neg_b_r; }
560         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
561       case 89 :
562         if ((base_insn & 0xff0) == 0x590)
563           { itype = CRISV32F_INSN_NEG_W_R; goto extract_sfmt_neg_b_r; }
564         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
565       case 90 :
566         if ((base_insn & 0xff0) == 0x5a0)
567           { itype = CRISV32F_INSN_NEG_D_R; goto extract_sfmt_neg_d_r; }
568         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
569       case 91 :
570         if ((base_insn & 0xff0) == 0x5b0)
571           { itype = CRISV32F_INSN_SETF; goto extract_sfmt_setf; }
572         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
573       case 92 :
574         if ((base_insn & 0xff0) == 0x5c0)
575           { itype = CRISV32F_INSN_BOUND_R_B_R; goto extract_sfmt_dstep; }
576         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
577       case 93 :
578         if ((base_insn & 0xff0) == 0x5d0)
579           { itype = CRISV32F_INSN_BOUND_R_W_R; goto extract_sfmt_dstep; }
580         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
581       case 94 :
582         if ((base_insn & 0xff0) == 0x5e0)
583           { itype = CRISV32F_INSN_BOUND_R_D_R; goto extract_sfmt_dstep; }
584         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
585       case 95 :
586         if ((base_insn & 0xff0) == 0x5f0)
587           { itype = CRISV32F_INSN_CLEARF; goto extract_sfmt_setf; }
588         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
589       case 96 :
590         if ((base_insn & 0xff0) == 0x600)
591           { itype = CRISV32F_INSN_ADD_B_R; goto extract_sfmt_add_b_r; }
592         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
593       case 97 :
594         if ((base_insn & 0xff0) == 0x610)
595           { itype = CRISV32F_INSN_ADD_W_R; goto extract_sfmt_add_b_r; }
596         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
597       case 98 :
598         if ((base_insn & 0xff0) == 0x620)
599           { itype = CRISV32F_INSN_ADD_D_R; goto extract_sfmt_add_d_r; }
600         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
601       case 99 :
602         if ((base_insn & 0xff0) == 0x630)
603           { itype = CRISV32F_INSN_MOVE_R_SPRV32; goto extract_sfmt_move_r_sprv32; }
604         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
605       case 100 :
606         if ((base_insn & 0xff0) == 0x640)
607           { itype = CRISV32F_INSN_MOVE_B_R; goto extract_sfmt_move_b_r; }
608         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
609       case 101 :
610         if ((base_insn & 0xff0) == 0x650)
611           { itype = CRISV32F_INSN_MOVE_W_R; goto extract_sfmt_move_b_r; }
612         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
613       case 102 :
614         if ((base_insn & 0xff0) == 0x660)
615           { itype = CRISV32F_INSN_MOVE_D_R; goto extract_sfmt_move_d_r; }
616         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
617       case 103 :
618         if ((base_insn & 0xff0) == 0x670)
619           { itype = CRISV32F_INSN_MOVE_SPR_RV32; goto extract_sfmt_move_spr_rv32; }
620         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
621       case 104 :
622         if ((base_insn & 0xff0) == 0x680)
623           { itype = CRISV32F_INSN_SUB_B_R; goto extract_sfmt_add_b_r; }
624         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
625       case 105 :
626         if ((base_insn & 0xff0) == 0x690)
627           { itype = CRISV32F_INSN_SUB_W_R; goto extract_sfmt_add_b_r; }
628         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
629       case 106 :
630         if ((base_insn & 0xff0) == 0x6a0)
631           { itype = CRISV32F_INSN_SUB_D_R; goto extract_sfmt_add_d_r; }
632         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
633       case 107 :
634         if ((base_insn & 0xff0) == 0x6b0)
635           { itype = CRISV32F_INSN_ABS; goto extract_sfmt_movs_b_r; }
636         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
637       case 108 :
638         if ((base_insn & 0xff0) == 0x6c0)
639           { itype = CRISV32F_INSN_CMP_R_B_R; goto extract_sfmt_cmp_r_b_r; }
640         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
641       case 109 :
642         if ((base_insn & 0xff0) == 0x6d0)
643           { itype = CRISV32F_INSN_CMP_R_W_R; goto extract_sfmt_cmp_r_b_r; }
644         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
645       case 110 :
646         if ((base_insn & 0xff0) == 0x6e0)
647           { itype = CRISV32F_INSN_CMP_R_D_R; goto extract_sfmt_cmp_r_b_r; }
648         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
649       case 111 :
650         if ((base_insn & 0xff0) == 0x6f0)
651           { itype = CRISV32F_INSN_DSTEP; goto extract_sfmt_dstep; }
652         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
653       case 112 :
654         if ((base_insn & 0xff0) == 0x700)
655           { itype = CRISV32F_INSN_AND_B_R; goto extract_sfmt_and_b_r; }
656         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
657       case 113 :
658         if ((base_insn & 0xff0) == 0x710)
659           { itype = CRISV32F_INSN_AND_W_R; goto extract_sfmt_and_w_r; }
660         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
661       case 114 :
662         if ((base_insn & 0xff0) == 0x720)
663           { itype = CRISV32F_INSN_AND_D_R; goto extract_sfmt_and_d_r; }
664         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
665       case 115 :
666         if ((base_insn & 0xff0) == 0x730)
667           { itype = CRISV32F_INSN_LZ; goto extract_sfmt_movs_b_r; }
668         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
669       case 116 :
670         if ((base_insn & 0xff0) == 0x740)
671           { itype = CRISV32F_INSN_ORR_B_R; goto extract_sfmt_and_b_r; }
672         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
673       case 117 :
674         if ((base_insn & 0xff0) == 0x750)
675           { itype = CRISV32F_INSN_ORR_W_R; goto extract_sfmt_and_w_r; }
676         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
677       case 118 :
678         if ((base_insn & 0xff0) == 0x760)
679           { itype = CRISV32F_INSN_ORR_D_R; goto extract_sfmt_and_d_r; }
680         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
681       case 119 :
682         if ((base_insn & 0xff0) == 0x770)
683           { itype = CRISV32F_INSN_SWAP; goto extract_sfmt_swap; }
684         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
685       case 120 :
686         if ((base_insn & 0xff0) == 0x780)
687           { itype = CRISV32F_INSN_ASRR_B_R; goto extract_sfmt_asrr_b_r; }
688         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
689       case 121 :
690         if ((base_insn & 0xff0) == 0x790)
691           { itype = CRISV32F_INSN_ASRR_W_R; goto extract_sfmt_asrr_b_r; }
692         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
693       case 122 :
694         if ((base_insn & 0xff0) == 0x7a0)
695           { itype = CRISV32F_INSN_ASRR_D_R; goto extract_sfmt_and_d_r; }
696         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
697       case 123 :
698         if ((base_insn & 0xff0) == 0x7b0)
699           { itype = CRISV32F_INSN_XOR; goto extract_sfmt_dstep; }
700         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
701       case 124 :
702         if ((base_insn & 0xff0) == 0x7c0)
703           { itype = CRISV32F_INSN_LSRR_B_R; goto extract_sfmt_lsrr_b_r; }
704         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
705       case 125 :
706         if ((base_insn & 0xff0) == 0x7d0)
707           { itype = CRISV32F_INSN_LSRR_W_R; goto extract_sfmt_lsrr_b_r; }
708         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
709       case 126 :
710         if ((base_insn & 0xff0) == 0x7e0)
711           { itype = CRISV32F_INSN_LSRR_D_R; goto extract_sfmt_lsrr_d_r; }
712         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
713       case 127 :
714         if ((base_insn & 0xff0) == 0x7f0)
715           { itype = CRISV32F_INSN_MCP; goto extract_sfmt_mcp; }
716         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
717       case 128 :
718         if ((base_insn & 0xbf0) == 0x800)
719           { itype = CRISV32F_INSN_ADDU_M_B_M; goto extract_sfmt_adds_m_b_m; }
720         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
721       case 129 :
722         if ((base_insn & 0xbf0) == 0x810)
723           { itype = CRISV32F_INSN_ADDU_M_W_M; goto extract_sfmt_adds_m_w_m; }
724         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
725       case 130 :
726         if ((base_insn & 0xbf0) == 0x820)
727           { itype = CRISV32F_INSN_ADDS_M_B_M; goto extract_sfmt_adds_m_b_m; }
728         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
729       case 131 :
730         if ((base_insn & 0xbf0) == 0x830)
731           { itype = CRISV32F_INSN_ADDS_M_W_M; goto extract_sfmt_adds_m_w_m; }
732         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
733       case 132 :
734         if ((base_insn & 0xbf0) == 0x840)
735           { itype = CRISV32F_INSN_MOVU_M_B_M; goto extract_sfmt_movs_m_b_m; }
736         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
737       case 133 :
738         if ((base_insn & 0xbf0) == 0x850)
739           { itype = CRISV32F_INSN_MOVU_M_W_M; goto extract_sfmt_movs_m_w_m; }
740         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
741       case 134 :
742         if ((base_insn & 0xbf0) == 0x860)
743           { itype = CRISV32F_INSN_MOVS_M_B_M; goto extract_sfmt_movs_m_b_m; }
744         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
745       case 135 :
746         if ((base_insn & 0xbf0) == 0x870)
747           { itype = CRISV32F_INSN_MOVS_M_W_M; goto extract_sfmt_movs_m_w_m; }
748         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
749       case 136 :
750         if ((base_insn & 0xbf0) == 0x880)
751           { itype = CRISV32F_INSN_SUBU_M_B_M; goto extract_sfmt_adds_m_b_m; }
752         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
753       case 137 :
754         if ((base_insn & 0xbf0) == 0x890)
755           { itype = CRISV32F_INSN_SUBU_M_W_M; goto extract_sfmt_adds_m_w_m; }
756         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
757       case 138 :
758         if ((base_insn & 0xbf0) == 0x8a0)
759           { itype = CRISV32F_INSN_SUBS_M_B_M; goto extract_sfmt_adds_m_b_m; }
760         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
761       case 139 :
762         if ((base_insn & 0xbf0) == 0x8b0)
763           { itype = CRISV32F_INSN_SUBS_M_W_M; goto extract_sfmt_adds_m_w_m; }
764         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
765       case 140 :
766         if ((base_insn & 0xbf0) == 0x8c0)
767           { itype = CRISV32F_INSN_CMPU_M_B_M; goto extract_sfmt_cmp_m_b_m; }
768         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
769       case 141 :
770         if ((base_insn & 0xbf0) == 0x8d0)
771           { itype = CRISV32F_INSN_CMPU_M_W_M; goto extract_sfmt_cmp_m_w_m; }
772         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
773       case 142 :
774         if ((base_insn & 0xbf0) == 0x8e0)
775           { itype = CRISV32F_INSN_CMPS_M_B_M; goto extract_sfmt_cmp_m_b_m; }
776         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
777       case 143 :
778         if ((base_insn & 0xbf0) == 0x8f0)
779           { itype = CRISV32F_INSN_CMPS_M_W_M; goto extract_sfmt_cmp_m_w_m; }
780         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
781       case 144 :
782         if ((base_insn & 0xff0) == 0x900)
783           { itype = CRISV32F_INSN_MULU_B; goto extract_sfmt_muls_b; }
784         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
785       case 145 :
786         if ((base_insn & 0xff0) == 0x910)
787           { itype = CRISV32F_INSN_MULU_W; goto extract_sfmt_muls_b; }
788         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
789       case 146 :
790         if ((base_insn & 0xff0) == 0x920)
791           { itype = CRISV32F_INSN_MULU_D; goto extract_sfmt_muls_b; }
792         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
793       case 147 :
794         {
795           unsigned int val = (((insn >> 12) & (15 << 0)));
796           switch (val)
797           {
798           case 2 :
799             if ((base_insn & 0xffff) == 0x2930)
800               { itype = CRISV32F_INSN_RFE; goto extract_sfmt_rfe; }
801             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
802           case 3 :
803             if ((base_insn & 0xffff) == 0x3930)
804               { itype = CRISV32F_INSN_SFE; goto extract_sfmt_sfe; }
805             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
806           case 4 :
807             if ((base_insn & 0xffff) == 0x4930)
808               { itype = CRISV32F_INSN_RFG; goto extract_sfmt_rfg; }
809             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
810           case 5 :
811             if ((base_insn & 0xffff) == 0x5930)
812               { itype = CRISV32F_INSN_RFN; goto extract_sfmt_rfn; }
813             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
814           case 14 :
815             if ((base_insn & 0xfff0) == 0xe930)
816               { itype = CRISV32F_INSN_BREAK; goto extract_sfmt_break; }
817             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
818           case 15 :
819             if ((base_insn & 0xffff) == 0xf930)
820               { itype = CRISV32F_INSN_HALT; goto extract_sfmt_halt; }
821             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
822           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
823           }
824         }
825       case 148 :
826         if ((base_insn & 0xbf0) == 0x940)
827           { itype = CRISV32F_INSN_ADDO_M_B_M; goto extract_sfmt_addo_m_b_m; }
828         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
829       case 149 :
830         if ((base_insn & 0xbf0) == 0x950)
831           { itype = CRISV32F_INSN_ADDO_M_W_M; goto extract_sfmt_addo_m_w_m; }
832         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
833       case 150 :
834         if ((base_insn & 0xbf0) == 0x960)
835           { itype = CRISV32F_INSN_ADDO_M_D_M; goto extract_sfmt_addo_m_d_m; }
836         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
837       case 151 :
838         if ((base_insn & 0xff0) == 0x970)
839           { itype = CRISV32F_INSN_LAPCQ; goto extract_sfmt_lapcq; }
840         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
841       case 154 :
842         if ((base_insn & 0xbf0) == 0x9a0)
843           { itype = CRISV32F_INSN_ADDC_M; goto extract_sfmt_addc_m; }
844         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
845       case 155 :
846         if ((base_insn & 0xff0) == 0x9b0)
847           { itype = CRISV32F_INSN_JAS_R; goto extract_sfmt_jas_r; }
848         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
849       case 159 :
850         if ((base_insn & 0xfff) == 0x9f0)
851           { itype = CRISV32F_INSN_JUMP_P; goto extract_sfmt_jump_p; }
852         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
853       case 160 :
854         if ((base_insn & 0xbf0) == 0xa00)
855           { itype = CRISV32F_INSN_ADD_M_B_M; goto extract_sfmt_add_m_b_m; }
856         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
857       case 161 :
858         if ((base_insn & 0xbf0) == 0xa10)
859           { itype = CRISV32F_INSN_ADD_M_W_M; goto extract_sfmt_add_m_w_m; }
860         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
861       case 162 :
862         if ((base_insn & 0xbf0) == 0xa20)
863           { itype = CRISV32F_INSN_ADD_M_D_M; goto extract_sfmt_add_m_d_m; }
864         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
865       case 163 :
866         if ((base_insn & 0xbf0) == 0xa30)
867           { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
868         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
869       case 164 :
870         if ((base_insn & 0xbf0) == 0xa40)
871           { itype = CRISV32F_INSN_MOVE_M_B_M; goto extract_sfmt_move_m_b_m; }
872         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
873       case 165 :
874         if ((base_insn & 0xbf0) == 0xa50)
875           { itype = CRISV32F_INSN_MOVE_M_W_M; goto extract_sfmt_move_m_w_m; }
876         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
877       case 166 :
878         if ((base_insn & 0xbf0) == 0xa60)
879           { itype = CRISV32F_INSN_MOVE_M_D_M; goto extract_sfmt_move_m_d_m; }
880         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
881       case 167 : /* fall through */
882       case 231 :
883         if ((base_insn & 0xbf0) == 0xa70)
884           { itype = CRISV32F_INSN_MOVE_SPR_MV32; goto extract_sfmt_move_spr_mv32; }
885         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
886       case 168 :
887         if ((base_insn & 0xbf0) == 0xa80)
888           { itype = CRISV32F_INSN_SUB_M_B_M; goto extract_sfmt_add_m_b_m; }
889         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
890       case 169 :
891         if ((base_insn & 0xbf0) == 0xa90)
892           { itype = CRISV32F_INSN_SUB_M_W_M; goto extract_sfmt_add_m_w_m; }
893         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
894       case 170 :
895         if ((base_insn & 0xbf0) == 0xaa0)
896           { itype = CRISV32F_INSN_SUB_M_D_M; goto extract_sfmt_add_m_d_m; }
897         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
898       case 171 :
899         {
900           unsigned int val = (((insn >> 12) & (1 << 0)));
901           switch (val)
902           {
903           case 0 :
904             if ((base_insn & 0xfff0) == 0xab0)
905               { itype = CRISV32F_INSN_FIDXD; goto extract_sfmt_fidxi; }
906             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
907           case 1 :
908             if ((base_insn & 0xfff0) == 0x1ab0)
909               { itype = CRISV32F_INSN_FTAGD; goto extract_sfmt_fidxi; }
910             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
911           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
912           }
913         }
914       case 172 :
915         if ((base_insn & 0xbf0) == 0xac0)
916           { itype = CRISV32F_INSN_CMP_M_B_M; goto extract_sfmt_cmp_m_b_m; }
917         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
918       case 173 :
919         if ((base_insn & 0xbf0) == 0xad0)
920           { itype = CRISV32F_INSN_CMP_M_W_M; goto extract_sfmt_cmp_m_w_m; }
921         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
922       case 174 :
923         if ((base_insn & 0xbf0) == 0xae0)
924           { itype = CRISV32F_INSN_CMP_M_D_M; goto extract_sfmt_cmp_m_d_m; }
925         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
926       case 176 :
927         if ((base_insn & 0xbf0) == 0xb00)
928           { itype = CRISV32F_INSN_AND_M_B_M; goto extract_sfmt_and_m_b_m; }
929         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
930       case 177 :
931         if ((base_insn & 0xbf0) == 0xb10)
932           { itype = CRISV32F_INSN_AND_M_W_M; goto extract_sfmt_and_m_w_m; }
933         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
934       case 178 :
935         if ((base_insn & 0xbf0) == 0xb20)
936           { itype = CRISV32F_INSN_AND_M_D_M; goto extract_sfmt_and_m_d_m; }
937         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
938       case 179 :
939         if ((base_insn & 0xff0) == 0xb30)
940           { itype = CRISV32F_INSN_JASC_R; goto extract_sfmt_jasc_r; }
941         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
942       case 180 :
943         if ((base_insn & 0xbf0) == 0xb40)
944           { itype = CRISV32F_INSN_OR_M_B_M; goto extract_sfmt_and_m_b_m; }
945         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
946       case 181 :
947         if ((base_insn & 0xbf0) == 0xb50)
948           { itype = CRISV32F_INSN_OR_M_W_M; goto extract_sfmt_and_m_w_m; }
949         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
950       case 182 :
951         if ((base_insn & 0xbf0) == 0xb60)
952           { itype = CRISV32F_INSN_OR_M_D_M; goto extract_sfmt_and_m_d_m; }
953         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
954       case 183 :
955         if ((base_insn & 0xff0) == 0xb70)
956           { itype = CRISV32F_INSN_MOVE_R_SS; goto extract_sfmt_move_r_ss; }
957         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
958       case 184 : /* fall through */
959       case 248 :
960         if ((base_insn & 0xfbf0) == 0xb80)
961           { itype = CRISV32F_INSN_TEST_M_B_M; goto extract_sfmt_test_m_b_m; }
962         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
963       case 185 : /* fall through */
964       case 249 :
965         if ((base_insn & 0xfbf0) == 0xb90)
966           { itype = CRISV32F_INSN_TEST_M_W_M; goto extract_sfmt_test_m_w_m; }
967         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
968       case 186 : /* fall through */
969       case 250 :
970         if ((base_insn & 0xfbf0) == 0xba0)
971           { itype = CRISV32F_INSN_TEST_M_D_M; goto extract_sfmt_test_m_d_m; }
972         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
973       case 187 : /* fall through */
974       case 251 :
975         if ((base_insn & 0xbf0) == 0xbb0)
976           { itype = CRISV32F_INSN_MOVEM_M_R_V32; goto extract_sfmt_movem_m_r_v32; }
977         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
978       case 188 : /* fall through */
979       case 252 :
980         if ((base_insn & 0xbf0) == 0xbc0)
981           { itype = CRISV32F_INSN_MOVE_R_M_B_M; goto extract_sfmt_move_r_m_b_m; }
982         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
983       case 189 : /* fall through */
984       case 253 :
985         if ((base_insn & 0xbf0) == 0xbd0)
986           { itype = CRISV32F_INSN_MOVE_R_M_W_M; goto extract_sfmt_move_r_m_w_m; }
987         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
988       case 190 : /* fall through */
989       case 254 :
990         if ((base_insn & 0xbf0) == 0xbe0)
991           { itype = CRISV32F_INSN_MOVE_R_M_D_M; goto extract_sfmt_move_r_m_d_m; }
992         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
993       case 191 : /* fall through */
994       case 255 :
995         if ((base_insn & 0xbf0) == 0xbf0)
996           { itype = CRISV32F_INSN_MOVEM_R_M_V32; goto extract_sfmt_movem_r_m_v32; }
997         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
998       case 192 :
999         {
1000           unsigned int val = (((insn >> 0) & (15 << 0)));
1001           switch (val)
1002           {
1003           case 0 : /* fall through */
1004           case 1 : /* fall through */
1005           case 2 : /* fall through */
1006           case 3 : /* fall through */
1007           case 4 : /* fall through */
1008           case 5 : /* fall through */
1009           case 6 : /* fall through */
1010           case 7 : /* fall through */
1011           case 8 : /* fall through */
1012           case 9 : /* fall through */
1013           case 10 : /* fall through */
1014           case 11 : /* fall through */
1015           case 12 : /* fall through */
1016           case 13 : /* fall through */
1017           case 14 :
1018             if ((base_insn & 0xbf0) == 0x800)
1019               { itype = CRISV32F_INSN_ADDU_M_B_M; goto extract_sfmt_adds_m_b_m; }
1020             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1021           case 15 :
1022             if ((base_insn & 0xfff) == 0xc0f)
1023               { itype = CRISV32F_INSN_ADDUCBR; goto extract_sfmt_addscbr; }
1024             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1025           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1026           }
1027         }
1028       case 193 :
1029         {
1030           unsigned int val = (((insn >> 0) & (15 << 0)));
1031           switch (val)
1032           {
1033           case 0 : /* fall through */
1034           case 1 : /* fall through */
1035           case 2 : /* fall through */
1036           case 3 : /* fall through */
1037           case 4 : /* fall through */
1038           case 5 : /* fall through */
1039           case 6 : /* fall through */
1040           case 7 : /* fall through */
1041           case 8 : /* fall through */
1042           case 9 : /* fall through */
1043           case 10 : /* fall through */
1044           case 11 : /* fall through */
1045           case 12 : /* fall through */
1046           case 13 : /* fall through */
1047           case 14 :
1048             if ((base_insn & 0xbf0) == 0x810)
1049               { itype = CRISV32F_INSN_ADDU_M_W_M; goto extract_sfmt_adds_m_w_m; }
1050             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1051           case 15 :
1052             if ((base_insn & 0xfff) == 0xc1f)
1053               { itype = CRISV32F_INSN_ADDUCWR; goto extract_sfmt_addscwr; }
1054             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1055           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1056           }
1057         }
1058       case 194 :
1059         {
1060           unsigned int val = (((insn >> 0) & (15 << 0)));
1061           switch (val)
1062           {
1063           case 0 : /* fall through */
1064           case 1 : /* fall through */
1065           case 2 : /* fall through */
1066           case 3 : /* fall through */
1067           case 4 : /* fall through */
1068           case 5 : /* fall through */
1069           case 6 : /* fall through */
1070           case 7 : /* fall through */
1071           case 8 : /* fall through */
1072           case 9 : /* fall through */
1073           case 10 : /* fall through */
1074           case 11 : /* fall through */
1075           case 12 : /* fall through */
1076           case 13 : /* fall through */
1077           case 14 :
1078             if ((base_insn & 0xbf0) == 0x820)
1079               { itype = CRISV32F_INSN_ADDS_M_B_M; goto extract_sfmt_adds_m_b_m; }
1080             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1081           case 15 :
1082             if ((base_insn & 0xfff) == 0xc2f)
1083               { itype = CRISV32F_INSN_ADDSCBR; goto extract_sfmt_addscbr; }
1084             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1085           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1086           }
1087         }
1088       case 195 :
1089         {
1090           unsigned int val = (((insn >> 0) & (15 << 0)));
1091           switch (val)
1092           {
1093           case 0 : /* fall through */
1094           case 1 : /* fall through */
1095           case 2 : /* fall through */
1096           case 3 : /* fall through */
1097           case 4 : /* fall through */
1098           case 5 : /* fall through */
1099           case 6 : /* fall through */
1100           case 7 : /* fall through */
1101           case 8 : /* fall through */
1102           case 9 : /* fall through */
1103           case 10 : /* fall through */
1104           case 11 : /* fall through */
1105           case 12 : /* fall through */
1106           case 13 : /* fall through */
1107           case 14 :
1108             if ((base_insn & 0xbf0) == 0x830)
1109               { itype = CRISV32F_INSN_ADDS_M_W_M; goto extract_sfmt_adds_m_w_m; }
1110             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1111           case 15 :
1112             if ((base_insn & 0xfff) == 0xc3f)
1113               { itype = CRISV32F_INSN_ADDSCWR; goto extract_sfmt_addscwr; }
1114             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1115           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1116           }
1117         }
1118       case 196 :
1119         {
1120           unsigned int val = (((insn >> 0) & (15 << 0)));
1121           switch (val)
1122           {
1123           case 0 : /* fall through */
1124           case 1 : /* fall through */
1125           case 2 : /* fall through */
1126           case 3 : /* fall through */
1127           case 4 : /* fall through */
1128           case 5 : /* fall through */
1129           case 6 : /* fall through */
1130           case 7 : /* fall through */
1131           case 8 : /* fall through */
1132           case 9 : /* fall through */
1133           case 10 : /* fall through */
1134           case 11 : /* fall through */
1135           case 12 : /* fall through */
1136           case 13 : /* fall through */
1137           case 14 :
1138             if ((base_insn & 0xbf0) == 0x840)
1139               { itype = CRISV32F_INSN_MOVU_M_B_M; goto extract_sfmt_movs_m_b_m; }
1140             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1141           case 15 :
1142             if ((base_insn & 0xfff) == 0xc4f)
1143               { itype = CRISV32F_INSN_MOVUCBR; goto extract_sfmt_movucbr; }
1144             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1145           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1146           }
1147         }
1148       case 197 :
1149         {
1150           unsigned int val = (((insn >> 0) & (15 << 0)));
1151           switch (val)
1152           {
1153           case 0 : /* fall through */
1154           case 1 : /* fall through */
1155           case 2 : /* fall through */
1156           case 3 : /* fall through */
1157           case 4 : /* fall through */
1158           case 5 : /* fall through */
1159           case 6 : /* fall through */
1160           case 7 : /* fall through */
1161           case 8 : /* fall through */
1162           case 9 : /* fall through */
1163           case 10 : /* fall through */
1164           case 11 : /* fall through */
1165           case 12 : /* fall through */
1166           case 13 : /* fall through */
1167           case 14 :
1168             if ((base_insn & 0xbf0) == 0x850)
1169               { itype = CRISV32F_INSN_MOVU_M_W_M; goto extract_sfmt_movs_m_w_m; }
1170             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1171           case 15 :
1172             if ((base_insn & 0xfff) == 0xc5f)
1173               { itype = CRISV32F_INSN_MOVUCWR; goto extract_sfmt_movucwr; }
1174             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1175           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1176           }
1177         }
1178       case 198 :
1179         {
1180           unsigned int val = (((insn >> 0) & (15 << 0)));
1181           switch (val)
1182           {
1183           case 0 : /* fall through */
1184           case 1 : /* fall through */
1185           case 2 : /* fall through */
1186           case 3 : /* fall through */
1187           case 4 : /* fall through */
1188           case 5 : /* fall through */
1189           case 6 : /* fall through */
1190           case 7 : /* fall through */
1191           case 8 : /* fall through */
1192           case 9 : /* fall through */
1193           case 10 : /* fall through */
1194           case 11 : /* fall through */
1195           case 12 : /* fall through */
1196           case 13 : /* fall through */
1197           case 14 :
1198             if ((base_insn & 0xbf0) == 0x860)
1199               { itype = CRISV32F_INSN_MOVS_M_B_M; goto extract_sfmt_movs_m_b_m; }
1200             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1201           case 15 :
1202             if ((base_insn & 0xfff) == 0xc6f)
1203               { itype = CRISV32F_INSN_MOVSCBR; goto extract_sfmt_movscbr; }
1204             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1205           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1206           }
1207         }
1208       case 199 :
1209         {
1210           unsigned int val = (((insn >> 0) & (15 << 0)));
1211           switch (val)
1212           {
1213           case 0 : /* fall through */
1214           case 1 : /* fall through */
1215           case 2 : /* fall through */
1216           case 3 : /* fall through */
1217           case 4 : /* fall through */
1218           case 5 : /* fall through */
1219           case 6 : /* fall through */
1220           case 7 : /* fall through */
1221           case 8 : /* fall through */
1222           case 9 : /* fall through */
1223           case 10 : /* fall through */
1224           case 11 : /* fall through */
1225           case 12 : /* fall through */
1226           case 13 : /* fall through */
1227           case 14 :
1228             if ((base_insn & 0xbf0) == 0x870)
1229               { itype = CRISV32F_INSN_MOVS_M_W_M; goto extract_sfmt_movs_m_w_m; }
1230             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1231           case 15 :
1232             if ((base_insn & 0xfff) == 0xc7f)
1233               { itype = CRISV32F_INSN_MOVSCWR; goto extract_sfmt_movscwr; }
1234             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1235           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1236           }
1237         }
1238       case 200 :
1239         {
1240           unsigned int val = (((insn >> 0) & (15 << 0)));
1241           switch (val)
1242           {
1243           case 0 : /* fall through */
1244           case 1 : /* fall through */
1245           case 2 : /* fall through */
1246           case 3 : /* fall through */
1247           case 4 : /* fall through */
1248           case 5 : /* fall through */
1249           case 6 : /* fall through */
1250           case 7 : /* fall through */
1251           case 8 : /* fall through */
1252           case 9 : /* fall through */
1253           case 10 : /* fall through */
1254           case 11 : /* fall through */
1255           case 12 : /* fall through */
1256           case 13 : /* fall through */
1257           case 14 :
1258             if ((base_insn & 0xbf0) == 0x880)
1259               { itype = CRISV32F_INSN_SUBU_M_B_M; goto extract_sfmt_adds_m_b_m; }
1260             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1261           case 15 :
1262             if ((base_insn & 0xfff) == 0xc8f)
1263               { itype = CRISV32F_INSN_SUBUCBR; goto extract_sfmt_addscbr; }
1264             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1265           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1266           }
1267         }
1268       case 201 :
1269         {
1270           unsigned int val = (((insn >> 0) & (15 << 0)));
1271           switch (val)
1272           {
1273           case 0 : /* fall through */
1274           case 1 : /* fall through */
1275           case 2 : /* fall through */
1276           case 3 : /* fall through */
1277           case 4 : /* fall through */
1278           case 5 : /* fall through */
1279           case 6 : /* fall through */
1280           case 7 : /* fall through */
1281           case 8 : /* fall through */
1282           case 9 : /* fall through */
1283           case 10 : /* fall through */
1284           case 11 : /* fall through */
1285           case 12 : /* fall through */
1286           case 13 : /* fall through */
1287           case 14 :
1288             if ((base_insn & 0xbf0) == 0x890)
1289               { itype = CRISV32F_INSN_SUBU_M_W_M; goto extract_sfmt_adds_m_w_m; }
1290             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1291           case 15 :
1292             if ((base_insn & 0xfff) == 0xc9f)
1293               { itype = CRISV32F_INSN_SUBUCWR; goto extract_sfmt_addscwr; }
1294             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1295           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1296           }
1297         }
1298       case 202 :
1299         {
1300           unsigned int val = (((insn >> 0) & (15 << 0)));
1301           switch (val)
1302           {
1303           case 0 : /* fall through */
1304           case 1 : /* fall through */
1305           case 2 : /* fall through */
1306           case 3 : /* fall through */
1307           case 4 : /* fall through */
1308           case 5 : /* fall through */
1309           case 6 : /* fall through */
1310           case 7 : /* fall through */
1311           case 8 : /* fall through */
1312           case 9 : /* fall through */
1313           case 10 : /* fall through */
1314           case 11 : /* fall through */
1315           case 12 : /* fall through */
1316           case 13 : /* fall through */
1317           case 14 :
1318             if ((base_insn & 0xbf0) == 0x8a0)
1319               { itype = CRISV32F_INSN_SUBS_M_B_M; goto extract_sfmt_adds_m_b_m; }
1320             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1321           case 15 :
1322             if ((base_insn & 0xfff) == 0xcaf)
1323               { itype = CRISV32F_INSN_SUBSCBR; goto extract_sfmt_addscbr; }
1324             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1325           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1326           }
1327         }
1328       case 203 :
1329         {
1330           unsigned int val = (((insn >> 0) & (15 << 0)));
1331           switch (val)
1332           {
1333           case 0 : /* fall through */
1334           case 1 : /* fall through */
1335           case 2 : /* fall through */
1336           case 3 : /* fall through */
1337           case 4 : /* fall through */
1338           case 5 : /* fall through */
1339           case 6 : /* fall through */
1340           case 7 : /* fall through */
1341           case 8 : /* fall through */
1342           case 9 : /* fall through */
1343           case 10 : /* fall through */
1344           case 11 : /* fall through */
1345           case 12 : /* fall through */
1346           case 13 : /* fall through */
1347           case 14 :
1348             if ((base_insn & 0xbf0) == 0x8b0)
1349               { itype = CRISV32F_INSN_SUBS_M_W_M; goto extract_sfmt_adds_m_w_m; }
1350             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1351           case 15 :
1352             if ((base_insn & 0xfff) == 0xcbf)
1353               { itype = CRISV32F_INSN_SUBSCWR; goto extract_sfmt_addscwr; }
1354             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1355           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1356           }
1357         }
1358       case 204 :
1359         {
1360           unsigned int val = (((insn >> 0) & (15 << 0)));
1361           switch (val)
1362           {
1363           case 0 : /* fall through */
1364           case 1 : /* fall through */
1365           case 2 : /* fall through */
1366           case 3 : /* fall through */
1367           case 4 : /* fall through */
1368           case 5 : /* fall through */
1369           case 6 : /* fall through */
1370           case 7 : /* fall through */
1371           case 8 : /* fall through */
1372           case 9 : /* fall through */
1373           case 10 : /* fall through */
1374           case 11 : /* fall through */
1375           case 12 : /* fall through */
1376           case 13 : /* fall through */
1377           case 14 :
1378             if ((base_insn & 0xbf0) == 0x8c0)
1379               { itype = CRISV32F_INSN_CMPU_M_B_M; goto extract_sfmt_cmp_m_b_m; }
1380             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1381           case 15 :
1382             if ((base_insn & 0xfff) == 0xccf)
1383               { itype = CRISV32F_INSN_CMPUCBR; goto extract_sfmt_cmpucbr; }
1384             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1385           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1386           }
1387         }
1388       case 205 :
1389         {
1390           unsigned int val = (((insn >> 0) & (15 << 0)));
1391           switch (val)
1392           {
1393           case 0 : /* fall through */
1394           case 1 : /* fall through */
1395           case 2 : /* fall through */
1396           case 3 : /* fall through */
1397           case 4 : /* fall through */
1398           case 5 : /* fall through */
1399           case 6 : /* fall through */
1400           case 7 : /* fall through */
1401           case 8 : /* fall through */
1402           case 9 : /* fall through */
1403           case 10 : /* fall through */
1404           case 11 : /* fall through */
1405           case 12 : /* fall through */
1406           case 13 : /* fall through */
1407           case 14 :
1408             if ((base_insn & 0xbf0) == 0x8d0)
1409               { itype = CRISV32F_INSN_CMPU_M_W_M; goto extract_sfmt_cmp_m_w_m; }
1410             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1411           case 15 :
1412             if ((base_insn & 0xfff) == 0xcdf)
1413               { itype = CRISV32F_INSN_CMPUCWR; goto extract_sfmt_cmpucwr; }
1414             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1415           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1416           }
1417         }
1418       case 206 :
1419         {
1420           unsigned int val = (((insn >> 0) & (15 << 0)));
1421           switch (val)
1422           {
1423           case 0 : /* fall through */
1424           case 1 : /* fall through */
1425           case 2 : /* fall through */
1426           case 3 : /* fall through */
1427           case 4 : /* fall through */
1428           case 5 : /* fall through */
1429           case 6 : /* fall through */
1430           case 7 : /* fall through */
1431           case 8 : /* fall through */
1432           case 9 : /* fall through */
1433           case 10 : /* fall through */
1434           case 11 : /* fall through */
1435           case 12 : /* fall through */
1436           case 13 : /* fall through */
1437           case 14 :
1438             if ((base_insn & 0xbf0) == 0x8e0)
1439               { itype = CRISV32F_INSN_CMPS_M_B_M; goto extract_sfmt_cmp_m_b_m; }
1440             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1441           case 15 :
1442             if ((base_insn & 0xfff) == 0xcef)
1443               { itype = CRISV32F_INSN_CMPSCBR; goto extract_sfmt_cmpcbr; }
1444             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1445           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1446           }
1447         }
1448       case 207 :
1449         {
1450           unsigned int val = (((insn >> 0) & (15 << 0)));
1451           switch (val)
1452           {
1453           case 0 : /* fall through */
1454           case 1 : /* fall through */
1455           case 2 : /* fall through */
1456           case 3 : /* fall through */
1457           case 4 : /* fall through */
1458           case 5 : /* fall through */
1459           case 6 : /* fall through */
1460           case 7 : /* fall through */
1461           case 8 : /* fall through */
1462           case 9 : /* fall through */
1463           case 10 : /* fall through */
1464           case 11 : /* fall through */
1465           case 12 : /* fall through */
1466           case 13 : /* fall through */
1467           case 14 :
1468             if ((base_insn & 0xbf0) == 0x8f0)
1469               { itype = CRISV32F_INSN_CMPS_M_W_M; goto extract_sfmt_cmp_m_w_m; }
1470             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1471           case 15 :
1472             if ((base_insn & 0xfff) == 0xcff)
1473               { itype = CRISV32F_INSN_CMPSCWR; goto extract_sfmt_cmpcwr; }
1474             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1475           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1476           }
1477         }
1478       case 208 :
1479         if ((base_insn & 0xff0) == 0xd00)
1480           { itype = CRISV32F_INSN_MULS_B; goto extract_sfmt_muls_b; }
1481         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1482       case 209 :
1483         if ((base_insn & 0xff0) == 0xd10)
1484           { itype = CRISV32F_INSN_MULS_W; goto extract_sfmt_muls_b; }
1485         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1486       case 210 :
1487         if ((base_insn & 0xff0) == 0xd20)
1488           { itype = CRISV32F_INSN_MULS_D; goto extract_sfmt_muls_b; }
1489         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1490       case 211 :
1491         {
1492           unsigned int val = (((insn >> 12) & (1 << 0)));
1493           switch (val)
1494           {
1495           case 0 :
1496             if ((base_insn & 0xfff0) == 0xd30)
1497               { itype = CRISV32F_INSN_FIDXI; goto extract_sfmt_fidxi; }
1498             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1499           case 1 :
1500             if ((base_insn & 0xfff0) == 0x1d30)
1501               { itype = CRISV32F_INSN_FTAGI; goto extract_sfmt_fidxi; }
1502             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1503           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1504           }
1505         }
1506       case 212 :
1507         {
1508           unsigned int val = (((insn >> 0) & (15 << 0)));
1509           switch (val)
1510           {
1511           case 0 : /* fall through */
1512           case 1 : /* fall through */
1513           case 2 : /* fall through */
1514           case 3 : /* fall through */
1515           case 4 : /* fall through */
1516           case 5 : /* fall through */
1517           case 6 : /* fall through */
1518           case 7 : /* fall through */
1519           case 8 : /* fall through */
1520           case 9 : /* fall through */
1521           case 10 : /* fall through */
1522           case 11 : /* fall through */
1523           case 12 : /* fall through */
1524           case 13 : /* fall through */
1525           case 14 :
1526             if ((base_insn & 0xbf0) == 0x940)
1527               { itype = CRISV32F_INSN_ADDO_M_B_M; goto extract_sfmt_addo_m_b_m; }
1528             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1529           case 15 :
1530             if ((base_insn & 0xfff) == 0xd4f)
1531               { itype = CRISV32F_INSN_ADDO_CB; goto extract_sfmt_addo_cb; }
1532             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1533           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1534           }
1535         }
1536       case 213 :
1537         {
1538           unsigned int val = (((insn >> 0) & (15 << 0)));
1539           switch (val)
1540           {
1541           case 0 : /* fall through */
1542           case 1 : /* fall through */
1543           case 2 : /* fall through */
1544           case 3 : /* fall through */
1545           case 4 : /* fall through */
1546           case 5 : /* fall through */
1547           case 6 : /* fall through */
1548           case 7 : /* fall through */
1549           case 8 : /* fall through */
1550           case 9 : /* fall through */
1551           case 10 : /* fall through */
1552           case 11 : /* fall through */
1553           case 12 : /* fall through */
1554           case 13 : /* fall through */
1555           case 14 :
1556             if ((base_insn & 0xbf0) == 0x950)
1557               { itype = CRISV32F_INSN_ADDO_M_W_M; goto extract_sfmt_addo_m_w_m; }
1558             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1559           case 15 :
1560             if ((base_insn & 0xfff) == 0xd5f)
1561               { itype = CRISV32F_INSN_ADDO_CW; goto extract_sfmt_addo_cw; }
1562             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1563           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1564           }
1565         }
1566       case 214 :
1567         {
1568           unsigned int val = (((insn >> 0) & (15 << 0)));
1569           switch (val)
1570           {
1571           case 0 : /* fall through */
1572           case 1 : /* fall through */
1573           case 2 : /* fall through */
1574           case 3 : /* fall through */
1575           case 4 : /* fall through */
1576           case 5 : /* fall through */
1577           case 6 : /* fall through */
1578           case 7 : /* fall through */
1579           case 8 : /* fall through */
1580           case 9 : /* fall through */
1581           case 10 : /* fall through */
1582           case 11 : /* fall through */
1583           case 12 : /* fall through */
1584           case 13 : /* fall through */
1585           case 14 :
1586             if ((base_insn & 0xbf0) == 0x960)
1587               { itype = CRISV32F_INSN_ADDO_M_D_M; goto extract_sfmt_addo_m_d_m; }
1588             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1589           case 15 :
1590             if ((base_insn & 0xfff) == 0xd6f)
1591               { itype = CRISV32F_INSN_ADDO_CD; goto extract_sfmt_addo_cd; }
1592             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1593           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1594           }
1595         }
1596       case 215 :
1597         if ((base_insn & 0xfff) == 0xd7f)
1598           { itype = CRISV32F_INSN_LAPC_D; goto extract_sfmt_lapc_d; }
1599         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1600       case 218 :
1601         {
1602           unsigned int val = (((insn >> 0) & (15 << 0)));
1603           switch (val)
1604           {
1605           case 0 : /* fall through */
1606           case 1 : /* fall through */
1607           case 2 : /* fall through */
1608           case 3 : /* fall through */
1609           case 4 : /* fall through */
1610           case 5 : /* fall through */
1611           case 6 : /* fall through */
1612           case 7 : /* fall through */
1613           case 8 : /* fall through */
1614           case 9 : /* fall through */
1615           case 10 : /* fall through */
1616           case 11 : /* fall through */
1617           case 12 : /* fall through */
1618           case 13 : /* fall through */
1619           case 14 :
1620             if ((base_insn & 0xbf0) == 0x9a0)
1621               { itype = CRISV32F_INSN_ADDC_M; goto extract_sfmt_addc_m; }
1622             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1623           case 15 :
1624             if ((base_insn & 0xfff) == 0xdaf)
1625               { itype = CRISV32F_INSN_ADDC_C; goto extract_sfmt_addcdr; }
1626             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1627           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1628           }
1629         }
1630       case 219 :
1631         if ((base_insn & 0xfff) == 0xdbf)
1632           { itype = CRISV32F_INSN_JAS_C; goto extract_sfmt_jas_c; }
1633         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1634       case 220 :
1635         if ((base_insn & 0xfff) == 0xdcf)
1636           { itype = CRISV32F_INSN_BOUND_CB; goto extract_sfmt_bound_cb; }
1637         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1638       case 221 :
1639         if ((base_insn & 0xfff) == 0xddf)
1640           { itype = CRISV32F_INSN_BOUND_CW; goto extract_sfmt_bound_cw; }
1641         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1642       case 222 :
1643         if ((base_insn & 0xfff) == 0xdef)
1644           { itype = CRISV32F_INSN_BOUND_CD; goto extract_sfmt_bound_cd; }
1645         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1646       case 223 :
1647         {
1648           unsigned int val = (((insn >> 12) & (15 << 0)));
1649           switch (val)
1650           {
1651           case 0 : /* fall through */
1652           case 1 : /* fall through */
1653           case 2 : /* fall through */
1654           case 3 : /* fall through */
1655           case 4 : /* fall through */
1656           case 5 : /* fall through */
1657           case 6 : /* fall through */
1658           case 7 : /* fall through */
1659           case 8 : /* fall through */
1660           case 9 : /* fall through */
1661           case 10 : /* fall through */
1662           case 11 : /* fall through */
1663           case 12 : /* fall through */
1664           case 13 : /* fall through */
1665           case 15 :
1666             if ((base_insn & 0xfff) == 0xdff)
1667               { itype = CRISV32F_INSN_BCC_W; goto extract_sfmt_bcc_w; }
1668             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1669           case 14 :
1670             if ((base_insn & 0xffff) == 0xedff)
1671               { itype = CRISV32F_INSN_BA_W; goto extract_sfmt_ba_w; }
1672             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1673           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1674           }
1675         }
1676       case 224 :
1677         {
1678           unsigned int val = (((insn >> 0) & (15 << 0)));
1679           switch (val)
1680           {
1681           case 0 : /* fall through */
1682           case 1 : /* fall through */
1683           case 2 : /* fall through */
1684           case 3 : /* fall through */
1685           case 4 : /* fall through */
1686           case 5 : /* fall through */
1687           case 6 : /* fall through */
1688           case 7 : /* fall through */
1689           case 8 : /* fall through */
1690           case 9 : /* fall through */
1691           case 10 : /* fall through */
1692           case 11 : /* fall through */
1693           case 12 : /* fall through */
1694           case 13 : /* fall through */
1695           case 14 :
1696             if ((base_insn & 0xbf0) == 0xa00)
1697               { itype = CRISV32F_INSN_ADD_M_B_M; goto extract_sfmt_add_m_b_m; }
1698             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1699           case 15 :
1700             if ((base_insn & 0xfff) == 0xe0f)
1701               { itype = CRISV32F_INSN_ADDCBR; goto extract_sfmt_addcbr; }
1702             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1703           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1704           }
1705         }
1706       case 225 :
1707         {
1708           unsigned int val = (((insn >> 0) & (15 << 0)));
1709           switch (val)
1710           {
1711           case 0 : /* fall through */
1712           case 1 : /* fall through */
1713           case 2 : /* fall through */
1714           case 3 : /* fall through */
1715           case 4 : /* fall through */
1716           case 5 : /* fall through */
1717           case 6 : /* fall through */
1718           case 7 : /* fall through */
1719           case 8 : /* fall through */
1720           case 9 : /* fall through */
1721           case 10 : /* fall through */
1722           case 11 : /* fall through */
1723           case 12 : /* fall through */
1724           case 13 : /* fall through */
1725           case 14 :
1726             if ((base_insn & 0xbf0) == 0xa10)
1727               { itype = CRISV32F_INSN_ADD_M_W_M; goto extract_sfmt_add_m_w_m; }
1728             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1729           case 15 :
1730             if ((base_insn & 0xfff) == 0xe1f)
1731               { itype = CRISV32F_INSN_ADDCWR; goto extract_sfmt_addcwr; }
1732             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1733           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1734           }
1735         }
1736       case 226 :
1737         {
1738           unsigned int val = (((insn >> 0) & (15 << 0)));
1739           switch (val)
1740           {
1741           case 0 : /* fall through */
1742           case 1 : /* fall through */
1743           case 2 : /* fall through */
1744           case 3 : /* fall through */
1745           case 4 : /* fall through */
1746           case 5 : /* fall through */
1747           case 6 : /* fall through */
1748           case 7 : /* fall through */
1749           case 8 : /* fall through */
1750           case 9 : /* fall through */
1751           case 10 : /* fall through */
1752           case 11 : /* fall through */
1753           case 12 : /* fall through */
1754           case 13 : /* fall through */
1755           case 14 :
1756             if ((base_insn & 0xbf0) == 0xa20)
1757               { itype = CRISV32F_INSN_ADD_M_D_M; goto extract_sfmt_add_m_d_m; }
1758             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1759           case 15 :
1760             if ((base_insn & 0xfff) == 0xe2f)
1761               { itype = CRISV32F_INSN_ADDCDR; goto extract_sfmt_addcdr; }
1762             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1763           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1764           }
1765         }
1766       case 227 :
1767         {
1768           unsigned int val = (((insn >> 12) & (15 << 0)));
1769           switch (val)
1770           {
1771           case 0 : /* fall through */
1772           case 1 : /* fall through */
1773           case 4 : /* fall through */
1774           case 8 :
1775             if ((base_insn & 0xbf0) == 0xa30)
1776               { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
1777             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1778           case 2 :
1779             {
1780               unsigned int val = (((insn >> 0) & (15 << 0)));
1781               switch (val)
1782               {
1783               case 0 : /* fall through */
1784               case 1 : /* fall through */
1785               case 2 : /* fall through */
1786               case 3 : /* fall through */
1787               case 4 : /* fall through */
1788               case 5 : /* fall through */
1789               case 6 : /* fall through */
1790               case 7 : /* fall through */
1791               case 8 : /* fall through */
1792               case 9 : /* fall through */
1793               case 10 : /* fall through */
1794               case 11 : /* fall through */
1795               case 12 : /* fall through */
1796               case 13 : /* fall through */
1797               case 14 :
1798                 if ((base_insn & 0xbf0) == 0xa30)
1799                   { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
1800                 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1801               case 15 :
1802                 if ((base_insn & 0xffff) == 0x2e3f)
1803                   { itype = CRISV32F_INSN_MOVE_C_SPRV32_P2; goto extract_sfmt_move_c_sprv32_p2; }
1804                 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1805               default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1806               }
1807             }
1808           case 3 :
1809             {
1810               unsigned int val = (((insn >> 0) & (15 << 0)));
1811               switch (val)
1812               {
1813               case 0 : /* fall through */
1814               case 1 : /* fall through */
1815               case 2 : /* fall through */
1816               case 3 : /* fall through */
1817               case 4 : /* fall through */
1818               case 5 : /* fall through */
1819               case 6 : /* fall through */
1820               case 7 : /* fall through */
1821               case 8 : /* fall through */
1822               case 9 : /* fall through */
1823               case 10 : /* fall through */
1824               case 11 : /* fall through */
1825               case 12 : /* fall through */
1826               case 13 : /* fall through */
1827               case 14 :
1828                 if ((base_insn & 0xbf0) == 0xa30)
1829                   { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
1830                 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1831               case 15 :
1832                 if ((base_insn & 0xffff) == 0x3e3f)
1833                   { itype = CRISV32F_INSN_MOVE_C_SPRV32_P3; goto extract_sfmt_move_c_sprv32_p2; }
1834                 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1835               default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1836               }
1837             }
1838           case 5 :
1839             {
1840               unsigned int val = (((insn >> 0) & (15 << 0)));
1841               switch (val)
1842               {
1843               case 0 : /* fall through */
1844               case 1 : /* fall through */
1845               case 2 : /* fall through */
1846               case 3 : /* fall through */
1847               case 4 : /* fall through */
1848               case 5 : /* fall through */
1849               case 6 : /* fall through */
1850               case 7 : /* fall through */
1851               case 8 : /* fall through */
1852               case 9 : /* fall through */
1853               case 10 : /* fall through */
1854               case 11 : /* fall through */
1855               case 12 : /* fall through */
1856               case 13 : /* fall through */
1857               case 14 :
1858                 if ((base_insn & 0xbf0) == 0xa30)
1859                   { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
1860                 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1861               case 15 :
1862                 if ((base_insn & 0xffff) == 0x5e3f)
1863                   { itype = CRISV32F_INSN_MOVE_C_SPRV32_P5; goto extract_sfmt_move_c_sprv32_p2; }
1864                 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1865               default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1866               }
1867             }
1868           case 6 :
1869             {
1870               unsigned int val = (((insn >> 0) & (15 << 0)));
1871               switch (val)
1872               {
1873               case 0 : /* fall through */
1874               case 1 : /* fall through */
1875               case 2 : /* fall through */
1876               case 3 : /* fall through */
1877               case 4 : /* fall through */
1878               case 5 : /* fall through */
1879               case 6 : /* fall through */
1880               case 7 : /* fall through */
1881               case 8 : /* fall through */
1882               case 9 : /* fall through */
1883               case 10 : /* fall through */
1884               case 11 : /* fall through */
1885               case 12 : /* fall through */
1886               case 13 : /* fall through */
1887               case 14 :
1888                 if ((base_insn & 0xbf0) == 0xa30)
1889                   { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
1890                 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1891               case 15 :
1892                 if ((base_insn & 0xffff) == 0x6e3f)
1893                   { itype = CRISV32F_INSN_MOVE_C_SPRV32_P6; goto extract_sfmt_move_c_sprv32_p2; }
1894                 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1895               default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1896               }
1897             }
1898           case 7 :
1899             {
1900               unsigned int val = (((insn >> 0) & (15 << 0)));
1901               switch (val)
1902               {
1903               case 0 : /* fall through */
1904               case 1 : /* fall through */
1905               case 2 : /* fall through */
1906               case 3 : /* fall through */
1907               case 4 : /* fall through */
1908               case 5 : /* fall through */
1909               case 6 : /* fall through */
1910               case 7 : /* fall through */
1911               case 8 : /* fall through */
1912               case 9 : /* fall through */
1913               case 10 : /* fall through */
1914               case 11 : /* fall through */
1915               case 12 : /* fall through */
1916               case 13 : /* fall through */
1917               case 14 :
1918                 if ((base_insn & 0xbf0) == 0xa30)
1919                   { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
1920                 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1921               case 15 :
1922                 if ((base_insn & 0xffff) == 0x7e3f)
1923                   { itype = CRISV32F_INSN_MOVE_C_SPRV32_P7; goto extract_sfmt_move_c_sprv32_p2; }
1924                 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1925               default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1926               }
1927             }
1928           case 9 :
1929             {
1930               unsigned int val = (((insn >> 0) & (15 << 0)));
1931               switch (val)
1932               {
1933               case 0 : /* fall through */
1934               case 1 : /* fall through */
1935               case 2 : /* fall through */
1936               case 3 : /* fall through */
1937               case 4 : /* fall through */
1938               case 5 : /* fall through */
1939               case 6 : /* fall through */
1940               case 7 : /* fall through */
1941               case 8 : /* fall through */
1942               case 9 : /* fall through */
1943               case 10 : /* fall through */
1944               case 11 : /* fall through */
1945               case 12 : /* fall through */
1946               case 13 : /* fall through */
1947               case 14 :
1948                 if ((base_insn & 0xbf0) == 0xa30)
1949                   { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
1950                 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1951               case 15 :
1952                 if ((base_insn & 0xffff) == 0x9e3f)
1953                   { itype = CRISV32F_INSN_MOVE_C_SPRV32_P9; goto extract_sfmt_move_c_sprv32_p2; }
1954                 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1955               default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1956               }
1957             }
1958           case 10 :
1959             {
1960               unsigned int val = (((insn >> 0) & (15 << 0)));
1961               switch (val)
1962               {
1963               case 0 : /* fall through */
1964               case 1 : /* fall through */
1965               case 2 : /* fall through */
1966               case 3 : /* fall through */
1967               case 4 : /* fall through */
1968               case 5 : /* fall through */
1969               case 6 : /* fall through */
1970               case 7 : /* fall through */
1971               case 8 : /* fall through */
1972               case 9 : /* fall through */
1973               case 10 : /* fall through */
1974               case 11 : /* fall through */
1975               case 12 : /* fall through */
1976               case 13 : /* fall through */
1977               case 14 :
1978                 if ((base_insn & 0xbf0) == 0xa30)
1979                   { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
1980                 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1981               case 15 :
1982                 if ((base_insn & 0xffff) == 0xae3f)
1983                   { itype = CRISV32F_INSN_MOVE_C_SPRV32_P10; goto extract_sfmt_move_c_sprv32_p2; }
1984                 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1985               default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1986               }
1987             }
1988           case 11 :
1989             {
1990               unsigned int val = (((insn >> 0) & (15 << 0)));
1991               switch (val)
1992               {
1993               case 0 : /* fall through */
1994               case 1 : /* fall through */
1995               case 2 : /* fall through */
1996               case 3 : /* fall through */
1997               case 4 : /* fall through */
1998               case 5 : /* fall through */
1999               case 6 : /* fall through */
2000               case 7 : /* fall through */
2001               case 8 : /* fall through */
2002               case 9 : /* fall through */
2003               case 10 : /* fall through */
2004               case 11 : /* fall through */
2005               case 12 : /* fall through */
2006               case 13 : /* fall through */
2007               case 14 :
2008                 if ((base_insn & 0xbf0) == 0xa30)
2009                   { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
2010                 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2011               case 15 :
2012                 if ((base_insn & 0xffff) == 0xbe3f)
2013                   { itype = CRISV32F_INSN_MOVE_C_SPRV32_P11; goto extract_sfmt_move_c_sprv32_p2; }
2014                 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2015               default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2016               }
2017             }
2018           case 12 :
2019             {
2020               unsigned int val = (((insn >> 0) & (15 << 0)));
2021               switch (val)
2022               {
2023               case 0 : /* fall through */
2024               case 1 : /* fall through */
2025               case 2 : /* fall through */
2026               case 3 : /* fall through */
2027               case 4 : /* fall through */
2028               case 5 : /* fall through */
2029               case 6 : /* fall through */
2030               case 7 : /* fall through */
2031               case 8 : /* fall through */
2032               case 9 : /* fall through */
2033               case 10 : /* fall through */
2034               case 11 : /* fall through */
2035               case 12 : /* fall through */
2036               case 13 : /* fall through */
2037               case 14 :
2038                 if ((base_insn & 0xbf0) == 0xa30)
2039                   { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
2040                 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2041               case 15 :
2042                 if ((base_insn & 0xffff) == 0xce3f)
2043                   { itype = CRISV32F_INSN_MOVE_C_SPRV32_P12; goto extract_sfmt_move_c_sprv32_p2; }
2044                 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2045               default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2046               }
2047             }
2048           case 13 :
2049             {
2050               unsigned int val = (((insn >> 0) & (15 << 0)));
2051               switch (val)
2052               {
2053               case 0 : /* fall through */
2054               case 1 : /* fall through */
2055               case 2 : /* fall through */
2056               case 3 : /* fall through */
2057               case 4 : /* fall through */
2058               case 5 : /* fall through */
2059               case 6 : /* fall through */
2060               case 7 : /* fall through */
2061               case 8 : /* fall through */
2062               case 9 : /* fall through */
2063               case 10 : /* fall through */
2064               case 11 : /* fall through */
2065               case 12 : /* fall through */
2066               case 13 : /* fall through */
2067               case 14 :
2068                 if ((base_insn & 0xbf0) == 0xa30)
2069                   { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
2070                 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2071               case 15 :
2072                 if ((base_insn & 0xffff) == 0xde3f)
2073                   { itype = CRISV32F_INSN_MOVE_C_SPRV32_P13; goto extract_sfmt_move_c_sprv32_p2; }
2074                 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2075               default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2076               }
2077             }
2078           case 14 :
2079             {
2080               unsigned int val = (((insn >> 0) & (15 << 0)));
2081               switch (val)
2082               {
2083               case 0 : /* fall through */
2084               case 1 : /* fall through */
2085               case 2 : /* fall through */
2086               case 3 : /* fall through */
2087               case 4 : /* fall through */
2088               case 5 : /* fall through */
2089               case 6 : /* fall through */
2090               case 7 : /* fall through */
2091               case 8 : /* fall through */
2092               case 9 : /* fall through */
2093               case 10 : /* fall through */
2094               case 11 : /* fall through */
2095               case 12 : /* fall through */
2096               case 13 : /* fall through */
2097               case 14 :
2098                 if ((base_insn & 0xbf0) == 0xa30)
2099                   { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
2100                 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2101               case 15 :
2102                 if ((base_insn & 0xffff) == 0xee3f)
2103                   { itype = CRISV32F_INSN_MOVE_C_SPRV32_P14; goto extract_sfmt_move_c_sprv32_p2; }
2104                 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2105               default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2106               }
2107             }
2108           case 15 :
2109             {
2110               unsigned int val = (((insn >> 0) & (15 << 0)));
2111               switch (val)
2112               {
2113               case 0 : /* fall through */
2114               case 1 : /* fall through */
2115               case 2 : /* fall through */
2116               case 3 : /* fall through */
2117               case 4 : /* fall through */
2118               case 5 : /* fall through */
2119               case 6 : /* fall through */
2120               case 7 : /* fall through */
2121               case 8 : /* fall through */
2122               case 9 : /* fall through */
2123               case 10 : /* fall through */
2124               case 11 : /* fall through */
2125               case 12 : /* fall through */
2126               case 13 : /* fall through */
2127               case 14 :
2128                 if ((base_insn & 0xbf0) == 0xa30)
2129                   { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
2130                 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2131               case 15 :
2132                 if ((base_insn & 0xffff) == 0xfe3f)
2133                   { itype = CRISV32F_INSN_MOVE_C_SPRV32_P15; goto extract_sfmt_move_c_sprv32_p2; }
2134                 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2135               default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2136               }
2137             }
2138           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2139           }
2140         }
2141       case 228 :
2142         {
2143           unsigned int val = (((insn >> 0) & (15 << 0)));
2144           switch (val)
2145           {
2146           case 0 : /* fall through */
2147           case 1 : /* fall through */
2148           case 2 : /* fall through */
2149           case 3 : /* fall through */
2150           case 4 : /* fall through */
2151           case 5 : /* fall through */
2152           case 6 : /* fall through */
2153           case 7 : /* fall through */
2154           case 8 : /* fall through */
2155           case 9 : /* fall through */
2156           case 10 : /* fall through */
2157           case 11 : /* fall through */
2158           case 12 : /* fall through */
2159           case 13 : /* fall through */
2160           case 14 :
2161             if ((base_insn & 0xbf0) == 0xa40)
2162               { itype = CRISV32F_INSN_MOVE_M_B_M; goto extract_sfmt_move_m_b_m; }
2163             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2164           case 15 :
2165             if ((base_insn & 0xfff) == 0xe4f)
2166               { itype = CRISV32F_INSN_MOVECBR; goto extract_sfmt_movecbr; }
2167             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2168           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2169           }
2170         }
2171       case 229 :
2172         {
2173           unsigned int val = (((insn >> 0) & (15 << 0)));
2174           switch (val)
2175           {
2176           case 0 : /* fall through */
2177           case 1 : /* fall through */
2178           case 2 : /* fall through */
2179           case 3 : /* fall through */
2180           case 4 : /* fall through */
2181           case 5 : /* fall through */
2182           case 6 : /* fall through */
2183           case 7 : /* fall through */
2184           case 8 : /* fall through */
2185           case 9 : /* fall through */
2186           case 10 : /* fall through */
2187           case 11 : /* fall through */
2188           case 12 : /* fall through */
2189           case 13 : /* fall through */
2190           case 14 :
2191             if ((base_insn & 0xbf0) == 0xa50)
2192               { itype = CRISV32F_INSN_MOVE_M_W_M; goto extract_sfmt_move_m_w_m; }
2193             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2194           case 15 :
2195             if ((base_insn & 0xfff) == 0xe5f)
2196               { itype = CRISV32F_INSN_MOVECWR; goto extract_sfmt_movecwr; }
2197             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2198           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2199           }
2200         }
2201       case 230 :
2202         {
2203           unsigned int val = (((insn >> 0) & (15 << 0)));
2204           switch (val)
2205           {
2206           case 0 : /* fall through */
2207           case 1 : /* fall through */
2208           case 2 : /* fall through */
2209           case 3 : /* fall through */
2210           case 4 : /* fall through */
2211           case 5 : /* fall through */
2212           case 6 : /* fall through */
2213           case 7 : /* fall through */
2214           case 8 : /* fall through */
2215           case 9 : /* fall through */
2216           case 10 : /* fall through */
2217           case 11 : /* fall through */
2218           case 12 : /* fall through */
2219           case 13 : /* fall through */
2220           case 14 :
2221             if ((base_insn & 0xbf0) == 0xa60)
2222               { itype = CRISV32F_INSN_MOVE_M_D_M; goto extract_sfmt_move_m_d_m; }
2223             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2224           case 15 :
2225             if ((base_insn & 0xfff) == 0xe6f)
2226               { itype = CRISV32F_INSN_MOVECDR; goto extract_sfmt_movecdr; }
2227             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2228           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2229           }
2230         }
2231       case 232 :
2232         {
2233           unsigned int val = (((insn >> 0) & (15 << 0)));
2234           switch (val)
2235           {
2236           case 0 : /* fall through */
2237           case 1 : /* fall through */
2238           case 2 : /* fall through */
2239           case 3 : /* fall through */
2240           case 4 : /* fall through */
2241           case 5 : /* fall through */
2242           case 6 : /* fall through */
2243           case 7 : /* fall through */
2244           case 8 : /* fall through */
2245           case 9 : /* fall through */
2246           case 10 : /* fall through */
2247           case 11 : /* fall through */
2248           case 12 : /* fall through */
2249           case 13 : /* fall through */
2250           case 14 :
2251             if ((base_insn & 0xbf0) == 0xa80)
2252               { itype = CRISV32F_INSN_SUB_M_B_M; goto extract_sfmt_add_m_b_m; }
2253             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2254           case 15 :
2255             if ((base_insn & 0xfff) == 0xe8f)
2256               { itype = CRISV32F_INSN_SUBCBR; goto extract_sfmt_addcbr; }
2257             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2258           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2259           }
2260         }
2261       case 233 :
2262         {
2263           unsigned int val = (((insn >> 0) & (15 << 0)));
2264           switch (val)
2265           {
2266           case 0 : /* fall through */
2267           case 1 : /* fall through */
2268           case 2 : /* fall through */
2269           case 3 : /* fall through */
2270           case 4 : /* fall through */
2271           case 5 : /* fall through */
2272           case 6 : /* fall through */
2273           case 7 : /* fall through */
2274           case 8 : /* fall through */
2275           case 9 : /* fall through */
2276           case 10 : /* fall through */
2277           case 11 : /* fall through */
2278           case 12 : /* fall through */
2279           case 13 : /* fall through */
2280           case 14 :
2281             if ((base_insn & 0xbf0) == 0xa90)
2282               { itype = CRISV32F_INSN_SUB_M_W_M; goto extract_sfmt_add_m_w_m; }
2283             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2284           case 15 :
2285             if ((base_insn & 0xfff) == 0xe9f)
2286               { itype = CRISV32F_INSN_SUBCWR; goto extract_sfmt_addcwr; }
2287             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2288           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2289           }
2290         }
2291       case 234 :
2292         {
2293           unsigned int val = (((insn >> 0) & (15 << 0)));
2294           switch (val)
2295           {
2296           case 0 : /* fall through */
2297           case 1 : /* fall through */
2298           case 2 : /* fall through */
2299           case 3 : /* fall through */
2300           case 4 : /* fall through */
2301           case 5 : /* fall through */
2302           case 6 : /* fall through */
2303           case 7 : /* fall through */
2304           case 8 : /* fall through */
2305           case 9 : /* fall through */
2306           case 10 : /* fall through */
2307           case 11 : /* fall through */
2308           case 12 : /* fall through */
2309           case 13 : /* fall through */
2310           case 14 :
2311             if ((base_insn & 0xbf0) == 0xaa0)
2312               { itype = CRISV32F_INSN_SUB_M_D_M; goto extract_sfmt_add_m_d_m; }
2313             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2314           case 15 :
2315             if ((base_insn & 0xfff) == 0xeaf)
2316               { itype = CRISV32F_INSN_SUBCDR; goto extract_sfmt_addcdr; }
2317             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2318           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2319           }
2320         }
2321       case 235 :
2322         if ((base_insn & 0xfff) == 0xebf)
2323           { itype = CRISV32F_INSN_BAS_C; goto extract_sfmt_bas_c; }
2324         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2325       case 236 :
2326         {
2327           unsigned int val = (((insn >> 0) & (15 << 0)));
2328           switch (val)
2329           {
2330           case 0 : /* fall through */
2331           case 1 : /* fall through */
2332           case 2 : /* fall through */
2333           case 3 : /* fall through */
2334           case 4 : /* fall through */
2335           case 5 : /* fall through */
2336           case 6 : /* fall through */
2337           case 7 : /* fall through */
2338           case 8 : /* fall through */
2339           case 9 : /* fall through */
2340           case 10 : /* fall through */
2341           case 11 : /* fall through */
2342           case 12 : /* fall through */
2343           case 13 : /* fall through */
2344           case 14 :
2345             if ((base_insn & 0xbf0) == 0xac0)
2346               { itype = CRISV32F_INSN_CMP_M_B_M; goto extract_sfmt_cmp_m_b_m; }
2347             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2348           case 15 :
2349             if ((base_insn & 0xfff) == 0xecf)
2350               { itype = CRISV32F_INSN_CMPCBR; goto extract_sfmt_cmpcbr; }
2351             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2352           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2353           }
2354         }
2355       case 237 :
2356         {
2357           unsigned int val = (((insn >> 0) & (15 << 0)));
2358           switch (val)
2359           {
2360           case 0 : /* fall through */
2361           case 1 : /* fall through */
2362           case 2 : /* fall through */
2363           case 3 : /* fall through */
2364           case 4 : /* fall through */
2365           case 5 : /* fall through */
2366           case 6 : /* fall through */
2367           case 7 : /* fall through */
2368           case 8 : /* fall through */
2369           case 9 : /* fall through */
2370           case 10 : /* fall through */
2371           case 11 : /* fall through */
2372           case 12 : /* fall through */
2373           case 13 : /* fall through */
2374           case 14 :
2375             if ((base_insn & 0xbf0) == 0xad0)
2376               { itype = CRISV32F_INSN_CMP_M_W_M; goto extract_sfmt_cmp_m_w_m; }
2377             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2378           case 15 :
2379             if ((base_insn & 0xfff) == 0xedf)
2380               { itype = CRISV32F_INSN_CMPCWR; goto extract_sfmt_cmpcwr; }
2381             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2382           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2383           }
2384         }
2385       case 238 :
2386         {
2387           unsigned int val = (((insn >> 0) & (15 << 0)));
2388           switch (val)
2389           {
2390           case 0 : /* fall through */
2391           case 1 : /* fall through */
2392           case 2 : /* fall through */
2393           case 3 : /* fall through */
2394           case 4 : /* fall through */
2395           case 5 : /* fall through */
2396           case 6 : /* fall through */
2397           case 7 : /* fall through */
2398           case 8 : /* fall through */
2399           case 9 : /* fall through */
2400           case 10 : /* fall through */
2401           case 11 : /* fall through */
2402           case 12 : /* fall through */
2403           case 13 : /* fall through */
2404           case 14 :
2405             if ((base_insn & 0xbf0) == 0xae0)
2406               { itype = CRISV32F_INSN_CMP_M_D_M; goto extract_sfmt_cmp_m_d_m; }
2407             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2408           case 15 :
2409             if ((base_insn & 0xfff) == 0xeef)
2410               { itype = CRISV32F_INSN_CMPCDR; goto extract_sfmt_cmpcdr; }
2411             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2412           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2413           }
2414         }
2415       case 239 :
2416         if ((base_insn & 0xfff) == 0xeff)
2417           { itype = CRISV32F_INSN_BASC_C; goto extract_sfmt_bas_c; }
2418         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2419       case 240 :
2420         {
2421           unsigned int val = (((insn >> 0) & (15 << 0)));
2422           switch (val)
2423           {
2424           case 0 : /* fall through */
2425           case 1 : /* fall through */
2426           case 2 : /* fall through */
2427           case 3 : /* fall through */
2428           case 4 : /* fall through */
2429           case 5 : /* fall through */
2430           case 6 : /* fall through */
2431           case 7 : /* fall through */
2432           case 8 : /* fall through */
2433           case 9 : /* fall through */
2434           case 10 : /* fall through */
2435           case 11 : /* fall through */
2436           case 12 : /* fall through */
2437           case 13 : /* fall through */
2438           case 14 :
2439             if ((base_insn & 0xbf0) == 0xb00)
2440               { itype = CRISV32F_INSN_AND_M_B_M; goto extract_sfmt_and_m_b_m; }
2441             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2442           case 15 :
2443             if ((base_insn & 0xfff) == 0xf0f)
2444               { itype = CRISV32F_INSN_ANDCBR; goto extract_sfmt_andcbr; }
2445             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2446           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2447           }
2448         }
2449       case 241 :
2450         {
2451           unsigned int val = (((insn >> 0) & (15 << 0)));
2452           switch (val)
2453           {
2454           case 0 : /* fall through */
2455           case 1 : /* fall through */
2456           case 2 : /* fall through */
2457           case 3 : /* fall through */
2458           case 4 : /* fall through */
2459           case 5 : /* fall through */
2460           case 6 : /* fall through */
2461           case 7 : /* fall through */
2462           case 8 : /* fall through */
2463           case 9 : /* fall through */
2464           case 10 : /* fall through */
2465           case 11 : /* fall through */
2466           case 12 : /* fall through */
2467           case 13 : /* fall through */
2468           case 14 :
2469             if ((base_insn & 0xbf0) == 0xb10)
2470               { itype = CRISV32F_INSN_AND_M_W_M; goto extract_sfmt_and_m_w_m; }
2471             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2472           case 15 :
2473             if ((base_insn & 0xfff) == 0xf1f)
2474               { itype = CRISV32F_INSN_ANDCWR; goto extract_sfmt_andcwr; }
2475             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2476           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2477           }
2478         }
2479       case 242 :
2480         {
2481           unsigned int val = (((insn >> 0) & (15 << 0)));
2482           switch (val)
2483           {
2484           case 0 : /* fall through */
2485           case 1 : /* fall through */
2486           case 2 : /* fall through */
2487           case 3 : /* fall through */
2488           case 4 : /* fall through */
2489           case 5 : /* fall through */
2490           case 6 : /* fall through */
2491           case 7 : /* fall through */
2492           case 8 : /* fall through */
2493           case 9 : /* fall through */
2494           case 10 : /* fall through */
2495           case 11 : /* fall through */
2496           case 12 : /* fall through */
2497           case 13 : /* fall through */
2498           case 14 :
2499             if ((base_insn & 0xbf0) == 0xb20)
2500               { itype = CRISV32F_INSN_AND_M_D_M; goto extract_sfmt_and_m_d_m; }
2501             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2502           case 15 :
2503             if ((base_insn & 0xfff) == 0xf2f)
2504               { itype = CRISV32F_INSN_ANDCDR; goto extract_sfmt_andcdr; }
2505             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2506           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2507           }
2508         }
2509       case 243 :
2510         if ((base_insn & 0xfff) == 0xf3f)
2511           { itype = CRISV32F_INSN_JASC_C; goto extract_sfmt_jas_c; }
2512         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2513       case 244 :
2514         {
2515           unsigned int val = (((insn >> 0) & (15 << 0)));
2516           switch (val)
2517           {
2518           case 0 : /* fall through */
2519           case 1 : /* fall through */
2520           case 2 : /* fall through */
2521           case 3 : /* fall through */
2522           case 4 : /* fall through */
2523           case 5 : /* fall through */
2524           case 6 : /* fall through */
2525           case 7 : /* fall through */
2526           case 8 : /* fall through */
2527           case 9 : /* fall through */
2528           case 10 : /* fall through */
2529           case 11 : /* fall through */
2530           case 12 : /* fall through */
2531           case 13 : /* fall through */
2532           case 14 :
2533             if ((base_insn & 0xbf0) == 0xb40)
2534               { itype = CRISV32F_INSN_OR_M_B_M; goto extract_sfmt_and_m_b_m; }
2535             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2536           case 15 :
2537             if ((base_insn & 0xfff) == 0xf4f)
2538               { itype = CRISV32F_INSN_ORCBR; goto extract_sfmt_andcbr; }
2539             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2540           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2541           }
2542         }
2543       case 245 :
2544         {
2545           unsigned int val = (((insn >> 0) & (15 << 0)));
2546           switch (val)
2547           {
2548           case 0 : /* fall through */
2549           case 1 : /* fall through */
2550           case 2 : /* fall through */
2551           case 3 : /* fall through */
2552           case 4 : /* fall through */
2553           case 5 : /* fall through */
2554           case 6 : /* fall through */
2555           case 7 : /* fall through */
2556           case 8 : /* fall through */
2557           case 9 : /* fall through */
2558           case 10 : /* fall through */
2559           case 11 : /* fall through */
2560           case 12 : /* fall through */
2561           case 13 : /* fall through */
2562           case 14 :
2563             if ((base_insn & 0xbf0) == 0xb50)
2564               { itype = CRISV32F_INSN_OR_M_W_M; goto extract_sfmt_and_m_w_m; }
2565             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2566           case 15 :
2567             if ((base_insn & 0xfff) == 0xf5f)
2568               { itype = CRISV32F_INSN_ORCWR; goto extract_sfmt_andcwr; }
2569             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2570           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2571           }
2572         }
2573       case 246 :
2574         {
2575           unsigned int val = (((insn >> 0) & (15 << 0)));
2576           switch (val)
2577           {
2578           case 0 : /* fall through */
2579           case 1 : /* fall through */
2580           case 2 : /* fall through */
2581           case 3 : /* fall through */
2582           case 4 : /* fall through */
2583           case 5 : /* fall through */
2584           case 6 : /* fall through */
2585           case 7 : /* fall through */
2586           case 8 : /* fall through */
2587           case 9 : /* fall through */
2588           case 10 : /* fall through */
2589           case 11 : /* fall through */
2590           case 12 : /* fall through */
2591           case 13 : /* fall through */
2592           case 14 :
2593             if ((base_insn & 0xbf0) == 0xb60)
2594               { itype = CRISV32F_INSN_OR_M_D_M; goto extract_sfmt_and_m_d_m; }
2595             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2596           case 15 :
2597             if ((base_insn & 0xfff) == 0xf6f)
2598               { itype = CRISV32F_INSN_ORCDR; goto extract_sfmt_andcdr; }
2599             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2600           default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2601           }
2602         }
2603       case 247 :
2604         if ((base_insn & 0xff0) == 0xf70)
2605           { itype = CRISV32F_INSN_MOVE_SS_R; goto extract_sfmt_move_ss_r; }
2606         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2607       default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2608       }
2609     }
2610   }
2611
2612   /* The instruction has been decoded, now extract the fields.  */
2613
2614  extract_sfmt_empty:
2615   {
2616     const IDESC *idesc = &crisv32f_insn_data[itype];
2617 #define FLD(f) abuf->fields.fmt_empty.f
2618
2619
2620   /* Record the fields for the semantic handler.  */
2621   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_empty", (char *) 0));
2622
2623 #undef FLD
2624     return idesc;
2625   }
2626
2627  extract_sfmt_move_b_r:
2628   {
2629     const IDESC *idesc = &crisv32f_insn_data[itype];
2630     CGEN_INSN_INT insn = base_insn;
2631 #define FLD(f) abuf->fields.sfmt_addc_m.f
2632     UINT f_operand2;
2633     UINT f_operand1;
2634
2635     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2636     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2637
2638   /* Record the fields for the semantic handler.  */
2639   FLD (f_operand1) = f_operand1;
2640   FLD (f_operand2) = f_operand2;
2641   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));
2642
2643 #if WITH_PROFILE_MODEL_P
2644   /* Record the fields for profiling.  */
2645   if (PROFILE_MODEL_P (current_cpu))
2646     {
2647       FLD (in_Rs) = f_operand1;
2648       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
2649     }
2650 #endif
2651 #undef FLD
2652     return idesc;
2653   }
2654
2655  extract_sfmt_move_d_r:
2656   {
2657     const IDESC *idesc = &crisv32f_insn_data[itype];
2658     CGEN_INSN_INT insn = base_insn;
2659 #define FLD(f) abuf->fields.sfmt_addc_m.f
2660     UINT f_operand2;
2661     UINT f_operand1;
2662
2663     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2664     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2665
2666   /* Record the fields for the semantic handler.  */
2667   FLD (f_operand1) = f_operand1;
2668   FLD (f_operand2) = f_operand2;
2669   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));
2670
2671 #if WITH_PROFILE_MODEL_P
2672   /* Record the fields for profiling.  */
2673   if (PROFILE_MODEL_P (current_cpu))
2674     {
2675       FLD (in_Rs) = f_operand1;
2676       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
2677     }
2678 #endif
2679 #undef FLD
2680     return idesc;
2681   }
2682
2683  extract_sfmt_moveq:
2684   {
2685     const IDESC *idesc = &crisv32f_insn_data[itype];
2686     CGEN_INSN_INT insn = base_insn;
2687 #define FLD(f) abuf->fields.sfmt_moveq.f
2688     UINT f_operand2;
2689     INT f_s6;
2690
2691     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2692     f_s6 = EXTRACT_LSB0_INT (insn, 16, 5, 6);
2693
2694   /* Record the fields for the semantic handler.  */
2695   FLD (f_s6) = f_s6;
2696   FLD (f_operand2) = f_operand2;
2697   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));
2698
2699 #if WITH_PROFILE_MODEL_P
2700   /* Record the fields for profiling.  */
2701   if (PROFILE_MODEL_P (current_cpu))
2702     {
2703       FLD (out_Rd) = f_operand2;
2704     }
2705 #endif
2706 #undef FLD
2707     return idesc;
2708   }
2709
2710  extract_sfmt_movs_b_r:
2711   {
2712     const IDESC *idesc = &crisv32f_insn_data[itype];
2713     CGEN_INSN_INT insn = base_insn;
2714 #define FLD(f) abuf->fields.sfmt_muls_b.f
2715     UINT f_operand2;
2716     UINT f_operand1;
2717
2718     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2719     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2720
2721   /* Record the fields for the semantic handler.  */
2722   FLD (f_operand1) = f_operand1;
2723   FLD (f_operand2) = f_operand2;
2724   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));
2725
2726 #if WITH_PROFILE_MODEL_P
2727   /* Record the fields for profiling.  */
2728   if (PROFILE_MODEL_P (current_cpu))
2729     {
2730       FLD (in_Rs) = f_operand1;
2731       FLD (out_Rd) = f_operand2;
2732     }
2733 #endif
2734 #undef FLD
2735     return idesc;
2736   }
2737
2738  extract_sfmt_movecbr:
2739   {
2740     const IDESC *idesc = &crisv32f_insn_data[itype];
2741     CGEN_INSN_INT insn = base_insn;
2742 #define FLD(f) abuf->fields.sfmt_addcbr.f
2743     INT f_indir_pc__byte;
2744     UINT f_operand2;
2745     /* Contents of trailing part of insn.  */
2746     UINT word_1;
2747
2748   word_1 = GETIMEMUSI (current_cpu, pc + 2);
2749     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2750     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2751
2752   /* Record the fields for the semantic handler.  */
2753   FLD (f_operand2) = f_operand2;
2754   FLD (f_indir_pc__byte) = f_indir_pc__byte;
2755   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));
2756
2757 #if WITH_PROFILE_MODEL_P
2758   /* Record the fields for profiling.  */
2759   if (PROFILE_MODEL_P (current_cpu))
2760     {
2761       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
2762     }
2763 #endif
2764 #undef FLD
2765     return idesc;
2766   }
2767
2768  extract_sfmt_movecwr:
2769   {
2770     const IDESC *idesc = &crisv32f_insn_data[itype];
2771     CGEN_INSN_INT insn = base_insn;
2772 #define FLD(f) abuf->fields.sfmt_addcwr.f
2773     INT f_indir_pc__word;
2774     UINT f_operand2;
2775     /* Contents of trailing part of insn.  */
2776     UINT word_1;
2777
2778   word_1 = GETIMEMUSI (current_cpu, pc + 2);
2779     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2780     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2781
2782   /* Record the fields for the semantic handler.  */
2783   FLD (f_operand2) = f_operand2;
2784   FLD (f_indir_pc__word) = f_indir_pc__word;
2785   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));
2786
2787 #if WITH_PROFILE_MODEL_P
2788   /* Record the fields for profiling.  */
2789   if (PROFILE_MODEL_P (current_cpu))
2790     {
2791       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
2792     }
2793 #endif
2794 #undef FLD
2795     return idesc;
2796   }
2797
2798  extract_sfmt_movecdr:
2799   {
2800     const IDESC *idesc = &crisv32f_insn_data[itype];
2801     CGEN_INSN_INT insn = base_insn;
2802 #define FLD(f) abuf->fields.sfmt_bound_cd.f
2803     INT f_indir_pc__dword;
2804     UINT f_operand2;
2805     /* Contents of trailing part of insn.  */
2806     UINT word_1;
2807
2808   word_1 = GETIMEMUSI (current_cpu, pc + 2);
2809     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
2810     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2811
2812   /* Record the fields for the semantic handler.  */
2813   FLD (f_indir_pc__dword) = f_indir_pc__dword;
2814   FLD (f_operand2) = f_operand2;
2815   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));
2816
2817 #if WITH_PROFILE_MODEL_P
2818   /* Record the fields for profiling.  */
2819   if (PROFILE_MODEL_P (current_cpu))
2820     {
2821       FLD (out_Rd) = f_operand2;
2822     }
2823 #endif
2824 #undef FLD
2825     return idesc;
2826   }
2827
2828  extract_sfmt_movscbr:
2829   {
2830     const IDESC *idesc = &crisv32f_insn_data[itype];
2831     CGEN_INSN_INT insn = base_insn;
2832 #define FLD(f) abuf->fields.sfmt_bound_cb.f
2833     UINT f_operand2;
2834     INT f_indir_pc__byte;
2835     /* Contents of trailing part of insn.  */
2836     UINT word_1;
2837
2838   word_1 = GETIMEMUSI (current_cpu, pc + 2);
2839     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2840     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2841
2842   /* Record the fields for the semantic handler.  */
2843   FLD (f_indir_pc__byte) = f_indir_pc__byte;
2844   FLD (f_operand2) = f_operand2;
2845   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));
2846
2847 #if WITH_PROFILE_MODEL_P
2848   /* Record the fields for profiling.  */
2849   if (PROFILE_MODEL_P (current_cpu))
2850     {
2851       FLD (out_Rd) = f_operand2;
2852     }
2853 #endif
2854 #undef FLD
2855     return idesc;
2856   }
2857
2858  extract_sfmt_movscwr:
2859   {
2860     const IDESC *idesc = &crisv32f_insn_data[itype];
2861     CGEN_INSN_INT insn = base_insn;
2862 #define FLD(f) abuf->fields.sfmt_bound_cw.f
2863     UINT f_operand2;
2864     INT f_indir_pc__word;
2865     /* Contents of trailing part of insn.  */
2866     UINT word_1;
2867
2868   word_1 = GETIMEMUSI (current_cpu, pc + 2);
2869     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2870     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2871
2872   /* Record the fields for the semantic handler.  */
2873   FLD (f_indir_pc__word) = f_indir_pc__word;
2874   FLD (f_operand2) = f_operand2;
2875   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));
2876
2877 #if WITH_PROFILE_MODEL_P
2878   /* Record the fields for profiling.  */
2879   if (PROFILE_MODEL_P (current_cpu))
2880     {
2881       FLD (out_Rd) = f_operand2;
2882     }
2883 #endif
2884 #undef FLD
2885     return idesc;
2886   }
2887
2888  extract_sfmt_movucbr:
2889   {
2890     const IDESC *idesc = &crisv32f_insn_data[itype];
2891     CGEN_INSN_INT insn = base_insn;
2892 #define FLD(f) abuf->fields.sfmt_bound_cb.f
2893     UINT f_operand2;
2894     INT f_indir_pc__byte;
2895     /* Contents of trailing part of insn.  */
2896     UINT word_1;
2897
2898   word_1 = GETIMEMUSI (current_cpu, pc + 2);
2899     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2900     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2901
2902   /* Record the fields for the semantic handler.  */
2903   FLD (f_indir_pc__byte) = f_indir_pc__byte;
2904   FLD (f_operand2) = f_operand2;
2905   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));
2906
2907 #if WITH_PROFILE_MODEL_P
2908   /* Record the fields for profiling.  */
2909   if (PROFILE_MODEL_P (current_cpu))
2910     {
2911       FLD (out_Rd) = f_operand2;
2912     }
2913 #endif
2914 #undef FLD
2915     return idesc;
2916   }
2917
2918  extract_sfmt_movucwr:
2919   {
2920     const IDESC *idesc = &crisv32f_insn_data[itype];
2921     CGEN_INSN_INT insn = base_insn;
2922 #define FLD(f) abuf->fields.sfmt_bound_cw.f
2923     UINT f_operand2;
2924     INT f_indir_pc__word;
2925     /* Contents of trailing part of insn.  */
2926     UINT word_1;
2927
2928   word_1 = GETIMEMUSI (current_cpu, pc + 2);
2929     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2930     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2931
2932   /* Record the fields for the semantic handler.  */
2933   FLD (f_indir_pc__word) = f_indir_pc__word;
2934   FLD (f_operand2) = f_operand2;
2935   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));
2936
2937 #if WITH_PROFILE_MODEL_P
2938   /* Record the fields for profiling.  */
2939   if (PROFILE_MODEL_P (current_cpu))
2940     {
2941       FLD (out_Rd) = f_operand2;
2942     }
2943 #endif
2944 #undef FLD
2945     return idesc;
2946   }
2947
2948  extract_sfmt_addq:
2949   {
2950     const IDESC *idesc = &crisv32f_insn_data[itype];
2951     CGEN_INSN_INT insn = base_insn;
2952 #define FLD(f) abuf->fields.sfmt_addq.f
2953     UINT f_operand2;
2954     UINT f_u6;
2955
2956     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2957     f_u6 = EXTRACT_LSB0_UINT (insn, 16, 5, 6);
2958
2959   /* Record the fields for the semantic handler.  */
2960   FLD (f_operand2) = f_operand2;
2961   FLD (f_u6) = f_u6;
2962   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));
2963
2964 #if WITH_PROFILE_MODEL_P
2965   /* Record the fields for profiling.  */
2966   if (PROFILE_MODEL_P (current_cpu))
2967     {
2968       FLD (in_Rd) = f_operand2;
2969       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
2970     }
2971 #endif
2972 #undef FLD
2973     return idesc;
2974   }
2975
2976  extract_sfmt_cmp_r_b_r:
2977   {
2978     const IDESC *idesc = &crisv32f_insn_data[itype];
2979     CGEN_INSN_INT insn = base_insn;
2980 #define FLD(f) abuf->fields.sfmt_muls_b.f
2981     UINT f_operand2;
2982     UINT f_operand1;
2983
2984     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2985     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2986
2987   /* Record the fields for the semantic handler.  */
2988   FLD (f_operand2) = f_operand2;
2989   FLD (f_operand1) = f_operand1;
2990   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));
2991
2992 #if WITH_PROFILE_MODEL_P
2993   /* Record the fields for profiling.  */
2994   if (PROFILE_MODEL_P (current_cpu))
2995     {
2996       FLD (in_Rd) = f_operand2;
2997       FLD (in_Rs) = f_operand1;
2998     }
2999 #endif
3000 #undef FLD
3001     return idesc;
3002   }
3003
3004  extract_sfmt_cmp_m_b_m:
3005   {
3006     const IDESC *idesc = &crisv32f_insn_data[itype];
3007     CGEN_INSN_INT insn = base_insn;
3008 #define FLD(f) abuf->fields.sfmt_addc_m.f
3009     UINT f_operand2;
3010     UINT f_memmode;
3011     UINT f_operand1;
3012
3013     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3014     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3015     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3016
3017   /* Record the fields for the semantic handler.  */
3018   FLD (f_operand2) = f_operand2;
3019   FLD (f_operand1) = f_operand1;
3020   FLD (f_memmode) = f_memmode;
3021   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));
3022
3023 #if WITH_PROFILE_MODEL_P
3024   /* Record the fields for profiling.  */
3025   if (PROFILE_MODEL_P (current_cpu))
3026     {
3027       FLD (in_Rd) = f_operand2;
3028       FLD (in_Rs) = f_operand1;
3029       FLD (out_Rs) = f_operand1;
3030     }
3031 #endif
3032 #undef FLD
3033     return idesc;
3034   }
3035
3036  extract_sfmt_cmp_m_w_m:
3037   {
3038     const IDESC *idesc = &crisv32f_insn_data[itype];
3039     CGEN_INSN_INT insn = base_insn;
3040 #define FLD(f) abuf->fields.sfmt_addc_m.f
3041     UINT f_operand2;
3042     UINT f_memmode;
3043     UINT f_operand1;
3044
3045     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3046     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3047     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3048
3049   /* Record the fields for the semantic handler.  */
3050   FLD (f_operand2) = f_operand2;
3051   FLD (f_operand1) = f_operand1;
3052   FLD (f_memmode) = f_memmode;
3053   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));
3054
3055 #if WITH_PROFILE_MODEL_P
3056   /* Record the fields for profiling.  */
3057   if (PROFILE_MODEL_P (current_cpu))
3058     {
3059       FLD (in_Rd) = f_operand2;
3060       FLD (in_Rs) = f_operand1;
3061       FLD (out_Rs) = f_operand1;
3062     }
3063 #endif
3064 #undef FLD
3065     return idesc;
3066   }
3067
3068  extract_sfmt_cmp_m_d_m:
3069   {
3070     const IDESC *idesc = &crisv32f_insn_data[itype];
3071     CGEN_INSN_INT insn = base_insn;
3072 #define FLD(f) abuf->fields.sfmt_addc_m.f
3073     UINT f_operand2;
3074     UINT f_memmode;
3075     UINT f_operand1;
3076
3077     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3078     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3079     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3080
3081   /* Record the fields for the semantic handler.  */
3082   FLD (f_operand2) = f_operand2;
3083   FLD (f_operand1) = f_operand1;
3084   FLD (f_memmode) = f_memmode;
3085   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));
3086
3087 #if WITH_PROFILE_MODEL_P
3088   /* Record the fields for profiling.  */
3089   if (PROFILE_MODEL_P (current_cpu))
3090     {
3091       FLD (in_Rd) = f_operand2;
3092       FLD (in_Rs) = f_operand1;
3093       FLD (out_Rs) = f_operand1;
3094     }
3095 #endif
3096 #undef FLD
3097     return idesc;
3098   }
3099
3100  extract_sfmt_cmpcbr:
3101   {
3102     const IDESC *idesc = &crisv32f_insn_data[itype];
3103     CGEN_INSN_INT insn = base_insn;
3104 #define FLD(f) abuf->fields.sfmt_bound_cb.f
3105     INT f_indir_pc__byte;
3106     UINT f_operand2;
3107     /* Contents of trailing part of insn.  */
3108     UINT word_1;
3109
3110   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3111     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3112     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3113
3114   /* Record the fields for the semantic handler.  */
3115   FLD (f_operand2) = f_operand2;
3116   FLD (f_indir_pc__byte) = f_indir_pc__byte;
3117   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));
3118
3119 #if WITH_PROFILE_MODEL_P
3120   /* Record the fields for profiling.  */
3121   if (PROFILE_MODEL_P (current_cpu))
3122     {
3123       FLD (in_Rd) = f_operand2;
3124     }
3125 #endif
3126 #undef FLD
3127     return idesc;
3128   }
3129
3130  extract_sfmt_cmpcwr:
3131   {
3132     const IDESC *idesc = &crisv32f_insn_data[itype];
3133     CGEN_INSN_INT insn = base_insn;
3134 #define FLD(f) abuf->fields.sfmt_bound_cw.f
3135     INT f_indir_pc__word;
3136     UINT f_operand2;
3137     /* Contents of trailing part of insn.  */
3138     UINT word_1;
3139
3140   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3141     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3142     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3143
3144   /* Record the fields for the semantic handler.  */
3145   FLD (f_operand2) = f_operand2;
3146   FLD (f_indir_pc__word) = f_indir_pc__word;
3147   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));
3148
3149 #if WITH_PROFILE_MODEL_P
3150   /* Record the fields for profiling.  */
3151   if (PROFILE_MODEL_P (current_cpu))
3152     {
3153       FLD (in_Rd) = f_operand2;
3154     }
3155 #endif
3156 #undef FLD
3157     return idesc;
3158   }
3159
3160  extract_sfmt_cmpcdr:
3161   {
3162     const IDESC *idesc = &crisv32f_insn_data[itype];
3163     CGEN_INSN_INT insn = base_insn;
3164 #define FLD(f) abuf->fields.sfmt_bound_cd.f
3165     INT f_indir_pc__dword;
3166     UINT f_operand2;
3167     /* Contents of trailing part of insn.  */
3168     UINT word_1;
3169
3170   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3171     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
3172     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3173
3174   /* Record the fields for the semantic handler.  */
3175   FLD (f_operand2) = f_operand2;
3176   FLD (f_indir_pc__dword) = f_indir_pc__dword;
3177   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));
3178
3179 #if WITH_PROFILE_MODEL_P
3180   /* Record the fields for profiling.  */
3181   if (PROFILE_MODEL_P (current_cpu))
3182     {
3183       FLD (in_Rd) = f_operand2;
3184     }
3185 #endif
3186 #undef FLD
3187     return idesc;
3188   }
3189
3190  extract_sfmt_cmpq:
3191   {
3192     const IDESC *idesc = &crisv32f_insn_data[itype];
3193     CGEN_INSN_INT insn = base_insn;
3194 #define FLD(f) abuf->fields.sfmt_andq.f
3195     UINT f_operand2;
3196     INT f_s6;
3197
3198     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3199     f_s6 = EXTRACT_LSB0_INT (insn, 16, 5, 6);
3200
3201   /* Record the fields for the semantic handler.  */
3202   FLD (f_operand2) = f_operand2;
3203   FLD (f_s6) = f_s6;
3204   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));
3205
3206 #if WITH_PROFILE_MODEL_P
3207   /* Record the fields for profiling.  */
3208   if (PROFILE_MODEL_P (current_cpu))
3209     {
3210       FLD (in_Rd) = f_operand2;
3211     }
3212 #endif
3213 #undef FLD
3214     return idesc;
3215   }
3216
3217  extract_sfmt_cmpucbr:
3218   {
3219     const IDESC *idesc = &crisv32f_insn_data[itype];
3220     CGEN_INSN_INT insn = base_insn;
3221 #define FLD(f) abuf->fields.sfmt_bound_cb.f
3222     INT f_indir_pc__byte;
3223     UINT f_operand2;
3224     /* Contents of trailing part of insn.  */
3225     UINT word_1;
3226
3227   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3228     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3229     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3230
3231   /* Record the fields for the semantic handler.  */
3232   FLD (f_operand2) = f_operand2;
3233   FLD (f_indir_pc__byte) = f_indir_pc__byte;
3234   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));
3235
3236 #if WITH_PROFILE_MODEL_P
3237   /* Record the fields for profiling.  */
3238   if (PROFILE_MODEL_P (current_cpu))
3239     {
3240       FLD (in_Rd) = f_operand2;
3241     }
3242 #endif
3243 #undef FLD
3244     return idesc;
3245   }
3246
3247  extract_sfmt_cmpucwr:
3248   {
3249     const IDESC *idesc = &crisv32f_insn_data[itype];
3250     CGEN_INSN_INT insn = base_insn;
3251 #define FLD(f) abuf->fields.sfmt_bound_cw.f
3252     INT f_indir_pc__word;
3253     UINT f_operand2;
3254     /* Contents of trailing part of insn.  */
3255     UINT word_1;
3256
3257   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3258     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3259     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3260
3261   /* Record the fields for the semantic handler.  */
3262   FLD (f_operand2) = f_operand2;
3263   FLD (f_indir_pc__word) = f_indir_pc__word;
3264   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));
3265
3266 #if WITH_PROFILE_MODEL_P
3267   /* Record the fields for profiling.  */
3268   if (PROFILE_MODEL_P (current_cpu))
3269     {
3270       FLD (in_Rd) = f_operand2;
3271     }
3272 #endif
3273 #undef FLD
3274     return idesc;
3275   }
3276
3277  extract_sfmt_move_m_b_m:
3278   {
3279     const IDESC *idesc = &crisv32f_insn_data[itype];
3280     CGEN_INSN_INT insn = base_insn;
3281 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3282     UINT f_operand2;
3283     UINT f_memmode;
3284     UINT f_operand1;
3285
3286     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3287     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3288     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3289
3290   /* Record the fields for the semantic handler.  */
3291   FLD (f_operand1) = f_operand1;
3292   FLD (f_operand2) = f_operand2;
3293   FLD (f_memmode) = f_memmode;
3294   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));
3295
3296 #if WITH_PROFILE_MODEL_P
3297   /* Record the fields for profiling.  */
3298   if (PROFILE_MODEL_P (current_cpu))
3299     {
3300       FLD (in_Rs) = f_operand1;
3301       FLD (out_Rs) = f_operand1;
3302       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)));
3303     }
3304 #endif
3305 #undef FLD
3306     return idesc;
3307   }
3308
3309  extract_sfmt_move_m_w_m:
3310   {
3311     const IDESC *idesc = &crisv32f_insn_data[itype];
3312     CGEN_INSN_INT insn = base_insn;
3313 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3314     UINT f_operand2;
3315     UINT f_memmode;
3316     UINT f_operand1;
3317
3318     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3319     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3320     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3321
3322   /* Record the fields for the semantic handler.  */
3323   FLD (f_operand1) = f_operand1;
3324   FLD (f_operand2) = f_operand2;
3325   FLD (f_memmode) = f_memmode;
3326   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));
3327
3328 #if WITH_PROFILE_MODEL_P
3329   /* Record the fields for profiling.  */
3330   if (PROFILE_MODEL_P (current_cpu))
3331     {
3332       FLD (in_Rs) = f_operand1;
3333       FLD (out_Rs) = f_operand1;
3334       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)));
3335     }
3336 #endif
3337 #undef FLD
3338     return idesc;
3339   }
3340
3341  extract_sfmt_move_m_d_m:
3342   {
3343     const IDESC *idesc = &crisv32f_insn_data[itype];
3344     CGEN_INSN_INT insn = base_insn;
3345 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3346     UINT f_operand2;
3347     UINT f_memmode;
3348     UINT f_operand1;
3349
3350     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3351     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3352     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3353
3354   /* Record the fields for the semantic handler.  */
3355   FLD (f_operand1) = f_operand1;
3356   FLD (f_operand2) = f_operand2;
3357   FLD (f_memmode) = f_memmode;
3358   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));
3359
3360 #if WITH_PROFILE_MODEL_P
3361   /* Record the fields for profiling.  */
3362   if (PROFILE_MODEL_P (current_cpu))
3363     {
3364       FLD (in_Rs) = f_operand1;
3365       FLD (out_Rs) = f_operand1;
3366       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)));
3367     }
3368 #endif
3369 #undef FLD
3370     return idesc;
3371   }
3372
3373  extract_sfmt_movs_m_b_m:
3374   {
3375     const IDESC *idesc = &crisv32f_insn_data[itype];
3376     CGEN_INSN_INT insn = base_insn;
3377 #define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
3378     UINT f_operand2;
3379     UINT f_memmode;
3380     UINT f_operand1;
3381
3382     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3383     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3384     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3385
3386   /* Record the fields for the semantic handler.  */
3387   FLD (f_operand1) = f_operand1;
3388   FLD (f_memmode) = f_memmode;
3389   FLD (f_operand2) = f_operand2;
3390   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));
3391
3392 #if WITH_PROFILE_MODEL_P
3393   /* Record the fields for profiling.  */
3394   if (PROFILE_MODEL_P (current_cpu))
3395     {
3396       FLD (in_Rs) = f_operand1;
3397       FLD (out_Rd) = f_operand2;
3398       FLD (out_Rs) = f_operand1;
3399     }
3400 #endif
3401 #undef FLD
3402     return idesc;
3403   }
3404
3405  extract_sfmt_movs_m_w_m:
3406   {
3407     const IDESC *idesc = &crisv32f_insn_data[itype];
3408     CGEN_INSN_INT insn = base_insn;
3409 #define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
3410     UINT f_operand2;
3411     UINT f_memmode;
3412     UINT f_operand1;
3413
3414     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3415     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3416     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3417
3418   /* Record the fields for the semantic handler.  */
3419   FLD (f_operand1) = f_operand1;
3420   FLD (f_memmode) = f_memmode;
3421   FLD (f_operand2) = f_operand2;
3422   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));
3423
3424 #if WITH_PROFILE_MODEL_P
3425   /* Record the fields for profiling.  */
3426   if (PROFILE_MODEL_P (current_cpu))
3427     {
3428       FLD (in_Rs) = f_operand1;
3429       FLD (out_Rd) = f_operand2;
3430       FLD (out_Rs) = f_operand1;
3431     }
3432 #endif
3433 #undef FLD
3434     return idesc;
3435   }
3436
3437  extract_sfmt_move_r_sprv32:
3438   {
3439     const IDESC *idesc = &crisv32f_insn_data[itype];
3440     CGEN_INSN_INT insn = base_insn;
3441 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
3442     UINT f_operand2;
3443     UINT f_operand1;
3444
3445     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3446     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3447
3448   /* Record the fields for the semantic handler.  */
3449   FLD (f_operand1) = f_operand1;
3450   FLD (f_operand2) = f_operand2;
3451   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_r_sprv32", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3452
3453 #if WITH_PROFILE_MODEL_P
3454   /* Record the fields for profiling.  */
3455   if (PROFILE_MODEL_P (current_cpu))
3456     {
3457       FLD (in_Rs) = f_operand1;
3458       FLD (out_Pd) = f_operand2;
3459     }
3460 #endif
3461 #undef FLD
3462     return idesc;
3463   }
3464
3465  extract_sfmt_move_spr_rv32:
3466   {
3467     const IDESC *idesc = &crisv32f_insn_data[itype];
3468     CGEN_INSN_INT insn = base_insn;
3469 #define FLD(f) abuf->fields.sfmt_mcp.f
3470     UINT f_operand2;
3471     UINT f_operand1;
3472
3473     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3474     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3475
3476   /* Record the fields for the semantic handler.  */
3477   FLD (f_operand2) = f_operand2;
3478   FLD (f_operand1) = f_operand1;
3479   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_spr_rv32", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
3480
3481 #if WITH_PROFILE_MODEL_P
3482   /* Record the fields for profiling.  */
3483   if (PROFILE_MODEL_P (current_cpu))
3484     {
3485       FLD (in_Ps) = f_operand2;
3486       FLD (out_h_gr_SI_index_of__DFLT_Rs) = FLD (f_operand1);
3487     }
3488 #endif
3489 #undef FLD
3490     return idesc;
3491   }
3492
3493  extract_sfmt_move_m_sprv32:
3494   {
3495     const IDESC *idesc = &crisv32f_insn_data[itype];
3496     CGEN_INSN_INT insn = base_insn;
3497 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
3498     UINT f_operand2;
3499     UINT f_memmode;
3500     UINT f_operand1;
3501
3502     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3503     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3504     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3505
3506   /* Record the fields for the semantic handler.  */
3507   FLD (f_operand1) = f_operand1;
3508   FLD (f_operand2) = f_operand2;
3509   FLD (f_memmode) = f_memmode;
3510   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_m_sprv32", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3511
3512 #if WITH_PROFILE_MODEL_P
3513   /* Record the fields for profiling.  */
3514   if (PROFILE_MODEL_P (current_cpu))
3515     {
3516       FLD (in_Rs) = f_operand1;
3517       FLD (out_Pd) = f_operand2;
3518       FLD (out_Rs) = f_operand1;
3519     }
3520 #endif
3521 #undef FLD
3522     return idesc;
3523   }
3524
3525  extract_sfmt_move_c_sprv32_p2:
3526   {
3527     const IDESC *idesc = &crisv32f_insn_data[itype];
3528     CGEN_INSN_INT insn = base_insn;
3529 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
3530     INT f_indir_pc__dword;
3531     UINT f_operand2;
3532     /* Contents of trailing part of insn.  */
3533     UINT word_1;
3534
3535   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3536     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
3537     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3538
3539   /* Record the fields for the semantic handler.  */
3540   FLD (f_indir_pc__dword) = f_indir_pc__dword;
3541   FLD (f_operand2) = f_operand2;
3542   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_c_sprv32_p2", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3543
3544 #if WITH_PROFILE_MODEL_P
3545   /* Record the fields for profiling.  */
3546   if (PROFILE_MODEL_P (current_cpu))
3547     {
3548       FLD (out_Pd) = f_operand2;
3549     }
3550 #endif
3551 #undef FLD
3552     return idesc;
3553   }
3554
3555  extract_sfmt_move_spr_mv32:
3556   {
3557     const IDESC *idesc = &crisv32f_insn_data[itype];
3558     CGEN_INSN_INT insn = base_insn;
3559 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
3560     UINT f_operand2;
3561     UINT f_memmode;
3562     UINT f_operand1;
3563
3564     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3565     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3566     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3567
3568   /* Record the fields for the semantic handler.  */
3569   FLD (f_operand2) = f_operand2;
3570   FLD (f_operand1) = f_operand1;
3571   FLD (f_memmode) = f_memmode;
3572   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_spr_mv32", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3573
3574 #if WITH_PROFILE_MODEL_P
3575   /* Record the fields for profiling.  */
3576   if (PROFILE_MODEL_P (current_cpu))
3577     {
3578       FLD (in_Ps) = f_operand2;
3579       FLD (in_Rs) = f_operand1;
3580       FLD (out_Rs) = f_operand1;
3581     }
3582 #endif
3583 #undef FLD
3584     return idesc;
3585   }
3586
3587  extract_sfmt_move_ss_r:
3588   {
3589     const IDESC *idesc = &crisv32f_insn_data[itype];
3590     CGEN_INSN_INT insn = base_insn;
3591 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
3592     UINT f_operand2;
3593     UINT f_operand1;
3594
3595     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3596     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3597
3598   /* Record the fields for the semantic handler.  */
3599   FLD (f_operand2) = f_operand2;
3600   FLD (f_operand1) = f_operand1;
3601   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_ss_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
3602
3603 #if WITH_PROFILE_MODEL_P
3604   /* Record the fields for profiling.  */
3605   if (PROFILE_MODEL_P (current_cpu))
3606     {
3607       FLD (out_Rs) = f_operand1;
3608     }
3609 #endif
3610 #undef FLD
3611     return idesc;
3612   }
3613
3614  extract_sfmt_move_r_ss:
3615   {
3616     const IDESC *idesc = &crisv32f_insn_data[itype];
3617     CGEN_INSN_INT insn = base_insn;
3618 #define FLD(f) abuf->fields.sfmt_mcp.f
3619     UINT f_operand2;
3620     UINT f_operand1;
3621
3622     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3623     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3624
3625   /* Record the fields for the semantic handler.  */
3626   FLD (f_operand1) = f_operand1;
3627   FLD (f_operand2) = f_operand2;
3628   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_r_ss", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3629
3630 #if WITH_PROFILE_MODEL_P
3631   /* Record the fields for profiling.  */
3632   if (PROFILE_MODEL_P (current_cpu))
3633     {
3634       FLD (in_Rs) = f_operand1;
3635     }
3636 #endif
3637 #undef FLD
3638     return idesc;
3639   }
3640
3641  extract_sfmt_movem_r_m_v32:
3642   {
3643     const IDESC *idesc = &crisv32f_insn_data[itype];
3644     CGEN_INSN_INT insn = base_insn;
3645 #define FLD(f) abuf->fields.sfmt_movem_r_m_v32.f
3646     UINT f_operand2;
3647     UINT f_memmode;
3648     UINT f_operand1;
3649
3650     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3651     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3652     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3653
3654   /* Record the fields for the semantic handler.  */
3655   FLD (f_operand2) = f_operand2;
3656   FLD (f_operand1) = f_operand1;
3657   FLD (f_memmode) = f_memmode;
3658   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movem_r_m_v32", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3659
3660 #if WITH_PROFILE_MODEL_P
3661   /* Record the fields for profiling.  */
3662   if (PROFILE_MODEL_P (current_cpu))
3663     {
3664       FLD (in_Rd) = f_operand2;
3665       FLD (in_Rs) = f_operand1;
3666       FLD (in_h_gr_SI_0) = 0;
3667       FLD (in_h_gr_SI_1) = 1;
3668       FLD (in_h_gr_SI_10) = 10;
3669       FLD (in_h_gr_SI_11) = 11;
3670       FLD (in_h_gr_SI_12) = 12;
3671       FLD (in_h_gr_SI_13) = 13;
3672       FLD (in_h_gr_SI_14) = 14;
3673       FLD (in_h_gr_SI_15) = 15;
3674       FLD (in_h_gr_SI_2) = 2;
3675       FLD (in_h_gr_SI_3) = 3;
3676       FLD (in_h_gr_SI_4) = 4;
3677       FLD (in_h_gr_SI_5) = 5;
3678       FLD (in_h_gr_SI_6) = 6;
3679       FLD (in_h_gr_SI_7) = 7;
3680       FLD (in_h_gr_SI_8) = 8;
3681       FLD (in_h_gr_SI_9) = 9;
3682       FLD (out_Rs) = f_operand1;
3683     }
3684 #endif
3685 #undef FLD
3686     return idesc;
3687   }
3688
3689  extract_sfmt_movem_m_r_v32:
3690   {
3691     const IDESC *idesc = &crisv32f_insn_data[itype];
3692     CGEN_INSN_INT insn = base_insn;
3693 #define FLD(f) abuf->fields.sfmt_movem_m_r_v32.f
3694     UINT f_operand2;
3695     UINT f_memmode;
3696     UINT f_operand1;
3697
3698     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3699     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3700     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3701
3702   /* Record the fields for the semantic handler.  */
3703   FLD (f_operand2) = f_operand2;
3704   FLD (f_operand1) = f_operand1;
3705   FLD (f_memmode) = f_memmode;
3706   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movem_m_r_v32", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3707
3708 #if WITH_PROFILE_MODEL_P
3709   /* Record the fields for profiling.  */
3710   if (PROFILE_MODEL_P (current_cpu))
3711     {
3712       FLD (in_Rd) = f_operand2;
3713       FLD (in_Rs) = f_operand1;
3714       FLD (out_Rs) = f_operand1;
3715       FLD (out_h_gr_SI_0) = 0;
3716       FLD (out_h_gr_SI_1) = 1;
3717       FLD (out_h_gr_SI_10) = 10;
3718       FLD (out_h_gr_SI_11) = 11;
3719       FLD (out_h_gr_SI_12) = 12;
3720       FLD (out_h_gr_SI_13) = 13;
3721       FLD (out_h_gr_SI_14) = 14;
3722       FLD (out_h_gr_SI_15) = 15;
3723       FLD (out_h_gr_SI_2) = 2;
3724       FLD (out_h_gr_SI_3) = 3;
3725       FLD (out_h_gr_SI_4) = 4;
3726       FLD (out_h_gr_SI_5) = 5;
3727       FLD (out_h_gr_SI_6) = 6;
3728       FLD (out_h_gr_SI_7) = 7;
3729       FLD (out_h_gr_SI_8) = 8;
3730       FLD (out_h_gr_SI_9) = 9;
3731     }
3732 #endif
3733 #undef FLD
3734     return idesc;
3735   }
3736
3737  extract_sfmt_add_b_r:
3738   {
3739     const IDESC *idesc = &crisv32f_insn_data[itype];
3740     CGEN_INSN_INT insn = base_insn;
3741 #define FLD(f) abuf->fields.sfmt_addc_m.f
3742     UINT f_operand2;
3743     UINT f_operand1;
3744
3745     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3746     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3747
3748   /* Record the fields for the semantic handler.  */
3749   FLD (f_operand2) = f_operand2;
3750   FLD (f_operand1) = f_operand1;
3751   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));
3752
3753 #if WITH_PROFILE_MODEL_P
3754   /* Record the fields for profiling.  */
3755   if (PROFILE_MODEL_P (current_cpu))
3756     {
3757       FLD (in_Rd) = f_operand2;
3758       FLD (in_Rs) = f_operand1;
3759       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3760     }
3761 #endif
3762 #undef FLD
3763     return idesc;
3764   }
3765
3766  extract_sfmt_add_d_r:
3767   {
3768     const IDESC *idesc = &crisv32f_insn_data[itype];
3769     CGEN_INSN_INT insn = base_insn;
3770 #define FLD(f) abuf->fields.sfmt_addc_m.f
3771     UINT f_operand2;
3772     UINT f_operand1;
3773
3774     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3775     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3776
3777   /* Record the fields for the semantic handler.  */
3778   FLD (f_operand2) = f_operand2;
3779   FLD (f_operand1) = f_operand1;
3780   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));
3781
3782 #if WITH_PROFILE_MODEL_P
3783   /* Record the fields for profiling.  */
3784   if (PROFILE_MODEL_P (current_cpu))
3785     {
3786       FLD (in_Rd) = f_operand2;
3787       FLD (in_Rs) = f_operand1;
3788       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3789     }
3790 #endif
3791 #undef FLD
3792     return idesc;
3793   }
3794
3795  extract_sfmt_add_m_b_m:
3796   {
3797     const IDESC *idesc = &crisv32f_insn_data[itype];
3798     CGEN_INSN_INT insn = base_insn;
3799 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3800     UINT f_operand2;
3801     UINT f_memmode;
3802     UINT f_operand1;
3803
3804     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3805     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3806     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3807
3808   /* Record the fields for the semantic handler.  */
3809   FLD (f_operand2) = f_operand2;
3810   FLD (f_operand1) = f_operand1;
3811   FLD (f_memmode) = f_memmode;
3812   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));
3813
3814 #if WITH_PROFILE_MODEL_P
3815   /* Record the fields for profiling.  */
3816   if (PROFILE_MODEL_P (current_cpu))
3817     {
3818       FLD (in_Rd) = f_operand2;
3819       FLD (in_Rs) = f_operand1;
3820       FLD (out_Rs) = f_operand1;
3821       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)));
3822     }
3823 #endif
3824 #undef FLD
3825     return idesc;
3826   }
3827
3828  extract_sfmt_add_m_w_m:
3829   {
3830     const IDESC *idesc = &crisv32f_insn_data[itype];
3831     CGEN_INSN_INT insn = base_insn;
3832 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3833     UINT f_operand2;
3834     UINT f_memmode;
3835     UINT f_operand1;
3836
3837     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3838     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3839     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3840
3841   /* Record the fields for the semantic handler.  */
3842   FLD (f_operand2) = f_operand2;
3843   FLD (f_operand1) = f_operand1;
3844   FLD (f_memmode) = f_memmode;
3845   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));
3846
3847 #if WITH_PROFILE_MODEL_P
3848   /* Record the fields for profiling.  */
3849   if (PROFILE_MODEL_P (current_cpu))
3850     {
3851       FLD (in_Rd) = f_operand2;
3852       FLD (in_Rs) = f_operand1;
3853       FLD (out_Rs) = f_operand1;
3854       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)));
3855     }
3856 #endif
3857 #undef FLD
3858     return idesc;
3859   }
3860
3861  extract_sfmt_add_m_d_m:
3862   {
3863     const IDESC *idesc = &crisv32f_insn_data[itype];
3864     CGEN_INSN_INT insn = base_insn;
3865 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3866     UINT f_operand2;
3867     UINT f_memmode;
3868     UINT f_operand1;
3869
3870     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3871     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3872     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3873
3874   /* Record the fields for the semantic handler.  */
3875   FLD (f_operand2) = f_operand2;
3876   FLD (f_operand1) = f_operand1;
3877   FLD (f_memmode) = f_memmode;
3878   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));
3879
3880 #if WITH_PROFILE_MODEL_P
3881   /* Record the fields for profiling.  */
3882   if (PROFILE_MODEL_P (current_cpu))
3883     {
3884       FLD (in_Rd) = f_operand2;
3885       FLD (in_Rs) = f_operand1;
3886       FLD (out_Rs) = f_operand1;
3887       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)));
3888     }
3889 #endif
3890 #undef FLD
3891     return idesc;
3892   }
3893
3894  extract_sfmt_addcbr:
3895   {
3896     const IDESC *idesc = &crisv32f_insn_data[itype];
3897     CGEN_INSN_INT insn = base_insn;
3898 #define FLD(f) abuf->fields.sfmt_addcbr.f
3899     INT f_indir_pc__byte;
3900     UINT f_operand2;
3901     /* Contents of trailing part of insn.  */
3902     UINT word_1;
3903
3904   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3905     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3906     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3907
3908   /* Record the fields for the semantic handler.  */
3909   FLD (f_operand2) = f_operand2;
3910   FLD (f_indir_pc__byte) = f_indir_pc__byte;
3911   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));
3912
3913 #if WITH_PROFILE_MODEL_P
3914   /* Record the fields for profiling.  */
3915   if (PROFILE_MODEL_P (current_cpu))
3916     {
3917       FLD (in_Rd) = f_operand2;
3918       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3919     }
3920 #endif
3921 #undef FLD
3922     return idesc;
3923   }
3924
3925  extract_sfmt_addcwr:
3926   {
3927     const IDESC *idesc = &crisv32f_insn_data[itype];
3928     CGEN_INSN_INT insn = base_insn;
3929 #define FLD(f) abuf->fields.sfmt_addcwr.f
3930     INT f_indir_pc__word;
3931     UINT f_operand2;
3932     /* Contents of trailing part of insn.  */
3933     UINT word_1;
3934
3935   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3936     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3937     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3938
3939   /* Record the fields for the semantic handler.  */
3940   FLD (f_operand2) = f_operand2;
3941   FLD (f_indir_pc__word) = f_indir_pc__word;
3942   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));
3943
3944 #if WITH_PROFILE_MODEL_P
3945   /* Record the fields for profiling.  */
3946   if (PROFILE_MODEL_P (current_cpu))
3947     {
3948       FLD (in_Rd) = f_operand2;
3949       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3950     }
3951 #endif
3952 #undef FLD
3953     return idesc;
3954   }
3955
3956  extract_sfmt_addcdr:
3957   {
3958     const IDESC *idesc = &crisv32f_insn_data[itype];
3959     CGEN_INSN_INT insn = base_insn;
3960 #define FLD(f) abuf->fields.sfmt_addcdr.f
3961     INT f_indir_pc__dword;
3962     UINT f_operand2;
3963     /* Contents of trailing part of insn.  */
3964     UINT word_1;
3965
3966   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3967     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
3968     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3969
3970   /* Record the fields for the semantic handler.  */
3971   FLD (f_operand2) = f_operand2;
3972   FLD (f_indir_pc__dword) = f_indir_pc__dword;
3973   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));
3974
3975 #if WITH_PROFILE_MODEL_P
3976   /* Record the fields for profiling.  */
3977   if (PROFILE_MODEL_P (current_cpu))
3978     {
3979       FLD (in_Rd) = f_operand2;
3980       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3981     }
3982 #endif
3983 #undef FLD
3984     return idesc;
3985   }
3986
3987  extract_sfmt_adds_m_b_m:
3988   {
3989     const IDESC *idesc = &crisv32f_insn_data[itype];
3990     CGEN_INSN_INT insn = base_insn;
3991 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3992     UINT f_operand2;
3993     UINT f_memmode;
3994     UINT f_operand1;
3995
3996     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3997     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3998     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3999
4000   /* Record the fields for the semantic handler.  */
4001   FLD (f_operand2) = f_operand2;
4002   FLD (f_operand1) = f_operand1;
4003   FLD (f_memmode) = f_memmode;
4004   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));
4005
4006 #if WITH_PROFILE_MODEL_P
4007   /* Record the fields for profiling.  */
4008   if (PROFILE_MODEL_P (current_cpu))
4009     {
4010       FLD (in_Rd) = f_operand2;
4011       FLD (in_Rs) = f_operand1;
4012       FLD (out_Rs) = f_operand1;
4013       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)));
4014     }
4015 #endif
4016 #undef FLD
4017     return idesc;
4018   }
4019
4020  extract_sfmt_adds_m_w_m:
4021   {
4022     const IDESC *idesc = &crisv32f_insn_data[itype];
4023     CGEN_INSN_INT insn = base_insn;
4024 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4025     UINT f_operand2;
4026     UINT f_memmode;
4027     UINT f_operand1;
4028
4029     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4030     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4031     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4032
4033   /* Record the fields for the semantic handler.  */
4034   FLD (f_operand2) = f_operand2;
4035   FLD (f_operand1) = f_operand1;
4036   FLD (f_memmode) = f_memmode;
4037   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));
4038
4039 #if WITH_PROFILE_MODEL_P
4040   /* Record the fields for profiling.  */
4041   if (PROFILE_MODEL_P (current_cpu))
4042     {
4043       FLD (in_Rd) = f_operand2;
4044       FLD (in_Rs) = f_operand1;
4045       FLD (out_Rs) = f_operand1;
4046       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)));
4047     }
4048 #endif
4049 #undef FLD
4050     return idesc;
4051   }
4052
4053  extract_sfmt_addscbr:
4054   {
4055     const IDESC *idesc = &crisv32f_insn_data[itype];
4056     CGEN_INSN_INT insn = base_insn;
4057 #define FLD(f) abuf->fields.sfmt_addcbr.f
4058     INT f_indir_pc__byte;
4059     UINT f_operand2;
4060     /* Contents of trailing part of insn.  */
4061     UINT word_1;
4062
4063   word_1 = GETIMEMUSI (current_cpu, pc + 2);
4064     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
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   FLD (f_indir_pc__byte) = f_indir_pc__byte;
4070   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));
4071
4072 #if WITH_PROFILE_MODEL_P
4073   /* Record the fields for profiling.  */
4074   if (PROFILE_MODEL_P (current_cpu))
4075     {
4076       FLD (in_Rd) = f_operand2;
4077       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4078     }
4079 #endif
4080 #undef FLD
4081     return idesc;
4082   }
4083
4084  extract_sfmt_addscwr:
4085   {
4086     const IDESC *idesc = &crisv32f_insn_data[itype];
4087     CGEN_INSN_INT insn = base_insn;
4088 #define FLD(f) abuf->fields.sfmt_addcwr.f
4089     INT f_indir_pc__word;
4090     UINT f_operand2;
4091     /* Contents of trailing part of insn.  */
4092     UINT word_1;
4093
4094   word_1 = GETIMEMUSI (current_cpu, pc + 2);
4095     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4096     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4097
4098   /* Record the fields for the semantic handler.  */
4099   FLD (f_operand2) = f_operand2;
4100   FLD (f_indir_pc__word) = f_indir_pc__word;
4101   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));
4102
4103 #if WITH_PROFILE_MODEL_P
4104   /* Record the fields for profiling.  */
4105   if (PROFILE_MODEL_P (current_cpu))
4106     {
4107       FLD (in_Rd) = f_operand2;
4108       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4109     }
4110 #endif
4111 #undef FLD
4112     return idesc;
4113   }
4114
4115  extract_sfmt_addc_m:
4116   {
4117     const IDESC *idesc = &crisv32f_insn_data[itype];
4118     CGEN_INSN_INT insn = base_insn;
4119 #define FLD(f) abuf->fields.sfmt_addc_m.f
4120     UINT f_operand2;
4121     UINT f_memmode;
4122     UINT f_operand1;
4123
4124     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4125     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4126     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4127
4128   /* Record the fields for the semantic handler.  */
4129   FLD (f_operand2) = f_operand2;
4130   FLD (f_operand1) = f_operand1;
4131   FLD (f_memmode) = f_memmode;
4132   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addc_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4133
4134 #if WITH_PROFILE_MODEL_P
4135   /* Record the fields for profiling.  */
4136   if (PROFILE_MODEL_P (current_cpu))
4137     {
4138       FLD (in_Rd) = f_operand2;
4139       FLD (in_Rs) = f_operand1;
4140       FLD (out_Rs) = f_operand1;
4141       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4142     }
4143 #endif
4144 #undef FLD
4145     return idesc;
4146   }
4147
4148  extract_sfmt_lapc_d:
4149   {
4150     const IDESC *idesc = &crisv32f_insn_data[itype];
4151     CGEN_INSN_INT insn = base_insn;
4152 #define FLD(f) abuf->fields.sfmt_lapc_d.f
4153     SI f_indir_pc__dword_pcrel;
4154     UINT f_operand2;
4155     /* Contents of trailing part of insn.  */
4156     UINT word_1;
4157
4158   word_1 = GETIMEMUSI (current_cpu, pc + 2);
4159     f_indir_pc__dword_pcrel = ((pc) + ((0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0))));
4160     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4161
4162   /* Record the fields for the semantic handler.  */
4163   FLD (f_operand2) = f_operand2;
4164   FLD (i_const32_pcrel) = f_indir_pc__dword_pcrel;
4165   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lapc_d", "f_operand2 0x%x", 'x', f_operand2, "const32_pcrel 0x%x", 'x', f_indir_pc__dword_pcrel, (char *) 0));
4166
4167 #if WITH_PROFILE_MODEL_P
4168   /* Record the fields for profiling.  */
4169   if (PROFILE_MODEL_P (current_cpu))
4170     {
4171       FLD (out_Rd) = f_operand2;
4172     }
4173 #endif
4174 #undef FLD
4175     return idesc;
4176   }
4177
4178  extract_sfmt_lapcq:
4179   {
4180     const IDESC *idesc = &crisv32f_insn_data[itype];
4181     CGEN_INSN_INT insn = base_insn;
4182 #define FLD(f) abuf->fields.sfmt_lapcq.f
4183     UINT f_operand2;
4184     SI f_qo;
4185
4186     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4187     f_qo = ((pc) + (((EXTRACT_LSB0_UINT (insn, 16, 3, 4)) << (1))));
4188
4189   /* Record the fields for the semantic handler.  */
4190   FLD (f_operand2) = f_operand2;
4191   FLD (i_qo) = f_qo;
4192   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lapcq", "f_operand2 0x%x", 'x', f_operand2, "qo 0x%x", 'x', f_qo, (char *) 0));
4193
4194 #if WITH_PROFILE_MODEL_P
4195   /* Record the fields for profiling.  */
4196   if (PROFILE_MODEL_P (current_cpu))
4197     {
4198       FLD (out_Rd) = f_operand2;
4199     }
4200 #endif
4201 #undef FLD
4202     return idesc;
4203   }
4204
4205  extract_sfmt_addi_b_r:
4206   {
4207     const IDESC *idesc = &crisv32f_insn_data[itype];
4208     CGEN_INSN_INT insn = base_insn;
4209 #define FLD(f) abuf->fields.sfmt_addc_m.f
4210     UINT f_operand2;
4211     UINT f_operand1;
4212
4213     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4214     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4215
4216   /* Record the fields for the semantic handler.  */
4217   FLD (f_operand2) = f_operand2;
4218   FLD (f_operand1) = f_operand1;
4219   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));
4220
4221 #if WITH_PROFILE_MODEL_P
4222   /* Record the fields for profiling.  */
4223   if (PROFILE_MODEL_P (current_cpu))
4224     {
4225       FLD (in_Rd) = f_operand2;
4226       FLD (in_Rs) = f_operand1;
4227       FLD (out_Rs) = f_operand1;
4228     }
4229 #endif
4230 #undef FLD
4231     return idesc;
4232   }
4233
4234  extract_sfmt_neg_b_r:
4235   {
4236     const IDESC *idesc = &crisv32f_insn_data[itype];
4237     CGEN_INSN_INT insn = base_insn;
4238 #define FLD(f) abuf->fields.sfmt_addc_m.f
4239     UINT f_operand2;
4240     UINT f_operand1;
4241
4242     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4243     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4244
4245   /* Record the fields for the semantic handler.  */
4246   FLD (f_operand1) = f_operand1;
4247   FLD (f_operand2) = f_operand2;
4248   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));
4249
4250 #if WITH_PROFILE_MODEL_P
4251   /* Record the fields for profiling.  */
4252   if (PROFILE_MODEL_P (current_cpu))
4253     {
4254       FLD (in_Rs) = f_operand1;
4255       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4256     }
4257 #endif
4258 #undef FLD
4259     return idesc;
4260   }
4261
4262  extract_sfmt_neg_d_r:
4263   {
4264     const IDESC *idesc = &crisv32f_insn_data[itype];
4265     CGEN_INSN_INT insn = base_insn;
4266 #define FLD(f) abuf->fields.sfmt_addc_m.f
4267     UINT f_operand2;
4268     UINT f_operand1;
4269
4270     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4271     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4272
4273   /* Record the fields for the semantic handler.  */
4274   FLD (f_operand1) = f_operand1;
4275   FLD (f_operand2) = f_operand2;
4276   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));
4277
4278 #if WITH_PROFILE_MODEL_P
4279   /* Record the fields for profiling.  */
4280   if (PROFILE_MODEL_P (current_cpu))
4281     {
4282       FLD (in_Rs) = f_operand1;
4283       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4284     }
4285 #endif
4286 #undef FLD
4287     return idesc;
4288   }
4289
4290  extract_sfmt_test_m_b_m:
4291   {
4292     const IDESC *idesc = &crisv32f_insn_data[itype];
4293     CGEN_INSN_INT insn = base_insn;
4294 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
4295     UINT f_memmode;
4296     UINT f_operand1;
4297
4298     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4299     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4300
4301   /* Record the fields for the semantic handler.  */
4302   FLD (f_operand1) = f_operand1;
4303   FLD (f_memmode) = f_memmode;
4304   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));
4305
4306 #if WITH_PROFILE_MODEL_P
4307   /* Record the fields for profiling.  */
4308   if (PROFILE_MODEL_P (current_cpu))
4309     {
4310       FLD (in_Rs) = f_operand1;
4311       FLD (out_Rs) = f_operand1;
4312     }
4313 #endif
4314 #undef FLD
4315     return idesc;
4316   }
4317
4318  extract_sfmt_test_m_w_m:
4319   {
4320     const IDESC *idesc = &crisv32f_insn_data[itype];
4321     CGEN_INSN_INT insn = base_insn;
4322 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
4323     UINT f_memmode;
4324     UINT f_operand1;
4325
4326     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4327     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4328
4329   /* Record the fields for the semantic handler.  */
4330   FLD (f_operand1) = f_operand1;
4331   FLD (f_memmode) = f_memmode;
4332   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));
4333
4334 #if WITH_PROFILE_MODEL_P
4335   /* Record the fields for profiling.  */
4336   if (PROFILE_MODEL_P (current_cpu))
4337     {
4338       FLD (in_Rs) = f_operand1;
4339       FLD (out_Rs) = f_operand1;
4340     }
4341 #endif
4342 #undef FLD
4343     return idesc;
4344   }
4345
4346  extract_sfmt_test_m_d_m:
4347   {
4348     const IDESC *idesc = &crisv32f_insn_data[itype];
4349     CGEN_INSN_INT insn = base_insn;
4350 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
4351     UINT f_memmode;
4352     UINT f_operand1;
4353
4354     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4355     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4356
4357   /* Record the fields for the semantic handler.  */
4358   FLD (f_operand1) = f_operand1;
4359   FLD (f_memmode) = f_memmode;
4360   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));
4361
4362 #if WITH_PROFILE_MODEL_P
4363   /* Record the fields for profiling.  */
4364   if (PROFILE_MODEL_P (current_cpu))
4365     {
4366       FLD (in_Rs) = f_operand1;
4367       FLD (out_Rs) = f_operand1;
4368     }
4369 #endif
4370 #undef FLD
4371     return idesc;
4372   }
4373
4374  extract_sfmt_move_r_m_b_m:
4375   {
4376     const IDESC *idesc = &crisv32f_insn_data[itype];
4377     CGEN_INSN_INT insn = base_insn;
4378 #define FLD(f) abuf->fields.sfmt_addc_m.f
4379     UINT f_operand2;
4380     UINT f_memmode;
4381     UINT f_operand1;
4382
4383     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4384     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4385     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4386
4387   /* Record the fields for the semantic handler.  */
4388   FLD (f_operand2) = f_operand2;
4389   FLD (f_operand1) = f_operand1;
4390   FLD (f_memmode) = f_memmode;
4391   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));
4392
4393 #if WITH_PROFILE_MODEL_P
4394   /* Record the fields for profiling.  */
4395   if (PROFILE_MODEL_P (current_cpu))
4396     {
4397       FLD (in_Rd) = f_operand2;
4398       FLD (in_Rs) = f_operand1;
4399       FLD (out_Rs) = f_operand1;
4400     }
4401 #endif
4402 #undef FLD
4403     return idesc;
4404   }
4405
4406  extract_sfmt_move_r_m_w_m:
4407   {
4408     const IDESC *idesc = &crisv32f_insn_data[itype];
4409     CGEN_INSN_INT insn = base_insn;
4410 #define FLD(f) abuf->fields.sfmt_addc_m.f
4411     UINT f_operand2;
4412     UINT f_memmode;
4413     UINT f_operand1;
4414
4415     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4416     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4417     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4418
4419   /* Record the fields for the semantic handler.  */
4420   FLD (f_operand2) = f_operand2;
4421   FLD (f_operand1) = f_operand1;
4422   FLD (f_memmode) = f_memmode;
4423   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));
4424
4425 #if WITH_PROFILE_MODEL_P
4426   /* Record the fields for profiling.  */
4427   if (PROFILE_MODEL_P (current_cpu))
4428     {
4429       FLD (in_Rd) = f_operand2;
4430       FLD (in_Rs) = f_operand1;
4431       FLD (out_Rs) = f_operand1;
4432     }
4433 #endif
4434 #undef FLD
4435     return idesc;
4436   }
4437
4438  extract_sfmt_move_r_m_d_m:
4439   {
4440     const IDESC *idesc = &crisv32f_insn_data[itype];
4441     CGEN_INSN_INT insn = base_insn;
4442 #define FLD(f) abuf->fields.sfmt_addc_m.f
4443     UINT f_operand2;
4444     UINT f_memmode;
4445     UINT f_operand1;
4446
4447     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4448     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4449     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4450
4451   /* Record the fields for the semantic handler.  */
4452   FLD (f_operand2) = f_operand2;
4453   FLD (f_operand1) = f_operand1;
4454   FLD (f_memmode) = f_memmode;
4455   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));
4456
4457 #if WITH_PROFILE_MODEL_P
4458   /* Record the fields for profiling.  */
4459   if (PROFILE_MODEL_P (current_cpu))
4460     {
4461       FLD (in_Rd) = f_operand2;
4462       FLD (in_Rs) = f_operand1;
4463       FLD (out_Rs) = f_operand1;
4464     }
4465 #endif
4466 #undef FLD
4467     return idesc;
4468   }
4469
4470  extract_sfmt_muls_b:
4471   {
4472     const IDESC *idesc = &crisv32f_insn_data[itype];
4473     CGEN_INSN_INT insn = base_insn;
4474 #define FLD(f) abuf->fields.sfmt_muls_b.f
4475     UINT f_operand2;
4476     UINT f_operand1;
4477
4478     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4479     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4480
4481   /* Record the fields for the semantic handler.  */
4482   FLD (f_operand2) = f_operand2;
4483   FLD (f_operand1) = f_operand1;
4484   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));
4485
4486 #if WITH_PROFILE_MODEL_P
4487   /* Record the fields for profiling.  */
4488   if (PROFILE_MODEL_P (current_cpu))
4489     {
4490       FLD (in_Rd) = f_operand2;
4491       FLD (in_Rs) = f_operand1;
4492       FLD (out_Rd) = f_operand2;
4493       FLD (out_h_sr_SI_7) = 7;
4494     }
4495 #endif
4496 #undef FLD
4497     return idesc;
4498   }
4499
4500  extract_sfmt_mcp:
4501   {
4502     const IDESC *idesc = &crisv32f_insn_data[itype];
4503     CGEN_INSN_INT insn = base_insn;
4504 #define FLD(f) abuf->fields.sfmt_mcp.f
4505     UINT f_operand2;
4506     UINT f_operand1;
4507
4508     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4509     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4510
4511   /* Record the fields for the semantic handler.  */
4512   FLD (f_operand2) = f_operand2;
4513   FLD (f_operand1) = f_operand1;
4514   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mcp", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4515
4516 #if WITH_PROFILE_MODEL_P
4517   /* Record the fields for profiling.  */
4518   if (PROFILE_MODEL_P (current_cpu))
4519     {
4520       FLD (in_Ps) = f_operand2;
4521       FLD (in_Rs) = f_operand1;
4522       FLD (out_h_gr_SI_index_of__DFLT_Rs) = FLD (f_operand1);
4523     }
4524 #endif
4525 #undef FLD
4526     return idesc;
4527   }
4528
4529  extract_sfmt_dstep:
4530   {
4531     const IDESC *idesc = &crisv32f_insn_data[itype];
4532     CGEN_INSN_INT insn = base_insn;
4533 #define FLD(f) abuf->fields.sfmt_muls_b.f
4534     UINT f_operand2;
4535     UINT f_operand1;
4536
4537     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4538     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4539
4540   /* Record the fields for the semantic handler.  */
4541   FLD (f_operand2) = f_operand2;
4542   FLD (f_operand1) = f_operand1;
4543   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));
4544
4545 #if WITH_PROFILE_MODEL_P
4546   /* Record the fields for profiling.  */
4547   if (PROFILE_MODEL_P (current_cpu))
4548     {
4549       FLD (in_Rd) = f_operand2;
4550       FLD (in_Rs) = f_operand1;
4551       FLD (out_Rd) = f_operand2;
4552     }
4553 #endif
4554 #undef FLD
4555     return idesc;
4556   }
4557
4558  extract_sfmt_and_b_r:
4559   {
4560     const IDESC *idesc = &crisv32f_insn_data[itype];
4561     CGEN_INSN_INT insn = base_insn;
4562 #define FLD(f) abuf->fields.sfmt_addc_m.f
4563     UINT f_operand2;
4564     UINT f_operand1;
4565
4566     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4567     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4568
4569   /* Record the fields for the semantic handler.  */
4570   FLD (f_operand2) = f_operand2;
4571   FLD (f_operand1) = f_operand1;
4572   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));
4573
4574 #if WITH_PROFILE_MODEL_P
4575   /* Record the fields for profiling.  */
4576   if (PROFILE_MODEL_P (current_cpu))
4577     {
4578       FLD (in_Rd) = f_operand2;
4579       FLD (in_Rs) = f_operand1;
4580       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4581     }
4582 #endif
4583 #undef FLD
4584     return idesc;
4585   }
4586
4587  extract_sfmt_and_w_r:
4588   {
4589     const IDESC *idesc = &crisv32f_insn_data[itype];
4590     CGEN_INSN_INT insn = base_insn;
4591 #define FLD(f) abuf->fields.sfmt_addc_m.f
4592     UINT f_operand2;
4593     UINT f_operand1;
4594
4595     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4596     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4597
4598   /* Record the fields for the semantic handler.  */
4599   FLD (f_operand2) = f_operand2;
4600   FLD (f_operand1) = f_operand1;
4601   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));
4602
4603 #if WITH_PROFILE_MODEL_P
4604   /* Record the fields for profiling.  */
4605   if (PROFILE_MODEL_P (current_cpu))
4606     {
4607       FLD (in_Rd) = f_operand2;
4608       FLD (in_Rs) = f_operand1;
4609       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4610     }
4611 #endif
4612 #undef FLD
4613     return idesc;
4614   }
4615
4616  extract_sfmt_and_d_r:
4617   {
4618     const IDESC *idesc = &crisv32f_insn_data[itype];
4619     CGEN_INSN_INT insn = base_insn;
4620 #define FLD(f) abuf->fields.sfmt_addc_m.f
4621     UINT f_operand2;
4622     UINT f_operand1;
4623
4624     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4625     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4626
4627   /* Record the fields for the semantic handler.  */
4628   FLD (f_operand2) = f_operand2;
4629   FLD (f_operand1) = f_operand1;
4630   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));
4631
4632 #if WITH_PROFILE_MODEL_P
4633   /* Record the fields for profiling.  */
4634   if (PROFILE_MODEL_P (current_cpu))
4635     {
4636       FLD (in_Rd) = f_operand2;
4637       FLD (in_Rs) = f_operand1;
4638       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4639     }
4640 #endif
4641 #undef FLD
4642     return idesc;
4643   }
4644
4645  extract_sfmt_and_m_b_m:
4646   {
4647     const IDESC *idesc = &crisv32f_insn_data[itype];
4648     CGEN_INSN_INT insn = base_insn;
4649 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4650     UINT f_operand2;
4651     UINT f_memmode;
4652     UINT f_operand1;
4653
4654     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4655     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4656     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4657
4658   /* Record the fields for the semantic handler.  */
4659   FLD (f_operand2) = f_operand2;
4660   FLD (f_operand1) = f_operand1;
4661   FLD (f_memmode) = f_memmode;
4662   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));
4663
4664 #if WITH_PROFILE_MODEL_P
4665   /* Record the fields for profiling.  */
4666   if (PROFILE_MODEL_P (current_cpu))
4667     {
4668       FLD (in_Rd) = f_operand2;
4669       FLD (in_Rs) = f_operand1;
4670       FLD (out_Rs) = f_operand1;
4671       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)));
4672     }
4673 #endif
4674 #undef FLD
4675     return idesc;
4676   }
4677
4678  extract_sfmt_and_m_w_m:
4679   {
4680     const IDESC *idesc = &crisv32f_insn_data[itype];
4681     CGEN_INSN_INT insn = base_insn;
4682 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4683     UINT f_operand2;
4684     UINT f_memmode;
4685     UINT f_operand1;
4686
4687     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4688     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4689     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4690
4691   /* Record the fields for the semantic handler.  */
4692   FLD (f_operand2) = f_operand2;
4693   FLD (f_operand1) = f_operand1;
4694   FLD (f_memmode) = f_memmode;
4695   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));
4696
4697 #if WITH_PROFILE_MODEL_P
4698   /* Record the fields for profiling.  */
4699   if (PROFILE_MODEL_P (current_cpu))
4700     {
4701       FLD (in_Rd) = f_operand2;
4702       FLD (in_Rs) = f_operand1;
4703       FLD (out_Rs) = f_operand1;
4704       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)));
4705     }
4706 #endif
4707 #undef FLD
4708     return idesc;
4709   }
4710
4711  extract_sfmt_and_m_d_m:
4712   {
4713     const IDESC *idesc = &crisv32f_insn_data[itype];
4714     CGEN_INSN_INT insn = base_insn;
4715 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4716     UINT f_operand2;
4717     UINT f_memmode;
4718     UINT f_operand1;
4719
4720     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4721     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4722     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4723
4724   /* Record the fields for the semantic handler.  */
4725   FLD (f_operand2) = f_operand2;
4726   FLD (f_operand1) = f_operand1;
4727   FLD (f_memmode) = f_memmode;
4728   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));
4729
4730 #if WITH_PROFILE_MODEL_P
4731   /* Record the fields for profiling.  */
4732   if (PROFILE_MODEL_P (current_cpu))
4733     {
4734       FLD (in_Rd) = f_operand2;
4735       FLD (in_Rs) = f_operand1;
4736       FLD (out_Rs) = f_operand1;
4737       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)));
4738     }
4739 #endif
4740 #undef FLD
4741     return idesc;
4742   }
4743
4744  extract_sfmt_andcbr:
4745   {
4746     const IDESC *idesc = &crisv32f_insn_data[itype];
4747     CGEN_INSN_INT insn = base_insn;
4748 #define FLD(f) abuf->fields.sfmt_addcbr.f
4749     INT f_indir_pc__byte;
4750     UINT f_operand2;
4751     /* Contents of trailing part of insn.  */
4752     UINT word_1;
4753
4754   word_1 = GETIMEMUSI (current_cpu, pc + 2);
4755     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4756     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4757
4758   /* Record the fields for the semantic handler.  */
4759   FLD (f_operand2) = f_operand2;
4760   FLD (f_indir_pc__byte) = f_indir_pc__byte;
4761   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));
4762
4763 #if WITH_PROFILE_MODEL_P
4764   /* Record the fields for profiling.  */
4765   if (PROFILE_MODEL_P (current_cpu))
4766     {
4767       FLD (in_Rd) = f_operand2;
4768       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4769     }
4770 #endif
4771 #undef FLD
4772     return idesc;
4773   }
4774
4775  extract_sfmt_andcwr:
4776   {
4777     const IDESC *idesc = &crisv32f_insn_data[itype];
4778     CGEN_INSN_INT insn = base_insn;
4779 #define FLD(f) abuf->fields.sfmt_addcwr.f
4780     INT f_indir_pc__word;
4781     UINT f_operand2;
4782     /* Contents of trailing part of insn.  */
4783     UINT word_1;
4784
4785   word_1 = GETIMEMUSI (current_cpu, pc + 2);
4786     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4787     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4788
4789   /* Record the fields for the semantic handler.  */
4790   FLD (f_operand2) = f_operand2;
4791   FLD (f_indir_pc__word) = f_indir_pc__word;
4792   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));
4793
4794 #if WITH_PROFILE_MODEL_P
4795   /* Record the fields for profiling.  */
4796   if (PROFILE_MODEL_P (current_cpu))
4797     {
4798       FLD (in_Rd) = f_operand2;
4799       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4800     }
4801 #endif
4802 #undef FLD
4803     return idesc;
4804   }
4805
4806  extract_sfmt_andcdr:
4807   {
4808     const IDESC *idesc = &crisv32f_insn_data[itype];
4809     CGEN_INSN_INT insn = base_insn;
4810 #define FLD(f) abuf->fields.sfmt_addcdr.f
4811     INT f_indir_pc__dword;
4812     UINT f_operand2;
4813     /* Contents of trailing part of insn.  */
4814     UINT word_1;
4815
4816   word_1 = GETIMEMUSI (current_cpu, pc + 2);
4817     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
4818     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4819
4820   /* Record the fields for the semantic handler.  */
4821   FLD (f_operand2) = f_operand2;
4822   FLD (f_indir_pc__dword) = f_indir_pc__dword;
4823   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));
4824
4825 #if WITH_PROFILE_MODEL_P
4826   /* Record the fields for profiling.  */
4827   if (PROFILE_MODEL_P (current_cpu))
4828     {
4829       FLD (in_Rd) = f_operand2;
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_andq:
4838   {
4839     const IDESC *idesc = &crisv32f_insn_data[itype];
4840     CGEN_INSN_INT insn = base_insn;
4841 #define FLD(f) abuf->fields.sfmt_andq.f
4842     UINT f_operand2;
4843     INT f_s6;
4844
4845     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4846     f_s6 = EXTRACT_LSB0_INT (insn, 16, 5, 6);
4847
4848   /* Record the fields for the semantic handler.  */
4849   FLD (f_operand2) = f_operand2;
4850   FLD (f_s6) = f_s6;
4851   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));
4852
4853 #if WITH_PROFILE_MODEL_P
4854   /* Record the fields for profiling.  */
4855   if (PROFILE_MODEL_P (current_cpu))
4856     {
4857       FLD (in_Rd) = f_operand2;
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_swap:
4866   {
4867     const IDESC *idesc = &crisv32f_insn_data[itype];
4868     CGEN_INSN_INT insn = base_insn;
4869 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
4870     UINT f_operand2;
4871     UINT f_operand1;
4872
4873     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
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_operand2) = f_operand2;
4879   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));
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_asrr_b_r:
4894   {
4895     const IDESC *idesc = &crisv32f_insn_data[itype];
4896     CGEN_INSN_INT insn = base_insn;
4897 #define FLD(f) abuf->fields.sfmt_addc_m.f
4898     UINT f_operand2;
4899     UINT f_operand1;
4900
4901     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4902     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4903
4904   /* Record the fields for the semantic handler.  */
4905   FLD (f_operand2) = f_operand2;
4906   FLD (f_operand1) = f_operand1;
4907   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));
4908
4909 #if WITH_PROFILE_MODEL_P
4910   /* Record the fields for profiling.  */
4911   if (PROFILE_MODEL_P (current_cpu))
4912     {
4913       FLD (in_Rd) = f_operand2;
4914       FLD (in_Rs) = f_operand1;
4915       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4916     }
4917 #endif
4918 #undef FLD
4919     return idesc;
4920   }
4921
4922  extract_sfmt_asrq:
4923   {
4924     const IDESC *idesc = &crisv32f_insn_data[itype];
4925     CGEN_INSN_INT insn = base_insn;
4926 #define FLD(f) abuf->fields.sfmt_asrq.f
4927     UINT f_operand2;
4928     UINT f_u5;
4929
4930     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4931     f_u5 = EXTRACT_LSB0_UINT (insn, 16, 4, 5);
4932
4933   /* Record the fields for the semantic handler.  */
4934   FLD (f_operand2) = f_operand2;
4935   FLD (f_u5) = f_u5;
4936   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));
4937
4938 #if WITH_PROFILE_MODEL_P
4939   /* Record the fields for profiling.  */
4940   if (PROFILE_MODEL_P (current_cpu))
4941     {
4942       FLD (in_Rd) = f_operand2;
4943       FLD (out_Rd) = f_operand2;
4944     }
4945 #endif
4946 #undef FLD
4947     return idesc;
4948   }
4949
4950  extract_sfmt_lsrr_b_r:
4951   {
4952     const IDESC *idesc = &crisv32f_insn_data[itype];
4953     CGEN_INSN_INT insn = base_insn;
4954 #define FLD(f) abuf->fields.sfmt_addc_m.f
4955     UINT f_operand2;
4956     UINT f_operand1;
4957
4958     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4959     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4960
4961   /* Record the fields for the semantic handler.  */
4962   FLD (f_operand2) = f_operand2;
4963   FLD (f_operand1) = f_operand1;
4964   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));
4965
4966 #if WITH_PROFILE_MODEL_P
4967   /* Record the fields for profiling.  */
4968   if (PROFILE_MODEL_P (current_cpu))
4969     {
4970       FLD (in_Rd) = f_operand2;
4971       FLD (in_Rs) = f_operand1;
4972       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4973     }
4974 #endif
4975 #undef FLD
4976     return idesc;
4977   }
4978
4979  extract_sfmt_lsrr_d_r:
4980   {
4981     const IDESC *idesc = &crisv32f_insn_data[itype];
4982     CGEN_INSN_INT insn = base_insn;
4983 #define FLD(f) abuf->fields.sfmt_addc_m.f
4984     UINT f_operand2;
4985     UINT f_operand1;
4986
4987     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4988     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4989
4990   /* Record the fields for the semantic handler.  */
4991   FLD (f_operand2) = f_operand2;
4992   FLD (f_operand1) = f_operand1;
4993   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));
4994
4995 #if WITH_PROFILE_MODEL_P
4996   /* Record the fields for profiling.  */
4997   if (PROFILE_MODEL_P (current_cpu))
4998     {
4999       FLD (in_Rd) = f_operand2;
5000       FLD (in_Rs) = f_operand1;
5001       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
5002     }
5003 #endif
5004 #undef FLD
5005     return idesc;
5006   }
5007
5008  extract_sfmt_btst:
5009   {
5010     const IDESC *idesc = &crisv32f_insn_data[itype];
5011     CGEN_INSN_INT insn = base_insn;
5012 #define FLD(f) abuf->fields.sfmt_muls_b.f
5013     UINT f_operand2;
5014     UINT f_operand1;
5015
5016     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5017     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5018
5019   /* Record the fields for the semantic handler.  */
5020   FLD (f_operand2) = f_operand2;
5021   FLD (f_operand1) = f_operand1;
5022   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));
5023
5024 #if WITH_PROFILE_MODEL_P
5025   /* Record the fields for profiling.  */
5026   if (PROFILE_MODEL_P (current_cpu))
5027     {
5028       FLD (in_Rd) = f_operand2;
5029       FLD (in_Rs) = f_operand1;
5030     }
5031 #endif
5032 #undef FLD
5033     return idesc;
5034   }
5035
5036  extract_sfmt_btstq:
5037   {
5038     const IDESC *idesc = &crisv32f_insn_data[itype];
5039     CGEN_INSN_INT insn = base_insn;
5040 #define FLD(f) abuf->fields.sfmt_asrq.f
5041     UINT f_operand2;
5042     UINT f_u5;
5043
5044     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5045     f_u5 = EXTRACT_LSB0_UINT (insn, 16, 4, 5);
5046
5047   /* Record the fields for the semantic handler.  */
5048   FLD (f_operand2) = f_operand2;
5049   FLD (f_u5) = f_u5;
5050   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));
5051
5052 #if WITH_PROFILE_MODEL_P
5053   /* Record the fields for profiling.  */
5054   if (PROFILE_MODEL_P (current_cpu))
5055     {
5056       FLD (in_Rd) = f_operand2;
5057     }
5058 #endif
5059 #undef FLD
5060     return idesc;
5061   }
5062
5063  extract_sfmt_setf:
5064   {
5065     const IDESC *idesc = &crisv32f_insn_data[itype];
5066     CGEN_INSN_INT insn = base_insn;
5067 #define FLD(f) abuf->fields.sfmt_setf.f
5068     UINT f_operand2;
5069     UINT f_operand1;
5070     UINT f_dstsrc;
5071
5072     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5073     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5074   f_dstsrc = ((((f_operand1) | (((f_operand2) << (4))))) & (255));
5075
5076   /* Record the fields for the semantic handler.  */
5077   FLD (f_dstsrc) = f_dstsrc;
5078   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_setf", "f_dstsrc 0x%x", 'x', f_dstsrc, (char *) 0));
5079
5080 #undef FLD
5081     return idesc;
5082   }
5083
5084  extract_sfmt_rfe:
5085   {
5086     const IDESC *idesc = &crisv32f_insn_data[itype];
5087 #define FLD(f) abuf->fields.sfmt_rfe.f
5088
5089
5090   /* Record the fields for the semantic handler.  */
5091   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rfe", (char *) 0));
5092
5093 #if WITH_PROFILE_MODEL_P
5094   /* Record the fields for profiling.  */
5095   if (PROFILE_MODEL_P (current_cpu))
5096     {
5097       FLD (in_h_sr_SI_13) = 13;
5098       FLD (out_h_sr_SI_13) = 13;
5099     }
5100 #endif
5101 #undef FLD
5102     return idesc;
5103   }
5104
5105  extract_sfmt_sfe:
5106   {
5107     const IDESC *idesc = &crisv32f_insn_data[itype];
5108 #define FLD(f) abuf->fields.sfmt_rfe.f
5109
5110
5111   /* Record the fields for the semantic handler.  */
5112   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sfe", (char *) 0));
5113
5114 #if WITH_PROFILE_MODEL_P
5115   /* Record the fields for profiling.  */
5116   if (PROFILE_MODEL_P (current_cpu))
5117     {
5118       FLD (in_h_sr_SI_13) = 13;
5119       FLD (out_h_sr_SI_13) = 13;
5120     }
5121 #endif
5122 #undef FLD
5123     return idesc;
5124   }
5125
5126  extract_sfmt_rfg:
5127   {
5128     const IDESC *idesc = &crisv32f_insn_data[itype];
5129 #define FLD(f) abuf->fields.fmt_empty.f
5130
5131
5132   /* Record the fields for the semantic handler.  */
5133   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rfg", (char *) 0));
5134
5135 #if WITH_PROFILE_MODEL_P
5136   /* Record the fields for profiling.  */
5137   if (PROFILE_MODEL_P (current_cpu))
5138     {
5139     }
5140 #endif
5141 #undef FLD
5142     return idesc;
5143   }
5144
5145  extract_sfmt_rfn:
5146   {
5147     const IDESC *idesc = &crisv32f_insn_data[itype];
5148 #define FLD(f) abuf->fields.sfmt_rfe.f
5149
5150
5151   /* Record the fields for the semantic handler.  */
5152   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rfn", (char *) 0));
5153
5154 #if WITH_PROFILE_MODEL_P
5155   /* Record the fields for profiling.  */
5156   if (PROFILE_MODEL_P (current_cpu))
5157     {
5158       FLD (in_h_sr_SI_13) = 13;
5159       FLD (out_h_sr_SI_13) = 13;
5160     }
5161 #endif
5162 #undef FLD
5163     return idesc;
5164   }
5165
5166  extract_sfmt_halt:
5167   {
5168     const IDESC *idesc = &crisv32f_insn_data[itype];
5169 #define FLD(f) abuf->fields.fmt_empty.f
5170
5171
5172   /* Record the fields for the semantic handler.  */
5173   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_halt", (char *) 0));
5174
5175 #if WITH_PROFILE_MODEL_P
5176   /* Record the fields for profiling.  */
5177   if (PROFILE_MODEL_P (current_cpu))
5178     {
5179     }
5180 #endif
5181 #undef FLD
5182     return idesc;
5183   }
5184
5185  extract_sfmt_bcc_b:
5186   {
5187     const IDESC *idesc = &crisv32f_insn_data[itype];
5188     CGEN_INSN_INT insn = base_insn;
5189 #define FLD(f) abuf->fields.sfmt_bcc_b.f
5190     UINT f_operand2;
5191     UINT f_disp9_lo;
5192     INT f_disp9_hi;
5193     INT f_disp9;
5194
5195     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5196     f_disp9_lo = EXTRACT_LSB0_UINT (insn, 16, 7, 7);
5197     f_disp9_hi = EXTRACT_LSB0_INT (insn, 16, 0, 1);
5198 {
5199   SI tmp_abslo;
5200   SI tmp_absval;
5201   tmp_abslo = ((f_disp9_lo) << (1));
5202   tmp_absval = ((((((f_disp9_hi) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo));
5203   f_disp9 = ((((pc) + (tmp_absval))) + (((GET_H_V32_V32 ()) ? (0) : (2))));
5204 }
5205
5206   /* Record the fields for the semantic handler.  */
5207   FLD (f_operand2) = f_operand2;
5208   FLD (i_o_pcrel) = f_disp9;
5209   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));
5210
5211 #if WITH_PROFILE_MODEL_P
5212   /* Record the fields for profiling.  */
5213   if (PROFILE_MODEL_P (current_cpu))
5214     {
5215     }
5216 #endif
5217 #undef FLD
5218     return idesc;
5219   }
5220
5221  extract_sfmt_ba_b:
5222   {
5223     const IDESC *idesc = &crisv32f_insn_data[itype];
5224     CGEN_INSN_INT insn = base_insn;
5225 #define FLD(f) abuf->fields.sfmt_bcc_b.f
5226     UINT f_disp9_lo;
5227     INT f_disp9_hi;
5228     INT f_disp9;
5229
5230     f_disp9_lo = EXTRACT_LSB0_UINT (insn, 16, 7, 7);
5231     f_disp9_hi = EXTRACT_LSB0_INT (insn, 16, 0, 1);
5232 {
5233   SI tmp_abslo;
5234   SI tmp_absval;
5235   tmp_abslo = ((f_disp9_lo) << (1));
5236   tmp_absval = ((((((f_disp9_hi) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo));
5237   f_disp9 = ((((pc) + (tmp_absval))) + (((GET_H_V32_V32 ()) ? (0) : (2))));
5238 }
5239
5240   /* Record the fields for the semantic handler.  */
5241   FLD (i_o_pcrel) = f_disp9;
5242   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ba_b", "o_pcrel 0x%x", 'x', f_disp9, (char *) 0));
5243
5244 #if WITH_PROFILE_MODEL_P
5245   /* Record the fields for profiling.  */
5246   if (PROFILE_MODEL_P (current_cpu))
5247     {
5248     }
5249 #endif
5250 #undef FLD
5251     return idesc;
5252   }
5253
5254  extract_sfmt_bcc_w:
5255   {
5256     const IDESC *idesc = &crisv32f_insn_data[itype];
5257     CGEN_INSN_INT insn = base_insn;
5258 #define FLD(f) abuf->fields.sfmt_bcc_w.f
5259     SI f_indir_pc__word_pcrel;
5260     UINT f_operand2;
5261     /* Contents of trailing part of insn.  */
5262     UINT word_1;
5263
5264   word_1 = GETIMEMUSI (current_cpu, pc + 2);
5265     f_indir_pc__word_pcrel = ((EXTHISI (((HI) (UINT) ((0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0)))))) + (((pc) + (((GET_H_V32_V32 ()) ? (0) : (4))))));
5266     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5267
5268   /* Record the fields for the semantic handler.  */
5269   FLD (f_operand2) = f_operand2;
5270   FLD (i_o_word_pcrel) = f_indir_pc__word_pcrel;
5271   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));
5272
5273 #if WITH_PROFILE_MODEL_P
5274   /* Record the fields for profiling.  */
5275   if (PROFILE_MODEL_P (current_cpu))
5276     {
5277     }
5278 #endif
5279 #undef FLD
5280     return idesc;
5281   }
5282
5283  extract_sfmt_ba_w:
5284   {
5285     const IDESC *idesc = &crisv32f_insn_data[itype];
5286     CGEN_INSN_INT insn = base_insn;
5287 #define FLD(f) abuf->fields.sfmt_bcc_w.f
5288     SI f_indir_pc__word_pcrel;
5289     /* Contents of trailing part of insn.  */
5290     UINT word_1;
5291
5292   word_1 = GETIMEMUSI (current_cpu, pc + 2);
5293     f_indir_pc__word_pcrel = ((EXTHISI (((HI) (UINT) ((0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0)))))) + (((pc) + (((GET_H_V32_V32 ()) ? (0) : (4))))));
5294
5295   /* Record the fields for the semantic handler.  */
5296   FLD (i_o_word_pcrel) = f_indir_pc__word_pcrel;
5297   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ba_w", "o_word_pcrel 0x%x", 'x', f_indir_pc__word_pcrel, (char *) 0));
5298
5299 #if WITH_PROFILE_MODEL_P
5300   /* Record the fields for profiling.  */
5301   if (PROFILE_MODEL_P (current_cpu))
5302     {
5303     }
5304 #endif
5305 #undef FLD
5306     return idesc;
5307   }
5308
5309  extract_sfmt_jas_r:
5310   {
5311     const IDESC *idesc = &crisv32f_insn_data[itype];
5312     CGEN_INSN_INT insn = base_insn;
5313 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
5314     UINT f_operand2;
5315     UINT f_operand1;
5316
5317     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5318     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5319
5320   /* Record the fields for the semantic handler.  */
5321   FLD (f_operand1) = f_operand1;
5322   FLD (f_operand2) = f_operand2;
5323   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jas_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
5324
5325 #if WITH_PROFILE_MODEL_P
5326   /* Record the fields for profiling.  */
5327   if (PROFILE_MODEL_P (current_cpu))
5328     {
5329       FLD (in_Rs) = f_operand1;
5330       FLD (out_Pd) = f_operand2;
5331     }
5332 #endif
5333 #undef FLD
5334     return idesc;
5335   }
5336
5337  extract_sfmt_jas_c:
5338   {
5339     const IDESC *idesc = &crisv32f_insn_data[itype];
5340     CGEN_INSN_INT insn = base_insn;
5341 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
5342     INT f_indir_pc__dword;
5343     UINT f_operand2;
5344     /* Contents of trailing part of insn.  */
5345     UINT word_1;
5346
5347   word_1 = GETIMEMUSI (current_cpu, pc + 2);
5348     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
5349     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5350
5351   /* Record the fields for the semantic handler.  */
5352   FLD (f_indir_pc__dword) = f_indir_pc__dword;
5353   FLD (f_operand2) = f_operand2;
5354   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jas_c", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
5355
5356 #if WITH_PROFILE_MODEL_P
5357   /* Record the fields for profiling.  */
5358   if (PROFILE_MODEL_P (current_cpu))
5359     {
5360       FLD (out_Pd) = f_operand2;
5361     }
5362 #endif
5363 #undef FLD
5364     return idesc;
5365   }
5366
5367  extract_sfmt_jump_p:
5368   {
5369     const IDESC *idesc = &crisv32f_insn_data[itype];
5370     CGEN_INSN_INT insn = base_insn;
5371 #define FLD(f) abuf->fields.sfmt_mcp.f
5372     UINT f_operand2;
5373
5374     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5375
5376   /* Record the fields for the semantic handler.  */
5377   FLD (f_operand2) = f_operand2;
5378   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jump_p", "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
5379
5380 #if WITH_PROFILE_MODEL_P
5381   /* Record the fields for profiling.  */
5382   if (PROFILE_MODEL_P (current_cpu))
5383     {
5384       FLD (in_Ps) = f_operand2;
5385     }
5386 #endif
5387 #undef FLD
5388     return idesc;
5389   }
5390
5391  extract_sfmt_bas_c:
5392   {
5393     const IDESC *idesc = &crisv32f_insn_data[itype];
5394     CGEN_INSN_INT insn = base_insn;
5395 #define FLD(f) abuf->fields.sfmt_bas_c.f
5396     SI f_indir_pc__dword_pcrel;
5397     UINT f_operand2;
5398     /* Contents of trailing part of insn.  */
5399     UINT word_1;
5400
5401   word_1 = GETIMEMUSI (current_cpu, pc + 2);
5402     f_indir_pc__dword_pcrel = ((pc) + ((0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0))));
5403     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5404
5405   /* Record the fields for the semantic handler.  */
5406   FLD (f_operand2) = f_operand2;
5407   FLD (i_const32_pcrel) = f_indir_pc__dword_pcrel;
5408   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bas_c", "f_operand2 0x%x", 'x', f_operand2, "const32_pcrel 0x%x", 'x', f_indir_pc__dword_pcrel, (char *) 0));
5409
5410 #if WITH_PROFILE_MODEL_P
5411   /* Record the fields for profiling.  */
5412   if (PROFILE_MODEL_P (current_cpu))
5413     {
5414       FLD (out_Pd) = f_operand2;
5415     }
5416 #endif
5417 #undef FLD
5418     return idesc;
5419   }
5420
5421  extract_sfmt_jasc_r:
5422   {
5423     const IDESC *idesc = &crisv32f_insn_data[itype];
5424     CGEN_INSN_INT insn = base_insn;
5425 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
5426     UINT f_operand2;
5427     UINT f_operand1;
5428
5429     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5430     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5431
5432   /* Record the fields for the semantic handler.  */
5433   FLD (f_operand1) = f_operand1;
5434   FLD (f_operand2) = f_operand2;
5435   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jasc_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
5436
5437 #if WITH_PROFILE_MODEL_P
5438   /* Record the fields for profiling.  */
5439   if (PROFILE_MODEL_P (current_cpu))
5440     {
5441       FLD (in_Rs) = f_operand1;
5442       FLD (out_Pd) = f_operand2;
5443     }
5444 #endif
5445 #undef FLD
5446     return idesc;
5447   }
5448
5449  extract_sfmt_break:
5450   {
5451     const IDESC *idesc = &crisv32f_insn_data[itype];
5452     CGEN_INSN_INT insn = base_insn;
5453 #define FLD(f) abuf->fields.sfmt_break.f
5454     UINT f_u4;
5455
5456     f_u4 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5457
5458   /* Record the fields for the semantic handler.  */
5459   FLD (f_u4) = f_u4;
5460   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_break", "f_u4 0x%x", 'x', f_u4, (char *) 0));
5461
5462 #if WITH_PROFILE_MODEL_P
5463   /* Record the fields for profiling.  */
5464   if (PROFILE_MODEL_P (current_cpu))
5465     {
5466     }
5467 #endif
5468 #undef FLD
5469     return idesc;
5470   }
5471
5472  extract_sfmt_bound_cb:
5473   {
5474     const IDESC *idesc = &crisv32f_insn_data[itype];
5475     CGEN_INSN_INT insn = base_insn;
5476 #define FLD(f) abuf->fields.sfmt_bound_cb.f
5477     INT f_indir_pc__byte;
5478     UINT f_operand2;
5479     /* Contents of trailing part of insn.  */
5480     UINT word_1;
5481
5482   word_1 = GETIMEMUSI (current_cpu, pc + 2);
5483     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
5484     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5485
5486   /* Record the fields for the semantic handler.  */
5487   FLD (f_operand2) = f_operand2;
5488   FLD (f_indir_pc__byte) = f_indir_pc__byte;
5489   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));
5490
5491 #if WITH_PROFILE_MODEL_P
5492   /* Record the fields for profiling.  */
5493   if (PROFILE_MODEL_P (current_cpu))
5494     {
5495       FLD (in_Rd) = f_operand2;
5496       FLD (out_Rd) = f_operand2;
5497     }
5498 #endif
5499 #undef FLD
5500     return idesc;
5501   }
5502
5503  extract_sfmt_bound_cw:
5504   {
5505     const IDESC *idesc = &crisv32f_insn_data[itype];
5506     CGEN_INSN_INT insn = base_insn;
5507 #define FLD(f) abuf->fields.sfmt_bound_cw.f
5508     INT f_indir_pc__word;
5509     UINT f_operand2;
5510     /* Contents of trailing part of insn.  */
5511     UINT word_1;
5512
5513   word_1 = GETIMEMUSI (current_cpu, pc + 2);
5514     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
5515     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5516
5517   /* Record the fields for the semantic handler.  */
5518   FLD (f_operand2) = f_operand2;
5519   FLD (f_indir_pc__word) = f_indir_pc__word;
5520   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));
5521
5522 #if WITH_PROFILE_MODEL_P
5523   /* Record the fields for profiling.  */
5524   if (PROFILE_MODEL_P (current_cpu))
5525     {
5526       FLD (in_Rd) = f_operand2;
5527       FLD (out_Rd) = f_operand2;
5528     }
5529 #endif
5530 #undef FLD
5531     return idesc;
5532   }
5533
5534  extract_sfmt_bound_cd:
5535   {
5536     const IDESC *idesc = &crisv32f_insn_data[itype];
5537     CGEN_INSN_INT insn = base_insn;
5538 #define FLD(f) abuf->fields.sfmt_bound_cd.f
5539     INT f_indir_pc__dword;
5540     UINT f_operand2;
5541     /* Contents of trailing part of insn.  */
5542     UINT word_1;
5543
5544   word_1 = GETIMEMUSI (current_cpu, pc + 2);
5545     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
5546     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5547
5548   /* Record the fields for the semantic handler.  */
5549   FLD (f_operand2) = f_operand2;
5550   FLD (f_indir_pc__dword) = f_indir_pc__dword;
5551   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));
5552
5553 #if WITH_PROFILE_MODEL_P
5554   /* Record the fields for profiling.  */
5555   if (PROFILE_MODEL_P (current_cpu))
5556     {
5557       FLD (in_Rd) = f_operand2;
5558       FLD (out_Rd) = f_operand2;
5559     }
5560 #endif
5561 #undef FLD
5562     return idesc;
5563   }
5564
5565  extract_sfmt_scc:
5566   {
5567     const IDESC *idesc = &crisv32f_insn_data[itype];
5568     CGEN_INSN_INT insn = base_insn;
5569 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
5570     UINT f_operand2;
5571     UINT f_operand1;
5572
5573     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5574     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5575
5576   /* Record the fields for the semantic handler.  */
5577   FLD (f_operand2) = f_operand2;
5578   FLD (f_operand1) = f_operand1;
5579   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));
5580
5581 #if WITH_PROFILE_MODEL_P
5582   /* Record the fields for profiling.  */
5583   if (PROFILE_MODEL_P (current_cpu))
5584     {
5585       FLD (out_Rs) = f_operand1;
5586     }
5587 #endif
5588 #undef FLD
5589     return idesc;
5590   }
5591
5592  extract_sfmt_addoq:
5593   {
5594     const IDESC *idesc = &crisv32f_insn_data[itype];
5595     CGEN_INSN_INT insn = base_insn;
5596 #define FLD(f) abuf->fields.sfmt_addoq.f
5597     UINT f_operand2;
5598     INT f_s8;
5599
5600     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5601     f_s8 = EXTRACT_LSB0_INT (insn, 16, 7, 8);
5602
5603   /* Record the fields for the semantic handler.  */
5604   FLD (f_operand2) = f_operand2;
5605   FLD (f_s8) = f_s8;
5606   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));
5607
5608 #if WITH_PROFILE_MODEL_P
5609   /* Record the fields for profiling.  */
5610   if (PROFILE_MODEL_P (current_cpu))
5611     {
5612       FLD (in_Rd) = f_operand2;
5613     }
5614 #endif
5615 #undef FLD
5616     return idesc;
5617   }
5618
5619  extract_sfmt_addo_m_b_m:
5620   {
5621     const IDESC *idesc = &crisv32f_insn_data[itype];
5622     CGEN_INSN_INT insn = base_insn;
5623 #define FLD(f) abuf->fields.sfmt_addc_m.f
5624     UINT f_operand2;
5625     UINT f_memmode;
5626     UINT f_operand1;
5627
5628     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5629     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5630     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5631
5632   /* Record the fields for the semantic handler.  */
5633   FLD (f_operand2) = f_operand2;
5634   FLD (f_operand1) = f_operand1;
5635   FLD (f_memmode) = f_memmode;
5636   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));
5637
5638 #if WITH_PROFILE_MODEL_P
5639   /* Record the fields for profiling.  */
5640   if (PROFILE_MODEL_P (current_cpu))
5641     {
5642       FLD (in_Rd) = f_operand2;
5643       FLD (in_Rs) = f_operand1;
5644       FLD (out_Rs) = f_operand1;
5645     }
5646 #endif
5647 #undef FLD
5648     return idesc;
5649   }
5650
5651  extract_sfmt_addo_m_w_m:
5652   {
5653     const IDESC *idesc = &crisv32f_insn_data[itype];
5654     CGEN_INSN_INT insn = base_insn;
5655 #define FLD(f) abuf->fields.sfmt_addc_m.f
5656     UINT f_operand2;
5657     UINT f_memmode;
5658     UINT f_operand1;
5659
5660     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5661     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5662     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5663
5664   /* Record the fields for the semantic handler.  */
5665   FLD (f_operand2) = f_operand2;
5666   FLD (f_operand1) = f_operand1;
5667   FLD (f_memmode) = f_memmode;
5668   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));
5669
5670 #if WITH_PROFILE_MODEL_P
5671   /* Record the fields for profiling.  */
5672   if (PROFILE_MODEL_P (current_cpu))
5673     {
5674       FLD (in_Rd) = f_operand2;
5675       FLD (in_Rs) = f_operand1;
5676       FLD (out_Rs) = f_operand1;
5677     }
5678 #endif
5679 #undef FLD
5680     return idesc;
5681   }
5682
5683  extract_sfmt_addo_m_d_m:
5684   {
5685     const IDESC *idesc = &crisv32f_insn_data[itype];
5686     CGEN_INSN_INT insn = base_insn;
5687 #define FLD(f) abuf->fields.sfmt_addc_m.f
5688     UINT f_operand2;
5689     UINT f_memmode;
5690     UINT f_operand1;
5691
5692     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5693     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5694     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5695
5696   /* Record the fields for the semantic handler.  */
5697   FLD (f_operand2) = f_operand2;
5698   FLD (f_operand1) = f_operand1;
5699   FLD (f_memmode) = f_memmode;
5700   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));
5701
5702 #if WITH_PROFILE_MODEL_P
5703   /* Record the fields for profiling.  */
5704   if (PROFILE_MODEL_P (current_cpu))
5705     {
5706       FLD (in_Rd) = f_operand2;
5707       FLD (in_Rs) = f_operand1;
5708       FLD (out_Rs) = f_operand1;
5709     }
5710 #endif
5711 #undef FLD
5712     return idesc;
5713   }
5714
5715  extract_sfmt_addo_cb:
5716   {
5717     const IDESC *idesc = &crisv32f_insn_data[itype];
5718     CGEN_INSN_INT insn = base_insn;
5719 #define FLD(f) abuf->fields.sfmt_bound_cb.f
5720     INT f_indir_pc__byte;
5721     UINT f_operand2;
5722     /* Contents of trailing part of insn.  */
5723     UINT word_1;
5724
5725   word_1 = GETIMEMUSI (current_cpu, pc + 2);
5726     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
5727     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5728
5729   /* Record the fields for the semantic handler.  */
5730   FLD (f_operand2) = f_operand2;
5731   FLD (f_indir_pc__byte) = f_indir_pc__byte;
5732   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));
5733
5734 #if WITH_PROFILE_MODEL_P
5735   /* Record the fields for profiling.  */
5736   if (PROFILE_MODEL_P (current_cpu))
5737     {
5738       FLD (in_Rd) = f_operand2;
5739     }
5740 #endif
5741 #undef FLD
5742     return idesc;
5743   }
5744
5745  extract_sfmt_addo_cw:
5746   {
5747     const IDESC *idesc = &crisv32f_insn_data[itype];
5748     CGEN_INSN_INT insn = base_insn;
5749 #define FLD(f) abuf->fields.sfmt_bound_cw.f
5750     INT f_indir_pc__word;
5751     UINT f_operand2;
5752     /* Contents of trailing part of insn.  */
5753     UINT word_1;
5754
5755   word_1 = GETIMEMUSI (current_cpu, pc + 2);
5756     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
5757     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5758
5759   /* Record the fields for the semantic handler.  */
5760   FLD (f_operand2) = f_operand2;
5761   FLD (f_indir_pc__word) = f_indir_pc__word;
5762   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));
5763
5764 #if WITH_PROFILE_MODEL_P
5765   /* Record the fields for profiling.  */
5766   if (PROFILE_MODEL_P (current_cpu))
5767     {
5768       FLD (in_Rd) = f_operand2;
5769     }
5770 #endif
5771 #undef FLD
5772     return idesc;
5773   }
5774
5775  extract_sfmt_addo_cd:
5776   {
5777     const IDESC *idesc = &crisv32f_insn_data[itype];
5778     CGEN_INSN_INT insn = base_insn;
5779 #define FLD(f) abuf->fields.sfmt_bound_cd.f
5780     INT f_indir_pc__dword;
5781     UINT f_operand2;
5782     /* Contents of trailing part of insn.  */
5783     UINT word_1;
5784
5785   word_1 = GETIMEMUSI (current_cpu, pc + 2);
5786     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
5787     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5788
5789   /* Record the fields for the semantic handler.  */
5790   FLD (f_operand2) = f_operand2;
5791   FLD (f_indir_pc__dword) = f_indir_pc__dword;
5792   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));
5793
5794 #if WITH_PROFILE_MODEL_P
5795   /* Record the fields for profiling.  */
5796   if (PROFILE_MODEL_P (current_cpu))
5797     {
5798       FLD (in_Rd) = f_operand2;
5799     }
5800 #endif
5801 #undef FLD
5802     return idesc;
5803   }
5804
5805  extract_sfmt_addi_acr_b_r:
5806   {
5807     const IDESC *idesc = &crisv32f_insn_data[itype];
5808     CGEN_INSN_INT insn = base_insn;
5809 #define FLD(f) abuf->fields.sfmt_muls_b.f
5810     UINT f_operand2;
5811     UINT f_operand1;
5812
5813     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5814     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5815
5816   /* Record the fields for the semantic handler.  */
5817   FLD (f_operand2) = f_operand2;
5818   FLD (f_operand1) = f_operand1;
5819   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));
5820
5821 #if WITH_PROFILE_MODEL_P
5822   /* Record the fields for profiling.  */
5823   if (PROFILE_MODEL_P (current_cpu))
5824     {
5825       FLD (in_Rd) = f_operand2;
5826       FLD (in_Rs) = f_operand1;
5827     }
5828 #endif
5829 #undef FLD
5830     return idesc;
5831   }
5832
5833  extract_sfmt_fidxi:
5834   {
5835     const IDESC *idesc = &crisv32f_insn_data[itype];
5836     CGEN_INSN_INT insn = base_insn;
5837 #define FLD(f) abuf->fields.sfmt_mcp.f
5838     UINT f_operand1;
5839
5840     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5841
5842   /* Record the fields for the semantic handler.  */
5843   FLD (f_operand1) = f_operand1;
5844   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fidxi", "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
5845
5846 #if WITH_PROFILE_MODEL_P
5847   /* Record the fields for profiling.  */
5848   if (PROFILE_MODEL_P (current_cpu))
5849     {
5850       FLD (in_Rs) = f_operand1;
5851     }
5852 #endif
5853 #undef FLD
5854     return idesc;
5855   }
5856
5857 }