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