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