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