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