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