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