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