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