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