* cris/arch.c, cris/arch.h, cris/cpuall.h, cris/cpuv10.c,
[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 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
22
23 */
24
25 #define WANT_CPU crisv10f
26 #define WANT_CPU_CRISV10F
27
28 #include "sim-main.h"
29 #include "sim-assert.h"
30 #include "cgen-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 :
368             if ((base_insn & 0xf00) == 0x0)
369               { itype = CRISV10F_INSN_BCC_B; goto extract_sfmt_bcc_b; }
370             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
371           case 14 :
372             if ((base_insn & 0xff00) == 0xe000)
373               { itype = CRISV10F_INSN_BA_B; goto extract_sfmt_ba_b; }
374             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
375           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
376           }
377         }
378       case 16 : /* fall through */
379       case 17 : /* fall through */
380       case 18 : /* fall through */
381       case 19 : /* fall through */
382       case 20 : /* fall through */
383       case 21 : /* fall through */
384       case 22 : /* fall through */
385       case 23 : /* fall through */
386       case 24 : /* fall through */
387       case 25 : /* fall through */
388       case 26 : /* fall through */
389       case 27 : /* fall through */
390       case 28 : /* fall through */
391       case 29 : /* fall through */
392       case 30 : /* fall through */
393       case 31 :
394         {
395           unsigned int val = (((insn >> 12) & (15 << 0)));
396           switch (val)
397           {
398           case 0 : /* fall through */
399           case 1 : /* fall through */
400           case 2 : /* fall through */
401           case 3 : /* fall through */
402           case 4 : /* fall through */
403           case 5 : /* fall through */
404           case 6 : /* fall through */
405           case 7 : /* fall through */
406           case 8 : /* fall through */
407           case 9 : /* fall through */
408           case 10 : /* fall through */
409           case 11 : /* fall through */
410           case 12 : /* fall through */
411           case 13 : /* fall through */
412           case 14 :
413             if ((base_insn & 0xf00) == 0x100)
414               { itype = CRISV10F_INSN_ADDOQ; goto extract_sfmt_addoq; }
415             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
416           case 15 :
417             if ((base_insn & 0xff00) == 0xf100)
418               { itype = CRISV10F_INSN_BDAPQPC; goto extract_sfmt_bdapqpc; }
419             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
420           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
421           }
422         }
423       case 32 : /* fall through */
424       case 33 : /* fall through */
425       case 34 : /* fall through */
426       case 35 :
427         if ((base_insn & 0xfc0) == 0x200)
428           { itype = CRISV10F_INSN_ADDQ; goto extract_sfmt_addq; }
429         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
430       case 36 : /* fall through */
431       case 37 : /* fall through */
432       case 38 : /* fall through */
433       case 39 :
434         if ((base_insn & 0xfc0) == 0x240)
435           { itype = CRISV10F_INSN_MOVEQ; goto extract_sfmt_moveq; }
436         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
437       case 40 : /* fall through */
438       case 41 : /* fall through */
439       case 42 : /* fall through */
440       case 43 :
441         if ((base_insn & 0xfc0) == 0x280)
442           { itype = CRISV10F_INSN_SUBQ; goto extract_sfmt_addq; }
443         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
444       case 44 : /* fall through */
445       case 45 : /* fall through */
446       case 46 : /* fall through */
447       case 47 :
448         if ((base_insn & 0xfc0) == 0x2c0)
449           { itype = CRISV10F_INSN_CMPQ; goto extract_sfmt_cmpq; }
450         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
451       case 48 : /* fall through */
452       case 49 : /* fall through */
453       case 50 : /* fall through */
454       case 51 :
455         if ((base_insn & 0xfc0) == 0x300)
456           { itype = CRISV10F_INSN_ANDQ; goto extract_sfmt_andq; }
457         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
458       case 52 : /* fall through */
459       case 53 : /* fall through */
460       case 54 : /* fall through */
461       case 55 :
462         if ((base_insn & 0xfc0) == 0x340)
463           { itype = CRISV10F_INSN_ORQ; goto extract_sfmt_andq; }
464         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
465       case 56 : /* fall through */
466       case 57 :
467         if ((base_insn & 0xfe0) == 0x380)
468           { itype = CRISV10F_INSN_BTSTQ; goto extract_sfmt_btstq; }
469         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
470       case 58 : /* fall through */
471       case 59 :
472         if ((base_insn & 0xfe0) == 0x3a0)
473           { itype = CRISV10F_INSN_ASRQ; goto extract_sfmt_asrq; }
474         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
475       case 60 : /* fall through */
476       case 61 :
477         if ((base_insn & 0xfe0) == 0x3c0)
478           { itype = CRISV10F_INSN_LSLQ; goto extract_sfmt_asrq; }
479         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
480       case 62 : /* fall through */
481       case 63 :
482         if ((base_insn & 0xfe0) == 0x3e0)
483           { itype = CRISV10F_INSN_LSRQ; goto extract_sfmt_asrq; }
484         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
485       case 64 :
486         if ((base_insn & 0xff0) == 0x400)
487           { itype = CRISV10F_INSN_ADDU_B_R; goto extract_sfmt_add_d_r; }
488         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
489       case 65 :
490         if ((base_insn & 0xff0) == 0x410)
491           { itype = CRISV10F_INSN_ADDU_W_R; goto extract_sfmt_add_d_r; }
492         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
493       case 66 :
494         if ((base_insn & 0xff0) == 0x420)
495           { itype = CRISV10F_INSN_ADDS_B_R; goto extract_sfmt_add_d_r; }
496         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
497       case 67 :
498         if ((base_insn & 0xff0) == 0x430)
499           { itype = CRISV10F_INSN_ADDS_W_R; goto extract_sfmt_add_d_r; }
500         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
501       case 68 :
502         if ((base_insn & 0xff0) == 0x440)
503           { itype = CRISV10F_INSN_MOVU_B_R; goto extract_sfmt_movs_b_r; }
504         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
505       case 69 :
506         if ((base_insn & 0xff0) == 0x450)
507           { itype = CRISV10F_INSN_MOVU_W_R; goto extract_sfmt_movs_b_r; }
508         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
509       case 70 :
510         if ((base_insn & 0xff0) == 0x460)
511           { itype = CRISV10F_INSN_MOVS_B_R; goto extract_sfmt_movs_b_r; }
512         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
513       case 71 :
514         if ((base_insn & 0xff0) == 0x470)
515           { itype = CRISV10F_INSN_MOVS_W_R; goto extract_sfmt_movs_b_r; }
516         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
517       case 72 :
518         if ((base_insn & 0xff0) == 0x480)
519           { itype = CRISV10F_INSN_SUBU_B_R; goto extract_sfmt_add_d_r; }
520         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
521       case 73 :
522         if ((base_insn & 0xff0) == 0x490)
523           { itype = CRISV10F_INSN_SUBU_W_R; goto extract_sfmt_add_d_r; }
524         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
525       case 74 :
526         if ((base_insn & 0xff0) == 0x4a0)
527           { itype = CRISV10F_INSN_SUBS_B_R; goto extract_sfmt_add_d_r; }
528         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
529       case 75 :
530         if ((base_insn & 0xff0) == 0x4b0)
531           { itype = CRISV10F_INSN_SUBS_W_R; goto extract_sfmt_add_d_r; }
532         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
533       case 76 :
534         if ((base_insn & 0xff0) == 0x4c0)
535           { itype = CRISV10F_INSN_LSLR_B_R; goto extract_sfmt_lsrr_b_r; }
536         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
537       case 77 :
538         if ((base_insn & 0xff0) == 0x4d0)
539           { itype = CRISV10F_INSN_LSLR_W_R; goto extract_sfmt_lsrr_b_r; }
540         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
541       case 78 :
542         if ((base_insn & 0xff0) == 0x4e0)
543           { itype = CRISV10F_INSN_LSLR_D_R; goto extract_sfmt_lsrr_d_r; }
544         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
545       case 79 :
546         if ((base_insn & 0xff0) == 0x4f0)
547           { itype = CRISV10F_INSN_BTST; goto extract_sfmt_btst; }
548         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
549       case 80 :
550         {
551           unsigned int val = (((insn >> 8) & (7 << 4)) | ((insn >> 0) & (15 << 0)));
552           switch (val)
553           {
554           case 0 : /* fall through */
555           case 1 : /* fall through */
556           case 2 : /* fall through */
557           case 3 : /* fall through */
558           case 4 : /* fall through */
559           case 5 : /* fall through */
560           case 6 : /* fall through */
561           case 7 : /* fall through */
562           case 8 : /* fall through */
563           case 9 : /* fall through */
564           case 10 : /* fall through */
565           case 11 : /* fall through */
566           case 12 : /* fall through */
567           case 13 : /* fall through */
568           case 14 : /* fall through */
569           case 16 : /* fall through */
570           case 17 : /* fall through */
571           case 18 : /* fall through */
572           case 19 : /* fall through */
573           case 20 : /* fall through */
574           case 21 : /* fall through */
575           case 22 : /* fall through */
576           case 23 : /* fall through */
577           case 24 : /* fall through */
578           case 25 : /* fall through */
579           case 26 : /* fall through */
580           case 27 : /* fall through */
581           case 28 : /* fall through */
582           case 29 : /* fall through */
583           case 30 : /* fall through */
584           case 31 : /* fall through */
585           case 32 : /* fall through */
586           case 33 : /* fall through */
587           case 34 : /* fall through */
588           case 35 : /* fall through */
589           case 36 : /* fall through */
590           case 37 : /* fall through */
591           case 38 : /* fall through */
592           case 39 : /* fall through */
593           case 40 : /* fall through */
594           case 41 : /* fall through */
595           case 42 : /* fall through */
596           case 43 : /* fall through */
597           case 44 : /* fall through */
598           case 45 : /* fall through */
599           case 46 : /* fall through */
600           case 47 : /* fall through */
601           case 48 : /* fall through */
602           case 49 : /* fall through */
603           case 50 : /* fall through */
604           case 51 : /* fall through */
605           case 52 : /* fall through */
606           case 53 : /* fall through */
607           case 54 : /* fall through */
608           case 55 : /* fall through */
609           case 56 : /* fall through */
610           case 57 : /* fall through */
611           case 58 : /* fall through */
612           case 59 : /* fall through */
613           case 60 : /* fall through */
614           case 61 : /* fall through */
615           case 62 : /* fall through */
616           case 63 : /* fall through */
617           case 64 : /* fall through */
618           case 65 : /* fall through */
619           case 66 : /* fall through */
620           case 67 : /* fall through */
621           case 68 : /* fall through */
622           case 69 : /* fall through */
623           case 70 : /* fall through */
624           case 71 : /* fall through */
625           case 72 : /* fall through */
626           case 73 : /* fall through */
627           case 74 : /* fall through */
628           case 75 : /* fall through */
629           case 76 : /* fall through */
630           case 77 : /* fall through */
631           case 78 : /* fall through */
632           case 79 : /* fall through */
633           case 80 : /* fall through */
634           case 81 : /* fall through */
635           case 82 : /* fall through */
636           case 83 : /* fall through */
637           case 84 : /* fall through */
638           case 85 : /* fall through */
639           case 86 : /* fall through */
640           case 87 : /* fall through */
641           case 88 : /* fall through */
642           case 89 : /* fall through */
643           case 90 : /* fall through */
644           case 91 : /* fall through */
645           case 92 : /* fall through */
646           case 93 : /* fall through */
647           case 94 : /* fall through */
648           case 95 : /* fall through */
649           case 96 : /* fall through */
650           case 97 : /* fall through */
651           case 98 : /* fall through */
652           case 99 : /* fall through */
653           case 100 : /* fall through */
654           case 101 : /* fall through */
655           case 102 : /* fall through */
656           case 103 : /* fall through */
657           case 104 : /* fall through */
658           case 105 : /* fall through */
659           case 106 : /* fall through */
660           case 107 : /* fall through */
661           case 108 : /* fall through */
662           case 109 : /* fall through */
663           case 110 : /* fall through */
664           case 111 : /* fall through */
665           case 112 : /* fall through */
666           case 113 : /* fall through */
667           case 114 : /* fall through */
668           case 115 : /* fall through */
669           case 116 : /* fall through */
670           case 117 : /* fall through */
671           case 118 : /* fall through */
672           case 119 : /* fall through */
673           case 120 : /* fall through */
674           case 121 : /* fall through */
675           case 122 : /* fall through */
676           case 123 : /* fall through */
677           case 124 : /* fall through */
678           case 125 : /* fall through */
679           case 126 : /* fall through */
680           case 127 :
681             if ((base_insn & 0xff0) == 0x500)
682               { itype = CRISV10F_INSN_ADDI_B_R; goto extract_sfmt_addi_b_r; }
683             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
684           case 15 :
685             {
686               unsigned int val = (((insn >> 15) & (1 << 0)));
687               switch (val)
688               {
689               case 0 :
690                 if ((base_insn & 0xffff) == 0x50f)
691                   { itype = CRISV10F_INSN_NOP; goto extract_sfmt_nop; }
692                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
693               case 1 :
694                 if ((base_insn & 0xff0) == 0x500)
695                   { itype = CRISV10F_INSN_ADDI_B_R; goto extract_sfmt_addi_b_r; }
696                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
697               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
698               }
699             }
700           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
701           }
702         }
703       case 81 :
704         if ((base_insn & 0xff0) == 0x510)
705           { itype = CRISV10F_INSN_ADDI_W_R; goto extract_sfmt_addi_b_r; }
706         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
707       case 82 :
708         if ((base_insn & 0xff0) == 0x520)
709           { itype = CRISV10F_INSN_ADDI_D_R; goto extract_sfmt_addi_b_r; }
710         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
711       case 83 :
712         if ((base_insn & 0xff0) == 0x530)
713           { itype = CRISV10F_INSN_SCC; goto extract_sfmt_scc; }
714         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
715       case 84 :
716         {
717           unsigned int val = (((insn >> 0) & (15 << 0)));
718           switch (val)
719           {
720           case 0 : /* fall through */
721           case 1 : /* fall through */
722           case 2 : /* fall through */
723           case 3 : /* fall through */
724           case 4 : /* fall through */
725           case 5 : /* fall through */
726           case 6 : /* fall through */
727           case 7 : /* fall through */
728           case 8 : /* fall through */
729           case 9 : /* fall through */
730           case 10 : /* fall through */
731           case 11 : /* fall through */
732           case 12 : /* fall through */
733           case 13 : /* fall through */
734           case 14 :
735             if ((base_insn & 0xff0) == 0x540)
736               { itype = CRISV10F_INSN_ADDI_ACR_B_R; goto extract_sfmt_addi_acr_b_r; }
737             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
738           case 15 :
739             if ((base_insn & 0xfff) == 0x54f)
740               { itype = CRISV10F_INSN_BIAP_PC_B_R; goto extract_sfmt_biap_pc_b_r; }
741             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
742           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
743           }
744         }
745       case 85 :
746         {
747           unsigned int val = (((insn >> 0) & (15 << 0)));
748           switch (val)
749           {
750           case 0 : /* fall through */
751           case 1 : /* fall through */
752           case 2 : /* fall through */
753           case 3 : /* fall through */
754           case 4 : /* fall through */
755           case 5 : /* fall through */
756           case 6 : /* fall through */
757           case 7 : /* fall through */
758           case 8 : /* fall through */
759           case 9 : /* fall through */
760           case 10 : /* fall through */
761           case 11 : /* fall through */
762           case 12 : /* fall through */
763           case 13 : /* fall through */
764           case 14 :
765             if ((base_insn & 0xff0) == 0x550)
766               { itype = CRISV10F_INSN_ADDI_ACR_W_R; goto extract_sfmt_addi_acr_b_r; }
767             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
768           case 15 :
769             if ((base_insn & 0xfff) == 0x55f)
770               { itype = CRISV10F_INSN_BIAP_PC_W_R; goto extract_sfmt_biap_pc_b_r; }
771             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
772           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
773           }
774         }
775       case 86 :
776         {
777           unsigned int val = (((insn >> 0) & (15 << 0)));
778           switch (val)
779           {
780           case 0 : /* fall through */
781           case 1 : /* fall through */
782           case 2 : /* fall through */
783           case 3 : /* fall through */
784           case 4 : /* fall through */
785           case 5 : /* fall through */
786           case 6 : /* fall through */
787           case 7 : /* fall through */
788           case 8 : /* fall through */
789           case 9 : /* fall through */
790           case 10 : /* fall through */
791           case 11 : /* fall through */
792           case 12 : /* fall through */
793           case 13 : /* fall through */
794           case 14 :
795             if ((base_insn & 0xff0) == 0x560)
796               { itype = CRISV10F_INSN_ADDI_ACR_D_R; goto extract_sfmt_addi_acr_b_r; }
797             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
798           case 15 :
799             if ((base_insn & 0xfff) == 0x56f)
800               { itype = CRISV10F_INSN_BIAP_PC_D_R; goto extract_sfmt_biap_pc_b_r; }
801             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
802           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
803           }
804         }
805       case 88 :
806         if ((base_insn & 0xff0) == 0x580)
807           { itype = CRISV10F_INSN_NEG_B_R; goto extract_sfmt_neg_b_r; }
808         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
809       case 89 :
810         if ((base_insn & 0xff0) == 0x590)
811           { itype = CRISV10F_INSN_NEG_W_R; goto extract_sfmt_neg_b_r; }
812         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
813       case 90 :
814         if ((base_insn & 0xff0) == 0x5a0)
815           { itype = CRISV10F_INSN_NEG_D_R; goto extract_sfmt_neg_d_r; }
816         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
817       case 91 :
818         if ((base_insn & 0xff0) == 0x5b0)
819           { itype = CRISV10F_INSN_SETF; goto extract_sfmt_setf; }
820         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
821       case 92 :
822         if ((base_insn & 0xff0) == 0x5c0)
823           { itype = CRISV10F_INSN_BOUND_R_B_R; goto extract_sfmt_dstep; }
824         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
825       case 93 :
826         if ((base_insn & 0xff0) == 0x5d0)
827           { itype = CRISV10F_INSN_BOUND_R_W_R; goto extract_sfmt_dstep; }
828         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
829       case 94 :
830         if ((base_insn & 0xff0) == 0x5e0)
831           { itype = CRISV10F_INSN_BOUND_R_D_R; goto extract_sfmt_dstep; }
832         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
833       case 95 :
834         if ((base_insn & 0xff0) == 0x5f0)
835           { itype = CRISV10F_INSN_CLEARF; goto extract_sfmt_setf; }
836         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
837       case 96 :
838         if ((base_insn & 0xff0) == 0x600)
839           { itype = CRISV10F_INSN_ADD_B_R; goto extract_sfmt_add_b_r; }
840         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
841       case 97 :
842         if ((base_insn & 0xff0) == 0x610)
843           { itype = CRISV10F_INSN_ADD_W_R; goto extract_sfmt_add_b_r; }
844         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
845       case 98 :
846         if ((base_insn & 0xff0) == 0x620)
847           { itype = CRISV10F_INSN_ADD_D_R; goto extract_sfmt_add_d_r; }
848         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
849       case 99 :
850         if ((base_insn & 0xff0) == 0x630)
851           { itype = CRISV10F_INSN_MOVE_R_SPRV10; goto extract_sfmt_move_r_sprv10; }
852         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
853       case 100 :
854         if ((base_insn & 0xff0) == 0x640)
855           { itype = CRISV10F_INSN_MOVE_B_R; goto extract_sfmt_move_b_r; }
856         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
857       case 101 :
858         if ((base_insn & 0xff0) == 0x650)
859           { itype = CRISV10F_INSN_MOVE_W_R; goto extract_sfmt_move_b_r; }
860         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
861       case 102 :
862         {
863           unsigned int val = (((insn >> 0) & (15 << 0)));
864           switch (val)
865           {
866           case 0 : /* fall through */
867           case 1 : /* fall through */
868           case 2 : /* fall through */
869           case 3 : /* fall through */
870           case 4 : /* fall through */
871           case 5 : /* fall through */
872           case 6 : /* fall through */
873           case 7 : /* fall through */
874           case 8 : /* fall through */
875           case 9 : /* fall through */
876           case 10 : /* fall through */
877           case 11 : /* fall through */
878           case 12 : /* fall through */
879           case 13 : /* fall through */
880           case 14 :
881             if ((base_insn & 0xff0) == 0x660)
882               { itype = CRISV10F_INSN_MOVE_D_R; goto extract_sfmt_move_d_r; }
883             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
884           case 15 :
885             if ((base_insn & 0xfff) == 0x66f)
886               { itype = CRISV10F_INSN_MOVEPCR; goto extract_sfmt_movepcr; }
887             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
888           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
889           }
890         }
891       case 103 :
892         {
893           unsigned int val = (((insn >> 0) & (15 << 0)));
894           switch (val)
895           {
896           case 0 : /* fall through */
897           case 1 : /* fall through */
898           case 2 : /* fall through */
899           case 3 : /* fall through */
900           case 4 : /* fall through */
901           case 5 : /* fall through */
902           case 6 : /* fall through */
903           case 7 : /* fall through */
904           case 8 : /* fall through */
905           case 9 : /* fall through */
906           case 10 : /* fall through */
907           case 11 : /* fall through */
908           case 12 : /* fall through */
909           case 13 : /* fall through */
910           case 14 :
911             if ((base_insn & 0xff0) == 0x670)
912               { itype = CRISV10F_INSN_MOVE_SPR_RV10; goto extract_sfmt_move_spr_rv10; }
913             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
914           case 15 :
915             if ((base_insn & 0xfff) == 0x67f)
916               { itype = CRISV10F_INSN_RET_TYPE; goto extract_sfmt_ret_type; }
917             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
918           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
919           }
920         }
921       case 104 :
922         if ((base_insn & 0xff0) == 0x680)
923           { itype = CRISV10F_INSN_SUB_B_R; goto extract_sfmt_add_b_r; }
924         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
925       case 105 :
926         if ((base_insn & 0xff0) == 0x690)
927           { itype = CRISV10F_INSN_SUB_W_R; goto extract_sfmt_add_b_r; }
928         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
929       case 106 :
930         if ((base_insn & 0xff0) == 0x6a0)
931           { itype = CRISV10F_INSN_SUB_D_R; goto extract_sfmt_add_d_r; }
932         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
933       case 107 :
934         if ((base_insn & 0xff0) == 0x6b0)
935           { itype = CRISV10F_INSN_ABS; goto extract_sfmt_movs_b_r; }
936         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
937       case 108 :
938         if ((base_insn & 0xff0) == 0x6c0)
939           { itype = CRISV10F_INSN_CMP_R_B_R; goto extract_sfmt_cmp_r_b_r; }
940         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
941       case 109 :
942         if ((base_insn & 0xff0) == 0x6d0)
943           { itype = CRISV10F_INSN_CMP_R_W_R; goto extract_sfmt_cmp_r_b_r; }
944         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
945       case 110 :
946         if ((base_insn & 0xff0) == 0x6e0)
947           { itype = CRISV10F_INSN_CMP_R_D_R; goto extract_sfmt_cmp_r_b_r; }
948         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
949       case 111 :
950         if ((base_insn & 0xff0) == 0x6f0)
951           { itype = CRISV10F_INSN_DSTEP; goto extract_sfmt_dstep; }
952         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
953       case 112 :
954         if ((base_insn & 0xff0) == 0x700)
955           { itype = CRISV10F_INSN_AND_B_R; goto extract_sfmt_and_b_r; }
956         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
957       case 113 :
958         if ((base_insn & 0xff0) == 0x710)
959           { itype = CRISV10F_INSN_AND_W_R; goto extract_sfmt_and_w_r; }
960         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
961       case 114 :
962         if ((base_insn & 0xff0) == 0x720)
963           { itype = CRISV10F_INSN_AND_D_R; goto extract_sfmt_and_d_r; }
964         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
965       case 115 :
966         if ((base_insn & 0xff0) == 0x730)
967           { itype = CRISV10F_INSN_LZ; goto extract_sfmt_movs_b_r; }
968         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
969       case 116 :
970         if ((base_insn & 0xff0) == 0x740)
971           { itype = CRISV10F_INSN_ORR_B_R; goto extract_sfmt_and_b_r; }
972         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
973       case 117 :
974         if ((base_insn & 0xff0) == 0x750)
975           { itype = CRISV10F_INSN_ORR_W_R; goto extract_sfmt_and_w_r; }
976         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
977       case 118 :
978         if ((base_insn & 0xff0) == 0x760)
979           { itype = CRISV10F_INSN_ORR_D_R; goto extract_sfmt_and_d_r; }
980         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
981       case 119 :
982         if ((base_insn & 0xff0) == 0x770)
983           { itype = CRISV10F_INSN_SWAP; goto extract_sfmt_swap; }
984         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
985       case 120 :
986         if ((base_insn & 0xff0) == 0x780)
987           { itype = CRISV10F_INSN_ASRR_B_R; goto extract_sfmt_asrr_b_r; }
988         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
989       case 121 :
990         if ((base_insn & 0xff0) == 0x790)
991           { itype = CRISV10F_INSN_ASRR_W_R; goto extract_sfmt_asrr_b_r; }
992         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
993       case 122 :
994         if ((base_insn & 0xff0) == 0x7a0)
995           { itype = CRISV10F_INSN_ASRR_D_R; goto extract_sfmt_and_d_r; }
996         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
997       case 123 :
998         if ((base_insn & 0xff0) == 0x7b0)
999           { itype = CRISV10F_INSN_XOR; goto extract_sfmt_dstep; }
1000         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1001       case 124 :
1002         if ((base_insn & 0xff0) == 0x7c0)
1003           { itype = CRISV10F_INSN_LSRR_B_R; goto extract_sfmt_lsrr_b_r; }
1004         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1005       case 125 :
1006         if ((base_insn & 0xff0) == 0x7d0)
1007           { itype = CRISV10F_INSN_LSRR_W_R; goto extract_sfmt_lsrr_b_r; }
1008         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1009       case 126 :
1010         if ((base_insn & 0xff0) == 0x7e0)
1011           { itype = CRISV10F_INSN_LSRR_D_R; goto extract_sfmt_lsrr_d_r; }
1012         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1013       case 127 :
1014         if ((base_insn & 0xff0) == 0x7f0)
1015           { itype = CRISV10F_INSN_MSTEP; goto extract_sfmt_mstep; }
1016         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1017       case 128 :
1018         if ((base_insn & 0xbf0) == 0x800)
1019           { itype = CRISV10F_INSN_ADDU_M_B_M; goto extract_sfmt_adds_m_b_m; }
1020         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1021       case 129 :
1022         if ((base_insn & 0xbf0) == 0x810)
1023           { itype = CRISV10F_INSN_ADDU_M_W_M; goto extract_sfmt_adds_m_w_m; }
1024         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1025       case 130 :
1026         if ((base_insn & 0xbf0) == 0x820)
1027           { itype = CRISV10F_INSN_ADDS_M_B_M; goto extract_sfmt_adds_m_b_m; }
1028         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1029       case 131 :
1030         {
1031           unsigned int val = (((insn >> 8) & (7 << 4)) | ((insn >> 0) & (15 << 0)));
1032           switch (val)
1033           {
1034           case 0 : /* fall through */
1035           case 1 : /* fall through */
1036           case 2 : /* fall through */
1037           case 3 : /* fall through */
1038           case 4 : /* fall through */
1039           case 5 : /* fall through */
1040           case 6 : /* fall through */
1041           case 7 : /* fall through */
1042           case 8 : /* fall through */
1043           case 9 : /* fall through */
1044           case 10 : /* fall through */
1045           case 11 : /* fall through */
1046           case 12 : /* fall through */
1047           case 13 : /* fall through */
1048           case 14 : /* fall through */
1049           case 15 : /* fall through */
1050           case 16 : /* fall through */
1051           case 17 : /* fall through */
1052           case 18 : /* fall through */
1053           case 19 : /* fall through */
1054           case 20 : /* fall through */
1055           case 21 : /* fall through */
1056           case 22 : /* fall through */
1057           case 23 : /* fall through */
1058           case 24 : /* fall through */
1059           case 25 : /* fall through */
1060           case 26 : /* fall through */
1061           case 27 : /* fall through */
1062           case 28 : /* fall through */
1063           case 29 : /* fall through */
1064           case 30 : /* fall through */
1065           case 31 : /* fall through */
1066           case 32 : /* fall through */
1067           case 33 : /* fall through */
1068           case 34 : /* fall through */
1069           case 35 : /* fall through */
1070           case 36 : /* fall through */
1071           case 37 : /* fall through */
1072           case 38 : /* fall through */
1073           case 39 : /* fall through */
1074           case 40 : /* fall through */
1075           case 41 : /* fall through */
1076           case 42 : /* fall through */
1077           case 43 : /* fall through */
1078           case 44 : /* fall through */
1079           case 45 : /* fall through */
1080           case 46 : /* fall through */
1081           case 47 : /* fall through */
1082           case 48 : /* fall through */
1083           case 49 : /* fall through */
1084           case 50 : /* fall through */
1085           case 51 : /* fall through */
1086           case 52 : /* fall through */
1087           case 53 : /* fall through */
1088           case 54 : /* fall through */
1089           case 55 : /* fall through */
1090           case 56 : /* fall through */
1091           case 57 : /* fall through */
1092           case 58 : /* fall through */
1093           case 59 : /* fall through */
1094           case 60 : /* fall through */
1095           case 61 : /* fall through */
1096           case 62 : /* fall through */
1097           case 63 : /* fall through */
1098           case 64 : /* fall through */
1099           case 65 : /* fall through */
1100           case 66 : /* fall through */
1101           case 67 : /* fall through */
1102           case 68 : /* fall through */
1103           case 69 : /* fall through */
1104           case 70 : /* fall through */
1105           case 71 : /* fall through */
1106           case 72 : /* fall through */
1107           case 73 : /* fall through */
1108           case 74 : /* fall through */
1109           case 75 : /* fall through */
1110           case 76 : /* fall through */
1111           case 77 : /* fall through */
1112           case 78 : /* fall through */
1113           case 79 : /* fall through */
1114           case 80 : /* fall through */
1115           case 81 : /* fall through */
1116           case 82 : /* fall through */
1117           case 83 : /* fall through */
1118           case 84 : /* fall through */
1119           case 85 : /* fall through */
1120           case 86 : /* fall through */
1121           case 87 : /* fall through */
1122           case 88 : /* fall through */
1123           case 89 : /* fall through */
1124           case 90 : /* fall through */
1125           case 91 : /* fall through */
1126           case 92 : /* fall through */
1127           case 93 : /* fall through */
1128           case 94 : /* fall through */
1129           case 95 : /* fall through */
1130           case 96 : /* fall through */
1131           case 97 : /* fall through */
1132           case 98 : /* fall through */
1133           case 99 : /* fall through */
1134           case 100 : /* fall through */
1135           case 101 : /* fall through */
1136           case 102 : /* fall through */
1137           case 103 : /* fall through */
1138           case 104 : /* fall through */
1139           case 105 : /* fall through */
1140           case 106 : /* fall through */
1141           case 107 : /* fall through */
1142           case 108 : /* fall through */
1143           case 109 : /* fall through */
1144           case 110 : /* fall through */
1145           case 111 : /* fall through */
1146           case 112 : /* fall through */
1147           case 113 : /* fall through */
1148           case 114 : /* fall through */
1149           case 115 : /* fall through */
1150           case 116 : /* fall through */
1151           case 117 : /* fall through */
1152           case 118 : /* fall through */
1153           case 119 : /* fall through */
1154           case 120 : /* fall through */
1155           case 121 : /* fall through */
1156           case 122 : /* fall through */
1157           case 123 : /* fall through */
1158           case 124 : /* fall through */
1159           case 125 : /* fall through */
1160           case 126 :
1161             if ((base_insn & 0xbf0) == 0x830)
1162               { itype = CRISV10F_INSN_ADDS_M_W_M; goto extract_sfmt_adds_m_w_m; }
1163             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1164           case 127 :
1165             {
1166               unsigned int val = (((insn >> 15) & (1 << 0)));
1167               switch (val)
1168               {
1169               case 0 :
1170                 if ((base_insn & 0xbf0) == 0x830)
1171                   { itype = CRISV10F_INSN_ADDS_M_W_M; goto extract_sfmt_adds_m_w_m; }
1172                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1173               case 1 :
1174                 if ((base_insn & 0xffff) == 0xf83f)
1175                   { itype = CRISV10F_INSN_ADDSPCPC; goto extract_sfmt_addspcpc; }
1176                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1177               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1178               }
1179             }
1180           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1181           }
1182         }
1183       case 132 :
1184         if ((base_insn & 0xbf0) == 0x840)
1185           { itype = CRISV10F_INSN_MOVU_M_B_M; goto extract_sfmt_movs_m_b_m; }
1186         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1187       case 133 :
1188         if ((base_insn & 0xbf0) == 0x850)
1189           { itype = CRISV10F_INSN_MOVU_M_W_M; goto extract_sfmt_movs_m_w_m; }
1190         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1191       case 134 :
1192         if ((base_insn & 0xbf0) == 0x860)
1193           { itype = CRISV10F_INSN_MOVS_M_B_M; goto extract_sfmt_movs_m_b_m; }
1194         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1195       case 135 :
1196         if ((base_insn & 0xbf0) == 0x870)
1197           { itype = CRISV10F_INSN_MOVS_M_W_M; goto extract_sfmt_movs_m_w_m; }
1198         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1199       case 136 :
1200         if ((base_insn & 0xbf0) == 0x880)
1201           { itype = CRISV10F_INSN_SUBU_M_B_M; goto extract_sfmt_adds_m_b_m; }
1202         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1203       case 137 :
1204         if ((base_insn & 0xbf0) == 0x890)
1205           { itype = CRISV10F_INSN_SUBU_M_W_M; goto extract_sfmt_adds_m_w_m; }
1206         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1207       case 138 :
1208         if ((base_insn & 0xbf0) == 0x8a0)
1209           { itype = CRISV10F_INSN_SUBS_M_B_M; goto extract_sfmt_adds_m_b_m; }
1210         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1211       case 139 :
1212         if ((base_insn & 0xbf0) == 0x8b0)
1213           { itype = CRISV10F_INSN_SUBS_M_W_M; goto extract_sfmt_adds_m_w_m; }
1214         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1215       case 140 :
1216         if ((base_insn & 0xbf0) == 0x8c0)
1217           { itype = CRISV10F_INSN_CMPU_M_B_M; goto extract_sfmt_cmp_m_b_m; }
1218         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1219       case 141 :
1220         if ((base_insn & 0xbf0) == 0x8d0)
1221           { itype = CRISV10F_INSN_CMPU_M_W_M; goto extract_sfmt_cmp_m_w_m; }
1222         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1223       case 142 :
1224         if ((base_insn & 0xbf0) == 0x8e0)
1225           { itype = CRISV10F_INSN_CMPS_M_B_M; goto extract_sfmt_cmp_m_b_m; }
1226         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1227       case 143 :
1228         if ((base_insn & 0xbf0) == 0x8f0)
1229           { itype = CRISV10F_INSN_CMPS_M_W_M; goto extract_sfmt_cmp_m_w_m; }
1230         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1231       case 144 :
1232         if ((base_insn & 0xff0) == 0x900)
1233           { itype = CRISV10F_INSN_MULU_B; goto extract_sfmt_muls_b; }
1234         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1235       case 145 :
1236         if ((base_insn & 0xff0) == 0x910)
1237           { itype = CRISV10F_INSN_MULU_W; goto extract_sfmt_muls_b; }
1238         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1239       case 146 :
1240         if ((base_insn & 0xff0) == 0x920)
1241           { itype = CRISV10F_INSN_MULU_D; goto extract_sfmt_muls_b; }
1242         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1243       case 147 :
1244         {
1245           unsigned int val = (((insn >> 12) & (15 << 0)));
1246           switch (val)
1247           {
1248           case 0 : /* fall through */
1249           case 1 : /* fall through */
1250           case 2 : /* fall through */
1251           case 3 : /* fall through */
1252           case 4 : /* fall through */
1253           case 5 : /* fall through */
1254           case 6 : /* fall through */
1255           case 7 : /* fall through */
1256           case 8 : /* fall through */
1257           case 9 : /* fall through */
1258           case 10 : /* fall through */
1259           case 11 : /* fall through */
1260           case 12 : /* fall through */
1261           case 13 : /* fall through */
1262           case 15 :
1263             if ((base_insn & 0xbf0) == 0x930)
1264               { itype = CRISV10F_INSN_JUMP_M; goto extract_sfmt_jump_m; }
1265             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1266           case 14 :
1267             if ((base_insn & 0xfff0) == 0xe930)
1268               { itype = CRISV10F_INSN_BREAK; goto extract_sfmt_break; }
1269             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1270           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1271           }
1272         }
1273       case 148 :
1274         if ((base_insn & 0xbf0) == 0x940)
1275           { itype = CRISV10F_INSN_ADDO_M_B_M; goto extract_sfmt_addo_m_b_m; }
1276         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1277       case 149 :
1278         if ((base_insn & 0xbf0) == 0x950)
1279           { itype = CRISV10F_INSN_ADDO_M_W_M; goto extract_sfmt_addo_m_w_m; }
1280         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1281       case 150 :
1282         if ((base_insn & 0xbf0) == 0x960)
1283           { itype = CRISV10F_INSN_ADDO_M_D_M; goto extract_sfmt_addo_m_d_m; }
1284         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1285       case 151 :
1286         if ((base_insn & 0xfbf0) == 0x970)
1287           { itype = CRISV10F_INSN_DIP_M; goto extract_sfmt_dip_m; }
1288         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1289       case 155 :
1290         if ((base_insn & 0xff0) == 0x9b0)
1291           { itype = CRISV10F_INSN_JUMP_R; goto extract_sfmt_jump_r; }
1292         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1293       case 156 :
1294         if ((base_insn & 0xbf0) == 0x9c0)
1295           { itype = CRISV10F_INSN_BOUND_M_B_M; goto extract_sfmt_bound_m_b_m; }
1296         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1297       case 157 :
1298         if ((base_insn & 0xbf0) == 0x9d0)
1299           { itype = CRISV10F_INSN_BOUND_M_W_M; goto extract_sfmt_bound_m_w_m; }
1300         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1301       case 158 :
1302         if ((base_insn & 0xbf0) == 0x9e0)
1303           { itype = CRISV10F_INSN_BOUND_M_D_M; goto extract_sfmt_bound_m_d_m; }
1304         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1305       case 160 :
1306         if ((base_insn & 0xbf0) == 0xa00)
1307           { itype = CRISV10F_INSN_ADD_M_B_M; goto extract_sfmt_add_m_b_m; }
1308         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1309       case 161 :
1310         if ((base_insn & 0xbf0) == 0xa10)
1311           { itype = CRISV10F_INSN_ADD_M_W_M; goto extract_sfmt_add_m_w_m; }
1312         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1313       case 162 :
1314         if ((base_insn & 0xbf0) == 0xa20)
1315           { itype = CRISV10F_INSN_ADD_M_D_M; goto extract_sfmt_add_m_d_m; }
1316         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1317       case 163 :
1318         if ((base_insn & 0xbf0) == 0xa30)
1319           { itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10; }
1320         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1321       case 164 :
1322         if ((base_insn & 0xbf0) == 0xa40)
1323           { itype = CRISV10F_INSN_MOVE_M_B_M; goto extract_sfmt_move_m_b_m; }
1324         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1325       case 165 :
1326         if ((base_insn & 0xbf0) == 0xa50)
1327           { itype = CRISV10F_INSN_MOVE_M_W_M; goto extract_sfmt_move_m_w_m; }
1328         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1329       case 166 :
1330         if ((base_insn & 0xbf0) == 0xa60)
1331           { itype = CRISV10F_INSN_MOVE_M_D_M; goto extract_sfmt_move_m_d_m; }
1332         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1333       case 167 : /* fall through */
1334       case 231 :
1335         if ((base_insn & 0xbf0) == 0xa70)
1336           { itype = CRISV10F_INSN_MOVE_SPR_MV10; goto extract_sfmt_move_spr_mv10; }
1337         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1338       case 168 :
1339         if ((base_insn & 0xbf0) == 0xa80)
1340           { itype = CRISV10F_INSN_SUB_M_B_M; goto extract_sfmt_add_m_b_m; }
1341         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1342       case 169 :
1343         if ((base_insn & 0xbf0) == 0xa90)
1344           { itype = CRISV10F_INSN_SUB_M_W_M; goto extract_sfmt_add_m_w_m; }
1345         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1346       case 170 :
1347         if ((base_insn & 0xbf0) == 0xaa0)
1348           { itype = CRISV10F_INSN_SUB_M_D_M; goto extract_sfmt_add_m_d_m; }
1349         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1350       case 172 :
1351         if ((base_insn & 0xbf0) == 0xac0)
1352           { itype = CRISV10F_INSN_CMP_M_B_M; goto extract_sfmt_cmp_m_b_m; }
1353         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1354       case 173 :
1355         if ((base_insn & 0xbf0) == 0xad0)
1356           { itype = CRISV10F_INSN_CMP_M_W_M; goto extract_sfmt_cmp_m_w_m; }
1357         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1358       case 174 :
1359         if ((base_insn & 0xbf0) == 0xae0)
1360           { itype = CRISV10F_INSN_CMP_M_D_M; goto extract_sfmt_cmp_m_d_m; }
1361         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1362       case 176 :
1363         if ((base_insn & 0xbf0) == 0xb00)
1364           { itype = CRISV10F_INSN_AND_M_B_M; goto extract_sfmt_and_m_b_m; }
1365         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1366       case 177 :
1367         if ((base_insn & 0xbf0) == 0xb10)
1368           { itype = CRISV10F_INSN_AND_M_W_M; goto extract_sfmt_and_m_w_m; }
1369         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1370       case 178 :
1371         if ((base_insn & 0xbf0) == 0xb20)
1372           { itype = CRISV10F_INSN_AND_M_D_M; goto extract_sfmt_and_m_d_m; }
1373         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1374       case 180 :
1375         if ((base_insn & 0xbf0) == 0xb40)
1376           { itype = CRISV10F_INSN_OR_M_B_M; goto extract_sfmt_and_m_b_m; }
1377         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1378       case 181 :
1379         if ((base_insn & 0xbf0) == 0xb50)
1380           { itype = CRISV10F_INSN_OR_M_W_M; goto extract_sfmt_and_m_w_m; }
1381         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1382       case 182 :
1383         if ((base_insn & 0xbf0) == 0xb60)
1384           { itype = CRISV10F_INSN_OR_M_D_M; goto extract_sfmt_and_m_d_m; }
1385         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1386       case 183 : /* fall through */
1387       case 247 :
1388         if ((base_insn & 0xfbf0) == 0x3b70)
1389           { itype = CRISV10F_INSN_SBFS; goto extract_sfmt_sbfs; }
1390         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1391       case 184 : /* fall through */
1392       case 248 :
1393         if ((base_insn & 0xfbf0) == 0xb80)
1394           { itype = CRISV10F_INSN_TEST_M_B_M; goto extract_sfmt_test_m_b_m; }
1395         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1396       case 185 : /* fall through */
1397       case 249 :
1398         if ((base_insn & 0xfbf0) == 0xb90)
1399           { itype = CRISV10F_INSN_TEST_M_W_M; goto extract_sfmt_test_m_w_m; }
1400         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1401       case 186 : /* fall through */
1402       case 250 :
1403         if ((base_insn & 0xfbf0) == 0xba0)
1404           { itype = CRISV10F_INSN_TEST_M_D_M; goto extract_sfmt_test_m_d_m; }
1405         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1406       case 187 : /* fall through */
1407       case 251 :
1408         {
1409           unsigned int val = (((insn >> 12) & (15 << 0)));
1410           switch (val)
1411           {
1412           case 0 : /* fall through */
1413           case 1 : /* fall through */
1414           case 2 : /* fall through */
1415           case 3 : /* fall through */
1416           case 4 : /* fall through */
1417           case 5 : /* fall through */
1418           case 6 : /* fall through */
1419           case 7 : /* fall through */
1420           case 8 : /* fall through */
1421           case 9 : /* fall through */
1422           case 10 : /* fall through */
1423           case 11 : /* fall through */
1424           case 12 : /* fall through */
1425           case 13 : /* fall through */
1426           case 14 :
1427             if ((base_insn & 0xbf0) == 0xbb0)
1428               { itype = CRISV10F_INSN_MOVEM_M_R; goto extract_sfmt_movem_m_r; }
1429             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1430           case 15 :
1431             if ((base_insn & 0xfbf0) == 0xfbb0)
1432               { itype = CRISV10F_INSN_MOVEM_M_PC; goto extract_sfmt_movem_m_pc; }
1433             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1434           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1435           }
1436         }
1437       case 188 : /* fall through */
1438       case 252 :
1439         if ((base_insn & 0xbf0) == 0xbc0)
1440           { itype = CRISV10F_INSN_MOVE_R_M_B_M; goto extract_sfmt_move_r_m_b_m; }
1441         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1442       case 189 : /* fall through */
1443       case 253 :
1444         if ((base_insn & 0xbf0) == 0xbd0)
1445           { itype = CRISV10F_INSN_MOVE_R_M_W_M; goto extract_sfmt_move_r_m_w_m; }
1446         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1447       case 190 : /* fall through */
1448       case 254 :
1449         if ((base_insn & 0xbf0) == 0xbe0)
1450           { itype = CRISV10F_INSN_MOVE_R_M_D_M; goto extract_sfmt_move_r_m_d_m; }
1451         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1452       case 191 : /* fall through */
1453       case 255 :
1454         if ((base_insn & 0xbf0) == 0xbf0)
1455           { itype = CRISV10F_INSN_MOVEM_R_M; goto extract_sfmt_movem_r_m; }
1456         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1457       case 192 :
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 :
1477             if ((base_insn & 0xbf0) == 0x800)
1478               { itype = CRISV10F_INSN_ADDU_M_B_M; goto extract_sfmt_adds_m_b_m; }
1479             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1480           case 15 :
1481             if ((base_insn & 0xfff) == 0xc0f)
1482               { itype = CRISV10F_INSN_ADDUCBR; goto extract_sfmt_addscbr; }
1483             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1484           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1485           }
1486         }
1487       case 193 :
1488         {
1489           unsigned int val = (((insn >> 0) & (15 << 0)));
1490           switch (val)
1491           {
1492           case 0 : /* fall through */
1493           case 1 : /* fall through */
1494           case 2 : /* fall through */
1495           case 3 : /* fall through */
1496           case 4 : /* fall through */
1497           case 5 : /* fall through */
1498           case 6 : /* fall through */
1499           case 7 : /* fall through */
1500           case 8 : /* fall through */
1501           case 9 : /* fall through */
1502           case 10 : /* fall through */
1503           case 11 : /* fall through */
1504           case 12 : /* fall through */
1505           case 13 : /* fall through */
1506           case 14 :
1507             if ((base_insn & 0xbf0) == 0x810)
1508               { itype = CRISV10F_INSN_ADDU_M_W_M; goto extract_sfmt_adds_m_w_m; }
1509             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1510           case 15 :
1511             if ((base_insn & 0xfff) == 0xc1f)
1512               { itype = CRISV10F_INSN_ADDUCWR; goto extract_sfmt_addscwr; }
1513             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1514           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1515           }
1516         }
1517       case 194 :
1518         {
1519           unsigned int val = (((insn >> 0) & (15 << 0)));
1520           switch (val)
1521           {
1522           case 0 : /* fall through */
1523           case 1 : /* fall through */
1524           case 2 : /* fall through */
1525           case 3 : /* fall through */
1526           case 4 : /* fall through */
1527           case 5 : /* fall through */
1528           case 6 : /* fall through */
1529           case 7 : /* fall through */
1530           case 8 : /* fall through */
1531           case 9 : /* fall through */
1532           case 10 : /* fall through */
1533           case 11 : /* fall through */
1534           case 12 : /* fall through */
1535           case 13 : /* fall through */
1536           case 14 :
1537             if ((base_insn & 0xbf0) == 0x820)
1538               { itype = CRISV10F_INSN_ADDS_M_B_M; goto extract_sfmt_adds_m_b_m; }
1539             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1540           case 15 :
1541             if ((base_insn & 0xfff) == 0xc2f)
1542               { itype = CRISV10F_INSN_ADDSCBR; goto extract_sfmt_addscbr; }
1543             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1544           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1545           }
1546         }
1547       case 195 :
1548         {
1549           unsigned int val = (((insn >> 0) & (15 << 0)));
1550           switch (val)
1551           {
1552           case 0 : /* fall through */
1553           case 1 : /* fall through */
1554           case 2 : /* fall through */
1555           case 3 : /* fall through */
1556           case 4 : /* fall through */
1557           case 5 : /* fall through */
1558           case 6 : /* fall through */
1559           case 7 : /* fall through */
1560           case 8 : /* fall through */
1561           case 9 : /* fall through */
1562           case 10 : /* fall through */
1563           case 11 : /* fall through */
1564           case 12 : /* fall through */
1565           case 13 : /* fall through */
1566           case 14 :
1567             if ((base_insn & 0xbf0) == 0x830)
1568               { itype = CRISV10F_INSN_ADDS_M_W_M; goto extract_sfmt_adds_m_w_m; }
1569             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1570           case 15 :
1571             if ((base_insn & 0xfff) == 0xc3f)
1572               { itype = CRISV10F_INSN_ADDSCWR; goto extract_sfmt_addscwr; }
1573             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1574           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1575           }
1576         }
1577       case 196 :
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 :
1597             if ((base_insn & 0xbf0) == 0x840)
1598               { itype = CRISV10F_INSN_MOVU_M_B_M; goto extract_sfmt_movs_m_b_m; }
1599             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1600           case 15 :
1601             if ((base_insn & 0xfff) == 0xc4f)
1602               { itype = CRISV10F_INSN_MOVUCBR; goto extract_sfmt_movucbr; }
1603             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1604           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1605           }
1606         }
1607       case 197 :
1608         {
1609           unsigned int val = (((insn >> 0) & (15 << 0)));
1610           switch (val)
1611           {
1612           case 0 : /* fall through */
1613           case 1 : /* fall through */
1614           case 2 : /* fall through */
1615           case 3 : /* fall through */
1616           case 4 : /* fall through */
1617           case 5 : /* fall through */
1618           case 6 : /* fall through */
1619           case 7 : /* fall through */
1620           case 8 : /* fall through */
1621           case 9 : /* fall through */
1622           case 10 : /* fall through */
1623           case 11 : /* fall through */
1624           case 12 : /* fall through */
1625           case 13 : /* fall through */
1626           case 14 :
1627             if ((base_insn & 0xbf0) == 0x850)
1628               { itype = CRISV10F_INSN_MOVU_M_W_M; goto extract_sfmt_movs_m_w_m; }
1629             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1630           case 15 :
1631             if ((base_insn & 0xfff) == 0xc5f)
1632               { itype = CRISV10F_INSN_MOVUCWR; goto extract_sfmt_movucwr; }
1633             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1634           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1635           }
1636         }
1637       case 198 :
1638         {
1639           unsigned int val = (((insn >> 0) & (15 << 0)));
1640           switch (val)
1641           {
1642           case 0 : /* fall through */
1643           case 1 : /* fall through */
1644           case 2 : /* fall through */
1645           case 3 : /* fall through */
1646           case 4 : /* fall through */
1647           case 5 : /* fall through */
1648           case 6 : /* fall through */
1649           case 7 : /* fall through */
1650           case 8 : /* fall through */
1651           case 9 : /* fall through */
1652           case 10 : /* fall through */
1653           case 11 : /* fall through */
1654           case 12 : /* fall through */
1655           case 13 : /* fall through */
1656           case 14 :
1657             if ((base_insn & 0xbf0) == 0x860)
1658               { itype = CRISV10F_INSN_MOVS_M_B_M; goto extract_sfmt_movs_m_b_m; }
1659             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1660           case 15 :
1661             if ((base_insn & 0xfff) == 0xc6f)
1662               { itype = CRISV10F_INSN_MOVSCBR; goto extract_sfmt_movscbr; }
1663             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1664           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1665           }
1666         }
1667       case 199 :
1668         {
1669           unsigned int val = (((insn >> 0) & (15 << 0)));
1670           switch (val)
1671           {
1672           case 0 : /* fall through */
1673           case 1 : /* fall through */
1674           case 2 : /* fall through */
1675           case 3 : /* fall through */
1676           case 4 : /* fall through */
1677           case 5 : /* fall through */
1678           case 6 : /* fall through */
1679           case 7 : /* fall through */
1680           case 8 : /* fall through */
1681           case 9 : /* fall through */
1682           case 10 : /* fall through */
1683           case 11 : /* fall through */
1684           case 12 : /* fall through */
1685           case 13 : /* fall through */
1686           case 14 :
1687             if ((base_insn & 0xbf0) == 0x870)
1688               { itype = CRISV10F_INSN_MOVS_M_W_M; goto extract_sfmt_movs_m_w_m; }
1689             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1690           case 15 :
1691             if ((base_insn & 0xfff) == 0xc7f)
1692               { itype = CRISV10F_INSN_MOVSCWR; goto extract_sfmt_movscwr; }
1693             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1694           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1695           }
1696         }
1697       case 200 :
1698         {
1699           unsigned int val = (((insn >> 0) & (15 << 0)));
1700           switch (val)
1701           {
1702           case 0 : /* fall through */
1703           case 1 : /* fall through */
1704           case 2 : /* fall through */
1705           case 3 : /* fall through */
1706           case 4 : /* fall through */
1707           case 5 : /* fall through */
1708           case 6 : /* fall through */
1709           case 7 : /* fall through */
1710           case 8 : /* fall through */
1711           case 9 : /* fall through */
1712           case 10 : /* fall through */
1713           case 11 : /* fall through */
1714           case 12 : /* fall through */
1715           case 13 : /* fall through */
1716           case 14 :
1717             if ((base_insn & 0xbf0) == 0x880)
1718               { itype = CRISV10F_INSN_SUBU_M_B_M; goto extract_sfmt_adds_m_b_m; }
1719             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1720           case 15 :
1721             if ((base_insn & 0xfff) == 0xc8f)
1722               { itype = CRISV10F_INSN_SUBUCBR; goto extract_sfmt_addscbr; }
1723             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1724           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1725           }
1726         }
1727       case 201 :
1728         {
1729           unsigned int val = (((insn >> 0) & (15 << 0)));
1730           switch (val)
1731           {
1732           case 0 : /* fall through */
1733           case 1 : /* fall through */
1734           case 2 : /* fall through */
1735           case 3 : /* fall through */
1736           case 4 : /* fall through */
1737           case 5 : /* fall through */
1738           case 6 : /* fall through */
1739           case 7 : /* fall through */
1740           case 8 : /* fall through */
1741           case 9 : /* fall through */
1742           case 10 : /* fall through */
1743           case 11 : /* fall through */
1744           case 12 : /* fall through */
1745           case 13 : /* fall through */
1746           case 14 :
1747             if ((base_insn & 0xbf0) == 0x890)
1748               { itype = CRISV10F_INSN_SUBU_M_W_M; goto extract_sfmt_adds_m_w_m; }
1749             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1750           case 15 :
1751             if ((base_insn & 0xfff) == 0xc9f)
1752               { itype = CRISV10F_INSN_SUBUCWR; goto extract_sfmt_addscwr; }
1753             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1754           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1755           }
1756         }
1757       case 202 :
1758         {
1759           unsigned int val = (((insn >> 0) & (15 << 0)));
1760           switch (val)
1761           {
1762           case 0 : /* fall through */
1763           case 1 : /* fall through */
1764           case 2 : /* fall through */
1765           case 3 : /* fall through */
1766           case 4 : /* fall through */
1767           case 5 : /* fall through */
1768           case 6 : /* fall through */
1769           case 7 : /* fall through */
1770           case 8 : /* fall through */
1771           case 9 : /* fall through */
1772           case 10 : /* fall through */
1773           case 11 : /* fall through */
1774           case 12 : /* fall through */
1775           case 13 : /* fall through */
1776           case 14 :
1777             if ((base_insn & 0xbf0) == 0x8a0)
1778               { itype = CRISV10F_INSN_SUBS_M_B_M; goto extract_sfmt_adds_m_b_m; }
1779             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1780           case 15 :
1781             if ((base_insn & 0xfff) == 0xcaf)
1782               { itype = CRISV10F_INSN_SUBSCBR; goto extract_sfmt_addscbr; }
1783             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1784           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1785           }
1786         }
1787       case 203 :
1788         {
1789           unsigned int val = (((insn >> 0) & (15 << 0)));
1790           switch (val)
1791           {
1792           case 0 : /* fall through */
1793           case 1 : /* fall through */
1794           case 2 : /* fall through */
1795           case 3 : /* fall through */
1796           case 4 : /* fall through */
1797           case 5 : /* fall through */
1798           case 6 : /* fall through */
1799           case 7 : /* fall through */
1800           case 8 : /* fall through */
1801           case 9 : /* fall through */
1802           case 10 : /* fall through */
1803           case 11 : /* fall through */
1804           case 12 : /* fall through */
1805           case 13 : /* fall through */
1806           case 14 :
1807             if ((base_insn & 0xbf0) == 0x8b0)
1808               { itype = CRISV10F_INSN_SUBS_M_W_M; goto extract_sfmt_adds_m_w_m; }
1809             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1810           case 15 :
1811             if ((base_insn & 0xfff) == 0xcbf)
1812               { itype = CRISV10F_INSN_SUBSCWR; goto extract_sfmt_addscwr; }
1813             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1814           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1815           }
1816         }
1817       case 204 :
1818         {
1819           unsigned int val = (((insn >> 0) & (15 << 0)));
1820           switch (val)
1821           {
1822           case 0 : /* fall through */
1823           case 1 : /* fall through */
1824           case 2 : /* fall through */
1825           case 3 : /* fall through */
1826           case 4 : /* fall through */
1827           case 5 : /* fall through */
1828           case 6 : /* fall through */
1829           case 7 : /* fall through */
1830           case 8 : /* fall through */
1831           case 9 : /* fall through */
1832           case 10 : /* fall through */
1833           case 11 : /* fall through */
1834           case 12 : /* fall through */
1835           case 13 : /* fall through */
1836           case 14 :
1837             if ((base_insn & 0xbf0) == 0x8c0)
1838               { itype = CRISV10F_INSN_CMPU_M_B_M; goto extract_sfmt_cmp_m_b_m; }
1839             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1840           case 15 :
1841             if ((base_insn & 0xfff) == 0xccf)
1842               { itype = CRISV10F_INSN_CMPUCBR; goto extract_sfmt_cmpucbr; }
1843             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1844           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1845           }
1846         }
1847       case 205 :
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 :
1867             if ((base_insn & 0xbf0) == 0x8d0)
1868               { itype = CRISV10F_INSN_CMPU_M_W_M; goto extract_sfmt_cmp_m_w_m; }
1869             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1870           case 15 :
1871             if ((base_insn & 0xfff) == 0xcdf)
1872               { itype = CRISV10F_INSN_CMPUCWR; goto extract_sfmt_cmpucwr; }
1873             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1874           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1875           }
1876         }
1877       case 206 :
1878         {
1879           unsigned int val = (((insn >> 0) & (15 << 0)));
1880           switch (val)
1881           {
1882           case 0 : /* fall through */
1883           case 1 : /* fall through */
1884           case 2 : /* fall through */
1885           case 3 : /* fall through */
1886           case 4 : /* fall through */
1887           case 5 : /* fall through */
1888           case 6 : /* fall through */
1889           case 7 : /* fall through */
1890           case 8 : /* fall through */
1891           case 9 : /* fall through */
1892           case 10 : /* fall through */
1893           case 11 : /* fall through */
1894           case 12 : /* fall through */
1895           case 13 : /* fall through */
1896           case 14 :
1897             if ((base_insn & 0xbf0) == 0x8e0)
1898               { itype = CRISV10F_INSN_CMPS_M_B_M; goto extract_sfmt_cmp_m_b_m; }
1899             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1900           case 15 :
1901             if ((base_insn & 0xfff) == 0xcef)
1902               { itype = CRISV10F_INSN_CMPSCBR; goto extract_sfmt_cmpcbr; }
1903             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1904           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1905           }
1906         }
1907       case 207 :
1908         {
1909           unsigned int val = (((insn >> 0) & (15 << 0)));
1910           switch (val)
1911           {
1912           case 0 : /* fall through */
1913           case 1 : /* fall through */
1914           case 2 : /* fall through */
1915           case 3 : /* fall through */
1916           case 4 : /* fall through */
1917           case 5 : /* fall through */
1918           case 6 : /* fall through */
1919           case 7 : /* fall through */
1920           case 8 : /* fall through */
1921           case 9 : /* fall through */
1922           case 10 : /* fall through */
1923           case 11 : /* fall through */
1924           case 12 : /* fall through */
1925           case 13 : /* fall through */
1926           case 14 :
1927             if ((base_insn & 0xbf0) == 0x8f0)
1928               { itype = CRISV10F_INSN_CMPS_M_W_M; goto extract_sfmt_cmp_m_w_m; }
1929             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1930           case 15 :
1931             if ((base_insn & 0xfff) == 0xcff)
1932               { itype = CRISV10F_INSN_CMPSCWR; goto extract_sfmt_cmpcwr; }
1933             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1934           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1935           }
1936         }
1937       case 208 :
1938         if ((base_insn & 0xff0) == 0xd00)
1939           { itype = CRISV10F_INSN_MULS_B; goto extract_sfmt_muls_b; }
1940         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1941       case 209 :
1942         if ((base_insn & 0xff0) == 0xd10)
1943           { itype = CRISV10F_INSN_MULS_W; goto extract_sfmt_muls_b; }
1944         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1945       case 210 :
1946         if ((base_insn & 0xff0) == 0xd20)
1947           { itype = CRISV10F_INSN_MULS_D; goto extract_sfmt_muls_b; }
1948         itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1949       case 211 :
1950         {
1951           unsigned int val = (((insn >> 0) & (15 << 0)));
1952           switch (val)
1953           {
1954           case 0 : /* fall through */
1955           case 1 : /* fall through */
1956           case 2 : /* fall through */
1957           case 3 : /* fall through */
1958           case 4 : /* fall through */
1959           case 5 : /* fall through */
1960           case 6 : /* fall through */
1961           case 7 : /* fall through */
1962           case 8 : /* fall through */
1963           case 9 : /* fall through */
1964           case 10 : /* fall through */
1965           case 11 : /* fall through */
1966           case 12 : /* fall through */
1967           case 13 : /* fall through */
1968           case 14 :
1969             if ((base_insn & 0xbf0) == 0x930)
1970               { itype = CRISV10F_INSN_JUMP_M; goto extract_sfmt_jump_m; }
1971             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1972           case 15 :
1973             if ((base_insn & 0xfff) == 0xd3f)
1974               { itype = CRISV10F_INSN_JUMP_C; goto extract_sfmt_jump_c; }
1975             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1976           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1977           }
1978         }
1979       case 212 :
1980         {
1981           unsigned int val = (((insn >> 0) & (15 << 0)));
1982           switch (val)
1983           {
1984           case 0 : /* fall through */
1985           case 1 : /* fall through */
1986           case 2 : /* fall through */
1987           case 3 : /* fall through */
1988           case 4 : /* fall through */
1989           case 5 : /* fall through */
1990           case 6 : /* fall through */
1991           case 7 : /* fall through */
1992           case 8 : /* fall through */
1993           case 9 : /* fall through */
1994           case 10 : /* fall through */
1995           case 11 : /* fall through */
1996           case 12 : /* fall through */
1997           case 13 : /* fall through */
1998           case 14 :
1999             if ((base_insn & 0xbf0) == 0x940)
2000               { itype = CRISV10F_INSN_ADDO_M_B_M; goto extract_sfmt_addo_m_b_m; }
2001             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2002           case 15 :
2003             if ((base_insn & 0xfff) == 0xd4f)
2004               { itype = CRISV10F_INSN_ADDO_CB; goto extract_sfmt_addo_cb; }
2005             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2006           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2007           }
2008         }
2009       case 213 :
2010         {
2011           unsigned int val = (((insn >> 0) & (15 << 0)));
2012           switch (val)
2013           {
2014           case 0 : /* fall through */
2015           case 1 : /* fall through */
2016           case 2 : /* fall through */
2017           case 3 : /* fall through */
2018           case 4 : /* fall through */
2019           case 5 : /* fall through */
2020           case 6 : /* fall through */
2021           case 7 : /* fall through */
2022           case 8 : /* fall through */
2023           case 9 : /* fall through */
2024           case 10 : /* fall through */
2025           case 11 : /* fall through */
2026           case 12 : /* fall through */
2027           case 13 : /* fall through */
2028           case 14 :
2029             if ((base_insn & 0xbf0) == 0x950)
2030               { itype = CRISV10F_INSN_ADDO_M_W_M; goto extract_sfmt_addo_m_w_m; }
2031             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2032           case 15 :
2033             if ((base_insn & 0xfff) == 0xd5f)
2034               { itype = CRISV10F_INSN_ADDO_CW; goto extract_sfmt_addo_cw; }
2035             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2036           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2037           }
2038         }
2039       case 214 :
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 :
2059             if ((base_insn & 0xbf0) == 0x960)
2060               { itype = CRISV10F_INSN_ADDO_M_D_M; goto extract_sfmt_addo_m_d_m; }
2061             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2062           case 15 :
2063             if ((base_insn & 0xfff) == 0xd6f)
2064               { itype = CRISV10F_INSN_ADDO_CD; goto extract_sfmt_addo_cd; }
2065             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2066           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2067           }
2068         }
2069       case 215 :
2070         {
2071           unsigned int val = (((insn >> 0) & (15 << 0)));
2072           switch (val)
2073           {
2074           case 0 : /* fall through */
2075           case 1 : /* fall through */
2076           case 2 : /* fall through */
2077           case 3 : /* fall through */
2078           case 4 : /* fall through */
2079           case 5 : /* fall through */
2080           case 6 : /* fall through */
2081           case 7 : /* fall through */
2082           case 8 : /* fall through */
2083           case 9 : /* fall through */
2084           case 10 : /* fall through */
2085           case 11 : /* fall through */
2086           case 12 : /* fall through */
2087           case 13 : /* fall through */
2088           case 14 :
2089             if ((base_insn & 0xfbf0) == 0x970)
2090               { itype = CRISV10F_INSN_DIP_M; goto extract_sfmt_dip_m; }
2091             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2092           case 15 :
2093             if ((base_insn & 0xffff) == 0xd7f)
2094               { itype = CRISV10F_INSN_DIP_C; goto extract_sfmt_dip_c; }
2095             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2096           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2097           }
2098         }
2099       case 220 :
2100         {
2101           unsigned int val = (((insn >> 0) & (15 << 0)));
2102           switch (val)
2103           {
2104           case 0 : /* fall through */
2105           case 1 : /* fall through */
2106           case 2 : /* fall through */
2107           case 3 : /* fall through */
2108           case 4 : /* fall through */
2109           case 5 : /* fall through */
2110           case 6 : /* fall through */
2111           case 7 : /* fall through */
2112           case 8 : /* fall through */
2113           case 9 : /* fall through */
2114           case 10 : /* fall through */
2115           case 11 : /* fall through */
2116           case 12 : /* fall through */
2117           case 13 : /* fall through */
2118           case 14 :
2119             if ((base_insn & 0xbf0) == 0x9c0)
2120               { itype = CRISV10F_INSN_BOUND_M_B_M; goto extract_sfmt_bound_m_b_m; }
2121             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2122           case 15 :
2123             if ((base_insn & 0xfff) == 0xdcf)
2124               { itype = CRISV10F_INSN_BOUND_CB; goto extract_sfmt_bound_cb; }
2125             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2126           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2127           }
2128         }
2129       case 221 :
2130         {
2131           unsigned int val = (((insn >> 0) & (15 << 0)));
2132           switch (val)
2133           {
2134           case 0 : /* fall through */
2135           case 1 : /* fall through */
2136           case 2 : /* fall through */
2137           case 3 : /* fall through */
2138           case 4 : /* fall through */
2139           case 5 : /* fall through */
2140           case 6 : /* fall through */
2141           case 7 : /* fall through */
2142           case 8 : /* fall through */
2143           case 9 : /* fall through */
2144           case 10 : /* fall through */
2145           case 11 : /* fall through */
2146           case 12 : /* fall through */
2147           case 13 : /* fall through */
2148           case 14 :
2149             if ((base_insn & 0xbf0) == 0x9d0)
2150               { itype = CRISV10F_INSN_BOUND_M_W_M; goto extract_sfmt_bound_m_w_m; }
2151             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2152           case 15 :
2153             if ((base_insn & 0xfff) == 0xddf)
2154               { itype = CRISV10F_INSN_BOUND_CW; goto extract_sfmt_bound_cw; }
2155             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2156           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2157           }
2158         }
2159       case 222 :
2160         {
2161           unsigned int val = (((insn >> 0) & (15 << 0)));
2162           switch (val)
2163           {
2164           case 0 : /* fall through */
2165           case 1 : /* fall through */
2166           case 2 : /* fall through */
2167           case 3 : /* fall through */
2168           case 4 : /* fall through */
2169           case 5 : /* fall through */
2170           case 6 : /* fall through */
2171           case 7 : /* fall through */
2172           case 8 : /* fall through */
2173           case 9 : /* fall through */
2174           case 10 : /* fall through */
2175           case 11 : /* fall through */
2176           case 12 : /* fall through */
2177           case 13 : /* fall through */
2178           case 14 :
2179             if ((base_insn & 0xbf0) == 0x9e0)
2180               { itype = CRISV10F_INSN_BOUND_M_D_M; goto extract_sfmt_bound_m_d_m; }
2181             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2182           case 15 :
2183             if ((base_insn & 0xfff) == 0xdef)
2184               { itype = CRISV10F_INSN_BOUND_CD; goto extract_sfmt_bound_cd; }
2185             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2186           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2187           }
2188         }
2189       case 223 :
2190         {
2191           unsigned int val = (((insn >> 12) & (15 << 0)));
2192           switch (val)
2193           {
2194           case 0 : /* fall through */
2195           case 1 : /* fall through */
2196           case 2 : /* fall through */
2197           case 3 : /* fall through */
2198           case 4 : /* fall through */
2199           case 5 : /* fall through */
2200           case 6 : /* fall through */
2201           case 7 : /* fall through */
2202           case 8 : /* fall through */
2203           case 9 : /* fall through */
2204           case 10 : /* fall through */
2205           case 11 : /* fall through */
2206           case 12 : /* fall through */
2207           case 13 : /* fall through */
2208           case 15 :
2209             if ((base_insn & 0xfff) == 0xdff)
2210               { itype = CRISV10F_INSN_BCC_W; goto extract_sfmt_bcc_w; }
2211             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2212           case 14 :
2213             if ((base_insn & 0xffff) == 0xedff)
2214               { itype = CRISV10F_INSN_BA_W; goto extract_sfmt_ba_w; }
2215             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2216           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2217           }
2218         }
2219       case 224 :
2220         {
2221           unsigned int val = (((insn >> 0) & (15 << 0)));
2222           switch (val)
2223           {
2224           case 0 : /* fall through */
2225           case 1 : /* fall through */
2226           case 2 : /* fall through */
2227           case 3 : /* fall through */
2228           case 4 : /* fall through */
2229           case 5 : /* fall through */
2230           case 6 : /* fall through */
2231           case 7 : /* fall through */
2232           case 8 : /* fall through */
2233           case 9 : /* fall through */
2234           case 10 : /* fall through */
2235           case 11 : /* fall through */
2236           case 12 : /* fall through */
2237           case 13 : /* fall through */
2238           case 14 :
2239             if ((base_insn & 0xbf0) == 0xa00)
2240               { itype = CRISV10F_INSN_ADD_M_B_M; goto extract_sfmt_add_m_b_m; }
2241             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2242           case 15 :
2243             if ((base_insn & 0xfff) == 0xe0f)
2244               { itype = CRISV10F_INSN_ADDCBR; goto extract_sfmt_addcbr; }
2245             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2246           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2247           }
2248         }
2249       case 225 :
2250         {
2251           unsigned int val = (((insn >> 0) & (15 << 0)));
2252           switch (val)
2253           {
2254           case 0 : /* fall through */
2255           case 1 : /* fall through */
2256           case 2 : /* fall through */
2257           case 3 : /* fall through */
2258           case 4 : /* fall through */
2259           case 5 : /* fall through */
2260           case 6 : /* fall through */
2261           case 7 : /* fall through */
2262           case 8 : /* fall through */
2263           case 9 : /* fall through */
2264           case 10 : /* fall through */
2265           case 11 : /* fall through */
2266           case 12 : /* fall through */
2267           case 13 : /* fall through */
2268           case 14 :
2269             if ((base_insn & 0xbf0) == 0xa10)
2270               { itype = CRISV10F_INSN_ADD_M_W_M; goto extract_sfmt_add_m_w_m; }
2271             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2272           case 15 :
2273             if ((base_insn & 0xfff) == 0xe1f)
2274               { itype = CRISV10F_INSN_ADDCWR; goto extract_sfmt_addcwr; }
2275             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2276           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2277           }
2278         }
2279       case 226 :
2280         {
2281           unsigned int val = (((insn >> 12) & (15 << 0)));
2282           switch (val)
2283           {
2284           case 0 : /* fall through */
2285           case 1 : /* fall through */
2286           case 2 : /* fall through */
2287           case 3 : /* fall through */
2288           case 4 : /* fall through */
2289           case 5 : /* fall through */
2290           case 6 : /* fall through */
2291           case 7 : /* fall through */
2292           case 8 : /* fall through */
2293           case 9 : /* fall through */
2294           case 10 : /* fall through */
2295           case 11 : /* fall through */
2296           case 12 : /* fall through */
2297           case 13 : /* fall through */
2298           case 14 :
2299             {
2300               unsigned int val = (((insn >> 0) & (15 << 0)));
2301               switch (val)
2302               {
2303               case 0 : /* fall through */
2304               case 1 : /* fall through */
2305               case 2 : /* fall through */
2306               case 3 : /* fall through */
2307               case 4 : /* fall through */
2308               case 5 : /* fall through */
2309               case 6 : /* fall through */
2310               case 7 : /* fall through */
2311               case 8 : /* fall through */
2312               case 9 : /* fall through */
2313               case 10 : /* fall through */
2314               case 11 : /* fall through */
2315               case 12 : /* fall through */
2316               case 13 : /* fall through */
2317               case 14 :
2318                 if ((base_insn & 0xbf0) == 0xa20)
2319                   { itype = CRISV10F_INSN_ADD_M_D_M; goto extract_sfmt_add_m_d_m; }
2320                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2321               case 15 :
2322                 if ((base_insn & 0xfff) == 0xe2f)
2323                   { itype = CRISV10F_INSN_ADDCDR; goto extract_sfmt_addcdr; }
2324                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2325               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2326               }
2327             }
2328           case 15 :
2329             {
2330               unsigned int val = (((insn >> 0) & (15 << 0)));
2331               switch (val)
2332               {
2333               case 0 : /* fall through */
2334               case 1 : /* fall through */
2335               case 2 : /* fall through */
2336               case 3 : /* fall through */
2337               case 4 : /* fall through */
2338               case 5 : /* fall through */
2339               case 6 : /* fall through */
2340               case 7 : /* fall through */
2341               case 8 : /* fall through */
2342               case 9 : /* fall through */
2343               case 10 : /* fall through */
2344               case 11 : /* fall through */
2345               case 12 : /* fall through */
2346               case 13 : /* fall through */
2347               case 14 :
2348                 if ((base_insn & 0xbf0) == 0xa20)
2349                   { itype = CRISV10F_INSN_ADD_M_D_M; goto extract_sfmt_add_m_d_m; }
2350                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2351               case 15 :
2352                 if ((base_insn & 0xffff) == 0xfe2f)
2353                   { itype = CRISV10F_INSN_ADDCPC; goto extract_sfmt_addcpc; }
2354                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2355               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2356               }
2357             }
2358           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2359           }
2360         }
2361       case 227 :
2362         {
2363           unsigned int val = (((insn >> 12) & (15 << 0)));
2364           switch (val)
2365           {
2366           case 0 :
2367             {
2368               unsigned int val = (((insn >> 0) & (15 << 0)));
2369               switch (val)
2370               {
2371               case 0 : /* fall through */
2372               case 1 : /* fall through */
2373               case 2 : /* fall through */
2374               case 3 : /* fall through */
2375               case 4 : /* fall through */
2376               case 5 : /* fall through */
2377               case 6 : /* fall through */
2378               case 7 : /* fall through */
2379               case 8 : /* fall through */
2380               case 9 : /* fall through */
2381               case 10 : /* fall through */
2382               case 11 : /* fall through */
2383               case 12 : /* fall through */
2384               case 13 : /* fall through */
2385               case 14 :
2386                 if ((base_insn & 0xbf0) == 0xa30)
2387                   { itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10; }
2388                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2389               case 15 :
2390                 if ((base_insn & 0xffff) == 0xe3f)
2391                   { itype = CRISV10F_INSN_MOVE_C_SPRV10_P0; goto extract_sfmt_move_c_sprv10_p0; }
2392                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2393               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2394               }
2395             }
2396           case 1 :
2397             {
2398               unsigned int val = (((insn >> 0) & (15 << 0)));
2399               switch (val)
2400               {
2401               case 0 : /* fall through */
2402               case 1 : /* fall through */
2403               case 2 : /* fall through */
2404               case 3 : /* fall through */
2405               case 4 : /* fall through */
2406               case 5 : /* fall through */
2407               case 6 : /* fall through */
2408               case 7 : /* fall through */
2409               case 8 : /* fall through */
2410               case 9 : /* fall through */
2411               case 10 : /* fall through */
2412               case 11 : /* fall through */
2413               case 12 : /* fall through */
2414               case 13 : /* fall through */
2415               case 14 :
2416                 if ((base_insn & 0xbf0) == 0xa30)
2417                   { itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10; }
2418                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2419               case 15 :
2420                 if ((base_insn & 0xffff) == 0x1e3f)
2421                   { itype = CRISV10F_INSN_MOVE_C_SPRV10_P1; goto extract_sfmt_move_c_sprv10_p0; }
2422                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2423               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2424               }
2425             }
2426           case 2 : /* fall through */
2427           case 3 : /* fall through */
2428           case 6 :
2429             if ((base_insn & 0xbf0) == 0xa30)
2430               { itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10; }
2431             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2432           case 4 :
2433             {
2434               unsigned int val = (((insn >> 0) & (15 << 0)));
2435               switch (val)
2436               {
2437               case 0 : /* fall through */
2438               case 1 : /* fall through */
2439               case 2 : /* fall through */
2440               case 3 : /* fall through */
2441               case 4 : /* fall through */
2442               case 5 : /* fall through */
2443               case 6 : /* fall through */
2444               case 7 : /* fall through */
2445               case 8 : /* fall through */
2446               case 9 : /* fall through */
2447               case 10 : /* fall through */
2448               case 11 : /* fall through */
2449               case 12 : /* fall through */
2450               case 13 : /* fall through */
2451               case 14 :
2452                 if ((base_insn & 0xbf0) == 0xa30)
2453                   { itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10; }
2454                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2455               case 15 :
2456                 if ((base_insn & 0xffff) == 0x4e3f)
2457                   { itype = CRISV10F_INSN_MOVE_C_SPRV10_P4; goto extract_sfmt_move_c_sprv10_p4; }
2458                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2459               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2460               }
2461             }
2462           case 5 :
2463             {
2464               unsigned int val = (((insn >> 0) & (15 << 0)));
2465               switch (val)
2466               {
2467               case 0 : /* fall through */
2468               case 1 : /* fall through */
2469               case 2 : /* fall through */
2470               case 3 : /* fall through */
2471               case 4 : /* fall through */
2472               case 5 : /* fall through */
2473               case 6 : /* fall through */
2474               case 7 : /* fall through */
2475               case 8 : /* fall through */
2476               case 9 : /* fall through */
2477               case 10 : /* fall through */
2478               case 11 : /* fall through */
2479               case 12 : /* fall through */
2480               case 13 : /* fall through */
2481               case 14 :
2482                 if ((base_insn & 0xbf0) == 0xa30)
2483                   { itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10; }
2484                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2485               case 15 :
2486                 if ((base_insn & 0xffff) == 0x5e3f)
2487                   { itype = CRISV10F_INSN_MOVE_C_SPRV10_P5; goto extract_sfmt_move_c_sprv10_p4; }
2488                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2489               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2490               }
2491             }
2492           case 7 :
2493             {
2494               unsigned int val = (((insn >> 0) & (15 << 0)));
2495               switch (val)
2496               {
2497               case 0 : /* fall through */
2498               case 1 : /* fall through */
2499               case 2 : /* fall through */
2500               case 3 : /* fall through */
2501               case 4 : /* fall through */
2502               case 5 : /* fall through */
2503               case 6 : /* fall through */
2504               case 7 : /* fall through */
2505               case 8 : /* fall through */
2506               case 9 : /* fall through */
2507               case 10 : /* fall through */
2508               case 11 : /* fall through */
2509               case 12 : /* fall through */
2510               case 13 : /* fall through */
2511               case 14 :
2512                 if ((base_insn & 0xbf0) == 0xa30)
2513                   { itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10; }
2514                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2515               case 15 :
2516                 if ((base_insn & 0xffff) == 0x7e3f)
2517                   { itype = CRISV10F_INSN_MOVE_C_SPRV10_P7; goto extract_sfmt_move_c_sprv10_p8; }
2518                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2519               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2520               }
2521             }
2522           case 8 :
2523             {
2524               unsigned int val = (((insn >> 0) & (15 << 0)));
2525               switch (val)
2526               {
2527               case 0 : /* fall through */
2528               case 1 : /* fall through */
2529               case 2 : /* fall through */
2530               case 3 : /* fall through */
2531               case 4 : /* fall through */
2532               case 5 : /* fall through */
2533               case 6 : /* fall through */
2534               case 7 : /* fall through */
2535               case 8 : /* fall through */
2536               case 9 : /* fall through */
2537               case 10 : /* fall through */
2538               case 11 : /* fall through */
2539               case 12 : /* fall through */
2540               case 13 : /* fall through */
2541               case 14 :
2542                 if ((base_insn & 0xbf0) == 0xa30)
2543                   { itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10; }
2544                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2545               case 15 :
2546                 if ((base_insn & 0xffff) == 0x8e3f)
2547                   { itype = CRISV10F_INSN_MOVE_C_SPRV10_P8; goto extract_sfmt_move_c_sprv10_p8; }
2548                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2549               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2550               }
2551             }
2552           case 9 :
2553             {
2554               unsigned int val = (((insn >> 0) & (15 << 0)));
2555               switch (val)
2556               {
2557               case 0 : /* fall through */
2558               case 1 : /* fall through */
2559               case 2 : /* fall through */
2560               case 3 : /* fall through */
2561               case 4 : /* fall through */
2562               case 5 : /* fall through */
2563               case 6 : /* fall through */
2564               case 7 : /* fall through */
2565               case 8 : /* fall through */
2566               case 9 : /* fall through */
2567               case 10 : /* fall through */
2568               case 11 : /* fall through */
2569               case 12 : /* fall through */
2570               case 13 : /* fall through */
2571               case 14 :
2572                 if ((base_insn & 0xbf0) == 0xa30)
2573                   { itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10; }
2574                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2575               case 15 :
2576                 if ((base_insn & 0xffff) == 0x9e3f)
2577                   { itype = CRISV10F_INSN_MOVE_C_SPRV10_P9; goto extract_sfmt_move_c_sprv10_p8; }
2578                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2579               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2580               }
2581             }
2582           case 10 :
2583             {
2584               unsigned int val = (((insn >> 0) & (15 << 0)));
2585               switch (val)
2586               {
2587               case 0 : /* fall through */
2588               case 1 : /* fall through */
2589               case 2 : /* fall through */
2590               case 3 : /* fall through */
2591               case 4 : /* fall through */
2592               case 5 : /* fall through */
2593               case 6 : /* fall through */
2594               case 7 : /* fall through */
2595               case 8 : /* fall through */
2596               case 9 : /* fall through */
2597               case 10 : /* fall through */
2598               case 11 : /* fall through */
2599               case 12 : /* fall through */
2600               case 13 : /* fall through */
2601               case 14 :
2602                 if ((base_insn & 0xbf0) == 0xa30)
2603                   { itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10; }
2604                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2605               case 15 :
2606                 if ((base_insn & 0xffff) == 0xae3f)
2607                   { itype = CRISV10F_INSN_MOVE_C_SPRV10_P10; goto extract_sfmt_move_c_sprv10_p8; }
2608                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2609               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2610               }
2611             }
2612           case 11 :
2613             {
2614               unsigned int val = (((insn >> 0) & (15 << 0)));
2615               switch (val)
2616               {
2617               case 0 : /* fall through */
2618               case 1 : /* fall through */
2619               case 2 : /* fall through */
2620               case 3 : /* fall through */
2621               case 4 : /* fall through */
2622               case 5 : /* fall through */
2623               case 6 : /* fall through */
2624               case 7 : /* fall through */
2625               case 8 : /* fall through */
2626               case 9 : /* fall through */
2627               case 10 : /* fall through */
2628               case 11 : /* fall through */
2629               case 12 : /* fall through */
2630               case 13 : /* fall through */
2631               case 14 :
2632                 if ((base_insn & 0xbf0) == 0xa30)
2633                   { itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10; }
2634                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2635               case 15 :
2636                 if ((base_insn & 0xffff) == 0xbe3f)
2637                   { itype = CRISV10F_INSN_MOVE_C_SPRV10_P11; goto extract_sfmt_move_c_sprv10_p8; }
2638                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2639               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2640               }
2641             }
2642           case 12 :
2643             {
2644               unsigned int val = (((insn >> 0) & (15 << 0)));
2645               switch (val)
2646               {
2647               case 0 : /* fall through */
2648               case 1 : /* fall through */
2649               case 2 : /* fall through */
2650               case 3 : /* fall through */
2651               case 4 : /* fall through */
2652               case 5 : /* fall through */
2653               case 6 : /* fall through */
2654               case 7 : /* fall through */
2655               case 8 : /* fall through */
2656               case 9 : /* fall through */
2657               case 10 : /* fall through */
2658               case 11 : /* fall through */
2659               case 12 : /* fall through */
2660               case 13 : /* fall through */
2661               case 14 :
2662                 if ((base_insn & 0xbf0) == 0xa30)
2663                   { itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10; }
2664                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2665               case 15 :
2666                 if ((base_insn & 0xffff) == 0xce3f)
2667                   { itype = CRISV10F_INSN_MOVE_C_SPRV10_P12; goto extract_sfmt_move_c_sprv10_p8; }
2668                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2669               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2670               }
2671             }
2672           case 13 :
2673             {
2674               unsigned int val = (((insn >> 0) & (15 << 0)));
2675               switch (val)
2676               {
2677               case 0 : /* fall through */
2678               case 1 : /* fall through */
2679               case 2 : /* fall through */
2680               case 3 : /* fall through */
2681               case 4 : /* fall through */
2682               case 5 : /* fall through */
2683               case 6 : /* fall through */
2684               case 7 : /* fall through */
2685               case 8 : /* fall through */
2686               case 9 : /* fall through */
2687               case 10 : /* fall through */
2688               case 11 : /* fall through */
2689               case 12 : /* fall through */
2690               case 13 : /* fall through */
2691               case 14 :
2692                 if ((base_insn & 0xbf0) == 0xa30)
2693                   { itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10; }
2694                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2695               case 15 :
2696                 if ((base_insn & 0xffff) == 0xde3f)
2697                   { itype = CRISV10F_INSN_MOVE_C_SPRV10_P13; goto extract_sfmt_move_c_sprv10_p8; }
2698                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2699               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2700               }
2701             }
2702           case 14 :
2703             {
2704               unsigned int val = (((insn >> 0) & (15 << 0)));
2705               switch (val)
2706               {
2707               case 0 : /* fall through */
2708               case 1 : /* fall through */
2709               case 2 : /* fall through */
2710               case 3 : /* fall through */
2711               case 4 : /* fall through */
2712               case 5 : /* fall through */
2713               case 6 : /* fall through */
2714               case 7 : /* fall through */
2715               case 8 : /* fall through */
2716               case 9 : /* fall through */
2717               case 10 : /* fall through */
2718               case 11 : /* fall through */
2719               case 12 : /* fall through */
2720               case 13 : /* fall through */
2721               case 14 :
2722                 if ((base_insn & 0xbf0) == 0xa30)
2723                   { itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10; }
2724                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2725               case 15 :
2726                 if ((base_insn & 0xffff) == 0xee3f)
2727                   { itype = CRISV10F_INSN_MOVE_C_SPRV10_P14; goto extract_sfmt_move_c_sprv10_p8; }
2728                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2729               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2730               }
2731             }
2732           case 15 :
2733             {
2734               unsigned int val = (((insn >> 0) & (15 << 0)));
2735               switch (val)
2736               {
2737               case 0 : /* fall through */
2738               case 1 : /* fall through */
2739               case 2 : /* fall through */
2740               case 3 : /* fall through */
2741               case 4 : /* fall through */
2742               case 5 : /* fall through */
2743               case 6 : /* fall through */
2744               case 7 : /* fall through */
2745               case 8 : /* fall through */
2746               case 9 : /* fall through */
2747               case 10 : /* fall through */
2748               case 11 : /* fall through */
2749               case 12 : /* fall through */
2750               case 13 : /* fall through */
2751               case 14 :
2752                 if ((base_insn & 0xbf0) == 0xa30)
2753                   { itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10; }
2754                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2755               case 15 :
2756                 if ((base_insn & 0xffff) == 0xfe3f)
2757                   { itype = CRISV10F_INSN_MOVE_C_SPRV10_P15; goto extract_sfmt_move_c_sprv10_p8; }
2758                 itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2759               default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2760               }
2761             }
2762           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2763           }
2764         }
2765       case 228 :
2766         {
2767           unsigned int val = (((insn >> 0) & (15 << 0)));
2768           switch (val)
2769           {
2770           case 0 : /* fall through */
2771           case 1 : /* fall through */
2772           case 2 : /* fall through */
2773           case 3 : /* fall through */
2774           case 4 : /* fall through */
2775           case 5 : /* fall through */
2776           case 6 : /* fall through */
2777           case 7 : /* fall through */
2778           case 8 : /* fall through */
2779           case 9 : /* fall through */
2780           case 10 : /* fall through */
2781           case 11 : /* fall through */
2782           case 12 : /* fall through */
2783           case 13 : /* fall through */
2784           case 14 :
2785             if ((base_insn & 0xbf0) == 0xa40)
2786               { itype = CRISV10F_INSN_MOVE_M_B_M; goto extract_sfmt_move_m_b_m; }
2787             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2788           case 15 :
2789             if ((base_insn & 0xfff) == 0xe4f)
2790               { itype = CRISV10F_INSN_MOVECBR; goto extract_sfmt_movecbr; }
2791             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2792           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2793           }
2794         }
2795       case 229 :
2796         {
2797           unsigned int val = (((insn >> 0) & (15 << 0)));
2798           switch (val)
2799           {
2800           case 0 : /* fall through */
2801           case 1 : /* fall through */
2802           case 2 : /* fall through */
2803           case 3 : /* fall through */
2804           case 4 : /* fall through */
2805           case 5 : /* fall through */
2806           case 6 : /* fall through */
2807           case 7 : /* fall through */
2808           case 8 : /* fall through */
2809           case 9 : /* fall through */
2810           case 10 : /* fall through */
2811           case 11 : /* fall through */
2812           case 12 : /* fall through */
2813           case 13 : /* fall through */
2814           case 14 :
2815             if ((base_insn & 0xbf0) == 0xa50)
2816               { itype = CRISV10F_INSN_MOVE_M_W_M; goto extract_sfmt_move_m_w_m; }
2817             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2818           case 15 :
2819             if ((base_insn & 0xfff) == 0xe5f)
2820               { itype = CRISV10F_INSN_MOVECWR; goto extract_sfmt_movecwr; }
2821             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2822           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2823           }
2824         }
2825       case 230 :
2826         {
2827           unsigned int val = (((insn >> 0) & (15 << 0)));
2828           switch (val)
2829           {
2830           case 0 : /* fall through */
2831           case 1 : /* fall through */
2832           case 2 : /* fall through */
2833           case 3 : /* fall through */
2834           case 4 : /* fall through */
2835           case 5 : /* fall through */
2836           case 6 : /* fall through */
2837           case 7 : /* fall through */
2838           case 8 : /* fall through */
2839           case 9 : /* fall through */
2840           case 10 : /* fall through */
2841           case 11 : /* fall through */
2842           case 12 : /* fall through */
2843           case 13 : /* fall through */
2844           case 14 :
2845             if ((base_insn & 0xbf0) == 0xa60)
2846               { itype = CRISV10F_INSN_MOVE_M_D_M; goto extract_sfmt_move_m_d_m; }
2847             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2848           case 15 :
2849             if ((base_insn & 0xfff) == 0xe6f)
2850               { itype = CRISV10F_INSN_MOVECDR; goto extract_sfmt_movecdr; }
2851             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2852           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2853           }
2854         }
2855       case 232 :
2856         {
2857           unsigned int val = (((insn >> 0) & (15 << 0)));
2858           switch (val)
2859           {
2860           case 0 : /* fall through */
2861           case 1 : /* fall through */
2862           case 2 : /* fall through */
2863           case 3 : /* fall through */
2864           case 4 : /* fall through */
2865           case 5 : /* fall through */
2866           case 6 : /* fall through */
2867           case 7 : /* fall through */
2868           case 8 : /* fall through */
2869           case 9 : /* fall through */
2870           case 10 : /* fall through */
2871           case 11 : /* fall through */
2872           case 12 : /* fall through */
2873           case 13 : /* fall through */
2874           case 14 :
2875             if ((base_insn & 0xbf0) == 0xa80)
2876               { itype = CRISV10F_INSN_SUB_M_B_M; goto extract_sfmt_add_m_b_m; }
2877             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2878           case 15 :
2879             if ((base_insn & 0xfff) == 0xe8f)
2880               { itype = CRISV10F_INSN_SUBCBR; goto extract_sfmt_addcbr; }
2881             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2882           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2883           }
2884         }
2885       case 233 :
2886         {
2887           unsigned int val = (((insn >> 0) & (15 << 0)));
2888           switch (val)
2889           {
2890           case 0 : /* fall through */
2891           case 1 : /* fall through */
2892           case 2 : /* fall through */
2893           case 3 : /* fall through */
2894           case 4 : /* fall through */
2895           case 5 : /* fall through */
2896           case 6 : /* fall through */
2897           case 7 : /* fall through */
2898           case 8 : /* fall through */
2899           case 9 : /* fall through */
2900           case 10 : /* fall through */
2901           case 11 : /* fall through */
2902           case 12 : /* fall through */
2903           case 13 : /* fall through */
2904           case 14 :
2905             if ((base_insn & 0xbf0) == 0xa90)
2906               { itype = CRISV10F_INSN_SUB_M_W_M; goto extract_sfmt_add_m_w_m; }
2907             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2908           case 15 :
2909             if ((base_insn & 0xfff) == 0xe9f)
2910               { itype = CRISV10F_INSN_SUBCWR; goto extract_sfmt_addcwr; }
2911             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2912           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2913           }
2914         }
2915       case 234 :
2916         {
2917           unsigned int val = (((insn >> 0) & (15 << 0)));
2918           switch (val)
2919           {
2920           case 0 : /* fall through */
2921           case 1 : /* fall through */
2922           case 2 : /* fall through */
2923           case 3 : /* fall through */
2924           case 4 : /* fall through */
2925           case 5 : /* fall through */
2926           case 6 : /* fall through */
2927           case 7 : /* fall through */
2928           case 8 : /* fall through */
2929           case 9 : /* fall through */
2930           case 10 : /* fall through */
2931           case 11 : /* fall through */
2932           case 12 : /* fall through */
2933           case 13 : /* fall through */
2934           case 14 :
2935             if ((base_insn & 0xbf0) == 0xaa0)
2936               { itype = CRISV10F_INSN_SUB_M_D_M; goto extract_sfmt_add_m_d_m; }
2937             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2938           case 15 :
2939             if ((base_insn & 0xfff) == 0xeaf)
2940               { itype = CRISV10F_INSN_SUBCDR; goto extract_sfmt_addcdr; }
2941             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2942           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2943           }
2944         }
2945       case 236 :
2946         {
2947           unsigned int val = (((insn >> 0) & (15 << 0)));
2948           switch (val)
2949           {
2950           case 0 : /* fall through */
2951           case 1 : /* fall through */
2952           case 2 : /* fall through */
2953           case 3 : /* fall through */
2954           case 4 : /* fall through */
2955           case 5 : /* fall through */
2956           case 6 : /* fall through */
2957           case 7 : /* fall through */
2958           case 8 : /* fall through */
2959           case 9 : /* fall through */
2960           case 10 : /* fall through */
2961           case 11 : /* fall through */
2962           case 12 : /* fall through */
2963           case 13 : /* fall through */
2964           case 14 :
2965             if ((base_insn & 0xbf0) == 0xac0)
2966               { itype = CRISV10F_INSN_CMP_M_B_M; goto extract_sfmt_cmp_m_b_m; }
2967             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2968           case 15 :
2969             if ((base_insn & 0xfff) == 0xecf)
2970               { itype = CRISV10F_INSN_CMPCBR; goto extract_sfmt_cmpcbr; }
2971             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2972           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2973           }
2974         }
2975       case 237 :
2976         {
2977           unsigned int val = (((insn >> 0) & (15 << 0)));
2978           switch (val)
2979           {
2980           case 0 : /* fall through */
2981           case 1 : /* fall through */
2982           case 2 : /* fall through */
2983           case 3 : /* fall through */
2984           case 4 : /* fall through */
2985           case 5 : /* fall through */
2986           case 6 : /* fall through */
2987           case 7 : /* fall through */
2988           case 8 : /* fall through */
2989           case 9 : /* fall through */
2990           case 10 : /* fall through */
2991           case 11 : /* fall through */
2992           case 12 : /* fall through */
2993           case 13 : /* fall through */
2994           case 14 :
2995             if ((base_insn & 0xbf0) == 0xad0)
2996               { itype = CRISV10F_INSN_CMP_M_W_M; goto extract_sfmt_cmp_m_w_m; }
2997             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2998           case 15 :
2999             if ((base_insn & 0xfff) == 0xedf)
3000               { itype = CRISV10F_INSN_CMPCWR; goto extract_sfmt_cmpcwr; }
3001             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3002           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3003           }
3004         }
3005       case 238 :
3006         {
3007           unsigned int val = (((insn >> 0) & (15 << 0)));
3008           switch (val)
3009           {
3010           case 0 : /* fall through */
3011           case 1 : /* fall through */
3012           case 2 : /* fall through */
3013           case 3 : /* fall through */
3014           case 4 : /* fall through */
3015           case 5 : /* fall through */
3016           case 6 : /* fall through */
3017           case 7 : /* fall through */
3018           case 8 : /* fall through */
3019           case 9 : /* fall through */
3020           case 10 : /* fall through */
3021           case 11 : /* fall through */
3022           case 12 : /* fall through */
3023           case 13 : /* fall through */
3024           case 14 :
3025             if ((base_insn & 0xbf0) == 0xae0)
3026               { itype = CRISV10F_INSN_CMP_M_D_M; goto extract_sfmt_cmp_m_d_m; }
3027             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3028           case 15 :
3029             if ((base_insn & 0xfff) == 0xeef)
3030               { itype = CRISV10F_INSN_CMPCDR; goto extract_sfmt_cmpcdr; }
3031             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3032           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3033           }
3034         }
3035       case 240 :
3036         {
3037           unsigned int val = (((insn >> 0) & (15 << 0)));
3038           switch (val)
3039           {
3040           case 0 : /* fall through */
3041           case 1 : /* fall through */
3042           case 2 : /* fall through */
3043           case 3 : /* fall through */
3044           case 4 : /* fall through */
3045           case 5 : /* fall through */
3046           case 6 : /* fall through */
3047           case 7 : /* fall through */
3048           case 8 : /* fall through */
3049           case 9 : /* fall through */
3050           case 10 : /* fall through */
3051           case 11 : /* fall through */
3052           case 12 : /* fall through */
3053           case 13 : /* fall through */
3054           case 14 :
3055             if ((base_insn & 0xbf0) == 0xb00)
3056               { itype = CRISV10F_INSN_AND_M_B_M; goto extract_sfmt_and_m_b_m; }
3057             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3058           case 15 :
3059             if ((base_insn & 0xfff) == 0xf0f)
3060               { itype = CRISV10F_INSN_ANDCBR; goto extract_sfmt_andcbr; }
3061             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3062           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3063           }
3064         }
3065       case 241 :
3066         {
3067           unsigned int val = (((insn >> 0) & (15 << 0)));
3068           switch (val)
3069           {
3070           case 0 : /* fall through */
3071           case 1 : /* fall through */
3072           case 2 : /* fall through */
3073           case 3 : /* fall through */
3074           case 4 : /* fall through */
3075           case 5 : /* fall through */
3076           case 6 : /* fall through */
3077           case 7 : /* fall through */
3078           case 8 : /* fall through */
3079           case 9 : /* fall through */
3080           case 10 : /* fall through */
3081           case 11 : /* fall through */
3082           case 12 : /* fall through */
3083           case 13 : /* fall through */
3084           case 14 :
3085             if ((base_insn & 0xbf0) == 0xb10)
3086               { itype = CRISV10F_INSN_AND_M_W_M; goto extract_sfmt_and_m_w_m; }
3087             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3088           case 15 :
3089             if ((base_insn & 0xfff) == 0xf1f)
3090               { itype = CRISV10F_INSN_ANDCWR; goto extract_sfmt_andcwr; }
3091             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3092           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3093           }
3094         }
3095       case 242 :
3096         {
3097           unsigned int val = (((insn >> 0) & (15 << 0)));
3098           switch (val)
3099           {
3100           case 0 : /* fall through */
3101           case 1 : /* fall through */
3102           case 2 : /* fall through */
3103           case 3 : /* fall through */
3104           case 4 : /* fall through */
3105           case 5 : /* fall through */
3106           case 6 : /* fall through */
3107           case 7 : /* fall through */
3108           case 8 : /* fall through */
3109           case 9 : /* fall through */
3110           case 10 : /* fall through */
3111           case 11 : /* fall through */
3112           case 12 : /* fall through */
3113           case 13 : /* fall through */
3114           case 14 :
3115             if ((base_insn & 0xbf0) == 0xb20)
3116               { itype = CRISV10F_INSN_AND_M_D_M; goto extract_sfmt_and_m_d_m; }
3117             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3118           case 15 :
3119             if ((base_insn & 0xfff) == 0xf2f)
3120               { itype = CRISV10F_INSN_ANDCDR; goto extract_sfmt_andcdr; }
3121             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3122           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3123           }
3124         }
3125       case 244 :
3126         {
3127           unsigned int val = (((insn >> 0) & (15 << 0)));
3128           switch (val)
3129           {
3130           case 0 : /* fall through */
3131           case 1 : /* fall through */
3132           case 2 : /* fall through */
3133           case 3 : /* fall through */
3134           case 4 : /* fall through */
3135           case 5 : /* fall through */
3136           case 6 : /* fall through */
3137           case 7 : /* fall through */
3138           case 8 : /* fall through */
3139           case 9 : /* fall through */
3140           case 10 : /* fall through */
3141           case 11 : /* fall through */
3142           case 12 : /* fall through */
3143           case 13 : /* fall through */
3144           case 14 :
3145             if ((base_insn & 0xbf0) == 0xb40)
3146               { itype = CRISV10F_INSN_OR_M_B_M; goto extract_sfmt_and_m_b_m; }
3147             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3148           case 15 :
3149             if ((base_insn & 0xfff) == 0xf4f)
3150               { itype = CRISV10F_INSN_ORCBR; goto extract_sfmt_andcbr; }
3151             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3152           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3153           }
3154         }
3155       case 245 :
3156         {
3157           unsigned int val = (((insn >> 0) & (15 << 0)));
3158           switch (val)
3159           {
3160           case 0 : /* fall through */
3161           case 1 : /* fall through */
3162           case 2 : /* fall through */
3163           case 3 : /* fall through */
3164           case 4 : /* fall through */
3165           case 5 : /* fall through */
3166           case 6 : /* fall through */
3167           case 7 : /* fall through */
3168           case 8 : /* fall through */
3169           case 9 : /* fall through */
3170           case 10 : /* fall through */
3171           case 11 : /* fall through */
3172           case 12 : /* fall through */
3173           case 13 : /* fall through */
3174           case 14 :
3175             if ((base_insn & 0xbf0) == 0xb50)
3176               { itype = CRISV10F_INSN_OR_M_W_M; goto extract_sfmt_and_m_w_m; }
3177             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3178           case 15 :
3179             if ((base_insn & 0xfff) == 0xf5f)
3180               { itype = CRISV10F_INSN_ORCWR; goto extract_sfmt_andcwr; }
3181             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3182           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3183           }
3184         }
3185       case 246 :
3186         {
3187           unsigned int val = (((insn >> 0) & (15 << 0)));
3188           switch (val)
3189           {
3190           case 0 : /* fall through */
3191           case 1 : /* fall through */
3192           case 2 : /* fall through */
3193           case 3 : /* fall through */
3194           case 4 : /* fall through */
3195           case 5 : /* fall through */
3196           case 6 : /* fall through */
3197           case 7 : /* fall through */
3198           case 8 : /* fall through */
3199           case 9 : /* fall through */
3200           case 10 : /* fall through */
3201           case 11 : /* fall through */
3202           case 12 : /* fall through */
3203           case 13 : /* fall through */
3204           case 14 :
3205             if ((base_insn & 0xbf0) == 0xb60)
3206               { itype = CRISV10F_INSN_OR_M_D_M; goto extract_sfmt_and_m_d_m; }
3207             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3208           case 15 :
3209             if ((base_insn & 0xfff) == 0xf6f)
3210               { itype = CRISV10F_INSN_ORCDR; goto extract_sfmt_andcdr; }
3211             itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3212           default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3213           }
3214         }
3215       default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
3216       }
3217     }
3218   }
3219
3220   /* The instruction has been decoded, now extract the fields.  */
3221
3222  extract_sfmt_empty:
3223   {
3224     const IDESC *idesc = &crisv10f_insn_data[itype];
3225 #define FLD(f) abuf->fields.fmt_empty.f
3226
3227
3228   /* Record the fields for the semantic handler.  */
3229   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_empty", (char *) 0));
3230
3231 #undef FLD
3232     return idesc;
3233   }
3234
3235  extract_sfmt_nop:
3236   {
3237     const IDESC *idesc = &crisv10f_insn_data[itype];
3238 #define FLD(f) abuf->fields.fmt_empty.f
3239
3240
3241   /* Record the fields for the semantic handler.  */
3242   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_nop", (char *) 0));
3243
3244 #undef FLD
3245     return idesc;
3246   }
3247
3248  extract_sfmt_move_b_r:
3249   {
3250     const IDESC *idesc = &crisv10f_insn_data[itype];
3251     CGEN_INSN_INT insn = base_insn;
3252 #define FLD(f) abuf->fields.sfmt_add_b_r.f
3253     UINT f_operand2;
3254     UINT f_operand1;
3255
3256     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3257     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3258
3259   /* Record the fields for the semantic handler.  */
3260   FLD (f_operand1) = f_operand1;
3261   FLD (f_operand2) = f_operand2;
3262   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));
3263
3264 #if WITH_PROFILE_MODEL_P
3265   /* Record the fields for profiling.  */
3266   if (PROFILE_MODEL_P (current_cpu))
3267     {
3268       FLD (in_Rs) = f_operand1;
3269       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3270     }
3271 #endif
3272 #undef FLD
3273     return idesc;
3274   }
3275
3276  extract_sfmt_move_d_r:
3277   {
3278     const IDESC *idesc = &crisv10f_insn_data[itype];
3279     CGEN_INSN_INT insn = base_insn;
3280 #define FLD(f) abuf->fields.sfmt_add_b_r.f
3281     UINT f_operand2;
3282     UINT f_operand1;
3283
3284     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3285     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3286
3287   /* Record the fields for the semantic handler.  */
3288   FLD (f_operand1) = f_operand1;
3289   FLD (f_operand2) = f_operand2;
3290   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));
3291
3292 #if WITH_PROFILE_MODEL_P
3293   /* Record the fields for profiling.  */
3294   if (PROFILE_MODEL_P (current_cpu))
3295     {
3296       FLD (in_Rs) = f_operand1;
3297       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3298     }
3299 #endif
3300 #undef FLD
3301     return idesc;
3302   }
3303
3304  extract_sfmt_movepcr:
3305   {
3306     const IDESC *idesc = &crisv10f_insn_data[itype];
3307     CGEN_INSN_INT insn = base_insn;
3308 #define FLD(f) abuf->fields.sfmt_moveq.f
3309     UINT f_operand2;
3310
3311     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3312
3313   /* Record the fields for the semantic handler.  */
3314   FLD (f_operand2) = f_operand2;
3315   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movepcr", "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3316
3317 #if WITH_PROFILE_MODEL_P
3318   /* Record the fields for profiling.  */
3319   if (PROFILE_MODEL_P (current_cpu))
3320     {
3321       FLD (out_Rd) = f_operand2;
3322     }
3323 #endif
3324 #undef FLD
3325     return idesc;
3326   }
3327
3328  extract_sfmt_moveq:
3329   {
3330     const IDESC *idesc = &crisv10f_insn_data[itype];
3331     CGEN_INSN_INT insn = base_insn;
3332 #define FLD(f) abuf->fields.sfmt_moveq.f
3333     UINT f_operand2;
3334     INT f_s6;
3335
3336     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3337     f_s6 = EXTRACT_LSB0_INT (insn, 16, 5, 6);
3338
3339   /* Record the fields for the semantic handler.  */
3340   FLD (f_s6) = f_s6;
3341   FLD (f_operand2) = f_operand2;
3342   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));
3343
3344 #if WITH_PROFILE_MODEL_P
3345   /* Record the fields for profiling.  */
3346   if (PROFILE_MODEL_P (current_cpu))
3347     {
3348       FLD (out_Rd) = f_operand2;
3349     }
3350 #endif
3351 #undef FLD
3352     return idesc;
3353   }
3354
3355  extract_sfmt_movs_b_r:
3356   {
3357     const IDESC *idesc = &crisv10f_insn_data[itype];
3358     CGEN_INSN_INT insn = base_insn;
3359 #define FLD(f) abuf->fields.sfmt_muls_b.f
3360     UINT f_operand2;
3361     UINT f_operand1;
3362
3363     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3364     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3365
3366   /* Record the fields for the semantic handler.  */
3367   FLD (f_operand1) = f_operand1;
3368   FLD (f_operand2) = f_operand2;
3369   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));
3370
3371 #if WITH_PROFILE_MODEL_P
3372   /* Record the fields for profiling.  */
3373   if (PROFILE_MODEL_P (current_cpu))
3374     {
3375       FLD (in_Rs) = f_operand1;
3376       FLD (out_Rd) = f_operand2;
3377     }
3378 #endif
3379 #undef FLD
3380     return idesc;
3381   }
3382
3383  extract_sfmt_movecbr:
3384   {
3385     const IDESC *idesc = &crisv10f_insn_data[itype];
3386     CGEN_INSN_INT insn = base_insn;
3387 #define FLD(f) abuf->fields.sfmt_addcbr.f
3388     INT f_indir_pc__byte;
3389     UINT f_operand2;
3390     /* Contents of trailing part of insn.  */
3391     UINT word_1;
3392
3393   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3394     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3395     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3396
3397   /* Record the fields for the semantic handler.  */
3398   FLD (f_operand2) = f_operand2;
3399   FLD (f_indir_pc__byte) = f_indir_pc__byte;
3400   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));
3401
3402 #if WITH_PROFILE_MODEL_P
3403   /* Record the fields for profiling.  */
3404   if (PROFILE_MODEL_P (current_cpu))
3405     {
3406       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3407     }
3408 #endif
3409 #undef FLD
3410     return idesc;
3411   }
3412
3413  extract_sfmt_movecwr:
3414   {
3415     const IDESC *idesc = &crisv10f_insn_data[itype];
3416     CGEN_INSN_INT insn = base_insn;
3417 #define FLD(f) abuf->fields.sfmt_addcwr.f
3418     INT f_indir_pc__word;
3419     UINT f_operand2;
3420     /* Contents of trailing part of insn.  */
3421     UINT word_1;
3422
3423   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3424     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3425     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3426
3427   /* Record the fields for the semantic handler.  */
3428   FLD (f_operand2) = f_operand2;
3429   FLD (f_indir_pc__word) = f_indir_pc__word;
3430   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));
3431
3432 #if WITH_PROFILE_MODEL_P
3433   /* Record the fields for profiling.  */
3434   if (PROFILE_MODEL_P (current_cpu))
3435     {
3436       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3437     }
3438 #endif
3439 #undef FLD
3440     return idesc;
3441   }
3442
3443  extract_sfmt_movecdr:
3444   {
3445     const IDESC *idesc = &crisv10f_insn_data[itype];
3446     CGEN_INSN_INT insn = base_insn;
3447 #define FLD(f) abuf->fields.sfmt_bound_cd.f
3448     INT f_indir_pc__dword;
3449     UINT f_operand2;
3450     /* Contents of trailing part of insn.  */
3451     UINT word_1;
3452
3453   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3454     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
3455     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3456
3457   /* Record the fields for the semantic handler.  */
3458   FLD (f_indir_pc__dword) = f_indir_pc__dword;
3459   FLD (f_operand2) = f_operand2;
3460   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));
3461
3462 #if WITH_PROFILE_MODEL_P
3463   /* Record the fields for profiling.  */
3464   if (PROFILE_MODEL_P (current_cpu))
3465     {
3466       FLD (out_Rd) = f_operand2;
3467     }
3468 #endif
3469 #undef FLD
3470     return idesc;
3471   }
3472
3473  extract_sfmt_movscbr:
3474   {
3475     const IDESC *idesc = &crisv10f_insn_data[itype];
3476     CGEN_INSN_INT insn = base_insn;
3477 #define FLD(f) abuf->fields.sfmt_bound_cb.f
3478     UINT f_operand2;
3479     INT f_indir_pc__byte;
3480     /* Contents of trailing part of insn.  */
3481     UINT word_1;
3482
3483   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3484     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3485     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3486
3487   /* Record the fields for the semantic handler.  */
3488   FLD (f_indir_pc__byte) = f_indir_pc__byte;
3489   FLD (f_operand2) = f_operand2;
3490   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));
3491
3492 #if WITH_PROFILE_MODEL_P
3493   /* Record the fields for profiling.  */
3494   if (PROFILE_MODEL_P (current_cpu))
3495     {
3496       FLD (out_Rd) = f_operand2;
3497     }
3498 #endif
3499 #undef FLD
3500     return idesc;
3501   }
3502
3503  extract_sfmt_movscwr:
3504   {
3505     const IDESC *idesc = &crisv10f_insn_data[itype];
3506     CGEN_INSN_INT insn = base_insn;
3507 #define FLD(f) abuf->fields.sfmt_bound_cw.f
3508     UINT f_operand2;
3509     INT f_indir_pc__word;
3510     /* Contents of trailing part of insn.  */
3511     UINT word_1;
3512
3513   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3514     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3515     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3516
3517   /* Record the fields for the semantic handler.  */
3518   FLD (f_indir_pc__word) = f_indir_pc__word;
3519   FLD (f_operand2) = f_operand2;
3520   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));
3521
3522 #if WITH_PROFILE_MODEL_P
3523   /* Record the fields for profiling.  */
3524   if (PROFILE_MODEL_P (current_cpu))
3525     {
3526       FLD (out_Rd) = f_operand2;
3527     }
3528 #endif
3529 #undef FLD
3530     return idesc;
3531   }
3532
3533  extract_sfmt_movucbr:
3534   {
3535     const IDESC *idesc = &crisv10f_insn_data[itype];
3536     CGEN_INSN_INT insn = base_insn;
3537 #define FLD(f) abuf->fields.sfmt_bound_cb.f
3538     UINT f_operand2;
3539     INT f_indir_pc__byte;
3540     /* Contents of trailing part of insn.  */
3541     UINT word_1;
3542
3543   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3544     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3545     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3546
3547   /* Record the fields for the semantic handler.  */
3548   FLD (f_indir_pc__byte) = f_indir_pc__byte;
3549   FLD (f_operand2) = f_operand2;
3550   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));
3551
3552 #if WITH_PROFILE_MODEL_P
3553   /* Record the fields for profiling.  */
3554   if (PROFILE_MODEL_P (current_cpu))
3555     {
3556       FLD (out_Rd) = f_operand2;
3557     }
3558 #endif
3559 #undef FLD
3560     return idesc;
3561   }
3562
3563  extract_sfmt_movucwr:
3564   {
3565     const IDESC *idesc = &crisv10f_insn_data[itype];
3566     CGEN_INSN_INT insn = base_insn;
3567 #define FLD(f) abuf->fields.sfmt_bound_cw.f
3568     UINT f_operand2;
3569     INT f_indir_pc__word;
3570     /* Contents of trailing part of insn.  */
3571     UINT word_1;
3572
3573   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3574     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3575     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3576
3577   /* Record the fields for the semantic handler.  */
3578   FLD (f_indir_pc__word) = f_indir_pc__word;
3579   FLD (f_operand2) = f_operand2;
3580   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));
3581
3582 #if WITH_PROFILE_MODEL_P
3583   /* Record the fields for profiling.  */
3584   if (PROFILE_MODEL_P (current_cpu))
3585     {
3586       FLD (out_Rd) = f_operand2;
3587     }
3588 #endif
3589 #undef FLD
3590     return idesc;
3591   }
3592
3593  extract_sfmt_addq:
3594   {
3595     const IDESC *idesc = &crisv10f_insn_data[itype];
3596     CGEN_INSN_INT insn = base_insn;
3597 #define FLD(f) abuf->fields.sfmt_addq.f
3598     UINT f_operand2;
3599     UINT f_u6;
3600
3601     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3602     f_u6 = EXTRACT_LSB0_UINT (insn, 16, 5, 6);
3603
3604   /* Record the fields for the semantic handler.  */
3605   FLD (f_operand2) = f_operand2;
3606   FLD (f_u6) = f_u6;
3607   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));
3608
3609 #if WITH_PROFILE_MODEL_P
3610   /* Record the fields for profiling.  */
3611   if (PROFILE_MODEL_P (current_cpu))
3612     {
3613       FLD (in_Rd) = f_operand2;
3614       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3615     }
3616 #endif
3617 #undef FLD
3618     return idesc;
3619   }
3620
3621  extract_sfmt_cmp_r_b_r:
3622   {
3623     const IDESC *idesc = &crisv10f_insn_data[itype];
3624     CGEN_INSN_INT insn = base_insn;
3625 #define FLD(f) abuf->fields.sfmt_add_b_r.f
3626     UINT f_operand2;
3627     UINT f_operand1;
3628
3629     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3630     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3631
3632   /* Record the fields for the semantic handler.  */
3633   FLD (f_operand2) = f_operand2;
3634   FLD (f_operand1) = f_operand1;
3635   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));
3636
3637 #if WITH_PROFILE_MODEL_P
3638   /* Record the fields for profiling.  */
3639   if (PROFILE_MODEL_P (current_cpu))
3640     {
3641       FLD (in_Rd) = f_operand2;
3642       FLD (in_Rs) = f_operand1;
3643     }
3644 #endif
3645 #undef FLD
3646     return idesc;
3647   }
3648
3649  extract_sfmt_cmp_m_b_m:
3650   {
3651     const IDESC *idesc = &crisv10f_insn_data[itype];
3652     CGEN_INSN_INT insn = base_insn;
3653 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3654     UINT f_operand2;
3655     UINT f_memmode;
3656     UINT f_operand1;
3657
3658     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3659     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3660     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3661
3662   /* Record the fields for the semantic handler.  */
3663   FLD (f_operand2) = f_operand2;
3664   FLD (f_operand1) = f_operand1;
3665   FLD (f_memmode) = f_memmode;
3666   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));
3667
3668 #if WITH_PROFILE_MODEL_P
3669   /* Record the fields for profiling.  */
3670   if (PROFILE_MODEL_P (current_cpu))
3671     {
3672       FLD (in_Rd) = f_operand2;
3673       FLD (in_Rs) = f_operand1;
3674       FLD (out_Rs) = f_operand1;
3675     }
3676 #endif
3677 #undef FLD
3678     return idesc;
3679   }
3680
3681  extract_sfmt_cmp_m_w_m:
3682   {
3683     const IDESC *idesc = &crisv10f_insn_data[itype];
3684     CGEN_INSN_INT insn = base_insn;
3685 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3686     UINT f_operand2;
3687     UINT f_memmode;
3688     UINT f_operand1;
3689
3690     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3691     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3692     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3693
3694   /* Record the fields for the semantic handler.  */
3695   FLD (f_operand2) = f_operand2;
3696   FLD (f_operand1) = f_operand1;
3697   FLD (f_memmode) = f_memmode;
3698   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));
3699
3700 #if WITH_PROFILE_MODEL_P
3701   /* Record the fields for profiling.  */
3702   if (PROFILE_MODEL_P (current_cpu))
3703     {
3704       FLD (in_Rd) = f_operand2;
3705       FLD (in_Rs) = f_operand1;
3706       FLD (out_Rs) = f_operand1;
3707     }
3708 #endif
3709 #undef FLD
3710     return idesc;
3711   }
3712
3713  extract_sfmt_cmp_m_d_m:
3714   {
3715     const IDESC *idesc = &crisv10f_insn_data[itype];
3716     CGEN_INSN_INT insn = base_insn;
3717 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3718     UINT f_operand2;
3719     UINT f_memmode;
3720     UINT f_operand1;
3721
3722     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3723     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3724     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3725
3726   /* Record the fields for the semantic handler.  */
3727   FLD (f_operand2) = f_operand2;
3728   FLD (f_operand1) = f_operand1;
3729   FLD (f_memmode) = f_memmode;
3730   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));
3731
3732 #if WITH_PROFILE_MODEL_P
3733   /* Record the fields for profiling.  */
3734   if (PROFILE_MODEL_P (current_cpu))
3735     {
3736       FLD (in_Rd) = f_operand2;
3737       FLD (in_Rs) = f_operand1;
3738       FLD (out_Rs) = f_operand1;
3739     }
3740 #endif
3741 #undef FLD
3742     return idesc;
3743   }
3744
3745  extract_sfmt_cmpcbr:
3746   {
3747     const IDESC *idesc = &crisv10f_insn_data[itype];
3748     CGEN_INSN_INT insn = base_insn;
3749 #define FLD(f) abuf->fields.sfmt_bound_cb.f
3750     INT f_indir_pc__byte;
3751     UINT f_operand2;
3752     /* Contents of trailing part of insn.  */
3753     UINT word_1;
3754
3755   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3756     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3757     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3758
3759   /* Record the fields for the semantic handler.  */
3760   FLD (f_operand2) = f_operand2;
3761   FLD (f_indir_pc__byte) = f_indir_pc__byte;
3762   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));
3763
3764 #if WITH_PROFILE_MODEL_P
3765   /* Record the fields for profiling.  */
3766   if (PROFILE_MODEL_P (current_cpu))
3767     {
3768       FLD (in_Rd) = f_operand2;
3769     }
3770 #endif
3771 #undef FLD
3772     return idesc;
3773   }
3774
3775  extract_sfmt_cmpcwr:
3776   {
3777     const IDESC *idesc = &crisv10f_insn_data[itype];
3778     CGEN_INSN_INT insn = base_insn;
3779 #define FLD(f) abuf->fields.sfmt_bound_cw.f
3780     INT f_indir_pc__word;
3781     UINT f_operand2;
3782     /* Contents of trailing part of insn.  */
3783     UINT word_1;
3784
3785   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3786     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3787     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3788
3789   /* Record the fields for the semantic handler.  */
3790   FLD (f_operand2) = f_operand2;
3791   FLD (f_indir_pc__word) = f_indir_pc__word;
3792   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));
3793
3794 #if WITH_PROFILE_MODEL_P
3795   /* Record the fields for profiling.  */
3796   if (PROFILE_MODEL_P (current_cpu))
3797     {
3798       FLD (in_Rd) = f_operand2;
3799     }
3800 #endif
3801 #undef FLD
3802     return idesc;
3803   }
3804
3805  extract_sfmt_cmpcdr:
3806   {
3807     const IDESC *idesc = &crisv10f_insn_data[itype];
3808     CGEN_INSN_INT insn = base_insn;
3809 #define FLD(f) abuf->fields.sfmt_bound_cd.f
3810     INT f_indir_pc__dword;
3811     UINT f_operand2;
3812     /* Contents of trailing part of insn.  */
3813     UINT word_1;
3814
3815   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3816     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
3817     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3818
3819   /* Record the fields for the semantic handler.  */
3820   FLD (f_operand2) = f_operand2;
3821   FLD (f_indir_pc__dword) = f_indir_pc__dword;
3822   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));
3823
3824 #if WITH_PROFILE_MODEL_P
3825   /* Record the fields for profiling.  */
3826   if (PROFILE_MODEL_P (current_cpu))
3827     {
3828       FLD (in_Rd) = f_operand2;
3829     }
3830 #endif
3831 #undef FLD
3832     return idesc;
3833   }
3834
3835  extract_sfmt_cmpq:
3836   {
3837     const IDESC *idesc = &crisv10f_insn_data[itype];
3838     CGEN_INSN_INT insn = base_insn;
3839 #define FLD(f) abuf->fields.sfmt_andq.f
3840     UINT f_operand2;
3841     INT f_s6;
3842
3843     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3844     f_s6 = EXTRACT_LSB0_INT (insn, 16, 5, 6);
3845
3846   /* Record the fields for the semantic handler.  */
3847   FLD (f_operand2) = f_operand2;
3848   FLD (f_s6) = f_s6;
3849   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));
3850
3851 #if WITH_PROFILE_MODEL_P
3852   /* Record the fields for profiling.  */
3853   if (PROFILE_MODEL_P (current_cpu))
3854     {
3855       FLD (in_Rd) = f_operand2;
3856     }
3857 #endif
3858 #undef FLD
3859     return idesc;
3860   }
3861
3862  extract_sfmt_cmpucbr:
3863   {
3864     const IDESC *idesc = &crisv10f_insn_data[itype];
3865     CGEN_INSN_INT insn = base_insn;
3866 #define FLD(f) abuf->fields.sfmt_bound_cb.f
3867     INT f_indir_pc__byte;
3868     UINT f_operand2;
3869     /* Contents of trailing part of insn.  */
3870     UINT word_1;
3871
3872   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3873     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3874     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3875
3876   /* Record the fields for the semantic handler.  */
3877   FLD (f_operand2) = f_operand2;
3878   FLD (f_indir_pc__byte) = f_indir_pc__byte;
3879   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));
3880
3881 #if WITH_PROFILE_MODEL_P
3882   /* Record the fields for profiling.  */
3883   if (PROFILE_MODEL_P (current_cpu))
3884     {
3885       FLD (in_Rd) = f_operand2;
3886     }
3887 #endif
3888 #undef FLD
3889     return idesc;
3890   }
3891
3892  extract_sfmt_cmpucwr:
3893   {
3894     const IDESC *idesc = &crisv10f_insn_data[itype];
3895     CGEN_INSN_INT insn = base_insn;
3896 #define FLD(f) abuf->fields.sfmt_bound_cw.f
3897     INT f_indir_pc__word;
3898     UINT f_operand2;
3899     /* Contents of trailing part of insn.  */
3900     UINT word_1;
3901
3902   word_1 = GETIMEMUSI (current_cpu, pc + 2);
3903     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3904     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3905
3906   /* Record the fields for the semantic handler.  */
3907   FLD (f_operand2) = f_operand2;
3908   FLD (f_indir_pc__word) = f_indir_pc__word;
3909   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));
3910
3911 #if WITH_PROFILE_MODEL_P
3912   /* Record the fields for profiling.  */
3913   if (PROFILE_MODEL_P (current_cpu))
3914     {
3915       FLD (in_Rd) = f_operand2;
3916     }
3917 #endif
3918 #undef FLD
3919     return idesc;
3920   }
3921
3922  extract_sfmt_move_m_b_m:
3923   {
3924     const IDESC *idesc = &crisv10f_insn_data[itype];
3925     CGEN_INSN_INT insn = base_insn;
3926 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3927     UINT f_operand2;
3928     UINT f_memmode;
3929     UINT f_operand1;
3930
3931     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3932     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3933     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3934
3935   /* Record the fields for the semantic handler.  */
3936   FLD (f_operand1) = f_operand1;
3937   FLD (f_operand2) = f_operand2;
3938   FLD (f_memmode) = f_memmode;
3939   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));
3940
3941 #if WITH_PROFILE_MODEL_P
3942   /* Record the fields for profiling.  */
3943   if (PROFILE_MODEL_P (current_cpu))
3944     {
3945       FLD (in_Rs) = f_operand1;
3946       FLD (out_Rs) = f_operand1;
3947       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)));
3948     }
3949 #endif
3950 #undef FLD
3951     return idesc;
3952   }
3953
3954  extract_sfmt_move_m_w_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_operand1) = f_operand1;
3969   FLD (f_operand2) = f_operand2;
3970   FLD (f_memmode) = f_memmode;
3971   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));
3972
3973 #if WITH_PROFILE_MODEL_P
3974   /* Record the fields for profiling.  */
3975   if (PROFILE_MODEL_P (current_cpu))
3976     {
3977       FLD (in_Rs) = f_operand1;
3978       FLD (out_Rs) = f_operand1;
3979       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)));
3980     }
3981 #endif
3982 #undef FLD
3983     return idesc;
3984   }
3985
3986  extract_sfmt_move_m_d_m:
3987   {
3988     const IDESC *idesc = &crisv10f_insn_data[itype];
3989     CGEN_INSN_INT insn = base_insn;
3990 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3991     UINT f_operand2;
3992     UINT f_memmode;
3993     UINT f_operand1;
3994
3995     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3996     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3997     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3998
3999   /* Record the fields for the semantic handler.  */
4000   FLD (f_operand1) = f_operand1;
4001   FLD (f_operand2) = f_operand2;
4002   FLD (f_memmode) = f_memmode;
4003   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));
4004
4005 #if WITH_PROFILE_MODEL_P
4006   /* Record the fields for profiling.  */
4007   if (PROFILE_MODEL_P (current_cpu))
4008     {
4009       FLD (in_Rs) = f_operand1;
4010       FLD (out_Rs) = f_operand1;
4011       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)));
4012     }
4013 #endif
4014 #undef FLD
4015     return idesc;
4016   }
4017
4018  extract_sfmt_movs_m_b_m:
4019   {
4020     const IDESC *idesc = &crisv10f_insn_data[itype];
4021     CGEN_INSN_INT insn = base_insn;
4022 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
4023     UINT f_operand2;
4024     UINT f_memmode;
4025     UINT f_operand1;
4026
4027     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4028     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4029     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4030
4031   /* Record the fields for the semantic handler.  */
4032   FLD (f_operand1) = f_operand1;
4033   FLD (f_memmode) = f_memmode;
4034   FLD (f_operand2) = f_operand2;
4035   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));
4036
4037 #if WITH_PROFILE_MODEL_P
4038   /* Record the fields for profiling.  */
4039   if (PROFILE_MODEL_P (current_cpu))
4040     {
4041       FLD (in_Rs) = f_operand1;
4042       FLD (out_Rd) = f_operand2;
4043       FLD (out_Rs) = f_operand1;
4044     }
4045 #endif
4046 #undef FLD
4047     return idesc;
4048   }
4049
4050  extract_sfmt_movs_m_w_m:
4051   {
4052     const IDESC *idesc = &crisv10f_insn_data[itype];
4053     CGEN_INSN_INT insn = base_insn;
4054 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
4055     UINT f_operand2;
4056     UINT f_memmode;
4057     UINT f_operand1;
4058
4059     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4060     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4061     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4062
4063   /* Record the fields for the semantic handler.  */
4064   FLD (f_operand1) = f_operand1;
4065   FLD (f_memmode) = f_memmode;
4066   FLD (f_operand2) = f_operand2;
4067   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));
4068
4069 #if WITH_PROFILE_MODEL_P
4070   /* Record the fields for profiling.  */
4071   if (PROFILE_MODEL_P (current_cpu))
4072     {
4073       FLD (in_Rs) = f_operand1;
4074       FLD (out_Rd) = f_operand2;
4075       FLD (out_Rs) = f_operand1;
4076     }
4077 #endif
4078 #undef FLD
4079     return idesc;
4080   }
4081
4082  extract_sfmt_move_r_sprv10:
4083   {
4084     const IDESC *idesc = &crisv10f_insn_data[itype];
4085     CGEN_INSN_INT insn = base_insn;
4086 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
4087     UINT f_operand2;
4088     UINT f_operand1;
4089
4090     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4091     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4092
4093   /* Record the fields for the semantic handler.  */
4094   FLD (f_operand1) = f_operand1;
4095   FLD (f_operand2) = f_operand2;
4096   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_r_sprv10", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
4097
4098 #if WITH_PROFILE_MODEL_P
4099   /* Record the fields for profiling.  */
4100   if (PROFILE_MODEL_P (current_cpu))
4101     {
4102       FLD (in_Rs) = f_operand1;
4103       FLD (out_Pd) = f_operand2;
4104     }
4105 #endif
4106 #undef FLD
4107     return idesc;
4108   }
4109
4110  extract_sfmt_move_spr_rv10:
4111   {
4112     const IDESC *idesc = &crisv10f_insn_data[itype];
4113     CGEN_INSN_INT insn = base_insn;
4114 #define FLD(f) abuf->fields.sfmt_move_spr_rv10.f
4115     UINT f_operand2;
4116     UINT f_operand1;
4117
4118     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4119     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4120
4121   /* Record the fields for the semantic handler.  */
4122   FLD (f_operand2) = f_operand2;
4123   FLD (f_operand1) = f_operand1;
4124   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));
4125
4126 #if WITH_PROFILE_MODEL_P
4127   /* Record the fields for profiling.  */
4128   if (PROFILE_MODEL_P (current_cpu))
4129     {
4130       FLD (in_Ps) = f_operand2;
4131       FLD (out_h_gr_SI_index_of__DFLT_Rs) = FLD (f_operand1);
4132     }
4133 #endif
4134 #undef FLD
4135     return idesc;
4136   }
4137
4138  extract_sfmt_ret_type:
4139   {
4140     const IDESC *idesc = &crisv10f_insn_data[itype];
4141     CGEN_INSN_INT insn = base_insn;
4142 #define FLD(f) abuf->fields.sfmt_move_spr_rv10.f
4143     UINT f_operand2;
4144
4145     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4146
4147   /* Record the fields for the semantic handler.  */
4148   FLD (f_operand2) = f_operand2;
4149   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ret_type", "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
4150
4151 #if WITH_PROFILE_MODEL_P
4152   /* Record the fields for profiling.  */
4153   if (PROFILE_MODEL_P (current_cpu))
4154     {
4155       FLD (in_Ps) = f_operand2;
4156     }
4157 #endif
4158 #undef FLD
4159     return idesc;
4160   }
4161
4162  extract_sfmt_move_m_sprv10:
4163   {
4164     const IDESC *idesc = &crisv10f_insn_data[itype];
4165     CGEN_INSN_INT insn = base_insn;
4166 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
4167     UINT f_operand2;
4168     UINT f_memmode;
4169     UINT f_operand1;
4170
4171     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4172     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4173     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4174
4175   /* Record the fields for the semantic handler.  */
4176   FLD (f_operand1) = f_operand1;
4177   FLD (f_operand2) = f_operand2;
4178   FLD (f_memmode) = f_memmode;
4179   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));
4180
4181 #if WITH_PROFILE_MODEL_P
4182   /* Record the fields for profiling.  */
4183   if (PROFILE_MODEL_P (current_cpu))
4184     {
4185       FLD (in_Rs) = f_operand1;
4186       FLD (out_Pd) = f_operand2;
4187       FLD (out_Rs) = f_operand1;
4188     }
4189 #endif
4190 #undef FLD
4191     return idesc;
4192   }
4193
4194  extract_sfmt_move_c_sprv10_p0:
4195   {
4196     const IDESC *idesc = &crisv10f_insn_data[itype];
4197     CGEN_INSN_INT insn = base_insn;
4198 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p0.f
4199     UINT f_operand2;
4200     INT f_indir_pc__byte;
4201     /* Contents of trailing part of insn.  */
4202     UINT word_1;
4203
4204   word_1 = GETIMEMUSI (current_cpu, pc + 2);
4205     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4206     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4207
4208   /* Record the fields for the semantic handler.  */
4209   FLD (f_indir_pc__byte) = f_indir_pc__byte;
4210   FLD (f_operand2) = f_operand2;
4211   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));
4212
4213 #if WITH_PROFILE_MODEL_P
4214   /* Record the fields for profiling.  */
4215   if (PROFILE_MODEL_P (current_cpu))
4216     {
4217       FLD (out_Pd) = f_operand2;
4218     }
4219 #endif
4220 #undef FLD
4221     return idesc;
4222   }
4223
4224  extract_sfmt_move_c_sprv10_p4:
4225   {
4226     const IDESC *idesc = &crisv10f_insn_data[itype];
4227     CGEN_INSN_INT insn = base_insn;
4228 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p4.f
4229     UINT f_operand2;
4230     INT f_indir_pc__word;
4231     /* Contents of trailing part of insn.  */
4232     UINT word_1;
4233
4234   word_1 = GETIMEMUSI (current_cpu, pc + 2);
4235     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4236     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4237
4238   /* Record the fields for the semantic handler.  */
4239   FLD (f_indir_pc__word) = f_indir_pc__word;
4240   FLD (f_operand2) = f_operand2;
4241   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));
4242
4243 #if WITH_PROFILE_MODEL_P
4244   /* Record the fields for profiling.  */
4245   if (PROFILE_MODEL_P (current_cpu))
4246     {
4247       FLD (out_Pd) = f_operand2;
4248     }
4249 #endif
4250 #undef FLD
4251     return idesc;
4252   }
4253
4254  extract_sfmt_move_c_sprv10_p8:
4255   {
4256     const IDESC *idesc = &crisv10f_insn_data[itype];
4257     CGEN_INSN_INT insn = base_insn;
4258 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p8.f
4259     INT f_indir_pc__dword;
4260     UINT f_operand2;
4261     /* Contents of trailing part of insn.  */
4262     UINT word_1;
4263
4264   word_1 = GETIMEMUSI (current_cpu, pc + 2);
4265     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
4266     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4267
4268   /* Record the fields for the semantic handler.  */
4269   FLD (f_indir_pc__dword) = f_indir_pc__dword;
4270   FLD (f_operand2) = f_operand2;
4271   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));
4272
4273 #if WITH_PROFILE_MODEL_P
4274   /* Record the fields for profiling.  */
4275   if (PROFILE_MODEL_P (current_cpu))
4276     {
4277       FLD (out_Pd) = f_operand2;
4278     }
4279 #endif
4280 #undef FLD
4281     return idesc;
4282   }
4283
4284  extract_sfmt_move_spr_mv10:
4285   {
4286     const IDESC *idesc = &crisv10f_insn_data[itype];
4287     CGEN_INSN_INT insn = base_insn;
4288 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
4289     UINT f_operand2;
4290     UINT f_memmode;
4291     UINT f_operand1;
4292
4293     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4294     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4295     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4296
4297   /* Record the fields for the semantic handler.  */
4298   FLD (f_operand2) = f_operand2;
4299   FLD (f_operand1) = f_operand1;
4300   FLD (f_memmode) = f_memmode;
4301   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));
4302
4303 #if WITH_PROFILE_MODEL_P
4304   /* Record the fields for profiling.  */
4305   if (PROFILE_MODEL_P (current_cpu))
4306     {
4307       FLD (in_Ps) = f_operand2;
4308       FLD (in_Rs) = f_operand1;
4309       FLD (out_Rs) = f_operand1;
4310     }
4311 #endif
4312 #undef FLD
4313     return idesc;
4314   }
4315
4316  extract_sfmt_sbfs:
4317   {
4318     const IDESC *idesc = &crisv10f_insn_data[itype];
4319 #define FLD(f) abuf->fields.fmt_empty.f
4320
4321
4322   /* Record the fields for the semantic handler.  */
4323   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sbfs", (char *) 0));
4324
4325 #undef FLD
4326     return idesc;
4327   }
4328
4329  extract_sfmt_movem_r_m:
4330   {
4331     const IDESC *idesc = &crisv10f_insn_data[itype];
4332     CGEN_INSN_INT insn = base_insn;
4333 #define FLD(f) abuf->fields.sfmt_movem_r_m.f
4334     UINT f_operand2;
4335     UINT f_memmode;
4336     UINT f_operand1;
4337
4338     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4339     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4340     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4341
4342   /* Record the fields for the semantic handler.  */
4343   FLD (f_operand2) = f_operand2;
4344   FLD (f_operand1) = f_operand1;
4345   FLD (f_memmode) = f_memmode;
4346   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));
4347
4348 #if WITH_PROFILE_MODEL_P
4349   /* Record the fields for profiling.  */
4350   if (PROFILE_MODEL_P (current_cpu))
4351     {
4352       FLD (in_Rd) = f_operand2;
4353       FLD (in_Rs) = f_operand1;
4354       FLD (in_h_gr_SI_0) = 0;
4355       FLD (in_h_gr_SI_1) = 1;
4356       FLD (in_h_gr_SI_10) = 10;
4357       FLD (in_h_gr_SI_11) = 11;
4358       FLD (in_h_gr_SI_12) = 12;
4359       FLD (in_h_gr_SI_13) = 13;
4360       FLD (in_h_gr_SI_14) = 14;
4361       FLD (in_h_gr_SI_15) = 15;
4362       FLD (in_h_gr_SI_2) = 2;
4363       FLD (in_h_gr_SI_3) = 3;
4364       FLD (in_h_gr_SI_4) = 4;
4365       FLD (in_h_gr_SI_5) = 5;
4366       FLD (in_h_gr_SI_6) = 6;
4367       FLD (in_h_gr_SI_7) = 7;
4368       FLD (in_h_gr_SI_8) = 8;
4369       FLD (in_h_gr_SI_9) = 9;
4370       FLD (out_Rs) = f_operand1;
4371     }
4372 #endif
4373 #undef FLD
4374     return idesc;
4375   }
4376
4377  extract_sfmt_movem_m_r:
4378   {
4379     const IDESC *idesc = &crisv10f_insn_data[itype];
4380     CGEN_INSN_INT insn = base_insn;
4381 #define FLD(f) abuf->fields.sfmt_movem_m_r.f
4382     UINT f_operand2;
4383     UINT f_memmode;
4384     UINT f_operand1;
4385
4386     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4387     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4388     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4389
4390   /* Record the fields for the semantic handler.  */
4391   FLD (f_operand2) = f_operand2;
4392   FLD (f_operand1) = f_operand1;
4393   FLD (f_memmode) = f_memmode;
4394   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));
4395
4396 #if WITH_PROFILE_MODEL_P
4397   /* Record the fields for profiling.  */
4398   if (PROFILE_MODEL_P (current_cpu))
4399     {
4400       FLD (in_Rd) = f_operand2;
4401       FLD (in_Rs) = f_operand1;
4402       FLD (out_Rs) = f_operand1;
4403       FLD (out_h_gr_SI_0) = 0;
4404       FLD (out_h_gr_SI_1) = 1;
4405       FLD (out_h_gr_SI_10) = 10;
4406       FLD (out_h_gr_SI_11) = 11;
4407       FLD (out_h_gr_SI_12) = 12;
4408       FLD (out_h_gr_SI_13) = 13;
4409       FLD (out_h_gr_SI_14) = 14;
4410       FLD (out_h_gr_SI_2) = 2;
4411       FLD (out_h_gr_SI_3) = 3;
4412       FLD (out_h_gr_SI_4) = 4;
4413       FLD (out_h_gr_SI_5) = 5;
4414       FLD (out_h_gr_SI_6) = 6;
4415       FLD (out_h_gr_SI_7) = 7;
4416       FLD (out_h_gr_SI_8) = 8;
4417       FLD (out_h_gr_SI_9) = 9;
4418     }
4419 #endif
4420 #undef FLD
4421     return idesc;
4422   }
4423
4424  extract_sfmt_movem_m_pc:
4425   {
4426     const IDESC *idesc = &crisv10f_insn_data[itype];
4427     CGEN_INSN_INT insn = base_insn;
4428 #define FLD(f) abuf->fields.sfmt_movem_m_r.f
4429     UINT f_memmode;
4430     UINT f_operand1;
4431
4432     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4433     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4434
4435   /* Record the fields for the semantic handler.  */
4436   FLD (f_operand1) = f_operand1;
4437   FLD (f_memmode) = f_memmode;
4438   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));
4439
4440 #if WITH_PROFILE_MODEL_P
4441   /* Record the fields for profiling.  */
4442   if (PROFILE_MODEL_P (current_cpu))
4443     {
4444       FLD (in_Rs) = f_operand1;
4445       FLD (out_Rs) = f_operand1;
4446       FLD (out_h_gr_SI_0) = 0;
4447       FLD (out_h_gr_SI_1) = 1;
4448       FLD (out_h_gr_SI_10) = 10;
4449       FLD (out_h_gr_SI_11) = 11;
4450       FLD (out_h_gr_SI_12) = 12;
4451       FLD (out_h_gr_SI_13) = 13;
4452       FLD (out_h_gr_SI_14) = 14;
4453       FLD (out_h_gr_SI_2) = 2;
4454       FLD (out_h_gr_SI_3) = 3;
4455       FLD (out_h_gr_SI_4) = 4;
4456       FLD (out_h_gr_SI_5) = 5;
4457       FLD (out_h_gr_SI_6) = 6;
4458       FLD (out_h_gr_SI_7) = 7;
4459       FLD (out_h_gr_SI_8) = 8;
4460       FLD (out_h_gr_SI_9) = 9;
4461     }
4462 #endif
4463 #undef FLD
4464     return idesc;
4465   }
4466
4467  extract_sfmt_add_b_r:
4468   {
4469     const IDESC *idesc = &crisv10f_insn_data[itype];
4470     CGEN_INSN_INT insn = base_insn;
4471 #define FLD(f) abuf->fields.sfmt_add_b_r.f
4472     UINT f_operand2;
4473     UINT f_operand1;
4474
4475     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4476     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4477
4478   /* Record the fields for the semantic handler.  */
4479   FLD (f_operand2) = f_operand2;
4480   FLD (f_operand1) = f_operand1;
4481   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));
4482
4483 #if WITH_PROFILE_MODEL_P
4484   /* Record the fields for profiling.  */
4485   if (PROFILE_MODEL_P (current_cpu))
4486     {
4487       FLD (in_Rd) = f_operand2;
4488       FLD (in_Rs) = f_operand1;
4489       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4490     }
4491 #endif
4492 #undef FLD
4493     return idesc;
4494   }
4495
4496  extract_sfmt_add_d_r:
4497   {
4498     const IDESC *idesc = &crisv10f_insn_data[itype];
4499     CGEN_INSN_INT insn = base_insn;
4500 #define FLD(f) abuf->fields.sfmt_add_b_r.f
4501     UINT f_operand2;
4502     UINT f_operand1;
4503
4504     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4505     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4506
4507   /* Record the fields for the semantic handler.  */
4508   FLD (f_operand2) = f_operand2;
4509   FLD (f_operand1) = f_operand1;
4510   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));
4511
4512 #if WITH_PROFILE_MODEL_P
4513   /* Record the fields for profiling.  */
4514   if (PROFILE_MODEL_P (current_cpu))
4515     {
4516       FLD (in_Rd) = f_operand2;
4517       FLD (in_Rs) = f_operand1;
4518       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4519     }
4520 #endif
4521 #undef FLD
4522     return idesc;
4523   }
4524
4525  extract_sfmt_add_m_b_m:
4526   {
4527     const IDESC *idesc = &crisv10f_insn_data[itype];
4528     CGEN_INSN_INT insn = base_insn;
4529 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4530     UINT f_operand2;
4531     UINT f_memmode;
4532     UINT f_operand1;
4533
4534     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4535     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4536     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4537
4538   /* Record the fields for the semantic handler.  */
4539   FLD (f_operand2) = f_operand2;
4540   FLD (f_operand1) = f_operand1;
4541   FLD (f_memmode) = f_memmode;
4542   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));
4543
4544 #if WITH_PROFILE_MODEL_P
4545   /* Record the fields for profiling.  */
4546   if (PROFILE_MODEL_P (current_cpu))
4547     {
4548       FLD (in_Rd) = f_operand2;
4549       FLD (in_Rs) = f_operand1;
4550       FLD (out_Rs) = f_operand1;
4551       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)));
4552     }
4553 #endif
4554 #undef FLD
4555     return idesc;
4556   }
4557
4558  extract_sfmt_add_m_w_m:
4559   {
4560     const IDESC *idesc = &crisv10f_insn_data[itype];
4561     CGEN_INSN_INT insn = base_insn;
4562 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4563     UINT f_operand2;
4564     UINT f_memmode;
4565     UINT f_operand1;
4566
4567     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4568     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4569     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4570
4571   /* Record the fields for the semantic handler.  */
4572   FLD (f_operand2) = f_operand2;
4573   FLD (f_operand1) = f_operand1;
4574   FLD (f_memmode) = f_memmode;
4575   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));
4576
4577 #if WITH_PROFILE_MODEL_P
4578   /* Record the fields for profiling.  */
4579   if (PROFILE_MODEL_P (current_cpu))
4580     {
4581       FLD (in_Rd) = f_operand2;
4582       FLD (in_Rs) = f_operand1;
4583       FLD (out_Rs) = f_operand1;
4584       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)));
4585     }
4586 #endif
4587 #undef FLD
4588     return idesc;
4589   }
4590
4591  extract_sfmt_add_m_d_m:
4592   {
4593     const IDESC *idesc = &crisv10f_insn_data[itype];
4594     CGEN_INSN_INT insn = base_insn;
4595 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4596     UINT f_operand2;
4597     UINT f_memmode;
4598     UINT f_operand1;
4599
4600     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4601     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4602     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4603
4604   /* Record the fields for the semantic handler.  */
4605   FLD (f_operand2) = f_operand2;
4606   FLD (f_operand1) = f_operand1;
4607   FLD (f_memmode) = f_memmode;
4608   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));
4609
4610 #if WITH_PROFILE_MODEL_P
4611   /* Record the fields for profiling.  */
4612   if (PROFILE_MODEL_P (current_cpu))
4613     {
4614       FLD (in_Rd) = f_operand2;
4615       FLD (in_Rs) = f_operand1;
4616       FLD (out_Rs) = f_operand1;
4617       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)));
4618     }
4619 #endif
4620 #undef FLD
4621     return idesc;
4622   }
4623
4624  extract_sfmt_addcbr:
4625   {
4626     const IDESC *idesc = &crisv10f_insn_data[itype];
4627     CGEN_INSN_INT insn = base_insn;
4628 #define FLD(f) abuf->fields.sfmt_addcbr.f
4629     INT f_indir_pc__byte;
4630     UINT f_operand2;
4631     /* Contents of trailing part of insn.  */
4632     UINT word_1;
4633
4634   word_1 = GETIMEMUSI (current_cpu, pc + 2);
4635     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4636     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4637
4638   /* Record the fields for the semantic handler.  */
4639   FLD (f_operand2) = f_operand2;
4640   FLD (f_indir_pc__byte) = f_indir_pc__byte;
4641   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));
4642
4643 #if WITH_PROFILE_MODEL_P
4644   /* Record the fields for profiling.  */
4645   if (PROFILE_MODEL_P (current_cpu))
4646     {
4647       FLD (in_Rd) = f_operand2;
4648       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4649     }
4650 #endif
4651 #undef FLD
4652     return idesc;
4653   }
4654
4655  extract_sfmt_addcwr:
4656   {
4657     const IDESC *idesc = &crisv10f_insn_data[itype];
4658     CGEN_INSN_INT insn = base_insn;
4659 #define FLD(f) abuf->fields.sfmt_addcwr.f
4660     INT f_indir_pc__word;
4661     UINT f_operand2;
4662     /* Contents of trailing part of insn.  */
4663     UINT word_1;
4664
4665   word_1 = GETIMEMUSI (current_cpu, pc + 2);
4666     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4667     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4668
4669   /* Record the fields for the semantic handler.  */
4670   FLD (f_operand2) = f_operand2;
4671   FLD (f_indir_pc__word) = f_indir_pc__word;
4672   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));
4673
4674 #if WITH_PROFILE_MODEL_P
4675   /* Record the fields for profiling.  */
4676   if (PROFILE_MODEL_P (current_cpu))
4677     {
4678       FLD (in_Rd) = f_operand2;
4679       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4680     }
4681 #endif
4682 #undef FLD
4683     return idesc;
4684   }
4685
4686  extract_sfmt_addcdr:
4687   {
4688     const IDESC *idesc = &crisv10f_insn_data[itype];
4689     CGEN_INSN_INT insn = base_insn;
4690 #define FLD(f) abuf->fields.sfmt_addcdr.f
4691     INT f_indir_pc__dword;
4692     UINT f_operand2;
4693     /* Contents of trailing part of insn.  */
4694     UINT word_1;
4695
4696   word_1 = GETIMEMUSI (current_cpu, pc + 2);
4697     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
4698     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4699
4700   /* Record the fields for the semantic handler.  */
4701   FLD (f_operand2) = f_operand2;
4702   FLD (f_indir_pc__dword) = f_indir_pc__dword;
4703   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));
4704
4705 #if WITH_PROFILE_MODEL_P
4706   /* Record the fields for profiling.  */
4707   if (PROFILE_MODEL_P (current_cpu))
4708     {
4709       FLD (in_Rd) = f_operand2;
4710       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4711     }
4712 #endif
4713 #undef FLD
4714     return idesc;
4715   }
4716
4717  extract_sfmt_addcpc:
4718   {
4719     const IDESC *idesc = &crisv10f_insn_data[itype];
4720     CGEN_INSN_INT insn = base_insn;
4721 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p8.f
4722     INT f_indir_pc__dword;
4723     /* Contents of trailing part of insn.  */
4724     UINT word_1;
4725
4726   word_1 = GETIMEMUSI (current_cpu, pc + 2);
4727     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
4728
4729   /* Record the fields for the semantic handler.  */
4730   FLD (f_indir_pc__dword) = f_indir_pc__dword;
4731   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addcpc", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
4732
4733 #if WITH_PROFILE_MODEL_P
4734   /* Record the fields for profiling.  */
4735   if (PROFILE_MODEL_P (current_cpu))
4736     {
4737     }
4738 #endif
4739 #undef FLD
4740     return idesc;
4741   }
4742
4743  extract_sfmt_adds_m_b_m:
4744   {
4745     const IDESC *idesc = &crisv10f_insn_data[itype];
4746     CGEN_INSN_INT insn = base_insn;
4747 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4748     UINT f_operand2;
4749     UINT f_memmode;
4750     UINT f_operand1;
4751
4752     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4753     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4754     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4755
4756   /* Record the fields for the semantic handler.  */
4757   FLD (f_operand2) = f_operand2;
4758   FLD (f_operand1) = f_operand1;
4759   FLD (f_memmode) = f_memmode;
4760   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));
4761
4762 #if WITH_PROFILE_MODEL_P
4763   /* Record the fields for profiling.  */
4764   if (PROFILE_MODEL_P (current_cpu))
4765     {
4766       FLD (in_Rd) = f_operand2;
4767       FLD (in_Rs) = f_operand1;
4768       FLD (out_Rs) = f_operand1;
4769       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)));
4770     }
4771 #endif
4772 #undef FLD
4773     return idesc;
4774   }
4775
4776  extract_sfmt_adds_m_w_m:
4777   {
4778     const IDESC *idesc = &crisv10f_insn_data[itype];
4779     CGEN_INSN_INT insn = base_insn;
4780 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4781     UINT f_operand2;
4782     UINT f_memmode;
4783     UINT f_operand1;
4784
4785     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4786     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4787     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4788
4789   /* Record the fields for the semantic handler.  */
4790   FLD (f_operand2) = f_operand2;
4791   FLD (f_operand1) = f_operand1;
4792   FLD (f_memmode) = f_memmode;
4793   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));
4794
4795 #if WITH_PROFILE_MODEL_P
4796   /* Record the fields for profiling.  */
4797   if (PROFILE_MODEL_P (current_cpu))
4798     {
4799       FLD (in_Rd) = f_operand2;
4800       FLD (in_Rs) = f_operand1;
4801       FLD (out_Rs) = f_operand1;
4802       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)));
4803     }
4804 #endif
4805 #undef FLD
4806     return idesc;
4807   }
4808
4809  extract_sfmt_addscbr:
4810   {
4811     const IDESC *idesc = &crisv10f_insn_data[itype];
4812     CGEN_INSN_INT insn = base_insn;
4813 #define FLD(f) abuf->fields.sfmt_addcbr.f
4814     INT f_indir_pc__byte;
4815     UINT f_operand2;
4816     /* Contents of trailing part of insn.  */
4817     UINT word_1;
4818
4819   word_1 = GETIMEMUSI (current_cpu, pc + 2);
4820     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4821     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4822
4823   /* Record the fields for the semantic handler.  */
4824   FLD (f_operand2) = f_operand2;
4825   FLD (f_indir_pc__byte) = f_indir_pc__byte;
4826   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));
4827
4828 #if WITH_PROFILE_MODEL_P
4829   /* Record the fields for profiling.  */
4830   if (PROFILE_MODEL_P (current_cpu))
4831     {
4832       FLD (in_Rd) = f_operand2;
4833       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4834     }
4835 #endif
4836 #undef FLD
4837     return idesc;
4838   }
4839
4840  extract_sfmt_addscwr:
4841   {
4842     const IDESC *idesc = &crisv10f_insn_data[itype];
4843     CGEN_INSN_INT insn = base_insn;
4844 #define FLD(f) abuf->fields.sfmt_addcwr.f
4845     INT f_indir_pc__word;
4846     UINT f_operand2;
4847     /* Contents of trailing part of insn.  */
4848     UINT word_1;
4849
4850   word_1 = GETIMEMUSI (current_cpu, pc + 2);
4851     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4852     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4853
4854   /* Record the fields for the semantic handler.  */
4855   FLD (f_operand2) = f_operand2;
4856   FLD (f_indir_pc__word) = f_indir_pc__word;
4857   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));
4858
4859 #if WITH_PROFILE_MODEL_P
4860   /* Record the fields for profiling.  */
4861   if (PROFILE_MODEL_P (current_cpu))
4862     {
4863       FLD (in_Rd) = f_operand2;
4864       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4865     }
4866 #endif
4867 #undef FLD
4868     return idesc;
4869   }
4870
4871  extract_sfmt_addspcpc:
4872   {
4873     const IDESC *idesc = &crisv10f_insn_data[itype];
4874 #define FLD(f) abuf->fields.fmt_empty.f
4875
4876
4877   /* Record the fields for the semantic handler.  */
4878   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addspcpc", (char *) 0));
4879
4880 #if WITH_PROFILE_MODEL_P
4881   /* Record the fields for profiling.  */
4882   if (PROFILE_MODEL_P (current_cpu))
4883     {
4884     }
4885 #endif
4886 #undef FLD
4887     return idesc;
4888   }
4889
4890  extract_sfmt_addi_b_r:
4891   {
4892     const IDESC *idesc = &crisv10f_insn_data[itype];
4893     CGEN_INSN_INT insn = base_insn;
4894 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
4895     UINT f_operand2;
4896     UINT f_operand1;
4897
4898     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4899     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4900
4901   /* Record the fields for the semantic handler.  */
4902   FLD (f_operand2) = f_operand2;
4903   FLD (f_operand1) = f_operand1;
4904   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));
4905
4906 #if WITH_PROFILE_MODEL_P
4907   /* Record the fields for profiling.  */
4908   if (PROFILE_MODEL_P (current_cpu))
4909     {
4910       FLD (in_Rd) = f_operand2;
4911       FLD (in_Rs) = f_operand1;
4912       FLD (out_Rs) = f_operand1;
4913     }
4914 #endif
4915 #undef FLD
4916     return idesc;
4917   }
4918
4919  extract_sfmt_neg_b_r:
4920   {
4921     const IDESC *idesc = &crisv10f_insn_data[itype];
4922     CGEN_INSN_INT insn = base_insn;
4923 #define FLD(f) abuf->fields.sfmt_add_b_r.f
4924     UINT f_operand2;
4925     UINT f_operand1;
4926
4927     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4928     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4929
4930   /* Record the fields for the semantic handler.  */
4931   FLD (f_operand1) = f_operand1;
4932   FLD (f_operand2) = f_operand2;
4933   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));
4934
4935 #if WITH_PROFILE_MODEL_P
4936   /* Record the fields for profiling.  */
4937   if (PROFILE_MODEL_P (current_cpu))
4938     {
4939       FLD (in_Rs) = f_operand1;
4940       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4941     }
4942 #endif
4943 #undef FLD
4944     return idesc;
4945   }
4946
4947  extract_sfmt_neg_d_r:
4948   {
4949     const IDESC *idesc = &crisv10f_insn_data[itype];
4950     CGEN_INSN_INT insn = base_insn;
4951 #define FLD(f) abuf->fields.sfmt_add_b_r.f
4952     UINT f_operand2;
4953     UINT f_operand1;
4954
4955     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4956     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4957
4958   /* Record the fields for the semantic handler.  */
4959   FLD (f_operand1) = f_operand1;
4960   FLD (f_operand2) = f_operand2;
4961   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));
4962
4963 #if WITH_PROFILE_MODEL_P
4964   /* Record the fields for profiling.  */
4965   if (PROFILE_MODEL_P (current_cpu))
4966     {
4967       FLD (in_Rs) = f_operand1;
4968       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4969     }
4970 #endif
4971 #undef FLD
4972     return idesc;
4973   }
4974
4975  extract_sfmt_test_m_b_m:
4976   {
4977     const IDESC *idesc = &crisv10f_insn_data[itype];
4978     CGEN_INSN_INT insn = base_insn;
4979 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
4980     UINT f_memmode;
4981     UINT f_operand1;
4982
4983     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4984     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4985
4986   /* Record the fields for the semantic handler.  */
4987   FLD (f_operand1) = f_operand1;
4988   FLD (f_memmode) = f_memmode;
4989   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));
4990
4991 #if WITH_PROFILE_MODEL_P
4992   /* Record the fields for profiling.  */
4993   if (PROFILE_MODEL_P (current_cpu))
4994     {
4995       FLD (in_Rs) = f_operand1;
4996       FLD (out_Rs) = f_operand1;
4997     }
4998 #endif
4999 #undef FLD
5000     return idesc;
5001   }
5002
5003  extract_sfmt_test_m_w_m:
5004   {
5005     const IDESC *idesc = &crisv10f_insn_data[itype];
5006     CGEN_INSN_INT insn = base_insn;
5007 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
5008     UINT f_memmode;
5009     UINT f_operand1;
5010
5011     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5012     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5013
5014   /* Record the fields for the semantic handler.  */
5015   FLD (f_operand1) = f_operand1;
5016   FLD (f_memmode) = f_memmode;
5017   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));
5018
5019 #if WITH_PROFILE_MODEL_P
5020   /* Record the fields for profiling.  */
5021   if (PROFILE_MODEL_P (current_cpu))
5022     {
5023       FLD (in_Rs) = f_operand1;
5024       FLD (out_Rs) = f_operand1;
5025     }
5026 #endif
5027 #undef FLD
5028     return idesc;
5029   }
5030
5031  extract_sfmt_test_m_d_m:
5032   {
5033     const IDESC *idesc = &crisv10f_insn_data[itype];
5034     CGEN_INSN_INT insn = base_insn;
5035 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
5036     UINT f_memmode;
5037     UINT f_operand1;
5038
5039     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5040     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5041
5042   /* Record the fields for the semantic handler.  */
5043   FLD (f_operand1) = f_operand1;
5044   FLD (f_memmode) = f_memmode;
5045   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));
5046
5047 #if WITH_PROFILE_MODEL_P
5048   /* Record the fields for profiling.  */
5049   if (PROFILE_MODEL_P (current_cpu))
5050     {
5051       FLD (in_Rs) = f_operand1;
5052       FLD (out_Rs) = f_operand1;
5053     }
5054 #endif
5055 #undef FLD
5056     return idesc;
5057   }
5058
5059  extract_sfmt_move_r_m_b_m:
5060   {
5061     const IDESC *idesc = &crisv10f_insn_data[itype];
5062     CGEN_INSN_INT insn = base_insn;
5063 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
5064     UINT f_operand2;
5065     UINT f_memmode;
5066     UINT f_operand1;
5067
5068     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5069     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5070     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5071
5072   /* Record the fields for the semantic handler.  */
5073   FLD (f_operand2) = f_operand2;
5074   FLD (f_operand1) = f_operand1;
5075   FLD (f_memmode) = f_memmode;
5076   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));
5077
5078 #if WITH_PROFILE_MODEL_P
5079   /* Record the fields for profiling.  */
5080   if (PROFILE_MODEL_P (current_cpu))
5081     {
5082       FLD (in_Rd) = f_operand2;
5083       FLD (in_Rs) = f_operand1;
5084       FLD (out_Rs) = f_operand1;
5085     }
5086 #endif
5087 #undef FLD
5088     return idesc;
5089   }
5090
5091  extract_sfmt_move_r_m_w_m:
5092   {
5093     const IDESC *idesc = &crisv10f_insn_data[itype];
5094     CGEN_INSN_INT insn = base_insn;
5095 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
5096     UINT f_operand2;
5097     UINT f_memmode;
5098     UINT f_operand1;
5099
5100     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5101     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5102     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5103
5104   /* Record the fields for the semantic handler.  */
5105   FLD (f_operand2) = f_operand2;
5106   FLD (f_operand1) = f_operand1;
5107   FLD (f_memmode) = f_memmode;
5108   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));
5109
5110 #if WITH_PROFILE_MODEL_P
5111   /* Record the fields for profiling.  */
5112   if (PROFILE_MODEL_P (current_cpu))
5113     {
5114       FLD (in_Rd) = f_operand2;
5115       FLD (in_Rs) = f_operand1;
5116       FLD (out_Rs) = f_operand1;
5117     }
5118 #endif
5119 #undef FLD
5120     return idesc;
5121   }
5122
5123  extract_sfmt_move_r_m_d_m:
5124   {
5125     const IDESC *idesc = &crisv10f_insn_data[itype];
5126     CGEN_INSN_INT insn = base_insn;
5127 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
5128     UINT f_operand2;
5129     UINT f_memmode;
5130     UINT f_operand1;
5131
5132     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5133     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5134     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5135
5136   /* Record the fields for the semantic handler.  */
5137   FLD (f_operand2) = f_operand2;
5138   FLD (f_operand1) = f_operand1;
5139   FLD (f_memmode) = f_memmode;
5140   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));
5141
5142 #if WITH_PROFILE_MODEL_P
5143   /* Record the fields for profiling.  */
5144   if (PROFILE_MODEL_P (current_cpu))
5145     {
5146       FLD (in_Rd) = f_operand2;
5147       FLD (in_Rs) = f_operand1;
5148       FLD (out_Rs) = f_operand1;
5149     }
5150 #endif
5151 #undef FLD
5152     return idesc;
5153   }
5154
5155  extract_sfmt_muls_b:
5156   {
5157     const IDESC *idesc = &crisv10f_insn_data[itype];
5158     CGEN_INSN_INT insn = base_insn;
5159 #define FLD(f) abuf->fields.sfmt_muls_b.f
5160     UINT f_operand2;
5161     UINT f_operand1;
5162
5163     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5164     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5165
5166   /* Record the fields for the semantic handler.  */
5167   FLD (f_operand2) = f_operand2;
5168   FLD (f_operand1) = f_operand1;
5169   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));
5170
5171 #if WITH_PROFILE_MODEL_P
5172   /* Record the fields for profiling.  */
5173   if (PROFILE_MODEL_P (current_cpu))
5174     {
5175       FLD (in_Rd) = f_operand2;
5176       FLD (in_Rs) = f_operand1;
5177       FLD (out_Rd) = f_operand2;
5178       FLD (out_h_sr_SI_7) = 7;
5179     }
5180 #endif
5181 #undef FLD
5182     return idesc;
5183   }
5184
5185  extract_sfmt_mstep:
5186   {
5187     const IDESC *idesc = &crisv10f_insn_data[itype];
5188     CGEN_INSN_INT insn = base_insn;
5189 #define FLD(f) abuf->fields.sfmt_muls_b.f
5190     UINT f_operand2;
5191     UINT f_operand1;
5192
5193     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5194     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5195
5196   /* Record the fields for the semantic handler.  */
5197   FLD (f_operand2) = f_operand2;
5198   FLD (f_operand1) = f_operand1;
5199   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));
5200
5201 #if WITH_PROFILE_MODEL_P
5202   /* Record the fields for profiling.  */
5203   if (PROFILE_MODEL_P (current_cpu))
5204     {
5205       FLD (in_Rd) = f_operand2;
5206       FLD (in_Rs) = f_operand1;
5207       FLD (out_Rd) = f_operand2;
5208     }
5209 #endif
5210 #undef FLD
5211     return idesc;
5212   }
5213
5214  extract_sfmt_dstep:
5215   {
5216     const IDESC *idesc = &crisv10f_insn_data[itype];
5217     CGEN_INSN_INT insn = base_insn;
5218 #define FLD(f) abuf->fields.sfmt_muls_b.f
5219     UINT f_operand2;
5220     UINT f_operand1;
5221
5222     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5223     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5224
5225   /* Record the fields for the semantic handler.  */
5226   FLD (f_operand2) = f_operand2;
5227   FLD (f_operand1) = f_operand1;
5228   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));
5229
5230 #if WITH_PROFILE_MODEL_P
5231   /* Record the fields for profiling.  */
5232   if (PROFILE_MODEL_P (current_cpu))
5233     {
5234       FLD (in_Rd) = f_operand2;
5235       FLD (in_Rs) = f_operand1;
5236       FLD (out_Rd) = f_operand2;
5237     }
5238 #endif
5239 #undef FLD
5240     return idesc;
5241   }
5242
5243  extract_sfmt_and_b_r:
5244   {
5245     const IDESC *idesc = &crisv10f_insn_data[itype];
5246     CGEN_INSN_INT insn = base_insn;
5247 #define FLD(f) abuf->fields.sfmt_add_b_r.f
5248     UINT f_operand2;
5249     UINT f_operand1;
5250
5251     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5252     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5253
5254   /* Record the fields for the semantic handler.  */
5255   FLD (f_operand2) = f_operand2;
5256   FLD (f_operand1) = f_operand1;
5257   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));
5258
5259 #if WITH_PROFILE_MODEL_P
5260   /* Record the fields for profiling.  */
5261   if (PROFILE_MODEL_P (current_cpu))
5262     {
5263       FLD (in_Rd) = f_operand2;
5264       FLD (in_Rs) = f_operand1;
5265       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
5266     }
5267 #endif
5268 #undef FLD
5269     return idesc;
5270   }
5271
5272  extract_sfmt_and_w_r:
5273   {
5274     const IDESC *idesc = &crisv10f_insn_data[itype];
5275     CGEN_INSN_INT insn = base_insn;
5276 #define FLD(f) abuf->fields.sfmt_add_b_r.f
5277     UINT f_operand2;
5278     UINT f_operand1;
5279
5280     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5281     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5282
5283   /* Record the fields for the semantic handler.  */
5284   FLD (f_operand2) = f_operand2;
5285   FLD (f_operand1) = f_operand1;
5286   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));
5287
5288 #if WITH_PROFILE_MODEL_P
5289   /* Record the fields for profiling.  */
5290   if (PROFILE_MODEL_P (current_cpu))
5291     {
5292       FLD (in_Rd) = f_operand2;
5293       FLD (in_Rs) = f_operand1;
5294       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
5295     }
5296 #endif
5297 #undef FLD
5298     return idesc;
5299   }
5300
5301  extract_sfmt_and_d_r:
5302   {
5303     const IDESC *idesc = &crisv10f_insn_data[itype];
5304     CGEN_INSN_INT insn = base_insn;
5305 #define FLD(f) abuf->fields.sfmt_add_b_r.f
5306     UINT f_operand2;
5307     UINT f_operand1;
5308
5309     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5310     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5311
5312   /* Record the fields for the semantic handler.  */
5313   FLD (f_operand2) = f_operand2;
5314   FLD (f_operand1) = f_operand1;
5315   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));
5316
5317 #if WITH_PROFILE_MODEL_P
5318   /* Record the fields for profiling.  */
5319   if (PROFILE_MODEL_P (current_cpu))
5320     {
5321       FLD (in_Rd) = f_operand2;
5322       FLD (in_Rs) = f_operand1;
5323       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
5324     }
5325 #endif
5326 #undef FLD
5327     return idesc;
5328   }
5329
5330  extract_sfmt_and_m_b_m:
5331   {
5332     const IDESC *idesc = &crisv10f_insn_data[itype];
5333     CGEN_INSN_INT insn = base_insn;
5334 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
5335     UINT f_operand2;
5336     UINT f_memmode;
5337     UINT f_operand1;
5338
5339     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5340     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5341     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5342
5343   /* Record the fields for the semantic handler.  */
5344   FLD (f_operand2) = f_operand2;
5345   FLD (f_operand1) = f_operand1;
5346   FLD (f_memmode) = f_memmode;
5347   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));
5348
5349 #if WITH_PROFILE_MODEL_P
5350   /* Record the fields for profiling.  */
5351   if (PROFILE_MODEL_P (current_cpu))
5352     {
5353       FLD (in_Rd) = f_operand2;
5354       FLD (in_Rs) = f_operand1;
5355       FLD (out_Rs) = f_operand1;
5356       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)));
5357     }
5358 #endif
5359 #undef FLD
5360     return idesc;
5361   }
5362
5363  extract_sfmt_and_m_w_m:
5364   {
5365     const IDESC *idesc = &crisv10f_insn_data[itype];
5366     CGEN_INSN_INT insn = base_insn;
5367 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
5368     UINT f_operand2;
5369     UINT f_memmode;
5370     UINT f_operand1;
5371
5372     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5373     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5374     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5375
5376   /* Record the fields for the semantic handler.  */
5377   FLD (f_operand2) = f_operand2;
5378   FLD (f_operand1) = f_operand1;
5379   FLD (f_memmode) = f_memmode;
5380   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));
5381
5382 #if WITH_PROFILE_MODEL_P
5383   /* Record the fields for profiling.  */
5384   if (PROFILE_MODEL_P (current_cpu))
5385     {
5386       FLD (in_Rd) = f_operand2;
5387       FLD (in_Rs) = f_operand1;
5388       FLD (out_Rs) = f_operand1;
5389       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)));
5390     }
5391 #endif
5392 #undef FLD
5393     return idesc;
5394   }
5395
5396  extract_sfmt_and_m_d_m:
5397   {
5398     const IDESC *idesc = &crisv10f_insn_data[itype];
5399     CGEN_INSN_INT insn = base_insn;
5400 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
5401     UINT f_operand2;
5402     UINT f_memmode;
5403     UINT f_operand1;
5404
5405     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5406     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5407     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5408
5409   /* Record the fields for the semantic handler.  */
5410   FLD (f_operand2) = f_operand2;
5411   FLD (f_operand1) = f_operand1;
5412   FLD (f_memmode) = f_memmode;
5413   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));
5414
5415 #if WITH_PROFILE_MODEL_P
5416   /* Record the fields for profiling.  */
5417   if (PROFILE_MODEL_P (current_cpu))
5418     {
5419       FLD (in_Rd) = f_operand2;
5420       FLD (in_Rs) = f_operand1;
5421       FLD (out_Rs) = f_operand1;
5422       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)));
5423     }
5424 #endif
5425 #undef FLD
5426     return idesc;
5427   }
5428
5429  extract_sfmt_andcbr:
5430   {
5431     const IDESC *idesc = &crisv10f_insn_data[itype];
5432     CGEN_INSN_INT insn = base_insn;
5433 #define FLD(f) abuf->fields.sfmt_addcbr.f
5434     INT f_indir_pc__byte;
5435     UINT f_operand2;
5436     /* Contents of trailing part of insn.  */
5437     UINT word_1;
5438
5439   word_1 = GETIMEMUSI (current_cpu, pc + 2);
5440     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
5441     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5442
5443   /* Record the fields for the semantic handler.  */
5444   FLD (f_operand2) = f_operand2;
5445   FLD (f_indir_pc__byte) = f_indir_pc__byte;
5446   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));
5447
5448 #if WITH_PROFILE_MODEL_P
5449   /* Record the fields for profiling.  */
5450   if (PROFILE_MODEL_P (current_cpu))
5451     {
5452       FLD (in_Rd) = f_operand2;
5453       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
5454     }
5455 #endif
5456 #undef FLD
5457     return idesc;
5458   }
5459
5460  extract_sfmt_andcwr:
5461   {
5462     const IDESC *idesc = &crisv10f_insn_data[itype];
5463     CGEN_INSN_INT insn = base_insn;
5464 #define FLD(f) abuf->fields.sfmt_addcwr.f
5465     INT f_indir_pc__word;
5466     UINT f_operand2;
5467     /* Contents of trailing part of insn.  */
5468     UINT word_1;
5469
5470   word_1 = GETIMEMUSI (current_cpu, pc + 2);
5471     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
5472     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5473
5474   /* Record the fields for the semantic handler.  */
5475   FLD (f_operand2) = f_operand2;
5476   FLD (f_indir_pc__word) = f_indir_pc__word;
5477   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));
5478
5479 #if WITH_PROFILE_MODEL_P
5480   /* Record the fields for profiling.  */
5481   if (PROFILE_MODEL_P (current_cpu))
5482     {
5483       FLD (in_Rd) = f_operand2;
5484       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
5485     }
5486 #endif
5487 #undef FLD
5488     return idesc;
5489   }
5490
5491  extract_sfmt_andcdr:
5492   {
5493     const IDESC *idesc = &crisv10f_insn_data[itype];
5494     CGEN_INSN_INT insn = base_insn;
5495 #define FLD(f) abuf->fields.sfmt_addcdr.f
5496     INT f_indir_pc__dword;
5497     UINT f_operand2;
5498     /* Contents of trailing part of insn.  */
5499     UINT word_1;
5500
5501   word_1 = GETIMEMUSI (current_cpu, pc + 2);
5502     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
5503     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5504
5505   /* Record the fields for the semantic handler.  */
5506   FLD (f_operand2) = f_operand2;
5507   FLD (f_indir_pc__dword) = f_indir_pc__dword;
5508   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));
5509
5510 #if WITH_PROFILE_MODEL_P
5511   /* Record the fields for profiling.  */
5512   if (PROFILE_MODEL_P (current_cpu))
5513     {
5514       FLD (in_Rd) = f_operand2;
5515       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
5516     }
5517 #endif
5518 #undef FLD
5519     return idesc;
5520   }
5521
5522  extract_sfmt_andq:
5523   {
5524     const IDESC *idesc = &crisv10f_insn_data[itype];
5525     CGEN_INSN_INT insn = base_insn;
5526 #define FLD(f) abuf->fields.sfmt_andq.f
5527     UINT f_operand2;
5528     INT f_s6;
5529
5530     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5531     f_s6 = EXTRACT_LSB0_INT (insn, 16, 5, 6);
5532
5533   /* Record the fields for the semantic handler.  */
5534   FLD (f_operand2) = f_operand2;
5535   FLD (f_s6) = f_s6;
5536   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));
5537
5538 #if WITH_PROFILE_MODEL_P
5539   /* Record the fields for profiling.  */
5540   if (PROFILE_MODEL_P (current_cpu))
5541     {
5542       FLD (in_Rd) = f_operand2;
5543       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
5544     }
5545 #endif
5546 #undef FLD
5547     return idesc;
5548   }
5549
5550  extract_sfmt_swap:
5551   {
5552     const IDESC *idesc = &crisv10f_insn_data[itype];
5553     CGEN_INSN_INT insn = base_insn;
5554 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
5555     UINT f_operand2;
5556     UINT f_operand1;
5557
5558     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5559     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5560
5561   /* Record the fields for the semantic handler.  */
5562   FLD (f_operand1) = f_operand1;
5563   FLD (f_operand2) = f_operand2;
5564   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));
5565
5566 #if WITH_PROFILE_MODEL_P
5567   /* Record the fields for profiling.  */
5568   if (PROFILE_MODEL_P (current_cpu))
5569     {
5570       FLD (in_Rs) = f_operand1;
5571       FLD (out_Rs) = f_operand1;
5572     }
5573 #endif
5574 #undef FLD
5575     return idesc;
5576   }
5577
5578  extract_sfmt_asrr_b_r:
5579   {
5580     const IDESC *idesc = &crisv10f_insn_data[itype];
5581     CGEN_INSN_INT insn = base_insn;
5582 #define FLD(f) abuf->fields.sfmt_add_b_r.f
5583     UINT f_operand2;
5584     UINT f_operand1;
5585
5586     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5587     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5588
5589   /* Record the fields for the semantic handler.  */
5590   FLD (f_operand2) = f_operand2;
5591   FLD (f_operand1) = f_operand1;
5592   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));
5593
5594 #if WITH_PROFILE_MODEL_P
5595   /* Record the fields for profiling.  */
5596   if (PROFILE_MODEL_P (current_cpu))
5597     {
5598       FLD (in_Rd) = f_operand2;
5599       FLD (in_Rs) = f_operand1;
5600       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
5601     }
5602 #endif
5603 #undef FLD
5604     return idesc;
5605   }
5606
5607  extract_sfmt_asrq:
5608   {
5609     const IDESC *idesc = &crisv10f_insn_data[itype];
5610     CGEN_INSN_INT insn = base_insn;
5611 #define FLD(f) abuf->fields.sfmt_asrq.f
5612     UINT f_operand2;
5613     UINT f_u5;
5614
5615     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5616     f_u5 = EXTRACT_LSB0_UINT (insn, 16, 4, 5);
5617
5618   /* Record the fields for the semantic handler.  */
5619   FLD (f_operand2) = f_operand2;
5620   FLD (f_u5) = f_u5;
5621   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));
5622
5623 #if WITH_PROFILE_MODEL_P
5624   /* Record the fields for profiling.  */
5625   if (PROFILE_MODEL_P (current_cpu))
5626     {
5627       FLD (in_Rd) = f_operand2;
5628       FLD (out_Rd) = f_operand2;
5629     }
5630 #endif
5631 #undef FLD
5632     return idesc;
5633   }
5634
5635  extract_sfmt_lsrr_b_r:
5636   {
5637     const IDESC *idesc = &crisv10f_insn_data[itype];
5638     CGEN_INSN_INT insn = base_insn;
5639 #define FLD(f) abuf->fields.sfmt_add_b_r.f
5640     UINT f_operand2;
5641     UINT f_operand1;
5642
5643     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5644     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5645
5646   /* Record the fields for the semantic handler.  */
5647   FLD (f_operand2) = f_operand2;
5648   FLD (f_operand1) = f_operand1;
5649   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));
5650
5651 #if WITH_PROFILE_MODEL_P
5652   /* Record the fields for profiling.  */
5653   if (PROFILE_MODEL_P (current_cpu))
5654     {
5655       FLD (in_Rd) = f_operand2;
5656       FLD (in_Rs) = f_operand1;
5657       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
5658     }
5659 #endif
5660 #undef FLD
5661     return idesc;
5662   }
5663
5664  extract_sfmt_lsrr_d_r:
5665   {
5666     const IDESC *idesc = &crisv10f_insn_data[itype];
5667     CGEN_INSN_INT insn = base_insn;
5668 #define FLD(f) abuf->fields.sfmt_add_b_r.f
5669     UINT f_operand2;
5670     UINT f_operand1;
5671
5672     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5673     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5674
5675   /* Record the fields for the semantic handler.  */
5676   FLD (f_operand2) = f_operand2;
5677   FLD (f_operand1) = f_operand1;
5678   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));
5679
5680 #if WITH_PROFILE_MODEL_P
5681   /* Record the fields for profiling.  */
5682   if (PROFILE_MODEL_P (current_cpu))
5683     {
5684       FLD (in_Rd) = f_operand2;
5685       FLD (in_Rs) = f_operand1;
5686       FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
5687     }
5688 #endif
5689 #undef FLD
5690     return idesc;
5691   }
5692
5693  extract_sfmt_btst:
5694   {
5695     const IDESC *idesc = &crisv10f_insn_data[itype];
5696     CGEN_INSN_INT insn = base_insn;
5697 #define FLD(f) abuf->fields.sfmt_add_b_r.f
5698     UINT f_operand2;
5699     UINT f_operand1;
5700
5701     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5702     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5703
5704   /* Record the fields for the semantic handler.  */
5705   FLD (f_operand2) = f_operand2;
5706   FLD (f_operand1) = f_operand1;
5707   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));
5708
5709 #if WITH_PROFILE_MODEL_P
5710   /* Record the fields for profiling.  */
5711   if (PROFILE_MODEL_P (current_cpu))
5712     {
5713       FLD (in_Rd) = f_operand2;
5714       FLD (in_Rs) = f_operand1;
5715     }
5716 #endif
5717 #undef FLD
5718     return idesc;
5719   }
5720
5721  extract_sfmt_btstq:
5722   {
5723     const IDESC *idesc = &crisv10f_insn_data[itype];
5724     CGEN_INSN_INT insn = base_insn;
5725 #define FLD(f) abuf->fields.sfmt_asrq.f
5726     UINT f_operand2;
5727     UINT f_u5;
5728
5729     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5730     f_u5 = EXTRACT_LSB0_UINT (insn, 16, 4, 5);
5731
5732   /* Record the fields for the semantic handler.  */
5733   FLD (f_operand2) = f_operand2;
5734   FLD (f_u5) = f_u5;
5735   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));
5736
5737 #if WITH_PROFILE_MODEL_P
5738   /* Record the fields for profiling.  */
5739   if (PROFILE_MODEL_P (current_cpu))
5740     {
5741       FLD (in_Rd) = f_operand2;
5742     }
5743 #endif
5744 #undef FLD
5745     return idesc;
5746   }
5747
5748  extract_sfmt_setf:
5749   {
5750     const IDESC *idesc = &crisv10f_insn_data[itype];
5751     CGEN_INSN_INT insn = base_insn;
5752 #define FLD(f) abuf->fields.sfmt_setf.f
5753     UINT f_operand2;
5754     UINT f_operand1;
5755     UINT f_dstsrc;
5756
5757     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5758     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5759   f_dstsrc = ((((f_operand1) | (((f_operand2) << (4))))) & (255));
5760
5761   /* Record the fields for the semantic handler.  */
5762   FLD (f_dstsrc) = f_dstsrc;
5763   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_setf", "f_dstsrc 0x%x", 'x', f_dstsrc, (char *) 0));
5764
5765 #undef FLD
5766     return idesc;
5767   }
5768
5769  extract_sfmt_bcc_b:
5770   {
5771     const IDESC *idesc = &crisv10f_insn_data[itype];
5772     CGEN_INSN_INT insn = base_insn;
5773 #define FLD(f) abuf->fields.sfmt_bcc_b.f
5774     UINT f_operand2;
5775     UINT f_disp9_lo;
5776     INT f_disp9_hi;
5777     INT f_disp9;
5778
5779     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5780     f_disp9_lo = EXTRACT_LSB0_UINT (insn, 16, 7, 7);
5781     f_disp9_hi = EXTRACT_LSB0_INT (insn, 16, 0, 1);
5782 {
5783   SI tmp_abslo;
5784   SI tmp_absval;
5785   tmp_abslo = ((f_disp9_lo) << (1));
5786   tmp_absval = ((((((f_disp9_hi) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo));
5787   f_disp9 = ((((pc) + (tmp_absval))) + (((GET_H_V32_NON_V32 ()) ? (0) : (2))));
5788 }
5789
5790   /* Record the fields for the semantic handler.  */
5791   FLD (f_operand2) = f_operand2;
5792   FLD (i_o_pcrel) = f_disp9;
5793   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));
5794
5795 #if WITH_PROFILE_MODEL_P
5796   /* Record the fields for profiling.  */
5797   if (PROFILE_MODEL_P (current_cpu))
5798     {
5799     }
5800 #endif
5801 #undef FLD
5802     return idesc;
5803   }
5804
5805  extract_sfmt_ba_b:
5806   {
5807     const IDESC *idesc = &crisv10f_insn_data[itype];
5808     CGEN_INSN_INT insn = base_insn;
5809 #define FLD(f) abuf->fields.sfmt_bcc_b.f
5810     UINT f_disp9_lo;
5811     INT f_disp9_hi;
5812     INT f_disp9;
5813
5814     f_disp9_lo = EXTRACT_LSB0_UINT (insn, 16, 7, 7);
5815     f_disp9_hi = EXTRACT_LSB0_INT (insn, 16, 0, 1);
5816 {
5817   SI tmp_abslo;
5818   SI tmp_absval;
5819   tmp_abslo = ((f_disp9_lo) << (1));
5820   tmp_absval = ((((((f_disp9_hi) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo));
5821   f_disp9 = ((((pc) + (tmp_absval))) + (((GET_H_V32_NON_V32 ()) ? (0) : (2))));
5822 }
5823
5824   /* Record the fields for the semantic handler.  */
5825   FLD (i_o_pcrel) = f_disp9;
5826   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ba_b", "o_pcrel 0x%x", 'x', f_disp9, (char *) 0));
5827
5828 #if WITH_PROFILE_MODEL_P
5829   /* Record the fields for profiling.  */
5830   if (PROFILE_MODEL_P (current_cpu))
5831     {
5832     }
5833 #endif
5834 #undef FLD
5835     return idesc;
5836   }
5837
5838  extract_sfmt_bcc_w:
5839   {
5840     const IDESC *idesc = &crisv10f_insn_data[itype];
5841     CGEN_INSN_INT insn = base_insn;
5842 #define FLD(f) abuf->fields.sfmt_bcc_w.f
5843     SI f_indir_pc__word_pcrel;
5844     UINT f_operand2;
5845     /* Contents of trailing part of insn.  */
5846     UINT word_1;
5847
5848   word_1 = GETIMEMUSI (current_cpu, pc + 2);
5849     f_indir_pc__word_pcrel = ((EXTHISI (((HI) (UINT) ((0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0)))))) + (((pc) + (((GET_H_V32_NON_V32 ()) ? (0) : (4))))));
5850     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5851
5852   /* Record the fields for the semantic handler.  */
5853   FLD (f_operand2) = f_operand2;
5854   FLD (i_o_word_pcrel) = f_indir_pc__word_pcrel;
5855   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));
5856
5857 #if WITH_PROFILE_MODEL_P
5858   /* Record the fields for profiling.  */
5859   if (PROFILE_MODEL_P (current_cpu))
5860     {
5861     }
5862 #endif
5863 #undef FLD
5864     return idesc;
5865   }
5866
5867  extract_sfmt_ba_w:
5868   {
5869     const IDESC *idesc = &crisv10f_insn_data[itype];
5870     CGEN_INSN_INT insn = base_insn;
5871 #define FLD(f) abuf->fields.sfmt_bcc_w.f
5872     SI f_indir_pc__word_pcrel;
5873     /* Contents of trailing part of insn.  */
5874     UINT word_1;
5875
5876   word_1 = GETIMEMUSI (current_cpu, pc + 2);
5877     f_indir_pc__word_pcrel = ((EXTHISI (((HI) (UINT) ((0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0)))))) + (((pc) + (((GET_H_V32_NON_V32 ()) ? (0) : (4))))));
5878
5879   /* Record the fields for the semantic handler.  */
5880   FLD (i_o_word_pcrel) = f_indir_pc__word_pcrel;
5881   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ba_w", "o_word_pcrel 0x%x", 'x', f_indir_pc__word_pcrel, (char *) 0));
5882
5883 #if WITH_PROFILE_MODEL_P
5884   /* Record the fields for profiling.  */
5885   if (PROFILE_MODEL_P (current_cpu))
5886     {
5887     }
5888 #endif
5889 #undef FLD
5890     return idesc;
5891   }
5892
5893  extract_sfmt_jump_r:
5894   {
5895     const IDESC *idesc = &crisv10f_insn_data[itype];
5896     CGEN_INSN_INT insn = base_insn;
5897 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
5898     UINT f_operand2;
5899     UINT f_operand1;
5900
5901     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5902     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5903
5904   /* Record the fields for the semantic handler.  */
5905   FLD (f_operand1) = f_operand1;
5906   FLD (f_operand2) = f_operand2;
5907   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));
5908
5909 #if WITH_PROFILE_MODEL_P
5910   /* Record the fields for profiling.  */
5911   if (PROFILE_MODEL_P (current_cpu))
5912     {
5913       FLD (in_Rs) = f_operand1;
5914       FLD (out_Pd) = f_operand2;
5915     }
5916 #endif
5917 #undef FLD
5918     return idesc;
5919   }
5920
5921  extract_sfmt_jump_m:
5922   {
5923     const IDESC *idesc = &crisv10f_insn_data[itype];
5924     CGEN_INSN_INT insn = base_insn;
5925 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
5926     UINT f_operand2;
5927     UINT f_memmode;
5928     UINT f_operand1;
5929
5930     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5931     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5932     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5933
5934   /* Record the fields for the semantic handler.  */
5935   FLD (f_operand1) = f_operand1;
5936   FLD (f_memmode) = f_memmode;
5937   FLD (f_operand2) = f_operand2;
5938   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));
5939
5940 #if WITH_PROFILE_MODEL_P
5941   /* Record the fields for profiling.  */
5942   if (PROFILE_MODEL_P (current_cpu))
5943     {
5944       FLD (in_Rs) = f_operand1;
5945       FLD (out_Pd) = f_operand2;
5946       FLD (out_Rs) = f_operand1;
5947     }
5948 #endif
5949 #undef FLD
5950     return idesc;
5951   }
5952
5953  extract_sfmt_jump_c:
5954   {
5955     const IDESC *idesc = &crisv10f_insn_data[itype];
5956     CGEN_INSN_INT insn = base_insn;
5957 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p8.f
5958     INT f_indir_pc__dword;
5959     UINT f_operand2;
5960     /* Contents of trailing part of insn.  */
5961     UINT word_1;
5962
5963   word_1 = GETIMEMUSI (current_cpu, pc + 2);
5964     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
5965     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5966
5967   /* Record the fields for the semantic handler.  */
5968   FLD (f_indir_pc__dword) = f_indir_pc__dword;
5969   FLD (f_operand2) = f_operand2;
5970   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));
5971
5972 #if WITH_PROFILE_MODEL_P
5973   /* Record the fields for profiling.  */
5974   if (PROFILE_MODEL_P (current_cpu))
5975     {
5976       FLD (out_Pd) = f_operand2;
5977     }
5978 #endif
5979 #undef FLD
5980     return idesc;
5981   }
5982
5983  extract_sfmt_break:
5984   {
5985     const IDESC *idesc = &crisv10f_insn_data[itype];
5986     CGEN_INSN_INT insn = base_insn;
5987 #define FLD(f) abuf->fields.sfmt_break.f
5988     UINT f_u4;
5989
5990     f_u4 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5991
5992   /* Record the fields for the semantic handler.  */
5993   FLD (f_u4) = f_u4;
5994   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_break", "f_u4 0x%x", 'x', f_u4, (char *) 0));
5995
5996 #if WITH_PROFILE_MODEL_P
5997   /* Record the fields for profiling.  */
5998   if (PROFILE_MODEL_P (current_cpu))
5999     {
6000     }
6001 #endif
6002 #undef FLD
6003     return idesc;
6004   }
6005
6006  extract_sfmt_bound_m_b_m:
6007   {
6008     const IDESC *idesc = &crisv10f_insn_data[itype];
6009     CGEN_INSN_INT insn = base_insn;
6010 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
6011     UINT f_operand2;
6012     UINT f_memmode;
6013     UINT f_operand1;
6014
6015     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
6016     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
6017     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
6018
6019   /* Record the fields for the semantic handler.  */
6020   FLD (f_operand2) = f_operand2;
6021   FLD (f_operand1) = f_operand1;
6022   FLD (f_memmode) = f_memmode;
6023   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));
6024
6025 #if WITH_PROFILE_MODEL_P
6026   /* Record the fields for profiling.  */
6027   if (PROFILE_MODEL_P (current_cpu))
6028     {
6029       FLD (in_Rd) = f_operand2;
6030       FLD (in_Rs) = f_operand1;
6031       FLD (out_Rd) = f_operand2;
6032       FLD (out_Rs) = f_operand1;
6033     }
6034 #endif
6035 #undef FLD
6036     return idesc;
6037   }
6038
6039  extract_sfmt_bound_m_w_m:
6040   {
6041     const IDESC *idesc = &crisv10f_insn_data[itype];
6042     CGEN_INSN_INT insn = base_insn;
6043 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
6044     UINT f_operand2;
6045     UINT f_memmode;
6046     UINT f_operand1;
6047
6048     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
6049     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
6050     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
6051
6052   /* Record the fields for the semantic handler.  */
6053   FLD (f_operand2) = f_operand2;
6054   FLD (f_operand1) = f_operand1;
6055   FLD (f_memmode) = f_memmode;
6056   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));
6057
6058 #if WITH_PROFILE_MODEL_P
6059   /* Record the fields for profiling.  */
6060   if (PROFILE_MODEL_P (current_cpu))
6061     {
6062       FLD (in_Rd) = f_operand2;
6063       FLD (in_Rs) = f_operand1;
6064       FLD (out_Rd) = f_operand2;
6065       FLD (out_Rs) = f_operand1;
6066     }
6067 #endif
6068 #undef FLD
6069     return idesc;
6070   }
6071
6072  extract_sfmt_bound_m_d_m:
6073   {
6074     const IDESC *idesc = &crisv10f_insn_data[itype];
6075     CGEN_INSN_INT insn = base_insn;
6076 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
6077     UINT f_operand2;
6078     UINT f_memmode;
6079     UINT f_operand1;
6080
6081     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
6082     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
6083     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
6084
6085   /* Record the fields for the semantic handler.  */
6086   FLD (f_operand2) = f_operand2;
6087   FLD (f_operand1) = f_operand1;
6088   FLD (f_memmode) = f_memmode;
6089   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));
6090
6091 #if WITH_PROFILE_MODEL_P
6092   /* Record the fields for profiling.  */
6093   if (PROFILE_MODEL_P (current_cpu))
6094     {
6095       FLD (in_Rd) = f_operand2;
6096       FLD (in_Rs) = f_operand1;
6097       FLD (out_Rd) = f_operand2;
6098       FLD (out_Rs) = f_operand1;
6099     }
6100 #endif
6101 #undef FLD
6102     return idesc;
6103   }
6104
6105  extract_sfmt_bound_cb:
6106   {
6107     const IDESC *idesc = &crisv10f_insn_data[itype];
6108     CGEN_INSN_INT insn = base_insn;
6109 #define FLD(f) abuf->fields.sfmt_bound_cb.f
6110     INT f_indir_pc__byte;
6111     UINT f_operand2;
6112     /* Contents of trailing part of insn.  */
6113     UINT word_1;
6114
6115   word_1 = GETIMEMUSI (current_cpu, pc + 2);
6116     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
6117     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
6118
6119   /* Record the fields for the semantic handler.  */
6120   FLD (f_operand2) = f_operand2;
6121   FLD (f_indir_pc__byte) = f_indir_pc__byte;
6122   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));
6123
6124 #if WITH_PROFILE_MODEL_P
6125   /* Record the fields for profiling.  */
6126   if (PROFILE_MODEL_P (current_cpu))
6127     {
6128       FLD (in_Rd) = f_operand2;
6129       FLD (out_Rd) = f_operand2;
6130     }
6131 #endif
6132 #undef FLD
6133     return idesc;
6134   }
6135
6136  extract_sfmt_bound_cw:
6137   {
6138     const IDESC *idesc = &crisv10f_insn_data[itype];
6139     CGEN_INSN_INT insn = base_insn;
6140 #define FLD(f) abuf->fields.sfmt_bound_cw.f
6141     INT f_indir_pc__word;
6142     UINT f_operand2;
6143     /* Contents of trailing part of insn.  */
6144     UINT word_1;
6145
6146   word_1 = GETIMEMUSI (current_cpu, pc + 2);
6147     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
6148     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
6149
6150   /* Record the fields for the semantic handler.  */
6151   FLD (f_operand2) = f_operand2;
6152   FLD (f_indir_pc__word) = f_indir_pc__word;
6153   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));
6154
6155 #if WITH_PROFILE_MODEL_P
6156   /* Record the fields for profiling.  */
6157   if (PROFILE_MODEL_P (current_cpu))
6158     {
6159       FLD (in_Rd) = f_operand2;
6160       FLD (out_Rd) = f_operand2;
6161     }
6162 #endif
6163 #undef FLD
6164     return idesc;
6165   }
6166
6167  extract_sfmt_bound_cd:
6168   {
6169     const IDESC *idesc = &crisv10f_insn_data[itype];
6170     CGEN_INSN_INT insn = base_insn;
6171 #define FLD(f) abuf->fields.sfmt_bound_cd.f
6172     INT f_indir_pc__dword;
6173     UINT f_operand2;
6174     /* Contents of trailing part of insn.  */
6175     UINT word_1;
6176
6177   word_1 = GETIMEMUSI (current_cpu, pc + 2);
6178     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
6179     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
6180
6181   /* Record the fields for the semantic handler.  */
6182   FLD (f_operand2) = f_operand2;
6183   FLD (f_indir_pc__dword) = f_indir_pc__dword;
6184   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));
6185
6186 #if WITH_PROFILE_MODEL_P
6187   /* Record the fields for profiling.  */
6188   if (PROFILE_MODEL_P (current_cpu))
6189     {
6190       FLD (in_Rd) = f_operand2;
6191       FLD (out_Rd) = f_operand2;
6192     }
6193 #endif
6194 #undef FLD
6195     return idesc;
6196   }
6197
6198  extract_sfmt_scc:
6199   {
6200     const IDESC *idesc = &crisv10f_insn_data[itype];
6201     CGEN_INSN_INT insn = base_insn;
6202 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
6203     UINT f_operand2;
6204     UINT f_operand1;
6205
6206     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
6207     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
6208
6209   /* Record the fields for the semantic handler.  */
6210   FLD (f_operand2) = f_operand2;
6211   FLD (f_operand1) = f_operand1;
6212   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));
6213
6214 #if WITH_PROFILE_MODEL_P
6215   /* Record the fields for profiling.  */
6216   if (PROFILE_MODEL_P (current_cpu))
6217     {
6218       FLD (out_Rs) = f_operand1;
6219     }
6220 #endif
6221 #undef FLD
6222     return idesc;
6223   }
6224
6225  extract_sfmt_addoq:
6226   {
6227     const IDESC *idesc = &crisv10f_insn_data[itype];
6228     CGEN_INSN_INT insn = base_insn;
6229 #define FLD(f) abuf->fields.sfmt_addoq.f
6230     UINT f_operand2;
6231     INT f_s8;
6232
6233     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
6234     f_s8 = EXTRACT_LSB0_INT (insn, 16, 7, 8);
6235
6236   /* Record the fields for the semantic handler.  */
6237   FLD (f_operand2) = f_operand2;
6238   FLD (f_s8) = f_s8;
6239   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));
6240
6241 #if WITH_PROFILE_MODEL_P
6242   /* Record the fields for profiling.  */
6243   if (PROFILE_MODEL_P (current_cpu))
6244     {
6245       FLD (in_Rd) = f_operand2;
6246     }
6247 #endif
6248 #undef FLD
6249     return idesc;
6250   }
6251
6252  extract_sfmt_bdapqpc:
6253   {
6254     const IDESC *idesc = &crisv10f_insn_data[itype];
6255     CGEN_INSN_INT insn = base_insn;
6256 #define FLD(f) abuf->fields.sfmt_addoq.f
6257     INT f_s8;
6258
6259     f_s8 = EXTRACT_LSB0_INT (insn, 16, 7, 8);
6260
6261   /* Record the fields for the semantic handler.  */
6262   FLD (f_s8) = f_s8;
6263   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bdapqpc", "f_s8 0x%x", 'x', f_s8, (char *) 0));
6264
6265 #if WITH_PROFILE_MODEL_P
6266   /* Record the fields for profiling.  */
6267   if (PROFILE_MODEL_P (current_cpu))
6268     {
6269     }
6270 #endif
6271 #undef FLD
6272     return idesc;
6273   }
6274
6275  extract_sfmt_addo_m_b_m:
6276   {
6277     const IDESC *idesc = &crisv10f_insn_data[itype];
6278     CGEN_INSN_INT insn = base_insn;
6279 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
6280     UINT f_operand2;
6281     UINT f_memmode;
6282     UINT f_operand1;
6283
6284     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
6285     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
6286     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
6287
6288   /* Record the fields for the semantic handler.  */
6289   FLD (f_operand2) = f_operand2;
6290   FLD (f_operand1) = f_operand1;
6291   FLD (f_memmode) = f_memmode;
6292   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));
6293
6294 #if WITH_PROFILE_MODEL_P
6295   /* Record the fields for profiling.  */
6296   if (PROFILE_MODEL_P (current_cpu))
6297     {
6298       FLD (in_Rd) = f_operand2;
6299       FLD (in_Rs) = f_operand1;
6300       FLD (out_Rs) = f_operand1;
6301     }
6302 #endif
6303 #undef FLD
6304     return idesc;
6305   }
6306
6307  extract_sfmt_addo_m_w_m:
6308   {
6309     const IDESC *idesc = &crisv10f_insn_data[itype];
6310     CGEN_INSN_INT insn = base_insn;
6311 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
6312     UINT f_operand2;
6313     UINT f_memmode;
6314     UINT f_operand1;
6315
6316     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
6317     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
6318     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
6319
6320   /* Record the fields for the semantic handler.  */
6321   FLD (f_operand2) = f_operand2;
6322   FLD (f_operand1) = f_operand1;
6323   FLD (f_memmode) = f_memmode;
6324   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));
6325
6326 #if WITH_PROFILE_MODEL_P
6327   /* Record the fields for profiling.  */
6328   if (PROFILE_MODEL_P (current_cpu))
6329     {
6330       FLD (in_Rd) = f_operand2;
6331       FLD (in_Rs) = f_operand1;
6332       FLD (out_Rs) = f_operand1;
6333     }
6334 #endif
6335 #undef FLD
6336     return idesc;
6337   }
6338
6339  extract_sfmt_addo_m_d_m:
6340   {
6341     const IDESC *idesc = &crisv10f_insn_data[itype];
6342     CGEN_INSN_INT insn = base_insn;
6343 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
6344     UINT f_operand2;
6345     UINT f_memmode;
6346     UINT f_operand1;
6347
6348     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
6349     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
6350     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
6351
6352   /* Record the fields for the semantic handler.  */
6353   FLD (f_operand2) = f_operand2;
6354   FLD (f_operand1) = f_operand1;
6355   FLD (f_memmode) = f_memmode;
6356   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));
6357
6358 #if WITH_PROFILE_MODEL_P
6359   /* Record the fields for profiling.  */
6360   if (PROFILE_MODEL_P (current_cpu))
6361     {
6362       FLD (in_Rd) = f_operand2;
6363       FLD (in_Rs) = f_operand1;
6364       FLD (out_Rs) = f_operand1;
6365     }
6366 #endif
6367 #undef FLD
6368     return idesc;
6369   }
6370
6371  extract_sfmt_addo_cb:
6372   {
6373     const IDESC *idesc = &crisv10f_insn_data[itype];
6374     CGEN_INSN_INT insn = base_insn;
6375 #define FLD(f) abuf->fields.sfmt_bound_cb.f
6376     INT f_indir_pc__byte;
6377     UINT f_operand2;
6378     /* Contents of trailing part of insn.  */
6379     UINT word_1;
6380
6381   word_1 = GETIMEMUSI (current_cpu, pc + 2);
6382     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
6383     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
6384
6385   /* Record the fields for the semantic handler.  */
6386   FLD (f_operand2) = f_operand2;
6387   FLD (f_indir_pc__byte) = f_indir_pc__byte;
6388   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));
6389
6390 #if WITH_PROFILE_MODEL_P
6391   /* Record the fields for profiling.  */
6392   if (PROFILE_MODEL_P (current_cpu))
6393     {
6394       FLD (in_Rd) = f_operand2;
6395     }
6396 #endif
6397 #undef FLD
6398     return idesc;
6399   }
6400
6401  extract_sfmt_addo_cw:
6402   {
6403     const IDESC *idesc = &crisv10f_insn_data[itype];
6404     CGEN_INSN_INT insn = base_insn;
6405 #define FLD(f) abuf->fields.sfmt_bound_cw.f
6406     INT f_indir_pc__word;
6407     UINT f_operand2;
6408     /* Contents of trailing part of insn.  */
6409     UINT word_1;
6410
6411   word_1 = GETIMEMUSI (current_cpu, pc + 2);
6412     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
6413     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
6414
6415   /* Record the fields for the semantic handler.  */
6416   FLD (f_operand2) = f_operand2;
6417   FLD (f_indir_pc__word) = f_indir_pc__word;
6418   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));
6419
6420 #if WITH_PROFILE_MODEL_P
6421   /* Record the fields for profiling.  */
6422   if (PROFILE_MODEL_P (current_cpu))
6423     {
6424       FLD (in_Rd) = f_operand2;
6425     }
6426 #endif
6427 #undef FLD
6428     return idesc;
6429   }
6430
6431  extract_sfmt_addo_cd:
6432   {
6433     const IDESC *idesc = &crisv10f_insn_data[itype];
6434     CGEN_INSN_INT insn = base_insn;
6435 #define FLD(f) abuf->fields.sfmt_bound_cd.f
6436     INT f_indir_pc__dword;
6437     UINT f_operand2;
6438     /* Contents of trailing part of insn.  */
6439     UINT word_1;
6440
6441   word_1 = GETIMEMUSI (current_cpu, pc + 2);
6442     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
6443     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
6444
6445   /* Record the fields for the semantic handler.  */
6446   FLD (f_operand2) = f_operand2;
6447   FLD (f_indir_pc__dword) = f_indir_pc__dword;
6448   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));
6449
6450 #if WITH_PROFILE_MODEL_P
6451   /* Record the fields for profiling.  */
6452   if (PROFILE_MODEL_P (current_cpu))
6453     {
6454       FLD (in_Rd) = f_operand2;
6455     }
6456 #endif
6457 #undef FLD
6458     return idesc;
6459   }
6460
6461  extract_sfmt_dip_m:
6462   {
6463     const IDESC *idesc = &crisv10f_insn_data[itype];
6464     CGEN_INSN_INT insn = base_insn;
6465 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
6466     UINT f_memmode;
6467     UINT f_operand1;
6468
6469     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
6470     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
6471
6472   /* Record the fields for the semantic handler.  */
6473   FLD (f_operand1) = f_operand1;
6474   FLD (f_memmode) = f_memmode;
6475   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));
6476
6477 #if WITH_PROFILE_MODEL_P
6478   /* Record the fields for profiling.  */
6479   if (PROFILE_MODEL_P (current_cpu))
6480     {
6481       FLD (in_Rs) = f_operand1;
6482       FLD (out_Rs) = f_operand1;
6483     }
6484 #endif
6485 #undef FLD
6486     return idesc;
6487   }
6488
6489  extract_sfmt_dip_c:
6490   {
6491     const IDESC *idesc = &crisv10f_insn_data[itype];
6492     CGEN_INSN_INT insn = base_insn;
6493 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p8.f
6494     INT f_indir_pc__dword;
6495     /* Contents of trailing part of insn.  */
6496     UINT word_1;
6497
6498   word_1 = GETIMEMUSI (current_cpu, pc + 2);
6499     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
6500
6501   /* Record the fields for the semantic handler.  */
6502   FLD (f_indir_pc__dword) = f_indir_pc__dword;
6503   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dip_c", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
6504
6505 #undef FLD
6506     return idesc;
6507   }
6508
6509  extract_sfmt_addi_acr_b_r:
6510   {
6511     const IDESC *idesc = &crisv10f_insn_data[itype];
6512     CGEN_INSN_INT insn = base_insn;
6513 #define FLD(f) abuf->fields.sfmt_add_b_r.f
6514     UINT f_operand2;
6515     UINT f_operand1;
6516
6517     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
6518     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
6519
6520   /* Record the fields for the semantic handler.  */
6521   FLD (f_operand2) = f_operand2;
6522   FLD (f_operand1) = f_operand1;
6523   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));
6524
6525 #if WITH_PROFILE_MODEL_P
6526   /* Record the fields for profiling.  */
6527   if (PROFILE_MODEL_P (current_cpu))
6528     {
6529       FLD (in_Rd) = f_operand2;
6530       FLD (in_Rs) = f_operand1;
6531     }
6532 #endif
6533 #undef FLD
6534     return idesc;
6535   }
6536
6537  extract_sfmt_biap_pc_b_r:
6538   {
6539     const IDESC *idesc = &crisv10f_insn_data[itype];
6540     CGEN_INSN_INT insn = base_insn;
6541 #define FLD(f) abuf->fields.sfmt_addoq.f
6542     UINT f_operand2;
6543
6544     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
6545
6546   /* Record the fields for the semantic handler.  */
6547   FLD (f_operand2) = f_operand2;
6548   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_biap_pc_b_r", "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
6549
6550 #if WITH_PROFILE_MODEL_P
6551   /* Record the fields for profiling.  */
6552   if (PROFILE_MODEL_P (current_cpu))
6553     {
6554       FLD (in_Rd) = f_operand2;
6555     }
6556 #endif
6557 #undef FLD
6558     return idesc;
6559   }
6560
6561 }