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