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