1 /* Simulator instruction decoder for crisv32f.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright 1996-2005 Free Software Foundation, Inc.
7 This file is part of the GNU simulators.
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 3 of the License, or
12 (at your option) any later version.
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.
19 You should have received a copy of the GNU General Public License
20 along with this program. If not, see <http://www.gnu.org/licenses/>.
24 #define WANT_CPU crisv32f
25 #define WANT_CPU_CRISV32F
28 #include "sim-assert.h"
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];
38 /* Commas between elements are contained in the macros.
39 Some of these are conditionally compiled out. */
41 static const struct insn_sem crisv32f_insn_sem[] =
43 { VIRTUAL_INSN_X_INVALID, CRISV32F_INSN_X_INVALID, CRISV32F_SFMT_EMPTY },
44 { VIRTUAL_INSN_X_AFTER, CRISV32F_INSN_X_AFTER, CRISV32F_SFMT_EMPTY },
45 { VIRTUAL_INSN_X_BEFORE, CRISV32F_INSN_X_BEFORE, CRISV32F_SFMT_EMPTY },
46 { VIRTUAL_INSN_X_CTI_CHAIN, CRISV32F_INSN_X_CTI_CHAIN, CRISV32F_SFMT_EMPTY },
47 { VIRTUAL_INSN_X_CHAIN, CRISV32F_INSN_X_CHAIN, CRISV32F_SFMT_EMPTY },
48 { VIRTUAL_INSN_X_BEGIN, CRISV32F_INSN_X_BEGIN, CRISV32F_SFMT_EMPTY },
49 { CRIS_INSN_MOVE_B_R, CRISV32F_INSN_MOVE_B_R, CRISV32F_SFMT_MOVE_B_R },
50 { CRIS_INSN_MOVE_W_R, CRISV32F_INSN_MOVE_W_R, CRISV32F_SFMT_MOVE_B_R },
51 { CRIS_INSN_MOVE_D_R, CRISV32F_INSN_MOVE_D_R, CRISV32F_SFMT_MOVE_D_R },
52 { CRIS_INSN_MOVEQ, CRISV32F_INSN_MOVEQ, CRISV32F_SFMT_MOVEQ },
53 { CRIS_INSN_MOVS_B_R, CRISV32F_INSN_MOVS_B_R, CRISV32F_SFMT_MOVS_B_R },
54 { CRIS_INSN_MOVS_W_R, CRISV32F_INSN_MOVS_W_R, CRISV32F_SFMT_MOVS_B_R },
55 { CRIS_INSN_MOVU_B_R, CRISV32F_INSN_MOVU_B_R, CRISV32F_SFMT_MOVS_B_R },
56 { CRIS_INSN_MOVU_W_R, CRISV32F_INSN_MOVU_W_R, CRISV32F_SFMT_MOVS_B_R },
57 { CRIS_INSN_MOVECBR, CRISV32F_INSN_MOVECBR, CRISV32F_SFMT_MOVECBR },
58 { CRIS_INSN_MOVECWR, CRISV32F_INSN_MOVECWR, CRISV32F_SFMT_MOVECWR },
59 { CRIS_INSN_MOVECDR, CRISV32F_INSN_MOVECDR, CRISV32F_SFMT_MOVECDR },
60 { CRIS_INSN_MOVSCBR, CRISV32F_INSN_MOVSCBR, CRISV32F_SFMT_MOVSCBR },
61 { CRIS_INSN_MOVSCWR, CRISV32F_INSN_MOVSCWR, CRISV32F_SFMT_MOVSCWR },
62 { CRIS_INSN_MOVUCBR, CRISV32F_INSN_MOVUCBR, CRISV32F_SFMT_MOVUCBR },
63 { CRIS_INSN_MOVUCWR, CRISV32F_INSN_MOVUCWR, CRISV32F_SFMT_MOVUCWR },
64 { CRIS_INSN_ADDQ, CRISV32F_INSN_ADDQ, CRISV32F_SFMT_ADDQ },
65 { CRIS_INSN_SUBQ, CRISV32F_INSN_SUBQ, CRISV32F_SFMT_ADDQ },
66 { CRIS_INSN_CMP_R_B_R, CRISV32F_INSN_CMP_R_B_R, CRISV32F_SFMT_CMP_R_B_R },
67 { CRIS_INSN_CMP_R_W_R, CRISV32F_INSN_CMP_R_W_R, CRISV32F_SFMT_CMP_R_B_R },
68 { CRIS_INSN_CMP_R_D_R, CRISV32F_INSN_CMP_R_D_R, CRISV32F_SFMT_CMP_R_B_R },
69 { CRIS_INSN_CMP_M_B_M, CRISV32F_INSN_CMP_M_B_M, CRISV32F_SFMT_CMP_M_B_M },
70 { CRIS_INSN_CMP_M_W_M, CRISV32F_INSN_CMP_M_W_M, CRISV32F_SFMT_CMP_M_W_M },
71 { CRIS_INSN_CMP_M_D_M, CRISV32F_INSN_CMP_M_D_M, CRISV32F_SFMT_CMP_M_D_M },
72 { CRIS_INSN_CMPCBR, CRISV32F_INSN_CMPCBR, CRISV32F_SFMT_CMPCBR },
73 { CRIS_INSN_CMPCWR, CRISV32F_INSN_CMPCWR, CRISV32F_SFMT_CMPCWR },
74 { CRIS_INSN_CMPCDR, CRISV32F_INSN_CMPCDR, CRISV32F_SFMT_CMPCDR },
75 { CRIS_INSN_CMPQ, CRISV32F_INSN_CMPQ, CRISV32F_SFMT_CMPQ },
76 { CRIS_INSN_CMPS_M_B_M, CRISV32F_INSN_CMPS_M_B_M, CRISV32F_SFMT_CMP_M_B_M },
77 { CRIS_INSN_CMPS_M_W_M, CRISV32F_INSN_CMPS_M_W_M, CRISV32F_SFMT_CMP_M_W_M },
78 { CRIS_INSN_CMPSCBR, CRISV32F_INSN_CMPSCBR, CRISV32F_SFMT_CMPCBR },
79 { CRIS_INSN_CMPSCWR, CRISV32F_INSN_CMPSCWR, CRISV32F_SFMT_CMPCWR },
80 { CRIS_INSN_CMPU_M_B_M, CRISV32F_INSN_CMPU_M_B_M, CRISV32F_SFMT_CMP_M_B_M },
81 { CRIS_INSN_CMPU_M_W_M, CRISV32F_INSN_CMPU_M_W_M, CRISV32F_SFMT_CMP_M_W_M },
82 { CRIS_INSN_CMPUCBR, CRISV32F_INSN_CMPUCBR, CRISV32F_SFMT_CMPUCBR },
83 { CRIS_INSN_CMPUCWR, CRISV32F_INSN_CMPUCWR, CRISV32F_SFMT_CMPUCWR },
84 { CRIS_INSN_MOVE_M_B_M, CRISV32F_INSN_MOVE_M_B_M, CRISV32F_SFMT_MOVE_M_B_M },
85 { CRIS_INSN_MOVE_M_W_M, CRISV32F_INSN_MOVE_M_W_M, CRISV32F_SFMT_MOVE_M_W_M },
86 { CRIS_INSN_MOVE_M_D_M, CRISV32F_INSN_MOVE_M_D_M, CRISV32F_SFMT_MOVE_M_D_M },
87 { CRIS_INSN_MOVS_M_B_M, CRISV32F_INSN_MOVS_M_B_M, CRISV32F_SFMT_MOVS_M_B_M },
88 { CRIS_INSN_MOVS_M_W_M, CRISV32F_INSN_MOVS_M_W_M, CRISV32F_SFMT_MOVS_M_W_M },
89 { CRIS_INSN_MOVU_M_B_M, CRISV32F_INSN_MOVU_M_B_M, CRISV32F_SFMT_MOVS_M_B_M },
90 { CRIS_INSN_MOVU_M_W_M, CRISV32F_INSN_MOVU_M_W_M, CRISV32F_SFMT_MOVS_M_W_M },
91 { CRIS_INSN_MOVE_R_SPRV32, CRISV32F_INSN_MOVE_R_SPRV32, CRISV32F_SFMT_MOVE_R_SPRV32 },
92 { CRIS_INSN_MOVE_SPR_RV32, CRISV32F_INSN_MOVE_SPR_RV32, CRISV32F_SFMT_MOVE_SPR_RV32 },
93 { CRIS_INSN_MOVE_M_SPRV32, CRISV32F_INSN_MOVE_M_SPRV32, CRISV32F_SFMT_MOVE_M_SPRV32 },
94 { CRIS_INSN_MOVE_C_SPRV32_P2, CRISV32F_INSN_MOVE_C_SPRV32_P2, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
95 { CRIS_INSN_MOVE_C_SPRV32_P3, CRISV32F_INSN_MOVE_C_SPRV32_P3, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
96 { CRIS_INSN_MOVE_C_SPRV32_P5, CRISV32F_INSN_MOVE_C_SPRV32_P5, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
97 { CRIS_INSN_MOVE_C_SPRV32_P6, CRISV32F_INSN_MOVE_C_SPRV32_P6, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
98 { CRIS_INSN_MOVE_C_SPRV32_P7, CRISV32F_INSN_MOVE_C_SPRV32_P7, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
99 { CRIS_INSN_MOVE_C_SPRV32_P9, CRISV32F_INSN_MOVE_C_SPRV32_P9, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
100 { CRIS_INSN_MOVE_C_SPRV32_P10, CRISV32F_INSN_MOVE_C_SPRV32_P10, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
101 { CRIS_INSN_MOVE_C_SPRV32_P11, CRISV32F_INSN_MOVE_C_SPRV32_P11, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
102 { CRIS_INSN_MOVE_C_SPRV32_P12, CRISV32F_INSN_MOVE_C_SPRV32_P12, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
103 { CRIS_INSN_MOVE_C_SPRV32_P13, CRISV32F_INSN_MOVE_C_SPRV32_P13, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
104 { CRIS_INSN_MOVE_C_SPRV32_P14, CRISV32F_INSN_MOVE_C_SPRV32_P14, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
105 { CRIS_INSN_MOVE_C_SPRV32_P15, CRISV32F_INSN_MOVE_C_SPRV32_P15, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
106 { CRIS_INSN_MOVE_SPR_MV32, CRISV32F_INSN_MOVE_SPR_MV32, CRISV32F_SFMT_MOVE_SPR_MV32 },
107 { CRIS_INSN_MOVE_SS_R, CRISV32F_INSN_MOVE_SS_R, CRISV32F_SFMT_MOVE_SS_R },
108 { CRIS_INSN_MOVE_R_SS, CRISV32F_INSN_MOVE_R_SS, CRISV32F_SFMT_MOVE_R_SS },
109 { CRIS_INSN_MOVEM_R_M_V32, CRISV32F_INSN_MOVEM_R_M_V32, CRISV32F_SFMT_MOVEM_R_M_V32 },
110 { CRIS_INSN_MOVEM_M_R_V32, CRISV32F_INSN_MOVEM_M_R_V32, CRISV32F_SFMT_MOVEM_M_R_V32 },
111 { CRIS_INSN_ADD_B_R, CRISV32F_INSN_ADD_B_R, CRISV32F_SFMT_ADD_B_R },
112 { CRIS_INSN_ADD_W_R, CRISV32F_INSN_ADD_W_R, CRISV32F_SFMT_ADD_B_R },
113 { CRIS_INSN_ADD_D_R, CRISV32F_INSN_ADD_D_R, CRISV32F_SFMT_ADD_D_R },
114 { CRIS_INSN_ADD_M_B_M, CRISV32F_INSN_ADD_M_B_M, CRISV32F_SFMT_ADD_M_B_M },
115 { CRIS_INSN_ADD_M_W_M, CRISV32F_INSN_ADD_M_W_M, CRISV32F_SFMT_ADD_M_W_M },
116 { CRIS_INSN_ADD_M_D_M, CRISV32F_INSN_ADD_M_D_M, CRISV32F_SFMT_ADD_M_D_M },
117 { CRIS_INSN_ADDCBR, CRISV32F_INSN_ADDCBR, CRISV32F_SFMT_ADDCBR },
118 { CRIS_INSN_ADDCWR, CRISV32F_INSN_ADDCWR, CRISV32F_SFMT_ADDCWR },
119 { CRIS_INSN_ADDCDR, CRISV32F_INSN_ADDCDR, CRISV32F_SFMT_ADDCDR },
120 { CRIS_INSN_ADDS_B_R, CRISV32F_INSN_ADDS_B_R, CRISV32F_SFMT_ADD_D_R },
121 { CRIS_INSN_ADDS_W_R, CRISV32F_INSN_ADDS_W_R, CRISV32F_SFMT_ADD_D_R },
122 { CRIS_INSN_ADDS_M_B_M, CRISV32F_INSN_ADDS_M_B_M, CRISV32F_SFMT_ADDS_M_B_M },
123 { CRIS_INSN_ADDS_M_W_M, CRISV32F_INSN_ADDS_M_W_M, CRISV32F_SFMT_ADDS_M_W_M },
124 { CRIS_INSN_ADDSCBR, CRISV32F_INSN_ADDSCBR, CRISV32F_SFMT_ADDSCBR },
125 { CRIS_INSN_ADDSCWR, CRISV32F_INSN_ADDSCWR, CRISV32F_SFMT_ADDSCWR },
126 { CRIS_INSN_ADDU_B_R, CRISV32F_INSN_ADDU_B_R, CRISV32F_SFMT_ADD_D_R },
127 { CRIS_INSN_ADDU_W_R, CRISV32F_INSN_ADDU_W_R, CRISV32F_SFMT_ADD_D_R },
128 { CRIS_INSN_ADDU_M_B_M, CRISV32F_INSN_ADDU_M_B_M, CRISV32F_SFMT_ADDS_M_B_M },
129 { CRIS_INSN_ADDU_M_W_M, CRISV32F_INSN_ADDU_M_W_M, CRISV32F_SFMT_ADDS_M_W_M },
130 { CRIS_INSN_ADDUCBR, CRISV32F_INSN_ADDUCBR, CRISV32F_SFMT_ADDSCBR },
131 { CRIS_INSN_ADDUCWR, CRISV32F_INSN_ADDUCWR, CRISV32F_SFMT_ADDSCWR },
132 { CRIS_INSN_SUB_B_R, CRISV32F_INSN_SUB_B_R, CRISV32F_SFMT_ADD_B_R },
133 { CRIS_INSN_SUB_W_R, CRISV32F_INSN_SUB_W_R, CRISV32F_SFMT_ADD_B_R },
134 { CRIS_INSN_SUB_D_R, CRISV32F_INSN_SUB_D_R, CRISV32F_SFMT_ADD_D_R },
135 { CRIS_INSN_SUB_M_B_M, CRISV32F_INSN_SUB_M_B_M, CRISV32F_SFMT_ADD_M_B_M },
136 { CRIS_INSN_SUB_M_W_M, CRISV32F_INSN_SUB_M_W_M, CRISV32F_SFMT_ADD_M_W_M },
137 { CRIS_INSN_SUB_M_D_M, CRISV32F_INSN_SUB_M_D_M, CRISV32F_SFMT_ADD_M_D_M },
138 { CRIS_INSN_SUBCBR, CRISV32F_INSN_SUBCBR, CRISV32F_SFMT_ADDCBR },
139 { CRIS_INSN_SUBCWR, CRISV32F_INSN_SUBCWR, CRISV32F_SFMT_ADDCWR },
140 { CRIS_INSN_SUBCDR, CRISV32F_INSN_SUBCDR, CRISV32F_SFMT_ADDCDR },
141 { CRIS_INSN_SUBS_B_R, CRISV32F_INSN_SUBS_B_R, CRISV32F_SFMT_ADD_D_R },
142 { CRIS_INSN_SUBS_W_R, CRISV32F_INSN_SUBS_W_R, CRISV32F_SFMT_ADD_D_R },
143 { CRIS_INSN_SUBS_M_B_M, CRISV32F_INSN_SUBS_M_B_M, CRISV32F_SFMT_ADDS_M_B_M },
144 { CRIS_INSN_SUBS_M_W_M, CRISV32F_INSN_SUBS_M_W_M, CRISV32F_SFMT_ADDS_M_W_M },
145 { CRIS_INSN_SUBSCBR, CRISV32F_INSN_SUBSCBR, CRISV32F_SFMT_ADDSCBR },
146 { CRIS_INSN_SUBSCWR, CRISV32F_INSN_SUBSCWR, CRISV32F_SFMT_ADDSCWR },
147 { CRIS_INSN_SUBU_B_R, CRISV32F_INSN_SUBU_B_R, CRISV32F_SFMT_ADD_D_R },
148 { CRIS_INSN_SUBU_W_R, CRISV32F_INSN_SUBU_W_R, CRISV32F_SFMT_ADD_D_R },
149 { CRIS_INSN_SUBU_M_B_M, CRISV32F_INSN_SUBU_M_B_M, CRISV32F_SFMT_ADDS_M_B_M },
150 { CRIS_INSN_SUBU_M_W_M, CRISV32F_INSN_SUBU_M_W_M, CRISV32F_SFMT_ADDS_M_W_M },
151 { CRIS_INSN_SUBUCBR, CRISV32F_INSN_SUBUCBR, CRISV32F_SFMT_ADDSCBR },
152 { CRIS_INSN_SUBUCWR, CRISV32F_INSN_SUBUCWR, CRISV32F_SFMT_ADDSCWR },
153 { CRIS_INSN_ADDC_R, CRISV32F_INSN_ADDC_R, CRISV32F_SFMT_ADD_D_R },
154 { CRIS_INSN_ADDC_M, CRISV32F_INSN_ADDC_M, CRISV32F_SFMT_ADDC_M },
155 { CRIS_INSN_ADDC_C, CRISV32F_INSN_ADDC_C, CRISV32F_SFMT_ADDCDR },
156 { CRIS_INSN_LAPC_D, CRISV32F_INSN_LAPC_D, CRISV32F_SFMT_LAPC_D },
157 { CRIS_INSN_LAPCQ, CRISV32F_INSN_LAPCQ, CRISV32F_SFMT_LAPCQ },
158 { CRIS_INSN_ADDI_B_R, CRISV32F_INSN_ADDI_B_R, CRISV32F_SFMT_ADDI_B_R },
159 { CRIS_INSN_ADDI_W_R, CRISV32F_INSN_ADDI_W_R, CRISV32F_SFMT_ADDI_B_R },
160 { CRIS_INSN_ADDI_D_R, CRISV32F_INSN_ADDI_D_R, CRISV32F_SFMT_ADDI_B_R },
161 { CRIS_INSN_NEG_B_R, CRISV32F_INSN_NEG_B_R, CRISV32F_SFMT_NEG_B_R },
162 { CRIS_INSN_NEG_W_R, CRISV32F_INSN_NEG_W_R, CRISV32F_SFMT_NEG_B_R },
163 { CRIS_INSN_NEG_D_R, CRISV32F_INSN_NEG_D_R, CRISV32F_SFMT_NEG_D_R },
164 { CRIS_INSN_TEST_M_B_M, CRISV32F_INSN_TEST_M_B_M, CRISV32F_SFMT_TEST_M_B_M },
165 { CRIS_INSN_TEST_M_W_M, CRISV32F_INSN_TEST_M_W_M, CRISV32F_SFMT_TEST_M_W_M },
166 { CRIS_INSN_TEST_M_D_M, CRISV32F_INSN_TEST_M_D_M, CRISV32F_SFMT_TEST_M_D_M },
167 { CRIS_INSN_MOVE_R_M_B_M, CRISV32F_INSN_MOVE_R_M_B_M, CRISV32F_SFMT_MOVE_R_M_B_M },
168 { CRIS_INSN_MOVE_R_M_W_M, CRISV32F_INSN_MOVE_R_M_W_M, CRISV32F_SFMT_MOVE_R_M_W_M },
169 { CRIS_INSN_MOVE_R_M_D_M, CRISV32F_INSN_MOVE_R_M_D_M, CRISV32F_SFMT_MOVE_R_M_D_M },
170 { CRIS_INSN_MULS_B, CRISV32F_INSN_MULS_B, CRISV32F_SFMT_MULS_B },
171 { CRIS_INSN_MULS_W, CRISV32F_INSN_MULS_W, CRISV32F_SFMT_MULS_B },
172 { CRIS_INSN_MULS_D, CRISV32F_INSN_MULS_D, CRISV32F_SFMT_MULS_B },
173 { CRIS_INSN_MULU_B, CRISV32F_INSN_MULU_B, CRISV32F_SFMT_MULS_B },
174 { CRIS_INSN_MULU_W, CRISV32F_INSN_MULU_W, CRISV32F_SFMT_MULS_B },
175 { CRIS_INSN_MULU_D, CRISV32F_INSN_MULU_D, CRISV32F_SFMT_MULS_B },
176 { CRIS_INSN_MCP, CRISV32F_INSN_MCP, CRISV32F_SFMT_MCP },
177 { CRIS_INSN_DSTEP, CRISV32F_INSN_DSTEP, CRISV32F_SFMT_DSTEP },
178 { CRIS_INSN_ABS, CRISV32F_INSN_ABS, CRISV32F_SFMT_MOVS_B_R },
179 { CRIS_INSN_AND_B_R, CRISV32F_INSN_AND_B_R, CRISV32F_SFMT_AND_B_R },
180 { CRIS_INSN_AND_W_R, CRISV32F_INSN_AND_W_R, CRISV32F_SFMT_AND_W_R },
181 { CRIS_INSN_AND_D_R, CRISV32F_INSN_AND_D_R, CRISV32F_SFMT_AND_D_R },
182 { CRIS_INSN_AND_M_B_M, CRISV32F_INSN_AND_M_B_M, CRISV32F_SFMT_AND_M_B_M },
183 { CRIS_INSN_AND_M_W_M, CRISV32F_INSN_AND_M_W_M, CRISV32F_SFMT_AND_M_W_M },
184 { CRIS_INSN_AND_M_D_M, CRISV32F_INSN_AND_M_D_M, CRISV32F_SFMT_AND_M_D_M },
185 { CRIS_INSN_ANDCBR, CRISV32F_INSN_ANDCBR, CRISV32F_SFMT_ANDCBR },
186 { CRIS_INSN_ANDCWR, CRISV32F_INSN_ANDCWR, CRISV32F_SFMT_ANDCWR },
187 { CRIS_INSN_ANDCDR, CRISV32F_INSN_ANDCDR, CRISV32F_SFMT_ANDCDR },
188 { CRIS_INSN_ANDQ, CRISV32F_INSN_ANDQ, CRISV32F_SFMT_ANDQ },
189 { CRIS_INSN_ORR_B_R, CRISV32F_INSN_ORR_B_R, CRISV32F_SFMT_AND_B_R },
190 { CRIS_INSN_ORR_W_R, CRISV32F_INSN_ORR_W_R, CRISV32F_SFMT_AND_W_R },
191 { CRIS_INSN_ORR_D_R, CRISV32F_INSN_ORR_D_R, CRISV32F_SFMT_AND_D_R },
192 { CRIS_INSN_OR_M_B_M, CRISV32F_INSN_OR_M_B_M, CRISV32F_SFMT_AND_M_B_M },
193 { CRIS_INSN_OR_M_W_M, CRISV32F_INSN_OR_M_W_M, CRISV32F_SFMT_AND_M_W_M },
194 { CRIS_INSN_OR_M_D_M, CRISV32F_INSN_OR_M_D_M, CRISV32F_SFMT_AND_M_D_M },
195 { CRIS_INSN_ORCBR, CRISV32F_INSN_ORCBR, CRISV32F_SFMT_ANDCBR },
196 { CRIS_INSN_ORCWR, CRISV32F_INSN_ORCWR, CRISV32F_SFMT_ANDCWR },
197 { CRIS_INSN_ORCDR, CRISV32F_INSN_ORCDR, CRISV32F_SFMT_ANDCDR },
198 { CRIS_INSN_ORQ, CRISV32F_INSN_ORQ, CRISV32F_SFMT_ANDQ },
199 { CRIS_INSN_XOR, CRISV32F_INSN_XOR, CRISV32F_SFMT_DSTEP },
200 { CRIS_INSN_SWAP, CRISV32F_INSN_SWAP, CRISV32F_SFMT_SWAP },
201 { CRIS_INSN_ASRR_B_R, CRISV32F_INSN_ASRR_B_R, CRISV32F_SFMT_ASRR_B_R },
202 { CRIS_INSN_ASRR_W_R, CRISV32F_INSN_ASRR_W_R, CRISV32F_SFMT_ASRR_B_R },
203 { CRIS_INSN_ASRR_D_R, CRISV32F_INSN_ASRR_D_R, CRISV32F_SFMT_AND_D_R },
204 { CRIS_INSN_ASRQ, CRISV32F_INSN_ASRQ, CRISV32F_SFMT_ASRQ },
205 { CRIS_INSN_LSRR_B_R, CRISV32F_INSN_LSRR_B_R, CRISV32F_SFMT_LSRR_B_R },
206 { CRIS_INSN_LSRR_W_R, CRISV32F_INSN_LSRR_W_R, CRISV32F_SFMT_LSRR_B_R },
207 { CRIS_INSN_LSRR_D_R, CRISV32F_INSN_LSRR_D_R, CRISV32F_SFMT_LSRR_D_R },
208 { CRIS_INSN_LSRQ, CRISV32F_INSN_LSRQ, CRISV32F_SFMT_ASRQ },
209 { CRIS_INSN_LSLR_B_R, CRISV32F_INSN_LSLR_B_R, CRISV32F_SFMT_LSRR_B_R },
210 { CRIS_INSN_LSLR_W_R, CRISV32F_INSN_LSLR_W_R, CRISV32F_SFMT_LSRR_B_R },
211 { CRIS_INSN_LSLR_D_R, CRISV32F_INSN_LSLR_D_R, CRISV32F_SFMT_LSRR_D_R },
212 { CRIS_INSN_LSLQ, CRISV32F_INSN_LSLQ, CRISV32F_SFMT_ASRQ },
213 { CRIS_INSN_BTST, CRISV32F_INSN_BTST, CRISV32F_SFMT_BTST },
214 { CRIS_INSN_BTSTQ, CRISV32F_INSN_BTSTQ, CRISV32F_SFMT_BTSTQ },
215 { CRIS_INSN_SETF, CRISV32F_INSN_SETF, CRISV32F_SFMT_SETF },
216 { CRIS_INSN_CLEARF, CRISV32F_INSN_CLEARF, CRISV32F_SFMT_SETF },
217 { CRIS_INSN_RFE, CRISV32F_INSN_RFE, CRISV32F_SFMT_RFE },
218 { CRIS_INSN_SFE, CRISV32F_INSN_SFE, CRISV32F_SFMT_SFE },
219 { CRIS_INSN_RFG, CRISV32F_INSN_RFG, CRISV32F_SFMT_RFG },
220 { CRIS_INSN_RFN, CRISV32F_INSN_RFN, CRISV32F_SFMT_RFN },
221 { CRIS_INSN_HALT, CRISV32F_INSN_HALT, CRISV32F_SFMT_HALT },
222 { CRIS_INSN_BCC_B, CRISV32F_INSN_BCC_B, CRISV32F_SFMT_BCC_B },
223 { CRIS_INSN_BA_B, CRISV32F_INSN_BA_B, CRISV32F_SFMT_BA_B },
224 { CRIS_INSN_BCC_W, CRISV32F_INSN_BCC_W, CRISV32F_SFMT_BCC_W },
225 { CRIS_INSN_BA_W, CRISV32F_INSN_BA_W, CRISV32F_SFMT_BA_W },
226 { CRIS_INSN_JAS_R, CRISV32F_INSN_JAS_R, CRISV32F_SFMT_JAS_R },
227 { CRIS_INSN_JAS_C, CRISV32F_INSN_JAS_C, CRISV32F_SFMT_JAS_C },
228 { CRIS_INSN_JUMP_P, CRISV32F_INSN_JUMP_P, CRISV32F_SFMT_JUMP_P },
229 { CRIS_INSN_BAS_C, CRISV32F_INSN_BAS_C, CRISV32F_SFMT_BAS_C },
230 { CRIS_INSN_JASC_R, CRISV32F_INSN_JASC_R, CRISV32F_SFMT_JASC_R },
231 { CRIS_INSN_JASC_C, CRISV32F_INSN_JASC_C, CRISV32F_SFMT_JAS_C },
232 { CRIS_INSN_BASC_C, CRISV32F_INSN_BASC_C, CRISV32F_SFMT_BAS_C },
233 { CRIS_INSN_BREAK, CRISV32F_INSN_BREAK, CRISV32F_SFMT_BREAK },
234 { CRIS_INSN_BOUND_R_B_R, CRISV32F_INSN_BOUND_R_B_R, CRISV32F_SFMT_DSTEP },
235 { CRIS_INSN_BOUND_R_W_R, CRISV32F_INSN_BOUND_R_W_R, CRISV32F_SFMT_DSTEP },
236 { CRIS_INSN_BOUND_R_D_R, CRISV32F_INSN_BOUND_R_D_R, CRISV32F_SFMT_DSTEP },
237 { CRIS_INSN_BOUND_CB, CRISV32F_INSN_BOUND_CB, CRISV32F_SFMT_BOUND_CB },
238 { CRIS_INSN_BOUND_CW, CRISV32F_INSN_BOUND_CW, CRISV32F_SFMT_BOUND_CW },
239 { CRIS_INSN_BOUND_CD, CRISV32F_INSN_BOUND_CD, CRISV32F_SFMT_BOUND_CD },
240 { CRIS_INSN_SCC, CRISV32F_INSN_SCC, CRISV32F_SFMT_SCC },
241 { CRIS_INSN_LZ, CRISV32F_INSN_LZ, CRISV32F_SFMT_MOVS_B_R },
242 { CRIS_INSN_ADDOQ, CRISV32F_INSN_ADDOQ, CRISV32F_SFMT_ADDOQ },
243 { CRIS_INSN_ADDO_M_B_M, CRISV32F_INSN_ADDO_M_B_M, CRISV32F_SFMT_ADDO_M_B_M },
244 { CRIS_INSN_ADDO_M_W_M, CRISV32F_INSN_ADDO_M_W_M, CRISV32F_SFMT_ADDO_M_W_M },
245 { CRIS_INSN_ADDO_M_D_M, CRISV32F_INSN_ADDO_M_D_M, CRISV32F_SFMT_ADDO_M_D_M },
246 { CRIS_INSN_ADDO_CB, CRISV32F_INSN_ADDO_CB, CRISV32F_SFMT_ADDO_CB },
247 { CRIS_INSN_ADDO_CW, CRISV32F_INSN_ADDO_CW, CRISV32F_SFMT_ADDO_CW },
248 { CRIS_INSN_ADDO_CD, CRISV32F_INSN_ADDO_CD, CRISV32F_SFMT_ADDO_CD },
249 { CRIS_INSN_ADDI_ACR_B_R, CRISV32F_INSN_ADDI_ACR_B_R, CRISV32F_SFMT_ADDI_ACR_B_R },
250 { CRIS_INSN_ADDI_ACR_W_R, CRISV32F_INSN_ADDI_ACR_W_R, CRISV32F_SFMT_ADDI_ACR_B_R },
251 { CRIS_INSN_ADDI_ACR_D_R, CRISV32F_INSN_ADDI_ACR_D_R, CRISV32F_SFMT_ADDI_ACR_B_R },
252 { CRIS_INSN_FIDXI, CRISV32F_INSN_FIDXI, CRISV32F_SFMT_FIDXI },
253 { CRIS_INSN_FTAGI, CRISV32F_INSN_FTAGI, CRISV32F_SFMT_FIDXI },
254 { CRIS_INSN_FIDXD, CRISV32F_INSN_FIDXD, CRISV32F_SFMT_FIDXI },
255 { CRIS_INSN_FTAGD, CRISV32F_INSN_FTAGD, CRISV32F_SFMT_FIDXI },
258 static const struct insn_sem crisv32f_insn_sem_invalid = {
259 VIRTUAL_INSN_X_INVALID, CRISV32F_INSN_X_INVALID, CRISV32F_SFMT_EMPTY
262 /* Initialize an IDESC from the compile-time computable parts. */
265 init_idesc (SIM_CPU *cpu, IDESC *id, const struct insn_sem *t)
267 const CGEN_INSN *insn_table = CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu))->init_entries;
271 if ((int) t->type <= 0)
272 id->idata = & cgen_virtual_insn_table[- (int) t->type];
274 id->idata = & insn_table[t->type];
275 id->attrs = CGEN_INSN_ATTRS (id->idata);
276 /* Oh my god, a magic number. */
277 id->length = CGEN_INSN_BITSIZE (id->idata) / 8;
279 #if WITH_PROFILE_MODEL_P
280 id->timing = & MODEL_TIMING (CPU_MODEL (cpu)) [t->index];
282 SIM_DESC sd = CPU_STATE (cpu);
283 SIM_ASSERT (t->index == id->timing->num);
287 /* Semantic pointers are initialized elsewhere. */
290 /* Initialize the instruction descriptor table. */
293 crisv32f_init_idesc_table (SIM_CPU *cpu)
296 const struct insn_sem *t,*tend;
297 int tabsize = CRISV32F_INSN__MAX;
298 IDESC *table = crisv32f_insn_data;
300 memset (table, 0, tabsize * sizeof (IDESC));
302 /* First set all entries to the `invalid insn'. */
303 t = & crisv32f_insn_sem_invalid;
304 for (id = table, tabend = table + tabsize; id < tabend; ++id)
305 init_idesc (cpu, id, t);
307 /* Now fill in the values for the chosen cpu. */
308 for (t = crisv32f_insn_sem, tend = t + sizeof (crisv32f_insn_sem) / sizeof (*t);
311 init_idesc (cpu, & table[t->index], t);
314 /* Link the IDESC table into the cpu. */
315 CPU_IDESC (cpu) = table;
318 /* Given an instruction, return a pointer to its IDESC entry. */
321 crisv32f_decode (SIM_CPU *current_cpu, IADDR pc,
322 CGEN_INSN_INT base_insn,
325 /* Result of decoder. */
326 CRISV32F_INSN_TYPE itype;
329 CGEN_INSN_INT insn = base_insn;
332 unsigned int val = (((insn >> 4) & (255 << 0)));
335 case 0 : /* fall through */
336 case 1 : /* fall through */
337 case 2 : /* fall through */
338 case 3 : /* fall through */
339 case 4 : /* fall through */
340 case 5 : /* fall through */
341 case 6 : /* fall through */
342 case 7 : /* fall through */
343 case 8 : /* fall through */
344 case 9 : /* fall through */
345 case 10 : /* fall through */
346 case 11 : /* fall through */
347 case 12 : /* fall through */
348 case 13 : /* fall through */
349 case 14 : /* fall through */
352 unsigned int val = (((insn >> 12) & (15 << 0)));
355 case 0 : /* fall through */
356 case 1 : /* fall through */
357 case 2 : /* fall through */
358 case 3 : /* fall through */
359 case 4 : /* fall through */
360 case 5 : /* fall through */
361 case 6 : /* fall through */
362 case 7 : /* fall through */
363 case 8 : /* fall through */
364 case 9 : /* fall through */
365 case 10 : /* fall through */
366 case 11 : /* fall through */
367 case 12 : /* fall through */
368 case 13 : /* fall through */
370 if ((base_insn & 0xf00) == 0x0)
371 { itype = CRISV32F_INSN_BCC_B; goto extract_sfmt_bcc_b; }
372 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
374 if ((base_insn & 0xff00) == 0xe000)
375 { itype = CRISV32F_INSN_BA_B; goto extract_sfmt_ba_b; }
376 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
377 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
380 case 16 : /* fall through */
381 case 17 : /* fall through */
382 case 18 : /* fall through */
383 case 19 : /* fall through */
384 case 20 : /* fall through */
385 case 21 : /* fall through */
386 case 22 : /* fall through */
387 case 23 : /* fall through */
388 case 24 : /* fall through */
389 case 25 : /* fall through */
390 case 26 : /* fall through */
391 case 27 : /* fall through */
392 case 28 : /* fall through */
393 case 29 : /* fall through */
394 case 30 : /* fall through */
396 if ((base_insn & 0xf00) == 0x100)
397 { itype = CRISV32F_INSN_ADDOQ; goto extract_sfmt_addoq; }
398 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
399 case 32 : /* fall through */
400 case 33 : /* fall through */
401 case 34 : /* fall through */
403 if ((base_insn & 0xfc0) == 0x200)
404 { itype = CRISV32F_INSN_ADDQ; goto extract_sfmt_addq; }
405 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
406 case 36 : /* fall through */
407 case 37 : /* fall through */
408 case 38 : /* fall through */
410 if ((base_insn & 0xfc0) == 0x240)
411 { itype = CRISV32F_INSN_MOVEQ; goto extract_sfmt_moveq; }
412 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
413 case 40 : /* fall through */
414 case 41 : /* fall through */
415 case 42 : /* fall through */
417 if ((base_insn & 0xfc0) == 0x280)
418 { itype = CRISV32F_INSN_SUBQ; goto extract_sfmt_addq; }
419 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
420 case 44 : /* fall through */
421 case 45 : /* fall through */
422 case 46 : /* fall through */
424 if ((base_insn & 0xfc0) == 0x2c0)
425 { itype = CRISV32F_INSN_CMPQ; goto extract_sfmt_cmpq; }
426 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
427 case 48 : /* fall through */
428 case 49 : /* fall through */
429 case 50 : /* fall through */
431 if ((base_insn & 0xfc0) == 0x300)
432 { itype = CRISV32F_INSN_ANDQ; goto extract_sfmt_andq; }
433 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
434 case 52 : /* fall through */
435 case 53 : /* fall through */
436 case 54 : /* fall through */
438 if ((base_insn & 0xfc0) == 0x340)
439 { itype = CRISV32F_INSN_ORQ; goto extract_sfmt_andq; }
440 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
441 case 56 : /* fall through */
443 if ((base_insn & 0xfe0) == 0x380)
444 { itype = CRISV32F_INSN_BTSTQ; goto extract_sfmt_btstq; }
445 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
446 case 58 : /* fall through */
448 if ((base_insn & 0xfe0) == 0x3a0)
449 { itype = CRISV32F_INSN_ASRQ; goto extract_sfmt_asrq; }
450 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
451 case 60 : /* fall through */
453 if ((base_insn & 0xfe0) == 0x3c0)
454 { itype = CRISV32F_INSN_LSLQ; goto extract_sfmt_asrq; }
455 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
456 case 62 : /* fall through */
458 if ((base_insn & 0xfe0) == 0x3e0)
459 { itype = CRISV32F_INSN_LSRQ; goto extract_sfmt_asrq; }
460 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
462 if ((base_insn & 0xff0) == 0x400)
463 { itype = CRISV32F_INSN_ADDU_B_R; goto extract_sfmt_add_d_r; }
464 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
466 if ((base_insn & 0xff0) == 0x410)
467 { itype = CRISV32F_INSN_ADDU_W_R; goto extract_sfmt_add_d_r; }
468 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
470 if ((base_insn & 0xff0) == 0x420)
471 { itype = CRISV32F_INSN_ADDS_B_R; goto extract_sfmt_add_d_r; }
472 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
474 if ((base_insn & 0xff0) == 0x430)
475 { itype = CRISV32F_INSN_ADDS_W_R; goto extract_sfmt_add_d_r; }
476 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
478 if ((base_insn & 0xff0) == 0x440)
479 { itype = CRISV32F_INSN_MOVU_B_R; goto extract_sfmt_movs_b_r; }
480 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
482 if ((base_insn & 0xff0) == 0x450)
483 { itype = CRISV32F_INSN_MOVU_W_R; goto extract_sfmt_movs_b_r; }
484 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
486 if ((base_insn & 0xff0) == 0x460)
487 { itype = CRISV32F_INSN_MOVS_B_R; goto extract_sfmt_movs_b_r; }
488 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
490 if ((base_insn & 0xff0) == 0x470)
491 { itype = CRISV32F_INSN_MOVS_W_R; goto extract_sfmt_movs_b_r; }
492 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
494 if ((base_insn & 0xff0) == 0x480)
495 { itype = CRISV32F_INSN_SUBU_B_R; goto extract_sfmt_add_d_r; }
496 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
498 if ((base_insn & 0xff0) == 0x490)
499 { itype = CRISV32F_INSN_SUBU_W_R; goto extract_sfmt_add_d_r; }
500 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
502 if ((base_insn & 0xff0) == 0x4a0)
503 { itype = CRISV32F_INSN_SUBS_B_R; goto extract_sfmt_add_d_r; }
504 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
506 if ((base_insn & 0xff0) == 0x4b0)
507 { itype = CRISV32F_INSN_SUBS_W_R; goto extract_sfmt_add_d_r; }
508 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
510 if ((base_insn & 0xff0) == 0x4c0)
511 { itype = CRISV32F_INSN_LSLR_B_R; goto extract_sfmt_lsrr_b_r; }
512 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
514 if ((base_insn & 0xff0) == 0x4d0)
515 { itype = CRISV32F_INSN_LSLR_W_R; goto extract_sfmt_lsrr_b_r; }
516 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
518 if ((base_insn & 0xff0) == 0x4e0)
519 { itype = CRISV32F_INSN_LSLR_D_R; goto extract_sfmt_lsrr_d_r; }
520 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
522 if ((base_insn & 0xff0) == 0x4f0)
523 { itype = CRISV32F_INSN_BTST; goto extract_sfmt_btst; }
524 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
526 if ((base_insn & 0xff0) == 0x500)
527 { itype = CRISV32F_INSN_ADDI_B_R; goto extract_sfmt_addi_b_r; }
528 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
530 if ((base_insn & 0xff0) == 0x510)
531 { itype = CRISV32F_INSN_ADDI_W_R; goto extract_sfmt_addi_b_r; }
532 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
534 if ((base_insn & 0xff0) == 0x520)
535 { itype = CRISV32F_INSN_ADDI_D_R; goto extract_sfmt_addi_b_r; }
536 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
538 if ((base_insn & 0xff0) == 0x530)
539 { itype = CRISV32F_INSN_SCC; goto extract_sfmt_scc; }
540 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
542 if ((base_insn & 0xff0) == 0x540)
543 { itype = CRISV32F_INSN_ADDI_ACR_B_R; goto extract_sfmt_addi_acr_b_r; }
544 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
546 if ((base_insn & 0xff0) == 0x550)
547 { itype = CRISV32F_INSN_ADDI_ACR_W_R; goto extract_sfmt_addi_acr_b_r; }
548 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
550 if ((base_insn & 0xff0) == 0x560)
551 { itype = CRISV32F_INSN_ADDI_ACR_D_R; goto extract_sfmt_addi_acr_b_r; }
552 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
554 if ((base_insn & 0xff0) == 0x570)
555 { itype = CRISV32F_INSN_ADDC_R; goto extract_sfmt_add_d_r; }
556 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
558 if ((base_insn & 0xff0) == 0x580)
559 { itype = CRISV32F_INSN_NEG_B_R; goto extract_sfmt_neg_b_r; }
560 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
562 if ((base_insn & 0xff0) == 0x590)
563 { itype = CRISV32F_INSN_NEG_W_R; goto extract_sfmt_neg_b_r; }
564 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
566 if ((base_insn & 0xff0) == 0x5a0)
567 { itype = CRISV32F_INSN_NEG_D_R; goto extract_sfmt_neg_d_r; }
568 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
570 if ((base_insn & 0xff0) == 0x5b0)
571 { itype = CRISV32F_INSN_SETF; goto extract_sfmt_setf; }
572 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
574 if ((base_insn & 0xff0) == 0x5c0)
575 { itype = CRISV32F_INSN_BOUND_R_B_R; goto extract_sfmt_dstep; }
576 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
578 if ((base_insn & 0xff0) == 0x5d0)
579 { itype = CRISV32F_INSN_BOUND_R_W_R; goto extract_sfmt_dstep; }
580 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
582 if ((base_insn & 0xff0) == 0x5e0)
583 { itype = CRISV32F_INSN_BOUND_R_D_R; goto extract_sfmt_dstep; }
584 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
586 if ((base_insn & 0xff0) == 0x5f0)
587 { itype = CRISV32F_INSN_CLEARF; goto extract_sfmt_setf; }
588 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
590 if ((base_insn & 0xff0) == 0x600)
591 { itype = CRISV32F_INSN_ADD_B_R; goto extract_sfmt_add_b_r; }
592 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
594 if ((base_insn & 0xff0) == 0x610)
595 { itype = CRISV32F_INSN_ADD_W_R; goto extract_sfmt_add_b_r; }
596 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
598 if ((base_insn & 0xff0) == 0x620)
599 { itype = CRISV32F_INSN_ADD_D_R; goto extract_sfmt_add_d_r; }
600 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
602 if ((base_insn & 0xff0) == 0x630)
603 { itype = CRISV32F_INSN_MOVE_R_SPRV32; goto extract_sfmt_move_r_sprv32; }
604 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
606 if ((base_insn & 0xff0) == 0x640)
607 { itype = CRISV32F_INSN_MOVE_B_R; goto extract_sfmt_move_b_r; }
608 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
610 if ((base_insn & 0xff0) == 0x650)
611 { itype = CRISV32F_INSN_MOVE_W_R; goto extract_sfmt_move_b_r; }
612 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
614 if ((base_insn & 0xff0) == 0x660)
615 { itype = CRISV32F_INSN_MOVE_D_R; goto extract_sfmt_move_d_r; }
616 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
618 if ((base_insn & 0xff0) == 0x670)
619 { itype = CRISV32F_INSN_MOVE_SPR_RV32; goto extract_sfmt_move_spr_rv32; }
620 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
622 if ((base_insn & 0xff0) == 0x680)
623 { itype = CRISV32F_INSN_SUB_B_R; goto extract_sfmt_add_b_r; }
624 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
626 if ((base_insn & 0xff0) == 0x690)
627 { itype = CRISV32F_INSN_SUB_W_R; goto extract_sfmt_add_b_r; }
628 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
630 if ((base_insn & 0xff0) == 0x6a0)
631 { itype = CRISV32F_INSN_SUB_D_R; goto extract_sfmt_add_d_r; }
632 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
634 if ((base_insn & 0xff0) == 0x6b0)
635 { itype = CRISV32F_INSN_ABS; goto extract_sfmt_movs_b_r; }
636 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
638 if ((base_insn & 0xff0) == 0x6c0)
639 { itype = CRISV32F_INSN_CMP_R_B_R; goto extract_sfmt_cmp_r_b_r; }
640 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
642 if ((base_insn & 0xff0) == 0x6d0)
643 { itype = CRISV32F_INSN_CMP_R_W_R; goto extract_sfmt_cmp_r_b_r; }
644 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
646 if ((base_insn & 0xff0) == 0x6e0)
647 { itype = CRISV32F_INSN_CMP_R_D_R; goto extract_sfmt_cmp_r_b_r; }
648 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
650 if ((base_insn & 0xff0) == 0x6f0)
651 { itype = CRISV32F_INSN_DSTEP; goto extract_sfmt_dstep; }
652 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
654 if ((base_insn & 0xff0) == 0x700)
655 { itype = CRISV32F_INSN_AND_B_R; goto extract_sfmt_and_b_r; }
656 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
658 if ((base_insn & 0xff0) == 0x710)
659 { itype = CRISV32F_INSN_AND_W_R; goto extract_sfmt_and_w_r; }
660 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
662 if ((base_insn & 0xff0) == 0x720)
663 { itype = CRISV32F_INSN_AND_D_R; goto extract_sfmt_and_d_r; }
664 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
666 if ((base_insn & 0xff0) == 0x730)
667 { itype = CRISV32F_INSN_LZ; goto extract_sfmt_movs_b_r; }
668 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
670 if ((base_insn & 0xff0) == 0x740)
671 { itype = CRISV32F_INSN_ORR_B_R; goto extract_sfmt_and_b_r; }
672 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
674 if ((base_insn & 0xff0) == 0x750)
675 { itype = CRISV32F_INSN_ORR_W_R; goto extract_sfmt_and_w_r; }
676 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
678 if ((base_insn & 0xff0) == 0x760)
679 { itype = CRISV32F_INSN_ORR_D_R; goto extract_sfmt_and_d_r; }
680 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
682 if ((base_insn & 0xff0) == 0x770)
683 { itype = CRISV32F_INSN_SWAP; goto extract_sfmt_swap; }
684 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
686 if ((base_insn & 0xff0) == 0x780)
687 { itype = CRISV32F_INSN_ASRR_B_R; goto extract_sfmt_asrr_b_r; }
688 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
690 if ((base_insn & 0xff0) == 0x790)
691 { itype = CRISV32F_INSN_ASRR_W_R; goto extract_sfmt_asrr_b_r; }
692 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
694 if ((base_insn & 0xff0) == 0x7a0)
695 { itype = CRISV32F_INSN_ASRR_D_R; goto extract_sfmt_and_d_r; }
696 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
698 if ((base_insn & 0xff0) == 0x7b0)
699 { itype = CRISV32F_INSN_XOR; goto extract_sfmt_dstep; }
700 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
702 if ((base_insn & 0xff0) == 0x7c0)
703 { itype = CRISV32F_INSN_LSRR_B_R; goto extract_sfmt_lsrr_b_r; }
704 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
706 if ((base_insn & 0xff0) == 0x7d0)
707 { itype = CRISV32F_INSN_LSRR_W_R; goto extract_sfmt_lsrr_b_r; }
708 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
710 if ((base_insn & 0xff0) == 0x7e0)
711 { itype = CRISV32F_INSN_LSRR_D_R; goto extract_sfmt_lsrr_d_r; }
712 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
714 if ((base_insn & 0xff0) == 0x7f0)
715 { itype = CRISV32F_INSN_MCP; goto extract_sfmt_mcp; }
716 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
718 if ((base_insn & 0xbf0) == 0x800)
719 { itype = CRISV32F_INSN_ADDU_M_B_M; goto extract_sfmt_adds_m_b_m; }
720 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
722 if ((base_insn & 0xbf0) == 0x810)
723 { itype = CRISV32F_INSN_ADDU_M_W_M; goto extract_sfmt_adds_m_w_m; }
724 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
726 if ((base_insn & 0xbf0) == 0x820)
727 { itype = CRISV32F_INSN_ADDS_M_B_M; goto extract_sfmt_adds_m_b_m; }
728 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
730 if ((base_insn & 0xbf0) == 0x830)
731 { itype = CRISV32F_INSN_ADDS_M_W_M; goto extract_sfmt_adds_m_w_m; }
732 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
734 if ((base_insn & 0xbf0) == 0x840)
735 { itype = CRISV32F_INSN_MOVU_M_B_M; goto extract_sfmt_movs_m_b_m; }
736 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
738 if ((base_insn & 0xbf0) == 0x850)
739 { itype = CRISV32F_INSN_MOVU_M_W_M; goto extract_sfmt_movs_m_w_m; }
740 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
742 if ((base_insn & 0xbf0) == 0x860)
743 { itype = CRISV32F_INSN_MOVS_M_B_M; goto extract_sfmt_movs_m_b_m; }
744 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
746 if ((base_insn & 0xbf0) == 0x870)
747 { itype = CRISV32F_INSN_MOVS_M_W_M; goto extract_sfmt_movs_m_w_m; }
748 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
750 if ((base_insn & 0xbf0) == 0x880)
751 { itype = CRISV32F_INSN_SUBU_M_B_M; goto extract_sfmt_adds_m_b_m; }
752 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
754 if ((base_insn & 0xbf0) == 0x890)
755 { itype = CRISV32F_INSN_SUBU_M_W_M; goto extract_sfmt_adds_m_w_m; }
756 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
758 if ((base_insn & 0xbf0) == 0x8a0)
759 { itype = CRISV32F_INSN_SUBS_M_B_M; goto extract_sfmt_adds_m_b_m; }
760 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
762 if ((base_insn & 0xbf0) == 0x8b0)
763 { itype = CRISV32F_INSN_SUBS_M_W_M; goto extract_sfmt_adds_m_w_m; }
764 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
766 if ((base_insn & 0xbf0) == 0x8c0)
767 { itype = CRISV32F_INSN_CMPU_M_B_M; goto extract_sfmt_cmp_m_b_m; }
768 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
770 if ((base_insn & 0xbf0) == 0x8d0)
771 { itype = CRISV32F_INSN_CMPU_M_W_M; goto extract_sfmt_cmp_m_w_m; }
772 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
774 if ((base_insn & 0xbf0) == 0x8e0)
775 { itype = CRISV32F_INSN_CMPS_M_B_M; goto extract_sfmt_cmp_m_b_m; }
776 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
778 if ((base_insn & 0xbf0) == 0x8f0)
779 { itype = CRISV32F_INSN_CMPS_M_W_M; goto extract_sfmt_cmp_m_w_m; }
780 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
782 if ((base_insn & 0xff0) == 0x900)
783 { itype = CRISV32F_INSN_MULU_B; goto extract_sfmt_muls_b; }
784 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
786 if ((base_insn & 0xff0) == 0x910)
787 { itype = CRISV32F_INSN_MULU_W; goto extract_sfmt_muls_b; }
788 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
790 if ((base_insn & 0xff0) == 0x920)
791 { itype = CRISV32F_INSN_MULU_D; goto extract_sfmt_muls_b; }
792 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
795 unsigned int val = (((insn >> 12) & (15 << 0)));
799 if ((base_insn & 0xffff) == 0x2930)
800 { itype = CRISV32F_INSN_RFE; goto extract_sfmt_rfe; }
801 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
803 if ((base_insn & 0xffff) == 0x3930)
804 { itype = CRISV32F_INSN_SFE; goto extract_sfmt_sfe; }
805 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
807 if ((base_insn & 0xffff) == 0x4930)
808 { itype = CRISV32F_INSN_RFG; goto extract_sfmt_rfg; }
809 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
811 if ((base_insn & 0xffff) == 0x5930)
812 { itype = CRISV32F_INSN_RFN; goto extract_sfmt_rfn; }
813 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
815 if ((base_insn & 0xfff0) == 0xe930)
816 { itype = CRISV32F_INSN_BREAK; goto extract_sfmt_break; }
817 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
819 if ((base_insn & 0xffff) == 0xf930)
820 { itype = CRISV32F_INSN_HALT; goto extract_sfmt_halt; }
821 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
822 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
826 if ((base_insn & 0xbf0) == 0x940)
827 { itype = CRISV32F_INSN_ADDO_M_B_M; goto extract_sfmt_addo_m_b_m; }
828 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
830 if ((base_insn & 0xbf0) == 0x950)
831 { itype = CRISV32F_INSN_ADDO_M_W_M; goto extract_sfmt_addo_m_w_m; }
832 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
834 if ((base_insn & 0xbf0) == 0x960)
835 { itype = CRISV32F_INSN_ADDO_M_D_M; goto extract_sfmt_addo_m_d_m; }
836 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
838 if ((base_insn & 0xff0) == 0x970)
839 { itype = CRISV32F_INSN_LAPCQ; goto extract_sfmt_lapcq; }
840 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
842 if ((base_insn & 0xbf0) == 0x9a0)
843 { itype = CRISV32F_INSN_ADDC_M; goto extract_sfmt_addc_m; }
844 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
846 if ((base_insn & 0xff0) == 0x9b0)
847 { itype = CRISV32F_INSN_JAS_R; goto extract_sfmt_jas_r; }
848 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
850 if ((base_insn & 0xfff) == 0x9f0)
851 { itype = CRISV32F_INSN_JUMP_P; goto extract_sfmt_jump_p; }
852 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
854 if ((base_insn & 0xbf0) == 0xa00)
855 { itype = CRISV32F_INSN_ADD_M_B_M; goto extract_sfmt_add_m_b_m; }
856 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
858 if ((base_insn & 0xbf0) == 0xa10)
859 { itype = CRISV32F_INSN_ADD_M_W_M; goto extract_sfmt_add_m_w_m; }
860 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
862 if ((base_insn & 0xbf0) == 0xa20)
863 { itype = CRISV32F_INSN_ADD_M_D_M; goto extract_sfmt_add_m_d_m; }
864 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
866 if ((base_insn & 0xbf0) == 0xa30)
867 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
868 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
870 if ((base_insn & 0xbf0) == 0xa40)
871 { itype = CRISV32F_INSN_MOVE_M_B_M; goto extract_sfmt_move_m_b_m; }
872 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
874 if ((base_insn & 0xbf0) == 0xa50)
875 { itype = CRISV32F_INSN_MOVE_M_W_M; goto extract_sfmt_move_m_w_m; }
876 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
878 if ((base_insn & 0xbf0) == 0xa60)
879 { itype = CRISV32F_INSN_MOVE_M_D_M; goto extract_sfmt_move_m_d_m; }
880 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
881 case 167 : /* fall through */
883 if ((base_insn & 0xbf0) == 0xa70)
884 { itype = CRISV32F_INSN_MOVE_SPR_MV32; goto extract_sfmt_move_spr_mv32; }
885 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
887 if ((base_insn & 0xbf0) == 0xa80)
888 { itype = CRISV32F_INSN_SUB_M_B_M; goto extract_sfmt_add_m_b_m; }
889 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
891 if ((base_insn & 0xbf0) == 0xa90)
892 { itype = CRISV32F_INSN_SUB_M_W_M; goto extract_sfmt_add_m_w_m; }
893 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
895 if ((base_insn & 0xbf0) == 0xaa0)
896 { itype = CRISV32F_INSN_SUB_M_D_M; goto extract_sfmt_add_m_d_m; }
897 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
900 unsigned int val = (((insn >> 12) & (1 << 0)));
904 if ((base_insn & 0xfff0) == 0xab0)
905 { itype = CRISV32F_INSN_FIDXD; goto extract_sfmt_fidxi; }
906 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
908 if ((base_insn & 0xfff0) == 0x1ab0)
909 { itype = CRISV32F_INSN_FTAGD; goto extract_sfmt_fidxi; }
910 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
911 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
915 if ((base_insn & 0xbf0) == 0xac0)
916 { itype = CRISV32F_INSN_CMP_M_B_M; goto extract_sfmt_cmp_m_b_m; }
917 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
919 if ((base_insn & 0xbf0) == 0xad0)
920 { itype = CRISV32F_INSN_CMP_M_W_M; goto extract_sfmt_cmp_m_w_m; }
921 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
923 if ((base_insn & 0xbf0) == 0xae0)
924 { itype = CRISV32F_INSN_CMP_M_D_M; goto extract_sfmt_cmp_m_d_m; }
925 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
927 if ((base_insn & 0xbf0) == 0xb00)
928 { itype = CRISV32F_INSN_AND_M_B_M; goto extract_sfmt_and_m_b_m; }
929 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
931 if ((base_insn & 0xbf0) == 0xb10)
932 { itype = CRISV32F_INSN_AND_M_W_M; goto extract_sfmt_and_m_w_m; }
933 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
935 if ((base_insn & 0xbf0) == 0xb20)
936 { itype = CRISV32F_INSN_AND_M_D_M; goto extract_sfmt_and_m_d_m; }
937 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
939 if ((base_insn & 0xff0) == 0xb30)
940 { itype = CRISV32F_INSN_JASC_R; goto extract_sfmt_jasc_r; }
941 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
943 if ((base_insn & 0xbf0) == 0xb40)
944 { itype = CRISV32F_INSN_OR_M_B_M; goto extract_sfmt_and_m_b_m; }
945 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
947 if ((base_insn & 0xbf0) == 0xb50)
948 { itype = CRISV32F_INSN_OR_M_W_M; goto extract_sfmt_and_m_w_m; }
949 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
951 if ((base_insn & 0xbf0) == 0xb60)
952 { itype = CRISV32F_INSN_OR_M_D_M; goto extract_sfmt_and_m_d_m; }
953 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
955 if ((base_insn & 0xff0) == 0xb70)
956 { itype = CRISV32F_INSN_MOVE_R_SS; goto extract_sfmt_move_r_ss; }
957 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
958 case 184 : /* fall through */
960 if ((base_insn & 0xfbf0) == 0xb80)
961 { itype = CRISV32F_INSN_TEST_M_B_M; goto extract_sfmt_test_m_b_m; }
962 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
963 case 185 : /* fall through */
965 if ((base_insn & 0xfbf0) == 0xb90)
966 { itype = CRISV32F_INSN_TEST_M_W_M; goto extract_sfmt_test_m_w_m; }
967 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
968 case 186 : /* fall through */
970 if ((base_insn & 0xfbf0) == 0xba0)
971 { itype = CRISV32F_INSN_TEST_M_D_M; goto extract_sfmt_test_m_d_m; }
972 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
973 case 187 : /* fall through */
975 if ((base_insn & 0xbf0) == 0xbb0)
976 { itype = CRISV32F_INSN_MOVEM_M_R_V32; goto extract_sfmt_movem_m_r_v32; }
977 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
978 case 188 : /* fall through */
980 if ((base_insn & 0xbf0) == 0xbc0)
981 { itype = CRISV32F_INSN_MOVE_R_M_B_M; goto extract_sfmt_move_r_m_b_m; }
982 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
983 case 189 : /* fall through */
985 if ((base_insn & 0xbf0) == 0xbd0)
986 { itype = CRISV32F_INSN_MOVE_R_M_W_M; goto extract_sfmt_move_r_m_w_m; }
987 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
988 case 190 : /* fall through */
990 if ((base_insn & 0xbf0) == 0xbe0)
991 { itype = CRISV32F_INSN_MOVE_R_M_D_M; goto extract_sfmt_move_r_m_d_m; }
992 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
993 case 191 : /* fall through */
995 if ((base_insn & 0xbf0) == 0xbf0)
996 { itype = CRISV32F_INSN_MOVEM_R_M_V32; goto extract_sfmt_movem_r_m_v32; }
997 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1000 unsigned int val = (((insn >> 0) & (15 << 0)));
1003 case 0 : /* fall through */
1004 case 1 : /* fall through */
1005 case 2 : /* fall through */
1006 case 3 : /* fall through */
1007 case 4 : /* fall through */
1008 case 5 : /* fall through */
1009 case 6 : /* fall through */
1010 case 7 : /* fall through */
1011 case 8 : /* fall through */
1012 case 9 : /* fall through */
1013 case 10 : /* fall through */
1014 case 11 : /* fall through */
1015 case 12 : /* fall through */
1016 case 13 : /* fall through */
1018 if ((base_insn & 0xbf0) == 0x800)
1019 { itype = CRISV32F_INSN_ADDU_M_B_M; goto extract_sfmt_adds_m_b_m; }
1020 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1022 if ((base_insn & 0xfff) == 0xc0f)
1023 { itype = CRISV32F_INSN_ADDUCBR; goto extract_sfmt_addscbr; }
1024 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1025 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1030 unsigned int val = (((insn >> 0) & (15 << 0)));
1033 case 0 : /* fall through */
1034 case 1 : /* fall through */
1035 case 2 : /* fall through */
1036 case 3 : /* fall through */
1037 case 4 : /* fall through */
1038 case 5 : /* fall through */
1039 case 6 : /* fall through */
1040 case 7 : /* fall through */
1041 case 8 : /* fall through */
1042 case 9 : /* fall through */
1043 case 10 : /* fall through */
1044 case 11 : /* fall through */
1045 case 12 : /* fall through */
1046 case 13 : /* fall through */
1048 if ((base_insn & 0xbf0) == 0x810)
1049 { itype = CRISV32F_INSN_ADDU_M_W_M; goto extract_sfmt_adds_m_w_m; }
1050 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1052 if ((base_insn & 0xfff) == 0xc1f)
1053 { itype = CRISV32F_INSN_ADDUCWR; goto extract_sfmt_addscwr; }
1054 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1055 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1060 unsigned int val = (((insn >> 0) & (15 << 0)));
1063 case 0 : /* fall through */
1064 case 1 : /* fall through */
1065 case 2 : /* fall through */
1066 case 3 : /* fall through */
1067 case 4 : /* fall through */
1068 case 5 : /* fall through */
1069 case 6 : /* fall through */
1070 case 7 : /* fall through */
1071 case 8 : /* fall through */
1072 case 9 : /* fall through */
1073 case 10 : /* fall through */
1074 case 11 : /* fall through */
1075 case 12 : /* fall through */
1076 case 13 : /* fall through */
1078 if ((base_insn & 0xbf0) == 0x820)
1079 { itype = CRISV32F_INSN_ADDS_M_B_M; goto extract_sfmt_adds_m_b_m; }
1080 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1082 if ((base_insn & 0xfff) == 0xc2f)
1083 { itype = CRISV32F_INSN_ADDSCBR; goto extract_sfmt_addscbr; }
1084 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1085 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1090 unsigned int val = (((insn >> 0) & (15 << 0)));
1093 case 0 : /* fall through */
1094 case 1 : /* fall through */
1095 case 2 : /* fall through */
1096 case 3 : /* fall through */
1097 case 4 : /* fall through */
1098 case 5 : /* fall through */
1099 case 6 : /* fall through */
1100 case 7 : /* fall through */
1101 case 8 : /* fall through */
1102 case 9 : /* fall through */
1103 case 10 : /* fall through */
1104 case 11 : /* fall through */
1105 case 12 : /* fall through */
1106 case 13 : /* fall through */
1108 if ((base_insn & 0xbf0) == 0x830)
1109 { itype = CRISV32F_INSN_ADDS_M_W_M; goto extract_sfmt_adds_m_w_m; }
1110 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1112 if ((base_insn & 0xfff) == 0xc3f)
1113 { itype = CRISV32F_INSN_ADDSCWR; goto extract_sfmt_addscwr; }
1114 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1115 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1120 unsigned int val = (((insn >> 0) & (15 << 0)));
1123 case 0 : /* fall through */
1124 case 1 : /* fall through */
1125 case 2 : /* fall through */
1126 case 3 : /* fall through */
1127 case 4 : /* fall through */
1128 case 5 : /* fall through */
1129 case 6 : /* fall through */
1130 case 7 : /* fall through */
1131 case 8 : /* fall through */
1132 case 9 : /* fall through */
1133 case 10 : /* fall through */
1134 case 11 : /* fall through */
1135 case 12 : /* fall through */
1136 case 13 : /* fall through */
1138 if ((base_insn & 0xbf0) == 0x840)
1139 { itype = CRISV32F_INSN_MOVU_M_B_M; goto extract_sfmt_movs_m_b_m; }
1140 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1142 if ((base_insn & 0xfff) == 0xc4f)
1143 { itype = CRISV32F_INSN_MOVUCBR; goto extract_sfmt_movucbr; }
1144 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1145 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1150 unsigned int val = (((insn >> 0) & (15 << 0)));
1153 case 0 : /* fall through */
1154 case 1 : /* fall through */
1155 case 2 : /* fall through */
1156 case 3 : /* fall through */
1157 case 4 : /* fall through */
1158 case 5 : /* fall through */
1159 case 6 : /* fall through */
1160 case 7 : /* fall through */
1161 case 8 : /* fall through */
1162 case 9 : /* fall through */
1163 case 10 : /* fall through */
1164 case 11 : /* fall through */
1165 case 12 : /* fall through */
1166 case 13 : /* fall through */
1168 if ((base_insn & 0xbf0) == 0x850)
1169 { itype = CRISV32F_INSN_MOVU_M_W_M; goto extract_sfmt_movs_m_w_m; }
1170 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1172 if ((base_insn & 0xfff) == 0xc5f)
1173 { itype = CRISV32F_INSN_MOVUCWR; goto extract_sfmt_movucwr; }
1174 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1175 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1180 unsigned int val = (((insn >> 0) & (15 << 0)));
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 */
1198 if ((base_insn & 0xbf0) == 0x860)
1199 { itype = CRISV32F_INSN_MOVS_M_B_M; goto extract_sfmt_movs_m_b_m; }
1200 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1202 if ((base_insn & 0xfff) == 0xc6f)
1203 { itype = CRISV32F_INSN_MOVSCBR; goto extract_sfmt_movscbr; }
1204 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1205 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1210 unsigned int val = (((insn >> 0) & (15 << 0)));
1213 case 0 : /* fall through */
1214 case 1 : /* fall through */
1215 case 2 : /* fall through */
1216 case 3 : /* fall through */
1217 case 4 : /* fall through */
1218 case 5 : /* fall through */
1219 case 6 : /* fall through */
1220 case 7 : /* fall through */
1221 case 8 : /* fall through */
1222 case 9 : /* fall through */
1223 case 10 : /* fall through */
1224 case 11 : /* fall through */
1225 case 12 : /* fall through */
1226 case 13 : /* fall through */
1228 if ((base_insn & 0xbf0) == 0x870)
1229 { itype = CRISV32F_INSN_MOVS_M_W_M; goto extract_sfmt_movs_m_w_m; }
1230 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1232 if ((base_insn & 0xfff) == 0xc7f)
1233 { itype = CRISV32F_INSN_MOVSCWR; goto extract_sfmt_movscwr; }
1234 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1235 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1240 unsigned int val = (((insn >> 0) & (15 << 0)));
1243 case 0 : /* fall through */
1244 case 1 : /* fall through */
1245 case 2 : /* fall through */
1246 case 3 : /* fall through */
1247 case 4 : /* fall through */
1248 case 5 : /* fall through */
1249 case 6 : /* fall through */
1250 case 7 : /* fall through */
1251 case 8 : /* fall through */
1252 case 9 : /* fall through */
1253 case 10 : /* fall through */
1254 case 11 : /* fall through */
1255 case 12 : /* fall through */
1256 case 13 : /* fall through */
1258 if ((base_insn & 0xbf0) == 0x880)
1259 { itype = CRISV32F_INSN_SUBU_M_B_M; goto extract_sfmt_adds_m_b_m; }
1260 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1262 if ((base_insn & 0xfff) == 0xc8f)
1263 { itype = CRISV32F_INSN_SUBUCBR; goto extract_sfmt_addscbr; }
1264 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1265 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1270 unsigned int val = (((insn >> 0) & (15 << 0)));
1273 case 0 : /* fall through */
1274 case 1 : /* fall through */
1275 case 2 : /* fall through */
1276 case 3 : /* fall through */
1277 case 4 : /* fall through */
1278 case 5 : /* fall through */
1279 case 6 : /* fall through */
1280 case 7 : /* fall through */
1281 case 8 : /* fall through */
1282 case 9 : /* fall through */
1283 case 10 : /* fall through */
1284 case 11 : /* fall through */
1285 case 12 : /* fall through */
1286 case 13 : /* fall through */
1288 if ((base_insn & 0xbf0) == 0x890)
1289 { itype = CRISV32F_INSN_SUBU_M_W_M; goto extract_sfmt_adds_m_w_m; }
1290 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1292 if ((base_insn & 0xfff) == 0xc9f)
1293 { itype = CRISV32F_INSN_SUBUCWR; goto extract_sfmt_addscwr; }
1294 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1295 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1300 unsigned int val = (((insn >> 0) & (15 << 0)));
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 */
1318 if ((base_insn & 0xbf0) == 0x8a0)
1319 { itype = CRISV32F_INSN_SUBS_M_B_M; goto extract_sfmt_adds_m_b_m; }
1320 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1322 if ((base_insn & 0xfff) == 0xcaf)
1323 { itype = CRISV32F_INSN_SUBSCBR; goto extract_sfmt_addscbr; }
1324 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1325 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1330 unsigned int val = (((insn >> 0) & (15 << 0)));
1333 case 0 : /* fall through */
1334 case 1 : /* fall through */
1335 case 2 : /* fall through */
1336 case 3 : /* fall through */
1337 case 4 : /* fall through */
1338 case 5 : /* fall through */
1339 case 6 : /* fall through */
1340 case 7 : /* fall through */
1341 case 8 : /* fall through */
1342 case 9 : /* fall through */
1343 case 10 : /* fall through */
1344 case 11 : /* fall through */
1345 case 12 : /* fall through */
1346 case 13 : /* fall through */
1348 if ((base_insn & 0xbf0) == 0x8b0)
1349 { itype = CRISV32F_INSN_SUBS_M_W_M; goto extract_sfmt_adds_m_w_m; }
1350 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1352 if ((base_insn & 0xfff) == 0xcbf)
1353 { itype = CRISV32F_INSN_SUBSCWR; goto extract_sfmt_addscwr; }
1354 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1355 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1360 unsigned int val = (((insn >> 0) & (15 << 0)));
1363 case 0 : /* fall through */
1364 case 1 : /* fall through */
1365 case 2 : /* fall through */
1366 case 3 : /* fall through */
1367 case 4 : /* fall through */
1368 case 5 : /* fall through */
1369 case 6 : /* fall through */
1370 case 7 : /* fall through */
1371 case 8 : /* fall through */
1372 case 9 : /* fall through */
1373 case 10 : /* fall through */
1374 case 11 : /* fall through */
1375 case 12 : /* fall through */
1376 case 13 : /* fall through */
1378 if ((base_insn & 0xbf0) == 0x8c0)
1379 { itype = CRISV32F_INSN_CMPU_M_B_M; goto extract_sfmt_cmp_m_b_m; }
1380 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1382 if ((base_insn & 0xfff) == 0xccf)
1383 { itype = CRISV32F_INSN_CMPUCBR; goto extract_sfmt_cmpucbr; }
1384 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1385 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1390 unsigned int val = (((insn >> 0) & (15 << 0)));
1393 case 0 : /* fall through */
1394 case 1 : /* fall through */
1395 case 2 : /* fall through */
1396 case 3 : /* fall through */
1397 case 4 : /* fall through */
1398 case 5 : /* fall through */
1399 case 6 : /* fall through */
1400 case 7 : /* fall through */
1401 case 8 : /* fall through */
1402 case 9 : /* fall through */
1403 case 10 : /* fall through */
1404 case 11 : /* fall through */
1405 case 12 : /* fall through */
1406 case 13 : /* fall through */
1408 if ((base_insn & 0xbf0) == 0x8d0)
1409 { itype = CRISV32F_INSN_CMPU_M_W_M; goto extract_sfmt_cmp_m_w_m; }
1410 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1412 if ((base_insn & 0xfff) == 0xcdf)
1413 { itype = CRISV32F_INSN_CMPUCWR; goto extract_sfmt_cmpucwr; }
1414 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1415 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1420 unsigned int val = (((insn >> 0) & (15 << 0)));
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 */
1438 if ((base_insn & 0xbf0) == 0x8e0)
1439 { itype = CRISV32F_INSN_CMPS_M_B_M; goto extract_sfmt_cmp_m_b_m; }
1440 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1442 if ((base_insn & 0xfff) == 0xcef)
1443 { itype = CRISV32F_INSN_CMPSCBR; goto extract_sfmt_cmpcbr; }
1444 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1445 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1450 unsigned int val = (((insn >> 0) & (15 << 0)));
1453 case 0 : /* fall through */
1454 case 1 : /* fall through */
1455 case 2 : /* fall through */
1456 case 3 : /* fall through */
1457 case 4 : /* fall through */
1458 case 5 : /* fall through */
1459 case 6 : /* fall through */
1460 case 7 : /* fall through */
1461 case 8 : /* fall through */
1462 case 9 : /* fall through */
1463 case 10 : /* fall through */
1464 case 11 : /* fall through */
1465 case 12 : /* fall through */
1466 case 13 : /* fall through */
1468 if ((base_insn & 0xbf0) == 0x8f0)
1469 { itype = CRISV32F_INSN_CMPS_M_W_M; goto extract_sfmt_cmp_m_w_m; }
1470 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1472 if ((base_insn & 0xfff) == 0xcff)
1473 { itype = CRISV32F_INSN_CMPSCWR; goto extract_sfmt_cmpcwr; }
1474 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1475 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1479 if ((base_insn & 0xff0) == 0xd00)
1480 { itype = CRISV32F_INSN_MULS_B; goto extract_sfmt_muls_b; }
1481 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1483 if ((base_insn & 0xff0) == 0xd10)
1484 { itype = CRISV32F_INSN_MULS_W; goto extract_sfmt_muls_b; }
1485 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1487 if ((base_insn & 0xff0) == 0xd20)
1488 { itype = CRISV32F_INSN_MULS_D; goto extract_sfmt_muls_b; }
1489 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1492 unsigned int val = (((insn >> 12) & (1 << 0)));
1496 if ((base_insn & 0xfff0) == 0xd30)
1497 { itype = CRISV32F_INSN_FIDXI; goto extract_sfmt_fidxi; }
1498 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1500 if ((base_insn & 0xfff0) == 0x1d30)
1501 { itype = CRISV32F_INSN_FTAGI; goto extract_sfmt_fidxi; }
1502 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1503 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1508 unsigned int val = (((insn >> 0) & (15 << 0)));
1511 case 0 : /* fall through */
1512 case 1 : /* fall through */
1513 case 2 : /* fall through */
1514 case 3 : /* fall through */
1515 case 4 : /* fall through */
1516 case 5 : /* fall through */
1517 case 6 : /* fall through */
1518 case 7 : /* fall through */
1519 case 8 : /* fall through */
1520 case 9 : /* fall through */
1521 case 10 : /* fall through */
1522 case 11 : /* fall through */
1523 case 12 : /* fall through */
1524 case 13 : /* fall through */
1526 if ((base_insn & 0xbf0) == 0x940)
1527 { itype = CRISV32F_INSN_ADDO_M_B_M; goto extract_sfmt_addo_m_b_m; }
1528 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1530 if ((base_insn & 0xfff) == 0xd4f)
1531 { itype = CRISV32F_INSN_ADDO_CB; goto extract_sfmt_addo_cb; }
1532 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1533 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1538 unsigned int val = (((insn >> 0) & (15 << 0)));
1541 case 0 : /* fall through */
1542 case 1 : /* fall through */
1543 case 2 : /* fall through */
1544 case 3 : /* fall through */
1545 case 4 : /* fall through */
1546 case 5 : /* fall through */
1547 case 6 : /* fall through */
1548 case 7 : /* fall through */
1549 case 8 : /* fall through */
1550 case 9 : /* fall through */
1551 case 10 : /* fall through */
1552 case 11 : /* fall through */
1553 case 12 : /* fall through */
1554 case 13 : /* fall through */
1556 if ((base_insn & 0xbf0) == 0x950)
1557 { itype = CRISV32F_INSN_ADDO_M_W_M; goto extract_sfmt_addo_m_w_m; }
1558 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1560 if ((base_insn & 0xfff) == 0xd5f)
1561 { itype = CRISV32F_INSN_ADDO_CW; goto extract_sfmt_addo_cw; }
1562 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1563 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1568 unsigned int val = (((insn >> 0) & (15 << 0)));
1571 case 0 : /* fall through */
1572 case 1 : /* fall through */
1573 case 2 : /* fall through */
1574 case 3 : /* fall through */
1575 case 4 : /* fall through */
1576 case 5 : /* fall through */
1577 case 6 : /* fall through */
1578 case 7 : /* fall through */
1579 case 8 : /* fall through */
1580 case 9 : /* fall through */
1581 case 10 : /* fall through */
1582 case 11 : /* fall through */
1583 case 12 : /* fall through */
1584 case 13 : /* fall through */
1586 if ((base_insn & 0xbf0) == 0x960)
1587 { itype = CRISV32F_INSN_ADDO_M_D_M; goto extract_sfmt_addo_m_d_m; }
1588 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1590 if ((base_insn & 0xfff) == 0xd6f)
1591 { itype = CRISV32F_INSN_ADDO_CD; goto extract_sfmt_addo_cd; }
1592 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1593 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1597 if ((base_insn & 0xfff) == 0xd7f)
1598 { itype = CRISV32F_INSN_LAPC_D; goto extract_sfmt_lapc_d; }
1599 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1602 unsigned int val = (((insn >> 0) & (15 << 0)));
1605 case 0 : /* fall through */
1606 case 1 : /* fall through */
1607 case 2 : /* fall through */
1608 case 3 : /* fall through */
1609 case 4 : /* fall through */
1610 case 5 : /* fall through */
1611 case 6 : /* fall through */
1612 case 7 : /* fall through */
1613 case 8 : /* fall through */
1614 case 9 : /* fall through */
1615 case 10 : /* fall through */
1616 case 11 : /* fall through */
1617 case 12 : /* fall through */
1618 case 13 : /* fall through */
1620 if ((base_insn & 0xbf0) == 0x9a0)
1621 { itype = CRISV32F_INSN_ADDC_M; goto extract_sfmt_addc_m; }
1622 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1624 if ((base_insn & 0xfff) == 0xdaf)
1625 { itype = CRISV32F_INSN_ADDC_C; goto extract_sfmt_addcdr; }
1626 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1627 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1631 if ((base_insn & 0xfff) == 0xdbf)
1632 { itype = CRISV32F_INSN_JAS_C; goto extract_sfmt_jas_c; }
1633 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1635 if ((base_insn & 0xfff) == 0xdcf)
1636 { itype = CRISV32F_INSN_BOUND_CB; goto extract_sfmt_bound_cb; }
1637 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1639 if ((base_insn & 0xfff) == 0xddf)
1640 { itype = CRISV32F_INSN_BOUND_CW; goto extract_sfmt_bound_cw; }
1641 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1643 if ((base_insn & 0xfff) == 0xdef)
1644 { itype = CRISV32F_INSN_BOUND_CD; goto extract_sfmt_bound_cd; }
1645 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1648 unsigned int val = (((insn >> 12) & (15 << 0)));
1651 case 0 : /* fall through */
1652 case 1 : /* fall through */
1653 case 2 : /* fall through */
1654 case 3 : /* fall through */
1655 case 4 : /* fall through */
1656 case 5 : /* fall through */
1657 case 6 : /* fall through */
1658 case 7 : /* fall through */
1659 case 8 : /* fall through */
1660 case 9 : /* fall through */
1661 case 10 : /* fall through */
1662 case 11 : /* fall through */
1663 case 12 : /* fall through */
1664 case 13 : /* fall through */
1666 if ((base_insn & 0xfff) == 0xdff)
1667 { itype = CRISV32F_INSN_BCC_W; goto extract_sfmt_bcc_w; }
1668 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1670 if ((base_insn & 0xffff) == 0xedff)
1671 { itype = CRISV32F_INSN_BA_W; goto extract_sfmt_ba_w; }
1672 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1673 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1678 unsigned int val = (((insn >> 0) & (15 << 0)));
1681 case 0 : /* fall through */
1682 case 1 : /* fall through */
1683 case 2 : /* fall through */
1684 case 3 : /* fall through */
1685 case 4 : /* fall through */
1686 case 5 : /* fall through */
1687 case 6 : /* fall through */
1688 case 7 : /* fall through */
1689 case 8 : /* fall through */
1690 case 9 : /* fall through */
1691 case 10 : /* fall through */
1692 case 11 : /* fall through */
1693 case 12 : /* fall through */
1694 case 13 : /* fall through */
1696 if ((base_insn & 0xbf0) == 0xa00)
1697 { itype = CRISV32F_INSN_ADD_M_B_M; goto extract_sfmt_add_m_b_m; }
1698 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1700 if ((base_insn & 0xfff) == 0xe0f)
1701 { itype = CRISV32F_INSN_ADDCBR; goto extract_sfmt_addcbr; }
1702 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1703 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1708 unsigned int val = (((insn >> 0) & (15 << 0)));
1711 case 0 : /* fall through */
1712 case 1 : /* fall through */
1713 case 2 : /* fall through */
1714 case 3 : /* fall through */
1715 case 4 : /* fall through */
1716 case 5 : /* fall through */
1717 case 6 : /* fall through */
1718 case 7 : /* fall through */
1719 case 8 : /* fall through */
1720 case 9 : /* fall through */
1721 case 10 : /* fall through */
1722 case 11 : /* fall through */
1723 case 12 : /* fall through */
1724 case 13 : /* fall through */
1726 if ((base_insn & 0xbf0) == 0xa10)
1727 { itype = CRISV32F_INSN_ADD_M_W_M; goto extract_sfmt_add_m_w_m; }
1728 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1730 if ((base_insn & 0xfff) == 0xe1f)
1731 { itype = CRISV32F_INSN_ADDCWR; goto extract_sfmt_addcwr; }
1732 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1733 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1738 unsigned int val = (((insn >> 0) & (15 << 0)));
1741 case 0 : /* fall through */
1742 case 1 : /* fall through */
1743 case 2 : /* fall through */
1744 case 3 : /* fall through */
1745 case 4 : /* fall through */
1746 case 5 : /* fall through */
1747 case 6 : /* fall through */
1748 case 7 : /* fall through */
1749 case 8 : /* fall through */
1750 case 9 : /* fall through */
1751 case 10 : /* fall through */
1752 case 11 : /* fall through */
1753 case 12 : /* fall through */
1754 case 13 : /* fall through */
1756 if ((base_insn & 0xbf0) == 0xa20)
1757 { itype = CRISV32F_INSN_ADD_M_D_M; goto extract_sfmt_add_m_d_m; }
1758 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1760 if ((base_insn & 0xfff) == 0xe2f)
1761 { itype = CRISV32F_INSN_ADDCDR; goto extract_sfmt_addcdr; }
1762 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1763 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1768 unsigned int val = (((insn >> 12) & (15 << 0)));
1771 case 0 : /* fall through */
1772 case 1 : /* fall through */
1773 case 4 : /* fall through */
1775 if ((base_insn & 0xbf0) == 0xa30)
1776 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
1777 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1780 unsigned int val = (((insn >> 0) & (15 << 0)));
1783 case 0 : /* fall through */
1784 case 1 : /* fall through */
1785 case 2 : /* fall through */
1786 case 3 : /* fall through */
1787 case 4 : /* fall through */
1788 case 5 : /* fall through */
1789 case 6 : /* fall through */
1790 case 7 : /* fall through */
1791 case 8 : /* fall through */
1792 case 9 : /* fall through */
1793 case 10 : /* fall through */
1794 case 11 : /* fall through */
1795 case 12 : /* fall through */
1796 case 13 : /* fall through */
1798 if ((base_insn & 0xbf0) == 0xa30)
1799 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
1800 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1802 if ((base_insn & 0xffff) == 0x2e3f)
1803 { itype = CRISV32F_INSN_MOVE_C_SPRV32_P2; goto extract_sfmt_move_c_sprv32_p2; }
1804 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1805 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1810 unsigned int val = (((insn >> 0) & (15 << 0)));
1813 case 0 : /* fall through */
1814 case 1 : /* fall through */
1815 case 2 : /* fall through */
1816 case 3 : /* fall through */
1817 case 4 : /* fall through */
1818 case 5 : /* fall through */
1819 case 6 : /* fall through */
1820 case 7 : /* fall through */
1821 case 8 : /* fall through */
1822 case 9 : /* fall through */
1823 case 10 : /* fall through */
1824 case 11 : /* fall through */
1825 case 12 : /* fall through */
1826 case 13 : /* fall through */
1828 if ((base_insn & 0xbf0) == 0xa30)
1829 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
1830 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1832 if ((base_insn & 0xffff) == 0x3e3f)
1833 { itype = CRISV32F_INSN_MOVE_C_SPRV32_P3; goto extract_sfmt_move_c_sprv32_p2; }
1834 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1835 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1840 unsigned int val = (((insn >> 0) & (15 << 0)));
1843 case 0 : /* fall through */
1844 case 1 : /* fall through */
1845 case 2 : /* fall through */
1846 case 3 : /* fall through */
1847 case 4 : /* fall through */
1848 case 5 : /* fall through */
1849 case 6 : /* fall through */
1850 case 7 : /* fall through */
1851 case 8 : /* fall through */
1852 case 9 : /* fall through */
1853 case 10 : /* fall through */
1854 case 11 : /* fall through */
1855 case 12 : /* fall through */
1856 case 13 : /* fall through */
1858 if ((base_insn & 0xbf0) == 0xa30)
1859 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
1860 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1862 if ((base_insn & 0xffff) == 0x5e3f)
1863 { itype = CRISV32F_INSN_MOVE_C_SPRV32_P5; goto extract_sfmt_move_c_sprv32_p2; }
1864 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1865 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1870 unsigned int val = (((insn >> 0) & (15 << 0)));
1873 case 0 : /* fall through */
1874 case 1 : /* fall through */
1875 case 2 : /* fall through */
1876 case 3 : /* fall through */
1877 case 4 : /* fall through */
1878 case 5 : /* fall through */
1879 case 6 : /* fall through */
1880 case 7 : /* fall through */
1881 case 8 : /* fall through */
1882 case 9 : /* fall through */
1883 case 10 : /* fall through */
1884 case 11 : /* fall through */
1885 case 12 : /* fall through */
1886 case 13 : /* fall through */
1888 if ((base_insn & 0xbf0) == 0xa30)
1889 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
1890 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1892 if ((base_insn & 0xffff) == 0x6e3f)
1893 { itype = CRISV32F_INSN_MOVE_C_SPRV32_P6; goto extract_sfmt_move_c_sprv32_p2; }
1894 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1895 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1900 unsigned int val = (((insn >> 0) & (15 << 0)));
1903 case 0 : /* fall through */
1904 case 1 : /* fall through */
1905 case 2 : /* fall through */
1906 case 3 : /* fall through */
1907 case 4 : /* fall through */
1908 case 5 : /* fall through */
1909 case 6 : /* fall through */
1910 case 7 : /* fall through */
1911 case 8 : /* fall through */
1912 case 9 : /* fall through */
1913 case 10 : /* fall through */
1914 case 11 : /* fall through */
1915 case 12 : /* fall through */
1916 case 13 : /* fall through */
1918 if ((base_insn & 0xbf0) == 0xa30)
1919 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
1920 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1922 if ((base_insn & 0xffff) == 0x7e3f)
1923 { itype = CRISV32F_INSN_MOVE_C_SPRV32_P7; goto extract_sfmt_move_c_sprv32_p2; }
1924 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1925 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1930 unsigned int val = (((insn >> 0) & (15 << 0)));
1933 case 0 : /* fall through */
1934 case 1 : /* fall through */
1935 case 2 : /* fall through */
1936 case 3 : /* fall through */
1937 case 4 : /* fall through */
1938 case 5 : /* fall through */
1939 case 6 : /* fall through */
1940 case 7 : /* fall through */
1941 case 8 : /* fall through */
1942 case 9 : /* fall through */
1943 case 10 : /* fall through */
1944 case 11 : /* fall through */
1945 case 12 : /* fall through */
1946 case 13 : /* fall through */
1948 if ((base_insn & 0xbf0) == 0xa30)
1949 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
1950 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1952 if ((base_insn & 0xffff) == 0x9e3f)
1953 { itype = CRISV32F_INSN_MOVE_C_SPRV32_P9; goto extract_sfmt_move_c_sprv32_p2; }
1954 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1955 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1960 unsigned int val = (((insn >> 0) & (15 << 0)));
1963 case 0 : /* fall through */
1964 case 1 : /* fall through */
1965 case 2 : /* fall through */
1966 case 3 : /* fall through */
1967 case 4 : /* fall through */
1968 case 5 : /* fall through */
1969 case 6 : /* fall through */
1970 case 7 : /* fall through */
1971 case 8 : /* fall through */
1972 case 9 : /* fall through */
1973 case 10 : /* fall through */
1974 case 11 : /* fall through */
1975 case 12 : /* fall through */
1976 case 13 : /* fall through */
1978 if ((base_insn & 0xbf0) == 0xa30)
1979 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
1980 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1982 if ((base_insn & 0xffff) == 0xae3f)
1983 { itype = CRISV32F_INSN_MOVE_C_SPRV32_P10; goto extract_sfmt_move_c_sprv32_p2; }
1984 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1985 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1990 unsigned int val = (((insn >> 0) & (15 << 0)));
1993 case 0 : /* fall through */
1994 case 1 : /* fall through */
1995 case 2 : /* fall through */
1996 case 3 : /* fall through */
1997 case 4 : /* fall through */
1998 case 5 : /* fall through */
1999 case 6 : /* fall through */
2000 case 7 : /* fall through */
2001 case 8 : /* fall through */
2002 case 9 : /* fall through */
2003 case 10 : /* fall through */
2004 case 11 : /* fall through */
2005 case 12 : /* fall through */
2006 case 13 : /* fall through */
2008 if ((base_insn & 0xbf0) == 0xa30)
2009 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
2010 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2012 if ((base_insn & 0xffff) == 0xbe3f)
2013 { itype = CRISV32F_INSN_MOVE_C_SPRV32_P11; goto extract_sfmt_move_c_sprv32_p2; }
2014 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2015 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2020 unsigned int val = (((insn >> 0) & (15 << 0)));
2023 case 0 : /* fall through */
2024 case 1 : /* fall through */
2025 case 2 : /* fall through */
2026 case 3 : /* fall through */
2027 case 4 : /* fall through */
2028 case 5 : /* fall through */
2029 case 6 : /* fall through */
2030 case 7 : /* fall through */
2031 case 8 : /* fall through */
2032 case 9 : /* fall through */
2033 case 10 : /* fall through */
2034 case 11 : /* fall through */
2035 case 12 : /* fall through */
2036 case 13 : /* fall through */
2038 if ((base_insn & 0xbf0) == 0xa30)
2039 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
2040 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2042 if ((base_insn & 0xffff) == 0xce3f)
2043 { itype = CRISV32F_INSN_MOVE_C_SPRV32_P12; goto extract_sfmt_move_c_sprv32_p2; }
2044 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2045 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2050 unsigned int val = (((insn >> 0) & (15 << 0)));
2053 case 0 : /* fall through */
2054 case 1 : /* fall through */
2055 case 2 : /* fall through */
2056 case 3 : /* fall through */
2057 case 4 : /* fall through */
2058 case 5 : /* fall through */
2059 case 6 : /* fall through */
2060 case 7 : /* fall through */
2061 case 8 : /* fall through */
2062 case 9 : /* fall through */
2063 case 10 : /* fall through */
2064 case 11 : /* fall through */
2065 case 12 : /* fall through */
2066 case 13 : /* fall through */
2068 if ((base_insn & 0xbf0) == 0xa30)
2069 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
2070 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2072 if ((base_insn & 0xffff) == 0xde3f)
2073 { itype = CRISV32F_INSN_MOVE_C_SPRV32_P13; goto extract_sfmt_move_c_sprv32_p2; }
2074 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2075 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2080 unsigned int val = (((insn >> 0) & (15 << 0)));
2083 case 0 : /* fall through */
2084 case 1 : /* fall through */
2085 case 2 : /* fall through */
2086 case 3 : /* fall through */
2087 case 4 : /* fall through */
2088 case 5 : /* fall through */
2089 case 6 : /* fall through */
2090 case 7 : /* fall through */
2091 case 8 : /* fall through */
2092 case 9 : /* fall through */
2093 case 10 : /* fall through */
2094 case 11 : /* fall through */
2095 case 12 : /* fall through */
2096 case 13 : /* fall through */
2098 if ((base_insn & 0xbf0) == 0xa30)
2099 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
2100 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2102 if ((base_insn & 0xffff) == 0xee3f)
2103 { itype = CRISV32F_INSN_MOVE_C_SPRV32_P14; goto extract_sfmt_move_c_sprv32_p2; }
2104 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2105 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2110 unsigned int val = (((insn >> 0) & (15 << 0)));
2113 case 0 : /* fall through */
2114 case 1 : /* fall through */
2115 case 2 : /* fall through */
2116 case 3 : /* fall through */
2117 case 4 : /* fall through */
2118 case 5 : /* fall through */
2119 case 6 : /* fall through */
2120 case 7 : /* fall through */
2121 case 8 : /* fall through */
2122 case 9 : /* fall through */
2123 case 10 : /* fall through */
2124 case 11 : /* fall through */
2125 case 12 : /* fall through */
2126 case 13 : /* fall through */
2128 if ((base_insn & 0xbf0) == 0xa30)
2129 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
2130 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2132 if ((base_insn & 0xffff) == 0xfe3f)
2133 { itype = CRISV32F_INSN_MOVE_C_SPRV32_P15; goto extract_sfmt_move_c_sprv32_p2; }
2134 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2135 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2138 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2143 unsigned int val = (((insn >> 0) & (15 << 0)));
2146 case 0 : /* fall through */
2147 case 1 : /* fall through */
2148 case 2 : /* fall through */
2149 case 3 : /* fall through */
2150 case 4 : /* fall through */
2151 case 5 : /* fall through */
2152 case 6 : /* fall through */
2153 case 7 : /* fall through */
2154 case 8 : /* fall through */
2155 case 9 : /* fall through */
2156 case 10 : /* fall through */
2157 case 11 : /* fall through */
2158 case 12 : /* fall through */
2159 case 13 : /* fall through */
2161 if ((base_insn & 0xbf0) == 0xa40)
2162 { itype = CRISV32F_INSN_MOVE_M_B_M; goto extract_sfmt_move_m_b_m; }
2163 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2165 if ((base_insn & 0xfff) == 0xe4f)
2166 { itype = CRISV32F_INSN_MOVECBR; goto extract_sfmt_movecbr; }
2167 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2168 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2173 unsigned int val = (((insn >> 0) & (15 << 0)));
2176 case 0 : /* fall through */
2177 case 1 : /* fall through */
2178 case 2 : /* fall through */
2179 case 3 : /* fall through */
2180 case 4 : /* fall through */
2181 case 5 : /* fall through */
2182 case 6 : /* fall through */
2183 case 7 : /* fall through */
2184 case 8 : /* fall through */
2185 case 9 : /* fall through */
2186 case 10 : /* fall through */
2187 case 11 : /* fall through */
2188 case 12 : /* fall through */
2189 case 13 : /* fall through */
2191 if ((base_insn & 0xbf0) == 0xa50)
2192 { itype = CRISV32F_INSN_MOVE_M_W_M; goto extract_sfmt_move_m_w_m; }
2193 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2195 if ((base_insn & 0xfff) == 0xe5f)
2196 { itype = CRISV32F_INSN_MOVECWR; goto extract_sfmt_movecwr; }
2197 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2198 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2203 unsigned int val = (((insn >> 0) & (15 << 0)));
2206 case 0 : /* fall through */
2207 case 1 : /* fall through */
2208 case 2 : /* fall through */
2209 case 3 : /* fall through */
2210 case 4 : /* fall through */
2211 case 5 : /* fall through */
2212 case 6 : /* fall through */
2213 case 7 : /* fall through */
2214 case 8 : /* fall through */
2215 case 9 : /* fall through */
2216 case 10 : /* fall through */
2217 case 11 : /* fall through */
2218 case 12 : /* fall through */
2219 case 13 : /* fall through */
2221 if ((base_insn & 0xbf0) == 0xa60)
2222 { itype = CRISV32F_INSN_MOVE_M_D_M; goto extract_sfmt_move_m_d_m; }
2223 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2225 if ((base_insn & 0xfff) == 0xe6f)
2226 { itype = CRISV32F_INSN_MOVECDR; goto extract_sfmt_movecdr; }
2227 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2228 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2233 unsigned int val = (((insn >> 0) & (15 << 0)));
2236 case 0 : /* fall through */
2237 case 1 : /* fall through */
2238 case 2 : /* fall through */
2239 case 3 : /* fall through */
2240 case 4 : /* fall through */
2241 case 5 : /* fall through */
2242 case 6 : /* fall through */
2243 case 7 : /* fall through */
2244 case 8 : /* fall through */
2245 case 9 : /* fall through */
2246 case 10 : /* fall through */
2247 case 11 : /* fall through */
2248 case 12 : /* fall through */
2249 case 13 : /* fall through */
2251 if ((base_insn & 0xbf0) == 0xa80)
2252 { itype = CRISV32F_INSN_SUB_M_B_M; goto extract_sfmt_add_m_b_m; }
2253 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2255 if ((base_insn & 0xfff) == 0xe8f)
2256 { itype = CRISV32F_INSN_SUBCBR; goto extract_sfmt_addcbr; }
2257 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2258 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2263 unsigned int val = (((insn >> 0) & (15 << 0)));
2266 case 0 : /* fall through */
2267 case 1 : /* fall through */
2268 case 2 : /* fall through */
2269 case 3 : /* fall through */
2270 case 4 : /* fall through */
2271 case 5 : /* fall through */
2272 case 6 : /* fall through */
2273 case 7 : /* fall through */
2274 case 8 : /* fall through */
2275 case 9 : /* fall through */
2276 case 10 : /* fall through */
2277 case 11 : /* fall through */
2278 case 12 : /* fall through */
2279 case 13 : /* fall through */
2281 if ((base_insn & 0xbf0) == 0xa90)
2282 { itype = CRISV32F_INSN_SUB_M_W_M; goto extract_sfmt_add_m_w_m; }
2283 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2285 if ((base_insn & 0xfff) == 0xe9f)
2286 { itype = CRISV32F_INSN_SUBCWR; goto extract_sfmt_addcwr; }
2287 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2288 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2293 unsigned int val = (((insn >> 0) & (15 << 0)));
2296 case 0 : /* fall through */
2297 case 1 : /* fall through */
2298 case 2 : /* fall through */
2299 case 3 : /* fall through */
2300 case 4 : /* fall through */
2301 case 5 : /* fall through */
2302 case 6 : /* fall through */
2303 case 7 : /* fall through */
2304 case 8 : /* fall through */
2305 case 9 : /* fall through */
2306 case 10 : /* fall through */
2307 case 11 : /* fall through */
2308 case 12 : /* fall through */
2309 case 13 : /* fall through */
2311 if ((base_insn & 0xbf0) == 0xaa0)
2312 { itype = CRISV32F_INSN_SUB_M_D_M; goto extract_sfmt_add_m_d_m; }
2313 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2315 if ((base_insn & 0xfff) == 0xeaf)
2316 { itype = CRISV32F_INSN_SUBCDR; goto extract_sfmt_addcdr; }
2317 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2318 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2322 if ((base_insn & 0xfff) == 0xebf)
2323 { itype = CRISV32F_INSN_BAS_C; goto extract_sfmt_bas_c; }
2324 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2327 unsigned int val = (((insn >> 0) & (15 << 0)));
2330 case 0 : /* fall through */
2331 case 1 : /* fall through */
2332 case 2 : /* fall through */
2333 case 3 : /* fall through */
2334 case 4 : /* fall through */
2335 case 5 : /* fall through */
2336 case 6 : /* fall through */
2337 case 7 : /* fall through */
2338 case 8 : /* fall through */
2339 case 9 : /* fall through */
2340 case 10 : /* fall through */
2341 case 11 : /* fall through */
2342 case 12 : /* fall through */
2343 case 13 : /* fall through */
2345 if ((base_insn & 0xbf0) == 0xac0)
2346 { itype = CRISV32F_INSN_CMP_M_B_M; goto extract_sfmt_cmp_m_b_m; }
2347 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2349 if ((base_insn & 0xfff) == 0xecf)
2350 { itype = CRISV32F_INSN_CMPCBR; goto extract_sfmt_cmpcbr; }
2351 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2352 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2357 unsigned int val = (((insn >> 0) & (15 << 0)));
2360 case 0 : /* fall through */
2361 case 1 : /* fall through */
2362 case 2 : /* fall through */
2363 case 3 : /* fall through */
2364 case 4 : /* fall through */
2365 case 5 : /* fall through */
2366 case 6 : /* fall through */
2367 case 7 : /* fall through */
2368 case 8 : /* fall through */
2369 case 9 : /* fall through */
2370 case 10 : /* fall through */
2371 case 11 : /* fall through */
2372 case 12 : /* fall through */
2373 case 13 : /* fall through */
2375 if ((base_insn & 0xbf0) == 0xad0)
2376 { itype = CRISV32F_INSN_CMP_M_W_M; goto extract_sfmt_cmp_m_w_m; }
2377 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2379 if ((base_insn & 0xfff) == 0xedf)
2380 { itype = CRISV32F_INSN_CMPCWR; goto extract_sfmt_cmpcwr; }
2381 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2382 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2387 unsigned int val = (((insn >> 0) & (15 << 0)));
2390 case 0 : /* fall through */
2391 case 1 : /* fall through */
2392 case 2 : /* fall through */
2393 case 3 : /* fall through */
2394 case 4 : /* fall through */
2395 case 5 : /* fall through */
2396 case 6 : /* fall through */
2397 case 7 : /* fall through */
2398 case 8 : /* fall through */
2399 case 9 : /* fall through */
2400 case 10 : /* fall through */
2401 case 11 : /* fall through */
2402 case 12 : /* fall through */
2403 case 13 : /* fall through */
2405 if ((base_insn & 0xbf0) == 0xae0)
2406 { itype = CRISV32F_INSN_CMP_M_D_M; goto extract_sfmt_cmp_m_d_m; }
2407 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2409 if ((base_insn & 0xfff) == 0xeef)
2410 { itype = CRISV32F_INSN_CMPCDR; goto extract_sfmt_cmpcdr; }
2411 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2412 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2416 if ((base_insn & 0xfff) == 0xeff)
2417 { itype = CRISV32F_INSN_BASC_C; goto extract_sfmt_bas_c; }
2418 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2421 unsigned int val = (((insn >> 0) & (15 << 0)));
2424 case 0 : /* fall through */
2425 case 1 : /* fall through */
2426 case 2 : /* fall through */
2427 case 3 : /* fall through */
2428 case 4 : /* fall through */
2429 case 5 : /* fall through */
2430 case 6 : /* fall through */
2431 case 7 : /* fall through */
2432 case 8 : /* fall through */
2433 case 9 : /* fall through */
2434 case 10 : /* fall through */
2435 case 11 : /* fall through */
2436 case 12 : /* fall through */
2437 case 13 : /* fall through */
2439 if ((base_insn & 0xbf0) == 0xb00)
2440 { itype = CRISV32F_INSN_AND_M_B_M; goto extract_sfmt_and_m_b_m; }
2441 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2443 if ((base_insn & 0xfff) == 0xf0f)
2444 { itype = CRISV32F_INSN_ANDCBR; goto extract_sfmt_andcbr; }
2445 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2446 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2451 unsigned int val = (((insn >> 0) & (15 << 0)));
2454 case 0 : /* fall through */
2455 case 1 : /* fall through */
2456 case 2 : /* fall through */
2457 case 3 : /* fall through */
2458 case 4 : /* fall through */
2459 case 5 : /* fall through */
2460 case 6 : /* fall through */
2461 case 7 : /* fall through */
2462 case 8 : /* fall through */
2463 case 9 : /* fall through */
2464 case 10 : /* fall through */
2465 case 11 : /* fall through */
2466 case 12 : /* fall through */
2467 case 13 : /* fall through */
2469 if ((base_insn & 0xbf0) == 0xb10)
2470 { itype = CRISV32F_INSN_AND_M_W_M; goto extract_sfmt_and_m_w_m; }
2471 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2473 if ((base_insn & 0xfff) == 0xf1f)
2474 { itype = CRISV32F_INSN_ANDCWR; goto extract_sfmt_andcwr; }
2475 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2476 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2481 unsigned int val = (((insn >> 0) & (15 << 0)));
2484 case 0 : /* fall through */
2485 case 1 : /* fall through */
2486 case 2 : /* fall through */
2487 case 3 : /* fall through */
2488 case 4 : /* fall through */
2489 case 5 : /* fall through */
2490 case 6 : /* fall through */
2491 case 7 : /* fall through */
2492 case 8 : /* fall through */
2493 case 9 : /* fall through */
2494 case 10 : /* fall through */
2495 case 11 : /* fall through */
2496 case 12 : /* fall through */
2497 case 13 : /* fall through */
2499 if ((base_insn & 0xbf0) == 0xb20)
2500 { itype = CRISV32F_INSN_AND_M_D_M; goto extract_sfmt_and_m_d_m; }
2501 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2503 if ((base_insn & 0xfff) == 0xf2f)
2504 { itype = CRISV32F_INSN_ANDCDR; goto extract_sfmt_andcdr; }
2505 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2506 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2510 if ((base_insn & 0xfff) == 0xf3f)
2511 { itype = CRISV32F_INSN_JASC_C; goto extract_sfmt_jas_c; }
2512 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2515 unsigned int val = (((insn >> 0) & (15 << 0)));
2518 case 0 : /* fall through */
2519 case 1 : /* fall through */
2520 case 2 : /* fall through */
2521 case 3 : /* fall through */
2522 case 4 : /* fall through */
2523 case 5 : /* fall through */
2524 case 6 : /* fall through */
2525 case 7 : /* fall through */
2526 case 8 : /* fall through */
2527 case 9 : /* fall through */
2528 case 10 : /* fall through */
2529 case 11 : /* fall through */
2530 case 12 : /* fall through */
2531 case 13 : /* fall through */
2533 if ((base_insn & 0xbf0) == 0xb40)
2534 { itype = CRISV32F_INSN_OR_M_B_M; goto extract_sfmt_and_m_b_m; }
2535 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2537 if ((base_insn & 0xfff) == 0xf4f)
2538 { itype = CRISV32F_INSN_ORCBR; goto extract_sfmt_andcbr; }
2539 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2540 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2545 unsigned int val = (((insn >> 0) & (15 << 0)));
2548 case 0 : /* fall through */
2549 case 1 : /* fall through */
2550 case 2 : /* fall through */
2551 case 3 : /* fall through */
2552 case 4 : /* fall through */
2553 case 5 : /* fall through */
2554 case 6 : /* fall through */
2555 case 7 : /* fall through */
2556 case 8 : /* fall through */
2557 case 9 : /* fall through */
2558 case 10 : /* fall through */
2559 case 11 : /* fall through */
2560 case 12 : /* fall through */
2561 case 13 : /* fall through */
2563 if ((base_insn & 0xbf0) == 0xb50)
2564 { itype = CRISV32F_INSN_OR_M_W_M; goto extract_sfmt_and_m_w_m; }
2565 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2567 if ((base_insn & 0xfff) == 0xf5f)
2568 { itype = CRISV32F_INSN_ORCWR; goto extract_sfmt_andcwr; }
2569 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2570 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2575 unsigned int val = (((insn >> 0) & (15 << 0)));
2578 case 0 : /* fall through */
2579 case 1 : /* fall through */
2580 case 2 : /* fall through */
2581 case 3 : /* fall through */
2582 case 4 : /* fall through */
2583 case 5 : /* fall through */
2584 case 6 : /* fall through */
2585 case 7 : /* fall through */
2586 case 8 : /* fall through */
2587 case 9 : /* fall through */
2588 case 10 : /* fall through */
2589 case 11 : /* fall through */
2590 case 12 : /* fall through */
2591 case 13 : /* fall through */
2593 if ((base_insn & 0xbf0) == 0xb60)
2594 { itype = CRISV32F_INSN_OR_M_D_M; goto extract_sfmt_and_m_d_m; }
2595 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2597 if ((base_insn & 0xfff) == 0xf6f)
2598 { itype = CRISV32F_INSN_ORCDR; goto extract_sfmt_andcdr; }
2599 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2600 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2604 if ((base_insn & 0xff0) == 0xf70)
2605 { itype = CRISV32F_INSN_MOVE_SS_R; goto extract_sfmt_move_ss_r; }
2606 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2607 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2612 /* The instruction has been decoded, now extract the fields. */
2616 const IDESC *idesc = &crisv32f_insn_data[itype];
2617 #define FLD(f) abuf->fields.fmt_empty.f
2620 /* Record the fields for the semantic handler. */
2621 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_empty", (char *) 0));
2627 extract_sfmt_move_b_r:
2629 const IDESC *idesc = &crisv32f_insn_data[itype];
2630 CGEN_INSN_INT insn = base_insn;
2631 #define FLD(f) abuf->fields.sfmt_addc_m.f
2635 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2636 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2638 /* Record the fields for the semantic handler. */
2639 FLD (f_operand1) = f_operand1;
2640 FLD (f_operand2) = f_operand2;
2641 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_b_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2643 #if WITH_PROFILE_MODEL_P
2644 /* Record the fields for profiling. */
2645 if (PROFILE_MODEL_P (current_cpu))
2647 FLD (in_Rs) = f_operand1;
2648 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
2655 extract_sfmt_move_d_r:
2657 const IDESC *idesc = &crisv32f_insn_data[itype];
2658 CGEN_INSN_INT insn = base_insn;
2659 #define FLD(f) abuf->fields.sfmt_addc_m.f
2663 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2664 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2666 /* Record the fields for the semantic handler. */
2667 FLD (f_operand1) = f_operand1;
2668 FLD (f_operand2) = f_operand2;
2669 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_d_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2671 #if WITH_PROFILE_MODEL_P
2672 /* Record the fields for profiling. */
2673 if (PROFILE_MODEL_P (current_cpu))
2675 FLD (in_Rs) = f_operand1;
2676 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
2685 const IDESC *idesc = &crisv32f_insn_data[itype];
2686 CGEN_INSN_INT insn = base_insn;
2687 #define FLD(f) abuf->fields.sfmt_moveq.f
2691 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2692 f_s6 = EXTRACT_LSB0_INT (insn, 16, 5, 6);
2694 /* Record the fields for the semantic handler. */
2696 FLD (f_operand2) = f_operand2;
2697 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_moveq", "f_s6 0x%x", 'x', f_s6, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2699 #if WITH_PROFILE_MODEL_P
2700 /* Record the fields for profiling. */
2701 if (PROFILE_MODEL_P (current_cpu))
2703 FLD (out_Rd) = f_operand2;
2710 extract_sfmt_movs_b_r:
2712 const IDESC *idesc = &crisv32f_insn_data[itype];
2713 CGEN_INSN_INT insn = base_insn;
2714 #define FLD(f) abuf->fields.sfmt_muls_b.f
2718 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2719 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2721 /* Record the fields for the semantic handler. */
2722 FLD (f_operand1) = f_operand1;
2723 FLD (f_operand2) = f_operand2;
2724 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movs_b_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2726 #if WITH_PROFILE_MODEL_P
2727 /* Record the fields for profiling. */
2728 if (PROFILE_MODEL_P (current_cpu))
2730 FLD (in_Rs) = f_operand1;
2731 FLD (out_Rd) = f_operand2;
2738 extract_sfmt_movecbr:
2740 const IDESC *idesc = &crisv32f_insn_data[itype];
2741 CGEN_INSN_INT insn = base_insn;
2742 #define FLD(f) abuf->fields.sfmt_addcbr.f
2743 INT f_indir_pc__byte;
2745 /* Contents of trailing part of insn. */
2748 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2749 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2750 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2752 /* Record the fields for the semantic handler. */
2753 FLD (f_operand2) = f_operand2;
2754 FLD (f_indir_pc__byte) = f_indir_pc__byte;
2755 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movecbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
2757 #if WITH_PROFILE_MODEL_P
2758 /* Record the fields for profiling. */
2759 if (PROFILE_MODEL_P (current_cpu))
2761 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
2768 extract_sfmt_movecwr:
2770 const IDESC *idesc = &crisv32f_insn_data[itype];
2771 CGEN_INSN_INT insn = base_insn;
2772 #define FLD(f) abuf->fields.sfmt_addcwr.f
2773 INT f_indir_pc__word;
2775 /* Contents of trailing part of insn. */
2778 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2779 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2780 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2782 /* Record the fields for the semantic handler. */
2783 FLD (f_operand2) = f_operand2;
2784 FLD (f_indir_pc__word) = f_indir_pc__word;
2785 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movecwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
2787 #if WITH_PROFILE_MODEL_P
2788 /* Record the fields for profiling. */
2789 if (PROFILE_MODEL_P (current_cpu))
2791 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
2798 extract_sfmt_movecdr:
2800 const IDESC *idesc = &crisv32f_insn_data[itype];
2801 CGEN_INSN_INT insn = base_insn;
2802 #define FLD(f) abuf->fields.sfmt_bound_cd.f
2803 INT f_indir_pc__dword;
2805 /* Contents of trailing part of insn. */
2808 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2809 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
2810 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2812 /* Record the fields for the semantic handler. */
2813 FLD (f_indir_pc__dword) = f_indir_pc__dword;
2814 FLD (f_operand2) = f_operand2;
2815 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movecdr", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2817 #if WITH_PROFILE_MODEL_P
2818 /* Record the fields for profiling. */
2819 if (PROFILE_MODEL_P (current_cpu))
2821 FLD (out_Rd) = f_operand2;
2828 extract_sfmt_movscbr:
2830 const IDESC *idesc = &crisv32f_insn_data[itype];
2831 CGEN_INSN_INT insn = base_insn;
2832 #define FLD(f) abuf->fields.sfmt_bound_cb.f
2834 INT f_indir_pc__byte;
2835 /* Contents of trailing part of insn. */
2838 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2839 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2840 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2842 /* Record the fields for the semantic handler. */
2843 FLD (f_indir_pc__byte) = f_indir_pc__byte;
2844 FLD (f_operand2) = f_operand2;
2845 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movscbr", "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2847 #if WITH_PROFILE_MODEL_P
2848 /* Record the fields for profiling. */
2849 if (PROFILE_MODEL_P (current_cpu))
2851 FLD (out_Rd) = f_operand2;
2858 extract_sfmt_movscwr:
2860 const IDESC *idesc = &crisv32f_insn_data[itype];
2861 CGEN_INSN_INT insn = base_insn;
2862 #define FLD(f) abuf->fields.sfmt_bound_cw.f
2864 INT f_indir_pc__word;
2865 /* Contents of trailing part of insn. */
2868 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2869 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2870 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2872 /* Record the fields for the semantic handler. */
2873 FLD (f_indir_pc__word) = f_indir_pc__word;
2874 FLD (f_operand2) = f_operand2;
2875 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movscwr", "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2877 #if WITH_PROFILE_MODEL_P
2878 /* Record the fields for profiling. */
2879 if (PROFILE_MODEL_P (current_cpu))
2881 FLD (out_Rd) = f_operand2;
2888 extract_sfmt_movucbr:
2890 const IDESC *idesc = &crisv32f_insn_data[itype];
2891 CGEN_INSN_INT insn = base_insn;
2892 #define FLD(f) abuf->fields.sfmt_bound_cb.f
2894 INT f_indir_pc__byte;
2895 /* Contents of trailing part of insn. */
2898 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2899 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2900 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2902 /* Record the fields for the semantic handler. */
2903 FLD (f_indir_pc__byte) = f_indir_pc__byte;
2904 FLD (f_operand2) = f_operand2;
2905 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movucbr", "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2907 #if WITH_PROFILE_MODEL_P
2908 /* Record the fields for profiling. */
2909 if (PROFILE_MODEL_P (current_cpu))
2911 FLD (out_Rd) = f_operand2;
2918 extract_sfmt_movucwr:
2920 const IDESC *idesc = &crisv32f_insn_data[itype];
2921 CGEN_INSN_INT insn = base_insn;
2922 #define FLD(f) abuf->fields.sfmt_bound_cw.f
2924 INT f_indir_pc__word;
2925 /* Contents of trailing part of insn. */
2928 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2929 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2930 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2932 /* Record the fields for the semantic handler. */
2933 FLD (f_indir_pc__word) = f_indir_pc__word;
2934 FLD (f_operand2) = f_operand2;
2935 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movucwr", "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2937 #if WITH_PROFILE_MODEL_P
2938 /* Record the fields for profiling. */
2939 if (PROFILE_MODEL_P (current_cpu))
2941 FLD (out_Rd) = f_operand2;
2950 const IDESC *idesc = &crisv32f_insn_data[itype];
2951 CGEN_INSN_INT insn = base_insn;
2952 #define FLD(f) abuf->fields.sfmt_addq.f
2956 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2957 f_u6 = EXTRACT_LSB0_UINT (insn, 16, 5, 6);
2959 /* Record the fields for the semantic handler. */
2960 FLD (f_operand2) = f_operand2;
2962 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addq", "f_operand2 0x%x", 'x', f_operand2, "f_u6 0x%x", 'x', f_u6, (char *) 0));
2964 #if WITH_PROFILE_MODEL_P
2965 /* Record the fields for profiling. */
2966 if (PROFILE_MODEL_P (current_cpu))
2968 FLD (in_Rd) = f_operand2;
2969 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
2976 extract_sfmt_cmp_r_b_r:
2978 const IDESC *idesc = &crisv32f_insn_data[itype];
2979 CGEN_INSN_INT insn = base_insn;
2980 #define FLD(f) abuf->fields.sfmt_muls_b.f
2984 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2985 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2987 /* Record the fields for the semantic handler. */
2988 FLD (f_operand2) = f_operand2;
2989 FLD (f_operand1) = f_operand1;
2990 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmp_r_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
2992 #if WITH_PROFILE_MODEL_P
2993 /* Record the fields for profiling. */
2994 if (PROFILE_MODEL_P (current_cpu))
2996 FLD (in_Rd) = f_operand2;
2997 FLD (in_Rs) = f_operand1;
3004 extract_sfmt_cmp_m_b_m:
3006 const IDESC *idesc = &crisv32f_insn_data[itype];
3007 CGEN_INSN_INT insn = base_insn;
3008 #define FLD(f) abuf->fields.sfmt_addc_m.f
3013 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3014 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3015 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3017 /* Record the fields for the semantic handler. */
3018 FLD (f_operand2) = f_operand2;
3019 FLD (f_operand1) = f_operand1;
3020 FLD (f_memmode) = f_memmode;
3021 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmp_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3023 #if WITH_PROFILE_MODEL_P
3024 /* Record the fields for profiling. */
3025 if (PROFILE_MODEL_P (current_cpu))
3027 FLD (in_Rd) = f_operand2;
3028 FLD (in_Rs) = f_operand1;
3029 FLD (out_Rs) = f_operand1;
3036 extract_sfmt_cmp_m_w_m:
3038 const IDESC *idesc = &crisv32f_insn_data[itype];
3039 CGEN_INSN_INT insn = base_insn;
3040 #define FLD(f) abuf->fields.sfmt_addc_m.f
3045 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3046 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3047 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3049 /* Record the fields for the semantic handler. */
3050 FLD (f_operand2) = f_operand2;
3051 FLD (f_operand1) = f_operand1;
3052 FLD (f_memmode) = f_memmode;
3053 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmp_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3055 #if WITH_PROFILE_MODEL_P
3056 /* Record the fields for profiling. */
3057 if (PROFILE_MODEL_P (current_cpu))
3059 FLD (in_Rd) = f_operand2;
3060 FLD (in_Rs) = f_operand1;
3061 FLD (out_Rs) = f_operand1;
3068 extract_sfmt_cmp_m_d_m:
3070 const IDESC *idesc = &crisv32f_insn_data[itype];
3071 CGEN_INSN_INT insn = base_insn;
3072 #define FLD(f) abuf->fields.sfmt_addc_m.f
3077 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3078 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3079 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3081 /* Record the fields for the semantic handler. */
3082 FLD (f_operand2) = f_operand2;
3083 FLD (f_operand1) = f_operand1;
3084 FLD (f_memmode) = f_memmode;
3085 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmp_m_d_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3087 #if WITH_PROFILE_MODEL_P
3088 /* Record the fields for profiling. */
3089 if (PROFILE_MODEL_P (current_cpu))
3091 FLD (in_Rd) = f_operand2;
3092 FLD (in_Rs) = f_operand1;
3093 FLD (out_Rs) = f_operand1;
3100 extract_sfmt_cmpcbr:
3102 const IDESC *idesc = &crisv32f_insn_data[itype];
3103 CGEN_INSN_INT insn = base_insn;
3104 #define FLD(f) abuf->fields.sfmt_bound_cb.f
3105 INT f_indir_pc__byte;
3107 /* Contents of trailing part of insn. */
3110 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3111 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3112 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3114 /* Record the fields for the semantic handler. */
3115 FLD (f_operand2) = f_operand2;
3116 FLD (f_indir_pc__byte) = f_indir_pc__byte;
3117 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpcbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
3119 #if WITH_PROFILE_MODEL_P
3120 /* Record the fields for profiling. */
3121 if (PROFILE_MODEL_P (current_cpu))
3123 FLD (in_Rd) = f_operand2;
3130 extract_sfmt_cmpcwr:
3132 const IDESC *idesc = &crisv32f_insn_data[itype];
3133 CGEN_INSN_INT insn = base_insn;
3134 #define FLD(f) abuf->fields.sfmt_bound_cw.f
3135 INT f_indir_pc__word;
3137 /* Contents of trailing part of insn. */
3140 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3141 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3142 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3144 /* Record the fields for the semantic handler. */
3145 FLD (f_operand2) = f_operand2;
3146 FLD (f_indir_pc__word) = f_indir_pc__word;
3147 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpcwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
3149 #if WITH_PROFILE_MODEL_P
3150 /* Record the fields for profiling. */
3151 if (PROFILE_MODEL_P (current_cpu))
3153 FLD (in_Rd) = f_operand2;
3160 extract_sfmt_cmpcdr:
3162 const IDESC *idesc = &crisv32f_insn_data[itype];
3163 CGEN_INSN_INT insn = base_insn;
3164 #define FLD(f) abuf->fields.sfmt_bound_cd.f
3165 INT f_indir_pc__dword;
3167 /* Contents of trailing part of insn. */
3170 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3171 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
3172 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3174 /* Record the fields for the semantic handler. */
3175 FLD (f_operand2) = f_operand2;
3176 FLD (f_indir_pc__dword) = f_indir_pc__dword;
3177 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpcdr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
3179 #if WITH_PROFILE_MODEL_P
3180 /* Record the fields for profiling. */
3181 if (PROFILE_MODEL_P (current_cpu))
3183 FLD (in_Rd) = f_operand2;
3192 const IDESC *idesc = &crisv32f_insn_data[itype];
3193 CGEN_INSN_INT insn = base_insn;
3194 #define FLD(f) abuf->fields.sfmt_andq.f
3198 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3199 f_s6 = EXTRACT_LSB0_INT (insn, 16, 5, 6);
3201 /* Record the fields for the semantic handler. */
3202 FLD (f_operand2) = f_operand2;
3204 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpq", "f_operand2 0x%x", 'x', f_operand2, "f_s6 0x%x", 'x', f_s6, (char *) 0));
3206 #if WITH_PROFILE_MODEL_P
3207 /* Record the fields for profiling. */
3208 if (PROFILE_MODEL_P (current_cpu))
3210 FLD (in_Rd) = f_operand2;
3217 extract_sfmt_cmpucbr:
3219 const IDESC *idesc = &crisv32f_insn_data[itype];
3220 CGEN_INSN_INT insn = base_insn;
3221 #define FLD(f) abuf->fields.sfmt_bound_cb.f
3222 INT f_indir_pc__byte;
3224 /* Contents of trailing part of insn. */
3227 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3228 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3229 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3231 /* Record the fields for the semantic handler. */
3232 FLD (f_operand2) = f_operand2;
3233 FLD (f_indir_pc__byte) = f_indir_pc__byte;
3234 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpucbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
3236 #if WITH_PROFILE_MODEL_P
3237 /* Record the fields for profiling. */
3238 if (PROFILE_MODEL_P (current_cpu))
3240 FLD (in_Rd) = f_operand2;
3247 extract_sfmt_cmpucwr:
3249 const IDESC *idesc = &crisv32f_insn_data[itype];
3250 CGEN_INSN_INT insn = base_insn;
3251 #define FLD(f) abuf->fields.sfmt_bound_cw.f
3252 INT f_indir_pc__word;
3254 /* Contents of trailing part of insn. */
3257 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3258 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3259 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3261 /* Record the fields for the semantic handler. */
3262 FLD (f_operand2) = f_operand2;
3263 FLD (f_indir_pc__word) = f_indir_pc__word;
3264 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpucwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
3266 #if WITH_PROFILE_MODEL_P
3267 /* Record the fields for profiling. */
3268 if (PROFILE_MODEL_P (current_cpu))
3270 FLD (in_Rd) = f_operand2;
3277 extract_sfmt_move_m_b_m:
3279 const IDESC *idesc = &crisv32f_insn_data[itype];
3280 CGEN_INSN_INT insn = base_insn;
3281 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3286 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3287 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3288 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3290 /* Record the fields for the semantic handler. */
3291 FLD (f_operand1) = f_operand1;
3292 FLD (f_operand2) = f_operand2;
3293 FLD (f_memmode) = f_memmode;
3294 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_m_b_m", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3296 #if WITH_PROFILE_MODEL_P
3297 /* Record the fields for profiling. */
3298 if (PROFILE_MODEL_P (current_cpu))
3300 FLD (in_Rs) = f_operand1;
3301 FLD (out_Rs) = f_operand1;
3302 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3309 extract_sfmt_move_m_w_m:
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
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);
3322 /* Record the fields for the semantic handler. */
3323 FLD (f_operand1) = f_operand1;
3324 FLD (f_operand2) = f_operand2;
3325 FLD (f_memmode) = f_memmode;
3326 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_m_w_m", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3328 #if WITH_PROFILE_MODEL_P
3329 /* Record the fields for profiling. */
3330 if (PROFILE_MODEL_P (current_cpu))
3332 FLD (in_Rs) = f_operand1;
3333 FLD (out_Rs) = f_operand1;
3334 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3341 extract_sfmt_move_m_d_m:
3343 const IDESC *idesc = &crisv32f_insn_data[itype];
3344 CGEN_INSN_INT insn = base_insn;
3345 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3350 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3351 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3352 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3354 /* Record the fields for the semantic handler. */
3355 FLD (f_operand1) = f_operand1;
3356 FLD (f_operand2) = f_operand2;
3357 FLD (f_memmode) = f_memmode;
3358 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_m_d_m", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3360 #if WITH_PROFILE_MODEL_P
3361 /* Record the fields for profiling. */
3362 if (PROFILE_MODEL_P (current_cpu))
3364 FLD (in_Rs) = f_operand1;
3365 FLD (out_Rs) = f_operand1;
3366 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3373 extract_sfmt_movs_m_b_m:
3375 const IDESC *idesc = &crisv32f_insn_data[itype];
3376 CGEN_INSN_INT insn = base_insn;
3377 #define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
3382 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3383 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3384 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3386 /* Record the fields for the semantic handler. */
3387 FLD (f_operand1) = f_operand1;
3388 FLD (f_memmode) = f_memmode;
3389 FLD (f_operand2) = f_operand2;
3390 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movs_m_b_m", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3392 #if WITH_PROFILE_MODEL_P
3393 /* Record the fields for profiling. */
3394 if (PROFILE_MODEL_P (current_cpu))
3396 FLD (in_Rs) = f_operand1;
3397 FLD (out_Rd) = f_operand2;
3398 FLD (out_Rs) = f_operand1;
3405 extract_sfmt_movs_m_w_m:
3407 const IDESC *idesc = &crisv32f_insn_data[itype];
3408 CGEN_INSN_INT insn = base_insn;
3409 #define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
3414 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3415 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3416 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3418 /* Record the fields for the semantic handler. */
3419 FLD (f_operand1) = f_operand1;
3420 FLD (f_memmode) = f_memmode;
3421 FLD (f_operand2) = f_operand2;
3422 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movs_m_w_m", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3424 #if WITH_PROFILE_MODEL_P
3425 /* Record the fields for profiling. */
3426 if (PROFILE_MODEL_P (current_cpu))
3428 FLD (in_Rs) = f_operand1;
3429 FLD (out_Rd) = f_operand2;
3430 FLD (out_Rs) = f_operand1;
3437 extract_sfmt_move_r_sprv32:
3439 const IDESC *idesc = &crisv32f_insn_data[itype];
3440 CGEN_INSN_INT insn = base_insn;
3441 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
3445 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3446 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3448 /* Record the fields for the semantic handler. */
3449 FLD (f_operand1) = f_operand1;
3450 FLD (f_operand2) = f_operand2;
3451 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_r_sprv32", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3453 #if WITH_PROFILE_MODEL_P
3454 /* Record the fields for profiling. */
3455 if (PROFILE_MODEL_P (current_cpu))
3457 FLD (in_Rs) = f_operand1;
3458 FLD (out_Pd) = f_operand2;
3465 extract_sfmt_move_spr_rv32:
3467 const IDESC *idesc = &crisv32f_insn_data[itype];
3468 CGEN_INSN_INT insn = base_insn;
3469 #define FLD(f) abuf->fields.sfmt_mcp.f
3473 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3474 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3476 /* Record the fields for the semantic handler. */
3477 FLD (f_operand2) = f_operand2;
3478 FLD (f_operand1) = f_operand1;
3479 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_spr_rv32", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
3481 #if WITH_PROFILE_MODEL_P
3482 /* Record the fields for profiling. */
3483 if (PROFILE_MODEL_P (current_cpu))
3485 FLD (in_Ps) = f_operand2;
3486 FLD (out_h_gr_SI_index_of__DFLT_Rs) = FLD (f_operand1);
3493 extract_sfmt_move_m_sprv32:
3495 const IDESC *idesc = &crisv32f_insn_data[itype];
3496 CGEN_INSN_INT insn = base_insn;
3497 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
3502 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3503 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3504 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3506 /* Record the fields for the semantic handler. */
3507 FLD (f_operand1) = f_operand1;
3508 FLD (f_operand2) = f_operand2;
3509 FLD (f_memmode) = f_memmode;
3510 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_m_sprv32", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3512 #if WITH_PROFILE_MODEL_P
3513 /* Record the fields for profiling. */
3514 if (PROFILE_MODEL_P (current_cpu))
3516 FLD (in_Rs) = f_operand1;
3517 FLD (out_Pd) = f_operand2;
3518 FLD (out_Rs) = f_operand1;
3525 extract_sfmt_move_c_sprv32_p2:
3527 const IDESC *idesc = &crisv32f_insn_data[itype];
3528 CGEN_INSN_INT insn = base_insn;
3529 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
3530 INT f_indir_pc__dword;
3532 /* Contents of trailing part of insn. */
3535 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3536 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
3537 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3539 /* Record the fields for the semantic handler. */
3540 FLD (f_indir_pc__dword) = f_indir_pc__dword;
3541 FLD (f_operand2) = f_operand2;
3542 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_c_sprv32_p2", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3544 #if WITH_PROFILE_MODEL_P
3545 /* Record the fields for profiling. */
3546 if (PROFILE_MODEL_P (current_cpu))
3548 FLD (out_Pd) = f_operand2;
3555 extract_sfmt_move_spr_mv32:
3557 const IDESC *idesc = &crisv32f_insn_data[itype];
3558 CGEN_INSN_INT insn = base_insn;
3559 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
3564 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3565 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3566 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3568 /* Record the fields for the semantic handler. */
3569 FLD (f_operand2) = f_operand2;
3570 FLD (f_operand1) = f_operand1;
3571 FLD (f_memmode) = f_memmode;
3572 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_spr_mv32", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3574 #if WITH_PROFILE_MODEL_P
3575 /* Record the fields for profiling. */
3576 if (PROFILE_MODEL_P (current_cpu))
3578 FLD (in_Ps) = f_operand2;
3579 FLD (in_Rs) = f_operand1;
3580 FLD (out_Rs) = f_operand1;
3587 extract_sfmt_move_ss_r:
3589 const IDESC *idesc = &crisv32f_insn_data[itype];
3590 CGEN_INSN_INT insn = base_insn;
3591 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
3595 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3596 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3598 /* Record the fields for the semantic handler. */
3599 FLD (f_operand2) = f_operand2;
3600 FLD (f_operand1) = f_operand1;
3601 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_ss_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
3603 #if WITH_PROFILE_MODEL_P
3604 /* Record the fields for profiling. */
3605 if (PROFILE_MODEL_P (current_cpu))
3607 FLD (out_Rs) = f_operand1;
3614 extract_sfmt_move_r_ss:
3616 const IDESC *idesc = &crisv32f_insn_data[itype];
3617 CGEN_INSN_INT insn = base_insn;
3618 #define FLD(f) abuf->fields.sfmt_mcp.f
3622 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3623 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3625 /* Record the fields for the semantic handler. */
3626 FLD (f_operand1) = f_operand1;
3627 FLD (f_operand2) = f_operand2;
3628 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_r_ss", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3630 #if WITH_PROFILE_MODEL_P
3631 /* Record the fields for profiling. */
3632 if (PROFILE_MODEL_P (current_cpu))
3634 FLD (in_Rs) = f_operand1;
3641 extract_sfmt_movem_r_m_v32:
3643 const IDESC *idesc = &crisv32f_insn_data[itype];
3644 CGEN_INSN_INT insn = base_insn;
3645 #define FLD(f) abuf->fields.sfmt_movem_r_m_v32.f
3650 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3651 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3652 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3654 /* Record the fields for the semantic handler. */
3655 FLD (f_operand2) = f_operand2;
3656 FLD (f_operand1) = f_operand1;
3657 FLD (f_memmode) = f_memmode;
3658 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movem_r_m_v32", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3660 #if WITH_PROFILE_MODEL_P
3661 /* Record the fields for profiling. */
3662 if (PROFILE_MODEL_P (current_cpu))
3664 FLD (in_Rd) = f_operand2;
3665 FLD (in_Rs) = f_operand1;
3666 FLD (in_h_gr_SI_0) = 0;
3667 FLD (in_h_gr_SI_1) = 1;
3668 FLD (in_h_gr_SI_10) = 10;
3669 FLD (in_h_gr_SI_11) = 11;
3670 FLD (in_h_gr_SI_12) = 12;
3671 FLD (in_h_gr_SI_13) = 13;
3672 FLD (in_h_gr_SI_14) = 14;
3673 FLD (in_h_gr_SI_15) = 15;
3674 FLD (in_h_gr_SI_2) = 2;
3675 FLD (in_h_gr_SI_3) = 3;
3676 FLD (in_h_gr_SI_4) = 4;
3677 FLD (in_h_gr_SI_5) = 5;
3678 FLD (in_h_gr_SI_6) = 6;
3679 FLD (in_h_gr_SI_7) = 7;
3680 FLD (in_h_gr_SI_8) = 8;
3681 FLD (in_h_gr_SI_9) = 9;
3682 FLD (out_Rs) = f_operand1;
3689 extract_sfmt_movem_m_r_v32:
3691 const IDESC *idesc = &crisv32f_insn_data[itype];
3692 CGEN_INSN_INT insn = base_insn;
3693 #define FLD(f) abuf->fields.sfmt_movem_m_r_v32.f
3698 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3699 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3700 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3702 /* Record the fields for the semantic handler. */
3703 FLD (f_operand2) = f_operand2;
3704 FLD (f_operand1) = f_operand1;
3705 FLD (f_memmode) = f_memmode;
3706 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movem_m_r_v32", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3708 #if WITH_PROFILE_MODEL_P
3709 /* Record the fields for profiling. */
3710 if (PROFILE_MODEL_P (current_cpu))
3712 FLD (in_Rd) = f_operand2;
3713 FLD (in_Rs) = f_operand1;
3714 FLD (out_Rs) = f_operand1;
3715 FLD (out_h_gr_SI_0) = 0;
3716 FLD (out_h_gr_SI_1) = 1;
3717 FLD (out_h_gr_SI_10) = 10;
3718 FLD (out_h_gr_SI_11) = 11;
3719 FLD (out_h_gr_SI_12) = 12;
3720 FLD (out_h_gr_SI_13) = 13;
3721 FLD (out_h_gr_SI_14) = 14;
3722 FLD (out_h_gr_SI_15) = 15;
3723 FLD (out_h_gr_SI_2) = 2;
3724 FLD (out_h_gr_SI_3) = 3;
3725 FLD (out_h_gr_SI_4) = 4;
3726 FLD (out_h_gr_SI_5) = 5;
3727 FLD (out_h_gr_SI_6) = 6;
3728 FLD (out_h_gr_SI_7) = 7;
3729 FLD (out_h_gr_SI_8) = 8;
3730 FLD (out_h_gr_SI_9) = 9;
3737 extract_sfmt_add_b_r:
3739 const IDESC *idesc = &crisv32f_insn_data[itype];
3740 CGEN_INSN_INT insn = base_insn;
3741 #define FLD(f) abuf->fields.sfmt_addc_m.f
3745 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3746 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3748 /* Record the fields for the semantic handler. */
3749 FLD (f_operand2) = f_operand2;
3750 FLD (f_operand1) = f_operand1;
3751 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
3753 #if WITH_PROFILE_MODEL_P
3754 /* Record the fields for profiling. */
3755 if (PROFILE_MODEL_P (current_cpu))
3757 FLD (in_Rd) = f_operand2;
3758 FLD (in_Rs) = f_operand1;
3759 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3766 extract_sfmt_add_d_r:
3768 const IDESC *idesc = &crisv32f_insn_data[itype];
3769 CGEN_INSN_INT insn = base_insn;
3770 #define FLD(f) abuf->fields.sfmt_addc_m.f
3774 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3775 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3777 /* Record the fields for the semantic handler. */
3778 FLD (f_operand2) = f_operand2;
3779 FLD (f_operand1) = f_operand1;
3780 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add_d_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
3782 #if WITH_PROFILE_MODEL_P
3783 /* Record the fields for profiling. */
3784 if (PROFILE_MODEL_P (current_cpu))
3786 FLD (in_Rd) = f_operand2;
3787 FLD (in_Rs) = f_operand1;
3788 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3795 extract_sfmt_add_m_b_m:
3797 const IDESC *idesc = &crisv32f_insn_data[itype];
3798 CGEN_INSN_INT insn = base_insn;
3799 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3804 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3805 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3806 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3808 /* Record the fields for the semantic handler. */
3809 FLD (f_operand2) = f_operand2;
3810 FLD (f_operand1) = f_operand1;
3811 FLD (f_memmode) = f_memmode;
3812 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3814 #if WITH_PROFILE_MODEL_P
3815 /* Record the fields for profiling. */
3816 if (PROFILE_MODEL_P (current_cpu))
3818 FLD (in_Rd) = f_operand2;
3819 FLD (in_Rs) = f_operand1;
3820 FLD (out_Rs) = f_operand1;
3821 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3828 extract_sfmt_add_m_w_m:
3830 const IDESC *idesc = &crisv32f_insn_data[itype];
3831 CGEN_INSN_INT insn = base_insn;
3832 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3837 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3838 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3839 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3841 /* Record the fields for the semantic handler. */
3842 FLD (f_operand2) = f_operand2;
3843 FLD (f_operand1) = f_operand1;
3844 FLD (f_memmode) = f_memmode;
3845 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3847 #if WITH_PROFILE_MODEL_P
3848 /* Record the fields for profiling. */
3849 if (PROFILE_MODEL_P (current_cpu))
3851 FLD (in_Rd) = f_operand2;
3852 FLD (in_Rs) = f_operand1;
3853 FLD (out_Rs) = f_operand1;
3854 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3861 extract_sfmt_add_m_d_m:
3863 const IDESC *idesc = &crisv32f_insn_data[itype];
3864 CGEN_INSN_INT insn = base_insn;
3865 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3870 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3871 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3872 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3874 /* Record the fields for the semantic handler. */
3875 FLD (f_operand2) = f_operand2;
3876 FLD (f_operand1) = f_operand1;
3877 FLD (f_memmode) = f_memmode;
3878 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add_m_d_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3880 #if WITH_PROFILE_MODEL_P
3881 /* Record the fields for profiling. */
3882 if (PROFILE_MODEL_P (current_cpu))
3884 FLD (in_Rd) = f_operand2;
3885 FLD (in_Rs) = f_operand1;
3886 FLD (out_Rs) = f_operand1;
3887 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3894 extract_sfmt_addcbr:
3896 const IDESC *idesc = &crisv32f_insn_data[itype];
3897 CGEN_INSN_INT insn = base_insn;
3898 #define FLD(f) abuf->fields.sfmt_addcbr.f
3899 INT f_indir_pc__byte;
3901 /* Contents of trailing part of insn. */
3904 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3905 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3906 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3908 /* Record the fields for the semantic handler. */
3909 FLD (f_operand2) = f_operand2;
3910 FLD (f_indir_pc__byte) = f_indir_pc__byte;
3911 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addcbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
3913 #if WITH_PROFILE_MODEL_P
3914 /* Record the fields for profiling. */
3915 if (PROFILE_MODEL_P (current_cpu))
3917 FLD (in_Rd) = f_operand2;
3918 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3925 extract_sfmt_addcwr:
3927 const IDESC *idesc = &crisv32f_insn_data[itype];
3928 CGEN_INSN_INT insn = base_insn;
3929 #define FLD(f) abuf->fields.sfmt_addcwr.f
3930 INT f_indir_pc__word;
3932 /* Contents of trailing part of insn. */
3935 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3936 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3937 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3939 /* Record the fields for the semantic handler. */
3940 FLD (f_operand2) = f_operand2;
3941 FLD (f_indir_pc__word) = f_indir_pc__word;
3942 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addcwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
3944 #if WITH_PROFILE_MODEL_P
3945 /* Record the fields for profiling. */
3946 if (PROFILE_MODEL_P (current_cpu))
3948 FLD (in_Rd) = f_operand2;
3949 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3956 extract_sfmt_addcdr:
3958 const IDESC *idesc = &crisv32f_insn_data[itype];
3959 CGEN_INSN_INT insn = base_insn;
3960 #define FLD(f) abuf->fields.sfmt_addcdr.f
3961 INT f_indir_pc__dword;
3963 /* Contents of trailing part of insn. */
3966 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3967 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
3968 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3970 /* Record the fields for the semantic handler. */
3971 FLD (f_operand2) = f_operand2;
3972 FLD (f_indir_pc__dword) = f_indir_pc__dword;
3973 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addcdr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
3975 #if WITH_PROFILE_MODEL_P
3976 /* Record the fields for profiling. */
3977 if (PROFILE_MODEL_P (current_cpu))
3979 FLD (in_Rd) = f_operand2;
3980 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3987 extract_sfmt_adds_m_b_m:
3989 const IDESC *idesc = &crisv32f_insn_data[itype];
3990 CGEN_INSN_INT insn = base_insn;
3991 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3996 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3997 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3998 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4000 /* Record the fields for the semantic handler. */
4001 FLD (f_operand2) = f_operand2;
4002 FLD (f_operand1) = f_operand1;
4003 FLD (f_memmode) = f_memmode;
4004 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_adds_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4006 #if WITH_PROFILE_MODEL_P
4007 /* Record the fields for profiling. */
4008 if (PROFILE_MODEL_P (current_cpu))
4010 FLD (in_Rd) = f_operand2;
4011 FLD (in_Rs) = f_operand1;
4012 FLD (out_Rs) = f_operand1;
4013 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
4020 extract_sfmt_adds_m_w_m:
4022 const IDESC *idesc = &crisv32f_insn_data[itype];
4023 CGEN_INSN_INT insn = base_insn;
4024 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4029 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4030 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4031 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4033 /* Record the fields for the semantic handler. */
4034 FLD (f_operand2) = f_operand2;
4035 FLD (f_operand1) = f_operand1;
4036 FLD (f_memmode) = f_memmode;
4037 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_adds_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4039 #if WITH_PROFILE_MODEL_P
4040 /* Record the fields for profiling. */
4041 if (PROFILE_MODEL_P (current_cpu))
4043 FLD (in_Rd) = f_operand2;
4044 FLD (in_Rs) = f_operand1;
4045 FLD (out_Rs) = f_operand1;
4046 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
4053 extract_sfmt_addscbr:
4055 const IDESC *idesc = &crisv32f_insn_data[itype];
4056 CGEN_INSN_INT insn = base_insn;
4057 #define FLD(f) abuf->fields.sfmt_addcbr.f
4058 INT f_indir_pc__byte;
4060 /* Contents of trailing part of insn. */
4063 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4064 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4065 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4067 /* Record the fields for the semantic handler. */
4068 FLD (f_operand2) = f_operand2;
4069 FLD (f_indir_pc__byte) = f_indir_pc__byte;
4070 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addscbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
4072 #if WITH_PROFILE_MODEL_P
4073 /* Record the fields for profiling. */
4074 if (PROFILE_MODEL_P (current_cpu))
4076 FLD (in_Rd) = f_operand2;
4077 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4084 extract_sfmt_addscwr:
4086 const IDESC *idesc = &crisv32f_insn_data[itype];
4087 CGEN_INSN_INT insn = base_insn;
4088 #define FLD(f) abuf->fields.sfmt_addcwr.f
4089 INT f_indir_pc__word;
4091 /* Contents of trailing part of insn. */
4094 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4095 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4096 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4098 /* Record the fields for the semantic handler. */
4099 FLD (f_operand2) = f_operand2;
4100 FLD (f_indir_pc__word) = f_indir_pc__word;
4101 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addscwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
4103 #if WITH_PROFILE_MODEL_P
4104 /* Record the fields for profiling. */
4105 if (PROFILE_MODEL_P (current_cpu))
4107 FLD (in_Rd) = f_operand2;
4108 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4115 extract_sfmt_addc_m:
4117 const IDESC *idesc = &crisv32f_insn_data[itype];
4118 CGEN_INSN_INT insn = base_insn;
4119 #define FLD(f) abuf->fields.sfmt_addc_m.f
4124 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4125 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4126 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4128 /* Record the fields for the semantic handler. */
4129 FLD (f_operand2) = f_operand2;
4130 FLD (f_operand1) = f_operand1;
4131 FLD (f_memmode) = f_memmode;
4132 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addc_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4134 #if WITH_PROFILE_MODEL_P
4135 /* Record the fields for profiling. */
4136 if (PROFILE_MODEL_P (current_cpu))
4138 FLD (in_Rd) = f_operand2;
4139 FLD (in_Rs) = f_operand1;
4140 FLD (out_Rs) = f_operand1;
4141 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4148 extract_sfmt_lapc_d:
4150 const IDESC *idesc = &crisv32f_insn_data[itype];
4151 CGEN_INSN_INT insn = base_insn;
4152 #define FLD(f) abuf->fields.sfmt_lapc_d.f
4153 SI f_indir_pc__dword_pcrel;
4155 /* Contents of trailing part of insn. */
4158 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4159 f_indir_pc__dword_pcrel = ((pc) + ((0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0))));
4160 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4162 /* Record the fields for the semantic handler. */
4163 FLD (f_operand2) = f_operand2;
4164 FLD (i_const32_pcrel) = f_indir_pc__dword_pcrel;
4165 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lapc_d", "f_operand2 0x%x", 'x', f_operand2, "const32_pcrel 0x%x", 'x', f_indir_pc__dword_pcrel, (char *) 0));
4167 #if WITH_PROFILE_MODEL_P
4168 /* Record the fields for profiling. */
4169 if (PROFILE_MODEL_P (current_cpu))
4171 FLD (out_Rd) = f_operand2;
4180 const IDESC *idesc = &crisv32f_insn_data[itype];
4181 CGEN_INSN_INT insn = base_insn;
4182 #define FLD(f) abuf->fields.sfmt_lapcq.f
4186 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4187 f_qo = ((pc) + (((EXTRACT_LSB0_UINT (insn, 16, 3, 4)) << (1))));
4189 /* Record the fields for the semantic handler. */
4190 FLD (f_operand2) = f_operand2;
4192 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lapcq", "f_operand2 0x%x", 'x', f_operand2, "qo 0x%x", 'x', f_qo, (char *) 0));
4194 #if WITH_PROFILE_MODEL_P
4195 /* Record the fields for profiling. */
4196 if (PROFILE_MODEL_P (current_cpu))
4198 FLD (out_Rd) = f_operand2;
4205 extract_sfmt_addi_b_r:
4207 const IDESC *idesc = &crisv32f_insn_data[itype];
4208 CGEN_INSN_INT insn = base_insn;
4209 #define FLD(f) abuf->fields.sfmt_addc_m.f
4213 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4214 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4216 /* Record the fields for the semantic handler. */
4217 FLD (f_operand2) = f_operand2;
4218 FLD (f_operand1) = f_operand1;
4219 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addi_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4221 #if WITH_PROFILE_MODEL_P
4222 /* Record the fields for profiling. */
4223 if (PROFILE_MODEL_P (current_cpu))
4225 FLD (in_Rd) = f_operand2;
4226 FLD (in_Rs) = f_operand1;
4227 FLD (out_Rs) = f_operand1;
4234 extract_sfmt_neg_b_r:
4236 const IDESC *idesc = &crisv32f_insn_data[itype];
4237 CGEN_INSN_INT insn = base_insn;
4238 #define FLD(f) abuf->fields.sfmt_addc_m.f
4242 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4243 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4245 /* Record the fields for the semantic handler. */
4246 FLD (f_operand1) = f_operand1;
4247 FLD (f_operand2) = f_operand2;
4248 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_neg_b_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
4250 #if WITH_PROFILE_MODEL_P
4251 /* Record the fields for profiling. */
4252 if (PROFILE_MODEL_P (current_cpu))
4254 FLD (in_Rs) = f_operand1;
4255 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4262 extract_sfmt_neg_d_r:
4264 const IDESC *idesc = &crisv32f_insn_data[itype];
4265 CGEN_INSN_INT insn = base_insn;
4266 #define FLD(f) abuf->fields.sfmt_addc_m.f
4270 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4271 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4273 /* Record the fields for the semantic handler. */
4274 FLD (f_operand1) = f_operand1;
4275 FLD (f_operand2) = f_operand2;
4276 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_neg_d_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
4278 #if WITH_PROFILE_MODEL_P
4279 /* Record the fields for profiling. */
4280 if (PROFILE_MODEL_P (current_cpu))
4282 FLD (in_Rs) = f_operand1;
4283 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4290 extract_sfmt_test_m_b_m:
4292 const IDESC *idesc = &crisv32f_insn_data[itype];
4293 CGEN_INSN_INT insn = base_insn;
4294 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
4298 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4299 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4301 /* Record the fields for the semantic handler. */
4302 FLD (f_operand1) = f_operand1;
4303 FLD (f_memmode) = f_memmode;
4304 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_test_m_b_m", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4306 #if WITH_PROFILE_MODEL_P
4307 /* Record the fields for profiling. */
4308 if (PROFILE_MODEL_P (current_cpu))
4310 FLD (in_Rs) = f_operand1;
4311 FLD (out_Rs) = f_operand1;
4318 extract_sfmt_test_m_w_m:
4320 const IDESC *idesc = &crisv32f_insn_data[itype];
4321 CGEN_INSN_INT insn = base_insn;
4322 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
4326 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4327 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4329 /* Record the fields for the semantic handler. */
4330 FLD (f_operand1) = f_operand1;
4331 FLD (f_memmode) = f_memmode;
4332 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_test_m_w_m", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4334 #if WITH_PROFILE_MODEL_P
4335 /* Record the fields for profiling. */
4336 if (PROFILE_MODEL_P (current_cpu))
4338 FLD (in_Rs) = f_operand1;
4339 FLD (out_Rs) = f_operand1;
4346 extract_sfmt_test_m_d_m:
4348 const IDESC *idesc = &crisv32f_insn_data[itype];
4349 CGEN_INSN_INT insn = base_insn;
4350 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
4354 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4355 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4357 /* Record the fields for the semantic handler. */
4358 FLD (f_operand1) = f_operand1;
4359 FLD (f_memmode) = f_memmode;
4360 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_test_m_d_m", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4362 #if WITH_PROFILE_MODEL_P
4363 /* Record the fields for profiling. */
4364 if (PROFILE_MODEL_P (current_cpu))
4366 FLD (in_Rs) = f_operand1;
4367 FLD (out_Rs) = f_operand1;
4374 extract_sfmt_move_r_m_b_m:
4376 const IDESC *idesc = &crisv32f_insn_data[itype];
4377 CGEN_INSN_INT insn = base_insn;
4378 #define FLD(f) abuf->fields.sfmt_addc_m.f
4383 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4384 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4385 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4387 /* Record the fields for the semantic handler. */
4388 FLD (f_operand2) = f_operand2;
4389 FLD (f_operand1) = f_operand1;
4390 FLD (f_memmode) = f_memmode;
4391 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_r_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4393 #if WITH_PROFILE_MODEL_P
4394 /* Record the fields for profiling. */
4395 if (PROFILE_MODEL_P (current_cpu))
4397 FLD (in_Rd) = f_operand2;
4398 FLD (in_Rs) = f_operand1;
4399 FLD (out_Rs) = f_operand1;
4406 extract_sfmt_move_r_m_w_m:
4408 const IDESC *idesc = &crisv32f_insn_data[itype];
4409 CGEN_INSN_INT insn = base_insn;
4410 #define FLD(f) abuf->fields.sfmt_addc_m.f
4415 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4416 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4417 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4419 /* Record the fields for the semantic handler. */
4420 FLD (f_operand2) = f_operand2;
4421 FLD (f_operand1) = f_operand1;
4422 FLD (f_memmode) = f_memmode;
4423 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_r_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4425 #if WITH_PROFILE_MODEL_P
4426 /* Record the fields for profiling. */
4427 if (PROFILE_MODEL_P (current_cpu))
4429 FLD (in_Rd) = f_operand2;
4430 FLD (in_Rs) = f_operand1;
4431 FLD (out_Rs) = f_operand1;
4438 extract_sfmt_move_r_m_d_m:
4440 const IDESC *idesc = &crisv32f_insn_data[itype];
4441 CGEN_INSN_INT insn = base_insn;
4442 #define FLD(f) abuf->fields.sfmt_addc_m.f
4447 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4448 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4449 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4451 /* Record the fields for the semantic handler. */
4452 FLD (f_operand2) = f_operand2;
4453 FLD (f_operand1) = f_operand1;
4454 FLD (f_memmode) = f_memmode;
4455 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_r_m_d_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4457 #if WITH_PROFILE_MODEL_P
4458 /* Record the fields for profiling. */
4459 if (PROFILE_MODEL_P (current_cpu))
4461 FLD (in_Rd) = f_operand2;
4462 FLD (in_Rs) = f_operand1;
4463 FLD (out_Rs) = f_operand1;
4470 extract_sfmt_muls_b:
4472 const IDESC *idesc = &crisv32f_insn_data[itype];
4473 CGEN_INSN_INT insn = base_insn;
4474 #define FLD(f) abuf->fields.sfmt_muls_b.f
4478 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4479 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4481 /* Record the fields for the semantic handler. */
4482 FLD (f_operand2) = f_operand2;
4483 FLD (f_operand1) = f_operand1;
4484 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_muls_b", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4486 #if WITH_PROFILE_MODEL_P
4487 /* Record the fields for profiling. */
4488 if (PROFILE_MODEL_P (current_cpu))
4490 FLD (in_Rd) = f_operand2;
4491 FLD (in_Rs) = f_operand1;
4492 FLD (out_Rd) = f_operand2;
4493 FLD (out_h_sr_SI_7) = 7;
4502 const IDESC *idesc = &crisv32f_insn_data[itype];
4503 CGEN_INSN_INT insn = base_insn;
4504 #define FLD(f) abuf->fields.sfmt_mcp.f
4508 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4509 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4511 /* Record the fields for the semantic handler. */
4512 FLD (f_operand2) = f_operand2;
4513 FLD (f_operand1) = f_operand1;
4514 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mcp", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4516 #if WITH_PROFILE_MODEL_P
4517 /* Record the fields for profiling. */
4518 if (PROFILE_MODEL_P (current_cpu))
4520 FLD (in_Ps) = f_operand2;
4521 FLD (in_Rs) = f_operand1;
4522 FLD (out_h_gr_SI_index_of__DFLT_Rs) = FLD (f_operand1);
4531 const IDESC *idesc = &crisv32f_insn_data[itype];
4532 CGEN_INSN_INT insn = base_insn;
4533 #define FLD(f) abuf->fields.sfmt_muls_b.f
4537 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4538 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4540 /* Record the fields for the semantic handler. */
4541 FLD (f_operand2) = f_operand2;
4542 FLD (f_operand1) = f_operand1;
4543 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dstep", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4545 #if WITH_PROFILE_MODEL_P
4546 /* Record the fields for profiling. */
4547 if (PROFILE_MODEL_P (current_cpu))
4549 FLD (in_Rd) = f_operand2;
4550 FLD (in_Rs) = f_operand1;
4551 FLD (out_Rd) = f_operand2;
4558 extract_sfmt_and_b_r:
4560 const IDESC *idesc = &crisv32f_insn_data[itype];
4561 CGEN_INSN_INT insn = base_insn;
4562 #define FLD(f) abuf->fields.sfmt_addc_m.f
4566 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4567 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4569 /* Record the fields for the semantic handler. */
4570 FLD (f_operand2) = f_operand2;
4571 FLD (f_operand1) = f_operand1;
4572 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4574 #if WITH_PROFILE_MODEL_P
4575 /* Record the fields for profiling. */
4576 if (PROFILE_MODEL_P (current_cpu))
4578 FLD (in_Rd) = f_operand2;
4579 FLD (in_Rs) = f_operand1;
4580 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4587 extract_sfmt_and_w_r:
4589 const IDESC *idesc = &crisv32f_insn_data[itype];
4590 CGEN_INSN_INT insn = base_insn;
4591 #define FLD(f) abuf->fields.sfmt_addc_m.f
4595 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4596 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4598 /* Record the fields for the semantic handler. */
4599 FLD (f_operand2) = f_operand2;
4600 FLD (f_operand1) = f_operand1;
4601 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_w_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4603 #if WITH_PROFILE_MODEL_P
4604 /* Record the fields for profiling. */
4605 if (PROFILE_MODEL_P (current_cpu))
4607 FLD (in_Rd) = f_operand2;
4608 FLD (in_Rs) = f_operand1;
4609 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4616 extract_sfmt_and_d_r:
4618 const IDESC *idesc = &crisv32f_insn_data[itype];
4619 CGEN_INSN_INT insn = base_insn;
4620 #define FLD(f) abuf->fields.sfmt_addc_m.f
4624 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4625 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4627 /* Record the fields for the semantic handler. */
4628 FLD (f_operand2) = f_operand2;
4629 FLD (f_operand1) = f_operand1;
4630 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_d_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4632 #if WITH_PROFILE_MODEL_P
4633 /* Record the fields for profiling. */
4634 if (PROFILE_MODEL_P (current_cpu))
4636 FLD (in_Rd) = f_operand2;
4637 FLD (in_Rs) = f_operand1;
4638 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4645 extract_sfmt_and_m_b_m:
4647 const IDESC *idesc = &crisv32f_insn_data[itype];
4648 CGEN_INSN_INT insn = base_insn;
4649 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4654 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4655 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4656 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4658 /* Record the fields for the semantic handler. */
4659 FLD (f_operand2) = f_operand2;
4660 FLD (f_operand1) = f_operand1;
4661 FLD (f_memmode) = f_memmode;
4662 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4664 #if WITH_PROFILE_MODEL_P
4665 /* Record the fields for profiling. */
4666 if (PROFILE_MODEL_P (current_cpu))
4668 FLD (in_Rd) = f_operand2;
4669 FLD (in_Rs) = f_operand1;
4670 FLD (out_Rs) = f_operand1;
4671 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
4678 extract_sfmt_and_m_w_m:
4680 const IDESC *idesc = &crisv32f_insn_data[itype];
4681 CGEN_INSN_INT insn = base_insn;
4682 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4687 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4688 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4689 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4691 /* Record the fields for the semantic handler. */
4692 FLD (f_operand2) = f_operand2;
4693 FLD (f_operand1) = f_operand1;
4694 FLD (f_memmode) = f_memmode;
4695 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4697 #if WITH_PROFILE_MODEL_P
4698 /* Record the fields for profiling. */
4699 if (PROFILE_MODEL_P (current_cpu))
4701 FLD (in_Rd) = f_operand2;
4702 FLD (in_Rs) = f_operand1;
4703 FLD (out_Rs) = f_operand1;
4704 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
4711 extract_sfmt_and_m_d_m:
4713 const IDESC *idesc = &crisv32f_insn_data[itype];
4714 CGEN_INSN_INT insn = base_insn;
4715 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4720 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4721 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4722 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4724 /* Record the fields for the semantic handler. */
4725 FLD (f_operand2) = f_operand2;
4726 FLD (f_operand1) = f_operand1;
4727 FLD (f_memmode) = f_memmode;
4728 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_m_d_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4730 #if WITH_PROFILE_MODEL_P
4731 /* Record the fields for profiling. */
4732 if (PROFILE_MODEL_P (current_cpu))
4734 FLD (in_Rd) = f_operand2;
4735 FLD (in_Rs) = f_operand1;
4736 FLD (out_Rs) = f_operand1;
4737 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
4744 extract_sfmt_andcbr:
4746 const IDESC *idesc = &crisv32f_insn_data[itype];
4747 CGEN_INSN_INT insn = base_insn;
4748 #define FLD(f) abuf->fields.sfmt_addcbr.f
4749 INT f_indir_pc__byte;
4751 /* Contents of trailing part of insn. */
4754 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4755 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4756 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4758 /* Record the fields for the semantic handler. */
4759 FLD (f_operand2) = f_operand2;
4760 FLD (f_indir_pc__byte) = f_indir_pc__byte;
4761 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andcbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
4763 #if WITH_PROFILE_MODEL_P
4764 /* Record the fields for profiling. */
4765 if (PROFILE_MODEL_P (current_cpu))
4767 FLD (in_Rd) = f_operand2;
4768 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4775 extract_sfmt_andcwr:
4777 const IDESC *idesc = &crisv32f_insn_data[itype];
4778 CGEN_INSN_INT insn = base_insn;
4779 #define FLD(f) abuf->fields.sfmt_addcwr.f
4780 INT f_indir_pc__word;
4782 /* Contents of trailing part of insn. */
4785 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4786 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4787 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4789 /* Record the fields for the semantic handler. */
4790 FLD (f_operand2) = f_operand2;
4791 FLD (f_indir_pc__word) = f_indir_pc__word;
4792 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andcwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
4794 #if WITH_PROFILE_MODEL_P
4795 /* Record the fields for profiling. */
4796 if (PROFILE_MODEL_P (current_cpu))
4798 FLD (in_Rd) = f_operand2;
4799 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4806 extract_sfmt_andcdr:
4808 const IDESC *idesc = &crisv32f_insn_data[itype];
4809 CGEN_INSN_INT insn = base_insn;
4810 #define FLD(f) abuf->fields.sfmt_addcdr.f
4811 INT f_indir_pc__dword;
4813 /* Contents of trailing part of insn. */
4816 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4817 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
4818 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4820 /* Record the fields for the semantic handler. */
4821 FLD (f_operand2) = f_operand2;
4822 FLD (f_indir_pc__dword) = f_indir_pc__dword;
4823 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andcdr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
4825 #if WITH_PROFILE_MODEL_P
4826 /* Record the fields for profiling. */
4827 if (PROFILE_MODEL_P (current_cpu))
4829 FLD (in_Rd) = f_operand2;
4830 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4839 const IDESC *idesc = &crisv32f_insn_data[itype];
4840 CGEN_INSN_INT insn = base_insn;
4841 #define FLD(f) abuf->fields.sfmt_andq.f
4845 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4846 f_s6 = EXTRACT_LSB0_INT (insn, 16, 5, 6);
4848 /* Record the fields for the semantic handler. */
4849 FLD (f_operand2) = f_operand2;
4851 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andq", "f_operand2 0x%x", 'x', f_operand2, "f_s6 0x%x", 'x', f_s6, (char *) 0));
4853 #if WITH_PROFILE_MODEL_P
4854 /* Record the fields for profiling. */
4855 if (PROFILE_MODEL_P (current_cpu))
4857 FLD (in_Rd) = f_operand2;
4858 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4867 const IDESC *idesc = &crisv32f_insn_data[itype];
4868 CGEN_INSN_INT insn = base_insn;
4869 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
4873 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4874 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4876 /* Record the fields for the semantic handler. */
4877 FLD (f_operand1) = f_operand1;
4878 FLD (f_operand2) = f_operand2;
4879 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_swap", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
4881 #if WITH_PROFILE_MODEL_P
4882 /* Record the fields for profiling. */
4883 if (PROFILE_MODEL_P (current_cpu))
4885 FLD (in_Rs) = f_operand1;
4886 FLD (out_Rs) = f_operand1;
4893 extract_sfmt_asrr_b_r:
4895 const IDESC *idesc = &crisv32f_insn_data[itype];
4896 CGEN_INSN_INT insn = base_insn;
4897 #define FLD(f) abuf->fields.sfmt_addc_m.f
4901 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4902 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4904 /* Record the fields for the semantic handler. */
4905 FLD (f_operand2) = f_operand2;
4906 FLD (f_operand1) = f_operand1;
4907 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_asrr_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4909 #if WITH_PROFILE_MODEL_P
4910 /* Record the fields for profiling. */
4911 if (PROFILE_MODEL_P (current_cpu))
4913 FLD (in_Rd) = f_operand2;
4914 FLD (in_Rs) = f_operand1;
4915 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4924 const IDESC *idesc = &crisv32f_insn_data[itype];
4925 CGEN_INSN_INT insn = base_insn;
4926 #define FLD(f) abuf->fields.sfmt_asrq.f
4930 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4931 f_u5 = EXTRACT_LSB0_UINT (insn, 16, 4, 5);
4933 /* Record the fields for the semantic handler. */
4934 FLD (f_operand2) = f_operand2;
4936 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_asrq", "f_operand2 0x%x", 'x', f_operand2, "f_u5 0x%x", 'x', f_u5, (char *) 0));
4938 #if WITH_PROFILE_MODEL_P
4939 /* Record the fields for profiling. */
4940 if (PROFILE_MODEL_P (current_cpu))
4942 FLD (in_Rd) = f_operand2;
4943 FLD (out_Rd) = f_operand2;
4950 extract_sfmt_lsrr_b_r:
4952 const IDESC *idesc = &crisv32f_insn_data[itype];
4953 CGEN_INSN_INT insn = base_insn;
4954 #define FLD(f) abuf->fields.sfmt_addc_m.f
4958 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4959 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4961 /* Record the fields for the semantic handler. */
4962 FLD (f_operand2) = f_operand2;
4963 FLD (f_operand1) = f_operand1;
4964 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lsrr_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4966 #if WITH_PROFILE_MODEL_P
4967 /* Record the fields for profiling. */
4968 if (PROFILE_MODEL_P (current_cpu))
4970 FLD (in_Rd) = f_operand2;
4971 FLD (in_Rs) = f_operand1;
4972 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4979 extract_sfmt_lsrr_d_r:
4981 const IDESC *idesc = &crisv32f_insn_data[itype];
4982 CGEN_INSN_INT insn = base_insn;
4983 #define FLD(f) abuf->fields.sfmt_addc_m.f
4987 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4988 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4990 /* Record the fields for the semantic handler. */
4991 FLD (f_operand2) = f_operand2;
4992 FLD (f_operand1) = f_operand1;
4993 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lsrr_d_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4995 #if WITH_PROFILE_MODEL_P
4996 /* Record the fields for profiling. */
4997 if (PROFILE_MODEL_P (current_cpu))
4999 FLD (in_Rd) = f_operand2;
5000 FLD (in_Rs) = f_operand1;
5001 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
5010 const IDESC *idesc = &crisv32f_insn_data[itype];
5011 CGEN_INSN_INT insn = base_insn;
5012 #define FLD(f) abuf->fields.sfmt_muls_b.f
5016 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5017 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5019 /* Record the fields for the semantic handler. */
5020 FLD (f_operand2) = f_operand2;
5021 FLD (f_operand1) = f_operand1;
5022 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_btst", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
5024 #if WITH_PROFILE_MODEL_P
5025 /* Record the fields for profiling. */
5026 if (PROFILE_MODEL_P (current_cpu))
5028 FLD (in_Rd) = f_operand2;
5029 FLD (in_Rs) = f_operand1;
5038 const IDESC *idesc = &crisv32f_insn_data[itype];
5039 CGEN_INSN_INT insn = base_insn;
5040 #define FLD(f) abuf->fields.sfmt_asrq.f
5044 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5045 f_u5 = EXTRACT_LSB0_UINT (insn, 16, 4, 5);
5047 /* Record the fields for the semantic handler. */
5048 FLD (f_operand2) = f_operand2;
5050 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_btstq", "f_operand2 0x%x", 'x', f_operand2, "f_u5 0x%x", 'x', f_u5, (char *) 0));
5052 #if WITH_PROFILE_MODEL_P
5053 /* Record the fields for profiling. */
5054 if (PROFILE_MODEL_P (current_cpu))
5056 FLD (in_Rd) = f_operand2;
5065 const IDESC *idesc = &crisv32f_insn_data[itype];
5066 CGEN_INSN_INT insn = base_insn;
5067 #define FLD(f) abuf->fields.sfmt_setf.f
5072 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5073 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5074 f_dstsrc = ((((f_operand1) | (((f_operand2) << (4))))) & (255));
5076 /* Record the fields for the semantic handler. */
5077 FLD (f_dstsrc) = f_dstsrc;
5078 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_setf", "f_dstsrc 0x%x", 'x', f_dstsrc, (char *) 0));
5086 const IDESC *idesc = &crisv32f_insn_data[itype];
5087 #define FLD(f) abuf->fields.sfmt_rfe.f
5090 /* Record the fields for the semantic handler. */
5091 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rfe", (char *) 0));
5093 #if WITH_PROFILE_MODEL_P
5094 /* Record the fields for profiling. */
5095 if (PROFILE_MODEL_P (current_cpu))
5097 FLD (in_h_sr_SI_13) = 13;
5098 FLD (out_h_sr_SI_13) = 13;
5107 const IDESC *idesc = &crisv32f_insn_data[itype];
5108 #define FLD(f) abuf->fields.sfmt_rfe.f
5111 /* Record the fields for the semantic handler. */
5112 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sfe", (char *) 0));
5114 #if WITH_PROFILE_MODEL_P
5115 /* Record the fields for profiling. */
5116 if (PROFILE_MODEL_P (current_cpu))
5118 FLD (in_h_sr_SI_13) = 13;
5119 FLD (out_h_sr_SI_13) = 13;
5128 const IDESC *idesc = &crisv32f_insn_data[itype];
5129 #define FLD(f) abuf->fields.fmt_empty.f
5132 /* Record the fields for the semantic handler. */
5133 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rfg", (char *) 0));
5135 #if WITH_PROFILE_MODEL_P
5136 /* Record the fields for profiling. */
5137 if (PROFILE_MODEL_P (current_cpu))
5147 const IDESC *idesc = &crisv32f_insn_data[itype];
5148 #define FLD(f) abuf->fields.sfmt_rfe.f
5151 /* Record the fields for the semantic handler. */
5152 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rfn", (char *) 0));
5154 #if WITH_PROFILE_MODEL_P
5155 /* Record the fields for profiling. */
5156 if (PROFILE_MODEL_P (current_cpu))
5158 FLD (in_h_sr_SI_13) = 13;
5159 FLD (out_h_sr_SI_13) = 13;
5168 const IDESC *idesc = &crisv32f_insn_data[itype];
5169 #define FLD(f) abuf->fields.fmt_empty.f
5172 /* Record the fields for the semantic handler. */
5173 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_halt", (char *) 0));
5175 #if WITH_PROFILE_MODEL_P
5176 /* Record the fields for profiling. */
5177 if (PROFILE_MODEL_P (current_cpu))
5187 const IDESC *idesc = &crisv32f_insn_data[itype];
5188 CGEN_INSN_INT insn = base_insn;
5189 #define FLD(f) abuf->fields.sfmt_bcc_b.f
5195 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5196 f_disp9_lo = EXTRACT_LSB0_UINT (insn, 16, 7, 7);
5197 f_disp9_hi = EXTRACT_LSB0_INT (insn, 16, 0, 1);
5201 tmp_abslo = ((f_disp9_lo) << (1));
5202 tmp_absval = ((((((f_disp9_hi) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo));
5203 f_disp9 = ((((pc) + (tmp_absval))) + (((GET_H_V32_V32 ()) ? (0) : (2))));
5206 /* Record the fields for the semantic handler. */
5207 FLD (f_operand2) = f_operand2;
5208 FLD (i_o_pcrel) = f_disp9;
5209 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bcc_b", "f_operand2 0x%x", 'x', f_operand2, "o_pcrel 0x%x", 'x', f_disp9, (char *) 0));
5211 #if WITH_PROFILE_MODEL_P
5212 /* Record the fields for profiling. */
5213 if (PROFILE_MODEL_P (current_cpu))
5223 const IDESC *idesc = &crisv32f_insn_data[itype];
5224 CGEN_INSN_INT insn = base_insn;
5225 #define FLD(f) abuf->fields.sfmt_bcc_b.f
5230 f_disp9_lo = EXTRACT_LSB0_UINT (insn, 16, 7, 7);
5231 f_disp9_hi = EXTRACT_LSB0_INT (insn, 16, 0, 1);
5235 tmp_abslo = ((f_disp9_lo) << (1));
5236 tmp_absval = ((((((f_disp9_hi) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo));
5237 f_disp9 = ((((pc) + (tmp_absval))) + (((GET_H_V32_V32 ()) ? (0) : (2))));
5240 /* Record the fields for the semantic handler. */
5241 FLD (i_o_pcrel) = f_disp9;
5242 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ba_b", "o_pcrel 0x%x", 'x', f_disp9, (char *) 0));
5244 #if WITH_PROFILE_MODEL_P
5245 /* Record the fields for profiling. */
5246 if (PROFILE_MODEL_P (current_cpu))
5256 const IDESC *idesc = &crisv32f_insn_data[itype];
5257 CGEN_INSN_INT insn = base_insn;
5258 #define FLD(f) abuf->fields.sfmt_bcc_w.f
5259 SI f_indir_pc__word_pcrel;
5261 /* Contents of trailing part of insn. */
5264 word_1 = GETIMEMUSI (current_cpu, pc + 2);
5265 f_indir_pc__word_pcrel = ((EXTHISI (((HI) (UINT) ((0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0)))))) + (((pc) + (((GET_H_V32_V32 ()) ? (0) : (4))))));
5266 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5268 /* Record the fields for the semantic handler. */
5269 FLD (f_operand2) = f_operand2;
5270 FLD (i_o_word_pcrel) = f_indir_pc__word_pcrel;
5271 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bcc_w", "f_operand2 0x%x", 'x', f_operand2, "o_word_pcrel 0x%x", 'x', f_indir_pc__word_pcrel, (char *) 0));
5273 #if WITH_PROFILE_MODEL_P
5274 /* Record the fields for profiling. */
5275 if (PROFILE_MODEL_P (current_cpu))
5285 const IDESC *idesc = &crisv32f_insn_data[itype];
5286 CGEN_INSN_INT insn = base_insn;
5287 #define FLD(f) abuf->fields.sfmt_bcc_w.f
5288 SI f_indir_pc__word_pcrel;
5289 /* Contents of trailing part of insn. */
5292 word_1 = GETIMEMUSI (current_cpu, pc + 2);
5293 f_indir_pc__word_pcrel = ((EXTHISI (((HI) (UINT) ((0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0)))))) + (((pc) + (((GET_H_V32_V32 ()) ? (0) : (4))))));
5295 /* Record the fields for the semantic handler. */
5296 FLD (i_o_word_pcrel) = f_indir_pc__word_pcrel;
5297 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ba_w", "o_word_pcrel 0x%x", 'x', f_indir_pc__word_pcrel, (char *) 0));
5299 #if WITH_PROFILE_MODEL_P
5300 /* Record the fields for profiling. */
5301 if (PROFILE_MODEL_P (current_cpu))
5311 const IDESC *idesc = &crisv32f_insn_data[itype];
5312 CGEN_INSN_INT insn = base_insn;
5313 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
5317 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5318 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5320 /* Record the fields for the semantic handler. */
5321 FLD (f_operand1) = f_operand1;
5322 FLD (f_operand2) = f_operand2;
5323 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jas_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
5325 #if WITH_PROFILE_MODEL_P
5326 /* Record the fields for profiling. */
5327 if (PROFILE_MODEL_P (current_cpu))
5329 FLD (in_Rs) = f_operand1;
5330 FLD (out_Pd) = f_operand2;
5339 const IDESC *idesc = &crisv32f_insn_data[itype];
5340 CGEN_INSN_INT insn = base_insn;
5341 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
5342 INT f_indir_pc__dword;
5344 /* Contents of trailing part of insn. */
5347 word_1 = GETIMEMUSI (current_cpu, pc + 2);
5348 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
5349 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5351 /* Record the fields for the semantic handler. */
5352 FLD (f_indir_pc__dword) = f_indir_pc__dword;
5353 FLD (f_operand2) = f_operand2;
5354 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jas_c", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
5356 #if WITH_PROFILE_MODEL_P
5357 /* Record the fields for profiling. */
5358 if (PROFILE_MODEL_P (current_cpu))
5360 FLD (out_Pd) = f_operand2;
5367 extract_sfmt_jump_p:
5369 const IDESC *idesc = &crisv32f_insn_data[itype];
5370 CGEN_INSN_INT insn = base_insn;
5371 #define FLD(f) abuf->fields.sfmt_mcp.f
5374 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5376 /* Record the fields for the semantic handler. */
5377 FLD (f_operand2) = f_operand2;
5378 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jump_p", "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
5380 #if WITH_PROFILE_MODEL_P
5381 /* Record the fields for profiling. */
5382 if (PROFILE_MODEL_P (current_cpu))
5384 FLD (in_Ps) = f_operand2;
5393 const IDESC *idesc = &crisv32f_insn_data[itype];
5394 CGEN_INSN_INT insn = base_insn;
5395 #define FLD(f) abuf->fields.sfmt_bas_c.f
5396 SI f_indir_pc__dword_pcrel;
5398 /* Contents of trailing part of insn. */
5401 word_1 = GETIMEMUSI (current_cpu, pc + 2);
5402 f_indir_pc__dword_pcrel = ((pc) + ((0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0))));
5403 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5405 /* Record the fields for the semantic handler. */
5406 FLD (f_operand2) = f_operand2;
5407 FLD (i_const32_pcrel) = f_indir_pc__dword_pcrel;
5408 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bas_c", "f_operand2 0x%x", 'x', f_operand2, "const32_pcrel 0x%x", 'x', f_indir_pc__dword_pcrel, (char *) 0));
5410 #if WITH_PROFILE_MODEL_P
5411 /* Record the fields for profiling. */
5412 if (PROFILE_MODEL_P (current_cpu))
5414 FLD (out_Pd) = f_operand2;
5421 extract_sfmt_jasc_r:
5423 const IDESC *idesc = &crisv32f_insn_data[itype];
5424 CGEN_INSN_INT insn = base_insn;
5425 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
5429 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5430 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5432 /* Record the fields for the semantic handler. */
5433 FLD (f_operand1) = f_operand1;
5434 FLD (f_operand2) = f_operand2;
5435 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jasc_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
5437 #if WITH_PROFILE_MODEL_P
5438 /* Record the fields for profiling. */
5439 if (PROFILE_MODEL_P (current_cpu))
5441 FLD (in_Rs) = f_operand1;
5442 FLD (out_Pd) = f_operand2;
5451 const IDESC *idesc = &crisv32f_insn_data[itype];
5452 CGEN_INSN_INT insn = base_insn;
5453 #define FLD(f) abuf->fields.sfmt_break.f
5456 f_u4 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5458 /* Record the fields for the semantic handler. */
5460 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_break", "f_u4 0x%x", 'x', f_u4, (char *) 0));
5462 #if WITH_PROFILE_MODEL_P
5463 /* Record the fields for profiling. */
5464 if (PROFILE_MODEL_P (current_cpu))
5472 extract_sfmt_bound_cb:
5474 const IDESC *idesc = &crisv32f_insn_data[itype];
5475 CGEN_INSN_INT insn = base_insn;
5476 #define FLD(f) abuf->fields.sfmt_bound_cb.f
5477 INT f_indir_pc__byte;
5479 /* Contents of trailing part of insn. */
5482 word_1 = GETIMEMUSI (current_cpu, pc + 2);
5483 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
5484 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5486 /* Record the fields for the semantic handler. */
5487 FLD (f_operand2) = f_operand2;
5488 FLD (f_indir_pc__byte) = f_indir_pc__byte;
5489 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bound_cb", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
5491 #if WITH_PROFILE_MODEL_P
5492 /* Record the fields for profiling. */
5493 if (PROFILE_MODEL_P (current_cpu))
5495 FLD (in_Rd) = f_operand2;
5496 FLD (out_Rd) = f_operand2;
5503 extract_sfmt_bound_cw:
5505 const IDESC *idesc = &crisv32f_insn_data[itype];
5506 CGEN_INSN_INT insn = base_insn;
5507 #define FLD(f) abuf->fields.sfmt_bound_cw.f
5508 INT f_indir_pc__word;
5510 /* Contents of trailing part of insn. */
5513 word_1 = GETIMEMUSI (current_cpu, pc + 2);
5514 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
5515 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5517 /* Record the fields for the semantic handler. */
5518 FLD (f_operand2) = f_operand2;
5519 FLD (f_indir_pc__word) = f_indir_pc__word;
5520 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bound_cw", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
5522 #if WITH_PROFILE_MODEL_P
5523 /* Record the fields for profiling. */
5524 if (PROFILE_MODEL_P (current_cpu))
5526 FLD (in_Rd) = f_operand2;
5527 FLD (out_Rd) = f_operand2;
5534 extract_sfmt_bound_cd:
5536 const IDESC *idesc = &crisv32f_insn_data[itype];
5537 CGEN_INSN_INT insn = base_insn;
5538 #define FLD(f) abuf->fields.sfmt_bound_cd.f
5539 INT f_indir_pc__dword;
5541 /* Contents of trailing part of insn. */
5544 word_1 = GETIMEMUSI (current_cpu, pc + 2);
5545 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
5546 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5548 /* Record the fields for the semantic handler. */
5549 FLD (f_operand2) = f_operand2;
5550 FLD (f_indir_pc__dword) = f_indir_pc__dword;
5551 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bound_cd", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
5553 #if WITH_PROFILE_MODEL_P
5554 /* Record the fields for profiling. */
5555 if (PROFILE_MODEL_P (current_cpu))
5557 FLD (in_Rd) = f_operand2;
5558 FLD (out_Rd) = f_operand2;
5567 const IDESC *idesc = &crisv32f_insn_data[itype];
5568 CGEN_INSN_INT insn = base_insn;
5569 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
5573 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5574 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5576 /* Record the fields for the semantic handler. */
5577 FLD (f_operand2) = f_operand2;
5578 FLD (f_operand1) = f_operand1;
5579 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_scc", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
5581 #if WITH_PROFILE_MODEL_P
5582 /* Record the fields for profiling. */
5583 if (PROFILE_MODEL_P (current_cpu))
5585 FLD (out_Rs) = f_operand1;
5594 const IDESC *idesc = &crisv32f_insn_data[itype];
5595 CGEN_INSN_INT insn = base_insn;
5596 #define FLD(f) abuf->fields.sfmt_addoq.f
5600 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5601 f_s8 = EXTRACT_LSB0_INT (insn, 16, 7, 8);
5603 /* Record the fields for the semantic handler. */
5604 FLD (f_operand2) = f_operand2;
5606 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addoq", "f_operand2 0x%x", 'x', f_operand2, "f_s8 0x%x", 'x', f_s8, (char *) 0));
5608 #if WITH_PROFILE_MODEL_P
5609 /* Record the fields for profiling. */
5610 if (PROFILE_MODEL_P (current_cpu))
5612 FLD (in_Rd) = f_operand2;
5619 extract_sfmt_addo_m_b_m:
5621 const IDESC *idesc = &crisv32f_insn_data[itype];
5622 CGEN_INSN_INT insn = base_insn;
5623 #define FLD(f) abuf->fields.sfmt_addc_m.f
5628 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5629 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5630 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5632 /* Record the fields for the semantic handler. */
5633 FLD (f_operand2) = f_operand2;
5634 FLD (f_operand1) = f_operand1;
5635 FLD (f_memmode) = f_memmode;
5636 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
5638 #if WITH_PROFILE_MODEL_P
5639 /* Record the fields for profiling. */
5640 if (PROFILE_MODEL_P (current_cpu))
5642 FLD (in_Rd) = f_operand2;
5643 FLD (in_Rs) = f_operand1;
5644 FLD (out_Rs) = f_operand1;
5651 extract_sfmt_addo_m_w_m:
5653 const IDESC *idesc = &crisv32f_insn_data[itype];
5654 CGEN_INSN_INT insn = base_insn;
5655 #define FLD(f) abuf->fields.sfmt_addc_m.f
5660 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5661 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5662 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5664 /* Record the fields for the semantic handler. */
5665 FLD (f_operand2) = f_operand2;
5666 FLD (f_operand1) = f_operand1;
5667 FLD (f_memmode) = f_memmode;
5668 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
5670 #if WITH_PROFILE_MODEL_P
5671 /* Record the fields for profiling. */
5672 if (PROFILE_MODEL_P (current_cpu))
5674 FLD (in_Rd) = f_operand2;
5675 FLD (in_Rs) = f_operand1;
5676 FLD (out_Rs) = f_operand1;
5683 extract_sfmt_addo_m_d_m:
5685 const IDESC *idesc = &crisv32f_insn_data[itype];
5686 CGEN_INSN_INT insn = base_insn;
5687 #define FLD(f) abuf->fields.sfmt_addc_m.f
5692 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5693 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5694 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5696 /* Record the fields for the semantic handler. */
5697 FLD (f_operand2) = f_operand2;
5698 FLD (f_operand1) = f_operand1;
5699 FLD (f_memmode) = f_memmode;
5700 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_m_d_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
5702 #if WITH_PROFILE_MODEL_P
5703 /* Record the fields for profiling. */
5704 if (PROFILE_MODEL_P (current_cpu))
5706 FLD (in_Rd) = f_operand2;
5707 FLD (in_Rs) = f_operand1;
5708 FLD (out_Rs) = f_operand1;
5715 extract_sfmt_addo_cb:
5717 const IDESC *idesc = &crisv32f_insn_data[itype];
5718 CGEN_INSN_INT insn = base_insn;
5719 #define FLD(f) abuf->fields.sfmt_bound_cb.f
5720 INT f_indir_pc__byte;
5722 /* Contents of trailing part of insn. */
5725 word_1 = GETIMEMUSI (current_cpu, pc + 2);
5726 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
5727 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5729 /* Record the fields for the semantic handler. */
5730 FLD (f_operand2) = f_operand2;
5731 FLD (f_indir_pc__byte) = f_indir_pc__byte;
5732 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_cb", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
5734 #if WITH_PROFILE_MODEL_P
5735 /* Record the fields for profiling. */
5736 if (PROFILE_MODEL_P (current_cpu))
5738 FLD (in_Rd) = f_operand2;
5745 extract_sfmt_addo_cw:
5747 const IDESC *idesc = &crisv32f_insn_data[itype];
5748 CGEN_INSN_INT insn = base_insn;
5749 #define FLD(f) abuf->fields.sfmt_bound_cw.f
5750 INT f_indir_pc__word;
5752 /* Contents of trailing part of insn. */
5755 word_1 = GETIMEMUSI (current_cpu, pc + 2);
5756 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
5757 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5759 /* Record the fields for the semantic handler. */
5760 FLD (f_operand2) = f_operand2;
5761 FLD (f_indir_pc__word) = f_indir_pc__word;
5762 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_cw", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
5764 #if WITH_PROFILE_MODEL_P
5765 /* Record the fields for profiling. */
5766 if (PROFILE_MODEL_P (current_cpu))
5768 FLD (in_Rd) = f_operand2;
5775 extract_sfmt_addo_cd:
5777 const IDESC *idesc = &crisv32f_insn_data[itype];
5778 CGEN_INSN_INT insn = base_insn;
5779 #define FLD(f) abuf->fields.sfmt_bound_cd.f
5780 INT f_indir_pc__dword;
5782 /* Contents of trailing part of insn. */
5785 word_1 = GETIMEMUSI (current_cpu, pc + 2);
5786 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
5787 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5789 /* Record the fields for the semantic handler. */
5790 FLD (f_operand2) = f_operand2;
5791 FLD (f_indir_pc__dword) = f_indir_pc__dword;
5792 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_cd", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
5794 #if WITH_PROFILE_MODEL_P
5795 /* Record the fields for profiling. */
5796 if (PROFILE_MODEL_P (current_cpu))
5798 FLD (in_Rd) = f_operand2;
5805 extract_sfmt_addi_acr_b_r:
5807 const IDESC *idesc = &crisv32f_insn_data[itype];
5808 CGEN_INSN_INT insn = base_insn;
5809 #define FLD(f) abuf->fields.sfmt_muls_b.f
5813 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5814 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5816 /* Record the fields for the semantic handler. */
5817 FLD (f_operand2) = f_operand2;
5818 FLD (f_operand1) = f_operand1;
5819 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addi_acr_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
5821 #if WITH_PROFILE_MODEL_P
5822 /* Record the fields for profiling. */
5823 if (PROFILE_MODEL_P (current_cpu))
5825 FLD (in_Rd) = f_operand2;
5826 FLD (in_Rs) = f_operand1;
5835 const IDESC *idesc = &crisv32f_insn_data[itype];
5836 CGEN_INSN_INT insn = base_insn;
5837 #define FLD(f) abuf->fields.sfmt_mcp.f
5840 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5842 /* Record the fields for the semantic handler. */
5843 FLD (f_operand1) = f_operand1;
5844 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fidxi", "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
5846 #if WITH_PROFILE_MODEL_P
5847 /* Record the fields for profiling. */
5848 if (PROFILE_MODEL_P (current_cpu))
5850 FLD (in_Rs) = f_operand1;