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