1 /* Simulator instruction decoder for crisv32f.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright 1996-2016 Free Software Foundation, Inc.
7 This file is part of the GNU simulators.
9 This file is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 3, or (at your option)
14 It is distributed in the hope that it will be useful, but WITHOUT
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
17 License for more details.
19 You should have received a copy of the GNU General Public License along
20 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_B_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_B_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_AND_B_R },
202 { CRIS_INSN_ASRR_W_R, CRISV32F_INSN_ASRR_W_R, CRISV32F_SFMT_AND_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 =
260 VIRTUAL_INSN_X_INVALID, CRISV32F_INSN_X_INVALID, CRISV32F_SFMT_EMPTY
263 /* Initialize an IDESC from the compile-time computable parts. */
266 init_idesc (SIM_CPU *cpu, IDESC *id, const struct insn_sem *t)
268 const CGEN_INSN *insn_table = CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu))->init_entries;
272 if ((int) t->type <= 0)
273 id->idata = & cgen_virtual_insn_table[- (int) t->type];
275 id->idata = & insn_table[t->type];
276 id->attrs = CGEN_INSN_ATTRS (id->idata);
277 /* Oh my god, a magic number. */
278 id->length = CGEN_INSN_BITSIZE (id->idata) / 8;
280 #if WITH_PROFILE_MODEL_P
281 id->timing = & MODEL_TIMING (CPU_MODEL (cpu)) [t->index];
283 SIM_DESC sd = CPU_STATE (cpu);
284 SIM_ASSERT (t->index == id->timing->num);
288 /* Semantic pointers are initialized elsewhere. */
291 /* Initialize the instruction descriptor table. */
294 crisv32f_init_idesc_table (SIM_CPU *cpu)
297 const struct insn_sem *t,*tend;
298 int tabsize = CRISV32F_INSN__MAX;
299 IDESC *table = crisv32f_insn_data;
301 memset (table, 0, tabsize * sizeof (IDESC));
303 /* First set all entries to the `invalid insn'. */
304 t = & crisv32f_insn_sem_invalid;
305 for (id = table, tabend = table + tabsize; id < tabend; ++id)
306 init_idesc (cpu, id, t);
308 /* Now fill in the values for the chosen cpu. */
309 for (t = crisv32f_insn_sem, tend = t + sizeof (crisv32f_insn_sem) / sizeof (*t);
312 init_idesc (cpu, & table[t->index], t);
315 /* Link the IDESC table into the cpu. */
316 CPU_IDESC (cpu) = table;
319 /* Given an instruction, return a pointer to its IDESC entry. */
322 crisv32f_decode (SIM_CPU *current_cpu, IADDR pc,
323 CGEN_INSN_WORD base_insn,
326 /* Result of decoder. */
327 CRISV32F_INSN_TYPE itype;
330 CGEN_INSN_WORD insn = base_insn;
333 unsigned int val = (((insn >> 4) & (255 << 0)));
336 case 0 : /* fall through */
337 case 1 : /* fall through */
338 case 2 : /* fall through */
339 case 3 : /* fall through */
340 case 4 : /* fall through */
341 case 5 : /* fall through */
342 case 6 : /* fall through */
343 case 7 : /* fall through */
344 case 8 : /* fall through */
345 case 9 : /* fall through */
346 case 10 : /* fall through */
347 case 11 : /* fall through */
348 case 12 : /* fall through */
349 case 13 : /* fall through */
350 case 14 : /* fall through */
353 unsigned int val = (((insn >> 12) & (15 << 0)));
356 case 0 : /* fall through */
357 case 1 : /* fall through */
358 case 2 : /* fall through */
359 case 3 : /* fall through */
360 case 4 : /* fall through */
361 case 5 : /* fall through */
362 case 6 : /* fall through */
363 case 7 : /* fall through */
364 case 8 : /* fall through */
365 case 9 : /* fall through */
366 case 10 : /* fall through */
367 case 11 : /* fall through */
368 case 12 : /* fall through */
369 case 13 : /* fall through */
370 case 15 : itype = CRISV32F_INSN_BCC_B; goto extract_sfmt_bcc_b;
371 case 14 : itype = CRISV32F_INSN_BA_B; goto extract_sfmt_ba_b;
372 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
375 case 16 : /* fall through */
376 case 17 : /* fall through */
377 case 18 : /* fall through */
378 case 19 : /* fall through */
379 case 20 : /* fall through */
380 case 21 : /* fall through */
381 case 22 : /* fall through */
382 case 23 : /* fall through */
383 case 24 : /* fall through */
384 case 25 : /* fall through */
385 case 26 : /* fall through */
386 case 27 : /* fall through */
387 case 28 : /* fall through */
388 case 29 : /* fall through */
389 case 30 : /* fall through */
390 case 31 : itype = CRISV32F_INSN_ADDOQ; goto extract_sfmt_addoq;
391 case 32 : /* fall through */
392 case 33 : /* fall through */
393 case 34 : /* fall through */
394 case 35 : itype = CRISV32F_INSN_ADDQ; goto extract_sfmt_addq;
395 case 36 : /* fall through */
396 case 37 : /* fall through */
397 case 38 : /* fall through */
398 case 39 : itype = CRISV32F_INSN_MOVEQ; goto extract_sfmt_moveq;
399 case 40 : /* fall through */
400 case 41 : /* fall through */
401 case 42 : /* fall through */
402 case 43 : itype = CRISV32F_INSN_SUBQ; goto extract_sfmt_addq;
403 case 44 : /* fall through */
404 case 45 : /* fall through */
405 case 46 : /* fall through */
406 case 47 : itype = CRISV32F_INSN_CMPQ; goto extract_sfmt_cmpq;
407 case 48 : /* fall through */
408 case 49 : /* fall through */
409 case 50 : /* fall through */
410 case 51 : itype = CRISV32F_INSN_ANDQ; goto extract_sfmt_andq;
411 case 52 : /* fall through */
412 case 53 : /* fall through */
413 case 54 : /* fall through */
414 case 55 : itype = CRISV32F_INSN_ORQ; goto extract_sfmt_andq;
415 case 56 : /* fall through */
416 case 57 : itype = CRISV32F_INSN_BTSTQ; goto extract_sfmt_btstq;
417 case 58 : /* fall through */
418 case 59 : itype = CRISV32F_INSN_ASRQ; goto extract_sfmt_asrq;
419 case 60 : /* fall through */
420 case 61 : itype = CRISV32F_INSN_LSLQ; goto extract_sfmt_asrq;
421 case 62 : /* fall through */
422 case 63 : itype = CRISV32F_INSN_LSRQ; goto extract_sfmt_asrq;
423 case 64 : itype = CRISV32F_INSN_ADDU_B_R; goto extract_sfmt_add_d_r;
424 case 65 : itype = CRISV32F_INSN_ADDU_W_R; goto extract_sfmt_add_d_r;
425 case 66 : itype = CRISV32F_INSN_ADDS_B_R; goto extract_sfmt_add_d_r;
426 case 67 : itype = CRISV32F_INSN_ADDS_W_R; goto extract_sfmt_add_d_r;
427 case 68 : itype = CRISV32F_INSN_MOVU_B_R; goto extract_sfmt_movs_b_r;
428 case 69 : itype = CRISV32F_INSN_MOVU_W_R; goto extract_sfmt_movs_b_r;
429 case 70 : itype = CRISV32F_INSN_MOVS_B_R; goto extract_sfmt_movs_b_r;
430 case 71 : itype = CRISV32F_INSN_MOVS_W_R; goto extract_sfmt_movs_b_r;
431 case 72 : itype = CRISV32F_INSN_SUBU_B_R; goto extract_sfmt_add_d_r;
432 case 73 : itype = CRISV32F_INSN_SUBU_W_R; goto extract_sfmt_add_d_r;
433 case 74 : itype = CRISV32F_INSN_SUBS_B_R; goto extract_sfmt_add_d_r;
434 case 75 : itype = CRISV32F_INSN_SUBS_W_R; goto extract_sfmt_add_d_r;
435 case 76 : itype = CRISV32F_INSN_LSLR_B_R; goto extract_sfmt_lsrr_b_r;
436 case 77 : itype = CRISV32F_INSN_LSLR_W_R; goto extract_sfmt_lsrr_b_r;
437 case 78 : itype = CRISV32F_INSN_LSLR_D_R; goto extract_sfmt_lsrr_d_r;
438 case 79 : itype = CRISV32F_INSN_BTST; goto extract_sfmt_btst;
439 case 80 : itype = CRISV32F_INSN_ADDI_B_R; goto extract_sfmt_addi_b_r;
440 case 81 : itype = CRISV32F_INSN_ADDI_W_R; goto extract_sfmt_addi_b_r;
441 case 82 : itype = CRISV32F_INSN_ADDI_D_R; goto extract_sfmt_addi_b_r;
442 case 83 : itype = CRISV32F_INSN_SCC; goto extract_sfmt_scc;
443 case 84 : itype = CRISV32F_INSN_ADDI_ACR_B_R; goto extract_sfmt_addi_acr_b_r;
444 case 85 : itype = CRISV32F_INSN_ADDI_ACR_W_R; goto extract_sfmt_addi_acr_b_r;
445 case 86 : itype = CRISV32F_INSN_ADDI_ACR_D_R; goto extract_sfmt_addi_acr_b_r;
446 case 87 : itype = CRISV32F_INSN_ADDC_R; goto extract_sfmt_add_d_r;
447 case 88 : itype = CRISV32F_INSN_NEG_B_R; goto extract_sfmt_neg_b_r;
448 case 89 : itype = CRISV32F_INSN_NEG_W_R; goto extract_sfmt_neg_b_r;
449 case 90 : itype = CRISV32F_INSN_NEG_D_R; goto extract_sfmt_neg_d_r;
450 case 91 : itype = CRISV32F_INSN_SETF; goto extract_sfmt_setf;
451 case 92 : itype = CRISV32F_INSN_BOUND_R_B_R; goto extract_sfmt_dstep;
452 case 93 : itype = CRISV32F_INSN_BOUND_R_W_R; goto extract_sfmt_dstep;
453 case 94 : itype = CRISV32F_INSN_BOUND_R_D_R; goto extract_sfmt_dstep;
454 case 95 : itype = CRISV32F_INSN_CLEARF; goto extract_sfmt_setf;
455 case 96 : itype = CRISV32F_INSN_ADD_B_R; goto extract_sfmt_add_b_r;
456 case 97 : itype = CRISV32F_INSN_ADD_W_R; goto extract_sfmt_add_b_r;
457 case 98 : itype = CRISV32F_INSN_ADD_D_R; goto extract_sfmt_add_d_r;
458 case 99 : itype = CRISV32F_INSN_MOVE_R_SPRV32; goto extract_sfmt_move_r_sprv32;
459 case 100 : itype = CRISV32F_INSN_MOVE_B_R; goto extract_sfmt_move_b_r;
460 case 101 : itype = CRISV32F_INSN_MOVE_W_R; goto extract_sfmt_move_b_r;
461 case 102 : itype = CRISV32F_INSN_MOVE_D_R; goto extract_sfmt_move_d_r;
462 case 103 : itype = CRISV32F_INSN_MOVE_SPR_RV32; goto extract_sfmt_move_spr_rv32;
463 case 104 : itype = CRISV32F_INSN_SUB_B_R; goto extract_sfmt_add_b_r;
464 case 105 : itype = CRISV32F_INSN_SUB_W_R; goto extract_sfmt_add_b_r;
465 case 106 : itype = CRISV32F_INSN_SUB_D_R; goto extract_sfmt_add_d_r;
466 case 107 : itype = CRISV32F_INSN_ABS; goto extract_sfmt_movs_b_r;
467 case 108 : itype = CRISV32F_INSN_CMP_R_B_R; goto extract_sfmt_cmp_r_b_r;
468 case 109 : itype = CRISV32F_INSN_CMP_R_W_R; goto extract_sfmt_cmp_r_b_r;
469 case 110 : itype = CRISV32F_INSN_CMP_R_D_R; goto extract_sfmt_cmp_r_b_r;
470 case 111 : itype = CRISV32F_INSN_DSTEP; goto extract_sfmt_dstep;
471 case 112 : itype = CRISV32F_INSN_AND_B_R; goto extract_sfmt_and_b_r;
472 case 113 : itype = CRISV32F_INSN_AND_W_R; goto extract_sfmt_and_b_r;
473 case 114 : itype = CRISV32F_INSN_AND_D_R; goto extract_sfmt_and_d_r;
474 case 115 : itype = CRISV32F_INSN_LZ; goto extract_sfmt_movs_b_r;
475 case 116 : itype = CRISV32F_INSN_ORR_B_R; goto extract_sfmt_and_b_r;
476 case 117 : itype = CRISV32F_INSN_ORR_W_R; goto extract_sfmt_and_b_r;
477 case 118 : itype = CRISV32F_INSN_ORR_D_R; goto extract_sfmt_and_d_r;
478 case 119 : itype = CRISV32F_INSN_SWAP; goto extract_sfmt_swap;
479 case 120 : itype = CRISV32F_INSN_ASRR_B_R; goto extract_sfmt_and_b_r;
480 case 121 : itype = CRISV32F_INSN_ASRR_W_R; goto extract_sfmt_and_b_r;
481 case 122 : itype = CRISV32F_INSN_ASRR_D_R; goto extract_sfmt_and_d_r;
482 case 123 : itype = CRISV32F_INSN_XOR; goto extract_sfmt_dstep;
483 case 124 : itype = CRISV32F_INSN_LSRR_B_R; goto extract_sfmt_lsrr_b_r;
484 case 125 : itype = CRISV32F_INSN_LSRR_W_R; goto extract_sfmt_lsrr_b_r;
485 case 126 : itype = CRISV32F_INSN_LSRR_D_R; goto extract_sfmt_lsrr_d_r;
486 case 127 : itype = CRISV32F_INSN_MCP; goto extract_sfmt_mcp;
487 case 128 : itype = CRISV32F_INSN_ADDU_M_B_M; goto extract_sfmt_adds_m_b_m;
488 case 129 : itype = CRISV32F_INSN_ADDU_M_W_M; goto extract_sfmt_adds_m_w_m;
489 case 130 : itype = CRISV32F_INSN_ADDS_M_B_M; goto extract_sfmt_adds_m_b_m;
490 case 131 : itype = CRISV32F_INSN_ADDS_M_W_M; goto extract_sfmt_adds_m_w_m;
491 case 132 : itype = CRISV32F_INSN_MOVU_M_B_M; goto extract_sfmt_movs_m_b_m;
492 case 133 : itype = CRISV32F_INSN_MOVU_M_W_M; goto extract_sfmt_movs_m_w_m;
493 case 134 : itype = CRISV32F_INSN_MOVS_M_B_M; goto extract_sfmt_movs_m_b_m;
494 case 135 : itype = CRISV32F_INSN_MOVS_M_W_M; goto extract_sfmt_movs_m_w_m;
495 case 136 : itype = CRISV32F_INSN_SUBU_M_B_M; goto extract_sfmt_adds_m_b_m;
496 case 137 : itype = CRISV32F_INSN_SUBU_M_W_M; goto extract_sfmt_adds_m_w_m;
497 case 138 : itype = CRISV32F_INSN_SUBS_M_B_M; goto extract_sfmt_adds_m_b_m;
498 case 139 : itype = CRISV32F_INSN_SUBS_M_W_M; goto extract_sfmt_adds_m_w_m;
499 case 140 : itype = CRISV32F_INSN_CMPU_M_B_M; goto extract_sfmt_cmp_m_b_m;
500 case 141 : itype = CRISV32F_INSN_CMPU_M_W_M; goto extract_sfmt_cmp_m_w_m;
501 case 142 : itype = CRISV32F_INSN_CMPS_M_B_M; goto extract_sfmt_cmp_m_b_m;
502 case 143 : itype = CRISV32F_INSN_CMPS_M_W_M; goto extract_sfmt_cmp_m_w_m;
503 case 144 : itype = CRISV32F_INSN_MULU_B; goto extract_sfmt_muls_b;
504 case 145 : itype = CRISV32F_INSN_MULU_W; goto extract_sfmt_muls_b;
505 case 146 : itype = CRISV32F_INSN_MULU_D; goto extract_sfmt_muls_b;
508 unsigned int val = (((insn >> 12) & (15 << 0)));
512 if ((base_insn & 0xffff) == 0x2930)
513 { itype = CRISV32F_INSN_RFE; goto extract_sfmt_rfe; }
514 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
516 if ((base_insn & 0xffff) == 0x3930)
517 { itype = CRISV32F_INSN_SFE; goto extract_sfmt_sfe; }
518 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
520 if ((base_insn & 0xffff) == 0x4930)
521 { itype = CRISV32F_INSN_RFG; goto extract_sfmt_rfg; }
522 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
524 if ((base_insn & 0xffff) == 0x5930)
525 { itype = CRISV32F_INSN_RFN; goto extract_sfmt_rfn; }
526 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
527 case 14 : itype = CRISV32F_INSN_BREAK; goto extract_sfmt_break;
529 if ((base_insn & 0xffff) == 0xf930)
530 { itype = CRISV32F_INSN_HALT; goto extract_sfmt_halt; }
531 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
532 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
535 case 148 : itype = CRISV32F_INSN_ADDO_M_B_M; goto extract_sfmt_addo_m_b_m;
536 case 149 : itype = CRISV32F_INSN_ADDO_M_W_M; goto extract_sfmt_addo_m_w_m;
537 case 150 : itype = CRISV32F_INSN_ADDO_M_D_M; goto extract_sfmt_addo_m_d_m;
538 case 151 : itype = CRISV32F_INSN_LAPCQ; goto extract_sfmt_lapcq;
539 case 154 : itype = CRISV32F_INSN_ADDC_M; goto extract_sfmt_addc_m;
540 case 155 : itype = CRISV32F_INSN_JAS_R; goto extract_sfmt_jas_r;
542 if ((base_insn & 0xfff) == 0x9f0)
543 { itype = CRISV32F_INSN_JUMP_P; goto extract_sfmt_jump_p; }
544 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
545 case 160 : itype = CRISV32F_INSN_ADD_M_B_M; goto extract_sfmt_add_m_b_m;
546 case 161 : itype = CRISV32F_INSN_ADD_M_W_M; goto extract_sfmt_add_m_w_m;
547 case 162 : itype = CRISV32F_INSN_ADD_M_D_M; goto extract_sfmt_add_m_d_m;
548 case 163 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
549 case 164 : itype = CRISV32F_INSN_MOVE_M_B_M; goto extract_sfmt_move_m_b_m;
550 case 165 : itype = CRISV32F_INSN_MOVE_M_W_M; goto extract_sfmt_move_m_w_m;
551 case 166 : itype = CRISV32F_INSN_MOVE_M_D_M; goto extract_sfmt_move_m_d_m;
552 case 167 : /* fall through */
553 case 231 : itype = CRISV32F_INSN_MOVE_SPR_MV32; goto extract_sfmt_move_spr_mv32;
554 case 168 : itype = CRISV32F_INSN_SUB_M_B_M; goto extract_sfmt_add_m_b_m;
555 case 169 : itype = CRISV32F_INSN_SUB_M_W_M; goto extract_sfmt_add_m_w_m;
556 case 170 : itype = CRISV32F_INSN_SUB_M_D_M; goto extract_sfmt_add_m_d_m;
559 unsigned int val = (((insn >> 12) & (1 << 0)));
563 if ((base_insn & 0xfff0) == 0xab0)
564 { itype = CRISV32F_INSN_FIDXD; goto extract_sfmt_fidxi; }
565 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
567 if ((base_insn & 0xfff0) == 0x1ab0)
568 { itype = CRISV32F_INSN_FTAGD; goto extract_sfmt_fidxi; }
569 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
570 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
573 case 172 : itype = CRISV32F_INSN_CMP_M_B_M; goto extract_sfmt_cmp_m_b_m;
574 case 173 : itype = CRISV32F_INSN_CMP_M_W_M; goto extract_sfmt_cmp_m_w_m;
575 case 174 : itype = CRISV32F_INSN_CMP_M_D_M; goto extract_sfmt_cmp_m_d_m;
576 case 176 : itype = CRISV32F_INSN_AND_M_B_M; goto extract_sfmt_and_m_b_m;
577 case 177 : itype = CRISV32F_INSN_AND_M_W_M; goto extract_sfmt_and_m_w_m;
578 case 178 : itype = CRISV32F_INSN_AND_M_D_M; goto extract_sfmt_and_m_d_m;
579 case 179 : itype = CRISV32F_INSN_JASC_R; goto extract_sfmt_jasc_r;
580 case 180 : itype = CRISV32F_INSN_OR_M_B_M; goto extract_sfmt_and_m_b_m;
581 case 181 : itype = CRISV32F_INSN_OR_M_W_M; goto extract_sfmt_and_m_w_m;
582 case 182 : itype = CRISV32F_INSN_OR_M_D_M; goto extract_sfmt_and_m_d_m;
583 case 183 : itype = CRISV32F_INSN_MOVE_R_SS; goto extract_sfmt_move_r_ss;
584 case 184 : /* fall through */
586 if ((base_insn & 0xfbf0) == 0xb80)
587 { itype = CRISV32F_INSN_TEST_M_B_M; goto extract_sfmt_test_m_b_m; }
588 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
589 case 185 : /* fall through */
591 if ((base_insn & 0xfbf0) == 0xb90)
592 { itype = CRISV32F_INSN_TEST_M_W_M; goto extract_sfmt_test_m_w_m; }
593 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
594 case 186 : /* fall through */
596 if ((base_insn & 0xfbf0) == 0xba0)
597 { itype = CRISV32F_INSN_TEST_M_D_M; goto extract_sfmt_test_m_d_m; }
598 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
599 case 187 : /* fall through */
600 case 251 : itype = CRISV32F_INSN_MOVEM_M_R_V32; goto extract_sfmt_movem_m_r_v32;
601 case 188 : /* fall through */
602 case 252 : itype = CRISV32F_INSN_MOVE_R_M_B_M; goto extract_sfmt_move_r_m_b_m;
603 case 189 : /* fall through */
604 case 253 : itype = CRISV32F_INSN_MOVE_R_M_W_M; goto extract_sfmt_move_r_m_w_m;
605 case 190 : /* fall through */
606 case 254 : itype = CRISV32F_INSN_MOVE_R_M_D_M; goto extract_sfmt_move_r_m_d_m;
607 case 191 : /* fall through */
608 case 255 : itype = CRISV32F_INSN_MOVEM_R_M_V32; goto extract_sfmt_movem_r_m_v32;
611 unsigned int val = (((insn >> 0) & (15 << 0)));
614 case 0 : /* fall through */
615 case 1 : /* fall through */
616 case 2 : /* fall through */
617 case 3 : /* fall through */
618 case 4 : /* fall through */
619 case 5 : /* fall through */
620 case 6 : /* fall through */
621 case 7 : /* fall through */
622 case 8 : /* fall through */
623 case 9 : /* fall through */
624 case 10 : /* fall through */
625 case 11 : /* fall through */
626 case 12 : /* fall through */
627 case 13 : /* fall through */
628 case 14 : itype = CRISV32F_INSN_ADDU_M_B_M; goto extract_sfmt_adds_m_b_m;
629 case 15 : itype = CRISV32F_INSN_ADDUCBR; goto extract_sfmt_addscbr;
630 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
635 unsigned int val = (((insn >> 0) & (15 << 0)));
638 case 0 : /* fall through */
639 case 1 : /* fall through */
640 case 2 : /* fall through */
641 case 3 : /* fall through */
642 case 4 : /* fall through */
643 case 5 : /* fall through */
644 case 6 : /* fall through */
645 case 7 : /* fall through */
646 case 8 : /* fall through */
647 case 9 : /* fall through */
648 case 10 : /* fall through */
649 case 11 : /* fall through */
650 case 12 : /* fall through */
651 case 13 : /* fall through */
652 case 14 : itype = CRISV32F_INSN_ADDU_M_W_M; goto extract_sfmt_adds_m_w_m;
653 case 15 : itype = CRISV32F_INSN_ADDUCWR; goto extract_sfmt_addscwr;
654 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
659 unsigned int val = (((insn >> 0) & (15 << 0)));
662 case 0 : /* fall through */
663 case 1 : /* fall through */
664 case 2 : /* fall through */
665 case 3 : /* fall through */
666 case 4 : /* fall through */
667 case 5 : /* fall through */
668 case 6 : /* fall through */
669 case 7 : /* fall through */
670 case 8 : /* fall through */
671 case 9 : /* fall through */
672 case 10 : /* fall through */
673 case 11 : /* fall through */
674 case 12 : /* fall through */
675 case 13 : /* fall through */
676 case 14 : itype = CRISV32F_INSN_ADDS_M_B_M; goto extract_sfmt_adds_m_b_m;
677 case 15 : itype = CRISV32F_INSN_ADDSCBR; goto extract_sfmt_addscbr;
678 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
683 unsigned int val = (((insn >> 0) & (15 << 0)));
686 case 0 : /* fall through */
687 case 1 : /* fall through */
688 case 2 : /* fall through */
689 case 3 : /* fall through */
690 case 4 : /* fall through */
691 case 5 : /* fall through */
692 case 6 : /* fall through */
693 case 7 : /* fall through */
694 case 8 : /* fall through */
695 case 9 : /* fall through */
696 case 10 : /* fall through */
697 case 11 : /* fall through */
698 case 12 : /* fall through */
699 case 13 : /* fall through */
700 case 14 : itype = CRISV32F_INSN_ADDS_M_W_M; goto extract_sfmt_adds_m_w_m;
701 case 15 : itype = CRISV32F_INSN_ADDSCWR; goto extract_sfmt_addscwr;
702 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
707 unsigned int val = (((insn >> 0) & (15 << 0)));
710 case 0 : /* fall through */
711 case 1 : /* fall through */
712 case 2 : /* fall through */
713 case 3 : /* fall through */
714 case 4 : /* fall through */
715 case 5 : /* fall through */
716 case 6 : /* fall through */
717 case 7 : /* fall through */
718 case 8 : /* fall through */
719 case 9 : /* fall through */
720 case 10 : /* fall through */
721 case 11 : /* fall through */
722 case 12 : /* fall through */
723 case 13 : /* fall through */
724 case 14 : itype = CRISV32F_INSN_MOVU_M_B_M; goto extract_sfmt_movs_m_b_m;
725 case 15 : itype = CRISV32F_INSN_MOVUCBR; goto extract_sfmt_movucbr;
726 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
731 unsigned int val = (((insn >> 0) & (15 << 0)));
734 case 0 : /* fall through */
735 case 1 : /* fall through */
736 case 2 : /* fall through */
737 case 3 : /* fall through */
738 case 4 : /* fall through */
739 case 5 : /* fall through */
740 case 6 : /* fall through */
741 case 7 : /* fall through */
742 case 8 : /* fall through */
743 case 9 : /* fall through */
744 case 10 : /* fall through */
745 case 11 : /* fall through */
746 case 12 : /* fall through */
747 case 13 : /* fall through */
748 case 14 : itype = CRISV32F_INSN_MOVU_M_W_M; goto extract_sfmt_movs_m_w_m;
749 case 15 : itype = CRISV32F_INSN_MOVUCWR; goto extract_sfmt_movucwr;
750 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
755 unsigned int val = (((insn >> 0) & (15 << 0)));
758 case 0 : /* fall through */
759 case 1 : /* fall through */
760 case 2 : /* fall through */
761 case 3 : /* fall through */
762 case 4 : /* fall through */
763 case 5 : /* fall through */
764 case 6 : /* fall through */
765 case 7 : /* fall through */
766 case 8 : /* fall through */
767 case 9 : /* fall through */
768 case 10 : /* fall through */
769 case 11 : /* fall through */
770 case 12 : /* fall through */
771 case 13 : /* fall through */
772 case 14 : itype = CRISV32F_INSN_MOVS_M_B_M; goto extract_sfmt_movs_m_b_m;
773 case 15 : itype = CRISV32F_INSN_MOVSCBR; goto extract_sfmt_movscbr;
774 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
779 unsigned int val = (((insn >> 0) & (15 << 0)));
782 case 0 : /* fall through */
783 case 1 : /* fall through */
784 case 2 : /* fall through */
785 case 3 : /* fall through */
786 case 4 : /* fall through */
787 case 5 : /* fall through */
788 case 6 : /* fall through */
789 case 7 : /* fall through */
790 case 8 : /* fall through */
791 case 9 : /* fall through */
792 case 10 : /* fall through */
793 case 11 : /* fall through */
794 case 12 : /* fall through */
795 case 13 : /* fall through */
796 case 14 : itype = CRISV32F_INSN_MOVS_M_W_M; goto extract_sfmt_movs_m_w_m;
797 case 15 : itype = CRISV32F_INSN_MOVSCWR; goto extract_sfmt_movscwr;
798 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
803 unsigned int val = (((insn >> 0) & (15 << 0)));
806 case 0 : /* fall through */
807 case 1 : /* fall through */
808 case 2 : /* fall through */
809 case 3 : /* fall through */
810 case 4 : /* fall through */
811 case 5 : /* fall through */
812 case 6 : /* fall through */
813 case 7 : /* fall through */
814 case 8 : /* fall through */
815 case 9 : /* fall through */
816 case 10 : /* fall through */
817 case 11 : /* fall through */
818 case 12 : /* fall through */
819 case 13 : /* fall through */
820 case 14 : itype = CRISV32F_INSN_SUBU_M_B_M; goto extract_sfmt_adds_m_b_m;
821 case 15 : itype = CRISV32F_INSN_SUBUCBR; goto extract_sfmt_addscbr;
822 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
827 unsigned int val = (((insn >> 0) & (15 << 0)));
830 case 0 : /* fall through */
831 case 1 : /* fall through */
832 case 2 : /* fall through */
833 case 3 : /* fall through */
834 case 4 : /* fall through */
835 case 5 : /* fall through */
836 case 6 : /* fall through */
837 case 7 : /* fall through */
838 case 8 : /* fall through */
839 case 9 : /* fall through */
840 case 10 : /* fall through */
841 case 11 : /* fall through */
842 case 12 : /* fall through */
843 case 13 : /* fall through */
844 case 14 : itype = CRISV32F_INSN_SUBU_M_W_M; goto extract_sfmt_adds_m_w_m;
845 case 15 : itype = CRISV32F_INSN_SUBUCWR; goto extract_sfmt_addscwr;
846 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
851 unsigned int val = (((insn >> 0) & (15 << 0)));
854 case 0 : /* fall through */
855 case 1 : /* fall through */
856 case 2 : /* fall through */
857 case 3 : /* fall through */
858 case 4 : /* fall through */
859 case 5 : /* fall through */
860 case 6 : /* fall through */
861 case 7 : /* fall through */
862 case 8 : /* fall through */
863 case 9 : /* fall through */
864 case 10 : /* fall through */
865 case 11 : /* fall through */
866 case 12 : /* fall through */
867 case 13 : /* fall through */
868 case 14 : itype = CRISV32F_INSN_SUBS_M_B_M; goto extract_sfmt_adds_m_b_m;
869 case 15 : itype = CRISV32F_INSN_SUBSCBR; goto extract_sfmt_addscbr;
870 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
875 unsigned int val = (((insn >> 0) & (15 << 0)));
878 case 0 : /* fall through */
879 case 1 : /* fall through */
880 case 2 : /* fall through */
881 case 3 : /* fall through */
882 case 4 : /* fall through */
883 case 5 : /* fall through */
884 case 6 : /* fall through */
885 case 7 : /* fall through */
886 case 8 : /* fall through */
887 case 9 : /* fall through */
888 case 10 : /* fall through */
889 case 11 : /* fall through */
890 case 12 : /* fall through */
891 case 13 : /* fall through */
892 case 14 : itype = CRISV32F_INSN_SUBS_M_W_M; goto extract_sfmt_adds_m_w_m;
893 case 15 : itype = CRISV32F_INSN_SUBSCWR; goto extract_sfmt_addscwr;
894 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
899 unsigned int val = (((insn >> 0) & (15 << 0)));
902 case 0 : /* fall through */
903 case 1 : /* fall through */
904 case 2 : /* fall through */
905 case 3 : /* fall through */
906 case 4 : /* fall through */
907 case 5 : /* fall through */
908 case 6 : /* fall through */
909 case 7 : /* fall through */
910 case 8 : /* fall through */
911 case 9 : /* fall through */
912 case 10 : /* fall through */
913 case 11 : /* fall through */
914 case 12 : /* fall through */
915 case 13 : /* fall through */
916 case 14 : itype = CRISV32F_INSN_CMPU_M_B_M; goto extract_sfmt_cmp_m_b_m;
917 case 15 : itype = CRISV32F_INSN_CMPUCBR; goto extract_sfmt_cmpucbr;
918 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
923 unsigned int val = (((insn >> 0) & (15 << 0)));
926 case 0 : /* fall through */
927 case 1 : /* fall through */
928 case 2 : /* fall through */
929 case 3 : /* fall through */
930 case 4 : /* fall through */
931 case 5 : /* fall through */
932 case 6 : /* fall through */
933 case 7 : /* fall through */
934 case 8 : /* fall through */
935 case 9 : /* fall through */
936 case 10 : /* fall through */
937 case 11 : /* fall through */
938 case 12 : /* fall through */
939 case 13 : /* fall through */
940 case 14 : itype = CRISV32F_INSN_CMPU_M_W_M; goto extract_sfmt_cmp_m_w_m;
941 case 15 : itype = CRISV32F_INSN_CMPUCWR; goto extract_sfmt_cmpucwr;
942 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
947 unsigned int val = (((insn >> 0) & (15 << 0)));
950 case 0 : /* fall through */
951 case 1 : /* fall through */
952 case 2 : /* fall through */
953 case 3 : /* fall through */
954 case 4 : /* fall through */
955 case 5 : /* fall through */
956 case 6 : /* fall through */
957 case 7 : /* fall through */
958 case 8 : /* fall through */
959 case 9 : /* fall through */
960 case 10 : /* fall through */
961 case 11 : /* fall through */
962 case 12 : /* fall through */
963 case 13 : /* fall through */
964 case 14 : itype = CRISV32F_INSN_CMPS_M_B_M; goto extract_sfmt_cmp_m_b_m;
965 case 15 : itype = CRISV32F_INSN_CMPSCBR; goto extract_sfmt_cmpcbr;
966 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
971 unsigned int val = (((insn >> 0) & (15 << 0)));
974 case 0 : /* fall through */
975 case 1 : /* fall through */
976 case 2 : /* fall through */
977 case 3 : /* fall through */
978 case 4 : /* fall through */
979 case 5 : /* fall through */
980 case 6 : /* fall through */
981 case 7 : /* fall through */
982 case 8 : /* fall through */
983 case 9 : /* fall through */
984 case 10 : /* fall through */
985 case 11 : /* fall through */
986 case 12 : /* fall through */
987 case 13 : /* fall through */
988 case 14 : itype = CRISV32F_INSN_CMPS_M_W_M; goto extract_sfmt_cmp_m_w_m;
989 case 15 : itype = CRISV32F_INSN_CMPSCWR; goto extract_sfmt_cmpcwr;
990 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
993 case 208 : itype = CRISV32F_INSN_MULS_B; goto extract_sfmt_muls_b;
994 case 209 : itype = CRISV32F_INSN_MULS_W; goto extract_sfmt_muls_b;
995 case 210 : itype = CRISV32F_INSN_MULS_D; goto extract_sfmt_muls_b;
998 unsigned int val = (((insn >> 12) & (1 << 0)));
1002 if ((base_insn & 0xfff0) == 0xd30)
1003 { itype = CRISV32F_INSN_FIDXI; goto extract_sfmt_fidxi; }
1004 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1006 if ((base_insn & 0xfff0) == 0x1d30)
1007 { itype = CRISV32F_INSN_FTAGI; goto extract_sfmt_fidxi; }
1008 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1009 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1014 unsigned int val = (((insn >> 0) & (15 << 0)));
1017 case 0 : /* fall through */
1018 case 1 : /* fall through */
1019 case 2 : /* fall through */
1020 case 3 : /* fall through */
1021 case 4 : /* fall through */
1022 case 5 : /* fall through */
1023 case 6 : /* fall through */
1024 case 7 : /* fall through */
1025 case 8 : /* fall through */
1026 case 9 : /* fall through */
1027 case 10 : /* fall through */
1028 case 11 : /* fall through */
1029 case 12 : /* fall through */
1030 case 13 : /* fall through */
1031 case 14 : itype = CRISV32F_INSN_ADDO_M_B_M; goto extract_sfmt_addo_m_b_m;
1032 case 15 : itype = CRISV32F_INSN_ADDO_CB; goto extract_sfmt_addo_cb;
1033 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1038 unsigned int val = (((insn >> 0) & (15 << 0)));
1041 case 0 : /* fall through */
1042 case 1 : /* fall through */
1043 case 2 : /* fall through */
1044 case 3 : /* fall through */
1045 case 4 : /* fall through */
1046 case 5 : /* fall through */
1047 case 6 : /* fall through */
1048 case 7 : /* fall through */
1049 case 8 : /* fall through */
1050 case 9 : /* fall through */
1051 case 10 : /* fall through */
1052 case 11 : /* fall through */
1053 case 12 : /* fall through */
1054 case 13 : /* fall through */
1055 case 14 : itype = CRISV32F_INSN_ADDO_M_W_M; goto extract_sfmt_addo_m_w_m;
1056 case 15 : itype = CRISV32F_INSN_ADDO_CW; goto extract_sfmt_addo_cw;
1057 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1062 unsigned int val = (((insn >> 0) & (15 << 0)));
1065 case 0 : /* fall through */
1066 case 1 : /* fall through */
1067 case 2 : /* fall through */
1068 case 3 : /* fall through */
1069 case 4 : /* fall through */
1070 case 5 : /* fall through */
1071 case 6 : /* fall through */
1072 case 7 : /* fall through */
1073 case 8 : /* fall through */
1074 case 9 : /* fall through */
1075 case 10 : /* fall through */
1076 case 11 : /* fall through */
1077 case 12 : /* fall through */
1078 case 13 : /* fall through */
1079 case 14 : itype = CRISV32F_INSN_ADDO_M_D_M; goto extract_sfmt_addo_m_d_m;
1080 case 15 : itype = CRISV32F_INSN_ADDO_CD; goto extract_sfmt_addo_cd;
1081 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1085 if ((base_insn & 0xfff) == 0xd7f)
1086 { itype = CRISV32F_INSN_LAPC_D; goto extract_sfmt_lapc_d; }
1087 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 */
1107 case 14 : itype = CRISV32F_INSN_ADDC_M; goto extract_sfmt_addc_m;
1108 case 15 : itype = CRISV32F_INSN_ADDC_C; goto extract_sfmt_addcdr;
1109 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1113 if ((base_insn & 0xfff) == 0xdbf)
1114 { itype = CRISV32F_INSN_JAS_C; goto extract_sfmt_jas_c; }
1115 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1117 if ((base_insn & 0xfff) == 0xdcf)
1118 { itype = CRISV32F_INSN_BOUND_CB; goto extract_sfmt_bound_cb; }
1119 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1121 if ((base_insn & 0xfff) == 0xddf)
1122 { itype = CRISV32F_INSN_BOUND_CW; goto extract_sfmt_bound_cw; }
1123 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1125 if ((base_insn & 0xfff) == 0xdef)
1126 { itype = CRISV32F_INSN_BOUND_CD; goto extract_sfmt_bound_cd; }
1127 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1130 unsigned int val = (((insn >> 12) & (15 << 0)));
1133 case 0 : /* fall through */
1134 case 1 : /* fall through */
1135 case 2 : /* fall through */
1136 case 3 : /* fall through */
1137 case 4 : /* fall through */
1138 case 5 : /* fall through */
1139 case 6 : /* fall through */
1140 case 7 : /* fall through */
1141 case 8 : /* fall through */
1142 case 9 : /* fall through */
1143 case 10 : /* fall through */
1144 case 11 : /* fall through */
1145 case 12 : /* fall through */
1146 case 13 : /* fall through */
1148 if ((base_insn & 0xfff) == 0xdff)
1149 { itype = CRISV32F_INSN_BCC_W; goto extract_sfmt_bcc_w; }
1150 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1152 if ((base_insn & 0xffff) == 0xedff)
1153 { itype = CRISV32F_INSN_BA_W; goto extract_sfmt_ba_w; }
1154 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1155 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1160 unsigned int val = (((insn >> 0) & (15 << 0)));
1163 case 0 : /* fall through */
1164 case 1 : /* fall through */
1165 case 2 : /* fall through */
1166 case 3 : /* fall through */
1167 case 4 : /* fall through */
1168 case 5 : /* fall through */
1169 case 6 : /* fall through */
1170 case 7 : /* fall through */
1171 case 8 : /* fall through */
1172 case 9 : /* fall through */
1173 case 10 : /* fall through */
1174 case 11 : /* fall through */
1175 case 12 : /* fall through */
1176 case 13 : /* fall through */
1177 case 14 : itype = CRISV32F_INSN_ADD_M_B_M; goto extract_sfmt_add_m_b_m;
1178 case 15 : itype = CRISV32F_INSN_ADDCBR; goto extract_sfmt_addcbr;
1179 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1184 unsigned int val = (((insn >> 0) & (15 << 0)));
1187 case 0 : /* fall through */
1188 case 1 : /* fall through */
1189 case 2 : /* fall through */
1190 case 3 : /* fall through */
1191 case 4 : /* fall through */
1192 case 5 : /* fall through */
1193 case 6 : /* fall through */
1194 case 7 : /* fall through */
1195 case 8 : /* fall through */
1196 case 9 : /* fall through */
1197 case 10 : /* fall through */
1198 case 11 : /* fall through */
1199 case 12 : /* fall through */
1200 case 13 : /* fall through */
1201 case 14 : itype = CRISV32F_INSN_ADD_M_W_M; goto extract_sfmt_add_m_w_m;
1202 case 15 : itype = CRISV32F_INSN_ADDCWR; goto extract_sfmt_addcwr;
1203 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1208 unsigned int val = (((insn >> 0) & (15 << 0)));
1211 case 0 : /* fall through */
1212 case 1 : /* fall through */
1213 case 2 : /* fall through */
1214 case 3 : /* fall through */
1215 case 4 : /* fall through */
1216 case 5 : /* fall through */
1217 case 6 : /* fall through */
1218 case 7 : /* fall through */
1219 case 8 : /* fall through */
1220 case 9 : /* fall through */
1221 case 10 : /* fall through */
1222 case 11 : /* fall through */
1223 case 12 : /* fall through */
1224 case 13 : /* fall through */
1225 case 14 : itype = CRISV32F_INSN_ADD_M_D_M; goto extract_sfmt_add_m_d_m;
1226 case 15 : itype = CRISV32F_INSN_ADDCDR; goto extract_sfmt_addcdr;
1227 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1232 unsigned int val = (((insn >> 12) & (15 << 0)));
1235 case 0 : /* fall through */
1236 case 1 : /* fall through */
1237 case 4 : /* fall through */
1238 case 8 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1241 unsigned int val = (((insn >> 0) & (15 << 0)));
1244 case 0 : /* fall through */
1245 case 1 : /* fall through */
1246 case 2 : /* fall through */
1247 case 3 : /* fall through */
1248 case 4 : /* fall through */
1249 case 5 : /* fall through */
1250 case 6 : /* fall through */
1251 case 7 : /* fall through */
1252 case 8 : /* fall through */
1253 case 9 : /* fall through */
1254 case 10 : /* fall through */
1255 case 11 : /* fall through */
1256 case 12 : /* fall through */
1257 case 13 : /* fall through */
1258 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1259 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P2; goto extract_sfmt_move_c_sprv32_p2;
1260 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1265 unsigned int val = (((insn >> 0) & (15 << 0)));
1268 case 0 : /* fall through */
1269 case 1 : /* fall through */
1270 case 2 : /* fall through */
1271 case 3 : /* fall through */
1272 case 4 : /* fall through */
1273 case 5 : /* fall through */
1274 case 6 : /* fall through */
1275 case 7 : /* fall through */
1276 case 8 : /* fall through */
1277 case 9 : /* fall through */
1278 case 10 : /* fall through */
1279 case 11 : /* fall through */
1280 case 12 : /* fall through */
1281 case 13 : /* fall through */
1282 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1283 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P3; goto extract_sfmt_move_c_sprv32_p2;
1284 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1289 unsigned int val = (((insn >> 0) & (15 << 0)));
1292 case 0 : /* fall through */
1293 case 1 : /* fall through */
1294 case 2 : /* fall through */
1295 case 3 : /* fall through */
1296 case 4 : /* fall through */
1297 case 5 : /* fall through */
1298 case 6 : /* fall through */
1299 case 7 : /* fall through */
1300 case 8 : /* fall through */
1301 case 9 : /* fall through */
1302 case 10 : /* fall through */
1303 case 11 : /* fall through */
1304 case 12 : /* fall through */
1305 case 13 : /* fall through */
1306 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1307 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P5; goto extract_sfmt_move_c_sprv32_p2;
1308 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1313 unsigned int val = (((insn >> 0) & (15 << 0)));
1316 case 0 : /* fall through */
1317 case 1 : /* fall through */
1318 case 2 : /* fall through */
1319 case 3 : /* fall through */
1320 case 4 : /* fall through */
1321 case 5 : /* fall through */
1322 case 6 : /* fall through */
1323 case 7 : /* fall through */
1324 case 8 : /* fall through */
1325 case 9 : /* fall through */
1326 case 10 : /* fall through */
1327 case 11 : /* fall through */
1328 case 12 : /* fall through */
1329 case 13 : /* fall through */
1330 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1331 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P6; goto extract_sfmt_move_c_sprv32_p2;
1332 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1337 unsigned int val = (((insn >> 0) & (15 << 0)));
1340 case 0 : /* fall through */
1341 case 1 : /* fall through */
1342 case 2 : /* fall through */
1343 case 3 : /* fall through */
1344 case 4 : /* fall through */
1345 case 5 : /* fall through */
1346 case 6 : /* fall through */
1347 case 7 : /* fall through */
1348 case 8 : /* fall through */
1349 case 9 : /* fall through */
1350 case 10 : /* fall through */
1351 case 11 : /* fall through */
1352 case 12 : /* fall through */
1353 case 13 : /* fall through */
1354 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1355 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P7; goto extract_sfmt_move_c_sprv32_p2;
1356 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1361 unsigned int val = (((insn >> 0) & (15 << 0)));
1364 case 0 : /* fall through */
1365 case 1 : /* fall through */
1366 case 2 : /* fall through */
1367 case 3 : /* fall through */
1368 case 4 : /* fall through */
1369 case 5 : /* fall through */
1370 case 6 : /* fall through */
1371 case 7 : /* fall through */
1372 case 8 : /* fall through */
1373 case 9 : /* fall through */
1374 case 10 : /* fall through */
1375 case 11 : /* fall through */
1376 case 12 : /* fall through */
1377 case 13 : /* fall through */
1378 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1379 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P9; goto extract_sfmt_move_c_sprv32_p2;
1380 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1385 unsigned int val = (((insn >> 0) & (15 << 0)));
1388 case 0 : /* fall through */
1389 case 1 : /* fall through */
1390 case 2 : /* fall through */
1391 case 3 : /* fall through */
1392 case 4 : /* fall through */
1393 case 5 : /* fall through */
1394 case 6 : /* fall through */
1395 case 7 : /* fall through */
1396 case 8 : /* fall through */
1397 case 9 : /* fall through */
1398 case 10 : /* fall through */
1399 case 11 : /* fall through */
1400 case 12 : /* fall through */
1401 case 13 : /* fall through */
1402 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1403 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P10; goto extract_sfmt_move_c_sprv32_p2;
1404 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1409 unsigned int val = (((insn >> 0) & (15 << 0)));
1412 case 0 : /* fall through */
1413 case 1 : /* fall through */
1414 case 2 : /* fall through */
1415 case 3 : /* fall through */
1416 case 4 : /* fall through */
1417 case 5 : /* fall through */
1418 case 6 : /* fall through */
1419 case 7 : /* fall through */
1420 case 8 : /* fall through */
1421 case 9 : /* fall through */
1422 case 10 : /* fall through */
1423 case 11 : /* fall through */
1424 case 12 : /* fall through */
1425 case 13 : /* fall through */
1426 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1427 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P11; goto extract_sfmt_move_c_sprv32_p2;
1428 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1433 unsigned int val = (((insn >> 0) & (15 << 0)));
1436 case 0 : /* fall through */
1437 case 1 : /* fall through */
1438 case 2 : /* fall through */
1439 case 3 : /* fall through */
1440 case 4 : /* fall through */
1441 case 5 : /* fall through */
1442 case 6 : /* fall through */
1443 case 7 : /* fall through */
1444 case 8 : /* fall through */
1445 case 9 : /* fall through */
1446 case 10 : /* fall through */
1447 case 11 : /* fall through */
1448 case 12 : /* fall through */
1449 case 13 : /* fall through */
1450 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1451 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P12; goto extract_sfmt_move_c_sprv32_p2;
1452 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1457 unsigned int val = (((insn >> 0) & (15 << 0)));
1460 case 0 : /* fall through */
1461 case 1 : /* fall through */
1462 case 2 : /* fall through */
1463 case 3 : /* fall through */
1464 case 4 : /* fall through */
1465 case 5 : /* fall through */
1466 case 6 : /* fall through */
1467 case 7 : /* fall through */
1468 case 8 : /* fall through */
1469 case 9 : /* fall through */
1470 case 10 : /* fall through */
1471 case 11 : /* fall through */
1472 case 12 : /* fall through */
1473 case 13 : /* fall through */
1474 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1475 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P13; goto extract_sfmt_move_c_sprv32_p2;
1476 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1481 unsigned int val = (((insn >> 0) & (15 << 0)));
1484 case 0 : /* fall through */
1485 case 1 : /* fall through */
1486 case 2 : /* fall through */
1487 case 3 : /* fall through */
1488 case 4 : /* fall through */
1489 case 5 : /* fall through */
1490 case 6 : /* fall through */
1491 case 7 : /* fall through */
1492 case 8 : /* fall through */
1493 case 9 : /* fall through */
1494 case 10 : /* fall through */
1495 case 11 : /* fall through */
1496 case 12 : /* fall through */
1497 case 13 : /* fall through */
1498 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1499 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P14; goto extract_sfmt_move_c_sprv32_p2;
1500 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1505 unsigned int val = (((insn >> 0) & (15 << 0)));
1508 case 0 : /* fall through */
1509 case 1 : /* fall through */
1510 case 2 : /* fall through */
1511 case 3 : /* fall through */
1512 case 4 : /* fall through */
1513 case 5 : /* fall through */
1514 case 6 : /* fall through */
1515 case 7 : /* fall through */
1516 case 8 : /* fall through */
1517 case 9 : /* fall through */
1518 case 10 : /* fall through */
1519 case 11 : /* fall through */
1520 case 12 : /* fall through */
1521 case 13 : /* fall through */
1522 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1523 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P15; goto extract_sfmt_move_c_sprv32_p2;
1524 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1527 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1532 unsigned int val = (((insn >> 0) & (15 << 0)));
1535 case 0 : /* fall through */
1536 case 1 : /* fall through */
1537 case 2 : /* fall through */
1538 case 3 : /* fall through */
1539 case 4 : /* fall through */
1540 case 5 : /* fall through */
1541 case 6 : /* fall through */
1542 case 7 : /* fall through */
1543 case 8 : /* fall through */
1544 case 9 : /* fall through */
1545 case 10 : /* fall through */
1546 case 11 : /* fall through */
1547 case 12 : /* fall through */
1548 case 13 : /* fall through */
1549 case 14 : itype = CRISV32F_INSN_MOVE_M_B_M; goto extract_sfmt_move_m_b_m;
1550 case 15 : itype = CRISV32F_INSN_MOVECBR; goto extract_sfmt_movecbr;
1551 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1556 unsigned int val = (((insn >> 0) & (15 << 0)));
1559 case 0 : /* fall through */
1560 case 1 : /* fall through */
1561 case 2 : /* fall through */
1562 case 3 : /* fall through */
1563 case 4 : /* fall through */
1564 case 5 : /* fall through */
1565 case 6 : /* fall through */
1566 case 7 : /* fall through */
1567 case 8 : /* fall through */
1568 case 9 : /* fall through */
1569 case 10 : /* fall through */
1570 case 11 : /* fall through */
1571 case 12 : /* fall through */
1572 case 13 : /* fall through */
1573 case 14 : itype = CRISV32F_INSN_MOVE_M_W_M; goto extract_sfmt_move_m_w_m;
1574 case 15 : itype = CRISV32F_INSN_MOVECWR; goto extract_sfmt_movecwr;
1575 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1580 unsigned int val = (((insn >> 0) & (15 << 0)));
1583 case 0 : /* fall through */
1584 case 1 : /* fall through */
1585 case 2 : /* fall through */
1586 case 3 : /* fall through */
1587 case 4 : /* fall through */
1588 case 5 : /* fall through */
1589 case 6 : /* fall through */
1590 case 7 : /* fall through */
1591 case 8 : /* fall through */
1592 case 9 : /* fall through */
1593 case 10 : /* fall through */
1594 case 11 : /* fall through */
1595 case 12 : /* fall through */
1596 case 13 : /* fall through */
1597 case 14 : itype = CRISV32F_INSN_MOVE_M_D_M; goto extract_sfmt_move_m_d_m;
1598 case 15 : itype = CRISV32F_INSN_MOVECDR; goto extract_sfmt_movecdr;
1599 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1604 unsigned int val = (((insn >> 0) & (15 << 0)));
1607 case 0 : /* fall through */
1608 case 1 : /* fall through */
1609 case 2 : /* fall through */
1610 case 3 : /* fall through */
1611 case 4 : /* fall through */
1612 case 5 : /* fall through */
1613 case 6 : /* fall through */
1614 case 7 : /* fall through */
1615 case 8 : /* fall through */
1616 case 9 : /* fall through */
1617 case 10 : /* fall through */
1618 case 11 : /* fall through */
1619 case 12 : /* fall through */
1620 case 13 : /* fall through */
1621 case 14 : itype = CRISV32F_INSN_SUB_M_B_M; goto extract_sfmt_add_m_b_m;
1622 case 15 : itype = CRISV32F_INSN_SUBCBR; goto extract_sfmt_addcbr;
1623 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1628 unsigned int val = (((insn >> 0) & (15 << 0)));
1631 case 0 : /* fall through */
1632 case 1 : /* fall through */
1633 case 2 : /* fall through */
1634 case 3 : /* fall through */
1635 case 4 : /* fall through */
1636 case 5 : /* fall through */
1637 case 6 : /* fall through */
1638 case 7 : /* fall through */
1639 case 8 : /* fall through */
1640 case 9 : /* fall through */
1641 case 10 : /* fall through */
1642 case 11 : /* fall through */
1643 case 12 : /* fall through */
1644 case 13 : /* fall through */
1645 case 14 : itype = CRISV32F_INSN_SUB_M_W_M; goto extract_sfmt_add_m_w_m;
1646 case 15 : itype = CRISV32F_INSN_SUBCWR; goto extract_sfmt_addcwr;
1647 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1652 unsigned int val = (((insn >> 0) & (15 << 0)));
1655 case 0 : /* fall through */
1656 case 1 : /* fall through */
1657 case 2 : /* fall through */
1658 case 3 : /* fall through */
1659 case 4 : /* fall through */
1660 case 5 : /* fall through */
1661 case 6 : /* fall through */
1662 case 7 : /* fall through */
1663 case 8 : /* fall through */
1664 case 9 : /* fall through */
1665 case 10 : /* fall through */
1666 case 11 : /* fall through */
1667 case 12 : /* fall through */
1668 case 13 : /* fall through */
1669 case 14 : itype = CRISV32F_INSN_SUB_M_D_M; goto extract_sfmt_add_m_d_m;
1670 case 15 : itype = CRISV32F_INSN_SUBCDR; goto extract_sfmt_addcdr;
1671 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1675 if ((base_insn & 0xfff) == 0xebf)
1676 { itype = CRISV32F_INSN_BAS_C; goto extract_sfmt_bas_c; }
1677 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1680 unsigned int val = (((insn >> 0) & (15 << 0)));
1683 case 0 : /* fall through */
1684 case 1 : /* fall through */
1685 case 2 : /* fall through */
1686 case 3 : /* fall through */
1687 case 4 : /* fall through */
1688 case 5 : /* fall through */
1689 case 6 : /* fall through */
1690 case 7 : /* fall through */
1691 case 8 : /* fall through */
1692 case 9 : /* fall through */
1693 case 10 : /* fall through */
1694 case 11 : /* fall through */
1695 case 12 : /* fall through */
1696 case 13 : /* fall through */
1697 case 14 : itype = CRISV32F_INSN_CMP_M_B_M; goto extract_sfmt_cmp_m_b_m;
1698 case 15 : itype = CRISV32F_INSN_CMPCBR; goto extract_sfmt_cmpcbr;
1699 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1704 unsigned int val = (((insn >> 0) & (15 << 0)));
1707 case 0 : /* fall through */
1708 case 1 : /* fall through */
1709 case 2 : /* fall through */
1710 case 3 : /* fall through */
1711 case 4 : /* fall through */
1712 case 5 : /* fall through */
1713 case 6 : /* fall through */
1714 case 7 : /* fall through */
1715 case 8 : /* fall through */
1716 case 9 : /* fall through */
1717 case 10 : /* fall through */
1718 case 11 : /* fall through */
1719 case 12 : /* fall through */
1720 case 13 : /* fall through */
1721 case 14 : itype = CRISV32F_INSN_CMP_M_W_M; goto extract_sfmt_cmp_m_w_m;
1722 case 15 : itype = CRISV32F_INSN_CMPCWR; goto extract_sfmt_cmpcwr;
1723 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1728 unsigned int val = (((insn >> 0) & (15 << 0)));
1731 case 0 : /* fall through */
1732 case 1 : /* fall through */
1733 case 2 : /* fall through */
1734 case 3 : /* fall through */
1735 case 4 : /* fall through */
1736 case 5 : /* fall through */
1737 case 6 : /* fall through */
1738 case 7 : /* fall through */
1739 case 8 : /* fall through */
1740 case 9 : /* fall through */
1741 case 10 : /* fall through */
1742 case 11 : /* fall through */
1743 case 12 : /* fall through */
1744 case 13 : /* fall through */
1745 case 14 : itype = CRISV32F_INSN_CMP_M_D_M; goto extract_sfmt_cmp_m_d_m;
1746 case 15 : itype = CRISV32F_INSN_CMPCDR; goto extract_sfmt_cmpcdr;
1747 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1751 if ((base_insn & 0xfff) == 0xeff)
1752 { itype = CRISV32F_INSN_BASC_C; goto extract_sfmt_bas_c; }
1753 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1756 unsigned int val = (((insn >> 0) & (15 << 0)));
1759 case 0 : /* fall through */
1760 case 1 : /* fall through */
1761 case 2 : /* fall through */
1762 case 3 : /* fall through */
1763 case 4 : /* fall through */
1764 case 5 : /* fall through */
1765 case 6 : /* fall through */
1766 case 7 : /* fall through */
1767 case 8 : /* fall through */
1768 case 9 : /* fall through */
1769 case 10 : /* fall through */
1770 case 11 : /* fall through */
1771 case 12 : /* fall through */
1772 case 13 : /* fall through */
1773 case 14 : itype = CRISV32F_INSN_AND_M_B_M; goto extract_sfmt_and_m_b_m;
1774 case 15 : itype = CRISV32F_INSN_ANDCBR; goto extract_sfmt_andcbr;
1775 default : 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 */
1797 case 14 : itype = CRISV32F_INSN_AND_M_W_M; goto extract_sfmt_and_m_w_m;
1798 case 15 : itype = CRISV32F_INSN_ANDCWR; goto extract_sfmt_andcwr;
1799 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1804 unsigned int val = (((insn >> 0) & (15 << 0)));
1807 case 0 : /* fall through */
1808 case 1 : /* fall through */
1809 case 2 : /* fall through */
1810 case 3 : /* fall through */
1811 case 4 : /* fall through */
1812 case 5 : /* fall through */
1813 case 6 : /* fall through */
1814 case 7 : /* fall through */
1815 case 8 : /* fall through */
1816 case 9 : /* fall through */
1817 case 10 : /* fall through */
1818 case 11 : /* fall through */
1819 case 12 : /* fall through */
1820 case 13 : /* fall through */
1821 case 14 : itype = CRISV32F_INSN_AND_M_D_M; goto extract_sfmt_and_m_d_m;
1822 case 15 : itype = CRISV32F_INSN_ANDCDR; goto extract_sfmt_andcdr;
1823 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1827 if ((base_insn & 0xfff) == 0xf3f)
1828 { itype = CRISV32F_INSN_JASC_C; goto extract_sfmt_jas_c; }
1829 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1832 unsigned int val = (((insn >> 0) & (15 << 0)));
1835 case 0 : /* fall through */
1836 case 1 : /* fall through */
1837 case 2 : /* fall through */
1838 case 3 : /* fall through */
1839 case 4 : /* fall through */
1840 case 5 : /* fall through */
1841 case 6 : /* fall through */
1842 case 7 : /* fall through */
1843 case 8 : /* fall through */
1844 case 9 : /* fall through */
1845 case 10 : /* fall through */
1846 case 11 : /* fall through */
1847 case 12 : /* fall through */
1848 case 13 : /* fall through */
1849 case 14 : itype = CRISV32F_INSN_OR_M_B_M; goto extract_sfmt_and_m_b_m;
1850 case 15 : itype = CRISV32F_INSN_ORCBR; goto extract_sfmt_andcbr;
1851 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1856 unsigned int val = (((insn >> 0) & (15 << 0)));
1859 case 0 : /* fall through */
1860 case 1 : /* fall through */
1861 case 2 : /* fall through */
1862 case 3 : /* fall through */
1863 case 4 : /* fall through */
1864 case 5 : /* fall through */
1865 case 6 : /* fall through */
1866 case 7 : /* fall through */
1867 case 8 : /* fall through */
1868 case 9 : /* fall through */
1869 case 10 : /* fall through */
1870 case 11 : /* fall through */
1871 case 12 : /* fall through */
1872 case 13 : /* fall through */
1873 case 14 : itype = CRISV32F_INSN_OR_M_W_M; goto extract_sfmt_and_m_w_m;
1874 case 15 : itype = CRISV32F_INSN_ORCWR; goto extract_sfmt_andcwr;
1875 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1880 unsigned int val = (((insn >> 0) & (15 << 0)));
1883 case 0 : /* fall through */
1884 case 1 : /* fall through */
1885 case 2 : /* fall through */
1886 case 3 : /* fall through */
1887 case 4 : /* fall through */
1888 case 5 : /* fall through */
1889 case 6 : /* fall through */
1890 case 7 : /* fall through */
1891 case 8 : /* fall through */
1892 case 9 : /* fall through */
1893 case 10 : /* fall through */
1894 case 11 : /* fall through */
1895 case 12 : /* fall through */
1896 case 13 : /* fall through */
1897 case 14 : itype = CRISV32F_INSN_OR_M_D_M; goto extract_sfmt_and_m_d_m;
1898 case 15 : itype = CRISV32F_INSN_ORCDR; goto extract_sfmt_andcdr;
1899 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1902 case 247 : itype = CRISV32F_INSN_MOVE_SS_R; goto extract_sfmt_move_ss_r;
1903 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1908 /* The instruction has been decoded, now extract the fields. */
1912 const IDESC *idesc = &crisv32f_insn_data[itype];
1913 #define FLD(f) abuf->fields.sfmt_empty.f
1916 /* Record the fields for the semantic handler. */
1917 CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_empty", (char *) 0));
1923 extract_sfmt_move_b_r:
1925 const IDESC *idesc = &crisv32f_insn_data[itype];
1926 CGEN_INSN_WORD insn = base_insn;
1927 #define FLD(f) abuf->fields.sfmt_addc_m.f
1931 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
1932 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
1934 /* Record the fields for the semantic handler. */
1935 FLD (f_operand1) = f_operand1;
1936 FLD (f_operand2) = f_operand2;
1937 CGEN_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));
1939 #if WITH_PROFILE_MODEL_P
1940 /* Record the fields for profiling. */
1941 if (PROFILE_MODEL_P (current_cpu))
1943 FLD (in_Rs) = f_operand1;
1944 FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
1951 extract_sfmt_move_d_r:
1953 const IDESC *idesc = &crisv32f_insn_data[itype];
1954 CGEN_INSN_WORD insn = base_insn;
1955 #define FLD(f) abuf->fields.sfmt_addc_m.f
1959 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
1960 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
1962 /* Record the fields for the semantic handler. */
1963 FLD (f_operand1) = f_operand1;
1964 FLD (f_operand2) = f_operand2;
1965 CGEN_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));
1967 #if WITH_PROFILE_MODEL_P
1968 /* Record the fields for profiling. */
1969 if (PROFILE_MODEL_P (current_cpu))
1971 FLD (in_Rs) = f_operand1;
1972 FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
1981 const IDESC *idesc = &crisv32f_insn_data[itype];
1982 CGEN_INSN_WORD insn = base_insn;
1983 #define FLD(f) abuf->fields.sfmt_moveq.f
1987 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
1988 f_s6 = EXTRACT_LSB0_SINT (insn, 16, 5, 6);
1990 /* Record the fields for the semantic handler. */
1992 FLD (f_operand2) = f_operand2;
1993 CGEN_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));
1995 #if WITH_PROFILE_MODEL_P
1996 /* Record the fields for profiling. */
1997 if (PROFILE_MODEL_P (current_cpu))
1999 FLD (out_Rd) = f_operand2;
2006 extract_sfmt_movs_b_r:
2008 const IDESC *idesc = &crisv32f_insn_data[itype];
2009 CGEN_INSN_WORD insn = base_insn;
2010 #define FLD(f) abuf->fields.sfmt_muls_b.f
2014 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2015 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2017 /* Record the fields for the semantic handler. */
2018 FLD (f_operand1) = f_operand1;
2019 FLD (f_operand2) = f_operand2;
2020 CGEN_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));
2022 #if WITH_PROFILE_MODEL_P
2023 /* Record the fields for profiling. */
2024 if (PROFILE_MODEL_P (current_cpu))
2026 FLD (in_Rs) = f_operand1;
2027 FLD (out_Rd) = f_operand2;
2034 extract_sfmt_movecbr:
2036 const IDESC *idesc = &crisv32f_insn_data[itype];
2037 CGEN_INSN_WORD insn = base_insn;
2038 #define FLD(f) abuf->fields.sfmt_addcbr.f
2039 INT f_indir_pc__byte;
2041 /* Contents of trailing part of insn. */
2044 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2045 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2046 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2048 /* Record the fields for the semantic handler. */
2049 FLD (f_operand2) = f_operand2;
2050 FLD (f_indir_pc__byte) = f_indir_pc__byte;
2051 CGEN_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));
2053 #if WITH_PROFILE_MODEL_P
2054 /* Record the fields for profiling. */
2055 if (PROFILE_MODEL_P (current_cpu))
2057 FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
2064 extract_sfmt_movecwr:
2066 const IDESC *idesc = &crisv32f_insn_data[itype];
2067 CGEN_INSN_WORD insn = base_insn;
2068 #define FLD(f) abuf->fields.sfmt_addcwr.f
2069 INT f_indir_pc__word;
2071 /* Contents of trailing part of insn. */
2074 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2075 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2076 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2078 /* Record the fields for the semantic handler. */
2079 FLD (f_operand2) = f_operand2;
2080 FLD (f_indir_pc__word) = f_indir_pc__word;
2081 CGEN_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));
2083 #if WITH_PROFILE_MODEL_P
2084 /* Record the fields for profiling. */
2085 if (PROFILE_MODEL_P (current_cpu))
2087 FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
2094 extract_sfmt_movecdr:
2096 const IDESC *idesc = &crisv32f_insn_data[itype];
2097 CGEN_INSN_WORD insn = base_insn;
2098 #define FLD(f) abuf->fields.sfmt_bound_cd.f
2099 INT f_indir_pc__dword;
2101 /* Contents of trailing part of insn. */
2104 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2105 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
2106 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2108 /* Record the fields for the semantic handler. */
2109 FLD (f_indir_pc__dword) = f_indir_pc__dword;
2110 FLD (f_operand2) = f_operand2;
2111 CGEN_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));
2113 #if WITH_PROFILE_MODEL_P
2114 /* Record the fields for profiling. */
2115 if (PROFILE_MODEL_P (current_cpu))
2117 FLD (out_Rd) = f_operand2;
2124 extract_sfmt_movscbr:
2126 const IDESC *idesc = &crisv32f_insn_data[itype];
2127 CGEN_INSN_WORD insn = base_insn;
2128 #define FLD(f) abuf->fields.sfmt_bound_cb.f
2130 INT f_indir_pc__byte;
2131 /* Contents of trailing part of insn. */
2134 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2135 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2136 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2138 /* Record the fields for the semantic handler. */
2139 FLD (f_indir_pc__byte) = f_indir_pc__byte;
2140 FLD (f_operand2) = f_operand2;
2141 CGEN_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));
2143 #if WITH_PROFILE_MODEL_P
2144 /* Record the fields for profiling. */
2145 if (PROFILE_MODEL_P (current_cpu))
2147 FLD (out_Rd) = f_operand2;
2154 extract_sfmt_movscwr:
2156 const IDESC *idesc = &crisv32f_insn_data[itype];
2157 CGEN_INSN_WORD insn = base_insn;
2158 #define FLD(f) abuf->fields.sfmt_bound_cw.f
2160 INT f_indir_pc__word;
2161 /* Contents of trailing part of insn. */
2164 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2165 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2166 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2168 /* Record the fields for the semantic handler. */
2169 FLD (f_indir_pc__word) = f_indir_pc__word;
2170 FLD (f_operand2) = f_operand2;
2171 CGEN_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));
2173 #if WITH_PROFILE_MODEL_P
2174 /* Record the fields for profiling. */
2175 if (PROFILE_MODEL_P (current_cpu))
2177 FLD (out_Rd) = f_operand2;
2184 extract_sfmt_movucbr:
2186 const IDESC *idesc = &crisv32f_insn_data[itype];
2187 CGEN_INSN_WORD insn = base_insn;
2188 #define FLD(f) abuf->fields.sfmt_bound_cb.f
2190 INT f_indir_pc__byte;
2191 /* Contents of trailing part of insn. */
2194 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2195 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2196 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2198 /* Record the fields for the semantic handler. */
2199 FLD (f_indir_pc__byte) = f_indir_pc__byte;
2200 FLD (f_operand2) = f_operand2;
2201 CGEN_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));
2203 #if WITH_PROFILE_MODEL_P
2204 /* Record the fields for profiling. */
2205 if (PROFILE_MODEL_P (current_cpu))
2207 FLD (out_Rd) = f_operand2;
2214 extract_sfmt_movucwr:
2216 const IDESC *idesc = &crisv32f_insn_data[itype];
2217 CGEN_INSN_WORD insn = base_insn;
2218 #define FLD(f) abuf->fields.sfmt_bound_cw.f
2220 INT f_indir_pc__word;
2221 /* Contents of trailing part of insn. */
2224 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2225 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2226 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2228 /* Record the fields for the semantic handler. */
2229 FLD (f_indir_pc__word) = f_indir_pc__word;
2230 FLD (f_operand2) = f_operand2;
2231 CGEN_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));
2233 #if WITH_PROFILE_MODEL_P
2234 /* Record the fields for profiling. */
2235 if (PROFILE_MODEL_P (current_cpu))
2237 FLD (out_Rd) = f_operand2;
2246 const IDESC *idesc = &crisv32f_insn_data[itype];
2247 CGEN_INSN_WORD insn = base_insn;
2248 #define FLD(f) abuf->fields.sfmt_addq.f
2252 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2253 f_u6 = EXTRACT_LSB0_UINT (insn, 16, 5, 6);
2255 /* Record the fields for the semantic handler. */
2256 FLD (f_operand2) = f_operand2;
2258 CGEN_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));
2260 #if WITH_PROFILE_MODEL_P
2261 /* Record the fields for profiling. */
2262 if (PROFILE_MODEL_P (current_cpu))
2264 FLD (in_Rd) = f_operand2;
2265 FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
2272 extract_sfmt_cmp_r_b_r:
2274 const IDESC *idesc = &crisv32f_insn_data[itype];
2275 CGEN_INSN_WORD insn = base_insn;
2276 #define FLD(f) abuf->fields.sfmt_muls_b.f
2280 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2281 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2283 /* Record the fields for the semantic handler. */
2284 FLD (f_operand2) = f_operand2;
2285 FLD (f_operand1) = f_operand1;
2286 CGEN_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));
2288 #if WITH_PROFILE_MODEL_P
2289 /* Record the fields for profiling. */
2290 if (PROFILE_MODEL_P (current_cpu))
2292 FLD (in_Rd) = f_operand2;
2293 FLD (in_Rs) = f_operand1;
2300 extract_sfmt_cmp_m_b_m:
2302 const IDESC *idesc = &crisv32f_insn_data[itype];
2303 CGEN_INSN_WORD insn = base_insn;
2304 #define FLD(f) abuf->fields.sfmt_addc_m.f
2309 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2310 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2311 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2313 /* Record the fields for the semantic handler. */
2314 FLD (f_operand2) = f_operand2;
2315 FLD (f_operand1) = f_operand1;
2316 FLD (f_memmode) = f_memmode;
2317 CGEN_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));
2319 #if WITH_PROFILE_MODEL_P
2320 /* Record the fields for profiling. */
2321 if (PROFILE_MODEL_P (current_cpu))
2323 FLD (in_Rd) = f_operand2;
2324 FLD (in_Rs) = f_operand1;
2325 FLD (out_Rs) = f_operand1;
2332 extract_sfmt_cmp_m_w_m:
2334 const IDESC *idesc = &crisv32f_insn_data[itype];
2335 CGEN_INSN_WORD insn = base_insn;
2336 #define FLD(f) abuf->fields.sfmt_addc_m.f
2341 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2342 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2343 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2345 /* Record the fields for the semantic handler. */
2346 FLD (f_operand2) = f_operand2;
2347 FLD (f_operand1) = f_operand1;
2348 FLD (f_memmode) = f_memmode;
2349 CGEN_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));
2351 #if WITH_PROFILE_MODEL_P
2352 /* Record the fields for profiling. */
2353 if (PROFILE_MODEL_P (current_cpu))
2355 FLD (in_Rd) = f_operand2;
2356 FLD (in_Rs) = f_operand1;
2357 FLD (out_Rs) = f_operand1;
2364 extract_sfmt_cmp_m_d_m:
2366 const IDESC *idesc = &crisv32f_insn_data[itype];
2367 CGEN_INSN_WORD insn = base_insn;
2368 #define FLD(f) abuf->fields.sfmt_addc_m.f
2373 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2374 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2375 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2377 /* Record the fields for the semantic handler. */
2378 FLD (f_operand2) = f_operand2;
2379 FLD (f_operand1) = f_operand1;
2380 FLD (f_memmode) = f_memmode;
2381 CGEN_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));
2383 #if WITH_PROFILE_MODEL_P
2384 /* Record the fields for profiling. */
2385 if (PROFILE_MODEL_P (current_cpu))
2387 FLD (in_Rd) = f_operand2;
2388 FLD (in_Rs) = f_operand1;
2389 FLD (out_Rs) = f_operand1;
2396 extract_sfmt_cmpcbr:
2398 const IDESC *idesc = &crisv32f_insn_data[itype];
2399 CGEN_INSN_WORD insn = base_insn;
2400 #define FLD(f) abuf->fields.sfmt_bound_cb.f
2401 INT f_indir_pc__byte;
2403 /* Contents of trailing part of insn. */
2406 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2407 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2408 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2410 /* Record the fields for the semantic handler. */
2411 FLD (f_operand2) = f_operand2;
2412 FLD (f_indir_pc__byte) = f_indir_pc__byte;
2413 CGEN_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));
2415 #if WITH_PROFILE_MODEL_P
2416 /* Record the fields for profiling. */
2417 if (PROFILE_MODEL_P (current_cpu))
2419 FLD (in_Rd) = f_operand2;
2426 extract_sfmt_cmpcwr:
2428 const IDESC *idesc = &crisv32f_insn_data[itype];
2429 CGEN_INSN_WORD insn = base_insn;
2430 #define FLD(f) abuf->fields.sfmt_bound_cw.f
2431 INT f_indir_pc__word;
2433 /* Contents of trailing part of insn. */
2436 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2437 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2438 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2440 /* Record the fields for the semantic handler. */
2441 FLD (f_operand2) = f_operand2;
2442 FLD (f_indir_pc__word) = f_indir_pc__word;
2443 CGEN_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));
2445 #if WITH_PROFILE_MODEL_P
2446 /* Record the fields for profiling. */
2447 if (PROFILE_MODEL_P (current_cpu))
2449 FLD (in_Rd) = f_operand2;
2456 extract_sfmt_cmpcdr:
2458 const IDESC *idesc = &crisv32f_insn_data[itype];
2459 CGEN_INSN_WORD insn = base_insn;
2460 #define FLD(f) abuf->fields.sfmt_bound_cd.f
2461 INT f_indir_pc__dword;
2463 /* Contents of trailing part of insn. */
2466 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2467 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
2468 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2470 /* Record the fields for the semantic handler. */
2471 FLD (f_operand2) = f_operand2;
2472 FLD (f_indir_pc__dword) = f_indir_pc__dword;
2473 CGEN_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));
2475 #if WITH_PROFILE_MODEL_P
2476 /* Record the fields for profiling. */
2477 if (PROFILE_MODEL_P (current_cpu))
2479 FLD (in_Rd) = f_operand2;
2488 const IDESC *idesc = &crisv32f_insn_data[itype];
2489 CGEN_INSN_WORD insn = base_insn;
2490 #define FLD(f) abuf->fields.sfmt_andq.f
2494 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2495 f_s6 = EXTRACT_LSB0_SINT (insn, 16, 5, 6);
2497 /* Record the fields for the semantic handler. */
2498 FLD (f_operand2) = f_operand2;
2500 CGEN_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));
2502 #if WITH_PROFILE_MODEL_P
2503 /* Record the fields for profiling. */
2504 if (PROFILE_MODEL_P (current_cpu))
2506 FLD (in_Rd) = f_operand2;
2513 extract_sfmt_cmpucbr:
2515 const IDESC *idesc = &crisv32f_insn_data[itype];
2516 CGEN_INSN_WORD insn = base_insn;
2517 #define FLD(f) abuf->fields.sfmt_bound_cb.f
2518 INT f_indir_pc__byte;
2520 /* Contents of trailing part of insn. */
2523 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2524 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2525 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2527 /* Record the fields for the semantic handler. */
2528 FLD (f_operand2) = f_operand2;
2529 FLD (f_indir_pc__byte) = f_indir_pc__byte;
2530 CGEN_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));
2532 #if WITH_PROFILE_MODEL_P
2533 /* Record the fields for profiling. */
2534 if (PROFILE_MODEL_P (current_cpu))
2536 FLD (in_Rd) = f_operand2;
2543 extract_sfmt_cmpucwr:
2545 const IDESC *idesc = &crisv32f_insn_data[itype];
2546 CGEN_INSN_WORD insn = base_insn;
2547 #define FLD(f) abuf->fields.sfmt_bound_cw.f
2548 INT f_indir_pc__word;
2550 /* Contents of trailing part of insn. */
2553 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2554 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2555 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2557 /* Record the fields for the semantic handler. */
2558 FLD (f_operand2) = f_operand2;
2559 FLD (f_indir_pc__word) = f_indir_pc__word;
2560 CGEN_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));
2562 #if WITH_PROFILE_MODEL_P
2563 /* Record the fields for profiling. */
2564 if (PROFILE_MODEL_P (current_cpu))
2566 FLD (in_Rd) = f_operand2;
2573 extract_sfmt_move_m_b_m:
2575 const IDESC *idesc = &crisv32f_insn_data[itype];
2576 CGEN_INSN_WORD insn = base_insn;
2577 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2582 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2583 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2584 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2586 /* Record the fields for the semantic handler. */
2587 FLD (f_operand1) = f_operand1;
2588 FLD (f_operand2) = f_operand2;
2589 FLD (f_memmode) = f_memmode;
2590 CGEN_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));
2592 #if WITH_PROFILE_MODEL_P
2593 /* Record the fields for profiling. */
2594 if (PROFILE_MODEL_P (current_cpu))
2596 FLD (in_Rs) = f_operand1;
2597 FLD (out_Rs) = f_operand1;
2598 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
2605 extract_sfmt_move_m_w_m:
2607 const IDESC *idesc = &crisv32f_insn_data[itype];
2608 CGEN_INSN_WORD insn = base_insn;
2609 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2614 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2615 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2616 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2618 /* Record the fields for the semantic handler. */
2619 FLD (f_operand1) = f_operand1;
2620 FLD (f_operand2) = f_operand2;
2621 FLD (f_memmode) = f_memmode;
2622 CGEN_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));
2624 #if WITH_PROFILE_MODEL_P
2625 /* Record the fields for profiling. */
2626 if (PROFILE_MODEL_P (current_cpu))
2628 FLD (in_Rs) = f_operand1;
2629 FLD (out_Rs) = f_operand1;
2630 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
2637 extract_sfmt_move_m_d_m:
2639 const IDESC *idesc = &crisv32f_insn_data[itype];
2640 CGEN_INSN_WORD insn = base_insn;
2641 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2646 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2647 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2648 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2650 /* Record the fields for the semantic handler. */
2651 FLD (f_operand1) = f_operand1;
2652 FLD (f_operand2) = f_operand2;
2653 FLD (f_memmode) = f_memmode;
2654 CGEN_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));
2656 #if WITH_PROFILE_MODEL_P
2657 /* Record the fields for profiling. */
2658 if (PROFILE_MODEL_P (current_cpu))
2660 FLD (in_Rs) = f_operand1;
2661 FLD (out_Rs) = f_operand1;
2662 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
2669 extract_sfmt_movs_m_b_m:
2671 const IDESC *idesc = &crisv32f_insn_data[itype];
2672 CGEN_INSN_WORD insn = base_insn;
2673 #define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
2678 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2679 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2680 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2682 /* Record the fields for the semantic handler. */
2683 FLD (f_operand1) = f_operand1;
2684 FLD (f_memmode) = f_memmode;
2685 FLD (f_operand2) = f_operand2;
2686 CGEN_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));
2688 #if WITH_PROFILE_MODEL_P
2689 /* Record the fields for profiling. */
2690 if (PROFILE_MODEL_P (current_cpu))
2692 FLD (in_Rs) = f_operand1;
2693 FLD (out_Rd) = f_operand2;
2694 FLD (out_Rs) = f_operand1;
2701 extract_sfmt_movs_m_w_m:
2703 const IDESC *idesc = &crisv32f_insn_data[itype];
2704 CGEN_INSN_WORD insn = base_insn;
2705 #define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
2710 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2711 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2712 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2714 /* Record the fields for the semantic handler. */
2715 FLD (f_operand1) = f_operand1;
2716 FLD (f_memmode) = f_memmode;
2717 FLD (f_operand2) = f_operand2;
2718 CGEN_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));
2720 #if WITH_PROFILE_MODEL_P
2721 /* Record the fields for profiling. */
2722 if (PROFILE_MODEL_P (current_cpu))
2724 FLD (in_Rs) = f_operand1;
2725 FLD (out_Rd) = f_operand2;
2726 FLD (out_Rs) = f_operand1;
2733 extract_sfmt_move_r_sprv32:
2735 const IDESC *idesc = &crisv32f_insn_data[itype];
2736 CGEN_INSN_WORD insn = base_insn;
2737 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
2741 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2742 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2744 /* Record the fields for the semantic handler. */
2745 FLD (f_operand1) = f_operand1;
2746 FLD (f_operand2) = f_operand2;
2747 CGEN_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));
2749 #if WITH_PROFILE_MODEL_P
2750 /* Record the fields for profiling. */
2751 if (PROFILE_MODEL_P (current_cpu))
2753 FLD (in_Rs) = f_operand1;
2754 FLD (out_Pd) = f_operand2;
2761 extract_sfmt_move_spr_rv32:
2763 const IDESC *idesc = &crisv32f_insn_data[itype];
2764 CGEN_INSN_WORD insn = base_insn;
2765 #define FLD(f) abuf->fields.sfmt_mcp.f
2769 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2770 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2772 /* Record the fields for the semantic handler. */
2773 FLD (f_operand2) = f_operand2;
2774 FLD (f_operand1) = f_operand1;
2775 CGEN_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));
2777 #if WITH_PROFILE_MODEL_P
2778 /* Record the fields for profiling. */
2779 if (PROFILE_MODEL_P (current_cpu))
2781 FLD (in_Ps) = f_operand2;
2782 FLD (out_h_gr_SI_index_of__INT_Rs) = FLD (f_operand1);
2789 extract_sfmt_move_m_sprv32:
2791 const IDESC *idesc = &crisv32f_insn_data[itype];
2792 CGEN_INSN_WORD insn = base_insn;
2793 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
2798 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2799 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2800 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2802 /* Record the fields for the semantic handler. */
2803 FLD (f_operand1) = f_operand1;
2804 FLD (f_operand2) = f_operand2;
2805 FLD (f_memmode) = f_memmode;
2806 CGEN_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));
2808 #if WITH_PROFILE_MODEL_P
2809 /* Record the fields for profiling. */
2810 if (PROFILE_MODEL_P (current_cpu))
2812 FLD (in_Rs) = f_operand1;
2813 FLD (out_Pd) = f_operand2;
2814 FLD (out_Rs) = f_operand1;
2821 extract_sfmt_move_c_sprv32_p2:
2823 const IDESC *idesc = &crisv32f_insn_data[itype];
2824 CGEN_INSN_WORD insn = base_insn;
2825 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
2826 INT f_indir_pc__dword;
2828 /* Contents of trailing part of insn. */
2831 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2832 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
2833 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2835 /* Record the fields for the semantic handler. */
2836 FLD (f_indir_pc__dword) = f_indir_pc__dword;
2837 FLD (f_operand2) = f_operand2;
2838 CGEN_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));
2840 #if WITH_PROFILE_MODEL_P
2841 /* Record the fields for profiling. */
2842 if (PROFILE_MODEL_P (current_cpu))
2844 FLD (out_Pd) = f_operand2;
2851 extract_sfmt_move_spr_mv32:
2853 const IDESC *idesc = &crisv32f_insn_data[itype];
2854 CGEN_INSN_WORD insn = base_insn;
2855 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
2860 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2861 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2862 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2864 /* Record the fields for the semantic handler. */
2865 FLD (f_operand2) = f_operand2;
2866 FLD (f_operand1) = f_operand1;
2867 FLD (f_memmode) = f_memmode;
2868 CGEN_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));
2870 #if WITH_PROFILE_MODEL_P
2871 /* Record the fields for profiling. */
2872 if (PROFILE_MODEL_P (current_cpu))
2874 FLD (in_Ps) = f_operand2;
2875 FLD (in_Rs) = f_operand1;
2876 FLD (out_Rs) = f_operand1;
2883 extract_sfmt_move_ss_r:
2885 const IDESC *idesc = &crisv32f_insn_data[itype];
2886 CGEN_INSN_WORD insn = base_insn;
2887 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
2891 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2892 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2894 /* Record the fields for the semantic handler. */
2895 FLD (f_operand2) = f_operand2;
2896 FLD (f_operand1) = f_operand1;
2897 CGEN_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));
2899 #if WITH_PROFILE_MODEL_P
2900 /* Record the fields for profiling. */
2901 if (PROFILE_MODEL_P (current_cpu))
2903 FLD (out_Rs) = f_operand1;
2910 extract_sfmt_move_r_ss:
2912 const IDESC *idesc = &crisv32f_insn_data[itype];
2913 CGEN_INSN_WORD insn = base_insn;
2914 #define FLD(f) abuf->fields.sfmt_mcp.f
2918 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2919 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2921 /* Record the fields for the semantic handler. */
2922 FLD (f_operand1) = f_operand1;
2923 FLD (f_operand2) = f_operand2;
2924 CGEN_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));
2926 #if WITH_PROFILE_MODEL_P
2927 /* Record the fields for profiling. */
2928 if (PROFILE_MODEL_P (current_cpu))
2930 FLD (in_Rs) = f_operand1;
2937 extract_sfmt_movem_r_m_v32:
2939 const IDESC *idesc = &crisv32f_insn_data[itype];
2940 CGEN_INSN_WORD insn = base_insn;
2941 #define FLD(f) abuf->fields.sfmt_movem_r_m_v32.f
2946 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2947 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2948 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2950 /* Record the fields for the semantic handler. */
2951 FLD (f_operand2) = f_operand2;
2952 FLD (f_operand1) = f_operand1;
2953 FLD (f_memmode) = f_memmode;
2954 CGEN_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));
2956 #if WITH_PROFILE_MODEL_P
2957 /* Record the fields for profiling. */
2958 if (PROFILE_MODEL_P (current_cpu))
2960 FLD (in_Rd) = f_operand2;
2961 FLD (in_Rs) = f_operand1;
2962 FLD (in_h_gr_SI_0) = 0;
2963 FLD (in_h_gr_SI_1) = 1;
2964 FLD (in_h_gr_SI_10) = 10;
2965 FLD (in_h_gr_SI_11) = 11;
2966 FLD (in_h_gr_SI_12) = 12;
2967 FLD (in_h_gr_SI_13) = 13;
2968 FLD (in_h_gr_SI_14) = 14;
2969 FLD (in_h_gr_SI_15) = 15;
2970 FLD (in_h_gr_SI_2) = 2;
2971 FLD (in_h_gr_SI_3) = 3;
2972 FLD (in_h_gr_SI_4) = 4;
2973 FLD (in_h_gr_SI_5) = 5;
2974 FLD (in_h_gr_SI_6) = 6;
2975 FLD (in_h_gr_SI_7) = 7;
2976 FLD (in_h_gr_SI_8) = 8;
2977 FLD (in_h_gr_SI_9) = 9;
2978 FLD (out_Rs) = f_operand1;
2985 extract_sfmt_movem_m_r_v32:
2987 const IDESC *idesc = &crisv32f_insn_data[itype];
2988 CGEN_INSN_WORD insn = base_insn;
2989 #define FLD(f) abuf->fields.sfmt_movem_m_r_v32.f
2994 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2995 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2996 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2998 /* Record the fields for the semantic handler. */
2999 FLD (f_operand2) = f_operand2;
3000 FLD (f_operand1) = f_operand1;
3001 FLD (f_memmode) = f_memmode;
3002 CGEN_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));
3004 #if WITH_PROFILE_MODEL_P
3005 /* Record the fields for profiling. */
3006 if (PROFILE_MODEL_P (current_cpu))
3008 FLD (in_Rd) = f_operand2;
3009 FLD (in_Rs) = f_operand1;
3010 FLD (out_Rs) = f_operand1;
3011 FLD (out_h_gr_SI_0) = 0;
3012 FLD (out_h_gr_SI_1) = 1;
3013 FLD (out_h_gr_SI_10) = 10;
3014 FLD (out_h_gr_SI_11) = 11;
3015 FLD (out_h_gr_SI_12) = 12;
3016 FLD (out_h_gr_SI_13) = 13;
3017 FLD (out_h_gr_SI_14) = 14;
3018 FLD (out_h_gr_SI_15) = 15;
3019 FLD (out_h_gr_SI_2) = 2;
3020 FLD (out_h_gr_SI_3) = 3;
3021 FLD (out_h_gr_SI_4) = 4;
3022 FLD (out_h_gr_SI_5) = 5;
3023 FLD (out_h_gr_SI_6) = 6;
3024 FLD (out_h_gr_SI_7) = 7;
3025 FLD (out_h_gr_SI_8) = 8;
3026 FLD (out_h_gr_SI_9) = 9;
3033 extract_sfmt_add_b_r:
3035 const IDESC *idesc = &crisv32f_insn_data[itype];
3036 CGEN_INSN_WORD insn = base_insn;
3037 #define FLD(f) abuf->fields.sfmt_addc_m.f
3041 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3042 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3044 /* Record the fields for the semantic handler. */
3045 FLD (f_operand2) = f_operand2;
3046 FLD (f_operand1) = f_operand1;
3047 CGEN_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));
3049 #if WITH_PROFILE_MODEL_P
3050 /* Record the fields for profiling. */
3051 if (PROFILE_MODEL_P (current_cpu))
3053 FLD (in_Rd) = f_operand2;
3054 FLD (in_Rs) = f_operand1;
3055 FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
3062 extract_sfmt_add_d_r:
3064 const IDESC *idesc = &crisv32f_insn_data[itype];
3065 CGEN_INSN_WORD insn = base_insn;
3066 #define FLD(f) abuf->fields.sfmt_addc_m.f
3070 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3071 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3073 /* Record the fields for the semantic handler. */
3074 FLD (f_operand2) = f_operand2;
3075 FLD (f_operand1) = f_operand1;
3076 CGEN_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));
3078 #if WITH_PROFILE_MODEL_P
3079 /* Record the fields for profiling. */
3080 if (PROFILE_MODEL_P (current_cpu))
3082 FLD (in_Rd) = f_operand2;
3083 FLD (in_Rs) = f_operand1;
3084 FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
3091 extract_sfmt_add_m_b_m:
3093 const IDESC *idesc = &crisv32f_insn_data[itype];
3094 CGEN_INSN_WORD insn = base_insn;
3095 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3100 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3101 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3102 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3104 /* Record the fields for the semantic handler. */
3105 FLD (f_operand2) = f_operand2;
3106 FLD (f_operand1) = f_operand1;
3107 FLD (f_memmode) = f_memmode;
3108 CGEN_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));
3110 #if WITH_PROFILE_MODEL_P
3111 /* Record the fields for profiling. */
3112 if (PROFILE_MODEL_P (current_cpu))
3114 FLD (in_Rd) = f_operand2;
3115 FLD (in_Rs) = f_operand1;
3116 FLD (out_Rs) = f_operand1;
3117 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3124 extract_sfmt_add_m_w_m:
3126 const IDESC *idesc = &crisv32f_insn_data[itype];
3127 CGEN_INSN_WORD insn = base_insn;
3128 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3133 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3134 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3135 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3137 /* Record the fields for the semantic handler. */
3138 FLD (f_operand2) = f_operand2;
3139 FLD (f_operand1) = f_operand1;
3140 FLD (f_memmode) = f_memmode;
3141 CGEN_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));
3143 #if WITH_PROFILE_MODEL_P
3144 /* Record the fields for profiling. */
3145 if (PROFILE_MODEL_P (current_cpu))
3147 FLD (in_Rd) = f_operand2;
3148 FLD (in_Rs) = f_operand1;
3149 FLD (out_Rs) = f_operand1;
3150 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3157 extract_sfmt_add_m_d_m:
3159 const IDESC *idesc = &crisv32f_insn_data[itype];
3160 CGEN_INSN_WORD insn = base_insn;
3161 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3166 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3167 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3168 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3170 /* Record the fields for the semantic handler. */
3171 FLD (f_operand2) = f_operand2;
3172 FLD (f_operand1) = f_operand1;
3173 FLD (f_memmode) = f_memmode;
3174 CGEN_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));
3176 #if WITH_PROFILE_MODEL_P
3177 /* Record the fields for profiling. */
3178 if (PROFILE_MODEL_P (current_cpu))
3180 FLD (in_Rd) = f_operand2;
3181 FLD (in_Rs) = f_operand1;
3182 FLD (out_Rs) = f_operand1;
3183 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3190 extract_sfmt_addcbr:
3192 const IDESC *idesc = &crisv32f_insn_data[itype];
3193 CGEN_INSN_WORD insn = base_insn;
3194 #define FLD(f) abuf->fields.sfmt_addcbr.f
3195 INT f_indir_pc__byte;
3197 /* Contents of trailing part of insn. */
3200 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3201 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3202 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3204 /* Record the fields for the semantic handler. */
3205 FLD (f_operand2) = f_operand2;
3206 FLD (f_indir_pc__byte) = f_indir_pc__byte;
3207 CGEN_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));
3209 #if WITH_PROFILE_MODEL_P
3210 /* Record the fields for profiling. */
3211 if (PROFILE_MODEL_P (current_cpu))
3213 FLD (in_Rd) = f_operand2;
3214 FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
3221 extract_sfmt_addcwr:
3223 const IDESC *idesc = &crisv32f_insn_data[itype];
3224 CGEN_INSN_WORD insn = base_insn;
3225 #define FLD(f) abuf->fields.sfmt_addcwr.f
3226 INT f_indir_pc__word;
3228 /* Contents of trailing part of insn. */
3231 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3232 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3233 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3235 /* Record the fields for the semantic handler. */
3236 FLD (f_operand2) = f_operand2;
3237 FLD (f_indir_pc__word) = f_indir_pc__word;
3238 CGEN_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));
3240 #if WITH_PROFILE_MODEL_P
3241 /* Record the fields for profiling. */
3242 if (PROFILE_MODEL_P (current_cpu))
3244 FLD (in_Rd) = f_operand2;
3245 FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
3252 extract_sfmt_addcdr:
3254 const IDESC *idesc = &crisv32f_insn_data[itype];
3255 CGEN_INSN_WORD insn = base_insn;
3256 #define FLD(f) abuf->fields.sfmt_addcdr.f
3257 INT f_indir_pc__dword;
3259 /* Contents of trailing part of insn. */
3262 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3263 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
3264 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3266 /* Record the fields for the semantic handler. */
3267 FLD (f_operand2) = f_operand2;
3268 FLD (f_indir_pc__dword) = f_indir_pc__dword;
3269 CGEN_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));
3271 #if WITH_PROFILE_MODEL_P
3272 /* Record the fields for profiling. */
3273 if (PROFILE_MODEL_P (current_cpu))
3275 FLD (in_Rd) = f_operand2;
3276 FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
3283 extract_sfmt_adds_m_b_m:
3285 const IDESC *idesc = &crisv32f_insn_data[itype];
3286 CGEN_INSN_WORD insn = base_insn;
3287 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3292 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3293 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3294 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3296 /* Record the fields for the semantic handler. */
3297 FLD (f_operand2) = f_operand2;
3298 FLD (f_operand1) = f_operand1;
3299 FLD (f_memmode) = f_memmode;
3300 CGEN_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));
3302 #if WITH_PROFILE_MODEL_P
3303 /* Record the fields for profiling. */
3304 if (PROFILE_MODEL_P (current_cpu))
3306 FLD (in_Rd) = f_operand2;
3307 FLD (in_Rs) = f_operand1;
3308 FLD (out_Rs) = f_operand1;
3309 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3316 extract_sfmt_adds_m_w_m:
3318 const IDESC *idesc = &crisv32f_insn_data[itype];
3319 CGEN_INSN_WORD insn = base_insn;
3320 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3325 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3326 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3327 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3329 /* Record the fields for the semantic handler. */
3330 FLD (f_operand2) = f_operand2;
3331 FLD (f_operand1) = f_operand1;
3332 FLD (f_memmode) = f_memmode;
3333 CGEN_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));
3335 #if WITH_PROFILE_MODEL_P
3336 /* Record the fields for profiling. */
3337 if (PROFILE_MODEL_P (current_cpu))
3339 FLD (in_Rd) = f_operand2;
3340 FLD (in_Rs) = f_operand1;
3341 FLD (out_Rs) = f_operand1;
3342 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3349 extract_sfmt_addscbr:
3351 const IDESC *idesc = &crisv32f_insn_data[itype];
3352 CGEN_INSN_WORD insn = base_insn;
3353 #define FLD(f) abuf->fields.sfmt_addcbr.f
3354 INT f_indir_pc__byte;
3356 /* Contents of trailing part of insn. */
3359 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3360 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3361 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3363 /* Record the fields for the semantic handler. */
3364 FLD (f_operand2) = f_operand2;
3365 FLD (f_indir_pc__byte) = f_indir_pc__byte;
3366 CGEN_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));
3368 #if WITH_PROFILE_MODEL_P
3369 /* Record the fields for profiling. */
3370 if (PROFILE_MODEL_P (current_cpu))
3372 FLD (in_Rd) = f_operand2;
3373 FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
3380 extract_sfmt_addscwr:
3382 const IDESC *idesc = &crisv32f_insn_data[itype];
3383 CGEN_INSN_WORD insn = base_insn;
3384 #define FLD(f) abuf->fields.sfmt_addcwr.f
3385 INT f_indir_pc__word;
3387 /* Contents of trailing part of insn. */
3390 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3391 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3392 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3394 /* Record the fields for the semantic handler. */
3395 FLD (f_operand2) = f_operand2;
3396 FLD (f_indir_pc__word) = f_indir_pc__word;
3397 CGEN_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));
3399 #if WITH_PROFILE_MODEL_P
3400 /* Record the fields for profiling. */
3401 if (PROFILE_MODEL_P (current_cpu))
3403 FLD (in_Rd) = f_operand2;
3404 FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
3411 extract_sfmt_addc_m:
3413 const IDESC *idesc = &crisv32f_insn_data[itype];
3414 CGEN_INSN_WORD insn = base_insn;
3415 #define FLD(f) abuf->fields.sfmt_addc_m.f
3420 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3421 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3422 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3424 /* Record the fields for the semantic handler. */
3425 FLD (f_operand2) = f_operand2;
3426 FLD (f_operand1) = f_operand1;
3427 FLD (f_memmode) = f_memmode;
3428 CGEN_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));
3430 #if WITH_PROFILE_MODEL_P
3431 /* Record the fields for profiling. */
3432 if (PROFILE_MODEL_P (current_cpu))
3434 FLD (in_Rd) = f_operand2;
3435 FLD (in_Rs) = f_operand1;
3436 FLD (out_Rs) = f_operand1;
3437 FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
3444 extract_sfmt_lapc_d:
3446 const IDESC *idesc = &crisv32f_insn_data[itype];
3447 CGEN_INSN_WORD insn = base_insn;
3448 #define FLD(f) abuf->fields.sfmt_lapc_d.f
3449 SI f_indir_pc__dword_pcrel;
3451 /* Contents of trailing part of insn. */
3454 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3455 f_indir_pc__dword_pcrel = ((pc) + ((0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0))));
3456 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3458 /* Record the fields for the semantic handler. */
3459 FLD (f_operand2) = f_operand2;
3460 FLD (i_const32_pcrel) = f_indir_pc__dword_pcrel;
3461 CGEN_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));
3463 #if WITH_PROFILE_MODEL_P
3464 /* Record the fields for profiling. */
3465 if (PROFILE_MODEL_P (current_cpu))
3467 FLD (out_Rd) = f_operand2;
3476 const IDESC *idesc = &crisv32f_insn_data[itype];
3477 CGEN_INSN_WORD insn = base_insn;
3478 #define FLD(f) abuf->fields.sfmt_lapcq.f
3482 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3483 f_qo = ((pc) + (((EXTRACT_LSB0_UINT (insn, 16, 3, 4)) << (1))));
3485 /* Record the fields for the semantic handler. */
3486 FLD (f_operand2) = f_operand2;
3488 CGEN_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));
3490 #if WITH_PROFILE_MODEL_P
3491 /* Record the fields for profiling. */
3492 if (PROFILE_MODEL_P (current_cpu))
3494 FLD (out_Rd) = f_operand2;
3501 extract_sfmt_addi_b_r:
3503 const IDESC *idesc = &crisv32f_insn_data[itype];
3504 CGEN_INSN_WORD insn = base_insn;
3505 #define FLD(f) abuf->fields.sfmt_addc_m.f
3509 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3510 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3512 /* Record the fields for the semantic handler. */
3513 FLD (f_operand2) = f_operand2;
3514 FLD (f_operand1) = f_operand1;
3515 CGEN_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));
3517 #if WITH_PROFILE_MODEL_P
3518 /* Record the fields for profiling. */
3519 if (PROFILE_MODEL_P (current_cpu))
3521 FLD (in_Rd) = f_operand2;
3522 FLD (in_Rs) = f_operand1;
3523 FLD (out_Rs) = f_operand1;
3530 extract_sfmt_neg_b_r:
3532 const IDESC *idesc = &crisv32f_insn_data[itype];
3533 CGEN_INSN_WORD insn = base_insn;
3534 #define FLD(f) abuf->fields.sfmt_addc_m.f
3538 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3539 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3541 /* Record the fields for the semantic handler. */
3542 FLD (f_operand1) = f_operand1;
3543 FLD (f_operand2) = f_operand2;
3544 CGEN_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));
3546 #if WITH_PROFILE_MODEL_P
3547 /* Record the fields for profiling. */
3548 if (PROFILE_MODEL_P (current_cpu))
3550 FLD (in_Rs) = f_operand1;
3551 FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
3558 extract_sfmt_neg_d_r:
3560 const IDESC *idesc = &crisv32f_insn_data[itype];
3561 CGEN_INSN_WORD insn = base_insn;
3562 #define FLD(f) abuf->fields.sfmt_addc_m.f
3566 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3567 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3569 /* Record the fields for the semantic handler. */
3570 FLD (f_operand1) = f_operand1;
3571 FLD (f_operand2) = f_operand2;
3572 CGEN_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));
3574 #if WITH_PROFILE_MODEL_P
3575 /* Record the fields for profiling. */
3576 if (PROFILE_MODEL_P (current_cpu))
3578 FLD (in_Rs) = f_operand1;
3579 FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
3586 extract_sfmt_test_m_b_m:
3588 const IDESC *idesc = &crisv32f_insn_data[itype];
3589 CGEN_INSN_WORD insn = base_insn;
3590 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
3594 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3595 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3597 /* Record the fields for the semantic handler. */
3598 FLD (f_operand1) = f_operand1;
3599 FLD (f_memmode) = f_memmode;
3600 CGEN_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));
3602 #if WITH_PROFILE_MODEL_P
3603 /* Record the fields for profiling. */
3604 if (PROFILE_MODEL_P (current_cpu))
3606 FLD (in_Rs) = f_operand1;
3607 FLD (out_Rs) = f_operand1;
3614 extract_sfmt_test_m_w_m:
3616 const IDESC *idesc = &crisv32f_insn_data[itype];
3617 CGEN_INSN_WORD insn = base_insn;
3618 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
3622 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
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_memmode) = f_memmode;
3628 CGEN_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));
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;
3635 FLD (out_Rs) = f_operand1;
3642 extract_sfmt_test_m_d_m:
3644 const IDESC *idesc = &crisv32f_insn_data[itype];
3645 CGEN_INSN_WORD insn = base_insn;
3646 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
3650 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3651 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3653 /* Record the fields for the semantic handler. */
3654 FLD (f_operand1) = f_operand1;
3655 FLD (f_memmode) = f_memmode;
3656 CGEN_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));
3658 #if WITH_PROFILE_MODEL_P
3659 /* Record the fields for profiling. */
3660 if (PROFILE_MODEL_P (current_cpu))
3662 FLD (in_Rs) = f_operand1;
3663 FLD (out_Rs) = f_operand1;
3670 extract_sfmt_move_r_m_b_m:
3672 const IDESC *idesc = &crisv32f_insn_data[itype];
3673 CGEN_INSN_WORD insn = base_insn;
3674 #define FLD(f) abuf->fields.sfmt_addc_m.f
3679 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3680 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3681 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3683 /* Record the fields for the semantic handler. */
3684 FLD (f_operand2) = f_operand2;
3685 FLD (f_operand1) = f_operand1;
3686 FLD (f_memmode) = f_memmode;
3687 CGEN_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));
3689 #if WITH_PROFILE_MODEL_P
3690 /* Record the fields for profiling. */
3691 if (PROFILE_MODEL_P (current_cpu))
3693 FLD (in_Rd) = f_operand2;
3694 FLD (in_Rs) = f_operand1;
3695 FLD (out_Rs) = f_operand1;
3702 extract_sfmt_move_r_m_w_m:
3704 const IDESC *idesc = &crisv32f_insn_data[itype];
3705 CGEN_INSN_WORD insn = base_insn;
3706 #define FLD(f) abuf->fields.sfmt_addc_m.f
3711 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3712 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3713 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3715 /* Record the fields for the semantic handler. */
3716 FLD (f_operand2) = f_operand2;
3717 FLD (f_operand1) = f_operand1;
3718 FLD (f_memmode) = f_memmode;
3719 CGEN_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));
3721 #if WITH_PROFILE_MODEL_P
3722 /* Record the fields for profiling. */
3723 if (PROFILE_MODEL_P (current_cpu))
3725 FLD (in_Rd) = f_operand2;
3726 FLD (in_Rs) = f_operand1;
3727 FLD (out_Rs) = f_operand1;
3734 extract_sfmt_move_r_m_d_m:
3736 const IDESC *idesc = &crisv32f_insn_data[itype];
3737 CGEN_INSN_WORD insn = base_insn;
3738 #define FLD(f) abuf->fields.sfmt_addc_m.f
3743 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3744 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3745 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3747 /* Record the fields for the semantic handler. */
3748 FLD (f_operand2) = f_operand2;
3749 FLD (f_operand1) = f_operand1;
3750 FLD (f_memmode) = f_memmode;
3751 CGEN_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));
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_Rs) = f_operand1;
3766 extract_sfmt_muls_b:
3768 const IDESC *idesc = &crisv32f_insn_data[itype];
3769 CGEN_INSN_WORD insn = base_insn;
3770 #define FLD(f) abuf->fields.sfmt_muls_b.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 CGEN_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));
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_Rd) = f_operand2;
3789 FLD (out_h_sr_SI_7) = 7;
3798 const IDESC *idesc = &crisv32f_insn_data[itype];
3799 CGEN_INSN_WORD insn = base_insn;
3800 #define FLD(f) abuf->fields.sfmt_mcp.f
3804 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3805 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3807 /* Record the fields for the semantic handler. */
3808 FLD (f_operand2) = f_operand2;
3809 FLD (f_operand1) = f_operand1;
3810 CGEN_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));
3812 #if WITH_PROFILE_MODEL_P
3813 /* Record the fields for profiling. */
3814 if (PROFILE_MODEL_P (current_cpu))
3816 FLD (in_Ps) = f_operand2;
3817 FLD (in_Rs) = f_operand1;
3818 FLD (out_h_gr_SI_index_of__INT_Rs) = FLD (f_operand1);
3827 const IDESC *idesc = &crisv32f_insn_data[itype];
3828 CGEN_INSN_WORD insn = base_insn;
3829 #define FLD(f) abuf->fields.sfmt_muls_b.f
3833 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3834 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3836 /* Record the fields for the semantic handler. */
3837 FLD (f_operand2) = f_operand2;
3838 FLD (f_operand1) = f_operand1;
3839 CGEN_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));
3841 #if WITH_PROFILE_MODEL_P
3842 /* Record the fields for profiling. */
3843 if (PROFILE_MODEL_P (current_cpu))
3845 FLD (in_Rd) = f_operand2;
3846 FLD (in_Rs) = f_operand1;
3847 FLD (out_Rd) = f_operand2;
3854 extract_sfmt_and_b_r:
3856 const IDESC *idesc = &crisv32f_insn_data[itype];
3857 CGEN_INSN_WORD insn = base_insn;
3858 #define FLD(f) abuf->fields.sfmt_addc_m.f
3862 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3863 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3865 /* Record the fields for the semantic handler. */
3866 FLD (f_operand2) = f_operand2;
3867 FLD (f_operand1) = f_operand1;
3868 CGEN_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));
3870 #if WITH_PROFILE_MODEL_P
3871 /* Record the fields for profiling. */
3872 if (PROFILE_MODEL_P (current_cpu))
3874 FLD (in_Rd) = f_operand2;
3875 FLD (in_Rs) = f_operand1;
3876 FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
3883 extract_sfmt_and_d_r:
3885 const IDESC *idesc = &crisv32f_insn_data[itype];
3886 CGEN_INSN_WORD insn = base_insn;
3887 #define FLD(f) abuf->fields.sfmt_addc_m.f
3891 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3892 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3894 /* Record the fields for the semantic handler. */
3895 FLD (f_operand2) = f_operand2;
3896 FLD (f_operand1) = f_operand1;
3897 CGEN_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));
3899 #if WITH_PROFILE_MODEL_P
3900 /* Record the fields for profiling. */
3901 if (PROFILE_MODEL_P (current_cpu))
3903 FLD (in_Rd) = f_operand2;
3904 FLD (in_Rs) = f_operand1;
3905 FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
3912 extract_sfmt_and_m_b_m:
3914 const IDESC *idesc = &crisv32f_insn_data[itype];
3915 CGEN_INSN_WORD insn = base_insn;
3916 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3921 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3922 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3923 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3925 /* Record the fields for the semantic handler. */
3926 FLD (f_operand2) = f_operand2;
3927 FLD (f_operand1) = f_operand1;
3928 FLD (f_memmode) = f_memmode;
3929 CGEN_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));
3931 #if WITH_PROFILE_MODEL_P
3932 /* Record the fields for profiling. */
3933 if (PROFILE_MODEL_P (current_cpu))
3935 FLD (in_Rd) = f_operand2;
3936 FLD (in_Rs) = f_operand1;
3937 FLD (out_Rs) = f_operand1;
3938 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3945 extract_sfmt_and_m_w_m:
3947 const IDESC *idesc = &crisv32f_insn_data[itype];
3948 CGEN_INSN_WORD insn = base_insn;
3949 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3954 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3955 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3956 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3958 /* Record the fields for the semantic handler. */
3959 FLD (f_operand2) = f_operand2;
3960 FLD (f_operand1) = f_operand1;
3961 FLD (f_memmode) = f_memmode;
3962 CGEN_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));
3964 #if WITH_PROFILE_MODEL_P
3965 /* Record the fields for profiling. */
3966 if (PROFILE_MODEL_P (current_cpu))
3968 FLD (in_Rd) = f_operand2;
3969 FLD (in_Rs) = f_operand1;
3970 FLD (out_Rs) = f_operand1;
3971 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3978 extract_sfmt_and_m_d_m:
3980 const IDESC *idesc = &crisv32f_insn_data[itype];
3981 CGEN_INSN_WORD insn = base_insn;
3982 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3987 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3988 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3989 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3991 /* Record the fields for the semantic handler. */
3992 FLD (f_operand2) = f_operand2;
3993 FLD (f_operand1) = f_operand1;
3994 FLD (f_memmode) = f_memmode;
3995 CGEN_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));
3997 #if WITH_PROFILE_MODEL_P
3998 /* Record the fields for profiling. */
3999 if (PROFILE_MODEL_P (current_cpu))
4001 FLD (in_Rd) = f_operand2;
4002 FLD (in_Rs) = f_operand1;
4003 FLD (out_Rs) = f_operand1;
4004 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
4011 extract_sfmt_andcbr:
4013 const IDESC *idesc = &crisv32f_insn_data[itype];
4014 CGEN_INSN_WORD insn = base_insn;
4015 #define FLD(f) abuf->fields.sfmt_addcbr.f
4016 INT f_indir_pc__byte;
4018 /* Contents of trailing part of insn. */
4021 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4022 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4023 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4025 /* Record the fields for the semantic handler. */
4026 FLD (f_operand2) = f_operand2;
4027 FLD (f_indir_pc__byte) = f_indir_pc__byte;
4028 CGEN_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));
4030 #if WITH_PROFILE_MODEL_P
4031 /* Record the fields for profiling. */
4032 if (PROFILE_MODEL_P (current_cpu))
4034 FLD (in_Rd) = f_operand2;
4035 FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
4042 extract_sfmt_andcwr:
4044 const IDESC *idesc = &crisv32f_insn_data[itype];
4045 CGEN_INSN_WORD insn = base_insn;
4046 #define FLD(f) abuf->fields.sfmt_addcwr.f
4047 INT f_indir_pc__word;
4049 /* Contents of trailing part of insn. */
4052 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4053 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4054 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4056 /* Record the fields for the semantic handler. */
4057 FLD (f_operand2) = f_operand2;
4058 FLD (f_indir_pc__word) = f_indir_pc__word;
4059 CGEN_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));
4061 #if WITH_PROFILE_MODEL_P
4062 /* Record the fields for profiling. */
4063 if (PROFILE_MODEL_P (current_cpu))
4065 FLD (in_Rd) = f_operand2;
4066 FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
4073 extract_sfmt_andcdr:
4075 const IDESC *idesc = &crisv32f_insn_data[itype];
4076 CGEN_INSN_WORD insn = base_insn;
4077 #define FLD(f) abuf->fields.sfmt_addcdr.f
4078 INT f_indir_pc__dword;
4080 /* Contents of trailing part of insn. */
4083 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4084 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
4085 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4087 /* Record the fields for the semantic handler. */
4088 FLD (f_operand2) = f_operand2;
4089 FLD (f_indir_pc__dword) = f_indir_pc__dword;
4090 CGEN_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));
4092 #if WITH_PROFILE_MODEL_P
4093 /* Record the fields for profiling. */
4094 if (PROFILE_MODEL_P (current_cpu))
4096 FLD (in_Rd) = f_operand2;
4097 FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
4106 const IDESC *idesc = &crisv32f_insn_data[itype];
4107 CGEN_INSN_WORD insn = base_insn;
4108 #define FLD(f) abuf->fields.sfmt_andq.f
4112 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4113 f_s6 = EXTRACT_LSB0_SINT (insn, 16, 5, 6);
4115 /* Record the fields for the semantic handler. */
4116 FLD (f_operand2) = f_operand2;
4118 CGEN_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));
4120 #if WITH_PROFILE_MODEL_P
4121 /* Record the fields for profiling. */
4122 if (PROFILE_MODEL_P (current_cpu))
4124 FLD (in_Rd) = f_operand2;
4125 FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
4134 const IDESC *idesc = &crisv32f_insn_data[itype];
4135 CGEN_INSN_WORD insn = base_insn;
4136 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
4140 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4141 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4143 /* Record the fields for the semantic handler. */
4144 FLD (f_operand1) = f_operand1;
4145 FLD (f_operand2) = f_operand2;
4146 CGEN_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));
4148 #if WITH_PROFILE_MODEL_P
4149 /* Record the fields for profiling. */
4150 if (PROFILE_MODEL_P (current_cpu))
4152 FLD (in_Rs) = f_operand1;
4153 FLD (out_Rs) = f_operand1;
4162 const IDESC *idesc = &crisv32f_insn_data[itype];
4163 CGEN_INSN_WORD insn = base_insn;
4164 #define FLD(f) abuf->fields.sfmt_asrq.f
4168 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4169 f_u5 = EXTRACT_LSB0_UINT (insn, 16, 4, 5);
4171 /* Record the fields for the semantic handler. */
4172 FLD (f_operand2) = f_operand2;
4174 CGEN_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));
4176 #if WITH_PROFILE_MODEL_P
4177 /* Record the fields for profiling. */
4178 if (PROFILE_MODEL_P (current_cpu))
4180 FLD (in_Rd) = f_operand2;
4181 FLD (out_Rd) = f_operand2;
4188 extract_sfmt_lsrr_b_r:
4190 const IDESC *idesc = &crisv32f_insn_data[itype];
4191 CGEN_INSN_WORD insn = base_insn;
4192 #define FLD(f) abuf->fields.sfmt_addc_m.f
4196 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4197 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4199 /* Record the fields for the semantic handler. */
4200 FLD (f_operand2) = f_operand2;
4201 FLD (f_operand1) = f_operand1;
4202 CGEN_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));
4204 #if WITH_PROFILE_MODEL_P
4205 /* Record the fields for profiling. */
4206 if (PROFILE_MODEL_P (current_cpu))
4208 FLD (in_Rd) = f_operand2;
4209 FLD (in_Rs) = f_operand1;
4210 FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
4217 extract_sfmt_lsrr_d_r:
4219 const IDESC *idesc = &crisv32f_insn_data[itype];
4220 CGEN_INSN_WORD insn = base_insn;
4221 #define FLD(f) abuf->fields.sfmt_addc_m.f
4225 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4226 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4228 /* Record the fields for the semantic handler. */
4229 FLD (f_operand2) = f_operand2;
4230 FLD (f_operand1) = f_operand1;
4231 CGEN_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));
4233 #if WITH_PROFILE_MODEL_P
4234 /* Record the fields for profiling. */
4235 if (PROFILE_MODEL_P (current_cpu))
4237 FLD (in_Rd) = f_operand2;
4238 FLD (in_Rs) = f_operand1;
4239 FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
4248 const IDESC *idesc = &crisv32f_insn_data[itype];
4249 CGEN_INSN_WORD insn = base_insn;
4250 #define FLD(f) abuf->fields.sfmt_muls_b.f
4254 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4255 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4257 /* Record the fields for the semantic handler. */
4258 FLD (f_operand2) = f_operand2;
4259 FLD (f_operand1) = f_operand1;
4260 CGEN_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));
4262 #if WITH_PROFILE_MODEL_P
4263 /* Record the fields for profiling. */
4264 if (PROFILE_MODEL_P (current_cpu))
4266 FLD (in_Rd) = f_operand2;
4267 FLD (in_Rs) = f_operand1;
4276 const IDESC *idesc = &crisv32f_insn_data[itype];
4277 CGEN_INSN_WORD insn = base_insn;
4278 #define FLD(f) abuf->fields.sfmt_asrq.f
4282 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4283 f_u5 = EXTRACT_LSB0_UINT (insn, 16, 4, 5);
4285 /* Record the fields for the semantic handler. */
4286 FLD (f_operand2) = f_operand2;
4288 CGEN_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));
4290 #if WITH_PROFILE_MODEL_P
4291 /* Record the fields for profiling. */
4292 if (PROFILE_MODEL_P (current_cpu))
4294 FLD (in_Rd) = f_operand2;
4303 const IDESC *idesc = &crisv32f_insn_data[itype];
4304 CGEN_INSN_WORD insn = base_insn;
4305 #define FLD(f) abuf->fields.sfmt_setf.f
4310 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4311 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4312 f_dstsrc = ((((f_operand1) | (((f_operand2) << (4))))) & (255));
4314 /* Record the fields for the semantic handler. */
4315 FLD (f_dstsrc) = f_dstsrc;
4316 CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_setf", "f_dstsrc 0x%x", 'x', f_dstsrc, (char *) 0));
4324 const IDESC *idesc = &crisv32f_insn_data[itype];
4325 #define FLD(f) abuf->fields.sfmt_rfe.f
4328 /* Record the fields for the semantic handler. */
4329 CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rfe", (char *) 0));
4331 #if WITH_PROFILE_MODEL_P
4332 /* Record the fields for profiling. */
4333 if (PROFILE_MODEL_P (current_cpu))
4335 FLD (in_h_sr_SI_13) = 13;
4336 FLD (out_h_sr_SI_13) = 13;
4345 const IDESC *idesc = &crisv32f_insn_data[itype];
4346 #define FLD(f) abuf->fields.sfmt_rfe.f
4349 /* Record the fields for the semantic handler. */
4350 CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sfe", (char *) 0));
4352 #if WITH_PROFILE_MODEL_P
4353 /* Record the fields for profiling. */
4354 if (PROFILE_MODEL_P (current_cpu))
4356 FLD (in_h_sr_SI_13) = 13;
4357 FLD (out_h_sr_SI_13) = 13;
4366 const IDESC *idesc = &crisv32f_insn_data[itype];
4367 #define FLD(f) abuf->fields.sfmt_empty.f
4370 /* Record the fields for the semantic handler. */
4371 CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rfg", (char *) 0));
4373 #if WITH_PROFILE_MODEL_P
4374 /* Record the fields for profiling. */
4375 if (PROFILE_MODEL_P (current_cpu))
4385 const IDESC *idesc = &crisv32f_insn_data[itype];
4386 #define FLD(f) abuf->fields.sfmt_rfe.f
4389 /* Record the fields for the semantic handler. */
4390 CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rfn", (char *) 0));
4392 #if WITH_PROFILE_MODEL_P
4393 /* Record the fields for profiling. */
4394 if (PROFILE_MODEL_P (current_cpu))
4396 FLD (in_h_sr_SI_13) = 13;
4397 FLD (out_h_sr_SI_13) = 13;
4406 const IDESC *idesc = &crisv32f_insn_data[itype];
4407 #define FLD(f) abuf->fields.sfmt_empty.f
4410 /* Record the fields for the semantic handler. */
4411 CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_halt", (char *) 0));
4413 #if WITH_PROFILE_MODEL_P
4414 /* Record the fields for profiling. */
4415 if (PROFILE_MODEL_P (current_cpu))
4425 const IDESC *idesc = &crisv32f_insn_data[itype];
4426 CGEN_INSN_WORD insn = base_insn;
4427 #define FLD(f) abuf->fields.sfmt_bcc_b.f
4433 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4434 f_disp9_lo = EXTRACT_LSB0_UINT (insn, 16, 7, 7);
4435 f_disp9_hi = EXTRACT_LSB0_SINT (insn, 16, 0, 1);
4439 tmp_abslo = ((f_disp9_lo) << (1));
4440 tmp_absval = ((((((f_disp9_hi) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo));
4441 f_disp9 = ((((pc) + (tmp_absval))) + (((GET_H_V32_V32 ()) ? (0) : (2))));
4444 /* Record the fields for the semantic handler. */
4445 FLD (f_operand2) = f_operand2;
4446 FLD (i_o_pcrel) = f_disp9;
4447 CGEN_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));
4449 #if WITH_PROFILE_MODEL_P
4450 /* Record the fields for profiling. */
4451 if (PROFILE_MODEL_P (current_cpu))
4461 const IDESC *idesc = &crisv32f_insn_data[itype];
4462 CGEN_INSN_WORD insn = base_insn;
4463 #define FLD(f) abuf->fields.sfmt_bcc_b.f
4468 f_disp9_lo = EXTRACT_LSB0_UINT (insn, 16, 7, 7);
4469 f_disp9_hi = EXTRACT_LSB0_SINT (insn, 16, 0, 1);
4473 tmp_abslo = ((f_disp9_lo) << (1));
4474 tmp_absval = ((((((f_disp9_hi) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo));
4475 f_disp9 = ((((pc) + (tmp_absval))) + (((GET_H_V32_V32 ()) ? (0) : (2))));
4478 /* Record the fields for the semantic handler. */
4479 FLD (i_o_pcrel) = f_disp9;
4480 CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ba_b", "o_pcrel 0x%x", 'x', f_disp9, (char *) 0));
4482 #if WITH_PROFILE_MODEL_P
4483 /* Record the fields for profiling. */
4484 if (PROFILE_MODEL_P (current_cpu))
4494 const IDESC *idesc = &crisv32f_insn_data[itype];
4495 CGEN_INSN_WORD insn = base_insn;
4496 #define FLD(f) abuf->fields.sfmt_bcc_w.f
4497 SI f_indir_pc__word_pcrel;
4499 /* Contents of trailing part of insn. */
4502 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4503 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))))));
4504 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4506 /* Record the fields for the semantic handler. */
4507 FLD (f_operand2) = f_operand2;
4508 FLD (i_o_word_pcrel) = f_indir_pc__word_pcrel;
4509 CGEN_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));
4511 #if WITH_PROFILE_MODEL_P
4512 /* Record the fields for profiling. */
4513 if (PROFILE_MODEL_P (current_cpu))
4523 const IDESC *idesc = &crisv32f_insn_data[itype];
4524 CGEN_INSN_WORD insn = base_insn;
4525 #define FLD(f) abuf->fields.sfmt_bcc_w.f
4526 SI f_indir_pc__word_pcrel;
4527 /* Contents of trailing part of insn. */
4530 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4531 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))))));
4533 /* Record the fields for the semantic handler. */
4534 FLD (i_o_word_pcrel) = f_indir_pc__word_pcrel;
4535 CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ba_w", "o_word_pcrel 0x%x", 'x', f_indir_pc__word_pcrel, (char *) 0));
4537 #if WITH_PROFILE_MODEL_P
4538 /* Record the fields for profiling. */
4539 if (PROFILE_MODEL_P (current_cpu))
4549 const IDESC *idesc = &crisv32f_insn_data[itype];
4550 CGEN_INSN_WORD insn = base_insn;
4551 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
4555 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4556 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4558 /* Record the fields for the semantic handler. */
4559 FLD (f_operand1) = f_operand1;
4560 FLD (f_operand2) = f_operand2;
4561 CGEN_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));
4563 #if WITH_PROFILE_MODEL_P
4564 /* Record the fields for profiling. */
4565 if (PROFILE_MODEL_P (current_cpu))
4567 FLD (in_Rs) = f_operand1;
4568 FLD (out_Pd) = f_operand2;
4577 const IDESC *idesc = &crisv32f_insn_data[itype];
4578 CGEN_INSN_WORD insn = base_insn;
4579 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
4580 INT f_indir_pc__dword;
4582 /* Contents of trailing part of insn. */
4585 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4586 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
4587 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4589 /* Record the fields for the semantic handler. */
4590 FLD (f_indir_pc__dword) = f_indir_pc__dword;
4591 FLD (f_operand2) = f_operand2;
4592 CGEN_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));
4594 #if WITH_PROFILE_MODEL_P
4595 /* Record the fields for profiling. */
4596 if (PROFILE_MODEL_P (current_cpu))
4598 FLD (out_Pd) = f_operand2;
4605 extract_sfmt_jump_p:
4607 const IDESC *idesc = &crisv32f_insn_data[itype];
4608 CGEN_INSN_WORD insn = base_insn;
4609 #define FLD(f) abuf->fields.sfmt_mcp.f
4612 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4614 /* Record the fields for the semantic handler. */
4615 FLD (f_operand2) = f_operand2;
4616 CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jump_p", "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
4618 #if WITH_PROFILE_MODEL_P
4619 /* Record the fields for profiling. */
4620 if (PROFILE_MODEL_P (current_cpu))
4622 FLD (in_Ps) = f_operand2;
4631 const IDESC *idesc = &crisv32f_insn_data[itype];
4632 CGEN_INSN_WORD insn = base_insn;
4633 #define FLD(f) abuf->fields.sfmt_bas_c.f
4634 SI f_indir_pc__dword_pcrel;
4636 /* Contents of trailing part of insn. */
4639 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4640 f_indir_pc__dword_pcrel = ((pc) + ((0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0))));
4641 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4643 /* Record the fields for the semantic handler. */
4644 FLD (f_operand2) = f_operand2;
4645 FLD (i_const32_pcrel) = f_indir_pc__dword_pcrel;
4646 CGEN_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));
4648 #if WITH_PROFILE_MODEL_P
4649 /* Record the fields for profiling. */
4650 if (PROFILE_MODEL_P (current_cpu))
4652 FLD (out_Pd) = f_operand2;
4659 extract_sfmt_jasc_r:
4661 const IDESC *idesc = &crisv32f_insn_data[itype];
4662 CGEN_INSN_WORD insn = base_insn;
4663 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
4667 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4668 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4670 /* Record the fields for the semantic handler. */
4671 FLD (f_operand1) = f_operand1;
4672 FLD (f_operand2) = f_operand2;
4673 CGEN_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));
4675 #if WITH_PROFILE_MODEL_P
4676 /* Record the fields for profiling. */
4677 if (PROFILE_MODEL_P (current_cpu))
4679 FLD (in_Rs) = f_operand1;
4680 FLD (out_Pd) = f_operand2;
4689 const IDESC *idesc = &crisv32f_insn_data[itype];
4690 CGEN_INSN_WORD insn = base_insn;
4691 #define FLD(f) abuf->fields.sfmt_break.f
4694 f_u4 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4696 /* Record the fields for the semantic handler. */
4698 CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_break", "f_u4 0x%x", 'x', f_u4, (char *) 0));
4700 #if WITH_PROFILE_MODEL_P
4701 /* Record the fields for profiling. */
4702 if (PROFILE_MODEL_P (current_cpu))
4710 extract_sfmt_bound_cb:
4712 const IDESC *idesc = &crisv32f_insn_data[itype];
4713 CGEN_INSN_WORD insn = base_insn;
4714 #define FLD(f) abuf->fields.sfmt_bound_cb.f
4715 INT f_indir_pc__byte;
4717 /* Contents of trailing part of insn. */
4720 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4721 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4722 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4724 /* Record the fields for the semantic handler. */
4725 FLD (f_operand2) = f_operand2;
4726 FLD (f_indir_pc__byte) = f_indir_pc__byte;
4727 CGEN_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));
4729 #if WITH_PROFILE_MODEL_P
4730 /* Record the fields for profiling. */
4731 if (PROFILE_MODEL_P (current_cpu))
4733 FLD (in_Rd) = f_operand2;
4734 FLD (out_Rd) = f_operand2;
4741 extract_sfmt_bound_cw:
4743 const IDESC *idesc = &crisv32f_insn_data[itype];
4744 CGEN_INSN_WORD insn = base_insn;
4745 #define FLD(f) abuf->fields.sfmt_bound_cw.f
4746 INT f_indir_pc__word;
4748 /* Contents of trailing part of insn. */
4751 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4752 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4753 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4755 /* Record the fields for the semantic handler. */
4756 FLD (f_operand2) = f_operand2;
4757 FLD (f_indir_pc__word) = f_indir_pc__word;
4758 CGEN_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));
4760 #if WITH_PROFILE_MODEL_P
4761 /* Record the fields for profiling. */
4762 if (PROFILE_MODEL_P (current_cpu))
4764 FLD (in_Rd) = f_operand2;
4765 FLD (out_Rd) = f_operand2;
4772 extract_sfmt_bound_cd:
4774 const IDESC *idesc = &crisv32f_insn_data[itype];
4775 CGEN_INSN_WORD insn = base_insn;
4776 #define FLD(f) abuf->fields.sfmt_bound_cd.f
4777 INT f_indir_pc__dword;
4779 /* Contents of trailing part of insn. */
4782 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4783 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
4784 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4786 /* Record the fields for the semantic handler. */
4787 FLD (f_operand2) = f_operand2;
4788 FLD (f_indir_pc__dword) = f_indir_pc__dword;
4789 CGEN_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));
4791 #if WITH_PROFILE_MODEL_P
4792 /* Record the fields for profiling. */
4793 if (PROFILE_MODEL_P (current_cpu))
4795 FLD (in_Rd) = f_operand2;
4796 FLD (out_Rd) = f_operand2;
4805 const IDESC *idesc = &crisv32f_insn_data[itype];
4806 CGEN_INSN_WORD insn = base_insn;
4807 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
4811 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4812 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4814 /* Record the fields for the semantic handler. */
4815 FLD (f_operand2) = f_operand2;
4816 FLD (f_operand1) = f_operand1;
4817 CGEN_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));
4819 #if WITH_PROFILE_MODEL_P
4820 /* Record the fields for profiling. */
4821 if (PROFILE_MODEL_P (current_cpu))
4823 FLD (out_Rs) = f_operand1;
4832 const IDESC *idesc = &crisv32f_insn_data[itype];
4833 CGEN_INSN_WORD insn = base_insn;
4834 #define FLD(f) abuf->fields.sfmt_addoq.f
4838 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4839 f_s8 = EXTRACT_LSB0_SINT (insn, 16, 7, 8);
4841 /* Record the fields for the semantic handler. */
4842 FLD (f_operand2) = f_operand2;
4844 CGEN_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));
4846 #if WITH_PROFILE_MODEL_P
4847 /* Record the fields for profiling. */
4848 if (PROFILE_MODEL_P (current_cpu))
4850 FLD (in_Rd) = f_operand2;
4857 extract_sfmt_addo_m_b_m:
4859 const IDESC *idesc = &crisv32f_insn_data[itype];
4860 CGEN_INSN_WORD insn = base_insn;
4861 #define FLD(f) abuf->fields.sfmt_addc_m.f
4866 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4867 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4868 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4870 /* Record the fields for the semantic handler. */
4871 FLD (f_operand2) = f_operand2;
4872 FLD (f_operand1) = f_operand1;
4873 FLD (f_memmode) = f_memmode;
4874 CGEN_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));
4876 #if WITH_PROFILE_MODEL_P
4877 /* Record the fields for profiling. */
4878 if (PROFILE_MODEL_P (current_cpu))
4880 FLD (in_Rd) = f_operand2;
4881 FLD (in_Rs) = f_operand1;
4882 FLD (out_Rs) = f_operand1;
4889 extract_sfmt_addo_m_w_m:
4891 const IDESC *idesc = &crisv32f_insn_data[itype];
4892 CGEN_INSN_WORD insn = base_insn;
4893 #define FLD(f) abuf->fields.sfmt_addc_m.f
4898 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4899 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4900 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4902 /* Record the fields for the semantic handler. */
4903 FLD (f_operand2) = f_operand2;
4904 FLD (f_operand1) = f_operand1;
4905 FLD (f_memmode) = f_memmode;
4906 CGEN_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));
4908 #if WITH_PROFILE_MODEL_P
4909 /* Record the fields for profiling. */
4910 if (PROFILE_MODEL_P (current_cpu))
4912 FLD (in_Rd) = f_operand2;
4913 FLD (in_Rs) = f_operand1;
4914 FLD (out_Rs) = f_operand1;
4921 extract_sfmt_addo_m_d_m:
4923 const IDESC *idesc = &crisv32f_insn_data[itype];
4924 CGEN_INSN_WORD insn = base_insn;
4925 #define FLD(f) abuf->fields.sfmt_addc_m.f
4930 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4931 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4932 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4934 /* Record the fields for the semantic handler. */
4935 FLD (f_operand2) = f_operand2;
4936 FLD (f_operand1) = f_operand1;
4937 FLD (f_memmode) = f_memmode;
4938 CGEN_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));
4940 #if WITH_PROFILE_MODEL_P
4941 /* Record the fields for profiling. */
4942 if (PROFILE_MODEL_P (current_cpu))
4944 FLD (in_Rd) = f_operand2;
4945 FLD (in_Rs) = f_operand1;
4946 FLD (out_Rs) = f_operand1;
4953 extract_sfmt_addo_cb:
4955 const IDESC *idesc = &crisv32f_insn_data[itype];
4956 CGEN_INSN_WORD insn = base_insn;
4957 #define FLD(f) abuf->fields.sfmt_bound_cb.f
4958 INT f_indir_pc__byte;
4960 /* Contents of trailing part of insn. */
4963 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4964 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4965 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4967 /* Record the fields for the semantic handler. */
4968 FLD (f_operand2) = f_operand2;
4969 FLD (f_indir_pc__byte) = f_indir_pc__byte;
4970 CGEN_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));
4972 #if WITH_PROFILE_MODEL_P
4973 /* Record the fields for profiling. */
4974 if (PROFILE_MODEL_P (current_cpu))
4976 FLD (in_Rd) = f_operand2;
4983 extract_sfmt_addo_cw:
4985 const IDESC *idesc = &crisv32f_insn_data[itype];
4986 CGEN_INSN_WORD insn = base_insn;
4987 #define FLD(f) abuf->fields.sfmt_bound_cw.f
4988 INT f_indir_pc__word;
4990 /* Contents of trailing part of insn. */
4993 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4994 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4995 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4997 /* Record the fields for the semantic handler. */
4998 FLD (f_operand2) = f_operand2;
4999 FLD (f_indir_pc__word) = f_indir_pc__word;
5000 CGEN_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));
5002 #if WITH_PROFILE_MODEL_P
5003 /* Record the fields for profiling. */
5004 if (PROFILE_MODEL_P (current_cpu))
5006 FLD (in_Rd) = f_operand2;
5013 extract_sfmt_addo_cd:
5015 const IDESC *idesc = &crisv32f_insn_data[itype];
5016 CGEN_INSN_WORD insn = base_insn;
5017 #define FLD(f) abuf->fields.sfmt_bound_cd.f
5018 INT f_indir_pc__dword;
5020 /* Contents of trailing part of insn. */
5023 word_1 = GETIMEMUSI (current_cpu, pc + 2);
5024 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
5025 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5027 /* Record the fields for the semantic handler. */
5028 FLD (f_operand2) = f_operand2;
5029 FLD (f_indir_pc__dword) = f_indir_pc__dword;
5030 CGEN_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));
5032 #if WITH_PROFILE_MODEL_P
5033 /* Record the fields for profiling. */
5034 if (PROFILE_MODEL_P (current_cpu))
5036 FLD (in_Rd) = f_operand2;
5043 extract_sfmt_addi_acr_b_r:
5045 const IDESC *idesc = &crisv32f_insn_data[itype];
5046 CGEN_INSN_WORD insn = base_insn;
5047 #define FLD(f) abuf->fields.sfmt_muls_b.f
5051 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5052 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5054 /* Record the fields for the semantic handler. */
5055 FLD (f_operand2) = f_operand2;
5056 FLD (f_operand1) = f_operand1;
5057 CGEN_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));
5059 #if WITH_PROFILE_MODEL_P
5060 /* Record the fields for profiling. */
5061 if (PROFILE_MODEL_P (current_cpu))
5063 FLD (in_Rd) = f_operand2;
5064 FLD (in_Rs) = f_operand1;
5073 const IDESC *idesc = &crisv32f_insn_data[itype];
5074 CGEN_INSN_WORD insn = base_insn;
5075 #define FLD(f) abuf->fields.sfmt_mcp.f
5078 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5080 /* Record the fields for the semantic handler. */
5081 FLD (f_operand1) = f_operand1;
5082 CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fidxi", "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
5084 #if WITH_PROFILE_MODEL_P
5085 /* Record the fields for profiling. */
5086 if (PROFILE_MODEL_P (current_cpu))
5088 FLD (in_Rs) = f_operand1;