1 /* Simulator instruction decoder for crisv32f.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright 1996-2005 Free Software Foundation, Inc.
7 This file is part of the GNU simulators.
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2, or (at your option)
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, write to the Free Software Foundation, Inc.,
21 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
25 #define WANT_CPU crisv32f
26 #define WANT_CPU_CRISV32F
29 #include "sim-assert.h"
32 /* The instruction descriptor array.
33 This is computed at runtime. Space for it is not malloc'd to save a
34 teensy bit of cpu in the decoder. Moving it to malloc space is trivial
35 but won't be done until necessary (we don't currently support the runtime
36 addition of instructions nor an SMP machine with different cpus). */
37 static IDESC crisv32f_insn_data[CRISV32F_INSN__MAX];
39 /* Commas between elements are contained in the macros.
40 Some of these are conditionally compiled out. */
42 static const struct insn_sem crisv32f_insn_sem[] =
44 { VIRTUAL_INSN_X_INVALID, CRISV32F_INSN_X_INVALID, CRISV32F_SFMT_EMPTY },
45 { VIRTUAL_INSN_X_AFTER, CRISV32F_INSN_X_AFTER, CRISV32F_SFMT_EMPTY },
46 { VIRTUAL_INSN_X_BEFORE, CRISV32F_INSN_X_BEFORE, CRISV32F_SFMT_EMPTY },
47 { VIRTUAL_INSN_X_CTI_CHAIN, CRISV32F_INSN_X_CTI_CHAIN, CRISV32F_SFMT_EMPTY },
48 { VIRTUAL_INSN_X_CHAIN, CRISV32F_INSN_X_CHAIN, CRISV32F_SFMT_EMPTY },
49 { VIRTUAL_INSN_X_BEGIN, CRISV32F_INSN_X_BEGIN, CRISV32F_SFMT_EMPTY },
50 { CRIS_INSN_MOVE_B_R, CRISV32F_INSN_MOVE_B_R, CRISV32F_SFMT_MOVE_B_R },
51 { CRIS_INSN_MOVE_W_R, CRISV32F_INSN_MOVE_W_R, CRISV32F_SFMT_MOVE_B_R },
52 { CRIS_INSN_MOVE_D_R, CRISV32F_INSN_MOVE_D_R, CRISV32F_SFMT_MOVE_D_R },
53 { CRIS_INSN_MOVEQ, CRISV32F_INSN_MOVEQ, CRISV32F_SFMT_MOVEQ },
54 { CRIS_INSN_MOVS_B_R, CRISV32F_INSN_MOVS_B_R, CRISV32F_SFMT_MOVS_B_R },
55 { CRIS_INSN_MOVS_W_R, CRISV32F_INSN_MOVS_W_R, CRISV32F_SFMT_MOVS_B_R },
56 { CRIS_INSN_MOVU_B_R, CRISV32F_INSN_MOVU_B_R, CRISV32F_SFMT_MOVS_B_R },
57 { CRIS_INSN_MOVU_W_R, CRISV32F_INSN_MOVU_W_R, CRISV32F_SFMT_MOVS_B_R },
58 { CRIS_INSN_MOVECBR, CRISV32F_INSN_MOVECBR, CRISV32F_SFMT_MOVECBR },
59 { CRIS_INSN_MOVECWR, CRISV32F_INSN_MOVECWR, CRISV32F_SFMT_MOVECWR },
60 { CRIS_INSN_MOVECDR, CRISV32F_INSN_MOVECDR, CRISV32F_SFMT_MOVECDR },
61 { CRIS_INSN_MOVSCBR, CRISV32F_INSN_MOVSCBR, CRISV32F_SFMT_MOVSCBR },
62 { CRIS_INSN_MOVSCWR, CRISV32F_INSN_MOVSCWR, CRISV32F_SFMT_MOVSCWR },
63 { CRIS_INSN_MOVUCBR, CRISV32F_INSN_MOVUCBR, CRISV32F_SFMT_MOVUCBR },
64 { CRIS_INSN_MOVUCWR, CRISV32F_INSN_MOVUCWR, CRISV32F_SFMT_MOVUCWR },
65 { CRIS_INSN_ADDQ, CRISV32F_INSN_ADDQ, CRISV32F_SFMT_ADDQ },
66 { CRIS_INSN_SUBQ, CRISV32F_INSN_SUBQ, CRISV32F_SFMT_ADDQ },
67 { CRIS_INSN_CMP_R_B_R, CRISV32F_INSN_CMP_R_B_R, CRISV32F_SFMT_CMP_R_B_R },
68 { CRIS_INSN_CMP_R_W_R, CRISV32F_INSN_CMP_R_W_R, CRISV32F_SFMT_CMP_R_B_R },
69 { CRIS_INSN_CMP_R_D_R, CRISV32F_INSN_CMP_R_D_R, CRISV32F_SFMT_CMP_R_B_R },
70 { CRIS_INSN_CMP_M_B_M, CRISV32F_INSN_CMP_M_B_M, CRISV32F_SFMT_CMP_M_B_M },
71 { CRIS_INSN_CMP_M_W_M, CRISV32F_INSN_CMP_M_W_M, CRISV32F_SFMT_CMP_M_W_M },
72 { CRIS_INSN_CMP_M_D_M, CRISV32F_INSN_CMP_M_D_M, CRISV32F_SFMT_CMP_M_D_M },
73 { CRIS_INSN_CMPCBR, CRISV32F_INSN_CMPCBR, CRISV32F_SFMT_CMPCBR },
74 { CRIS_INSN_CMPCWR, CRISV32F_INSN_CMPCWR, CRISV32F_SFMT_CMPCWR },
75 { CRIS_INSN_CMPCDR, CRISV32F_INSN_CMPCDR, CRISV32F_SFMT_CMPCDR },
76 { CRIS_INSN_CMPQ, CRISV32F_INSN_CMPQ, CRISV32F_SFMT_CMPQ },
77 { CRIS_INSN_CMPS_M_B_M, CRISV32F_INSN_CMPS_M_B_M, CRISV32F_SFMT_CMP_M_B_M },
78 { CRIS_INSN_CMPS_M_W_M, CRISV32F_INSN_CMPS_M_W_M, CRISV32F_SFMT_CMP_M_W_M },
79 { CRIS_INSN_CMPSCBR, CRISV32F_INSN_CMPSCBR, CRISV32F_SFMT_CMPCBR },
80 { CRIS_INSN_CMPSCWR, CRISV32F_INSN_CMPSCWR, CRISV32F_SFMT_CMPCWR },
81 { CRIS_INSN_CMPU_M_B_M, CRISV32F_INSN_CMPU_M_B_M, CRISV32F_SFMT_CMP_M_B_M },
82 { CRIS_INSN_CMPU_M_W_M, CRISV32F_INSN_CMPU_M_W_M, CRISV32F_SFMT_CMP_M_W_M },
83 { CRIS_INSN_CMPUCBR, CRISV32F_INSN_CMPUCBR, CRISV32F_SFMT_CMPUCBR },
84 { CRIS_INSN_CMPUCWR, CRISV32F_INSN_CMPUCWR, CRISV32F_SFMT_CMPUCWR },
85 { CRIS_INSN_MOVE_M_B_M, CRISV32F_INSN_MOVE_M_B_M, CRISV32F_SFMT_MOVE_M_B_M },
86 { CRIS_INSN_MOVE_M_W_M, CRISV32F_INSN_MOVE_M_W_M, CRISV32F_SFMT_MOVE_M_W_M },
87 { CRIS_INSN_MOVE_M_D_M, CRISV32F_INSN_MOVE_M_D_M, CRISV32F_SFMT_MOVE_M_D_M },
88 { CRIS_INSN_MOVS_M_B_M, CRISV32F_INSN_MOVS_M_B_M, CRISV32F_SFMT_MOVS_M_B_M },
89 { CRIS_INSN_MOVS_M_W_M, CRISV32F_INSN_MOVS_M_W_M, CRISV32F_SFMT_MOVS_M_W_M },
90 { CRIS_INSN_MOVU_M_B_M, CRISV32F_INSN_MOVU_M_B_M, CRISV32F_SFMT_MOVS_M_B_M },
91 { CRIS_INSN_MOVU_M_W_M, CRISV32F_INSN_MOVU_M_W_M, CRISV32F_SFMT_MOVS_M_W_M },
92 { CRIS_INSN_MOVE_R_SPRV32, CRISV32F_INSN_MOVE_R_SPRV32, CRISV32F_SFMT_MOVE_R_SPRV32 },
93 { CRIS_INSN_MOVE_SPR_RV32, CRISV32F_INSN_MOVE_SPR_RV32, CRISV32F_SFMT_MOVE_SPR_RV32 },
94 { CRIS_INSN_MOVE_M_SPRV32, CRISV32F_INSN_MOVE_M_SPRV32, CRISV32F_SFMT_MOVE_M_SPRV32 },
95 { CRIS_INSN_MOVE_C_SPRV32_P0, CRISV32F_INSN_MOVE_C_SPRV32_P0, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
96 { CRIS_INSN_MOVE_C_SPRV32_P1, CRISV32F_INSN_MOVE_C_SPRV32_P1, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
97 { CRIS_INSN_MOVE_C_SPRV32_P2, CRISV32F_INSN_MOVE_C_SPRV32_P2, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
98 { CRIS_INSN_MOVE_C_SPRV32_P3, CRISV32F_INSN_MOVE_C_SPRV32_P3, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
99 { CRIS_INSN_MOVE_C_SPRV32_P4, CRISV32F_INSN_MOVE_C_SPRV32_P4, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
100 { CRIS_INSN_MOVE_C_SPRV32_P5, CRISV32F_INSN_MOVE_C_SPRV32_P5, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
101 { CRIS_INSN_MOVE_C_SPRV32_P6, CRISV32F_INSN_MOVE_C_SPRV32_P6, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
102 { CRIS_INSN_MOVE_C_SPRV32_P7, CRISV32F_INSN_MOVE_C_SPRV32_P7, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
103 { CRIS_INSN_MOVE_C_SPRV32_P8, CRISV32F_INSN_MOVE_C_SPRV32_P8, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
104 { CRIS_INSN_MOVE_C_SPRV32_P9, CRISV32F_INSN_MOVE_C_SPRV32_P9, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
105 { CRIS_INSN_MOVE_C_SPRV32_P10, CRISV32F_INSN_MOVE_C_SPRV32_P10, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
106 { CRIS_INSN_MOVE_C_SPRV32_P11, CRISV32F_INSN_MOVE_C_SPRV32_P11, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
107 { CRIS_INSN_MOVE_C_SPRV32_P12, CRISV32F_INSN_MOVE_C_SPRV32_P12, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
108 { CRIS_INSN_MOVE_C_SPRV32_P13, CRISV32F_INSN_MOVE_C_SPRV32_P13, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
109 { CRIS_INSN_MOVE_C_SPRV32_P14, CRISV32F_INSN_MOVE_C_SPRV32_P14, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
110 { CRIS_INSN_MOVE_C_SPRV32_P15, CRISV32F_INSN_MOVE_C_SPRV32_P15, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
111 { CRIS_INSN_MOVE_SPR_MV32, CRISV32F_INSN_MOVE_SPR_MV32, CRISV32F_SFMT_MOVE_SPR_MV32 },
112 { CRIS_INSN_MOVE_SS_R, CRISV32F_INSN_MOVE_SS_R, CRISV32F_SFMT_MOVE_SS_R },
113 { CRIS_INSN_MOVE_R_SS, CRISV32F_INSN_MOVE_R_SS, CRISV32F_SFMT_MOVE_R_SS },
114 { CRIS_INSN_MOVEM_R_M_V32, CRISV32F_INSN_MOVEM_R_M_V32, CRISV32F_SFMT_MOVEM_R_M_V32 },
115 { CRIS_INSN_MOVEM_M_R_V32, CRISV32F_INSN_MOVEM_M_R_V32, CRISV32F_SFMT_MOVEM_M_R_V32 },
116 { CRIS_INSN_ADD_B_R, CRISV32F_INSN_ADD_B_R, CRISV32F_SFMT_ADD_B_R },
117 { CRIS_INSN_ADD_W_R, CRISV32F_INSN_ADD_W_R, CRISV32F_SFMT_ADD_B_R },
118 { CRIS_INSN_ADD_D_R, CRISV32F_INSN_ADD_D_R, CRISV32F_SFMT_ADD_D_R },
119 { CRIS_INSN_ADD_M_B_M, CRISV32F_INSN_ADD_M_B_M, CRISV32F_SFMT_ADD_M_B_M },
120 { CRIS_INSN_ADD_M_W_M, CRISV32F_INSN_ADD_M_W_M, CRISV32F_SFMT_ADD_M_W_M },
121 { CRIS_INSN_ADD_M_D_M, CRISV32F_INSN_ADD_M_D_M, CRISV32F_SFMT_ADD_M_D_M },
122 { CRIS_INSN_ADDCBR, CRISV32F_INSN_ADDCBR, CRISV32F_SFMT_ADDCBR },
123 { CRIS_INSN_ADDCWR, CRISV32F_INSN_ADDCWR, CRISV32F_SFMT_ADDCWR },
124 { CRIS_INSN_ADDCDR, CRISV32F_INSN_ADDCDR, CRISV32F_SFMT_ADDCDR },
125 { CRIS_INSN_ADDS_B_R, CRISV32F_INSN_ADDS_B_R, CRISV32F_SFMT_ADD_D_R },
126 { CRIS_INSN_ADDS_W_R, CRISV32F_INSN_ADDS_W_R, CRISV32F_SFMT_ADD_D_R },
127 { CRIS_INSN_ADDS_M_B_M, CRISV32F_INSN_ADDS_M_B_M, CRISV32F_SFMT_ADDS_M_B_M },
128 { CRIS_INSN_ADDS_M_W_M, CRISV32F_INSN_ADDS_M_W_M, CRISV32F_SFMT_ADDS_M_W_M },
129 { CRIS_INSN_ADDSCBR, CRISV32F_INSN_ADDSCBR, CRISV32F_SFMT_ADDSCBR },
130 { CRIS_INSN_ADDSCWR, CRISV32F_INSN_ADDSCWR, CRISV32F_SFMT_ADDSCWR },
131 { CRIS_INSN_ADDU_B_R, CRISV32F_INSN_ADDU_B_R, CRISV32F_SFMT_ADD_D_R },
132 { CRIS_INSN_ADDU_W_R, CRISV32F_INSN_ADDU_W_R, CRISV32F_SFMT_ADD_D_R },
133 { CRIS_INSN_ADDU_M_B_M, CRISV32F_INSN_ADDU_M_B_M, CRISV32F_SFMT_ADDS_M_B_M },
134 { CRIS_INSN_ADDU_M_W_M, CRISV32F_INSN_ADDU_M_W_M, CRISV32F_SFMT_ADDS_M_W_M },
135 { CRIS_INSN_ADDUCBR, CRISV32F_INSN_ADDUCBR, CRISV32F_SFMT_ADDSCBR },
136 { CRIS_INSN_ADDUCWR, CRISV32F_INSN_ADDUCWR, CRISV32F_SFMT_ADDSCWR },
137 { CRIS_INSN_SUB_B_R, CRISV32F_INSN_SUB_B_R, CRISV32F_SFMT_ADD_B_R },
138 { CRIS_INSN_SUB_W_R, CRISV32F_INSN_SUB_W_R, CRISV32F_SFMT_ADD_B_R },
139 { CRIS_INSN_SUB_D_R, CRISV32F_INSN_SUB_D_R, CRISV32F_SFMT_ADD_D_R },
140 { CRIS_INSN_SUB_M_B_M, CRISV32F_INSN_SUB_M_B_M, CRISV32F_SFMT_ADD_M_B_M },
141 { CRIS_INSN_SUB_M_W_M, CRISV32F_INSN_SUB_M_W_M, CRISV32F_SFMT_ADD_M_W_M },
142 { CRIS_INSN_SUB_M_D_M, CRISV32F_INSN_SUB_M_D_M, CRISV32F_SFMT_ADD_M_D_M },
143 { CRIS_INSN_SUBCBR, CRISV32F_INSN_SUBCBR, CRISV32F_SFMT_ADDCBR },
144 { CRIS_INSN_SUBCWR, CRISV32F_INSN_SUBCWR, CRISV32F_SFMT_ADDCWR },
145 { CRIS_INSN_SUBCDR, CRISV32F_INSN_SUBCDR, CRISV32F_SFMT_ADDCDR },
146 { CRIS_INSN_SUBS_B_R, CRISV32F_INSN_SUBS_B_R, CRISV32F_SFMT_ADD_D_R },
147 { CRIS_INSN_SUBS_W_R, CRISV32F_INSN_SUBS_W_R, CRISV32F_SFMT_ADD_D_R },
148 { CRIS_INSN_SUBS_M_B_M, CRISV32F_INSN_SUBS_M_B_M, CRISV32F_SFMT_ADDS_M_B_M },
149 { CRIS_INSN_SUBS_M_W_M, CRISV32F_INSN_SUBS_M_W_M, CRISV32F_SFMT_ADDS_M_W_M },
150 { CRIS_INSN_SUBSCBR, CRISV32F_INSN_SUBSCBR, CRISV32F_SFMT_ADDSCBR },
151 { CRIS_INSN_SUBSCWR, CRISV32F_INSN_SUBSCWR, CRISV32F_SFMT_ADDSCWR },
152 { CRIS_INSN_SUBU_B_R, CRISV32F_INSN_SUBU_B_R, CRISV32F_SFMT_ADD_D_R },
153 { CRIS_INSN_SUBU_W_R, CRISV32F_INSN_SUBU_W_R, CRISV32F_SFMT_ADD_D_R },
154 { CRIS_INSN_SUBU_M_B_M, CRISV32F_INSN_SUBU_M_B_M, CRISV32F_SFMT_ADDS_M_B_M },
155 { CRIS_INSN_SUBU_M_W_M, CRISV32F_INSN_SUBU_M_W_M, CRISV32F_SFMT_ADDS_M_W_M },
156 { CRIS_INSN_SUBUCBR, CRISV32F_INSN_SUBUCBR, CRISV32F_SFMT_ADDSCBR },
157 { CRIS_INSN_SUBUCWR, CRISV32F_INSN_SUBUCWR, CRISV32F_SFMT_ADDSCWR },
158 { CRIS_INSN_ADDC_R, CRISV32F_INSN_ADDC_R, CRISV32F_SFMT_ADD_D_R },
159 { CRIS_INSN_ADDC_M, CRISV32F_INSN_ADDC_M, CRISV32F_SFMT_ADDC_M },
160 { CRIS_INSN_ADDC_C, CRISV32F_INSN_ADDC_C, CRISV32F_SFMT_ADDCDR },
161 { CRIS_INSN_LAPC_D, CRISV32F_INSN_LAPC_D, CRISV32F_SFMT_LAPC_D },
162 { CRIS_INSN_LAPCQ, CRISV32F_INSN_LAPCQ, CRISV32F_SFMT_LAPCQ },
163 { CRIS_INSN_ADDI_B_R, CRISV32F_INSN_ADDI_B_R, CRISV32F_SFMT_ADDI_B_R },
164 { CRIS_INSN_ADDI_W_R, CRISV32F_INSN_ADDI_W_R, CRISV32F_SFMT_ADDI_B_R },
165 { CRIS_INSN_ADDI_D_R, CRISV32F_INSN_ADDI_D_R, CRISV32F_SFMT_ADDI_B_R },
166 { CRIS_INSN_NEG_B_R, CRISV32F_INSN_NEG_B_R, CRISV32F_SFMT_NEG_B_R },
167 { CRIS_INSN_NEG_W_R, CRISV32F_INSN_NEG_W_R, CRISV32F_SFMT_NEG_B_R },
168 { CRIS_INSN_NEG_D_R, CRISV32F_INSN_NEG_D_R, CRISV32F_SFMT_NEG_D_R },
169 { CRIS_INSN_TEST_M_B_M, CRISV32F_INSN_TEST_M_B_M, CRISV32F_SFMT_TEST_M_B_M },
170 { CRIS_INSN_TEST_M_W_M, CRISV32F_INSN_TEST_M_W_M, CRISV32F_SFMT_TEST_M_W_M },
171 { CRIS_INSN_TEST_M_D_M, CRISV32F_INSN_TEST_M_D_M, CRISV32F_SFMT_TEST_M_D_M },
172 { CRIS_INSN_MOVE_R_M_B_M, CRISV32F_INSN_MOVE_R_M_B_M, CRISV32F_SFMT_MOVE_R_M_B_M },
173 { CRIS_INSN_MOVE_R_M_W_M, CRISV32F_INSN_MOVE_R_M_W_M, CRISV32F_SFMT_MOVE_R_M_W_M },
174 { CRIS_INSN_MOVE_R_M_D_M, CRISV32F_INSN_MOVE_R_M_D_M, CRISV32F_SFMT_MOVE_R_M_D_M },
175 { CRIS_INSN_MULS_B, CRISV32F_INSN_MULS_B, CRISV32F_SFMT_MULS_B },
176 { CRIS_INSN_MULS_W, CRISV32F_INSN_MULS_W, CRISV32F_SFMT_MULS_B },
177 { CRIS_INSN_MULS_D, CRISV32F_INSN_MULS_D, CRISV32F_SFMT_MULS_B },
178 { CRIS_INSN_MULU_B, CRISV32F_INSN_MULU_B, CRISV32F_SFMT_MULS_B },
179 { CRIS_INSN_MULU_W, CRISV32F_INSN_MULU_W, CRISV32F_SFMT_MULS_B },
180 { CRIS_INSN_MULU_D, CRISV32F_INSN_MULU_D, CRISV32F_SFMT_MULS_B },
181 { CRIS_INSN_MCP, CRISV32F_INSN_MCP, CRISV32F_SFMT_MCP },
182 { CRIS_INSN_DSTEP, CRISV32F_INSN_DSTEP, CRISV32F_SFMT_DSTEP },
183 { CRIS_INSN_ABS, CRISV32F_INSN_ABS, CRISV32F_SFMT_MOVS_B_R },
184 { CRIS_INSN_AND_B_R, CRISV32F_INSN_AND_B_R, CRISV32F_SFMT_AND_B_R },
185 { CRIS_INSN_AND_W_R, CRISV32F_INSN_AND_W_R, CRISV32F_SFMT_AND_W_R },
186 { CRIS_INSN_AND_D_R, CRISV32F_INSN_AND_D_R, CRISV32F_SFMT_AND_D_R },
187 { CRIS_INSN_AND_M_B_M, CRISV32F_INSN_AND_M_B_M, CRISV32F_SFMT_AND_M_B_M },
188 { CRIS_INSN_AND_M_W_M, CRISV32F_INSN_AND_M_W_M, CRISV32F_SFMT_AND_M_W_M },
189 { CRIS_INSN_AND_M_D_M, CRISV32F_INSN_AND_M_D_M, CRISV32F_SFMT_AND_M_D_M },
190 { CRIS_INSN_ANDCBR, CRISV32F_INSN_ANDCBR, CRISV32F_SFMT_ANDCBR },
191 { CRIS_INSN_ANDCWR, CRISV32F_INSN_ANDCWR, CRISV32F_SFMT_ANDCWR },
192 { CRIS_INSN_ANDCDR, CRISV32F_INSN_ANDCDR, CRISV32F_SFMT_ANDCDR },
193 { CRIS_INSN_ANDQ, CRISV32F_INSN_ANDQ, CRISV32F_SFMT_ANDQ },
194 { CRIS_INSN_ORR_B_R, CRISV32F_INSN_ORR_B_R, CRISV32F_SFMT_AND_B_R },
195 { CRIS_INSN_ORR_W_R, CRISV32F_INSN_ORR_W_R, CRISV32F_SFMT_AND_W_R },
196 { CRIS_INSN_ORR_D_R, CRISV32F_INSN_ORR_D_R, CRISV32F_SFMT_AND_D_R },
197 { CRIS_INSN_OR_M_B_M, CRISV32F_INSN_OR_M_B_M, CRISV32F_SFMT_AND_M_B_M },
198 { CRIS_INSN_OR_M_W_M, CRISV32F_INSN_OR_M_W_M, CRISV32F_SFMT_AND_M_W_M },
199 { CRIS_INSN_OR_M_D_M, CRISV32F_INSN_OR_M_D_M, CRISV32F_SFMT_AND_M_D_M },
200 { CRIS_INSN_ORCBR, CRISV32F_INSN_ORCBR, CRISV32F_SFMT_ANDCBR },
201 { CRIS_INSN_ORCWR, CRISV32F_INSN_ORCWR, CRISV32F_SFMT_ANDCWR },
202 { CRIS_INSN_ORCDR, CRISV32F_INSN_ORCDR, CRISV32F_SFMT_ANDCDR },
203 { CRIS_INSN_ORQ, CRISV32F_INSN_ORQ, CRISV32F_SFMT_ANDQ },
204 { CRIS_INSN_XOR, CRISV32F_INSN_XOR, CRISV32F_SFMT_DSTEP },
205 { CRIS_INSN_SWAP, CRISV32F_INSN_SWAP, CRISV32F_SFMT_SWAP },
206 { CRIS_INSN_ASRR_B_R, CRISV32F_INSN_ASRR_B_R, CRISV32F_SFMT_ASRR_B_R },
207 { CRIS_INSN_ASRR_W_R, CRISV32F_INSN_ASRR_W_R, CRISV32F_SFMT_ASRR_B_R },
208 { CRIS_INSN_ASRR_D_R, CRISV32F_INSN_ASRR_D_R, CRISV32F_SFMT_AND_D_R },
209 { CRIS_INSN_ASRQ, CRISV32F_INSN_ASRQ, CRISV32F_SFMT_ASRQ },
210 { CRIS_INSN_LSRR_B_R, CRISV32F_INSN_LSRR_B_R, CRISV32F_SFMT_LSRR_B_R },
211 { CRIS_INSN_LSRR_W_R, CRISV32F_INSN_LSRR_W_R, CRISV32F_SFMT_LSRR_B_R },
212 { CRIS_INSN_LSRR_D_R, CRISV32F_INSN_LSRR_D_R, CRISV32F_SFMT_LSRR_D_R },
213 { CRIS_INSN_LSRQ, CRISV32F_INSN_LSRQ, CRISV32F_SFMT_ASRQ },
214 { CRIS_INSN_LSLR_B_R, CRISV32F_INSN_LSLR_B_R, CRISV32F_SFMT_LSRR_B_R },
215 { CRIS_INSN_LSLR_W_R, CRISV32F_INSN_LSLR_W_R, CRISV32F_SFMT_LSRR_B_R },
216 { CRIS_INSN_LSLR_D_R, CRISV32F_INSN_LSLR_D_R, CRISV32F_SFMT_LSRR_D_R },
217 { CRIS_INSN_LSLQ, CRISV32F_INSN_LSLQ, CRISV32F_SFMT_ASRQ },
218 { CRIS_INSN_BTST, CRISV32F_INSN_BTST, CRISV32F_SFMT_BTST },
219 { CRIS_INSN_BTSTQ, CRISV32F_INSN_BTSTQ, CRISV32F_SFMT_BTSTQ },
220 { CRIS_INSN_SETF, CRISV32F_INSN_SETF, CRISV32F_SFMT_SETF },
221 { CRIS_INSN_CLEARF, CRISV32F_INSN_CLEARF, CRISV32F_SFMT_SETF },
222 { CRIS_INSN_RFE, CRISV32F_INSN_RFE, CRISV32F_SFMT_RFE },
223 { CRIS_INSN_SFE, CRISV32F_INSN_SFE, CRISV32F_SFMT_SFE },
224 { CRIS_INSN_RFG, CRISV32F_INSN_RFG, CRISV32F_SFMT_RFG },
225 { CRIS_INSN_RFN, CRISV32F_INSN_RFN, CRISV32F_SFMT_RFN },
226 { CRIS_INSN_HALT, CRISV32F_INSN_HALT, CRISV32F_SFMT_HALT },
227 { CRIS_INSN_BCC_B, CRISV32F_INSN_BCC_B, CRISV32F_SFMT_BCC_B },
228 { CRIS_INSN_BA_B, CRISV32F_INSN_BA_B, CRISV32F_SFMT_BA_B },
229 { CRIS_INSN_BCC_W, CRISV32F_INSN_BCC_W, CRISV32F_SFMT_BCC_W },
230 { CRIS_INSN_BA_W, CRISV32F_INSN_BA_W, CRISV32F_SFMT_BA_W },
231 { CRIS_INSN_JAS_R, CRISV32F_INSN_JAS_R, CRISV32F_SFMT_JAS_R },
232 { CRIS_INSN_JAS_C, CRISV32F_INSN_JAS_C, CRISV32F_SFMT_JAS_C },
233 { CRIS_INSN_JUMP_P, CRISV32F_INSN_JUMP_P, CRISV32F_SFMT_JUMP_P },
234 { CRIS_INSN_BAS_C, CRISV32F_INSN_BAS_C, CRISV32F_SFMT_BAS_C },
235 { CRIS_INSN_JASC_R, CRISV32F_INSN_JASC_R, CRISV32F_SFMT_JASC_R },
236 { CRIS_INSN_JASC_C, CRISV32F_INSN_JASC_C, CRISV32F_SFMT_JAS_C },
237 { CRIS_INSN_BASC_C, CRISV32F_INSN_BASC_C, CRISV32F_SFMT_BAS_C },
238 { CRIS_INSN_BREAK, CRISV32F_INSN_BREAK, CRISV32F_SFMT_BREAK },
239 { CRIS_INSN_BOUND_R_B_R, CRISV32F_INSN_BOUND_R_B_R, CRISV32F_SFMT_DSTEP },
240 { CRIS_INSN_BOUND_R_W_R, CRISV32F_INSN_BOUND_R_W_R, CRISV32F_SFMT_DSTEP },
241 { CRIS_INSN_BOUND_R_D_R, CRISV32F_INSN_BOUND_R_D_R, CRISV32F_SFMT_DSTEP },
242 { CRIS_INSN_BOUND_CB, CRISV32F_INSN_BOUND_CB, CRISV32F_SFMT_BOUND_CB },
243 { CRIS_INSN_BOUND_CW, CRISV32F_INSN_BOUND_CW, CRISV32F_SFMT_BOUND_CW },
244 { CRIS_INSN_BOUND_CD, CRISV32F_INSN_BOUND_CD, CRISV32F_SFMT_BOUND_CD },
245 { CRIS_INSN_SCC, CRISV32F_INSN_SCC, CRISV32F_SFMT_SCC },
246 { CRIS_INSN_LZ, CRISV32F_INSN_LZ, CRISV32F_SFMT_MOVS_B_R },
247 { CRIS_INSN_ADDOQ, CRISV32F_INSN_ADDOQ, CRISV32F_SFMT_ADDOQ },
248 { CRIS_INSN_ADDO_M_B_M, CRISV32F_INSN_ADDO_M_B_M, CRISV32F_SFMT_ADDO_M_B_M },
249 { CRIS_INSN_ADDO_M_W_M, CRISV32F_INSN_ADDO_M_W_M, CRISV32F_SFMT_ADDO_M_W_M },
250 { CRIS_INSN_ADDO_M_D_M, CRISV32F_INSN_ADDO_M_D_M, CRISV32F_SFMT_ADDO_M_D_M },
251 { CRIS_INSN_ADDO_CB, CRISV32F_INSN_ADDO_CB, CRISV32F_SFMT_ADDO_CB },
252 { CRIS_INSN_ADDO_CW, CRISV32F_INSN_ADDO_CW, CRISV32F_SFMT_ADDO_CW },
253 { CRIS_INSN_ADDO_CD, CRISV32F_INSN_ADDO_CD, CRISV32F_SFMT_ADDO_CD },
254 { CRIS_INSN_ADDI_ACR_B_R, CRISV32F_INSN_ADDI_ACR_B_R, CRISV32F_SFMT_ADDI_ACR_B_R },
255 { CRIS_INSN_ADDI_ACR_W_R, CRISV32F_INSN_ADDI_ACR_W_R, CRISV32F_SFMT_ADDI_ACR_B_R },
256 { CRIS_INSN_ADDI_ACR_D_R, CRISV32F_INSN_ADDI_ACR_D_R, CRISV32F_SFMT_ADDI_ACR_B_R },
257 { CRIS_INSN_FIDXI, CRISV32F_INSN_FIDXI, CRISV32F_SFMT_FIDXI },
258 { CRIS_INSN_FTAGI, CRISV32F_INSN_FTAGI, CRISV32F_SFMT_FIDXI },
259 { CRIS_INSN_FIDXD, CRISV32F_INSN_FIDXD, CRISV32F_SFMT_FIDXI },
260 { CRIS_INSN_FTAGD, CRISV32F_INSN_FTAGD, CRISV32F_SFMT_FIDXI },
263 static const struct insn_sem crisv32f_insn_sem_invalid = {
264 VIRTUAL_INSN_X_INVALID, CRISV32F_INSN_X_INVALID, CRISV32F_SFMT_EMPTY
267 /* Initialize an IDESC from the compile-time computable parts. */
270 init_idesc (SIM_CPU *cpu, IDESC *id, const struct insn_sem *t)
272 const CGEN_INSN *insn_table = CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu))->init_entries;
276 if ((int) t->type <= 0)
277 id->idata = & cgen_virtual_insn_table[- (int) t->type];
279 id->idata = & insn_table[t->type];
280 id->attrs = CGEN_INSN_ATTRS (id->idata);
281 /* Oh my god, a magic number. */
282 id->length = CGEN_INSN_BITSIZE (id->idata) / 8;
284 #if WITH_PROFILE_MODEL_P
285 id->timing = & MODEL_TIMING (CPU_MODEL (cpu)) [t->index];
287 SIM_DESC sd = CPU_STATE (cpu);
288 SIM_ASSERT (t->index == id->timing->num);
292 /* Semantic pointers are initialized elsewhere. */
295 /* Initialize the instruction descriptor table. */
298 crisv32f_init_idesc_table (SIM_CPU *cpu)
301 const struct insn_sem *t,*tend;
302 int tabsize = CRISV32F_INSN__MAX;
303 IDESC *table = crisv32f_insn_data;
305 memset (table, 0, tabsize * sizeof (IDESC));
307 /* First set all entries to the `invalid insn'. */
308 t = & crisv32f_insn_sem_invalid;
309 for (id = table, tabend = table + tabsize; id < tabend; ++id)
310 init_idesc (cpu, id, t);
312 /* Now fill in the values for the chosen cpu. */
313 for (t = crisv32f_insn_sem, tend = t + sizeof (crisv32f_insn_sem) / sizeof (*t);
316 init_idesc (cpu, & table[t->index], t);
319 /* Link the IDESC table into the cpu. */
320 CPU_IDESC (cpu) = table;
323 /* Given an instruction, return a pointer to its IDESC entry. */
326 crisv32f_decode (SIM_CPU *current_cpu, IADDR pc,
327 CGEN_INSN_INT base_insn,
330 /* Result of decoder. */
331 CRISV32F_INSN_TYPE itype;
334 CGEN_INSN_INT insn = base_insn;
337 unsigned int val = (((insn >> 4) & (255 << 0)));
340 case 0 : /* fall through */
341 case 1 : /* fall through */
342 case 2 : /* fall through */
343 case 3 : /* fall through */
344 case 4 : /* fall through */
345 case 5 : /* fall through */
346 case 6 : /* fall through */
347 case 7 : /* fall through */
348 case 8 : /* fall through */
349 case 9 : /* fall through */
350 case 10 : /* fall through */
351 case 11 : /* fall through */
352 case 12 : /* fall through */
353 case 13 : /* fall through */
354 case 14 : /* fall through */
357 unsigned int val = (((insn >> 12) & (15 << 0)));
360 case 0 : /* fall through */
361 case 1 : /* fall through */
362 case 2 : /* fall through */
363 case 3 : /* fall through */
364 case 4 : /* fall through */
365 case 5 : /* fall through */
366 case 6 : /* fall through */
367 case 7 : /* fall through */
368 case 8 : /* fall through */
369 case 9 : /* fall through */
370 case 10 : /* fall through */
371 case 11 : /* fall through */
372 case 12 : /* fall through */
373 case 13 : /* fall through */
375 if ((base_insn & 0xf00) == 0x0)
376 { itype = CRISV32F_INSN_BCC_B; goto extract_sfmt_bcc_b; }
377 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
379 if ((base_insn & 0xff00) == 0xe000)
380 { itype = CRISV32F_INSN_BA_B; goto extract_sfmt_ba_b; }
381 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
382 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
385 case 16 : /* fall through */
386 case 17 : /* fall through */
387 case 18 : /* fall through */
388 case 19 : /* fall through */
389 case 20 : /* fall through */
390 case 21 : /* fall through */
391 case 22 : /* fall through */
392 case 23 : /* fall through */
393 case 24 : /* fall through */
394 case 25 : /* fall through */
395 case 26 : /* fall through */
396 case 27 : /* fall through */
397 case 28 : /* fall through */
398 case 29 : /* fall through */
399 case 30 : /* fall through */
401 if ((base_insn & 0xf00) == 0x100)
402 { itype = CRISV32F_INSN_ADDOQ; goto extract_sfmt_addoq; }
403 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
404 case 32 : /* fall through */
405 case 33 : /* fall through */
406 case 34 : /* fall through */
408 if ((base_insn & 0xfc0) == 0x200)
409 { itype = CRISV32F_INSN_ADDQ; goto extract_sfmt_addq; }
410 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
411 case 36 : /* fall through */
412 case 37 : /* fall through */
413 case 38 : /* fall through */
415 if ((base_insn & 0xfc0) == 0x240)
416 { itype = CRISV32F_INSN_MOVEQ; goto extract_sfmt_moveq; }
417 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
418 case 40 : /* fall through */
419 case 41 : /* fall through */
420 case 42 : /* fall through */
422 if ((base_insn & 0xfc0) == 0x280)
423 { itype = CRISV32F_INSN_SUBQ; goto extract_sfmt_addq; }
424 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
425 case 44 : /* fall through */
426 case 45 : /* fall through */
427 case 46 : /* fall through */
429 if ((base_insn & 0xfc0) == 0x2c0)
430 { itype = CRISV32F_INSN_CMPQ; goto extract_sfmt_cmpq; }
431 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
432 case 48 : /* fall through */
433 case 49 : /* fall through */
434 case 50 : /* fall through */
436 if ((base_insn & 0xfc0) == 0x300)
437 { itype = CRISV32F_INSN_ANDQ; goto extract_sfmt_andq; }
438 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
439 case 52 : /* fall through */
440 case 53 : /* fall through */
441 case 54 : /* fall through */
443 if ((base_insn & 0xfc0) == 0x340)
444 { itype = CRISV32F_INSN_ORQ; goto extract_sfmt_andq; }
445 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
446 case 56 : /* fall through */
448 if ((base_insn & 0xfe0) == 0x380)
449 { itype = CRISV32F_INSN_BTSTQ; goto extract_sfmt_btstq; }
450 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
451 case 58 : /* fall through */
453 if ((base_insn & 0xfe0) == 0x3a0)
454 { itype = CRISV32F_INSN_ASRQ; goto extract_sfmt_asrq; }
455 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
456 case 60 : /* fall through */
458 if ((base_insn & 0xfe0) == 0x3c0)
459 { itype = CRISV32F_INSN_LSLQ; goto extract_sfmt_asrq; }
460 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
461 case 62 : /* fall through */
463 if ((base_insn & 0xfe0) == 0x3e0)
464 { itype = CRISV32F_INSN_LSRQ; goto extract_sfmt_asrq; }
465 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
467 if ((base_insn & 0xff0) == 0x400)
468 { itype = CRISV32F_INSN_ADDU_B_R; goto extract_sfmt_add_d_r; }
469 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
471 if ((base_insn & 0xff0) == 0x410)
472 { itype = CRISV32F_INSN_ADDU_W_R; goto extract_sfmt_add_d_r; }
473 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
475 if ((base_insn & 0xff0) == 0x420)
476 { itype = CRISV32F_INSN_ADDS_B_R; goto extract_sfmt_add_d_r; }
477 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
479 if ((base_insn & 0xff0) == 0x430)
480 { itype = CRISV32F_INSN_ADDS_W_R; goto extract_sfmt_add_d_r; }
481 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
483 if ((base_insn & 0xff0) == 0x440)
484 { itype = CRISV32F_INSN_MOVU_B_R; goto extract_sfmt_movs_b_r; }
485 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
487 if ((base_insn & 0xff0) == 0x450)
488 { itype = CRISV32F_INSN_MOVU_W_R; goto extract_sfmt_movs_b_r; }
489 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
491 if ((base_insn & 0xff0) == 0x460)
492 { itype = CRISV32F_INSN_MOVS_B_R; goto extract_sfmt_movs_b_r; }
493 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
495 if ((base_insn & 0xff0) == 0x470)
496 { itype = CRISV32F_INSN_MOVS_W_R; goto extract_sfmt_movs_b_r; }
497 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
499 if ((base_insn & 0xff0) == 0x480)
500 { itype = CRISV32F_INSN_SUBU_B_R; goto extract_sfmt_add_d_r; }
501 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
503 if ((base_insn & 0xff0) == 0x490)
504 { itype = CRISV32F_INSN_SUBU_W_R; goto extract_sfmt_add_d_r; }
505 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
507 if ((base_insn & 0xff0) == 0x4a0)
508 { itype = CRISV32F_INSN_SUBS_B_R; goto extract_sfmt_add_d_r; }
509 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
511 if ((base_insn & 0xff0) == 0x4b0)
512 { itype = CRISV32F_INSN_SUBS_W_R; goto extract_sfmt_add_d_r; }
513 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
515 if ((base_insn & 0xff0) == 0x4c0)
516 { itype = CRISV32F_INSN_LSLR_B_R; goto extract_sfmt_lsrr_b_r; }
517 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
519 if ((base_insn & 0xff0) == 0x4d0)
520 { itype = CRISV32F_INSN_LSLR_W_R; goto extract_sfmt_lsrr_b_r; }
521 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
523 if ((base_insn & 0xff0) == 0x4e0)
524 { itype = CRISV32F_INSN_LSLR_D_R; goto extract_sfmt_lsrr_d_r; }
525 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
527 if ((base_insn & 0xff0) == 0x4f0)
528 { itype = CRISV32F_INSN_BTST; goto extract_sfmt_btst; }
529 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
531 if ((base_insn & 0xff0) == 0x500)
532 { itype = CRISV32F_INSN_ADDI_B_R; goto extract_sfmt_addi_b_r; }
533 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
535 if ((base_insn & 0xff0) == 0x510)
536 { itype = CRISV32F_INSN_ADDI_W_R; goto extract_sfmt_addi_b_r; }
537 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
539 if ((base_insn & 0xff0) == 0x520)
540 { itype = CRISV32F_INSN_ADDI_D_R; goto extract_sfmt_addi_b_r; }
541 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
543 if ((base_insn & 0xff0) == 0x530)
544 { itype = CRISV32F_INSN_SCC; goto extract_sfmt_scc; }
545 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
547 if ((base_insn & 0xff0) == 0x540)
548 { itype = CRISV32F_INSN_ADDI_ACR_B_R; goto extract_sfmt_addi_acr_b_r; }
549 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
551 if ((base_insn & 0xff0) == 0x550)
552 { itype = CRISV32F_INSN_ADDI_ACR_W_R; goto extract_sfmt_addi_acr_b_r; }
553 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
555 if ((base_insn & 0xff0) == 0x560)
556 { itype = CRISV32F_INSN_ADDI_ACR_D_R; goto extract_sfmt_addi_acr_b_r; }
557 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
559 if ((base_insn & 0xff0) == 0x570)
560 { itype = CRISV32F_INSN_ADDC_R; goto extract_sfmt_add_d_r; }
561 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
563 if ((base_insn & 0xff0) == 0x580)
564 { itype = CRISV32F_INSN_NEG_B_R; goto extract_sfmt_neg_b_r; }
565 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
567 if ((base_insn & 0xff0) == 0x590)
568 { itype = CRISV32F_INSN_NEG_W_R; goto extract_sfmt_neg_b_r; }
569 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
571 if ((base_insn & 0xff0) == 0x5a0)
572 { itype = CRISV32F_INSN_NEG_D_R; goto extract_sfmt_neg_d_r; }
573 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
575 if ((base_insn & 0xff0) == 0x5b0)
576 { itype = CRISV32F_INSN_SETF; goto extract_sfmt_setf; }
577 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
579 if ((base_insn & 0xff0) == 0x5c0)
580 { itype = CRISV32F_INSN_BOUND_R_B_R; goto extract_sfmt_dstep; }
581 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
583 if ((base_insn & 0xff0) == 0x5d0)
584 { itype = CRISV32F_INSN_BOUND_R_W_R; goto extract_sfmt_dstep; }
585 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
587 if ((base_insn & 0xff0) == 0x5e0)
588 { itype = CRISV32F_INSN_BOUND_R_D_R; goto extract_sfmt_dstep; }
589 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
591 if ((base_insn & 0xff0) == 0x5f0)
592 { itype = CRISV32F_INSN_CLEARF; goto extract_sfmt_setf; }
593 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
595 if ((base_insn & 0xff0) == 0x600)
596 { itype = CRISV32F_INSN_ADD_B_R; goto extract_sfmt_add_b_r; }
597 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
599 if ((base_insn & 0xff0) == 0x610)
600 { itype = CRISV32F_INSN_ADD_W_R; goto extract_sfmt_add_b_r; }
601 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
603 if ((base_insn & 0xff0) == 0x620)
604 { itype = CRISV32F_INSN_ADD_D_R; goto extract_sfmt_add_d_r; }
605 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
607 if ((base_insn & 0xff0) == 0x630)
608 { itype = CRISV32F_INSN_MOVE_R_SPRV32; goto extract_sfmt_move_r_sprv32; }
609 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
611 if ((base_insn & 0xff0) == 0x640)
612 { itype = CRISV32F_INSN_MOVE_B_R; goto extract_sfmt_move_b_r; }
613 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
615 if ((base_insn & 0xff0) == 0x650)
616 { itype = CRISV32F_INSN_MOVE_W_R; goto extract_sfmt_move_b_r; }
617 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
619 if ((base_insn & 0xff0) == 0x660)
620 { itype = CRISV32F_INSN_MOVE_D_R; goto extract_sfmt_move_d_r; }
621 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
623 if ((base_insn & 0xff0) == 0x670)
624 { itype = CRISV32F_INSN_MOVE_SPR_RV32; goto extract_sfmt_move_spr_rv32; }
625 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
627 if ((base_insn & 0xff0) == 0x680)
628 { itype = CRISV32F_INSN_SUB_B_R; goto extract_sfmt_add_b_r; }
629 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
631 if ((base_insn & 0xff0) == 0x690)
632 { itype = CRISV32F_INSN_SUB_W_R; goto extract_sfmt_add_b_r; }
633 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
635 if ((base_insn & 0xff0) == 0x6a0)
636 { itype = CRISV32F_INSN_SUB_D_R; goto extract_sfmt_add_d_r; }
637 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
639 if ((base_insn & 0xff0) == 0x6b0)
640 { itype = CRISV32F_INSN_ABS; goto extract_sfmt_movs_b_r; }
641 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
643 if ((base_insn & 0xff0) == 0x6c0)
644 { itype = CRISV32F_INSN_CMP_R_B_R; goto extract_sfmt_cmp_r_b_r; }
645 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
647 if ((base_insn & 0xff0) == 0x6d0)
648 { itype = CRISV32F_INSN_CMP_R_W_R; goto extract_sfmt_cmp_r_b_r; }
649 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
651 if ((base_insn & 0xff0) == 0x6e0)
652 { itype = CRISV32F_INSN_CMP_R_D_R; goto extract_sfmt_cmp_r_b_r; }
653 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
655 if ((base_insn & 0xff0) == 0x6f0)
656 { itype = CRISV32F_INSN_DSTEP; goto extract_sfmt_dstep; }
657 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
659 if ((base_insn & 0xff0) == 0x700)
660 { itype = CRISV32F_INSN_AND_B_R; goto extract_sfmt_and_b_r; }
661 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
663 if ((base_insn & 0xff0) == 0x710)
664 { itype = CRISV32F_INSN_AND_W_R; goto extract_sfmt_and_w_r; }
665 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
667 if ((base_insn & 0xff0) == 0x720)
668 { itype = CRISV32F_INSN_AND_D_R; goto extract_sfmt_and_d_r; }
669 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
671 if ((base_insn & 0xff0) == 0x730)
672 { itype = CRISV32F_INSN_LZ; goto extract_sfmt_movs_b_r; }
673 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
675 if ((base_insn & 0xff0) == 0x740)
676 { itype = CRISV32F_INSN_ORR_B_R; goto extract_sfmt_and_b_r; }
677 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
679 if ((base_insn & 0xff0) == 0x750)
680 { itype = CRISV32F_INSN_ORR_W_R; goto extract_sfmt_and_w_r; }
681 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
683 if ((base_insn & 0xff0) == 0x760)
684 { itype = CRISV32F_INSN_ORR_D_R; goto extract_sfmt_and_d_r; }
685 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
687 if ((base_insn & 0xff0) == 0x770)
688 { itype = CRISV32F_INSN_SWAP; goto extract_sfmt_swap; }
689 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
691 if ((base_insn & 0xff0) == 0x780)
692 { itype = CRISV32F_INSN_ASRR_B_R; goto extract_sfmt_asrr_b_r; }
693 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
695 if ((base_insn & 0xff0) == 0x790)
696 { itype = CRISV32F_INSN_ASRR_W_R; goto extract_sfmt_asrr_b_r; }
697 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
699 if ((base_insn & 0xff0) == 0x7a0)
700 { itype = CRISV32F_INSN_ASRR_D_R; goto extract_sfmt_and_d_r; }
701 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
703 if ((base_insn & 0xff0) == 0x7b0)
704 { itype = CRISV32F_INSN_XOR; goto extract_sfmt_dstep; }
705 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
707 if ((base_insn & 0xff0) == 0x7c0)
708 { itype = CRISV32F_INSN_LSRR_B_R; goto extract_sfmt_lsrr_b_r; }
709 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
711 if ((base_insn & 0xff0) == 0x7d0)
712 { itype = CRISV32F_INSN_LSRR_W_R; goto extract_sfmt_lsrr_b_r; }
713 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
715 if ((base_insn & 0xff0) == 0x7e0)
716 { itype = CRISV32F_INSN_LSRR_D_R; goto extract_sfmt_lsrr_d_r; }
717 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
719 if ((base_insn & 0xff0) == 0x7f0)
720 { itype = CRISV32F_INSN_MCP; goto extract_sfmt_mcp; }
721 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
723 if ((base_insn & 0xbf0) == 0x800)
724 { itype = CRISV32F_INSN_ADDU_M_B_M; goto extract_sfmt_adds_m_b_m; }
725 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
727 if ((base_insn & 0xbf0) == 0x810)
728 { itype = CRISV32F_INSN_ADDU_M_W_M; goto extract_sfmt_adds_m_w_m; }
729 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
731 if ((base_insn & 0xbf0) == 0x820)
732 { itype = CRISV32F_INSN_ADDS_M_B_M; goto extract_sfmt_adds_m_b_m; }
733 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
735 if ((base_insn & 0xbf0) == 0x830)
736 { itype = CRISV32F_INSN_ADDS_M_W_M; goto extract_sfmt_adds_m_w_m; }
737 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
739 if ((base_insn & 0xbf0) == 0x840)
740 { itype = CRISV32F_INSN_MOVU_M_B_M; goto extract_sfmt_movs_m_b_m; }
741 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
743 if ((base_insn & 0xbf0) == 0x850)
744 { itype = CRISV32F_INSN_MOVU_M_W_M; goto extract_sfmt_movs_m_w_m; }
745 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
747 if ((base_insn & 0xbf0) == 0x860)
748 { itype = CRISV32F_INSN_MOVS_M_B_M; goto extract_sfmt_movs_m_b_m; }
749 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
751 if ((base_insn & 0xbf0) == 0x870)
752 { itype = CRISV32F_INSN_MOVS_M_W_M; goto extract_sfmt_movs_m_w_m; }
753 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
755 if ((base_insn & 0xbf0) == 0x880)
756 { itype = CRISV32F_INSN_SUBU_M_B_M; goto extract_sfmt_adds_m_b_m; }
757 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
759 if ((base_insn & 0xbf0) == 0x890)
760 { itype = CRISV32F_INSN_SUBU_M_W_M; goto extract_sfmt_adds_m_w_m; }
761 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
763 if ((base_insn & 0xbf0) == 0x8a0)
764 { itype = CRISV32F_INSN_SUBS_M_B_M; goto extract_sfmt_adds_m_b_m; }
765 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
767 if ((base_insn & 0xbf0) == 0x8b0)
768 { itype = CRISV32F_INSN_SUBS_M_W_M; goto extract_sfmt_adds_m_w_m; }
769 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
771 if ((base_insn & 0xbf0) == 0x8c0)
772 { itype = CRISV32F_INSN_CMPU_M_B_M; goto extract_sfmt_cmp_m_b_m; }
773 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
775 if ((base_insn & 0xbf0) == 0x8d0)
776 { itype = CRISV32F_INSN_CMPU_M_W_M; goto extract_sfmt_cmp_m_w_m; }
777 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
779 if ((base_insn & 0xbf0) == 0x8e0)
780 { itype = CRISV32F_INSN_CMPS_M_B_M; goto extract_sfmt_cmp_m_b_m; }
781 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
783 if ((base_insn & 0xbf0) == 0x8f0)
784 { itype = CRISV32F_INSN_CMPS_M_W_M; goto extract_sfmt_cmp_m_w_m; }
785 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
787 if ((base_insn & 0xff0) == 0x900)
788 { itype = CRISV32F_INSN_MULU_B; goto extract_sfmt_muls_b; }
789 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
791 if ((base_insn & 0xff0) == 0x910)
792 { itype = CRISV32F_INSN_MULU_W; goto extract_sfmt_muls_b; }
793 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
795 if ((base_insn & 0xff0) == 0x920)
796 { itype = CRISV32F_INSN_MULU_D; goto extract_sfmt_muls_b; }
797 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
800 unsigned int val = (((insn >> 12) & (15 << 0)));
804 if ((base_insn & 0xffff) == 0x2930)
805 { itype = CRISV32F_INSN_RFE; goto extract_sfmt_rfe; }
806 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
808 if ((base_insn & 0xffff) == 0x3930)
809 { itype = CRISV32F_INSN_SFE; goto extract_sfmt_sfe; }
810 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
812 if ((base_insn & 0xffff) == 0x4930)
813 { itype = CRISV32F_INSN_RFG; goto extract_sfmt_rfg; }
814 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
816 if ((base_insn & 0xffff) == 0x5930)
817 { itype = CRISV32F_INSN_RFN; goto extract_sfmt_rfn; }
818 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
820 if ((base_insn & 0xfff0) == 0xe930)
821 { itype = CRISV32F_INSN_BREAK; goto extract_sfmt_break; }
822 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
824 if ((base_insn & 0xffff) == 0xf930)
825 { itype = CRISV32F_INSN_HALT; goto extract_sfmt_halt; }
826 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
827 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
831 if ((base_insn & 0xbf0) == 0x940)
832 { itype = CRISV32F_INSN_ADDO_M_B_M; goto extract_sfmt_addo_m_b_m; }
833 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
835 if ((base_insn & 0xbf0) == 0x950)
836 { itype = CRISV32F_INSN_ADDO_M_W_M; goto extract_sfmt_addo_m_w_m; }
837 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
839 if ((base_insn & 0xbf0) == 0x960)
840 { itype = CRISV32F_INSN_ADDO_M_D_M; goto extract_sfmt_addo_m_d_m; }
841 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
843 if ((base_insn & 0xff0) == 0x970)
844 { itype = CRISV32F_INSN_LAPCQ; goto extract_sfmt_lapcq; }
845 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
847 if ((base_insn & 0xbf0) == 0x9a0)
848 { itype = CRISV32F_INSN_ADDC_M; goto extract_sfmt_addc_m; }
849 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
851 if ((base_insn & 0xff0) == 0x9b0)
852 { itype = CRISV32F_INSN_JAS_R; goto extract_sfmt_jas_r; }
853 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
855 if ((base_insn & 0xfff) == 0x9f0)
856 { itype = CRISV32F_INSN_JUMP_P; goto extract_sfmt_jump_p; }
857 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
859 if ((base_insn & 0xbf0) == 0xa00)
860 { itype = CRISV32F_INSN_ADD_M_B_M; goto extract_sfmt_add_m_b_m; }
861 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
863 if ((base_insn & 0xbf0) == 0xa10)
864 { itype = CRISV32F_INSN_ADD_M_W_M; goto extract_sfmt_add_m_w_m; }
865 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
867 if ((base_insn & 0xbf0) == 0xa20)
868 { itype = CRISV32F_INSN_ADD_M_D_M; goto extract_sfmt_add_m_d_m; }
869 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
871 if ((base_insn & 0xbf0) == 0xa30)
872 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
873 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
875 if ((base_insn & 0xbf0) == 0xa40)
876 { itype = CRISV32F_INSN_MOVE_M_B_M; goto extract_sfmt_move_m_b_m; }
877 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
879 if ((base_insn & 0xbf0) == 0xa50)
880 { itype = CRISV32F_INSN_MOVE_M_W_M; goto extract_sfmt_move_m_w_m; }
881 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
883 if ((base_insn & 0xbf0) == 0xa60)
884 { itype = CRISV32F_INSN_MOVE_M_D_M; goto extract_sfmt_move_m_d_m; }
885 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
886 case 167 : /* fall through */
888 if ((base_insn & 0xbf0) == 0xa70)
889 { itype = CRISV32F_INSN_MOVE_SPR_MV32; goto extract_sfmt_move_spr_mv32; }
890 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
892 if ((base_insn & 0xbf0) == 0xa80)
893 { itype = CRISV32F_INSN_SUB_M_B_M; goto extract_sfmt_add_m_b_m; }
894 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
896 if ((base_insn & 0xbf0) == 0xa90)
897 { itype = CRISV32F_INSN_SUB_M_W_M; goto extract_sfmt_add_m_w_m; }
898 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
900 if ((base_insn & 0xbf0) == 0xaa0)
901 { itype = CRISV32F_INSN_SUB_M_D_M; goto extract_sfmt_add_m_d_m; }
902 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
905 unsigned int val = (((insn >> 12) & (1 << 0)));
909 if ((base_insn & 0xfff0) == 0xab0)
910 { itype = CRISV32F_INSN_FIDXD; goto extract_sfmt_fidxi; }
911 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
913 if ((base_insn & 0xfff0) == 0x1ab0)
914 { itype = CRISV32F_INSN_FTAGD; goto extract_sfmt_fidxi; }
915 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
916 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
920 if ((base_insn & 0xbf0) == 0xac0)
921 { itype = CRISV32F_INSN_CMP_M_B_M; goto extract_sfmt_cmp_m_b_m; }
922 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
924 if ((base_insn & 0xbf0) == 0xad0)
925 { itype = CRISV32F_INSN_CMP_M_W_M; goto extract_sfmt_cmp_m_w_m; }
926 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
928 if ((base_insn & 0xbf0) == 0xae0)
929 { itype = CRISV32F_INSN_CMP_M_D_M; goto extract_sfmt_cmp_m_d_m; }
930 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
932 if ((base_insn & 0xbf0) == 0xb00)
933 { itype = CRISV32F_INSN_AND_M_B_M; goto extract_sfmt_and_m_b_m; }
934 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
936 if ((base_insn & 0xbf0) == 0xb10)
937 { itype = CRISV32F_INSN_AND_M_W_M; goto extract_sfmt_and_m_w_m; }
938 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
940 if ((base_insn & 0xbf0) == 0xb20)
941 { itype = CRISV32F_INSN_AND_M_D_M; goto extract_sfmt_and_m_d_m; }
942 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
944 if ((base_insn & 0xff0) == 0xb30)
945 { itype = CRISV32F_INSN_JASC_R; goto extract_sfmt_jasc_r; }
946 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
948 if ((base_insn & 0xbf0) == 0xb40)
949 { itype = CRISV32F_INSN_OR_M_B_M; goto extract_sfmt_and_m_b_m; }
950 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
952 if ((base_insn & 0xbf0) == 0xb50)
953 { itype = CRISV32F_INSN_OR_M_W_M; goto extract_sfmt_and_m_w_m; }
954 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
956 if ((base_insn & 0xbf0) == 0xb60)
957 { itype = CRISV32F_INSN_OR_M_D_M; goto extract_sfmt_and_m_d_m; }
958 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
960 if ((base_insn & 0xff0) == 0xb70)
961 { itype = CRISV32F_INSN_MOVE_R_SS; goto extract_sfmt_move_r_ss; }
962 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
963 case 184 : /* fall through */
965 if ((base_insn & 0xfbf0) == 0xb80)
966 { itype = CRISV32F_INSN_TEST_M_B_M; goto extract_sfmt_test_m_b_m; }
967 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
968 case 185 : /* fall through */
970 if ((base_insn & 0xfbf0) == 0xb90)
971 { itype = CRISV32F_INSN_TEST_M_W_M; goto extract_sfmt_test_m_w_m; }
972 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
973 case 186 : /* fall through */
975 if ((base_insn & 0xfbf0) == 0xba0)
976 { itype = CRISV32F_INSN_TEST_M_D_M; goto extract_sfmt_test_m_d_m; }
977 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
978 case 187 : /* fall through */
980 if ((base_insn & 0xbf0) == 0xbb0)
981 { itype = CRISV32F_INSN_MOVEM_M_R_V32; goto extract_sfmt_movem_m_r_v32; }
982 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
983 case 188 : /* fall through */
985 if ((base_insn & 0xbf0) == 0xbc0)
986 { itype = CRISV32F_INSN_MOVE_R_M_B_M; goto extract_sfmt_move_r_m_b_m; }
987 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
988 case 189 : /* fall through */
990 if ((base_insn & 0xbf0) == 0xbd0)
991 { itype = CRISV32F_INSN_MOVE_R_M_W_M; goto extract_sfmt_move_r_m_w_m; }
992 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
993 case 190 : /* fall through */
995 if ((base_insn & 0xbf0) == 0xbe0)
996 { itype = CRISV32F_INSN_MOVE_R_M_D_M; goto extract_sfmt_move_r_m_d_m; }
997 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
998 case 191 : /* fall through */
1000 if ((base_insn & 0xbf0) == 0xbf0)
1001 { itype = CRISV32F_INSN_MOVEM_R_M_V32; goto extract_sfmt_movem_r_m_v32; }
1002 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1005 unsigned int val = (((insn >> 0) & (15 << 0)));
1008 case 0 : /* fall through */
1009 case 1 : /* fall through */
1010 case 2 : /* fall through */
1011 case 3 : /* fall through */
1012 case 4 : /* fall through */
1013 case 5 : /* fall through */
1014 case 6 : /* fall through */
1015 case 7 : /* fall through */
1016 case 8 : /* fall through */
1017 case 9 : /* fall through */
1018 case 10 : /* fall through */
1019 case 11 : /* fall through */
1020 case 12 : /* fall through */
1021 case 13 : /* fall through */
1023 if ((base_insn & 0xbf0) == 0x800)
1024 { itype = CRISV32F_INSN_ADDU_M_B_M; goto extract_sfmt_adds_m_b_m; }
1025 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1027 if ((base_insn & 0xfff) == 0xc0f)
1028 { itype = CRISV32F_INSN_ADDUCBR; goto extract_sfmt_addscbr; }
1029 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1030 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1035 unsigned int val = (((insn >> 0) & (15 << 0)));
1038 case 0 : /* fall through */
1039 case 1 : /* fall through */
1040 case 2 : /* fall through */
1041 case 3 : /* fall through */
1042 case 4 : /* fall through */
1043 case 5 : /* fall through */
1044 case 6 : /* fall through */
1045 case 7 : /* fall through */
1046 case 8 : /* fall through */
1047 case 9 : /* fall through */
1048 case 10 : /* fall through */
1049 case 11 : /* fall through */
1050 case 12 : /* fall through */
1051 case 13 : /* fall through */
1053 if ((base_insn & 0xbf0) == 0x810)
1054 { itype = CRISV32F_INSN_ADDU_M_W_M; goto extract_sfmt_adds_m_w_m; }
1055 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1057 if ((base_insn & 0xfff) == 0xc1f)
1058 { itype = CRISV32F_INSN_ADDUCWR; goto extract_sfmt_addscwr; }
1059 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1060 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1065 unsigned int val = (((insn >> 0) & (15 << 0)));
1068 case 0 : /* fall through */
1069 case 1 : /* fall through */
1070 case 2 : /* fall through */
1071 case 3 : /* fall through */
1072 case 4 : /* fall through */
1073 case 5 : /* fall through */
1074 case 6 : /* fall through */
1075 case 7 : /* fall through */
1076 case 8 : /* fall through */
1077 case 9 : /* fall through */
1078 case 10 : /* fall through */
1079 case 11 : /* fall through */
1080 case 12 : /* fall through */
1081 case 13 : /* fall through */
1083 if ((base_insn & 0xbf0) == 0x820)
1084 { itype = CRISV32F_INSN_ADDS_M_B_M; goto extract_sfmt_adds_m_b_m; }
1085 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1087 if ((base_insn & 0xfff) == 0xc2f)
1088 { itype = CRISV32F_INSN_ADDSCBR; goto extract_sfmt_addscbr; }
1089 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1090 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1095 unsigned int val = (((insn >> 0) & (15 << 0)));
1098 case 0 : /* fall through */
1099 case 1 : /* fall through */
1100 case 2 : /* fall through */
1101 case 3 : /* fall through */
1102 case 4 : /* fall through */
1103 case 5 : /* fall through */
1104 case 6 : /* fall through */
1105 case 7 : /* fall through */
1106 case 8 : /* fall through */
1107 case 9 : /* fall through */
1108 case 10 : /* fall through */
1109 case 11 : /* fall through */
1110 case 12 : /* fall through */
1111 case 13 : /* fall through */
1113 if ((base_insn & 0xbf0) == 0x830)
1114 { itype = CRISV32F_INSN_ADDS_M_W_M; goto extract_sfmt_adds_m_w_m; }
1115 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1117 if ((base_insn & 0xfff) == 0xc3f)
1118 { itype = CRISV32F_INSN_ADDSCWR; goto extract_sfmt_addscwr; }
1119 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1120 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1125 unsigned int val = (((insn >> 0) & (15 << 0)));
1128 case 0 : /* fall through */
1129 case 1 : /* fall through */
1130 case 2 : /* fall through */
1131 case 3 : /* fall through */
1132 case 4 : /* fall through */
1133 case 5 : /* fall through */
1134 case 6 : /* fall through */
1135 case 7 : /* fall through */
1136 case 8 : /* fall through */
1137 case 9 : /* fall through */
1138 case 10 : /* fall through */
1139 case 11 : /* fall through */
1140 case 12 : /* fall through */
1141 case 13 : /* fall through */
1143 if ((base_insn & 0xbf0) == 0x840)
1144 { itype = CRISV32F_INSN_MOVU_M_B_M; goto extract_sfmt_movs_m_b_m; }
1145 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1147 if ((base_insn & 0xfff) == 0xc4f)
1148 { itype = CRISV32F_INSN_MOVUCBR; goto extract_sfmt_movucbr; }
1149 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1150 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1155 unsigned int val = (((insn >> 0) & (15 << 0)));
1158 case 0 : /* fall through */
1159 case 1 : /* fall through */
1160 case 2 : /* fall through */
1161 case 3 : /* fall through */
1162 case 4 : /* fall through */
1163 case 5 : /* fall through */
1164 case 6 : /* fall through */
1165 case 7 : /* fall through */
1166 case 8 : /* fall through */
1167 case 9 : /* fall through */
1168 case 10 : /* fall through */
1169 case 11 : /* fall through */
1170 case 12 : /* fall through */
1171 case 13 : /* fall through */
1173 if ((base_insn & 0xbf0) == 0x850)
1174 { itype = CRISV32F_INSN_MOVU_M_W_M; goto extract_sfmt_movs_m_w_m; }
1175 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1177 if ((base_insn & 0xfff) == 0xc5f)
1178 { itype = CRISV32F_INSN_MOVUCWR; goto extract_sfmt_movucwr; }
1179 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1180 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1185 unsigned int val = (((insn >> 0) & (15 << 0)));
1188 case 0 : /* fall through */
1189 case 1 : /* fall through */
1190 case 2 : /* fall through */
1191 case 3 : /* fall through */
1192 case 4 : /* fall through */
1193 case 5 : /* fall through */
1194 case 6 : /* fall through */
1195 case 7 : /* fall through */
1196 case 8 : /* fall through */
1197 case 9 : /* fall through */
1198 case 10 : /* fall through */
1199 case 11 : /* fall through */
1200 case 12 : /* fall through */
1201 case 13 : /* fall through */
1203 if ((base_insn & 0xbf0) == 0x860)
1204 { itype = CRISV32F_INSN_MOVS_M_B_M; goto extract_sfmt_movs_m_b_m; }
1205 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1207 if ((base_insn & 0xfff) == 0xc6f)
1208 { itype = CRISV32F_INSN_MOVSCBR; goto extract_sfmt_movscbr; }
1209 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1210 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1215 unsigned int val = (((insn >> 0) & (15 << 0)));
1218 case 0 : /* fall through */
1219 case 1 : /* fall through */
1220 case 2 : /* fall through */
1221 case 3 : /* fall through */
1222 case 4 : /* fall through */
1223 case 5 : /* fall through */
1224 case 6 : /* fall through */
1225 case 7 : /* fall through */
1226 case 8 : /* fall through */
1227 case 9 : /* fall through */
1228 case 10 : /* fall through */
1229 case 11 : /* fall through */
1230 case 12 : /* fall through */
1231 case 13 : /* fall through */
1233 if ((base_insn & 0xbf0) == 0x870)
1234 { itype = CRISV32F_INSN_MOVS_M_W_M; goto extract_sfmt_movs_m_w_m; }
1235 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1237 if ((base_insn & 0xfff) == 0xc7f)
1238 { itype = CRISV32F_INSN_MOVSCWR; goto extract_sfmt_movscwr; }
1239 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1240 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1245 unsigned int val = (((insn >> 0) & (15 << 0)));
1248 case 0 : /* fall through */
1249 case 1 : /* fall through */
1250 case 2 : /* fall through */
1251 case 3 : /* fall through */
1252 case 4 : /* fall through */
1253 case 5 : /* fall through */
1254 case 6 : /* fall through */
1255 case 7 : /* fall through */
1256 case 8 : /* fall through */
1257 case 9 : /* fall through */
1258 case 10 : /* fall through */
1259 case 11 : /* fall through */
1260 case 12 : /* fall through */
1261 case 13 : /* fall through */
1263 if ((base_insn & 0xbf0) == 0x880)
1264 { itype = CRISV32F_INSN_SUBU_M_B_M; goto extract_sfmt_adds_m_b_m; }
1265 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1267 if ((base_insn & 0xfff) == 0xc8f)
1268 { itype = CRISV32F_INSN_SUBUCBR; goto extract_sfmt_addscbr; }
1269 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1270 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1275 unsigned int val = (((insn >> 0) & (15 << 0)));
1278 case 0 : /* fall through */
1279 case 1 : /* fall through */
1280 case 2 : /* fall through */
1281 case 3 : /* fall through */
1282 case 4 : /* fall through */
1283 case 5 : /* fall through */
1284 case 6 : /* fall through */
1285 case 7 : /* fall through */
1286 case 8 : /* fall through */
1287 case 9 : /* fall through */
1288 case 10 : /* fall through */
1289 case 11 : /* fall through */
1290 case 12 : /* fall through */
1291 case 13 : /* fall through */
1293 if ((base_insn & 0xbf0) == 0x890)
1294 { itype = CRISV32F_INSN_SUBU_M_W_M; goto extract_sfmt_adds_m_w_m; }
1295 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1297 if ((base_insn & 0xfff) == 0xc9f)
1298 { itype = CRISV32F_INSN_SUBUCWR; goto extract_sfmt_addscwr; }
1299 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1300 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1305 unsigned int val = (((insn >> 0) & (15 << 0)));
1308 case 0 : /* fall through */
1309 case 1 : /* fall through */
1310 case 2 : /* fall through */
1311 case 3 : /* fall through */
1312 case 4 : /* fall through */
1313 case 5 : /* fall through */
1314 case 6 : /* fall through */
1315 case 7 : /* fall through */
1316 case 8 : /* fall through */
1317 case 9 : /* fall through */
1318 case 10 : /* fall through */
1319 case 11 : /* fall through */
1320 case 12 : /* fall through */
1321 case 13 : /* fall through */
1323 if ((base_insn & 0xbf0) == 0x8a0)
1324 { itype = CRISV32F_INSN_SUBS_M_B_M; goto extract_sfmt_adds_m_b_m; }
1325 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1327 if ((base_insn & 0xfff) == 0xcaf)
1328 { itype = CRISV32F_INSN_SUBSCBR; goto extract_sfmt_addscbr; }
1329 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1330 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1335 unsigned int val = (((insn >> 0) & (15 << 0)));
1338 case 0 : /* fall through */
1339 case 1 : /* fall through */
1340 case 2 : /* fall through */
1341 case 3 : /* fall through */
1342 case 4 : /* fall through */
1343 case 5 : /* fall through */
1344 case 6 : /* fall through */
1345 case 7 : /* fall through */
1346 case 8 : /* fall through */
1347 case 9 : /* fall through */
1348 case 10 : /* fall through */
1349 case 11 : /* fall through */
1350 case 12 : /* fall through */
1351 case 13 : /* fall through */
1353 if ((base_insn & 0xbf0) == 0x8b0)
1354 { itype = CRISV32F_INSN_SUBS_M_W_M; goto extract_sfmt_adds_m_w_m; }
1355 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1357 if ((base_insn & 0xfff) == 0xcbf)
1358 { itype = CRISV32F_INSN_SUBSCWR; goto extract_sfmt_addscwr; }
1359 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1360 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1365 unsigned int val = (((insn >> 0) & (15 << 0)));
1368 case 0 : /* fall through */
1369 case 1 : /* fall through */
1370 case 2 : /* fall through */
1371 case 3 : /* fall through */
1372 case 4 : /* fall through */
1373 case 5 : /* fall through */
1374 case 6 : /* fall through */
1375 case 7 : /* fall through */
1376 case 8 : /* fall through */
1377 case 9 : /* fall through */
1378 case 10 : /* fall through */
1379 case 11 : /* fall through */
1380 case 12 : /* fall through */
1381 case 13 : /* fall through */
1383 if ((base_insn & 0xbf0) == 0x8c0)
1384 { itype = CRISV32F_INSN_CMPU_M_B_M; goto extract_sfmt_cmp_m_b_m; }
1385 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1387 if ((base_insn & 0xfff) == 0xccf)
1388 { itype = CRISV32F_INSN_CMPUCBR; goto extract_sfmt_cmpucbr; }
1389 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1390 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1395 unsigned int val = (((insn >> 0) & (15 << 0)));
1398 case 0 : /* fall through */
1399 case 1 : /* fall through */
1400 case 2 : /* fall through */
1401 case 3 : /* fall through */
1402 case 4 : /* fall through */
1403 case 5 : /* fall through */
1404 case 6 : /* fall through */
1405 case 7 : /* fall through */
1406 case 8 : /* fall through */
1407 case 9 : /* fall through */
1408 case 10 : /* fall through */
1409 case 11 : /* fall through */
1410 case 12 : /* fall through */
1411 case 13 : /* fall through */
1413 if ((base_insn & 0xbf0) == 0x8d0)
1414 { itype = CRISV32F_INSN_CMPU_M_W_M; goto extract_sfmt_cmp_m_w_m; }
1415 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1417 if ((base_insn & 0xfff) == 0xcdf)
1418 { itype = CRISV32F_INSN_CMPUCWR; goto extract_sfmt_cmpucwr; }
1419 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1420 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1425 unsigned int val = (((insn >> 0) & (15 << 0)));
1428 case 0 : /* fall through */
1429 case 1 : /* fall through */
1430 case 2 : /* fall through */
1431 case 3 : /* fall through */
1432 case 4 : /* fall through */
1433 case 5 : /* fall through */
1434 case 6 : /* fall through */
1435 case 7 : /* fall through */
1436 case 8 : /* fall through */
1437 case 9 : /* fall through */
1438 case 10 : /* fall through */
1439 case 11 : /* fall through */
1440 case 12 : /* fall through */
1441 case 13 : /* fall through */
1443 if ((base_insn & 0xbf0) == 0x8e0)
1444 { itype = CRISV32F_INSN_CMPS_M_B_M; goto extract_sfmt_cmp_m_b_m; }
1445 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1447 if ((base_insn & 0xfff) == 0xcef)
1448 { itype = CRISV32F_INSN_CMPSCBR; goto extract_sfmt_cmpcbr; }
1449 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1450 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1455 unsigned int val = (((insn >> 0) & (15 << 0)));
1458 case 0 : /* fall through */
1459 case 1 : /* fall through */
1460 case 2 : /* fall through */
1461 case 3 : /* fall through */
1462 case 4 : /* fall through */
1463 case 5 : /* fall through */
1464 case 6 : /* fall through */
1465 case 7 : /* fall through */
1466 case 8 : /* fall through */
1467 case 9 : /* fall through */
1468 case 10 : /* fall through */
1469 case 11 : /* fall through */
1470 case 12 : /* fall through */
1471 case 13 : /* fall through */
1473 if ((base_insn & 0xbf0) == 0x8f0)
1474 { itype = CRISV32F_INSN_CMPS_M_W_M; goto extract_sfmt_cmp_m_w_m; }
1475 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1477 if ((base_insn & 0xfff) == 0xcff)
1478 { itype = CRISV32F_INSN_CMPSCWR; goto extract_sfmt_cmpcwr; }
1479 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1480 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1484 if ((base_insn & 0xff0) == 0xd00)
1485 { itype = CRISV32F_INSN_MULS_B; goto extract_sfmt_muls_b; }
1486 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1488 if ((base_insn & 0xff0) == 0xd10)
1489 { itype = CRISV32F_INSN_MULS_W; goto extract_sfmt_muls_b; }
1490 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1492 if ((base_insn & 0xff0) == 0xd20)
1493 { itype = CRISV32F_INSN_MULS_D; goto extract_sfmt_muls_b; }
1494 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1497 unsigned int val = (((insn >> 12) & (1 << 0)));
1501 if ((base_insn & 0xfff0) == 0xd30)
1502 { itype = CRISV32F_INSN_FIDXI; goto extract_sfmt_fidxi; }
1503 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1505 if ((base_insn & 0xfff0) == 0x1d30)
1506 { itype = CRISV32F_INSN_FTAGI; goto extract_sfmt_fidxi; }
1507 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1508 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1513 unsigned int val = (((insn >> 0) & (15 << 0)));
1516 case 0 : /* fall through */
1517 case 1 : /* fall through */
1518 case 2 : /* fall through */
1519 case 3 : /* fall through */
1520 case 4 : /* fall through */
1521 case 5 : /* fall through */
1522 case 6 : /* fall through */
1523 case 7 : /* fall through */
1524 case 8 : /* fall through */
1525 case 9 : /* fall through */
1526 case 10 : /* fall through */
1527 case 11 : /* fall through */
1528 case 12 : /* fall through */
1529 case 13 : /* fall through */
1531 if ((base_insn & 0xbf0) == 0x940)
1532 { itype = CRISV32F_INSN_ADDO_M_B_M; goto extract_sfmt_addo_m_b_m; }
1533 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1535 if ((base_insn & 0xfff) == 0xd4f)
1536 { itype = CRISV32F_INSN_ADDO_CB; goto extract_sfmt_addo_cb; }
1537 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1538 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1543 unsigned int val = (((insn >> 0) & (15 << 0)));
1546 case 0 : /* fall through */
1547 case 1 : /* fall through */
1548 case 2 : /* fall through */
1549 case 3 : /* fall through */
1550 case 4 : /* fall through */
1551 case 5 : /* fall through */
1552 case 6 : /* fall through */
1553 case 7 : /* fall through */
1554 case 8 : /* fall through */
1555 case 9 : /* fall through */
1556 case 10 : /* fall through */
1557 case 11 : /* fall through */
1558 case 12 : /* fall through */
1559 case 13 : /* fall through */
1561 if ((base_insn & 0xbf0) == 0x950)
1562 { itype = CRISV32F_INSN_ADDO_M_W_M; goto extract_sfmt_addo_m_w_m; }
1563 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1565 if ((base_insn & 0xfff) == 0xd5f)
1566 { itype = CRISV32F_INSN_ADDO_CW; goto extract_sfmt_addo_cw; }
1567 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1568 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1573 unsigned int val = (((insn >> 0) & (15 << 0)));
1576 case 0 : /* fall through */
1577 case 1 : /* fall through */
1578 case 2 : /* fall through */
1579 case 3 : /* fall through */
1580 case 4 : /* fall through */
1581 case 5 : /* fall through */
1582 case 6 : /* fall through */
1583 case 7 : /* fall through */
1584 case 8 : /* fall through */
1585 case 9 : /* fall through */
1586 case 10 : /* fall through */
1587 case 11 : /* fall through */
1588 case 12 : /* fall through */
1589 case 13 : /* fall through */
1591 if ((base_insn & 0xbf0) == 0x960)
1592 { itype = CRISV32F_INSN_ADDO_M_D_M; goto extract_sfmt_addo_m_d_m; }
1593 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1595 if ((base_insn & 0xfff) == 0xd6f)
1596 { itype = CRISV32F_INSN_ADDO_CD; goto extract_sfmt_addo_cd; }
1597 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1598 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1602 if ((base_insn & 0xfff) == 0xd7f)
1603 { itype = CRISV32F_INSN_LAPC_D; goto extract_sfmt_lapc_d; }
1604 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1607 unsigned int val = (((insn >> 0) & (15 << 0)));
1610 case 0 : /* fall through */
1611 case 1 : /* fall through */
1612 case 2 : /* fall through */
1613 case 3 : /* fall through */
1614 case 4 : /* fall through */
1615 case 5 : /* fall through */
1616 case 6 : /* fall through */
1617 case 7 : /* fall through */
1618 case 8 : /* fall through */
1619 case 9 : /* fall through */
1620 case 10 : /* fall through */
1621 case 11 : /* fall through */
1622 case 12 : /* fall through */
1623 case 13 : /* fall through */
1625 if ((base_insn & 0xbf0) == 0x9a0)
1626 { itype = CRISV32F_INSN_ADDC_M; goto extract_sfmt_addc_m; }
1627 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1629 if ((base_insn & 0xfff) == 0xdaf)
1630 { itype = CRISV32F_INSN_ADDC_C; goto extract_sfmt_addcdr; }
1631 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1632 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1636 if ((base_insn & 0xfff) == 0xdbf)
1637 { itype = CRISV32F_INSN_JAS_C; goto extract_sfmt_jas_c; }
1638 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1640 if ((base_insn & 0xfff) == 0xdcf)
1641 { itype = CRISV32F_INSN_BOUND_CB; goto extract_sfmt_bound_cb; }
1642 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1644 if ((base_insn & 0xfff) == 0xddf)
1645 { itype = CRISV32F_INSN_BOUND_CW; goto extract_sfmt_bound_cw; }
1646 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1648 if ((base_insn & 0xfff) == 0xdef)
1649 { itype = CRISV32F_INSN_BOUND_CD; goto extract_sfmt_bound_cd; }
1650 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1653 unsigned int val = (((insn >> 12) & (15 << 0)));
1656 case 0 : /* fall through */
1657 case 1 : /* fall through */
1658 case 2 : /* fall through */
1659 case 3 : /* fall through */
1660 case 4 : /* fall through */
1661 case 5 : /* fall through */
1662 case 6 : /* fall through */
1663 case 7 : /* fall through */
1664 case 8 : /* fall through */
1665 case 9 : /* fall through */
1666 case 10 : /* fall through */
1667 case 11 : /* fall through */
1668 case 12 : /* fall through */
1669 case 13 : /* fall through */
1671 if ((base_insn & 0xfff) == 0xdff)
1672 { itype = CRISV32F_INSN_BCC_W; goto extract_sfmt_bcc_w; }
1673 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1675 if ((base_insn & 0xffff) == 0xedff)
1676 { itype = CRISV32F_INSN_BA_W; goto extract_sfmt_ba_w; }
1677 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1678 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1683 unsigned int val = (((insn >> 0) & (15 << 0)));
1686 case 0 : /* fall through */
1687 case 1 : /* fall through */
1688 case 2 : /* fall through */
1689 case 3 : /* fall through */
1690 case 4 : /* fall through */
1691 case 5 : /* fall through */
1692 case 6 : /* fall through */
1693 case 7 : /* fall through */
1694 case 8 : /* fall through */
1695 case 9 : /* fall through */
1696 case 10 : /* fall through */
1697 case 11 : /* fall through */
1698 case 12 : /* fall through */
1699 case 13 : /* fall through */
1701 if ((base_insn & 0xbf0) == 0xa00)
1702 { itype = CRISV32F_INSN_ADD_M_B_M; goto extract_sfmt_add_m_b_m; }
1703 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1705 if ((base_insn & 0xfff) == 0xe0f)
1706 { itype = CRISV32F_INSN_ADDCBR; goto extract_sfmt_addcbr; }
1707 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1708 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1713 unsigned int val = (((insn >> 0) & (15 << 0)));
1716 case 0 : /* fall through */
1717 case 1 : /* fall through */
1718 case 2 : /* fall through */
1719 case 3 : /* fall through */
1720 case 4 : /* fall through */
1721 case 5 : /* fall through */
1722 case 6 : /* fall through */
1723 case 7 : /* fall through */
1724 case 8 : /* fall through */
1725 case 9 : /* fall through */
1726 case 10 : /* fall through */
1727 case 11 : /* fall through */
1728 case 12 : /* fall through */
1729 case 13 : /* fall through */
1731 if ((base_insn & 0xbf0) == 0xa10)
1732 { itype = CRISV32F_INSN_ADD_M_W_M; goto extract_sfmt_add_m_w_m; }
1733 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1735 if ((base_insn & 0xfff) == 0xe1f)
1736 { itype = CRISV32F_INSN_ADDCWR; goto extract_sfmt_addcwr; }
1737 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1738 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1743 unsigned int val = (((insn >> 0) & (15 << 0)));
1746 case 0 : /* fall through */
1747 case 1 : /* fall through */
1748 case 2 : /* fall through */
1749 case 3 : /* fall through */
1750 case 4 : /* fall through */
1751 case 5 : /* fall through */
1752 case 6 : /* fall through */
1753 case 7 : /* fall through */
1754 case 8 : /* fall through */
1755 case 9 : /* fall through */
1756 case 10 : /* fall through */
1757 case 11 : /* fall through */
1758 case 12 : /* fall through */
1759 case 13 : /* fall through */
1761 if ((base_insn & 0xbf0) == 0xa20)
1762 { itype = CRISV32F_INSN_ADD_M_D_M; goto extract_sfmt_add_m_d_m; }
1763 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1765 if ((base_insn & 0xfff) == 0xe2f)
1766 { itype = CRISV32F_INSN_ADDCDR; goto extract_sfmt_addcdr; }
1767 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1768 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1773 unsigned int val = (((insn >> 12) & (15 << 0)));
1778 unsigned int val = (((insn >> 0) & (15 << 0)));
1781 case 0 : /* fall through */
1782 case 1 : /* fall through */
1783 case 2 : /* fall through */
1784 case 3 : /* fall through */
1785 case 4 : /* fall through */
1786 case 5 : /* fall through */
1787 case 6 : /* fall through */
1788 case 7 : /* fall through */
1789 case 8 : /* fall through */
1790 case 9 : /* fall through */
1791 case 10 : /* fall through */
1792 case 11 : /* fall through */
1793 case 12 : /* fall through */
1794 case 13 : /* fall through */
1796 if ((base_insn & 0xbf0) == 0xa30)
1797 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
1798 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1800 if ((base_insn & 0xffff) == 0xe3f)
1801 { itype = CRISV32F_INSN_MOVE_C_SPRV32_P0; goto extract_sfmt_move_c_sprv32_p0; }
1802 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1803 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1808 unsigned int val = (((insn >> 0) & (15 << 0)));
1811 case 0 : /* fall through */
1812 case 1 : /* fall through */
1813 case 2 : /* fall through */
1814 case 3 : /* fall through */
1815 case 4 : /* fall through */
1816 case 5 : /* fall through */
1817 case 6 : /* fall through */
1818 case 7 : /* fall through */
1819 case 8 : /* fall through */
1820 case 9 : /* fall through */
1821 case 10 : /* fall through */
1822 case 11 : /* fall through */
1823 case 12 : /* fall through */
1824 case 13 : /* fall through */
1826 if ((base_insn & 0xbf0) == 0xa30)
1827 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
1828 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1830 if ((base_insn & 0xffff) == 0x1e3f)
1831 { itype = CRISV32F_INSN_MOVE_C_SPRV32_P1; goto extract_sfmt_move_c_sprv32_p0; }
1832 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1833 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1838 unsigned int val = (((insn >> 0) & (15 << 0)));
1841 case 0 : /* fall through */
1842 case 1 : /* fall through */
1843 case 2 : /* fall through */
1844 case 3 : /* fall through */
1845 case 4 : /* fall through */
1846 case 5 : /* fall through */
1847 case 6 : /* fall through */
1848 case 7 : /* fall through */
1849 case 8 : /* fall through */
1850 case 9 : /* fall through */
1851 case 10 : /* fall through */
1852 case 11 : /* fall through */
1853 case 12 : /* fall through */
1854 case 13 : /* fall through */
1856 if ((base_insn & 0xbf0) == 0xa30)
1857 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
1858 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1860 if ((base_insn & 0xffff) == 0x2e3f)
1861 { itype = CRISV32F_INSN_MOVE_C_SPRV32_P2; goto extract_sfmt_move_c_sprv32_p0; }
1862 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1863 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1868 unsigned int val = (((insn >> 0) & (15 << 0)));
1871 case 0 : /* fall through */
1872 case 1 : /* fall through */
1873 case 2 : /* fall through */
1874 case 3 : /* fall through */
1875 case 4 : /* fall through */
1876 case 5 : /* fall through */
1877 case 6 : /* fall through */
1878 case 7 : /* fall through */
1879 case 8 : /* fall through */
1880 case 9 : /* fall through */
1881 case 10 : /* fall through */
1882 case 11 : /* fall through */
1883 case 12 : /* fall through */
1884 case 13 : /* fall through */
1886 if ((base_insn & 0xbf0) == 0xa30)
1887 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
1888 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1890 if ((base_insn & 0xffff) == 0x3e3f)
1891 { itype = CRISV32F_INSN_MOVE_C_SPRV32_P3; goto extract_sfmt_move_c_sprv32_p0; }
1892 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1893 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1898 unsigned int val = (((insn >> 0) & (15 << 0)));
1901 case 0 : /* fall through */
1902 case 1 : /* fall through */
1903 case 2 : /* fall through */
1904 case 3 : /* fall through */
1905 case 4 : /* fall through */
1906 case 5 : /* fall through */
1907 case 6 : /* fall through */
1908 case 7 : /* fall through */
1909 case 8 : /* fall through */
1910 case 9 : /* fall through */
1911 case 10 : /* fall through */
1912 case 11 : /* fall through */
1913 case 12 : /* fall through */
1914 case 13 : /* fall through */
1916 if ((base_insn & 0xbf0) == 0xa30)
1917 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
1918 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1920 if ((base_insn & 0xffff) == 0x4e3f)
1921 { itype = CRISV32F_INSN_MOVE_C_SPRV32_P4; goto extract_sfmt_move_c_sprv32_p0; }
1922 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1923 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1928 unsigned int val = (((insn >> 0) & (15 << 0)));
1931 case 0 : /* fall through */
1932 case 1 : /* fall through */
1933 case 2 : /* fall through */
1934 case 3 : /* fall through */
1935 case 4 : /* fall through */
1936 case 5 : /* fall through */
1937 case 6 : /* fall through */
1938 case 7 : /* fall through */
1939 case 8 : /* fall through */
1940 case 9 : /* fall through */
1941 case 10 : /* fall through */
1942 case 11 : /* fall through */
1943 case 12 : /* fall through */
1944 case 13 : /* fall through */
1946 if ((base_insn & 0xbf0) == 0xa30)
1947 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
1948 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1950 if ((base_insn & 0xffff) == 0x5e3f)
1951 { itype = CRISV32F_INSN_MOVE_C_SPRV32_P5; goto extract_sfmt_move_c_sprv32_p0; }
1952 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1953 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1958 unsigned int val = (((insn >> 0) & (15 << 0)));
1961 case 0 : /* fall through */
1962 case 1 : /* fall through */
1963 case 2 : /* fall through */
1964 case 3 : /* fall through */
1965 case 4 : /* fall through */
1966 case 5 : /* fall through */
1967 case 6 : /* fall through */
1968 case 7 : /* fall through */
1969 case 8 : /* fall through */
1970 case 9 : /* fall through */
1971 case 10 : /* fall through */
1972 case 11 : /* fall through */
1973 case 12 : /* fall through */
1974 case 13 : /* fall through */
1976 if ((base_insn & 0xbf0) == 0xa30)
1977 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
1978 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1980 if ((base_insn & 0xffff) == 0x6e3f)
1981 { itype = CRISV32F_INSN_MOVE_C_SPRV32_P6; goto extract_sfmt_move_c_sprv32_p0; }
1982 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1983 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1988 unsigned int val = (((insn >> 0) & (15 << 0)));
1991 case 0 : /* fall through */
1992 case 1 : /* fall through */
1993 case 2 : /* fall through */
1994 case 3 : /* fall through */
1995 case 4 : /* fall through */
1996 case 5 : /* fall through */
1997 case 6 : /* fall through */
1998 case 7 : /* fall through */
1999 case 8 : /* fall through */
2000 case 9 : /* fall through */
2001 case 10 : /* fall through */
2002 case 11 : /* fall through */
2003 case 12 : /* fall through */
2004 case 13 : /* fall through */
2006 if ((base_insn & 0xbf0) == 0xa30)
2007 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
2008 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2010 if ((base_insn & 0xffff) == 0x7e3f)
2011 { itype = CRISV32F_INSN_MOVE_C_SPRV32_P7; goto extract_sfmt_move_c_sprv32_p0; }
2012 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2013 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2018 unsigned int val = (((insn >> 0) & (15 << 0)));
2021 case 0 : /* fall through */
2022 case 1 : /* fall through */
2023 case 2 : /* fall through */
2024 case 3 : /* fall through */
2025 case 4 : /* fall through */
2026 case 5 : /* fall through */
2027 case 6 : /* fall through */
2028 case 7 : /* fall through */
2029 case 8 : /* fall through */
2030 case 9 : /* fall through */
2031 case 10 : /* fall through */
2032 case 11 : /* fall through */
2033 case 12 : /* fall through */
2034 case 13 : /* fall through */
2036 if ((base_insn & 0xbf0) == 0xa30)
2037 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
2038 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2040 if ((base_insn & 0xffff) == 0x8e3f)
2041 { itype = CRISV32F_INSN_MOVE_C_SPRV32_P8; goto extract_sfmt_move_c_sprv32_p0; }
2042 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2043 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2048 unsigned int val = (((insn >> 0) & (15 << 0)));
2051 case 0 : /* fall through */
2052 case 1 : /* fall through */
2053 case 2 : /* fall through */
2054 case 3 : /* fall through */
2055 case 4 : /* fall through */
2056 case 5 : /* fall through */
2057 case 6 : /* fall through */
2058 case 7 : /* fall through */
2059 case 8 : /* fall through */
2060 case 9 : /* fall through */
2061 case 10 : /* fall through */
2062 case 11 : /* fall through */
2063 case 12 : /* fall through */
2064 case 13 : /* fall through */
2066 if ((base_insn & 0xbf0) == 0xa30)
2067 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
2068 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2070 if ((base_insn & 0xffff) == 0x9e3f)
2071 { itype = CRISV32F_INSN_MOVE_C_SPRV32_P9; goto extract_sfmt_move_c_sprv32_p0; }
2072 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2073 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2078 unsigned int val = (((insn >> 0) & (15 << 0)));
2081 case 0 : /* fall through */
2082 case 1 : /* fall through */
2083 case 2 : /* fall through */
2084 case 3 : /* fall through */
2085 case 4 : /* fall through */
2086 case 5 : /* fall through */
2087 case 6 : /* fall through */
2088 case 7 : /* fall through */
2089 case 8 : /* fall through */
2090 case 9 : /* fall through */
2091 case 10 : /* fall through */
2092 case 11 : /* fall through */
2093 case 12 : /* fall through */
2094 case 13 : /* fall through */
2096 if ((base_insn & 0xbf0) == 0xa30)
2097 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
2098 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2100 if ((base_insn & 0xffff) == 0xae3f)
2101 { itype = CRISV32F_INSN_MOVE_C_SPRV32_P10; goto extract_sfmt_move_c_sprv32_p0; }
2102 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2103 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2108 unsigned int val = (((insn >> 0) & (15 << 0)));
2111 case 0 : /* fall through */
2112 case 1 : /* fall through */
2113 case 2 : /* fall through */
2114 case 3 : /* fall through */
2115 case 4 : /* fall through */
2116 case 5 : /* fall through */
2117 case 6 : /* fall through */
2118 case 7 : /* fall through */
2119 case 8 : /* fall through */
2120 case 9 : /* fall through */
2121 case 10 : /* fall through */
2122 case 11 : /* fall through */
2123 case 12 : /* fall through */
2124 case 13 : /* fall through */
2126 if ((base_insn & 0xbf0) == 0xa30)
2127 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
2128 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2130 if ((base_insn & 0xffff) == 0xbe3f)
2131 { itype = CRISV32F_INSN_MOVE_C_SPRV32_P11; goto extract_sfmt_move_c_sprv32_p0; }
2132 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2133 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2138 unsigned int val = (((insn >> 0) & (15 << 0)));
2141 case 0 : /* fall through */
2142 case 1 : /* fall through */
2143 case 2 : /* fall through */
2144 case 3 : /* fall through */
2145 case 4 : /* fall through */
2146 case 5 : /* fall through */
2147 case 6 : /* fall through */
2148 case 7 : /* fall through */
2149 case 8 : /* fall through */
2150 case 9 : /* fall through */
2151 case 10 : /* fall through */
2152 case 11 : /* fall through */
2153 case 12 : /* fall through */
2154 case 13 : /* fall through */
2156 if ((base_insn & 0xbf0) == 0xa30)
2157 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
2158 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2160 if ((base_insn & 0xffff) == 0xce3f)
2161 { itype = CRISV32F_INSN_MOVE_C_SPRV32_P12; goto extract_sfmt_move_c_sprv32_p0; }
2162 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2163 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2168 unsigned int val = (((insn >> 0) & (15 << 0)));
2171 case 0 : /* fall through */
2172 case 1 : /* fall through */
2173 case 2 : /* fall through */
2174 case 3 : /* fall through */
2175 case 4 : /* fall through */
2176 case 5 : /* fall through */
2177 case 6 : /* fall through */
2178 case 7 : /* fall through */
2179 case 8 : /* fall through */
2180 case 9 : /* fall through */
2181 case 10 : /* fall through */
2182 case 11 : /* fall through */
2183 case 12 : /* fall through */
2184 case 13 : /* fall through */
2186 if ((base_insn & 0xbf0) == 0xa30)
2187 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
2188 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2190 if ((base_insn & 0xffff) == 0xde3f)
2191 { itype = CRISV32F_INSN_MOVE_C_SPRV32_P13; goto extract_sfmt_move_c_sprv32_p0; }
2192 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2193 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2198 unsigned int val = (((insn >> 0) & (15 << 0)));
2201 case 0 : /* fall through */
2202 case 1 : /* fall through */
2203 case 2 : /* fall through */
2204 case 3 : /* fall through */
2205 case 4 : /* fall through */
2206 case 5 : /* fall through */
2207 case 6 : /* fall through */
2208 case 7 : /* fall through */
2209 case 8 : /* fall through */
2210 case 9 : /* fall through */
2211 case 10 : /* fall through */
2212 case 11 : /* fall through */
2213 case 12 : /* fall through */
2214 case 13 : /* fall through */
2216 if ((base_insn & 0xbf0) == 0xa30)
2217 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
2218 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2220 if ((base_insn & 0xffff) == 0xee3f)
2221 { itype = CRISV32F_INSN_MOVE_C_SPRV32_P14; goto extract_sfmt_move_c_sprv32_p0; }
2222 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2223 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2228 unsigned int val = (((insn >> 0) & (15 << 0)));
2231 case 0 : /* fall through */
2232 case 1 : /* fall through */
2233 case 2 : /* fall through */
2234 case 3 : /* fall through */
2235 case 4 : /* fall through */
2236 case 5 : /* fall through */
2237 case 6 : /* fall through */
2238 case 7 : /* fall through */
2239 case 8 : /* fall through */
2240 case 9 : /* fall through */
2241 case 10 : /* fall through */
2242 case 11 : /* fall through */
2243 case 12 : /* fall through */
2244 case 13 : /* fall through */
2246 if ((base_insn & 0xbf0) == 0xa30)
2247 { itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32; }
2248 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2250 if ((base_insn & 0xffff) == 0xfe3f)
2251 { itype = CRISV32F_INSN_MOVE_C_SPRV32_P15; goto extract_sfmt_move_c_sprv32_p0; }
2252 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2253 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2256 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2261 unsigned int val = (((insn >> 0) & (15 << 0)));
2264 case 0 : /* fall through */
2265 case 1 : /* fall through */
2266 case 2 : /* fall through */
2267 case 3 : /* fall through */
2268 case 4 : /* fall through */
2269 case 5 : /* fall through */
2270 case 6 : /* fall through */
2271 case 7 : /* fall through */
2272 case 8 : /* fall through */
2273 case 9 : /* fall through */
2274 case 10 : /* fall through */
2275 case 11 : /* fall through */
2276 case 12 : /* fall through */
2277 case 13 : /* fall through */
2279 if ((base_insn & 0xbf0) == 0xa40)
2280 { itype = CRISV32F_INSN_MOVE_M_B_M; goto extract_sfmt_move_m_b_m; }
2281 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2283 if ((base_insn & 0xfff) == 0xe4f)
2284 { itype = CRISV32F_INSN_MOVECBR; goto extract_sfmt_movecbr; }
2285 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2286 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2291 unsigned int val = (((insn >> 0) & (15 << 0)));
2294 case 0 : /* fall through */
2295 case 1 : /* fall through */
2296 case 2 : /* fall through */
2297 case 3 : /* fall through */
2298 case 4 : /* fall through */
2299 case 5 : /* fall through */
2300 case 6 : /* fall through */
2301 case 7 : /* fall through */
2302 case 8 : /* fall through */
2303 case 9 : /* fall through */
2304 case 10 : /* fall through */
2305 case 11 : /* fall through */
2306 case 12 : /* fall through */
2307 case 13 : /* fall through */
2309 if ((base_insn & 0xbf0) == 0xa50)
2310 { itype = CRISV32F_INSN_MOVE_M_W_M; goto extract_sfmt_move_m_w_m; }
2311 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2313 if ((base_insn & 0xfff) == 0xe5f)
2314 { itype = CRISV32F_INSN_MOVECWR; goto extract_sfmt_movecwr; }
2315 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2316 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2321 unsigned int val = (((insn >> 0) & (15 << 0)));
2324 case 0 : /* fall through */
2325 case 1 : /* fall through */
2326 case 2 : /* fall through */
2327 case 3 : /* fall through */
2328 case 4 : /* fall through */
2329 case 5 : /* fall through */
2330 case 6 : /* fall through */
2331 case 7 : /* fall through */
2332 case 8 : /* fall through */
2333 case 9 : /* fall through */
2334 case 10 : /* fall through */
2335 case 11 : /* fall through */
2336 case 12 : /* fall through */
2337 case 13 : /* fall through */
2339 if ((base_insn & 0xbf0) == 0xa60)
2340 { itype = CRISV32F_INSN_MOVE_M_D_M; goto extract_sfmt_move_m_d_m; }
2341 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2343 if ((base_insn & 0xfff) == 0xe6f)
2344 { itype = CRISV32F_INSN_MOVECDR; goto extract_sfmt_movecdr; }
2345 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2346 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2351 unsigned int val = (((insn >> 0) & (15 << 0)));
2354 case 0 : /* fall through */
2355 case 1 : /* fall through */
2356 case 2 : /* fall through */
2357 case 3 : /* fall through */
2358 case 4 : /* fall through */
2359 case 5 : /* fall through */
2360 case 6 : /* fall through */
2361 case 7 : /* fall through */
2362 case 8 : /* fall through */
2363 case 9 : /* fall through */
2364 case 10 : /* fall through */
2365 case 11 : /* fall through */
2366 case 12 : /* fall through */
2367 case 13 : /* fall through */
2369 if ((base_insn & 0xbf0) == 0xa80)
2370 { itype = CRISV32F_INSN_SUB_M_B_M; goto extract_sfmt_add_m_b_m; }
2371 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2373 if ((base_insn & 0xfff) == 0xe8f)
2374 { itype = CRISV32F_INSN_SUBCBR; goto extract_sfmt_addcbr; }
2375 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2376 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2381 unsigned int val = (((insn >> 0) & (15 << 0)));
2384 case 0 : /* fall through */
2385 case 1 : /* fall through */
2386 case 2 : /* fall through */
2387 case 3 : /* fall through */
2388 case 4 : /* fall through */
2389 case 5 : /* fall through */
2390 case 6 : /* fall through */
2391 case 7 : /* fall through */
2392 case 8 : /* fall through */
2393 case 9 : /* fall through */
2394 case 10 : /* fall through */
2395 case 11 : /* fall through */
2396 case 12 : /* fall through */
2397 case 13 : /* fall through */
2399 if ((base_insn & 0xbf0) == 0xa90)
2400 { itype = CRISV32F_INSN_SUB_M_W_M; goto extract_sfmt_add_m_w_m; }
2401 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2403 if ((base_insn & 0xfff) == 0xe9f)
2404 { itype = CRISV32F_INSN_SUBCWR; goto extract_sfmt_addcwr; }
2405 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2406 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2411 unsigned int val = (((insn >> 0) & (15 << 0)));
2414 case 0 : /* fall through */
2415 case 1 : /* fall through */
2416 case 2 : /* fall through */
2417 case 3 : /* fall through */
2418 case 4 : /* fall through */
2419 case 5 : /* fall through */
2420 case 6 : /* fall through */
2421 case 7 : /* fall through */
2422 case 8 : /* fall through */
2423 case 9 : /* fall through */
2424 case 10 : /* fall through */
2425 case 11 : /* fall through */
2426 case 12 : /* fall through */
2427 case 13 : /* fall through */
2429 if ((base_insn & 0xbf0) == 0xaa0)
2430 { itype = CRISV32F_INSN_SUB_M_D_M; goto extract_sfmt_add_m_d_m; }
2431 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2433 if ((base_insn & 0xfff) == 0xeaf)
2434 { itype = CRISV32F_INSN_SUBCDR; goto extract_sfmt_addcdr; }
2435 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2436 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2440 if ((base_insn & 0xfff) == 0xebf)
2441 { itype = CRISV32F_INSN_BAS_C; goto extract_sfmt_bas_c; }
2442 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2445 unsigned int val = (((insn >> 0) & (15 << 0)));
2448 case 0 : /* fall through */
2449 case 1 : /* fall through */
2450 case 2 : /* fall through */
2451 case 3 : /* fall through */
2452 case 4 : /* fall through */
2453 case 5 : /* fall through */
2454 case 6 : /* fall through */
2455 case 7 : /* fall through */
2456 case 8 : /* fall through */
2457 case 9 : /* fall through */
2458 case 10 : /* fall through */
2459 case 11 : /* fall through */
2460 case 12 : /* fall through */
2461 case 13 : /* fall through */
2463 if ((base_insn & 0xbf0) == 0xac0)
2464 { itype = CRISV32F_INSN_CMP_M_B_M; goto extract_sfmt_cmp_m_b_m; }
2465 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2467 if ((base_insn & 0xfff) == 0xecf)
2468 { itype = CRISV32F_INSN_CMPCBR; goto extract_sfmt_cmpcbr; }
2469 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2470 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2475 unsigned int val = (((insn >> 0) & (15 << 0)));
2478 case 0 : /* fall through */
2479 case 1 : /* fall through */
2480 case 2 : /* fall through */
2481 case 3 : /* fall through */
2482 case 4 : /* fall through */
2483 case 5 : /* fall through */
2484 case 6 : /* fall through */
2485 case 7 : /* fall through */
2486 case 8 : /* fall through */
2487 case 9 : /* fall through */
2488 case 10 : /* fall through */
2489 case 11 : /* fall through */
2490 case 12 : /* fall through */
2491 case 13 : /* fall through */
2493 if ((base_insn & 0xbf0) == 0xad0)
2494 { itype = CRISV32F_INSN_CMP_M_W_M; goto extract_sfmt_cmp_m_w_m; }
2495 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2497 if ((base_insn & 0xfff) == 0xedf)
2498 { itype = CRISV32F_INSN_CMPCWR; goto extract_sfmt_cmpcwr; }
2499 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2500 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2505 unsigned int val = (((insn >> 0) & (15 << 0)));
2508 case 0 : /* fall through */
2509 case 1 : /* fall through */
2510 case 2 : /* fall through */
2511 case 3 : /* fall through */
2512 case 4 : /* fall through */
2513 case 5 : /* fall through */
2514 case 6 : /* fall through */
2515 case 7 : /* fall through */
2516 case 8 : /* fall through */
2517 case 9 : /* fall through */
2518 case 10 : /* fall through */
2519 case 11 : /* fall through */
2520 case 12 : /* fall through */
2521 case 13 : /* fall through */
2523 if ((base_insn & 0xbf0) == 0xae0)
2524 { itype = CRISV32F_INSN_CMP_M_D_M; goto extract_sfmt_cmp_m_d_m; }
2525 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2527 if ((base_insn & 0xfff) == 0xeef)
2528 { itype = CRISV32F_INSN_CMPCDR; goto extract_sfmt_cmpcdr; }
2529 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2530 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2534 if ((base_insn & 0xfff) == 0xeff)
2535 { itype = CRISV32F_INSN_BASC_C; goto extract_sfmt_bas_c; }
2536 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2539 unsigned int val = (((insn >> 0) & (15 << 0)));
2542 case 0 : /* fall through */
2543 case 1 : /* fall through */
2544 case 2 : /* fall through */
2545 case 3 : /* fall through */
2546 case 4 : /* fall through */
2547 case 5 : /* fall through */
2548 case 6 : /* fall through */
2549 case 7 : /* fall through */
2550 case 8 : /* fall through */
2551 case 9 : /* fall through */
2552 case 10 : /* fall through */
2553 case 11 : /* fall through */
2554 case 12 : /* fall through */
2555 case 13 : /* fall through */
2557 if ((base_insn & 0xbf0) == 0xb00)
2558 { itype = CRISV32F_INSN_AND_M_B_M; goto extract_sfmt_and_m_b_m; }
2559 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2561 if ((base_insn & 0xfff) == 0xf0f)
2562 { itype = CRISV32F_INSN_ANDCBR; goto extract_sfmt_andcbr; }
2563 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2564 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2569 unsigned int val = (((insn >> 0) & (15 << 0)));
2572 case 0 : /* fall through */
2573 case 1 : /* fall through */
2574 case 2 : /* fall through */
2575 case 3 : /* fall through */
2576 case 4 : /* fall through */
2577 case 5 : /* fall through */
2578 case 6 : /* fall through */
2579 case 7 : /* fall through */
2580 case 8 : /* fall through */
2581 case 9 : /* fall through */
2582 case 10 : /* fall through */
2583 case 11 : /* fall through */
2584 case 12 : /* fall through */
2585 case 13 : /* fall through */
2587 if ((base_insn & 0xbf0) == 0xb10)
2588 { itype = CRISV32F_INSN_AND_M_W_M; goto extract_sfmt_and_m_w_m; }
2589 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2591 if ((base_insn & 0xfff) == 0xf1f)
2592 { itype = CRISV32F_INSN_ANDCWR; goto extract_sfmt_andcwr; }
2593 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2594 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2599 unsigned int val = (((insn >> 0) & (15 << 0)));
2602 case 0 : /* fall through */
2603 case 1 : /* fall through */
2604 case 2 : /* fall through */
2605 case 3 : /* fall through */
2606 case 4 : /* fall through */
2607 case 5 : /* fall through */
2608 case 6 : /* fall through */
2609 case 7 : /* fall through */
2610 case 8 : /* fall through */
2611 case 9 : /* fall through */
2612 case 10 : /* fall through */
2613 case 11 : /* fall through */
2614 case 12 : /* fall through */
2615 case 13 : /* fall through */
2617 if ((base_insn & 0xbf0) == 0xb20)
2618 { itype = CRISV32F_INSN_AND_M_D_M; goto extract_sfmt_and_m_d_m; }
2619 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2621 if ((base_insn & 0xfff) == 0xf2f)
2622 { itype = CRISV32F_INSN_ANDCDR; goto extract_sfmt_andcdr; }
2623 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2624 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2628 if ((base_insn & 0xfff) == 0xf3f)
2629 { itype = CRISV32F_INSN_JASC_C; goto extract_sfmt_jas_c; }
2630 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2633 unsigned int val = (((insn >> 0) & (15 << 0)));
2636 case 0 : /* fall through */
2637 case 1 : /* fall through */
2638 case 2 : /* fall through */
2639 case 3 : /* fall through */
2640 case 4 : /* fall through */
2641 case 5 : /* fall through */
2642 case 6 : /* fall through */
2643 case 7 : /* fall through */
2644 case 8 : /* fall through */
2645 case 9 : /* fall through */
2646 case 10 : /* fall through */
2647 case 11 : /* fall through */
2648 case 12 : /* fall through */
2649 case 13 : /* fall through */
2651 if ((base_insn & 0xbf0) == 0xb40)
2652 { itype = CRISV32F_INSN_OR_M_B_M; goto extract_sfmt_and_m_b_m; }
2653 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2655 if ((base_insn & 0xfff) == 0xf4f)
2656 { itype = CRISV32F_INSN_ORCBR; goto extract_sfmt_andcbr; }
2657 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2658 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2663 unsigned int val = (((insn >> 0) & (15 << 0)));
2666 case 0 : /* fall through */
2667 case 1 : /* fall through */
2668 case 2 : /* fall through */
2669 case 3 : /* fall through */
2670 case 4 : /* fall through */
2671 case 5 : /* fall through */
2672 case 6 : /* fall through */
2673 case 7 : /* fall through */
2674 case 8 : /* fall through */
2675 case 9 : /* fall through */
2676 case 10 : /* fall through */
2677 case 11 : /* fall through */
2678 case 12 : /* fall through */
2679 case 13 : /* fall through */
2681 if ((base_insn & 0xbf0) == 0xb50)
2682 { itype = CRISV32F_INSN_OR_M_W_M; goto extract_sfmt_and_m_w_m; }
2683 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2685 if ((base_insn & 0xfff) == 0xf5f)
2686 { itype = CRISV32F_INSN_ORCWR; goto extract_sfmt_andcwr; }
2687 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2688 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2693 unsigned int val = (((insn >> 0) & (15 << 0)));
2696 case 0 : /* fall through */
2697 case 1 : /* fall through */
2698 case 2 : /* fall through */
2699 case 3 : /* fall through */
2700 case 4 : /* fall through */
2701 case 5 : /* fall through */
2702 case 6 : /* fall through */
2703 case 7 : /* fall through */
2704 case 8 : /* fall through */
2705 case 9 : /* fall through */
2706 case 10 : /* fall through */
2707 case 11 : /* fall through */
2708 case 12 : /* fall through */
2709 case 13 : /* fall through */
2711 if ((base_insn & 0xbf0) == 0xb60)
2712 { itype = CRISV32F_INSN_OR_M_D_M; goto extract_sfmt_and_m_d_m; }
2713 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2715 if ((base_insn & 0xfff) == 0xf6f)
2716 { itype = CRISV32F_INSN_ORCDR; goto extract_sfmt_andcdr; }
2717 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2718 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2722 if ((base_insn & 0xff0) == 0xf70)
2723 { itype = CRISV32F_INSN_MOVE_SS_R; goto extract_sfmt_move_ss_r; }
2724 itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2725 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
2730 /* The instruction has been decoded, now extract the fields. */
2734 const IDESC *idesc = &crisv32f_insn_data[itype];
2735 #define FLD(f) abuf->fields.fmt_empty.f
2738 /* Record the fields for the semantic handler. */
2739 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_empty", (char *) 0));
2745 extract_sfmt_move_b_r:
2747 const IDESC *idesc = &crisv32f_insn_data[itype];
2748 CGEN_INSN_INT insn = base_insn;
2749 #define FLD(f) abuf->fields.sfmt_addc_m.f
2753 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2754 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2756 /* Record the fields for the semantic handler. */
2757 FLD (f_operand1) = f_operand1;
2758 FLD (f_operand2) = f_operand2;
2759 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));
2761 #if WITH_PROFILE_MODEL_P
2762 /* Record the fields for profiling. */
2763 if (PROFILE_MODEL_P (current_cpu))
2765 FLD (in_Rs) = f_operand1;
2766 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
2773 extract_sfmt_move_d_r:
2775 const IDESC *idesc = &crisv32f_insn_data[itype];
2776 CGEN_INSN_INT insn = base_insn;
2777 #define FLD(f) abuf->fields.sfmt_addc_m.f
2781 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2782 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2784 /* Record the fields for the semantic handler. */
2785 FLD (f_operand1) = f_operand1;
2786 FLD (f_operand2) = f_operand2;
2787 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));
2789 #if WITH_PROFILE_MODEL_P
2790 /* Record the fields for profiling. */
2791 if (PROFILE_MODEL_P (current_cpu))
2793 FLD (in_Rs) = f_operand1;
2794 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
2803 const IDESC *idesc = &crisv32f_insn_data[itype];
2804 CGEN_INSN_INT insn = base_insn;
2805 #define FLD(f) abuf->fields.sfmt_moveq.f
2809 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2810 f_s6 = EXTRACT_LSB0_INT (insn, 16, 5, 6);
2812 /* Record the fields for the semantic handler. */
2814 FLD (f_operand2) = f_operand2;
2815 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));
2817 #if WITH_PROFILE_MODEL_P
2818 /* Record the fields for profiling. */
2819 if (PROFILE_MODEL_P (current_cpu))
2821 FLD (out_Rd) = f_operand2;
2828 extract_sfmt_movs_b_r:
2830 const IDESC *idesc = &crisv32f_insn_data[itype];
2831 CGEN_INSN_INT insn = base_insn;
2832 #define FLD(f) abuf->fields.sfmt_muls_b.f
2836 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2837 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2839 /* Record the fields for the semantic handler. */
2840 FLD (f_operand1) = f_operand1;
2841 FLD (f_operand2) = f_operand2;
2842 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));
2844 #if WITH_PROFILE_MODEL_P
2845 /* Record the fields for profiling. */
2846 if (PROFILE_MODEL_P (current_cpu))
2848 FLD (in_Rs) = f_operand1;
2849 FLD (out_Rd) = f_operand2;
2856 extract_sfmt_movecbr:
2858 const IDESC *idesc = &crisv32f_insn_data[itype];
2859 CGEN_INSN_INT insn = base_insn;
2860 #define FLD(f) abuf->fields.sfmt_addcbr.f
2861 INT f_indir_pc__byte;
2863 /* Contents of trailing part of insn. */
2866 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2867 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2868 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2870 /* Record the fields for the semantic handler. */
2871 FLD (f_operand2) = f_operand2;
2872 FLD (f_indir_pc__byte) = f_indir_pc__byte;
2873 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));
2875 #if WITH_PROFILE_MODEL_P
2876 /* Record the fields for profiling. */
2877 if (PROFILE_MODEL_P (current_cpu))
2879 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
2886 extract_sfmt_movecwr:
2888 const IDESC *idesc = &crisv32f_insn_data[itype];
2889 CGEN_INSN_INT insn = base_insn;
2890 #define FLD(f) abuf->fields.sfmt_addcwr.f
2891 INT f_indir_pc__word;
2893 /* Contents of trailing part of insn. */
2896 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2897 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2898 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2900 /* Record the fields for the semantic handler. */
2901 FLD (f_operand2) = f_operand2;
2902 FLD (f_indir_pc__word) = f_indir_pc__word;
2903 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));
2905 #if WITH_PROFILE_MODEL_P
2906 /* Record the fields for profiling. */
2907 if (PROFILE_MODEL_P (current_cpu))
2909 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
2916 extract_sfmt_movecdr:
2918 const IDESC *idesc = &crisv32f_insn_data[itype];
2919 CGEN_INSN_INT insn = base_insn;
2920 #define FLD(f) abuf->fields.sfmt_bound_cd.f
2921 INT f_indir_pc__dword;
2923 /* Contents of trailing part of insn. */
2926 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2927 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
2928 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2930 /* Record the fields for the semantic handler. */
2931 FLD (f_indir_pc__dword) = f_indir_pc__dword;
2932 FLD (f_operand2) = f_operand2;
2933 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));
2935 #if WITH_PROFILE_MODEL_P
2936 /* Record the fields for profiling. */
2937 if (PROFILE_MODEL_P (current_cpu))
2939 FLD (out_Rd) = f_operand2;
2946 extract_sfmt_movscbr:
2948 const IDESC *idesc = &crisv32f_insn_data[itype];
2949 CGEN_INSN_INT insn = base_insn;
2950 #define FLD(f) abuf->fields.sfmt_bound_cb.f
2952 INT f_indir_pc__byte;
2953 /* Contents of trailing part of insn. */
2956 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2957 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2958 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2960 /* Record the fields for the semantic handler. */
2961 FLD (f_indir_pc__byte) = f_indir_pc__byte;
2962 FLD (f_operand2) = f_operand2;
2963 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));
2965 #if WITH_PROFILE_MODEL_P
2966 /* Record the fields for profiling. */
2967 if (PROFILE_MODEL_P (current_cpu))
2969 FLD (out_Rd) = f_operand2;
2976 extract_sfmt_movscwr:
2978 const IDESC *idesc = &crisv32f_insn_data[itype];
2979 CGEN_INSN_INT insn = base_insn;
2980 #define FLD(f) abuf->fields.sfmt_bound_cw.f
2982 INT f_indir_pc__word;
2983 /* Contents of trailing part of insn. */
2986 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2987 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2988 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
2990 /* Record the fields for the semantic handler. */
2991 FLD (f_indir_pc__word) = f_indir_pc__word;
2992 FLD (f_operand2) = f_operand2;
2993 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));
2995 #if WITH_PROFILE_MODEL_P
2996 /* Record the fields for profiling. */
2997 if (PROFILE_MODEL_P (current_cpu))
2999 FLD (out_Rd) = f_operand2;
3006 extract_sfmt_movucbr:
3008 const IDESC *idesc = &crisv32f_insn_data[itype];
3009 CGEN_INSN_INT insn = base_insn;
3010 #define FLD(f) abuf->fields.sfmt_bound_cb.f
3012 INT f_indir_pc__byte;
3013 /* Contents of trailing part of insn. */
3016 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3017 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3018 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3020 /* Record the fields for the semantic handler. */
3021 FLD (f_indir_pc__byte) = f_indir_pc__byte;
3022 FLD (f_operand2) = f_operand2;
3023 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));
3025 #if WITH_PROFILE_MODEL_P
3026 /* Record the fields for profiling. */
3027 if (PROFILE_MODEL_P (current_cpu))
3029 FLD (out_Rd) = f_operand2;
3036 extract_sfmt_movucwr:
3038 const IDESC *idesc = &crisv32f_insn_data[itype];
3039 CGEN_INSN_INT insn = base_insn;
3040 #define FLD(f) abuf->fields.sfmt_bound_cw.f
3042 INT f_indir_pc__word;
3043 /* Contents of trailing part of insn. */
3046 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3047 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3048 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3050 /* Record the fields for the semantic handler. */
3051 FLD (f_indir_pc__word) = f_indir_pc__word;
3052 FLD (f_operand2) = f_operand2;
3053 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));
3055 #if WITH_PROFILE_MODEL_P
3056 /* Record the fields for profiling. */
3057 if (PROFILE_MODEL_P (current_cpu))
3059 FLD (out_Rd) = f_operand2;
3068 const IDESC *idesc = &crisv32f_insn_data[itype];
3069 CGEN_INSN_INT insn = base_insn;
3070 #define FLD(f) abuf->fields.sfmt_addq.f
3074 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3075 f_u6 = EXTRACT_LSB0_UINT (insn, 16, 5, 6);
3077 /* Record the fields for the semantic handler. */
3078 FLD (f_operand2) = f_operand2;
3080 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));
3082 #if WITH_PROFILE_MODEL_P
3083 /* Record the fields for profiling. */
3084 if (PROFILE_MODEL_P (current_cpu))
3086 FLD (in_Rd) = f_operand2;
3087 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3094 extract_sfmt_cmp_r_b_r:
3096 const IDESC *idesc = &crisv32f_insn_data[itype];
3097 CGEN_INSN_INT insn = base_insn;
3098 #define FLD(f) abuf->fields.sfmt_muls_b.f
3102 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3103 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3105 /* Record the fields for the semantic handler. */
3106 FLD (f_operand2) = f_operand2;
3107 FLD (f_operand1) = f_operand1;
3108 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));
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;
3122 extract_sfmt_cmp_m_b_m:
3124 const IDESC *idesc = &crisv32f_insn_data[itype];
3125 CGEN_INSN_INT insn = base_insn;
3126 #define FLD(f) abuf->fields.sfmt_addc_m.f
3131 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3132 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3133 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3135 /* Record the fields for the semantic handler. */
3136 FLD (f_operand2) = f_operand2;
3137 FLD (f_operand1) = f_operand1;
3138 FLD (f_memmode) = f_memmode;
3139 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));
3141 #if WITH_PROFILE_MODEL_P
3142 /* Record the fields for profiling. */
3143 if (PROFILE_MODEL_P (current_cpu))
3145 FLD (in_Rd) = f_operand2;
3146 FLD (in_Rs) = f_operand1;
3147 FLD (out_Rs) = f_operand1;
3154 extract_sfmt_cmp_m_w_m:
3156 const IDESC *idesc = &crisv32f_insn_data[itype];
3157 CGEN_INSN_INT insn = base_insn;
3158 #define FLD(f) abuf->fields.sfmt_addc_m.f
3163 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3164 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3165 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3167 /* Record the fields for the semantic handler. */
3168 FLD (f_operand2) = f_operand2;
3169 FLD (f_operand1) = f_operand1;
3170 FLD (f_memmode) = f_memmode;
3171 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));
3173 #if WITH_PROFILE_MODEL_P
3174 /* Record the fields for profiling. */
3175 if (PROFILE_MODEL_P (current_cpu))
3177 FLD (in_Rd) = f_operand2;
3178 FLD (in_Rs) = f_operand1;
3179 FLD (out_Rs) = f_operand1;
3186 extract_sfmt_cmp_m_d_m:
3188 const IDESC *idesc = &crisv32f_insn_data[itype];
3189 CGEN_INSN_INT insn = base_insn;
3190 #define FLD(f) abuf->fields.sfmt_addc_m.f
3195 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3196 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3197 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3199 /* Record the fields for the semantic handler. */
3200 FLD (f_operand2) = f_operand2;
3201 FLD (f_operand1) = f_operand1;
3202 FLD (f_memmode) = f_memmode;
3203 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));
3205 #if WITH_PROFILE_MODEL_P
3206 /* Record the fields for profiling. */
3207 if (PROFILE_MODEL_P (current_cpu))
3209 FLD (in_Rd) = f_operand2;
3210 FLD (in_Rs) = f_operand1;
3211 FLD (out_Rs) = f_operand1;
3218 extract_sfmt_cmpcbr:
3220 const IDESC *idesc = &crisv32f_insn_data[itype];
3221 CGEN_INSN_INT insn = base_insn;
3222 #define FLD(f) abuf->fields.sfmt_bound_cb.f
3223 INT f_indir_pc__byte;
3225 /* Contents of trailing part of insn. */
3228 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3229 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3230 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3232 /* Record the fields for the semantic handler. */
3233 FLD (f_operand2) = f_operand2;
3234 FLD (f_indir_pc__byte) = f_indir_pc__byte;
3235 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpcbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
3237 #if WITH_PROFILE_MODEL_P
3238 /* Record the fields for profiling. */
3239 if (PROFILE_MODEL_P (current_cpu))
3241 FLD (in_Rd) = f_operand2;
3248 extract_sfmt_cmpcwr:
3250 const IDESC *idesc = &crisv32f_insn_data[itype];
3251 CGEN_INSN_INT insn = base_insn;
3252 #define FLD(f) abuf->fields.sfmt_bound_cw.f
3253 INT f_indir_pc__word;
3255 /* Contents of trailing part of insn. */
3258 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3259 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3260 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3262 /* Record the fields for the semantic handler. */
3263 FLD (f_operand2) = f_operand2;
3264 FLD (f_indir_pc__word) = f_indir_pc__word;
3265 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpcwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
3267 #if WITH_PROFILE_MODEL_P
3268 /* Record the fields for profiling. */
3269 if (PROFILE_MODEL_P (current_cpu))
3271 FLD (in_Rd) = f_operand2;
3278 extract_sfmt_cmpcdr:
3280 const IDESC *idesc = &crisv32f_insn_data[itype];
3281 CGEN_INSN_INT insn = base_insn;
3282 #define FLD(f) abuf->fields.sfmt_bound_cd.f
3283 INT f_indir_pc__dword;
3285 /* Contents of trailing part of insn. */
3288 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3289 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
3290 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3292 /* Record the fields for the semantic handler. */
3293 FLD (f_operand2) = f_operand2;
3294 FLD (f_indir_pc__dword) = f_indir_pc__dword;
3295 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpcdr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
3297 #if WITH_PROFILE_MODEL_P
3298 /* Record the fields for profiling. */
3299 if (PROFILE_MODEL_P (current_cpu))
3301 FLD (in_Rd) = f_operand2;
3310 const IDESC *idesc = &crisv32f_insn_data[itype];
3311 CGEN_INSN_INT insn = base_insn;
3312 #define FLD(f) abuf->fields.sfmt_andq.f
3316 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3317 f_s6 = EXTRACT_LSB0_INT (insn, 16, 5, 6);
3319 /* Record the fields for the semantic handler. */
3320 FLD (f_operand2) = f_operand2;
3322 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));
3324 #if WITH_PROFILE_MODEL_P
3325 /* Record the fields for profiling. */
3326 if (PROFILE_MODEL_P (current_cpu))
3328 FLD (in_Rd) = f_operand2;
3335 extract_sfmt_cmpucbr:
3337 const IDESC *idesc = &crisv32f_insn_data[itype];
3338 CGEN_INSN_INT insn = base_insn;
3339 #define FLD(f) abuf->fields.sfmt_bound_cb.f
3340 INT f_indir_pc__byte;
3342 /* Contents of trailing part of insn. */
3345 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3346 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3347 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3349 /* Record the fields for the semantic handler. */
3350 FLD (f_operand2) = f_operand2;
3351 FLD (f_indir_pc__byte) = f_indir_pc__byte;
3352 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));
3354 #if WITH_PROFILE_MODEL_P
3355 /* Record the fields for profiling. */
3356 if (PROFILE_MODEL_P (current_cpu))
3358 FLD (in_Rd) = f_operand2;
3365 extract_sfmt_cmpucwr:
3367 const IDESC *idesc = &crisv32f_insn_data[itype];
3368 CGEN_INSN_INT insn = base_insn;
3369 #define FLD(f) abuf->fields.sfmt_bound_cw.f
3370 INT f_indir_pc__word;
3372 /* Contents of trailing part of insn. */
3375 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3376 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
3377 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3379 /* Record the fields for the semantic handler. */
3380 FLD (f_operand2) = f_operand2;
3381 FLD (f_indir_pc__word) = f_indir_pc__word;
3382 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));
3384 #if WITH_PROFILE_MODEL_P
3385 /* Record the fields for profiling. */
3386 if (PROFILE_MODEL_P (current_cpu))
3388 FLD (in_Rd) = f_operand2;
3395 extract_sfmt_move_m_b_m:
3397 const IDESC *idesc = &crisv32f_insn_data[itype];
3398 CGEN_INSN_INT insn = base_insn;
3399 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3404 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3405 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3406 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3408 /* Record the fields for the semantic handler. */
3409 FLD (f_operand1) = f_operand1;
3410 FLD (f_operand2) = f_operand2;
3411 FLD (f_memmode) = f_memmode;
3412 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));
3414 #if WITH_PROFILE_MODEL_P
3415 /* Record the fields for profiling. */
3416 if (PROFILE_MODEL_P (current_cpu))
3418 FLD (in_Rs) = f_operand1;
3419 FLD (out_Rs) = f_operand1;
3420 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3427 extract_sfmt_move_m_w_m:
3429 const IDESC *idesc = &crisv32f_insn_data[itype];
3430 CGEN_INSN_INT insn = base_insn;
3431 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3436 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3437 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3438 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3440 /* Record the fields for the semantic handler. */
3441 FLD (f_operand1) = f_operand1;
3442 FLD (f_operand2) = f_operand2;
3443 FLD (f_memmode) = f_memmode;
3444 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));
3446 #if WITH_PROFILE_MODEL_P
3447 /* Record the fields for profiling. */
3448 if (PROFILE_MODEL_P (current_cpu))
3450 FLD (in_Rs) = f_operand1;
3451 FLD (out_Rs) = f_operand1;
3452 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3459 extract_sfmt_move_m_d_m:
3461 const IDESC *idesc = &crisv32f_insn_data[itype];
3462 CGEN_INSN_INT insn = base_insn;
3463 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3468 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3469 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3470 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3472 /* Record the fields for the semantic handler. */
3473 FLD (f_operand1) = f_operand1;
3474 FLD (f_operand2) = f_operand2;
3475 FLD (f_memmode) = f_memmode;
3476 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));
3478 #if WITH_PROFILE_MODEL_P
3479 /* Record the fields for profiling. */
3480 if (PROFILE_MODEL_P (current_cpu))
3482 FLD (in_Rs) = f_operand1;
3483 FLD (out_Rs) = f_operand1;
3484 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3491 extract_sfmt_movs_m_b_m:
3493 const IDESC *idesc = &crisv32f_insn_data[itype];
3494 CGEN_INSN_INT insn = base_insn;
3495 #define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
3500 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3501 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3502 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3504 /* Record the fields for the semantic handler. */
3505 FLD (f_operand1) = f_operand1;
3506 FLD (f_memmode) = f_memmode;
3507 FLD (f_operand2) = f_operand2;
3508 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));
3510 #if WITH_PROFILE_MODEL_P
3511 /* Record the fields for profiling. */
3512 if (PROFILE_MODEL_P (current_cpu))
3514 FLD (in_Rs) = f_operand1;
3515 FLD (out_Rd) = f_operand2;
3516 FLD (out_Rs) = f_operand1;
3523 extract_sfmt_movs_m_w_m:
3525 const IDESC *idesc = &crisv32f_insn_data[itype];
3526 CGEN_INSN_INT insn = base_insn;
3527 #define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
3532 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3533 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3534 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3536 /* Record the fields for the semantic handler. */
3537 FLD (f_operand1) = f_operand1;
3538 FLD (f_memmode) = f_memmode;
3539 FLD (f_operand2) = f_operand2;
3540 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));
3542 #if WITH_PROFILE_MODEL_P
3543 /* Record the fields for profiling. */
3544 if (PROFILE_MODEL_P (current_cpu))
3546 FLD (in_Rs) = f_operand1;
3547 FLD (out_Rd) = f_operand2;
3548 FLD (out_Rs) = f_operand1;
3555 extract_sfmt_move_r_sprv32:
3557 const IDESC *idesc = &crisv32f_insn_data[itype];
3558 CGEN_INSN_INT insn = base_insn;
3559 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
3563 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3564 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3566 /* Record the fields for the semantic handler. */
3567 FLD (f_operand1) = f_operand1;
3568 FLD (f_operand2) = f_operand2;
3569 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));
3571 #if WITH_PROFILE_MODEL_P
3572 /* Record the fields for profiling. */
3573 if (PROFILE_MODEL_P (current_cpu))
3575 FLD (in_Rs) = f_operand1;
3576 FLD (out_Pd) = f_operand2;
3583 extract_sfmt_move_spr_rv32:
3585 const IDESC *idesc = &crisv32f_insn_data[itype];
3586 CGEN_INSN_INT insn = base_insn;
3587 #define FLD(f) abuf->fields.sfmt_mcp.f
3591 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3592 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3594 /* Record the fields for the semantic handler. */
3595 FLD (f_operand2) = f_operand2;
3596 FLD (f_operand1) = f_operand1;
3597 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));
3599 #if WITH_PROFILE_MODEL_P
3600 /* Record the fields for profiling. */
3601 if (PROFILE_MODEL_P (current_cpu))
3603 FLD (in_Ps) = f_operand2;
3604 FLD (out_h_gr_SI_index_of__DFLT_Rs) = FLD (f_operand1);
3611 extract_sfmt_move_m_sprv32:
3613 const IDESC *idesc = &crisv32f_insn_data[itype];
3614 CGEN_INSN_INT insn = base_insn;
3615 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
3620 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3621 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3622 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3624 /* Record the fields for the semantic handler. */
3625 FLD (f_operand1) = f_operand1;
3626 FLD (f_operand2) = f_operand2;
3627 FLD (f_memmode) = f_memmode;
3628 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));
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_Pd) = f_operand2;
3636 FLD (out_Rs) = f_operand1;
3643 extract_sfmt_move_c_sprv32_p0:
3645 const IDESC *idesc = &crisv32f_insn_data[itype];
3646 CGEN_INSN_INT insn = base_insn;
3647 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p0.f
3648 INT f_indir_pc__dword;
3650 /* Contents of trailing part of insn. */
3653 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3654 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
3655 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3657 /* Record the fields for the semantic handler. */
3658 FLD (f_indir_pc__dword) = f_indir_pc__dword;
3659 FLD (f_operand2) = f_operand2;
3660 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_c_sprv32_p0", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3662 #if WITH_PROFILE_MODEL_P
3663 /* Record the fields for profiling. */
3664 if (PROFILE_MODEL_P (current_cpu))
3666 FLD (out_Pd) = f_operand2;
3673 extract_sfmt_move_spr_mv32:
3675 const IDESC *idesc = &crisv32f_insn_data[itype];
3676 CGEN_INSN_INT insn = base_insn;
3677 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
3682 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3683 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3684 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3686 /* Record the fields for the semantic handler. */
3687 FLD (f_operand2) = f_operand2;
3688 FLD (f_operand1) = f_operand1;
3689 FLD (f_memmode) = f_memmode;
3690 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));
3692 #if WITH_PROFILE_MODEL_P
3693 /* Record the fields for profiling. */
3694 if (PROFILE_MODEL_P (current_cpu))
3696 FLD (in_Ps) = f_operand2;
3697 FLD (in_Rs) = f_operand1;
3698 FLD (out_Rs) = f_operand1;
3705 extract_sfmt_move_ss_r:
3707 const IDESC *idesc = &crisv32f_insn_data[itype];
3708 CGEN_INSN_INT insn = base_insn;
3709 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
3713 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3714 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3716 /* Record the fields for the semantic handler. */
3717 FLD (f_operand2) = f_operand2;
3718 FLD (f_operand1) = f_operand1;
3719 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));
3721 #if WITH_PROFILE_MODEL_P
3722 /* Record the fields for profiling. */
3723 if (PROFILE_MODEL_P (current_cpu))
3725 FLD (out_Rs) = f_operand1;
3732 extract_sfmt_move_r_ss:
3734 const IDESC *idesc = &crisv32f_insn_data[itype];
3735 CGEN_INSN_INT insn = base_insn;
3736 #define FLD(f) abuf->fields.sfmt_mcp.f
3740 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3741 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3743 /* Record the fields for the semantic handler. */
3744 FLD (f_operand1) = f_operand1;
3745 FLD (f_operand2) = f_operand2;
3746 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));
3748 #if WITH_PROFILE_MODEL_P
3749 /* Record the fields for profiling. */
3750 if (PROFILE_MODEL_P (current_cpu))
3752 FLD (in_Rs) = f_operand1;
3759 extract_sfmt_movem_r_m_v32:
3761 const IDESC *idesc = &crisv32f_insn_data[itype];
3762 CGEN_INSN_INT insn = base_insn;
3763 #define FLD(f) abuf->fields.sfmt_movem_r_m_v32.f
3768 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3769 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3770 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3772 /* Record the fields for the semantic handler. */
3773 FLD (f_operand2) = f_operand2;
3774 FLD (f_operand1) = f_operand1;
3775 FLD (f_memmode) = f_memmode;
3776 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));
3778 #if WITH_PROFILE_MODEL_P
3779 /* Record the fields for profiling. */
3780 if (PROFILE_MODEL_P (current_cpu))
3782 FLD (in_Rd) = f_operand2;
3783 FLD (in_Rs) = f_operand1;
3784 FLD (in_h_gr_SI_0) = 0;
3785 FLD (in_h_gr_SI_1) = 1;
3786 FLD (in_h_gr_SI_10) = 10;
3787 FLD (in_h_gr_SI_11) = 11;
3788 FLD (in_h_gr_SI_12) = 12;
3789 FLD (in_h_gr_SI_13) = 13;
3790 FLD (in_h_gr_SI_14) = 14;
3791 FLD (in_h_gr_SI_15) = 15;
3792 FLD (in_h_gr_SI_2) = 2;
3793 FLD (in_h_gr_SI_3) = 3;
3794 FLD (in_h_gr_SI_4) = 4;
3795 FLD (in_h_gr_SI_5) = 5;
3796 FLD (in_h_gr_SI_6) = 6;
3797 FLD (in_h_gr_SI_7) = 7;
3798 FLD (in_h_gr_SI_8) = 8;
3799 FLD (in_h_gr_SI_9) = 9;
3800 FLD (out_Rs) = f_operand1;
3807 extract_sfmt_movem_m_r_v32:
3809 const IDESC *idesc = &crisv32f_insn_data[itype];
3810 CGEN_INSN_INT insn = base_insn;
3811 #define FLD(f) abuf->fields.sfmt_movem_m_r_v32.f
3816 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3817 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3818 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3820 /* Record the fields for the semantic handler. */
3821 FLD (f_operand2) = f_operand2;
3822 FLD (f_operand1) = f_operand1;
3823 FLD (f_memmode) = f_memmode;
3824 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));
3826 #if WITH_PROFILE_MODEL_P
3827 /* Record the fields for profiling. */
3828 if (PROFILE_MODEL_P (current_cpu))
3830 FLD (in_Rd) = f_operand2;
3831 FLD (in_Rs) = f_operand1;
3832 FLD (out_Rs) = f_operand1;
3833 FLD (out_h_gr_SI_0) = 0;
3834 FLD (out_h_gr_SI_1) = 1;
3835 FLD (out_h_gr_SI_10) = 10;
3836 FLD (out_h_gr_SI_11) = 11;
3837 FLD (out_h_gr_SI_12) = 12;
3838 FLD (out_h_gr_SI_13) = 13;
3839 FLD (out_h_gr_SI_14) = 14;
3840 FLD (out_h_gr_SI_15) = 15;
3841 FLD (out_h_gr_SI_2) = 2;
3842 FLD (out_h_gr_SI_3) = 3;
3843 FLD (out_h_gr_SI_4) = 4;
3844 FLD (out_h_gr_SI_5) = 5;
3845 FLD (out_h_gr_SI_6) = 6;
3846 FLD (out_h_gr_SI_7) = 7;
3847 FLD (out_h_gr_SI_8) = 8;
3848 FLD (out_h_gr_SI_9) = 9;
3855 extract_sfmt_add_b_r:
3857 const IDESC *idesc = &crisv32f_insn_data[itype];
3858 CGEN_INSN_INT insn = base_insn;
3859 #define FLD(f) abuf->fields.sfmt_addc_m.f
3863 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3864 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3866 /* Record the fields for the semantic handler. */
3867 FLD (f_operand2) = f_operand2;
3868 FLD (f_operand1) = f_operand1;
3869 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));
3871 #if WITH_PROFILE_MODEL_P
3872 /* Record the fields for profiling. */
3873 if (PROFILE_MODEL_P (current_cpu))
3875 FLD (in_Rd) = f_operand2;
3876 FLD (in_Rs) = f_operand1;
3877 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3884 extract_sfmt_add_d_r:
3886 const IDESC *idesc = &crisv32f_insn_data[itype];
3887 CGEN_INSN_INT insn = base_insn;
3888 #define FLD(f) abuf->fields.sfmt_addc_m.f
3892 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3893 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3895 /* Record the fields for the semantic handler. */
3896 FLD (f_operand2) = f_operand2;
3897 FLD (f_operand1) = f_operand1;
3898 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));
3900 #if WITH_PROFILE_MODEL_P
3901 /* Record the fields for profiling. */
3902 if (PROFILE_MODEL_P (current_cpu))
3904 FLD (in_Rd) = f_operand2;
3905 FLD (in_Rs) = f_operand1;
3906 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3913 extract_sfmt_add_m_b_m:
3915 const IDESC *idesc = &crisv32f_insn_data[itype];
3916 CGEN_INSN_INT insn = base_insn;
3917 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3922 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3923 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3924 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3926 /* Record the fields for the semantic handler. */
3927 FLD (f_operand2) = f_operand2;
3928 FLD (f_operand1) = f_operand1;
3929 FLD (f_memmode) = f_memmode;
3930 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));
3932 #if WITH_PROFILE_MODEL_P
3933 /* Record the fields for profiling. */
3934 if (PROFILE_MODEL_P (current_cpu))
3936 FLD (in_Rd) = f_operand2;
3937 FLD (in_Rs) = f_operand1;
3938 FLD (out_Rs) = f_operand1;
3939 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3946 extract_sfmt_add_m_w_m:
3948 const IDESC *idesc = &crisv32f_insn_data[itype];
3949 CGEN_INSN_INT insn = base_insn;
3950 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3955 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3956 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3957 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3959 /* Record the fields for the semantic handler. */
3960 FLD (f_operand2) = f_operand2;
3961 FLD (f_operand1) = f_operand1;
3962 FLD (f_memmode) = f_memmode;
3963 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));
3965 #if WITH_PROFILE_MODEL_P
3966 /* Record the fields for profiling. */
3967 if (PROFILE_MODEL_P (current_cpu))
3969 FLD (in_Rd) = f_operand2;
3970 FLD (in_Rs) = f_operand1;
3971 FLD (out_Rs) = f_operand1;
3972 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3979 extract_sfmt_add_m_d_m:
3981 const IDESC *idesc = &crisv32f_insn_data[itype];
3982 CGEN_INSN_INT insn = base_insn;
3983 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3988 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3989 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3990 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3992 /* Record the fields for the semantic handler. */
3993 FLD (f_operand2) = f_operand2;
3994 FLD (f_operand1) = f_operand1;
3995 FLD (f_memmode) = f_memmode;
3996 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));
3998 #if WITH_PROFILE_MODEL_P
3999 /* Record the fields for profiling. */
4000 if (PROFILE_MODEL_P (current_cpu))
4002 FLD (in_Rd) = f_operand2;
4003 FLD (in_Rs) = f_operand1;
4004 FLD (out_Rs) = f_operand1;
4005 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
4012 extract_sfmt_addcbr:
4014 const IDESC *idesc = &crisv32f_insn_data[itype];
4015 CGEN_INSN_INT insn = base_insn;
4016 #define FLD(f) abuf->fields.sfmt_addcbr.f
4017 INT f_indir_pc__byte;
4019 /* Contents of trailing part of insn. */
4022 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4023 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4024 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4026 /* Record the fields for the semantic handler. */
4027 FLD (f_operand2) = f_operand2;
4028 FLD (f_indir_pc__byte) = f_indir_pc__byte;
4029 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));
4031 #if WITH_PROFILE_MODEL_P
4032 /* Record the fields for profiling. */
4033 if (PROFILE_MODEL_P (current_cpu))
4035 FLD (in_Rd) = f_operand2;
4036 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4043 extract_sfmt_addcwr:
4045 const IDESC *idesc = &crisv32f_insn_data[itype];
4046 CGEN_INSN_INT insn = base_insn;
4047 #define FLD(f) abuf->fields.sfmt_addcwr.f
4048 INT f_indir_pc__word;
4050 /* Contents of trailing part of insn. */
4053 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4054 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4055 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4057 /* Record the fields for the semantic handler. */
4058 FLD (f_operand2) = f_operand2;
4059 FLD (f_indir_pc__word) = f_indir_pc__word;
4060 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));
4062 #if WITH_PROFILE_MODEL_P
4063 /* Record the fields for profiling. */
4064 if (PROFILE_MODEL_P (current_cpu))
4066 FLD (in_Rd) = f_operand2;
4067 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4074 extract_sfmt_addcdr:
4076 const IDESC *idesc = &crisv32f_insn_data[itype];
4077 CGEN_INSN_INT insn = base_insn;
4078 #define FLD(f) abuf->fields.sfmt_addcdr.f
4079 INT f_indir_pc__dword;
4081 /* Contents of trailing part of insn. */
4084 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4085 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
4086 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4088 /* Record the fields for the semantic handler. */
4089 FLD (f_operand2) = f_operand2;
4090 FLD (f_indir_pc__dword) = f_indir_pc__dword;
4091 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));
4093 #if WITH_PROFILE_MODEL_P
4094 /* Record the fields for profiling. */
4095 if (PROFILE_MODEL_P (current_cpu))
4097 FLD (in_Rd) = f_operand2;
4098 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4105 extract_sfmt_adds_m_b_m:
4107 const IDESC *idesc = &crisv32f_insn_data[itype];
4108 CGEN_INSN_INT insn = base_insn;
4109 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4114 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4115 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4116 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4118 /* Record the fields for the semantic handler. */
4119 FLD (f_operand2) = f_operand2;
4120 FLD (f_operand1) = f_operand1;
4121 FLD (f_memmode) = f_memmode;
4122 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));
4124 #if WITH_PROFILE_MODEL_P
4125 /* Record the fields for profiling. */
4126 if (PROFILE_MODEL_P (current_cpu))
4128 FLD (in_Rd) = f_operand2;
4129 FLD (in_Rs) = f_operand1;
4130 FLD (out_Rs) = f_operand1;
4131 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
4138 extract_sfmt_adds_m_w_m:
4140 const IDESC *idesc = &crisv32f_insn_data[itype];
4141 CGEN_INSN_INT insn = base_insn;
4142 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4147 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4148 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4149 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4151 /* Record the fields for the semantic handler. */
4152 FLD (f_operand2) = f_operand2;
4153 FLD (f_operand1) = f_operand1;
4154 FLD (f_memmode) = f_memmode;
4155 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));
4157 #if WITH_PROFILE_MODEL_P
4158 /* Record the fields for profiling. */
4159 if (PROFILE_MODEL_P (current_cpu))
4161 FLD (in_Rd) = f_operand2;
4162 FLD (in_Rs) = f_operand1;
4163 FLD (out_Rs) = f_operand1;
4164 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
4171 extract_sfmt_addscbr:
4173 const IDESC *idesc = &crisv32f_insn_data[itype];
4174 CGEN_INSN_INT insn = base_insn;
4175 #define FLD(f) abuf->fields.sfmt_addcbr.f
4176 INT f_indir_pc__byte;
4178 /* Contents of trailing part of insn. */
4181 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4182 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4183 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4185 /* Record the fields for the semantic handler. */
4186 FLD (f_operand2) = f_operand2;
4187 FLD (f_indir_pc__byte) = f_indir_pc__byte;
4188 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));
4190 #if WITH_PROFILE_MODEL_P
4191 /* Record the fields for profiling. */
4192 if (PROFILE_MODEL_P (current_cpu))
4194 FLD (in_Rd) = f_operand2;
4195 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4202 extract_sfmt_addscwr:
4204 const IDESC *idesc = &crisv32f_insn_data[itype];
4205 CGEN_INSN_INT insn = base_insn;
4206 #define FLD(f) abuf->fields.sfmt_addcwr.f
4207 INT f_indir_pc__word;
4209 /* Contents of trailing part of insn. */
4212 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4213 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4214 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4216 /* Record the fields for the semantic handler. */
4217 FLD (f_operand2) = f_operand2;
4218 FLD (f_indir_pc__word) = f_indir_pc__word;
4219 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));
4221 #if WITH_PROFILE_MODEL_P
4222 /* Record the fields for profiling. */
4223 if (PROFILE_MODEL_P (current_cpu))
4225 FLD (in_Rd) = f_operand2;
4226 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4233 extract_sfmt_addc_m:
4235 const IDESC *idesc = &crisv32f_insn_data[itype];
4236 CGEN_INSN_INT insn = base_insn;
4237 #define FLD(f) abuf->fields.sfmt_addc_m.f
4242 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4243 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4244 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4246 /* Record the fields for the semantic handler. */
4247 FLD (f_operand2) = f_operand2;
4248 FLD (f_operand1) = f_operand1;
4249 FLD (f_memmode) = f_memmode;
4250 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));
4252 #if WITH_PROFILE_MODEL_P
4253 /* Record the fields for profiling. */
4254 if (PROFILE_MODEL_P (current_cpu))
4256 FLD (in_Rd) = f_operand2;
4257 FLD (in_Rs) = f_operand1;
4258 FLD (out_Rs) = f_operand1;
4259 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4266 extract_sfmt_lapc_d:
4268 const IDESC *idesc = &crisv32f_insn_data[itype];
4269 CGEN_INSN_INT insn = base_insn;
4270 #define FLD(f) abuf->fields.sfmt_lapc_d.f
4271 SI f_indir_pc__dword_pcrel;
4273 /* Contents of trailing part of insn. */
4276 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4277 f_indir_pc__dword_pcrel = ((pc) + ((0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0))));
4278 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4280 /* Record the fields for the semantic handler. */
4281 FLD (f_operand2) = f_operand2;
4282 FLD (i_const32_pcrel) = f_indir_pc__dword_pcrel;
4283 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));
4285 #if WITH_PROFILE_MODEL_P
4286 /* Record the fields for profiling. */
4287 if (PROFILE_MODEL_P (current_cpu))
4289 FLD (out_Rd) = f_operand2;
4298 const IDESC *idesc = &crisv32f_insn_data[itype];
4299 CGEN_INSN_INT insn = base_insn;
4300 #define FLD(f) abuf->fields.sfmt_lapcq.f
4304 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4305 f_qo = ((pc) + (((EXTRACT_LSB0_UINT (insn, 16, 3, 4)) << (1))));
4307 /* Record the fields for the semantic handler. */
4308 FLD (f_operand2) = f_operand2;
4310 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));
4312 #if WITH_PROFILE_MODEL_P
4313 /* Record the fields for profiling. */
4314 if (PROFILE_MODEL_P (current_cpu))
4316 FLD (out_Rd) = f_operand2;
4323 extract_sfmt_addi_b_r:
4325 const IDESC *idesc = &crisv32f_insn_data[itype];
4326 CGEN_INSN_INT insn = base_insn;
4327 #define FLD(f) abuf->fields.sfmt_addc_m.f
4331 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4332 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4334 /* Record the fields for the semantic handler. */
4335 FLD (f_operand2) = f_operand2;
4336 FLD (f_operand1) = f_operand1;
4337 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));
4339 #if WITH_PROFILE_MODEL_P
4340 /* Record the fields for profiling. */
4341 if (PROFILE_MODEL_P (current_cpu))
4343 FLD (in_Rd) = f_operand2;
4344 FLD (in_Rs) = f_operand1;
4345 FLD (out_Rs) = f_operand1;
4352 extract_sfmt_neg_b_r:
4354 const IDESC *idesc = &crisv32f_insn_data[itype];
4355 CGEN_INSN_INT insn = base_insn;
4356 #define FLD(f) abuf->fields.sfmt_addc_m.f
4360 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4361 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4363 /* Record the fields for the semantic handler. */
4364 FLD (f_operand1) = f_operand1;
4365 FLD (f_operand2) = f_operand2;
4366 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));
4368 #if WITH_PROFILE_MODEL_P
4369 /* Record the fields for profiling. */
4370 if (PROFILE_MODEL_P (current_cpu))
4372 FLD (in_Rs) = f_operand1;
4373 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4380 extract_sfmt_neg_d_r:
4382 const IDESC *idesc = &crisv32f_insn_data[itype];
4383 CGEN_INSN_INT insn = base_insn;
4384 #define FLD(f) abuf->fields.sfmt_addc_m.f
4388 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4389 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4391 /* Record the fields for the semantic handler. */
4392 FLD (f_operand1) = f_operand1;
4393 FLD (f_operand2) = f_operand2;
4394 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));
4396 #if WITH_PROFILE_MODEL_P
4397 /* Record the fields for profiling. */
4398 if (PROFILE_MODEL_P (current_cpu))
4400 FLD (in_Rs) = f_operand1;
4401 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4408 extract_sfmt_test_m_b_m:
4410 const IDESC *idesc = &crisv32f_insn_data[itype];
4411 CGEN_INSN_INT insn = base_insn;
4412 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
4416 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4417 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4419 /* Record the fields for the semantic handler. */
4420 FLD (f_operand1) = f_operand1;
4421 FLD (f_memmode) = f_memmode;
4422 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));
4424 #if WITH_PROFILE_MODEL_P
4425 /* Record the fields for profiling. */
4426 if (PROFILE_MODEL_P (current_cpu))
4428 FLD (in_Rs) = f_operand1;
4429 FLD (out_Rs) = f_operand1;
4436 extract_sfmt_test_m_w_m:
4438 const IDESC *idesc = &crisv32f_insn_data[itype];
4439 CGEN_INSN_INT insn = base_insn;
4440 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
4444 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4445 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4447 /* Record the fields for the semantic handler. */
4448 FLD (f_operand1) = f_operand1;
4449 FLD (f_memmode) = f_memmode;
4450 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));
4452 #if WITH_PROFILE_MODEL_P
4453 /* Record the fields for profiling. */
4454 if (PROFILE_MODEL_P (current_cpu))
4456 FLD (in_Rs) = f_operand1;
4457 FLD (out_Rs) = f_operand1;
4464 extract_sfmt_test_m_d_m:
4466 const IDESC *idesc = &crisv32f_insn_data[itype];
4467 CGEN_INSN_INT insn = base_insn;
4468 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
4472 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4473 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4475 /* Record the fields for the semantic handler. */
4476 FLD (f_operand1) = f_operand1;
4477 FLD (f_memmode) = f_memmode;
4478 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));
4480 #if WITH_PROFILE_MODEL_P
4481 /* Record the fields for profiling. */
4482 if (PROFILE_MODEL_P (current_cpu))
4484 FLD (in_Rs) = f_operand1;
4485 FLD (out_Rs) = f_operand1;
4492 extract_sfmt_move_r_m_b_m:
4494 const IDESC *idesc = &crisv32f_insn_data[itype];
4495 CGEN_INSN_INT insn = base_insn;
4496 #define FLD(f) abuf->fields.sfmt_addc_m.f
4501 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4502 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4503 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4505 /* Record the fields for the semantic handler. */
4506 FLD (f_operand2) = f_operand2;
4507 FLD (f_operand1) = f_operand1;
4508 FLD (f_memmode) = f_memmode;
4509 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));
4511 #if WITH_PROFILE_MODEL_P
4512 /* Record the fields for profiling. */
4513 if (PROFILE_MODEL_P (current_cpu))
4515 FLD (in_Rd) = f_operand2;
4516 FLD (in_Rs) = f_operand1;
4517 FLD (out_Rs) = f_operand1;
4524 extract_sfmt_move_r_m_w_m:
4526 const IDESC *idesc = &crisv32f_insn_data[itype];
4527 CGEN_INSN_INT insn = base_insn;
4528 #define FLD(f) abuf->fields.sfmt_addc_m.f
4533 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4534 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4535 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4537 /* Record the fields for the semantic handler. */
4538 FLD (f_operand2) = f_operand2;
4539 FLD (f_operand1) = f_operand1;
4540 FLD (f_memmode) = f_memmode;
4541 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));
4543 #if WITH_PROFILE_MODEL_P
4544 /* Record the fields for profiling. */
4545 if (PROFILE_MODEL_P (current_cpu))
4547 FLD (in_Rd) = f_operand2;
4548 FLD (in_Rs) = f_operand1;
4549 FLD (out_Rs) = f_operand1;
4556 extract_sfmt_move_r_m_d_m:
4558 const IDESC *idesc = &crisv32f_insn_data[itype];
4559 CGEN_INSN_INT insn = base_insn;
4560 #define FLD(f) abuf->fields.sfmt_addc_m.f
4565 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4566 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4567 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4569 /* Record the fields for the semantic handler. */
4570 FLD (f_operand2) = f_operand2;
4571 FLD (f_operand1) = f_operand1;
4572 FLD (f_memmode) = f_memmode;
4573 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));
4575 #if WITH_PROFILE_MODEL_P
4576 /* Record the fields for profiling. */
4577 if (PROFILE_MODEL_P (current_cpu))
4579 FLD (in_Rd) = f_operand2;
4580 FLD (in_Rs) = f_operand1;
4581 FLD (out_Rs) = f_operand1;
4588 extract_sfmt_muls_b:
4590 const IDESC *idesc = &crisv32f_insn_data[itype];
4591 CGEN_INSN_INT insn = base_insn;
4592 #define FLD(f) abuf->fields.sfmt_muls_b.f
4596 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4597 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4599 /* Record the fields for the semantic handler. */
4600 FLD (f_operand2) = f_operand2;
4601 FLD (f_operand1) = f_operand1;
4602 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_muls_b", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4604 #if WITH_PROFILE_MODEL_P
4605 /* Record the fields for profiling. */
4606 if (PROFILE_MODEL_P (current_cpu))
4608 FLD (in_Rd) = f_operand2;
4609 FLD (in_Rs) = f_operand1;
4610 FLD (out_Rd) = f_operand2;
4611 FLD (out_h_sr_SI_7) = 7;
4620 const IDESC *idesc = &crisv32f_insn_data[itype];
4621 CGEN_INSN_INT insn = base_insn;
4622 #define FLD(f) abuf->fields.sfmt_mcp.f
4626 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4627 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4629 /* Record the fields for the semantic handler. */
4630 FLD (f_operand2) = f_operand2;
4631 FLD (f_operand1) = f_operand1;
4632 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));
4634 #if WITH_PROFILE_MODEL_P
4635 /* Record the fields for profiling. */
4636 if (PROFILE_MODEL_P (current_cpu))
4638 FLD (in_Ps) = f_operand2;
4639 FLD (in_Rs) = f_operand1;
4640 FLD (out_h_gr_SI_index_of__DFLT_Rs) = FLD (f_operand1);
4649 const IDESC *idesc = &crisv32f_insn_data[itype];
4650 CGEN_INSN_INT insn = base_insn;
4651 #define FLD(f) abuf->fields.sfmt_muls_b.f
4655 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4656 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4658 /* Record the fields for the semantic handler. */
4659 FLD (f_operand2) = f_operand2;
4660 FLD (f_operand1) = f_operand1;
4661 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));
4663 #if WITH_PROFILE_MODEL_P
4664 /* Record the fields for profiling. */
4665 if (PROFILE_MODEL_P (current_cpu))
4667 FLD (in_Rd) = f_operand2;
4668 FLD (in_Rs) = f_operand1;
4669 FLD (out_Rd) = f_operand2;
4676 extract_sfmt_and_b_r:
4678 const IDESC *idesc = &crisv32f_insn_data[itype];
4679 CGEN_INSN_INT insn = base_insn;
4680 #define FLD(f) abuf->fields.sfmt_addc_m.f
4684 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4685 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4687 /* Record the fields for the semantic handler. */
4688 FLD (f_operand2) = f_operand2;
4689 FLD (f_operand1) = f_operand1;
4690 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));
4692 #if WITH_PROFILE_MODEL_P
4693 /* Record the fields for profiling. */
4694 if (PROFILE_MODEL_P (current_cpu))
4696 FLD (in_Rd) = f_operand2;
4697 FLD (in_Rs) = f_operand1;
4698 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4705 extract_sfmt_and_w_r:
4707 const IDESC *idesc = &crisv32f_insn_data[itype];
4708 CGEN_INSN_INT insn = base_insn;
4709 #define FLD(f) abuf->fields.sfmt_addc_m.f
4713 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4714 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4716 /* Record the fields for the semantic handler. */
4717 FLD (f_operand2) = f_operand2;
4718 FLD (f_operand1) = f_operand1;
4719 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_w_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4721 #if WITH_PROFILE_MODEL_P
4722 /* Record the fields for profiling. */
4723 if (PROFILE_MODEL_P (current_cpu))
4725 FLD (in_Rd) = f_operand2;
4726 FLD (in_Rs) = f_operand1;
4727 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4734 extract_sfmt_and_d_r:
4736 const IDESC *idesc = &crisv32f_insn_data[itype];
4737 CGEN_INSN_INT insn = base_insn;
4738 #define FLD(f) abuf->fields.sfmt_addc_m.f
4742 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4743 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4745 /* Record the fields for the semantic handler. */
4746 FLD (f_operand2) = f_operand2;
4747 FLD (f_operand1) = f_operand1;
4748 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));
4750 #if WITH_PROFILE_MODEL_P
4751 /* Record the fields for profiling. */
4752 if (PROFILE_MODEL_P (current_cpu))
4754 FLD (in_Rd) = f_operand2;
4755 FLD (in_Rs) = f_operand1;
4756 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4763 extract_sfmt_and_m_b_m:
4765 const IDESC *idesc = &crisv32f_insn_data[itype];
4766 CGEN_INSN_INT insn = base_insn;
4767 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4772 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4773 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4774 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4776 /* Record the fields for the semantic handler. */
4777 FLD (f_operand2) = f_operand2;
4778 FLD (f_operand1) = f_operand1;
4779 FLD (f_memmode) = f_memmode;
4780 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));
4782 #if WITH_PROFILE_MODEL_P
4783 /* Record the fields for profiling. */
4784 if (PROFILE_MODEL_P (current_cpu))
4786 FLD (in_Rd) = f_operand2;
4787 FLD (in_Rs) = f_operand1;
4788 FLD (out_Rs) = f_operand1;
4789 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
4796 extract_sfmt_and_m_w_m:
4798 const IDESC *idesc = &crisv32f_insn_data[itype];
4799 CGEN_INSN_INT insn = base_insn;
4800 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4805 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4806 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4807 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4809 /* Record the fields for the semantic handler. */
4810 FLD (f_operand2) = f_operand2;
4811 FLD (f_operand1) = f_operand1;
4812 FLD (f_memmode) = f_memmode;
4813 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));
4815 #if WITH_PROFILE_MODEL_P
4816 /* Record the fields for profiling. */
4817 if (PROFILE_MODEL_P (current_cpu))
4819 FLD (in_Rd) = f_operand2;
4820 FLD (in_Rs) = f_operand1;
4821 FLD (out_Rs) = f_operand1;
4822 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
4829 extract_sfmt_and_m_d_m:
4831 const IDESC *idesc = &crisv32f_insn_data[itype];
4832 CGEN_INSN_INT insn = base_insn;
4833 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4838 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4839 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4840 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4842 /* Record the fields for the semantic handler. */
4843 FLD (f_operand2) = f_operand2;
4844 FLD (f_operand1) = f_operand1;
4845 FLD (f_memmode) = f_memmode;
4846 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));
4848 #if WITH_PROFILE_MODEL_P
4849 /* Record the fields for profiling. */
4850 if (PROFILE_MODEL_P (current_cpu))
4852 FLD (in_Rd) = f_operand2;
4853 FLD (in_Rs) = f_operand1;
4854 FLD (out_Rs) = f_operand1;
4855 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
4862 extract_sfmt_andcbr:
4864 const IDESC *idesc = &crisv32f_insn_data[itype];
4865 CGEN_INSN_INT insn = base_insn;
4866 #define FLD(f) abuf->fields.sfmt_addcbr.f
4867 INT f_indir_pc__byte;
4869 /* Contents of trailing part of insn. */
4872 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4873 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4874 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4876 /* Record the fields for the semantic handler. */
4877 FLD (f_operand2) = f_operand2;
4878 FLD (f_indir_pc__byte) = f_indir_pc__byte;
4879 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));
4881 #if WITH_PROFILE_MODEL_P
4882 /* Record the fields for profiling. */
4883 if (PROFILE_MODEL_P (current_cpu))
4885 FLD (in_Rd) = f_operand2;
4886 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4893 extract_sfmt_andcwr:
4895 const IDESC *idesc = &crisv32f_insn_data[itype];
4896 CGEN_INSN_INT insn = base_insn;
4897 #define FLD(f) abuf->fields.sfmt_addcwr.f
4898 INT f_indir_pc__word;
4900 /* Contents of trailing part of insn. */
4903 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4904 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
4905 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4907 /* Record the fields for the semantic handler. */
4908 FLD (f_operand2) = f_operand2;
4909 FLD (f_indir_pc__word) = f_indir_pc__word;
4910 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));
4912 #if WITH_PROFILE_MODEL_P
4913 /* Record the fields for profiling. */
4914 if (PROFILE_MODEL_P (current_cpu))
4916 FLD (in_Rd) = f_operand2;
4917 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4924 extract_sfmt_andcdr:
4926 const IDESC *idesc = &crisv32f_insn_data[itype];
4927 CGEN_INSN_INT insn = base_insn;
4928 #define FLD(f) abuf->fields.sfmt_addcdr.f
4929 INT f_indir_pc__dword;
4931 /* Contents of trailing part of insn. */
4934 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4935 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
4936 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4938 /* Record the fields for the semantic handler. */
4939 FLD (f_operand2) = f_operand2;
4940 FLD (f_indir_pc__dword) = f_indir_pc__dword;
4941 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));
4943 #if WITH_PROFILE_MODEL_P
4944 /* Record the fields for profiling. */
4945 if (PROFILE_MODEL_P (current_cpu))
4947 FLD (in_Rd) = f_operand2;
4948 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4957 const IDESC *idesc = &crisv32f_insn_data[itype];
4958 CGEN_INSN_INT insn = base_insn;
4959 #define FLD(f) abuf->fields.sfmt_andq.f
4963 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4964 f_s6 = EXTRACT_LSB0_INT (insn, 16, 5, 6);
4966 /* Record the fields for the semantic handler. */
4967 FLD (f_operand2) = f_operand2;
4969 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));
4971 #if WITH_PROFILE_MODEL_P
4972 /* Record the fields for profiling. */
4973 if (PROFILE_MODEL_P (current_cpu))
4975 FLD (in_Rd) = f_operand2;
4976 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4985 const IDESC *idesc = &crisv32f_insn_data[itype];
4986 CGEN_INSN_INT insn = base_insn;
4987 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
4991 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4992 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4994 /* Record the fields for the semantic handler. */
4995 FLD (f_operand1) = f_operand1;
4996 FLD (f_operand2) = f_operand2;
4997 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));
4999 #if WITH_PROFILE_MODEL_P
5000 /* Record the fields for profiling. */
5001 if (PROFILE_MODEL_P (current_cpu))
5003 FLD (in_Rs) = f_operand1;
5004 FLD (out_Rs) = f_operand1;
5011 extract_sfmt_asrr_b_r:
5013 const IDESC *idesc = &crisv32f_insn_data[itype];
5014 CGEN_INSN_INT insn = base_insn;
5015 #define FLD(f) abuf->fields.sfmt_addc_m.f
5019 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5020 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5022 /* Record the fields for the semantic handler. */
5023 FLD (f_operand2) = f_operand2;
5024 FLD (f_operand1) = f_operand1;
5025 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_asrr_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
5027 #if WITH_PROFILE_MODEL_P
5028 /* Record the fields for profiling. */
5029 if (PROFILE_MODEL_P (current_cpu))
5031 FLD (in_Rd) = f_operand2;
5032 FLD (in_Rs) = f_operand1;
5033 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
5042 const IDESC *idesc = &crisv32f_insn_data[itype];
5043 CGEN_INSN_INT insn = base_insn;
5044 #define FLD(f) abuf->fields.sfmt_asrq.f
5048 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5049 f_u5 = EXTRACT_LSB0_UINT (insn, 16, 4, 5);
5051 /* Record the fields for the semantic handler. */
5052 FLD (f_operand2) = f_operand2;
5054 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));
5056 #if WITH_PROFILE_MODEL_P
5057 /* Record the fields for profiling. */
5058 if (PROFILE_MODEL_P (current_cpu))
5060 FLD (in_Rd) = f_operand2;
5061 FLD (out_Rd) = f_operand2;
5068 extract_sfmt_lsrr_b_r:
5070 const IDESC *idesc = &crisv32f_insn_data[itype];
5071 CGEN_INSN_INT insn = base_insn;
5072 #define FLD(f) abuf->fields.sfmt_addc_m.f
5076 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5077 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5079 /* Record the fields for the semantic handler. */
5080 FLD (f_operand2) = f_operand2;
5081 FLD (f_operand1) = f_operand1;
5082 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));
5084 #if WITH_PROFILE_MODEL_P
5085 /* Record the fields for profiling. */
5086 if (PROFILE_MODEL_P (current_cpu))
5088 FLD (in_Rd) = f_operand2;
5089 FLD (in_Rs) = f_operand1;
5090 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
5097 extract_sfmt_lsrr_d_r:
5099 const IDESC *idesc = &crisv32f_insn_data[itype];
5100 CGEN_INSN_INT insn = base_insn;
5101 #define FLD(f) abuf->fields.sfmt_addc_m.f
5105 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5106 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5108 /* Record the fields for the semantic handler. */
5109 FLD (f_operand2) = f_operand2;
5110 FLD (f_operand1) = f_operand1;
5111 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));
5113 #if WITH_PROFILE_MODEL_P
5114 /* Record the fields for profiling. */
5115 if (PROFILE_MODEL_P (current_cpu))
5117 FLD (in_Rd) = f_operand2;
5118 FLD (in_Rs) = f_operand1;
5119 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
5128 const IDESC *idesc = &crisv32f_insn_data[itype];
5129 CGEN_INSN_INT insn = base_insn;
5130 #define FLD(f) abuf->fields.sfmt_muls_b.f
5134 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5135 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5137 /* Record the fields for the semantic handler. */
5138 FLD (f_operand2) = f_operand2;
5139 FLD (f_operand1) = f_operand1;
5140 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));
5142 #if WITH_PROFILE_MODEL_P
5143 /* Record the fields for profiling. */
5144 if (PROFILE_MODEL_P (current_cpu))
5146 FLD (in_Rd) = f_operand2;
5147 FLD (in_Rs) = f_operand1;
5156 const IDESC *idesc = &crisv32f_insn_data[itype];
5157 CGEN_INSN_INT insn = base_insn;
5158 #define FLD(f) abuf->fields.sfmt_asrq.f
5162 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5163 f_u5 = EXTRACT_LSB0_UINT (insn, 16, 4, 5);
5165 /* Record the fields for the semantic handler. */
5166 FLD (f_operand2) = f_operand2;
5168 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));
5170 #if WITH_PROFILE_MODEL_P
5171 /* Record the fields for profiling. */
5172 if (PROFILE_MODEL_P (current_cpu))
5174 FLD (in_Rd) = f_operand2;
5183 const IDESC *idesc = &crisv32f_insn_data[itype];
5184 CGEN_INSN_INT insn = base_insn;
5185 #define FLD(f) abuf->fields.sfmt_setf.f
5190 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5191 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5192 f_dstsrc = ((((f_operand1) | (((f_operand2) << (4))))) & (255));
5194 /* Record the fields for the semantic handler. */
5195 FLD (f_dstsrc) = f_dstsrc;
5196 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_setf", "f_dstsrc 0x%x", 'x', f_dstsrc, (char *) 0));
5204 const IDESC *idesc = &crisv32f_insn_data[itype];
5205 #define FLD(f) abuf->fields.sfmt_rfe.f
5208 /* Record the fields for the semantic handler. */
5209 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rfe", (char *) 0));
5211 #if WITH_PROFILE_MODEL_P
5212 /* Record the fields for profiling. */
5213 if (PROFILE_MODEL_P (current_cpu))
5215 FLD (in_h_sr_SI_13) = 13;
5216 FLD (out_h_sr_SI_13) = 13;
5225 const IDESC *idesc = &crisv32f_insn_data[itype];
5226 #define FLD(f) abuf->fields.sfmt_rfe.f
5229 /* Record the fields for the semantic handler. */
5230 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sfe", (char *) 0));
5232 #if WITH_PROFILE_MODEL_P
5233 /* Record the fields for profiling. */
5234 if (PROFILE_MODEL_P (current_cpu))
5236 FLD (in_h_sr_SI_13) = 13;
5237 FLD (out_h_sr_SI_13) = 13;
5246 const IDESC *idesc = &crisv32f_insn_data[itype];
5247 #define FLD(f) abuf->fields.fmt_empty.f
5250 /* Record the fields for the semantic handler. */
5251 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rfg", (char *) 0));
5253 #if WITH_PROFILE_MODEL_P
5254 /* Record the fields for profiling. */
5255 if (PROFILE_MODEL_P (current_cpu))
5265 const IDESC *idesc = &crisv32f_insn_data[itype];
5266 #define FLD(f) abuf->fields.sfmt_rfe.f
5269 /* Record the fields for the semantic handler. */
5270 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rfn", (char *) 0));
5272 #if WITH_PROFILE_MODEL_P
5273 /* Record the fields for profiling. */
5274 if (PROFILE_MODEL_P (current_cpu))
5276 FLD (in_h_sr_SI_13) = 13;
5277 FLD (out_h_sr_SI_13) = 13;
5286 const IDESC *idesc = &crisv32f_insn_data[itype];
5287 #define FLD(f) abuf->fields.fmt_empty.f
5290 /* Record the fields for the semantic handler. */
5291 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_halt", (char *) 0));
5293 #if WITH_PROFILE_MODEL_P
5294 /* Record the fields for profiling. */
5295 if (PROFILE_MODEL_P (current_cpu))
5305 const IDESC *idesc = &crisv32f_insn_data[itype];
5306 CGEN_INSN_INT insn = base_insn;
5307 #define FLD(f) abuf->fields.sfmt_bcc_b.f
5313 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5314 f_disp9_lo = EXTRACT_LSB0_UINT (insn, 16, 7, 7);
5315 f_disp9_hi = EXTRACT_LSB0_INT (insn, 16, 0, 1);
5319 tmp_abslo = ((f_disp9_lo) << (1));
5320 tmp_absval = ((((((f_disp9_hi) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo));
5321 f_disp9 = ((((pc) + (tmp_absval))) + (((GET_H_V32_V32 ()) ? (0) : (2))));
5324 /* Record the fields for the semantic handler. */
5325 FLD (f_operand2) = f_operand2;
5326 FLD (i_o_pcrel) = f_disp9;
5327 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));
5329 #if WITH_PROFILE_MODEL_P
5330 /* Record the fields for profiling. */
5331 if (PROFILE_MODEL_P (current_cpu))
5341 const IDESC *idesc = &crisv32f_insn_data[itype];
5342 CGEN_INSN_INT insn = base_insn;
5343 #define FLD(f) abuf->fields.sfmt_bcc_b.f
5348 f_disp9_lo = EXTRACT_LSB0_UINT (insn, 16, 7, 7);
5349 f_disp9_hi = EXTRACT_LSB0_INT (insn, 16, 0, 1);
5353 tmp_abslo = ((f_disp9_lo) << (1));
5354 tmp_absval = ((((((f_disp9_hi) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo));
5355 f_disp9 = ((((pc) + (tmp_absval))) + (((GET_H_V32_V32 ()) ? (0) : (2))));
5358 /* Record the fields for the semantic handler. */
5359 FLD (i_o_pcrel) = f_disp9;
5360 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ba_b", "o_pcrel 0x%x", 'x', f_disp9, (char *) 0));
5362 #if WITH_PROFILE_MODEL_P
5363 /* Record the fields for profiling. */
5364 if (PROFILE_MODEL_P (current_cpu))
5374 const IDESC *idesc = &crisv32f_insn_data[itype];
5375 CGEN_INSN_INT insn = base_insn;
5376 #define FLD(f) abuf->fields.sfmt_bcc_w.f
5377 SI f_indir_pc__word_pcrel;
5379 /* Contents of trailing part of insn. */
5382 word_1 = GETIMEMUSI (current_cpu, pc + 2);
5383 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))))));
5384 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5386 /* Record the fields for the semantic handler. */
5387 FLD (f_operand2) = f_operand2;
5388 FLD (i_o_word_pcrel) = f_indir_pc__word_pcrel;
5389 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));
5391 #if WITH_PROFILE_MODEL_P
5392 /* Record the fields for profiling. */
5393 if (PROFILE_MODEL_P (current_cpu))
5403 const IDESC *idesc = &crisv32f_insn_data[itype];
5404 CGEN_INSN_INT insn = base_insn;
5405 #define FLD(f) abuf->fields.sfmt_bcc_w.f
5406 SI f_indir_pc__word_pcrel;
5407 /* Contents of trailing part of insn. */
5410 word_1 = GETIMEMUSI (current_cpu, pc + 2);
5411 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))))));
5413 /* Record the fields for the semantic handler. */
5414 FLD (i_o_word_pcrel) = f_indir_pc__word_pcrel;
5415 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ba_w", "o_word_pcrel 0x%x", 'x', f_indir_pc__word_pcrel, (char *) 0));
5417 #if WITH_PROFILE_MODEL_P
5418 /* Record the fields for profiling. */
5419 if (PROFILE_MODEL_P (current_cpu))
5429 const IDESC *idesc = &crisv32f_insn_data[itype];
5430 CGEN_INSN_INT insn = base_insn;
5431 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
5435 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5436 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5438 /* Record the fields for the semantic handler. */
5439 FLD (f_operand1) = f_operand1;
5440 FLD (f_operand2) = f_operand2;
5441 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));
5443 #if WITH_PROFILE_MODEL_P
5444 /* Record the fields for profiling. */
5445 if (PROFILE_MODEL_P (current_cpu))
5447 FLD (in_Rs) = f_operand1;
5448 FLD (out_Pd) = f_operand2;
5457 const IDESC *idesc = &crisv32f_insn_data[itype];
5458 CGEN_INSN_INT insn = base_insn;
5459 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p0.f
5460 INT f_indir_pc__dword;
5462 /* Contents of trailing part of insn. */
5465 word_1 = GETIMEMUSI (current_cpu, pc + 2);
5466 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
5467 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5469 /* Record the fields for the semantic handler. */
5470 FLD (f_indir_pc__dword) = f_indir_pc__dword;
5471 FLD (f_operand2) = f_operand2;
5472 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));
5474 #if WITH_PROFILE_MODEL_P
5475 /* Record the fields for profiling. */
5476 if (PROFILE_MODEL_P (current_cpu))
5478 FLD (out_Pd) = f_operand2;
5485 extract_sfmt_jump_p:
5487 const IDESC *idesc = &crisv32f_insn_data[itype];
5488 CGEN_INSN_INT insn = base_insn;
5489 #define FLD(f) abuf->fields.sfmt_mcp.f
5492 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5494 /* Record the fields for the semantic handler. */
5495 FLD (f_operand2) = f_operand2;
5496 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jump_p", "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
5498 #if WITH_PROFILE_MODEL_P
5499 /* Record the fields for profiling. */
5500 if (PROFILE_MODEL_P (current_cpu))
5502 FLD (in_Ps) = f_operand2;
5511 const IDESC *idesc = &crisv32f_insn_data[itype];
5512 CGEN_INSN_INT insn = base_insn;
5513 #define FLD(f) abuf->fields.sfmt_bas_c.f
5514 SI f_indir_pc__dword_pcrel;
5516 /* Contents of trailing part of insn. */
5519 word_1 = GETIMEMUSI (current_cpu, pc + 2);
5520 f_indir_pc__dword_pcrel = ((pc) + ((0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0))));
5521 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5523 /* Record the fields for the semantic handler. */
5524 FLD (f_operand2) = f_operand2;
5525 FLD (i_const32_pcrel) = f_indir_pc__dword_pcrel;
5526 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));
5528 #if WITH_PROFILE_MODEL_P
5529 /* Record the fields for profiling. */
5530 if (PROFILE_MODEL_P (current_cpu))
5532 FLD (out_Pd) = f_operand2;
5539 extract_sfmt_jasc_r:
5541 const IDESC *idesc = &crisv32f_insn_data[itype];
5542 CGEN_INSN_INT insn = base_insn;
5543 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
5547 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5548 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5550 /* Record the fields for the semantic handler. */
5551 FLD (f_operand1) = f_operand1;
5552 FLD (f_operand2) = f_operand2;
5553 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));
5555 #if WITH_PROFILE_MODEL_P
5556 /* Record the fields for profiling. */
5557 if (PROFILE_MODEL_P (current_cpu))
5559 FLD (in_Rs) = f_operand1;
5560 FLD (out_Pd) = f_operand2;
5569 const IDESC *idesc = &crisv32f_insn_data[itype];
5570 CGEN_INSN_INT insn = base_insn;
5571 #define FLD(f) abuf->fields.sfmt_break.f
5574 f_u4 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5576 /* Record the fields for the semantic handler. */
5578 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_break", "f_u4 0x%x", 'x', f_u4, (char *) 0));
5580 #if WITH_PROFILE_MODEL_P
5581 /* Record the fields for profiling. */
5582 if (PROFILE_MODEL_P (current_cpu))
5590 extract_sfmt_bound_cb:
5592 const IDESC *idesc = &crisv32f_insn_data[itype];
5593 CGEN_INSN_INT insn = base_insn;
5594 #define FLD(f) abuf->fields.sfmt_bound_cb.f
5595 INT f_indir_pc__byte;
5597 /* Contents of trailing part of insn. */
5600 word_1 = GETIMEMUSI (current_cpu, pc + 2);
5601 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
5602 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5604 /* Record the fields for the semantic handler. */
5605 FLD (f_operand2) = f_operand2;
5606 FLD (f_indir_pc__byte) = f_indir_pc__byte;
5607 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));
5609 #if WITH_PROFILE_MODEL_P
5610 /* Record the fields for profiling. */
5611 if (PROFILE_MODEL_P (current_cpu))
5613 FLD (in_Rd) = f_operand2;
5614 FLD (out_Rd) = f_operand2;
5621 extract_sfmt_bound_cw:
5623 const IDESC *idesc = &crisv32f_insn_data[itype];
5624 CGEN_INSN_INT insn = base_insn;
5625 #define FLD(f) abuf->fields.sfmt_bound_cw.f
5626 INT f_indir_pc__word;
5628 /* Contents of trailing part of insn. */
5631 word_1 = GETIMEMUSI (current_cpu, pc + 2);
5632 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
5633 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5635 /* Record the fields for the semantic handler. */
5636 FLD (f_operand2) = f_operand2;
5637 FLD (f_indir_pc__word) = f_indir_pc__word;
5638 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));
5640 #if WITH_PROFILE_MODEL_P
5641 /* Record the fields for profiling. */
5642 if (PROFILE_MODEL_P (current_cpu))
5644 FLD (in_Rd) = f_operand2;
5645 FLD (out_Rd) = f_operand2;
5652 extract_sfmt_bound_cd:
5654 const IDESC *idesc = &crisv32f_insn_data[itype];
5655 CGEN_INSN_INT insn = base_insn;
5656 #define FLD(f) abuf->fields.sfmt_bound_cd.f
5657 INT f_indir_pc__dword;
5659 /* Contents of trailing part of insn. */
5662 word_1 = GETIMEMUSI (current_cpu, pc + 2);
5663 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
5664 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5666 /* Record the fields for the semantic handler. */
5667 FLD (f_operand2) = f_operand2;
5668 FLD (f_indir_pc__dword) = f_indir_pc__dword;
5669 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));
5671 #if WITH_PROFILE_MODEL_P
5672 /* Record the fields for profiling. */
5673 if (PROFILE_MODEL_P (current_cpu))
5675 FLD (in_Rd) = f_operand2;
5676 FLD (out_Rd) = f_operand2;
5685 const IDESC *idesc = &crisv32f_insn_data[itype];
5686 CGEN_INSN_INT insn = base_insn;
5687 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
5691 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5692 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5694 /* Record the fields for the semantic handler. */
5695 FLD (f_operand2) = f_operand2;
5696 FLD (f_operand1) = f_operand1;
5697 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));
5699 #if WITH_PROFILE_MODEL_P
5700 /* Record the fields for profiling. */
5701 if (PROFILE_MODEL_P (current_cpu))
5703 FLD (out_Rs) = f_operand1;
5712 const IDESC *idesc = &crisv32f_insn_data[itype];
5713 CGEN_INSN_INT insn = base_insn;
5714 #define FLD(f) abuf->fields.sfmt_addoq.f
5718 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5719 f_s8 = EXTRACT_LSB0_INT (insn, 16, 7, 8);
5721 /* Record the fields for the semantic handler. */
5722 FLD (f_operand2) = f_operand2;
5724 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));
5726 #if WITH_PROFILE_MODEL_P
5727 /* Record the fields for profiling. */
5728 if (PROFILE_MODEL_P (current_cpu))
5730 FLD (in_Rd) = f_operand2;
5737 extract_sfmt_addo_m_b_m:
5739 const IDESC *idesc = &crisv32f_insn_data[itype];
5740 CGEN_INSN_INT insn = base_insn;
5741 #define FLD(f) abuf->fields.sfmt_addc_m.f
5746 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5747 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5748 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5750 /* Record the fields for the semantic handler. */
5751 FLD (f_operand2) = f_operand2;
5752 FLD (f_operand1) = f_operand1;
5753 FLD (f_memmode) = f_memmode;
5754 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));
5756 #if WITH_PROFILE_MODEL_P
5757 /* Record the fields for profiling. */
5758 if (PROFILE_MODEL_P (current_cpu))
5760 FLD (in_Rd) = f_operand2;
5761 FLD (in_Rs) = f_operand1;
5762 FLD (out_Rs) = f_operand1;
5769 extract_sfmt_addo_m_w_m:
5771 const IDESC *idesc = &crisv32f_insn_data[itype];
5772 CGEN_INSN_INT insn = base_insn;
5773 #define FLD(f) abuf->fields.sfmt_addc_m.f
5778 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5779 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5780 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5782 /* Record the fields for the semantic handler. */
5783 FLD (f_operand2) = f_operand2;
5784 FLD (f_operand1) = f_operand1;
5785 FLD (f_memmode) = f_memmode;
5786 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));
5788 #if WITH_PROFILE_MODEL_P
5789 /* Record the fields for profiling. */
5790 if (PROFILE_MODEL_P (current_cpu))
5792 FLD (in_Rd) = f_operand2;
5793 FLD (in_Rs) = f_operand1;
5794 FLD (out_Rs) = f_operand1;
5801 extract_sfmt_addo_m_d_m:
5803 const IDESC *idesc = &crisv32f_insn_data[itype];
5804 CGEN_INSN_INT insn = base_insn;
5805 #define FLD(f) abuf->fields.sfmt_addc_m.f
5810 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5811 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5812 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5814 /* Record the fields for the semantic handler. */
5815 FLD (f_operand2) = f_operand2;
5816 FLD (f_operand1) = f_operand1;
5817 FLD (f_memmode) = f_memmode;
5818 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));
5820 #if WITH_PROFILE_MODEL_P
5821 /* Record the fields for profiling. */
5822 if (PROFILE_MODEL_P (current_cpu))
5824 FLD (in_Rd) = f_operand2;
5825 FLD (in_Rs) = f_operand1;
5826 FLD (out_Rs) = f_operand1;
5833 extract_sfmt_addo_cb:
5835 const IDESC *idesc = &crisv32f_insn_data[itype];
5836 CGEN_INSN_INT insn = base_insn;
5837 #define FLD(f) abuf->fields.sfmt_bound_cb.f
5838 INT f_indir_pc__byte;
5840 /* Contents of trailing part of insn. */
5843 word_1 = GETIMEMUSI (current_cpu, pc + 2);
5844 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
5845 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5847 /* Record the fields for the semantic handler. */
5848 FLD (f_operand2) = f_operand2;
5849 FLD (f_indir_pc__byte) = f_indir_pc__byte;
5850 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));
5852 #if WITH_PROFILE_MODEL_P
5853 /* Record the fields for profiling. */
5854 if (PROFILE_MODEL_P (current_cpu))
5856 FLD (in_Rd) = f_operand2;
5863 extract_sfmt_addo_cw:
5865 const IDESC *idesc = &crisv32f_insn_data[itype];
5866 CGEN_INSN_INT insn = base_insn;
5867 #define FLD(f) abuf->fields.sfmt_bound_cw.f
5868 INT f_indir_pc__word;
5870 /* Contents of trailing part of insn. */
5873 word_1 = GETIMEMUSI (current_cpu, pc + 2);
5874 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
5875 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5877 /* Record the fields for the semantic handler. */
5878 FLD (f_operand2) = f_operand2;
5879 FLD (f_indir_pc__word) = f_indir_pc__word;
5880 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));
5882 #if WITH_PROFILE_MODEL_P
5883 /* Record the fields for profiling. */
5884 if (PROFILE_MODEL_P (current_cpu))
5886 FLD (in_Rd) = f_operand2;
5893 extract_sfmt_addo_cd:
5895 const IDESC *idesc = &crisv32f_insn_data[itype];
5896 CGEN_INSN_INT insn = base_insn;
5897 #define FLD(f) abuf->fields.sfmt_bound_cd.f
5898 INT f_indir_pc__dword;
5900 /* Contents of trailing part of insn. */
5903 word_1 = GETIMEMUSI (current_cpu, pc + 2);
5904 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
5905 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5907 /* Record the fields for the semantic handler. */
5908 FLD (f_operand2) = f_operand2;
5909 FLD (f_indir_pc__dword) = f_indir_pc__dword;
5910 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));
5912 #if WITH_PROFILE_MODEL_P
5913 /* Record the fields for profiling. */
5914 if (PROFILE_MODEL_P (current_cpu))
5916 FLD (in_Rd) = f_operand2;
5923 extract_sfmt_addi_acr_b_r:
5925 const IDESC *idesc = &crisv32f_insn_data[itype];
5926 CGEN_INSN_INT insn = base_insn;
5927 #define FLD(f) abuf->fields.sfmt_muls_b.f
5931 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5932 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5934 /* Record the fields for the semantic handler. */
5935 FLD (f_operand2) = f_operand2;
5936 FLD (f_operand1) = f_operand1;
5937 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));
5939 #if WITH_PROFILE_MODEL_P
5940 /* Record the fields for profiling. */
5941 if (PROFILE_MODEL_P (current_cpu))
5943 FLD (in_Rd) = f_operand2;
5944 FLD (in_Rs) = f_operand1;
5953 const IDESC *idesc = &crisv32f_insn_data[itype];
5954 CGEN_INSN_INT insn = base_insn;
5955 #define FLD(f) abuf->fields.sfmt_mcp.f
5958 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5960 /* Record the fields for the semantic handler. */
5961 FLD (f_operand1) = f_operand1;
5962 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fidxi", "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
5964 #if WITH_PROFILE_MODEL_P
5965 /* Record the fields for profiling. */
5966 if (PROFILE_MODEL_P (current_cpu))
5968 FLD (in_Rs) = f_operand1;