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