1 /* Simulator instruction decoder for crisv32f.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright 1996-2004 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 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25 #define WANT_CPU crisv32f
26 #define WANT_CPU_CRISV32F
29 #include "sim-assert.h"
31 /* The instruction descriptor array.
32 This is computed at runtime. Space for it is not malloc'd to save a
33 teensy bit of cpu in the decoder. Moving it to malloc space is trivial
34 but won't be done until necessary (we don't currently support the runtime
35 addition of instructions nor an SMP machine with different cpus). */
36 static IDESC crisv32f_insn_data[CRISV32F_INSN__MAX];
38 /* Commas between elements are contained in the macros.
39 Some of these are conditionally compiled out. */
41 static const struct insn_sem crisv32f_insn_sem[] =
43 { VIRTUAL_INSN_X_INVALID, CRISV32F_INSN_X_INVALID, CRISV32F_SFMT_EMPTY },
44 { VIRTUAL_INSN_X_AFTER, CRISV32F_INSN_X_AFTER, CRISV32F_SFMT_EMPTY },
45 { VIRTUAL_INSN_X_BEFORE, CRISV32F_INSN_X_BEFORE, CRISV32F_SFMT_EMPTY },
46 { VIRTUAL_INSN_X_CTI_CHAIN, CRISV32F_INSN_X_CTI_CHAIN, CRISV32F_SFMT_EMPTY },
47 { VIRTUAL_INSN_X_CHAIN, CRISV32F_INSN_X_CHAIN, CRISV32F_SFMT_EMPTY },
48 { VIRTUAL_INSN_X_BEGIN, CRISV32F_INSN_X_BEGIN, CRISV32F_SFMT_EMPTY },
49 { CRIS_INSN_MOVE_B_R, CRISV32F_INSN_MOVE_B_R, CRISV32F_SFMT_MOVE_B_R },
50 { CRIS_INSN_MOVE_W_R, CRISV32F_INSN_MOVE_W_R, CRISV32F_SFMT_MOVE_B_R },
51 { CRIS_INSN_MOVE_D_R, CRISV32F_INSN_MOVE_D_R, CRISV32F_SFMT_MOVE_D_R },
52 { CRIS_INSN_MOVEQ, CRISV32F_INSN_MOVEQ, CRISV32F_SFMT_MOVEQ },
53 { CRIS_INSN_MOVS_B_R, CRISV32F_INSN_MOVS_B_R, CRISV32F_SFMT_MOVS_B_R },
54 { CRIS_INSN_MOVS_W_R, CRISV32F_INSN_MOVS_W_R, CRISV32F_SFMT_MOVS_B_R },
55 { CRIS_INSN_MOVU_B_R, CRISV32F_INSN_MOVU_B_R, CRISV32F_SFMT_MOVS_B_R },
56 { CRIS_INSN_MOVU_W_R, CRISV32F_INSN_MOVU_W_R, CRISV32F_SFMT_MOVS_B_R },
57 { CRIS_INSN_MOVECBR, CRISV32F_INSN_MOVECBR, CRISV32F_SFMT_MOVECBR },
58 { CRIS_INSN_MOVECWR, CRISV32F_INSN_MOVECWR, CRISV32F_SFMT_MOVECWR },
59 { CRIS_INSN_MOVECDR, CRISV32F_INSN_MOVECDR, CRISV32F_SFMT_MOVECDR },
60 { CRIS_INSN_MOVSCBR, CRISV32F_INSN_MOVSCBR, CRISV32F_SFMT_MOVSCBR },
61 { CRIS_INSN_MOVSCWR, CRISV32F_INSN_MOVSCWR, CRISV32F_SFMT_MOVSCWR },
62 { CRIS_INSN_MOVUCBR, CRISV32F_INSN_MOVUCBR, CRISV32F_SFMT_MOVUCBR },
63 { CRIS_INSN_MOVUCWR, CRISV32F_INSN_MOVUCWR, CRISV32F_SFMT_MOVUCWR },
64 { CRIS_INSN_ADDQ, CRISV32F_INSN_ADDQ, CRISV32F_SFMT_ADDQ },
65 { CRIS_INSN_SUBQ, CRISV32F_INSN_SUBQ, CRISV32F_SFMT_ADDQ },
66 { CRIS_INSN_CMP_R_B_R, CRISV32F_INSN_CMP_R_B_R, CRISV32F_SFMT_CMP_R_B_R },
67 { CRIS_INSN_CMP_R_W_R, CRISV32F_INSN_CMP_R_W_R, CRISV32F_SFMT_CMP_R_B_R },
68 { CRIS_INSN_CMP_R_D_R, CRISV32F_INSN_CMP_R_D_R, CRISV32F_SFMT_CMP_R_B_R },
69 { CRIS_INSN_CMP_M_B_M, CRISV32F_INSN_CMP_M_B_M, CRISV32F_SFMT_CMP_M_B_M },
70 { CRIS_INSN_CMP_M_W_M, CRISV32F_INSN_CMP_M_W_M, CRISV32F_SFMT_CMP_M_W_M },
71 { CRIS_INSN_CMP_M_D_M, CRISV32F_INSN_CMP_M_D_M, CRISV32F_SFMT_CMP_M_D_M },
72 { CRIS_INSN_CMPCBR, CRISV32F_INSN_CMPCBR, CRISV32F_SFMT_CMPCBR },
73 { CRIS_INSN_CMPCWR, CRISV32F_INSN_CMPCWR, CRISV32F_SFMT_CMPCWR },
74 { CRIS_INSN_CMPCDR, CRISV32F_INSN_CMPCDR, CRISV32F_SFMT_CMPCDR },
75 { CRIS_INSN_CMPQ, CRISV32F_INSN_CMPQ, CRISV32F_SFMT_CMPQ },
76 { CRIS_INSN_CMPS_M_B_M, CRISV32F_INSN_CMPS_M_B_M, CRISV32F_SFMT_CMP_M_B_M },
77 { CRIS_INSN_CMPS_M_W_M, CRISV32F_INSN_CMPS_M_W_M, CRISV32F_SFMT_CMP_M_W_M },
78 { CRIS_INSN_CMPSCBR, CRISV32F_INSN_CMPSCBR, CRISV32F_SFMT_CMPCBR },
79 { CRIS_INSN_CMPSCWR, CRISV32F_INSN_CMPSCWR, CRISV32F_SFMT_CMPCWR },
80 { CRIS_INSN_CMPU_M_B_M, CRISV32F_INSN_CMPU_M_B_M, CRISV32F_SFMT_CMP_M_B_M },
81 { CRIS_INSN_CMPU_M_W_M, CRISV32F_INSN_CMPU_M_W_M, CRISV32F_SFMT_CMP_M_W_M },
82 { CRIS_INSN_CMPUCBR, CRISV32F_INSN_CMPUCBR, CRISV32F_SFMT_CMPUCBR },
83 { CRIS_INSN_CMPUCWR, CRISV32F_INSN_CMPUCWR, CRISV32F_SFMT_CMPUCWR },
84 { CRIS_INSN_MOVE_M_B_M, CRISV32F_INSN_MOVE_M_B_M, CRISV32F_SFMT_MOVE_M_B_M },
85 { CRIS_INSN_MOVE_M_W_M, CRISV32F_INSN_MOVE_M_W_M, CRISV32F_SFMT_MOVE_M_W_M },
86 { CRIS_INSN_MOVE_M_D_M, CRISV32F_INSN_MOVE_M_D_M, CRISV32F_SFMT_MOVE_M_D_M },
87 { CRIS_INSN_MOVS_M_B_M, CRISV32F_INSN_MOVS_M_B_M, CRISV32F_SFMT_MOVS_M_B_M },
88 { CRIS_INSN_MOVS_M_W_M, CRISV32F_INSN_MOVS_M_W_M, CRISV32F_SFMT_MOVS_M_W_M },
89 { CRIS_INSN_MOVU_M_B_M, CRISV32F_INSN_MOVU_M_B_M, CRISV32F_SFMT_MOVS_M_B_M },
90 { CRIS_INSN_MOVU_M_W_M, CRISV32F_INSN_MOVU_M_W_M, CRISV32F_SFMT_MOVS_M_W_M },
91 { CRIS_INSN_MOVE_R_SPRV32, CRISV32F_INSN_MOVE_R_SPRV32, CRISV32F_SFMT_MOVE_R_SPRV32 },
92 { CRIS_INSN_MOVE_SPR_RV32, CRISV32F_INSN_MOVE_SPR_RV32, CRISV32F_SFMT_MOVE_SPR_RV32 },
93 { CRIS_INSN_MOVE_M_SPRV32, CRISV32F_INSN_MOVE_M_SPRV32, CRISV32F_SFMT_MOVE_M_SPRV32 },
94 { CRIS_INSN_MOVE_C_SPRV32_P0, CRISV32F_INSN_MOVE_C_SPRV32_P0, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
95 { CRIS_INSN_MOVE_C_SPRV32_P1, CRISV32F_INSN_MOVE_C_SPRV32_P1, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
96 { CRIS_INSN_MOVE_C_SPRV32_P2, CRISV32F_INSN_MOVE_C_SPRV32_P2, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
97 { CRIS_INSN_MOVE_C_SPRV32_P3, CRISV32F_INSN_MOVE_C_SPRV32_P3, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
98 { CRIS_INSN_MOVE_C_SPRV32_P4, CRISV32F_INSN_MOVE_C_SPRV32_P4, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
99 { CRIS_INSN_MOVE_C_SPRV32_P5, CRISV32F_INSN_MOVE_C_SPRV32_P5, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
100 { CRIS_INSN_MOVE_C_SPRV32_P6, CRISV32F_INSN_MOVE_C_SPRV32_P6, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
101 { CRIS_INSN_MOVE_C_SPRV32_P7, CRISV32F_INSN_MOVE_C_SPRV32_P7, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
102 { CRIS_INSN_MOVE_C_SPRV32_P8, CRISV32F_INSN_MOVE_C_SPRV32_P8, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
103 { CRIS_INSN_MOVE_C_SPRV32_P9, CRISV32F_INSN_MOVE_C_SPRV32_P9, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
104 { CRIS_INSN_MOVE_C_SPRV32_P10, CRISV32F_INSN_MOVE_C_SPRV32_P10, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
105 { CRIS_INSN_MOVE_C_SPRV32_P11, CRISV32F_INSN_MOVE_C_SPRV32_P11, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
106 { CRIS_INSN_MOVE_C_SPRV32_P12, CRISV32F_INSN_MOVE_C_SPRV32_P12, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
107 { CRIS_INSN_MOVE_C_SPRV32_P13, CRISV32F_INSN_MOVE_C_SPRV32_P13, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
108 { CRIS_INSN_MOVE_C_SPRV32_P14, CRISV32F_INSN_MOVE_C_SPRV32_P14, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
109 { CRIS_INSN_MOVE_C_SPRV32_P15, CRISV32F_INSN_MOVE_C_SPRV32_P15, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
110 { CRIS_INSN_MOVE_SPR_MV32, CRISV32F_INSN_MOVE_SPR_MV32, CRISV32F_SFMT_MOVE_SPR_MV32 },
111 { CRIS_INSN_MOVE_SS_R, CRISV32F_INSN_MOVE_SS_R, CRISV32F_SFMT_MOVE_SS_R },
112 { CRIS_INSN_MOVE_R_SS, CRISV32F_INSN_MOVE_R_SS, CRISV32F_SFMT_MOVE_R_SS },
113 { CRIS_INSN_MOVEM_R_M_V32, CRISV32F_INSN_MOVEM_R_M_V32, CRISV32F_SFMT_MOVEM_R_M_V32 },
114 { CRIS_INSN_MOVEM_M_R_V32, CRISV32F_INSN_MOVEM_M_R_V32, CRISV32F_SFMT_MOVEM_M_R_V32 },
115 { CRIS_INSN_ADD_B_R, CRISV32F_INSN_ADD_B_R, CRISV32F_SFMT_ADD_B_R },
116 { CRIS_INSN_ADD_W_R, CRISV32F_INSN_ADD_W_R, CRISV32F_SFMT_ADD_B_R },
117 { CRIS_INSN_ADD_D_R, CRISV32F_INSN_ADD_D_R, CRISV32F_SFMT_ADD_D_R },
118 { CRIS_INSN_ADD_M_B_M, CRISV32F_INSN_ADD_M_B_M, CRISV32F_SFMT_ADD_M_B_M },
119 { CRIS_INSN_ADD_M_W_M, CRISV32F_INSN_ADD_M_W_M, CRISV32F_SFMT_ADD_M_W_M },
120 { CRIS_INSN_ADD_M_D_M, CRISV32F_INSN_ADD_M_D_M, CRISV32F_SFMT_ADD_M_D_M },
121 { CRIS_INSN_ADDCBR, CRISV32F_INSN_ADDCBR, CRISV32F_SFMT_ADDCBR },
122 { CRIS_INSN_ADDCWR, CRISV32F_INSN_ADDCWR, CRISV32F_SFMT_ADDCWR },
123 { CRIS_INSN_ADDCDR, CRISV32F_INSN_ADDCDR, CRISV32F_SFMT_ADDCDR },
124 { CRIS_INSN_ADDS_B_R, CRISV32F_INSN_ADDS_B_R, CRISV32F_SFMT_ADD_D_R },
125 { CRIS_INSN_ADDS_W_R, CRISV32F_INSN_ADDS_W_R, CRISV32F_SFMT_ADD_D_R },
126 { CRIS_INSN_ADDS_M_B_M, CRISV32F_INSN_ADDS_M_B_M, CRISV32F_SFMT_ADDS_M_B_M },
127 { CRIS_INSN_ADDS_M_W_M, CRISV32F_INSN_ADDS_M_W_M, CRISV32F_SFMT_ADDS_M_W_M },
128 { CRIS_INSN_ADDSCBR, CRISV32F_INSN_ADDSCBR, CRISV32F_SFMT_ADDSCBR },
129 { CRIS_INSN_ADDSCWR, CRISV32F_INSN_ADDSCWR, CRISV32F_SFMT_ADDSCWR },
130 { CRIS_INSN_ADDU_B_R, CRISV32F_INSN_ADDU_B_R, CRISV32F_SFMT_ADD_D_R },
131 { CRIS_INSN_ADDU_W_R, CRISV32F_INSN_ADDU_W_R, CRISV32F_SFMT_ADD_D_R },
132 { CRIS_INSN_ADDU_M_B_M, CRISV32F_INSN_ADDU_M_B_M, CRISV32F_SFMT_ADDS_M_B_M },
133 { CRIS_INSN_ADDU_M_W_M, CRISV32F_INSN_ADDU_M_W_M, CRISV32F_SFMT_ADDS_M_W_M },
134 { CRIS_INSN_ADDUCBR, CRISV32F_INSN_ADDUCBR, CRISV32F_SFMT_ADDSCBR },
135 { CRIS_INSN_ADDUCWR, CRISV32F_INSN_ADDUCWR, CRISV32F_SFMT_ADDSCWR },
136 { CRIS_INSN_SUB_B_R, CRISV32F_INSN_SUB_B_R, CRISV32F_SFMT_ADD_B_R },
137 { CRIS_INSN_SUB_W_R, CRISV32F_INSN_SUB_W_R, CRISV32F_SFMT_ADD_B_R },
138 { CRIS_INSN_SUB_D_R, CRISV32F_INSN_SUB_D_R, CRISV32F_SFMT_ADD_D_R },
139 { CRIS_INSN_SUB_M_B_M, CRISV32F_INSN_SUB_M_B_M, CRISV32F_SFMT_ADD_M_B_M },
140 { CRIS_INSN_SUB_M_W_M, CRISV32F_INSN_SUB_M_W_M, CRISV32F_SFMT_ADD_M_W_M },
141 { CRIS_INSN_SUB_M_D_M, CRISV32F_INSN_SUB_M_D_M, CRISV32F_SFMT_ADD_M_D_M },
142 { CRIS_INSN_SUBCBR, CRISV32F_INSN_SUBCBR, CRISV32F_SFMT_ADDCBR },
143 { CRIS_INSN_SUBCWR, CRISV32F_INSN_SUBCWR, CRISV32F_SFMT_ADDCWR },
144 { CRIS_INSN_SUBCDR, CRISV32F_INSN_SUBCDR, CRISV32F_SFMT_ADDCDR },
145 { CRIS_INSN_SUBS_B_R, CRISV32F_INSN_SUBS_B_R, CRISV32F_SFMT_ADD_D_R },
146 { CRIS_INSN_SUBS_W_R, CRISV32F_INSN_SUBS_W_R, CRISV32F_SFMT_ADD_D_R },
147 { CRIS_INSN_SUBS_M_B_M, CRISV32F_INSN_SUBS_M_B_M, CRISV32F_SFMT_ADDS_M_B_M },
148 { CRIS_INSN_SUBS_M_W_M, CRISV32F_INSN_SUBS_M_W_M, CRISV32F_SFMT_ADDS_M_W_M },
149 { CRIS_INSN_SUBSCBR, CRISV32F_INSN_SUBSCBR, CRISV32F_SFMT_ADDSCBR },
150 { CRIS_INSN_SUBSCWR, CRISV32F_INSN_SUBSCWR, CRISV32F_SFMT_ADDSCWR },
151 { CRIS_INSN_SUBU_B_R, CRISV32F_INSN_SUBU_B_R, CRISV32F_SFMT_ADD_D_R },
152 { CRIS_INSN_SUBU_W_R, CRISV32F_INSN_SUBU_W_R, CRISV32F_SFMT_ADD_D_R },
153 { CRIS_INSN_SUBU_M_B_M, CRISV32F_INSN_SUBU_M_B_M, CRISV32F_SFMT_ADDS_M_B_M },
154 { CRIS_INSN_SUBU_M_W_M, CRISV32F_INSN_SUBU_M_W_M, CRISV32F_SFMT_ADDS_M_W_M },
155 { CRIS_INSN_SUBUCBR, CRISV32F_INSN_SUBUCBR, CRISV32F_SFMT_ADDSCBR },
156 { CRIS_INSN_SUBUCWR, CRISV32F_INSN_SUBUCWR, CRISV32F_SFMT_ADDSCWR },
157 { CRIS_INSN_ADDC_R, CRISV32F_INSN_ADDC_R, CRISV32F_SFMT_ADD_D_R },
158 { CRIS_INSN_ADDC_M, CRISV32F_INSN_ADDC_M, CRISV32F_SFMT_ADDC_M },
159 { CRIS_INSN_ADDC_C, CRISV32F_INSN_ADDC_C, CRISV32F_SFMT_ADDCDR },
160 { CRIS_INSN_LAPC_D, CRISV32F_INSN_LAPC_D, CRISV32F_SFMT_LAPC_D },
161 { CRIS_INSN_LAPCQ, CRISV32F_INSN_LAPCQ, CRISV32F_SFMT_LAPCQ },
162 { CRIS_INSN_ADDI_B_R, CRISV32F_INSN_ADDI_B_R, CRISV32F_SFMT_ADDI_B_R },
163 { CRIS_INSN_ADDI_W_R, CRISV32F_INSN_ADDI_W_R, CRISV32F_SFMT_ADDI_B_R },
164 { CRIS_INSN_ADDI_D_R, CRISV32F_INSN_ADDI_D_R, CRISV32F_SFMT_ADDI_B_R },
165 { CRIS_INSN_NEG_B_R, CRISV32F_INSN_NEG_B_R, CRISV32F_SFMT_NEG_B_R },
166 { CRIS_INSN_NEG_W_R, CRISV32F_INSN_NEG_W_R, CRISV32F_SFMT_NEG_B_R },
167 { CRIS_INSN_NEG_D_R, CRISV32F_INSN_NEG_D_R, CRISV32F_SFMT_NEG_D_R },
168 { CRIS_INSN_TEST_M_B_M, CRISV32F_INSN_TEST_M_B_M, CRISV32F_SFMT_TEST_M_B_M },
169 { CRIS_INSN_TEST_M_W_M, CRISV32F_INSN_TEST_M_W_M, CRISV32F_SFMT_TEST_M_W_M },
170 { CRIS_INSN_TEST_M_D_M, CRISV32F_INSN_TEST_M_D_M, CRISV32F_SFMT_TEST_M_D_M },
171 { CRIS_INSN_MOVE_R_M_B_M, CRISV32F_INSN_MOVE_R_M_B_M, CRISV32F_SFMT_MOVE_R_M_B_M },
172 { CRIS_INSN_MOVE_R_M_W_M, CRISV32F_INSN_MOVE_R_M_W_M, CRISV32F_SFMT_MOVE_R_M_W_M },
173 { CRIS_INSN_MOVE_R_M_D_M, CRISV32F_INSN_MOVE_R_M_D_M, CRISV32F_SFMT_MOVE_R_M_D_M },
174 { CRIS_INSN_MULS_B, CRISV32F_INSN_MULS_B, CRISV32F_SFMT_MULS_B },
175 { CRIS_INSN_MULS_W, CRISV32F_INSN_MULS_W, CRISV32F_SFMT_MULS_B },
176 { CRIS_INSN_MULS_D, CRISV32F_INSN_MULS_D, CRISV32F_SFMT_MULS_B },
177 { CRIS_INSN_MULU_B, CRISV32F_INSN_MULU_B, CRISV32F_SFMT_MULS_B },
178 { CRIS_INSN_MULU_W, CRISV32F_INSN_MULU_W, CRISV32F_SFMT_MULS_B },
179 { CRIS_INSN_MULU_D, CRISV32F_INSN_MULU_D, CRISV32F_SFMT_MULS_B },
180 { CRIS_INSN_MCP, CRISV32F_INSN_MCP, CRISV32F_SFMT_MCP },
181 { CRIS_INSN_DSTEP, CRISV32F_INSN_DSTEP, CRISV32F_SFMT_DSTEP },
182 { CRIS_INSN_ABS, CRISV32F_INSN_ABS, CRISV32F_SFMT_MOVS_B_R },
183 { CRIS_INSN_AND_B_R, CRISV32F_INSN_AND_B_R, CRISV32F_SFMT_AND_B_R },
184 { CRIS_INSN_AND_W_R, CRISV32F_INSN_AND_W_R, CRISV32F_SFMT_AND_W_R },
185 { CRIS_INSN_AND_D_R, CRISV32F_INSN_AND_D_R, CRISV32F_SFMT_AND_D_R },
186 { CRIS_INSN_AND_M_B_M, CRISV32F_INSN_AND_M_B_M, CRISV32F_SFMT_AND_M_B_M },
187 { CRIS_INSN_AND_M_W_M, CRISV32F_INSN_AND_M_W_M, CRISV32F_SFMT_AND_M_W_M },
188 { CRIS_INSN_AND_M_D_M, CRISV32F_INSN_AND_M_D_M, CRISV32F_SFMT_AND_M_D_M },
189 { CRIS_INSN_ANDCBR, CRISV32F_INSN_ANDCBR, CRISV32F_SFMT_ANDCBR },
190 { CRIS_INSN_ANDCWR, CRISV32F_INSN_ANDCWR, CRISV32F_SFMT_ANDCWR },
191 { CRIS_INSN_ANDCDR, CRISV32F_INSN_ANDCDR, CRISV32F_SFMT_ANDCDR },
192 { CRIS_INSN_ANDQ, CRISV32F_INSN_ANDQ, CRISV32F_SFMT_ANDQ },
193 { CRIS_INSN_ORR_B_R, CRISV32F_INSN_ORR_B_R, CRISV32F_SFMT_AND_B_R },
194 { CRIS_INSN_ORR_W_R, CRISV32F_INSN_ORR_W_R, CRISV32F_SFMT_AND_W_R },
195 { CRIS_INSN_ORR_D_R, CRISV32F_INSN_ORR_D_R, CRISV32F_SFMT_AND_D_R },
196 { CRIS_INSN_OR_M_B_M, CRISV32F_INSN_OR_M_B_M, CRISV32F_SFMT_AND_M_B_M },
197 { CRIS_INSN_OR_M_W_M, CRISV32F_INSN_OR_M_W_M, CRISV32F_SFMT_AND_M_W_M },
198 { CRIS_INSN_OR_M_D_M, CRISV32F_INSN_OR_M_D_M, CRISV32F_SFMT_AND_M_D_M },
199 { CRIS_INSN_ORCBR, CRISV32F_INSN_ORCBR, CRISV32F_SFMT_ANDCBR },
200 { CRIS_INSN_ORCWR, CRISV32F_INSN_ORCWR, CRISV32F_SFMT_ANDCWR },
201 { CRIS_INSN_ORCDR, CRISV32F_INSN_ORCDR, CRISV32F_SFMT_ANDCDR },
202 { CRIS_INSN_ORQ, CRISV32F_INSN_ORQ, CRISV32F_SFMT_ANDQ },
203 { CRIS_INSN_XOR, CRISV32F_INSN_XOR, CRISV32F_SFMT_DSTEP },
204 { CRIS_INSN_SWAP, CRISV32F_INSN_SWAP, CRISV32F_SFMT_SWAP },
205 { CRIS_INSN_ASRR_B_R, CRISV32F_INSN_ASRR_B_R, CRISV32F_SFMT_ASRR_B_R },
206 { CRIS_INSN_ASRR_W_R, CRISV32F_INSN_ASRR_W_R, CRISV32F_SFMT_ASRR_B_R },
207 { CRIS_INSN_ASRR_D_R, CRISV32F_INSN_ASRR_D_R, CRISV32F_SFMT_AND_D_R },
208 { CRIS_INSN_ASRQ, CRISV32F_INSN_ASRQ, CRISV32F_SFMT_ASRQ },
209 { CRIS_INSN_LSRR_B_R, CRISV32F_INSN_LSRR_B_R, CRISV32F_SFMT_LSRR_B_R },
210 { CRIS_INSN_LSRR_W_R, CRISV32F_INSN_LSRR_W_R, CRISV32F_SFMT_LSRR_B_R },
211 { CRIS_INSN_LSRR_D_R, CRISV32F_INSN_LSRR_D_R, CRISV32F_SFMT_LSRR_D_R },
212 { CRIS_INSN_LSRQ, CRISV32F_INSN_LSRQ, CRISV32F_SFMT_ASRQ },
213 { CRIS_INSN_LSLR_B_R, CRISV32F_INSN_LSLR_B_R, CRISV32F_SFMT_LSRR_B_R },
214 { CRIS_INSN_LSLR_W_R, CRISV32F_INSN_LSLR_W_R, CRISV32F_SFMT_LSRR_B_R },
215 { CRIS_INSN_LSLR_D_R, CRISV32F_INSN_LSLR_D_R, CRISV32F_SFMT_LSRR_D_R },
216 { CRIS_INSN_LSLQ, CRISV32F_INSN_LSLQ, CRISV32F_SFMT_ASRQ },
217 { CRIS_INSN_BTST, CRISV32F_INSN_BTST, CRISV32F_SFMT_BTST },
218 { CRIS_INSN_BTSTQ, CRISV32F_INSN_BTSTQ, CRISV32F_SFMT_BTSTQ },
219 { CRIS_INSN_SETF, CRISV32F_INSN_SETF, CRISV32F_SFMT_SETF },
220 { CRIS_INSN_CLEARF, CRISV32F_INSN_CLEARF, CRISV32F_SFMT_SETF },
221 { CRIS_INSN_RFE, CRISV32F_INSN_RFE, CRISV32F_SFMT_RFE },
222 { CRIS_INSN_SFE, CRISV32F_INSN_SFE, CRISV32F_SFMT_SFE },
223 { CRIS_INSN_RFG, CRISV32F_INSN_RFG, CRISV32F_SFMT_RFG },
224 { CRIS_INSN_RFN, CRISV32F_INSN_RFN, CRISV32F_SFMT_RFN },
225 { CRIS_INSN_HALT, CRISV32F_INSN_HALT, CRISV32F_SFMT_HALT },
226 { CRIS_INSN_BCC_B, CRISV32F_INSN_BCC_B, CRISV32F_SFMT_BCC_B },
227 { CRIS_INSN_BA_B, CRISV32F_INSN_BA_B, CRISV32F_SFMT_BA_B },
228 { CRIS_INSN_BCC_W, CRISV32F_INSN_BCC_W, CRISV32F_SFMT_BCC_W },
229 { CRIS_INSN_BA_W, CRISV32F_INSN_BA_W, CRISV32F_SFMT_BA_W },
230 { CRIS_INSN_JAS_R, CRISV32F_INSN_JAS_R, CRISV32F_SFMT_JAS_R },
231 { CRIS_INSN_JAS_C, CRISV32F_INSN_JAS_C, CRISV32F_SFMT_JAS_C },
232 { CRIS_INSN_JUMP_P, CRISV32F_INSN_JUMP_P, CRISV32F_SFMT_JUMP_P },
233 { CRIS_INSN_BAS_C, CRISV32F_INSN_BAS_C, CRISV32F_SFMT_BAS_C },
234 { CRIS_INSN_JASC_R, CRISV32F_INSN_JASC_R, CRISV32F_SFMT_JASC_R },
235 { CRIS_INSN_JASC_C, CRISV32F_INSN_JASC_C, CRISV32F_SFMT_JAS_C },
236 { CRIS_INSN_BASC_C, CRISV32F_INSN_BASC_C, CRISV32F_SFMT_BAS_C },
237 { CRIS_INSN_BREAK, CRISV32F_INSN_BREAK, CRISV32F_SFMT_BREAK },
238 { CRIS_INSN_BOUND_R_B_R, CRISV32F_INSN_BOUND_R_B_R, CRISV32F_SFMT_DSTEP },
239 { CRIS_INSN_BOUND_R_W_R, CRISV32F_INSN_BOUND_R_W_R, CRISV32F_SFMT_DSTEP },
240 { CRIS_INSN_BOUND_R_D_R, CRISV32F_INSN_BOUND_R_D_R, CRISV32F_SFMT_DSTEP },
241 { CRIS_INSN_BOUND_CB, CRISV32F_INSN_BOUND_CB, CRISV32F_SFMT_BOUND_CB },
242 { CRIS_INSN_BOUND_CW, CRISV32F_INSN_BOUND_CW, CRISV32F_SFMT_BOUND_CW },
243 { CRIS_INSN_BOUND_CD, CRISV32F_INSN_BOUND_CD, CRISV32F_SFMT_BOUND_CD },
244 { CRIS_INSN_SCC, CRISV32F_INSN_SCC, CRISV32F_SFMT_SCC },
245 { CRIS_INSN_LZ, CRISV32F_INSN_LZ, CRISV32F_SFMT_MOVS_B_R },
246 { CRIS_INSN_ADDOQ, CRISV32F_INSN_ADDOQ, CRISV32F_SFMT_ADDOQ },
247 { CRIS_INSN_ADDO_M_B_M, CRISV32F_INSN_ADDO_M_B_M, CRISV32F_SFMT_ADDO_M_B_M },
248 { CRIS_INSN_ADDO_M_W_M, CRISV32F_INSN_ADDO_M_W_M, CRISV32F_SFMT_ADDO_M_W_M },
249 { CRIS_INSN_ADDO_M_D_M, CRISV32F_INSN_ADDO_M_D_M, CRISV32F_SFMT_ADDO_M_D_M },
250 { CRIS_INSN_ADDO_CB, CRISV32F_INSN_ADDO_CB, CRISV32F_SFMT_ADDO_CB },
251 { CRIS_INSN_ADDO_CW, CRISV32F_INSN_ADDO_CW, CRISV32F_SFMT_ADDO_CW },
252 { CRIS_INSN_ADDO_CD, CRISV32F_INSN_ADDO_CD, CRISV32F_SFMT_ADDO_CD },
253 { CRIS_INSN_ADDI_ACR_B_R, CRISV32F_INSN_ADDI_ACR_B_R, CRISV32F_SFMT_ADDI_ACR_B_R },
254 { CRIS_INSN_ADDI_ACR_W_R, CRISV32F_INSN_ADDI_ACR_W_R, CRISV32F_SFMT_ADDI_ACR_B_R },
255 { CRIS_INSN_ADDI_ACR_D_R, CRISV32F_INSN_ADDI_ACR_D_R, CRISV32F_SFMT_ADDI_ACR_B_R },
256 { CRIS_INSN_FIDXI, CRISV32F_INSN_FIDXI, CRISV32F_SFMT_FIDXI },
257 { CRIS_INSN_FTAGI, CRISV32F_INSN_FTAGI, CRISV32F_SFMT_FIDXI },
258 { CRIS_INSN_FIDXD, CRISV32F_INSN_FIDXD, CRISV32F_SFMT_FIDXI },
259 { CRIS_INSN_FTAGD, CRISV32F_INSN_FTAGD, CRISV32F_SFMT_FIDXI },
262 static const struct insn_sem crisv32f_insn_sem_invalid = {
263 VIRTUAL_INSN_X_INVALID, CRISV32F_INSN_X_INVALID, CRISV32F_SFMT_EMPTY
266 /* Initialize an IDESC from the compile-time computable parts. */
269 init_idesc (SIM_CPU *cpu, IDESC *id, const struct insn_sem *t)
271 const CGEN_INSN *insn_table = CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu))->init_entries;
275 if ((int) t->type <= 0)
276 id->idata = & cgen_virtual_insn_table[- (int) t->type];
278 id->idata = & insn_table[t->type];
279 id->attrs = CGEN_INSN_ATTRS (id->idata);
280 /* Oh my god, a magic number. */
281 id->length = CGEN_INSN_BITSIZE (id->idata) / 8;
283 #if WITH_PROFILE_MODEL_P
284 id->timing = & MODEL_TIMING (CPU_MODEL (cpu)) [t->index];
286 SIM_DESC sd = CPU_STATE (cpu);
287 SIM_ASSERT (t->index == id->timing->num);
291 /* Semantic pointers are initialized elsewhere. */
294 /* Initialize the instruction descriptor table. */
297 crisv32f_init_idesc_table (SIM_CPU *cpu)
300 const struct insn_sem *t,*tend;
301 int tabsize = CRISV32F_INSN__MAX;
302 IDESC *table = crisv32f_insn_data;
304 memset (table, 0, tabsize * sizeof (IDESC));
306 /* First set all entries to the `invalid insn'. */
307 t = & crisv32f_insn_sem_invalid;
308 for (id = table, tabend = table + tabsize; id < tabend; ++id)
309 init_idesc (cpu, id, t);
311 /* Now fill in the values for the chosen cpu. */
312 for (t = crisv32f_insn_sem, tend = t + sizeof (crisv32f_insn_sem) / sizeof (*t);
315 init_idesc (cpu, & table[t->index], t);
318 /* Link the IDESC table into the cpu. */
319 CPU_IDESC (cpu) = table;
322 /* Given an instruction, return a pointer to its IDESC entry. */
325 crisv32f_decode (SIM_CPU *current_cpu, IADDR pc,
326 CGEN_INSN_INT base_insn,
329 /* Result of decoder. */
330 CRISV32F_INSN_TYPE itype;
333 CGEN_INSN_INT insn = base_insn;
336 unsigned int val = (((insn >> 4) & (255 << 0)));
339 case 0 : /* fall through */
340 case 1 : /* fall through */
341 case 2 : /* fall through */
342 case 3 : /* fall through */
343 case 4 : /* fall through */
344 case 5 : /* fall through */
345 case 6 : /* fall through */
346 case 7 : /* fall through */
347 case 8 : /* fall through */
348 case 9 : /* fall through */
349 case 10 : /* fall through */
350 case 11 : /* fall through */
351 case 12 : /* fall through */
352 case 13 : /* fall through */
353 case 14 : /* fall through */
356 unsigned int val = (((insn >> 12) & (15 << 0)));
359 case 0 : /* fall through */
360 case 1 : /* fall through */
361 case 2 : /* fall through */
362 case 3 : /* fall through */
363 case 4 : /* fall through */
364 case 5 : /* fall through */
365 case 6 : /* fall through */
366 case 7 : /* fall through */
367 case 8 : /* fall through */
368 case 9 : /* fall through */
369 case 10 : /* fall through */
370 case 11 : /* fall through */
371 case 12 : /* fall through */
372 case 13 : /* fall through */
373 case 15 : itype = CRISV32F_INSN_BCC_B; goto extract_sfmt_bcc_b;
374 case 14 : itype = CRISV32F_INSN_BA_B; goto extract_sfmt_ba_b;
375 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
378 case 16 : /* fall through */
379 case 17 : /* fall through */
380 case 18 : /* fall through */
381 case 19 : /* fall through */
382 case 20 : /* fall through */
383 case 21 : /* fall through */
384 case 22 : /* fall through */
385 case 23 : /* fall through */
386 case 24 : /* fall through */
387 case 25 : /* fall through */
388 case 26 : /* fall through */
389 case 27 : /* fall through */
390 case 28 : /* fall through */
391 case 29 : /* fall through */
392 case 30 : /* fall through */
393 case 31 : itype = CRISV32F_INSN_ADDOQ; goto extract_sfmt_addoq;
394 case 32 : /* fall through */
395 case 33 : /* fall through */
396 case 34 : /* fall through */
397 case 35 : itype = CRISV32F_INSN_ADDQ; goto extract_sfmt_addq;
398 case 36 : /* fall through */
399 case 37 : /* fall through */
400 case 38 : /* fall through */
401 case 39 : itype = CRISV32F_INSN_MOVEQ; goto extract_sfmt_moveq;
402 case 40 : /* fall through */
403 case 41 : /* fall through */
404 case 42 : /* fall through */
405 case 43 : itype = CRISV32F_INSN_SUBQ; goto extract_sfmt_addq;
406 case 44 : /* fall through */
407 case 45 : /* fall through */
408 case 46 : /* fall through */
409 case 47 : itype = CRISV32F_INSN_CMPQ; goto extract_sfmt_cmpq;
410 case 48 : /* fall through */
411 case 49 : /* fall through */
412 case 50 : /* fall through */
413 case 51 : itype = CRISV32F_INSN_ANDQ; goto extract_sfmt_andq;
414 case 52 : /* fall through */
415 case 53 : /* fall through */
416 case 54 : /* fall through */
417 case 55 : itype = CRISV32F_INSN_ORQ; goto extract_sfmt_andq;
418 case 56 : /* fall through */
419 case 57 : itype = CRISV32F_INSN_BTSTQ; goto extract_sfmt_btstq;
420 case 58 : /* fall through */
421 case 59 : itype = CRISV32F_INSN_ASRQ; goto extract_sfmt_asrq;
422 case 60 : /* fall through */
423 case 61 : itype = CRISV32F_INSN_LSLQ; goto extract_sfmt_asrq;
424 case 62 : /* fall through */
425 case 63 : itype = CRISV32F_INSN_LSRQ; goto extract_sfmt_asrq;
426 case 64 : itype = CRISV32F_INSN_ADDU_B_R; goto extract_sfmt_add_d_r;
427 case 65 : itype = CRISV32F_INSN_ADDU_W_R; goto extract_sfmt_add_d_r;
428 case 66 : itype = CRISV32F_INSN_ADDS_B_R; goto extract_sfmt_add_d_r;
429 case 67 : itype = CRISV32F_INSN_ADDS_W_R; goto extract_sfmt_add_d_r;
430 case 68 : itype = CRISV32F_INSN_MOVU_B_R; goto extract_sfmt_movs_b_r;
431 case 69 : itype = CRISV32F_INSN_MOVU_W_R; goto extract_sfmt_movs_b_r;
432 case 70 : itype = CRISV32F_INSN_MOVS_B_R; goto extract_sfmt_movs_b_r;
433 case 71 : itype = CRISV32F_INSN_MOVS_W_R; goto extract_sfmt_movs_b_r;
434 case 72 : itype = CRISV32F_INSN_SUBU_B_R; goto extract_sfmt_add_d_r;
435 case 73 : itype = CRISV32F_INSN_SUBU_W_R; goto extract_sfmt_add_d_r;
436 case 74 : itype = CRISV32F_INSN_SUBS_B_R; goto extract_sfmt_add_d_r;
437 case 75 : itype = CRISV32F_INSN_SUBS_W_R; goto extract_sfmt_add_d_r;
438 case 76 : itype = CRISV32F_INSN_LSLR_B_R; goto extract_sfmt_lsrr_b_r;
439 case 77 : itype = CRISV32F_INSN_LSLR_W_R; goto extract_sfmt_lsrr_b_r;
440 case 78 : itype = CRISV32F_INSN_LSLR_D_R; goto extract_sfmt_lsrr_d_r;
441 case 79 : itype = CRISV32F_INSN_BTST; goto extract_sfmt_btst;
442 case 80 : itype = CRISV32F_INSN_ADDI_B_R; goto extract_sfmt_addi_b_r;
443 case 81 : itype = CRISV32F_INSN_ADDI_W_R; goto extract_sfmt_addi_b_r;
444 case 82 : itype = CRISV32F_INSN_ADDI_D_R; goto extract_sfmt_addi_b_r;
445 case 83 : itype = CRISV32F_INSN_SCC; goto extract_sfmt_scc;
446 case 84 : itype = CRISV32F_INSN_ADDI_ACR_B_R; goto extract_sfmt_addi_acr_b_r;
447 case 85 : itype = CRISV32F_INSN_ADDI_ACR_W_R; goto extract_sfmt_addi_acr_b_r;
448 case 86 : itype = CRISV32F_INSN_ADDI_ACR_D_R; goto extract_sfmt_addi_acr_b_r;
449 case 87 : itype = CRISV32F_INSN_ADDC_R; goto extract_sfmt_add_d_r;
450 case 88 : itype = CRISV32F_INSN_NEG_B_R; goto extract_sfmt_neg_b_r;
451 case 89 : itype = CRISV32F_INSN_NEG_W_R; goto extract_sfmt_neg_b_r;
452 case 90 : itype = CRISV32F_INSN_NEG_D_R; goto extract_sfmt_neg_d_r;
453 case 91 : itype = CRISV32F_INSN_SETF; goto extract_sfmt_setf;
454 case 92 : itype = CRISV32F_INSN_BOUND_R_B_R; goto extract_sfmt_dstep;
455 case 93 : itype = CRISV32F_INSN_BOUND_R_W_R; goto extract_sfmt_dstep;
456 case 94 : itype = CRISV32F_INSN_BOUND_R_D_R; goto extract_sfmt_dstep;
457 case 95 : itype = CRISV32F_INSN_CLEARF; goto extract_sfmt_setf;
458 case 96 : itype = CRISV32F_INSN_ADD_B_R; goto extract_sfmt_add_b_r;
459 case 97 : itype = CRISV32F_INSN_ADD_W_R; goto extract_sfmt_add_b_r;
460 case 98 : itype = CRISV32F_INSN_ADD_D_R; goto extract_sfmt_add_d_r;
461 case 99 : itype = CRISV32F_INSN_MOVE_R_SPRV32; goto extract_sfmt_move_r_sprv32;
462 case 100 : itype = CRISV32F_INSN_MOVE_B_R; goto extract_sfmt_move_b_r;
463 case 101 : itype = CRISV32F_INSN_MOVE_W_R; goto extract_sfmt_move_b_r;
464 case 102 : itype = CRISV32F_INSN_MOVE_D_R; goto extract_sfmt_move_d_r;
465 case 103 : itype = CRISV32F_INSN_MOVE_SPR_RV32; goto extract_sfmt_move_spr_rv32;
466 case 104 : itype = CRISV32F_INSN_SUB_B_R; goto extract_sfmt_add_b_r;
467 case 105 : itype = CRISV32F_INSN_SUB_W_R; goto extract_sfmt_add_b_r;
468 case 106 : itype = CRISV32F_INSN_SUB_D_R; goto extract_sfmt_add_d_r;
469 case 107 : itype = CRISV32F_INSN_ABS; goto extract_sfmt_movs_b_r;
470 case 108 : itype = CRISV32F_INSN_CMP_R_B_R; goto extract_sfmt_cmp_r_b_r;
471 case 109 : itype = CRISV32F_INSN_CMP_R_W_R; goto extract_sfmt_cmp_r_b_r;
472 case 110 : itype = CRISV32F_INSN_CMP_R_D_R; goto extract_sfmt_cmp_r_b_r;
473 case 111 : itype = CRISV32F_INSN_DSTEP; goto extract_sfmt_dstep;
474 case 112 : itype = CRISV32F_INSN_AND_B_R; goto extract_sfmt_and_b_r;
475 case 113 : itype = CRISV32F_INSN_AND_W_R; goto extract_sfmt_and_w_r;
476 case 114 : itype = CRISV32F_INSN_AND_D_R; goto extract_sfmt_and_d_r;
477 case 115 : itype = CRISV32F_INSN_LZ; goto extract_sfmt_movs_b_r;
478 case 116 : itype = CRISV32F_INSN_ORR_B_R; goto extract_sfmt_and_b_r;
479 case 117 : itype = CRISV32F_INSN_ORR_W_R; goto extract_sfmt_and_w_r;
480 case 118 : itype = CRISV32F_INSN_ORR_D_R; goto extract_sfmt_and_d_r;
481 case 119 : itype = CRISV32F_INSN_SWAP; goto extract_sfmt_swap;
482 case 120 : itype = CRISV32F_INSN_ASRR_B_R; goto extract_sfmt_asrr_b_r;
483 case 121 : itype = CRISV32F_INSN_ASRR_W_R; goto extract_sfmt_asrr_b_r;
484 case 122 : itype = CRISV32F_INSN_ASRR_D_R; goto extract_sfmt_and_d_r;
485 case 123 : itype = CRISV32F_INSN_XOR; goto extract_sfmt_dstep;
486 case 124 : itype = CRISV32F_INSN_LSRR_B_R; goto extract_sfmt_lsrr_b_r;
487 case 125 : itype = CRISV32F_INSN_LSRR_W_R; goto extract_sfmt_lsrr_b_r;
488 case 126 : itype = CRISV32F_INSN_LSRR_D_R; goto extract_sfmt_lsrr_d_r;
489 case 127 : itype = CRISV32F_INSN_MCP; goto extract_sfmt_mcp;
490 case 128 : itype = CRISV32F_INSN_ADDU_M_B_M; goto extract_sfmt_adds_m_b_m;
491 case 129 : itype = CRISV32F_INSN_ADDU_M_W_M; goto extract_sfmt_adds_m_w_m;
492 case 130 : itype = CRISV32F_INSN_ADDS_M_B_M; goto extract_sfmt_adds_m_b_m;
493 case 131 : itype = CRISV32F_INSN_ADDS_M_W_M; goto extract_sfmt_adds_m_w_m;
494 case 132 : itype = CRISV32F_INSN_MOVU_M_B_M; goto extract_sfmt_movs_m_b_m;
495 case 133 : itype = CRISV32F_INSN_MOVU_M_W_M; goto extract_sfmt_movs_m_w_m;
496 case 134 : itype = CRISV32F_INSN_MOVS_M_B_M; goto extract_sfmt_movs_m_b_m;
497 case 135 : itype = CRISV32F_INSN_MOVS_M_W_M; goto extract_sfmt_movs_m_w_m;
498 case 136 : itype = CRISV32F_INSN_SUBU_M_B_M; goto extract_sfmt_adds_m_b_m;
499 case 137 : itype = CRISV32F_INSN_SUBU_M_W_M; goto extract_sfmt_adds_m_w_m;
500 case 138 : itype = CRISV32F_INSN_SUBS_M_B_M; goto extract_sfmt_adds_m_b_m;
501 case 139 : itype = CRISV32F_INSN_SUBS_M_W_M; goto extract_sfmt_adds_m_w_m;
502 case 140 : itype = CRISV32F_INSN_CMPU_M_B_M; goto extract_sfmt_cmp_m_b_m;
503 case 141 : itype = CRISV32F_INSN_CMPU_M_W_M; goto extract_sfmt_cmp_m_w_m;
504 case 142 : itype = CRISV32F_INSN_CMPS_M_B_M; goto extract_sfmt_cmp_m_b_m;
505 case 143 : itype = CRISV32F_INSN_CMPS_M_W_M; goto extract_sfmt_cmp_m_w_m;
506 case 144 : itype = CRISV32F_INSN_MULU_B; goto extract_sfmt_muls_b;
507 case 145 : itype = CRISV32F_INSN_MULU_W; goto extract_sfmt_muls_b;
508 case 146 : itype = CRISV32F_INSN_MULU_D; goto extract_sfmt_muls_b;
511 unsigned int val = (((insn >> 12) & (15 << 0)));
514 case 2 : itype = CRISV32F_INSN_RFE; goto extract_sfmt_rfe;
515 case 3 : itype = CRISV32F_INSN_SFE; goto extract_sfmt_sfe;
516 case 4 : itype = CRISV32F_INSN_RFG; goto extract_sfmt_rfg;
517 case 5 : itype = CRISV32F_INSN_RFN; goto extract_sfmt_rfn;
518 case 14 : itype = CRISV32F_INSN_BREAK; goto extract_sfmt_break;
519 case 15 : itype = CRISV32F_INSN_HALT; goto extract_sfmt_halt;
520 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
523 case 148 : itype = CRISV32F_INSN_ADDO_M_B_M; goto extract_sfmt_addo_m_b_m;
524 case 149 : itype = CRISV32F_INSN_ADDO_M_W_M; goto extract_sfmt_addo_m_w_m;
525 case 150 : itype = CRISV32F_INSN_ADDO_M_D_M; goto extract_sfmt_addo_m_d_m;
526 case 151 : itype = CRISV32F_INSN_LAPCQ; goto extract_sfmt_lapcq;
527 case 154 : itype = CRISV32F_INSN_ADDC_M; goto extract_sfmt_addc_m;
528 case 155 : itype = CRISV32F_INSN_JAS_R; goto extract_sfmt_jas_r;
529 case 159 : itype = CRISV32F_INSN_JUMP_P; goto extract_sfmt_jump_p;
530 case 160 : itype = CRISV32F_INSN_ADD_M_B_M; goto extract_sfmt_add_m_b_m;
531 case 161 : itype = CRISV32F_INSN_ADD_M_W_M; goto extract_sfmt_add_m_w_m;
532 case 162 : itype = CRISV32F_INSN_ADD_M_D_M; goto extract_sfmt_add_m_d_m;
533 case 163 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
534 case 164 : itype = CRISV32F_INSN_MOVE_M_B_M; goto extract_sfmt_move_m_b_m;
535 case 165 : itype = CRISV32F_INSN_MOVE_M_W_M; goto extract_sfmt_move_m_w_m;
536 case 166 : itype = CRISV32F_INSN_MOVE_M_D_M; goto extract_sfmt_move_m_d_m;
537 case 167 : /* fall through */
538 case 231 : itype = CRISV32F_INSN_MOVE_SPR_MV32; goto extract_sfmt_move_spr_mv32;
539 case 168 : itype = CRISV32F_INSN_SUB_M_B_M; goto extract_sfmt_add_m_b_m;
540 case 169 : itype = CRISV32F_INSN_SUB_M_W_M; goto extract_sfmt_add_m_w_m;
541 case 170 : itype = CRISV32F_INSN_SUB_M_D_M; goto extract_sfmt_add_m_d_m;
544 unsigned int val = (((insn >> 12) & (1 << 0)));
547 case 0 : itype = CRISV32F_INSN_FIDXD; goto extract_sfmt_fidxi;
548 case 1 : itype = CRISV32F_INSN_FTAGD; goto extract_sfmt_fidxi;
549 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
552 case 172 : itype = CRISV32F_INSN_CMP_M_B_M; goto extract_sfmt_cmp_m_b_m;
553 case 173 : itype = CRISV32F_INSN_CMP_M_W_M; goto extract_sfmt_cmp_m_w_m;
554 case 174 : itype = CRISV32F_INSN_CMP_M_D_M; goto extract_sfmt_cmp_m_d_m;
555 case 176 : itype = CRISV32F_INSN_AND_M_B_M; goto extract_sfmt_and_m_b_m;
556 case 177 : itype = CRISV32F_INSN_AND_M_W_M; goto extract_sfmt_and_m_w_m;
557 case 178 : itype = CRISV32F_INSN_AND_M_D_M; goto extract_sfmt_and_m_d_m;
558 case 179 : itype = CRISV32F_INSN_JASC_R; goto extract_sfmt_jasc_r;
559 case 180 : itype = CRISV32F_INSN_OR_M_B_M; goto extract_sfmt_and_m_b_m;
560 case 181 : itype = CRISV32F_INSN_OR_M_W_M; goto extract_sfmt_and_m_w_m;
561 case 182 : itype = CRISV32F_INSN_OR_M_D_M; goto extract_sfmt_and_m_d_m;
562 case 183 : itype = CRISV32F_INSN_MOVE_R_SS; goto extract_sfmt_move_r_ss;
563 case 184 : /* fall through */
564 case 248 : itype = CRISV32F_INSN_TEST_M_B_M; goto extract_sfmt_test_m_b_m;
565 case 185 : /* fall through */
566 case 249 : itype = CRISV32F_INSN_TEST_M_W_M; goto extract_sfmt_test_m_w_m;
567 case 186 : /* fall through */
568 case 250 : itype = CRISV32F_INSN_TEST_M_D_M; goto extract_sfmt_test_m_d_m;
569 case 187 : /* fall through */
570 case 251 : itype = CRISV32F_INSN_MOVEM_M_R_V32; goto extract_sfmt_movem_m_r_v32;
571 case 188 : /* fall through */
572 case 252 : itype = CRISV32F_INSN_MOVE_R_M_B_M; goto extract_sfmt_move_r_m_b_m;
573 case 189 : /* fall through */
574 case 253 : itype = CRISV32F_INSN_MOVE_R_M_W_M; goto extract_sfmt_move_r_m_w_m;
575 case 190 : /* fall through */
576 case 254 : itype = CRISV32F_INSN_MOVE_R_M_D_M; goto extract_sfmt_move_r_m_d_m;
577 case 191 : /* fall through */
578 case 255 : itype = CRISV32F_INSN_MOVEM_R_M_V32; goto extract_sfmt_movem_r_m_v32;
581 unsigned int val = (((insn >> 0) & (15 << 0)));
584 case 0 : /* fall through */
585 case 1 : /* fall through */
586 case 2 : /* fall through */
587 case 3 : /* fall through */
588 case 4 : /* fall through */
589 case 5 : /* fall through */
590 case 6 : /* fall through */
591 case 7 : /* fall through */
592 case 8 : /* fall through */
593 case 9 : /* fall through */
594 case 10 : /* fall through */
595 case 11 : /* fall through */
596 case 12 : /* fall through */
597 case 13 : /* fall through */
598 case 14 : itype = CRISV32F_INSN_ADDU_M_B_M; goto extract_sfmt_adds_m_b_m;
599 case 15 : itype = CRISV32F_INSN_ADDUCBR; goto extract_sfmt_addscbr;
600 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
605 unsigned int val = (((insn >> 0) & (15 << 0)));
608 case 0 : /* fall through */
609 case 1 : /* fall through */
610 case 2 : /* fall through */
611 case 3 : /* fall through */
612 case 4 : /* fall through */
613 case 5 : /* fall through */
614 case 6 : /* fall through */
615 case 7 : /* fall through */
616 case 8 : /* fall through */
617 case 9 : /* fall through */
618 case 10 : /* fall through */
619 case 11 : /* fall through */
620 case 12 : /* fall through */
621 case 13 : /* fall through */
622 case 14 : itype = CRISV32F_INSN_ADDU_M_W_M; goto extract_sfmt_adds_m_w_m;
623 case 15 : itype = CRISV32F_INSN_ADDUCWR; goto extract_sfmt_addscwr;
624 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
629 unsigned int val = (((insn >> 0) & (15 << 0)));
632 case 0 : /* fall through */
633 case 1 : /* fall through */
634 case 2 : /* fall through */
635 case 3 : /* fall through */
636 case 4 : /* fall through */
637 case 5 : /* fall through */
638 case 6 : /* fall through */
639 case 7 : /* fall through */
640 case 8 : /* fall through */
641 case 9 : /* fall through */
642 case 10 : /* fall through */
643 case 11 : /* fall through */
644 case 12 : /* fall through */
645 case 13 : /* fall through */
646 case 14 : itype = CRISV32F_INSN_ADDS_M_B_M; goto extract_sfmt_adds_m_b_m;
647 case 15 : itype = CRISV32F_INSN_ADDSCBR; goto extract_sfmt_addscbr;
648 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
653 unsigned int val = (((insn >> 0) & (15 << 0)));
656 case 0 : /* fall through */
657 case 1 : /* fall through */
658 case 2 : /* fall through */
659 case 3 : /* fall through */
660 case 4 : /* fall through */
661 case 5 : /* fall through */
662 case 6 : /* fall through */
663 case 7 : /* fall through */
664 case 8 : /* fall through */
665 case 9 : /* fall through */
666 case 10 : /* fall through */
667 case 11 : /* fall through */
668 case 12 : /* fall through */
669 case 13 : /* fall through */
670 case 14 : itype = CRISV32F_INSN_ADDS_M_W_M; goto extract_sfmt_adds_m_w_m;
671 case 15 : itype = CRISV32F_INSN_ADDSCWR; goto extract_sfmt_addscwr;
672 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
677 unsigned int val = (((insn >> 0) & (15 << 0)));
680 case 0 : /* fall through */
681 case 1 : /* fall through */
682 case 2 : /* fall through */
683 case 3 : /* fall through */
684 case 4 : /* fall through */
685 case 5 : /* fall through */
686 case 6 : /* fall through */
687 case 7 : /* fall through */
688 case 8 : /* fall through */
689 case 9 : /* fall through */
690 case 10 : /* fall through */
691 case 11 : /* fall through */
692 case 12 : /* fall through */
693 case 13 : /* fall through */
694 case 14 : itype = CRISV32F_INSN_MOVU_M_B_M; goto extract_sfmt_movs_m_b_m;
695 case 15 : itype = CRISV32F_INSN_MOVUCBR; goto extract_sfmt_movucbr;
696 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
701 unsigned int val = (((insn >> 0) & (15 << 0)));
704 case 0 : /* fall through */
705 case 1 : /* fall through */
706 case 2 : /* fall through */
707 case 3 : /* fall through */
708 case 4 : /* fall through */
709 case 5 : /* fall through */
710 case 6 : /* fall through */
711 case 7 : /* fall through */
712 case 8 : /* fall through */
713 case 9 : /* fall through */
714 case 10 : /* fall through */
715 case 11 : /* fall through */
716 case 12 : /* fall through */
717 case 13 : /* fall through */
718 case 14 : itype = CRISV32F_INSN_MOVU_M_W_M; goto extract_sfmt_movs_m_w_m;
719 case 15 : itype = CRISV32F_INSN_MOVUCWR; goto extract_sfmt_movucwr;
720 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
725 unsigned int val = (((insn >> 0) & (15 << 0)));
728 case 0 : /* fall through */
729 case 1 : /* fall through */
730 case 2 : /* fall through */
731 case 3 : /* fall through */
732 case 4 : /* fall through */
733 case 5 : /* fall through */
734 case 6 : /* fall through */
735 case 7 : /* fall through */
736 case 8 : /* fall through */
737 case 9 : /* fall through */
738 case 10 : /* fall through */
739 case 11 : /* fall through */
740 case 12 : /* fall through */
741 case 13 : /* fall through */
742 case 14 : itype = CRISV32F_INSN_MOVS_M_B_M; goto extract_sfmt_movs_m_b_m;
743 case 15 : itype = CRISV32F_INSN_MOVSCBR; goto extract_sfmt_movscbr;
744 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
749 unsigned int val = (((insn >> 0) & (15 << 0)));
752 case 0 : /* fall through */
753 case 1 : /* fall through */
754 case 2 : /* fall through */
755 case 3 : /* fall through */
756 case 4 : /* fall through */
757 case 5 : /* fall through */
758 case 6 : /* fall through */
759 case 7 : /* fall through */
760 case 8 : /* fall through */
761 case 9 : /* fall through */
762 case 10 : /* fall through */
763 case 11 : /* fall through */
764 case 12 : /* fall through */
765 case 13 : /* fall through */
766 case 14 : itype = CRISV32F_INSN_MOVS_M_W_M; goto extract_sfmt_movs_m_w_m;
767 case 15 : itype = CRISV32F_INSN_MOVSCWR; goto extract_sfmt_movscwr;
768 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
773 unsigned int val = (((insn >> 0) & (15 << 0)));
776 case 0 : /* fall through */
777 case 1 : /* fall through */
778 case 2 : /* fall through */
779 case 3 : /* fall through */
780 case 4 : /* fall through */
781 case 5 : /* fall through */
782 case 6 : /* fall through */
783 case 7 : /* fall through */
784 case 8 : /* fall through */
785 case 9 : /* fall through */
786 case 10 : /* fall through */
787 case 11 : /* fall through */
788 case 12 : /* fall through */
789 case 13 : /* fall through */
790 case 14 : itype = CRISV32F_INSN_SUBU_M_B_M; goto extract_sfmt_adds_m_b_m;
791 case 15 : itype = CRISV32F_INSN_SUBUCBR; goto extract_sfmt_addscbr;
792 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
797 unsigned int val = (((insn >> 0) & (15 << 0)));
800 case 0 : /* fall through */
801 case 1 : /* fall through */
802 case 2 : /* fall through */
803 case 3 : /* fall through */
804 case 4 : /* fall through */
805 case 5 : /* fall through */
806 case 6 : /* fall through */
807 case 7 : /* fall through */
808 case 8 : /* fall through */
809 case 9 : /* fall through */
810 case 10 : /* fall through */
811 case 11 : /* fall through */
812 case 12 : /* fall through */
813 case 13 : /* fall through */
814 case 14 : itype = CRISV32F_INSN_SUBU_M_W_M; goto extract_sfmt_adds_m_w_m;
815 case 15 : itype = CRISV32F_INSN_SUBUCWR; goto extract_sfmt_addscwr;
816 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
821 unsigned int val = (((insn >> 0) & (15 << 0)));
824 case 0 : /* fall through */
825 case 1 : /* fall through */
826 case 2 : /* fall through */
827 case 3 : /* fall through */
828 case 4 : /* fall through */
829 case 5 : /* fall through */
830 case 6 : /* fall through */
831 case 7 : /* fall through */
832 case 8 : /* fall through */
833 case 9 : /* fall through */
834 case 10 : /* fall through */
835 case 11 : /* fall through */
836 case 12 : /* fall through */
837 case 13 : /* fall through */
838 case 14 : itype = CRISV32F_INSN_SUBS_M_B_M; goto extract_sfmt_adds_m_b_m;
839 case 15 : itype = CRISV32F_INSN_SUBSCBR; goto extract_sfmt_addscbr;
840 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
845 unsigned int val = (((insn >> 0) & (15 << 0)));
848 case 0 : /* fall through */
849 case 1 : /* fall through */
850 case 2 : /* fall through */
851 case 3 : /* fall through */
852 case 4 : /* fall through */
853 case 5 : /* fall through */
854 case 6 : /* fall through */
855 case 7 : /* fall through */
856 case 8 : /* fall through */
857 case 9 : /* fall through */
858 case 10 : /* fall through */
859 case 11 : /* fall through */
860 case 12 : /* fall through */
861 case 13 : /* fall through */
862 case 14 : itype = CRISV32F_INSN_SUBS_M_W_M; goto extract_sfmt_adds_m_w_m;
863 case 15 : itype = CRISV32F_INSN_SUBSCWR; goto extract_sfmt_addscwr;
864 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
869 unsigned int val = (((insn >> 0) & (15 << 0)));
872 case 0 : /* fall through */
873 case 1 : /* fall through */
874 case 2 : /* fall through */
875 case 3 : /* fall through */
876 case 4 : /* fall through */
877 case 5 : /* fall through */
878 case 6 : /* fall through */
879 case 7 : /* fall through */
880 case 8 : /* fall through */
881 case 9 : /* fall through */
882 case 10 : /* fall through */
883 case 11 : /* fall through */
884 case 12 : /* fall through */
885 case 13 : /* fall through */
886 case 14 : itype = CRISV32F_INSN_CMPU_M_B_M; goto extract_sfmt_cmp_m_b_m;
887 case 15 : itype = CRISV32F_INSN_CMPUCBR; goto extract_sfmt_cmpucbr;
888 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
893 unsigned int val = (((insn >> 0) & (15 << 0)));
896 case 0 : /* fall through */
897 case 1 : /* fall through */
898 case 2 : /* fall through */
899 case 3 : /* fall through */
900 case 4 : /* fall through */
901 case 5 : /* fall through */
902 case 6 : /* fall through */
903 case 7 : /* fall through */
904 case 8 : /* fall through */
905 case 9 : /* fall through */
906 case 10 : /* fall through */
907 case 11 : /* fall through */
908 case 12 : /* fall through */
909 case 13 : /* fall through */
910 case 14 : itype = CRISV32F_INSN_CMPU_M_W_M; goto extract_sfmt_cmp_m_w_m;
911 case 15 : itype = CRISV32F_INSN_CMPUCWR; goto extract_sfmt_cmpucwr;
912 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
917 unsigned int val = (((insn >> 0) & (15 << 0)));
920 case 0 : /* fall through */
921 case 1 : /* fall through */
922 case 2 : /* fall through */
923 case 3 : /* fall through */
924 case 4 : /* fall through */
925 case 5 : /* fall through */
926 case 6 : /* fall through */
927 case 7 : /* fall through */
928 case 8 : /* fall through */
929 case 9 : /* fall through */
930 case 10 : /* fall through */
931 case 11 : /* fall through */
932 case 12 : /* fall through */
933 case 13 : /* fall through */
934 case 14 : itype = CRISV32F_INSN_CMPS_M_B_M; goto extract_sfmt_cmp_m_b_m;
935 case 15 : itype = CRISV32F_INSN_CMPSCBR; goto extract_sfmt_cmpcbr;
936 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
941 unsigned int val = (((insn >> 0) & (15 << 0)));
944 case 0 : /* fall through */
945 case 1 : /* fall through */
946 case 2 : /* fall through */
947 case 3 : /* fall through */
948 case 4 : /* fall through */
949 case 5 : /* fall through */
950 case 6 : /* fall through */
951 case 7 : /* fall through */
952 case 8 : /* fall through */
953 case 9 : /* fall through */
954 case 10 : /* fall through */
955 case 11 : /* fall through */
956 case 12 : /* fall through */
957 case 13 : /* fall through */
958 case 14 : itype = CRISV32F_INSN_CMPS_M_W_M; goto extract_sfmt_cmp_m_w_m;
959 case 15 : itype = CRISV32F_INSN_CMPSCWR; goto extract_sfmt_cmpcwr;
960 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
963 case 208 : itype = CRISV32F_INSN_MULS_B; goto extract_sfmt_muls_b;
964 case 209 : itype = CRISV32F_INSN_MULS_W; goto extract_sfmt_muls_b;
965 case 210 : itype = CRISV32F_INSN_MULS_D; goto extract_sfmt_muls_b;
968 unsigned int val = (((insn >> 12) & (1 << 0)));
971 case 0 : itype = CRISV32F_INSN_FIDXI; goto extract_sfmt_fidxi;
972 case 1 : itype = CRISV32F_INSN_FTAGI; goto extract_sfmt_fidxi;
973 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
978 unsigned int val = (((insn >> 0) & (15 << 0)));
981 case 0 : /* fall through */
982 case 1 : /* fall through */
983 case 2 : /* fall through */
984 case 3 : /* fall through */
985 case 4 : /* fall through */
986 case 5 : /* fall through */
987 case 6 : /* fall through */
988 case 7 : /* fall through */
989 case 8 : /* fall through */
990 case 9 : /* fall through */
991 case 10 : /* fall through */
992 case 11 : /* fall through */
993 case 12 : /* fall through */
994 case 13 : /* fall through */
995 case 14 : itype = CRISV32F_INSN_ADDO_M_B_M; goto extract_sfmt_addo_m_b_m;
996 case 15 : itype = CRISV32F_INSN_ADDO_CB; goto extract_sfmt_addo_cb;
997 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1002 unsigned int val = (((insn >> 0) & (15 << 0)));
1005 case 0 : /* fall through */
1006 case 1 : /* fall through */
1007 case 2 : /* fall through */
1008 case 3 : /* fall through */
1009 case 4 : /* fall through */
1010 case 5 : /* fall through */
1011 case 6 : /* fall through */
1012 case 7 : /* fall through */
1013 case 8 : /* fall through */
1014 case 9 : /* fall through */
1015 case 10 : /* fall through */
1016 case 11 : /* fall through */
1017 case 12 : /* fall through */
1018 case 13 : /* fall through */
1019 case 14 : itype = CRISV32F_INSN_ADDO_M_W_M; goto extract_sfmt_addo_m_w_m;
1020 case 15 : itype = CRISV32F_INSN_ADDO_CW; goto extract_sfmt_addo_cw;
1021 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1026 unsigned int val = (((insn >> 0) & (15 << 0)));
1029 case 0 : /* fall through */
1030 case 1 : /* fall through */
1031 case 2 : /* fall through */
1032 case 3 : /* fall through */
1033 case 4 : /* fall through */
1034 case 5 : /* fall through */
1035 case 6 : /* fall through */
1036 case 7 : /* fall through */
1037 case 8 : /* fall through */
1038 case 9 : /* fall through */
1039 case 10 : /* fall through */
1040 case 11 : /* fall through */
1041 case 12 : /* fall through */
1042 case 13 : /* fall through */
1043 case 14 : itype = CRISV32F_INSN_ADDO_M_D_M; goto extract_sfmt_addo_m_d_m;
1044 case 15 : itype = CRISV32F_INSN_ADDO_CD; goto extract_sfmt_addo_cd;
1045 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1048 case 215 : itype = CRISV32F_INSN_LAPC_D; goto extract_sfmt_lapc_d;
1051 unsigned int val = (((insn >> 0) & (15 << 0)));
1054 case 0 : /* fall through */
1055 case 1 : /* fall through */
1056 case 2 : /* fall through */
1057 case 3 : /* fall through */
1058 case 4 : /* fall through */
1059 case 5 : /* fall through */
1060 case 6 : /* fall through */
1061 case 7 : /* fall through */
1062 case 8 : /* fall through */
1063 case 9 : /* fall through */
1064 case 10 : /* fall through */
1065 case 11 : /* fall through */
1066 case 12 : /* fall through */
1067 case 13 : /* fall through */
1068 case 14 : itype = CRISV32F_INSN_ADDC_M; goto extract_sfmt_addc_m;
1069 case 15 : itype = CRISV32F_INSN_ADDC_C; goto extract_sfmt_addcdr;
1070 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1073 case 219 : itype = CRISV32F_INSN_JAS_C; goto extract_sfmt_jas_c;
1074 case 220 : itype = CRISV32F_INSN_BOUND_CB; goto extract_sfmt_bound_cb;
1075 case 221 : itype = CRISV32F_INSN_BOUND_CW; goto extract_sfmt_bound_cw;
1076 case 222 : itype = CRISV32F_INSN_BOUND_CD; goto extract_sfmt_bound_cd;
1079 unsigned int val = (((insn >> 12) & (15 << 0)));
1082 case 0 : /* fall through */
1083 case 1 : /* fall through */
1084 case 2 : /* fall through */
1085 case 3 : /* fall through */
1086 case 4 : /* fall through */
1087 case 5 : /* fall through */
1088 case 6 : /* fall through */
1089 case 7 : /* fall through */
1090 case 8 : /* fall through */
1091 case 9 : /* fall through */
1092 case 10 : /* fall through */
1093 case 11 : /* fall through */
1094 case 12 : /* fall through */
1095 case 13 : /* fall through */
1096 case 15 : itype = CRISV32F_INSN_BCC_W; goto extract_sfmt_bcc_w;
1097 case 14 : itype = CRISV32F_INSN_BA_W; goto extract_sfmt_ba_w;
1098 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1103 unsigned int val = (((insn >> 0) & (15 << 0)));
1106 case 0 : /* fall through */
1107 case 1 : /* fall through */
1108 case 2 : /* fall through */
1109 case 3 : /* fall through */
1110 case 4 : /* fall through */
1111 case 5 : /* fall through */
1112 case 6 : /* fall through */
1113 case 7 : /* fall through */
1114 case 8 : /* fall through */
1115 case 9 : /* fall through */
1116 case 10 : /* fall through */
1117 case 11 : /* fall through */
1118 case 12 : /* fall through */
1119 case 13 : /* fall through */
1120 case 14 : itype = CRISV32F_INSN_ADD_M_B_M; goto extract_sfmt_add_m_b_m;
1121 case 15 : itype = CRISV32F_INSN_ADDCBR; goto extract_sfmt_addcbr;
1122 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1127 unsigned int val = (((insn >> 0) & (15 << 0)));
1130 case 0 : /* fall through */
1131 case 1 : /* fall through */
1132 case 2 : /* fall through */
1133 case 3 : /* fall through */
1134 case 4 : /* fall through */
1135 case 5 : /* fall through */
1136 case 6 : /* fall through */
1137 case 7 : /* fall through */
1138 case 8 : /* fall through */
1139 case 9 : /* fall through */
1140 case 10 : /* fall through */
1141 case 11 : /* fall through */
1142 case 12 : /* fall through */
1143 case 13 : /* fall through */
1144 case 14 : itype = CRISV32F_INSN_ADD_M_W_M; goto extract_sfmt_add_m_w_m;
1145 case 15 : itype = CRISV32F_INSN_ADDCWR; goto extract_sfmt_addcwr;
1146 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1151 unsigned int val = (((insn >> 0) & (15 << 0)));
1154 case 0 : /* fall through */
1155 case 1 : /* fall through */
1156 case 2 : /* fall through */
1157 case 3 : /* fall through */
1158 case 4 : /* fall through */
1159 case 5 : /* fall through */
1160 case 6 : /* fall through */
1161 case 7 : /* fall through */
1162 case 8 : /* fall through */
1163 case 9 : /* fall through */
1164 case 10 : /* fall through */
1165 case 11 : /* fall through */
1166 case 12 : /* fall through */
1167 case 13 : /* fall through */
1168 case 14 : itype = CRISV32F_INSN_ADD_M_D_M; goto extract_sfmt_add_m_d_m;
1169 case 15 : itype = CRISV32F_INSN_ADDCDR; goto extract_sfmt_addcdr;
1170 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1175 unsigned int val = (((insn >> 12) & (15 << 0)));
1180 unsigned int val = (((insn >> 0) & (15 << 0)));
1183 case 0 : /* fall through */
1184 case 1 : /* fall through */
1185 case 2 : /* fall through */
1186 case 3 : /* fall through */
1187 case 4 : /* fall through */
1188 case 5 : /* fall through */
1189 case 6 : /* fall through */
1190 case 7 : /* fall through */
1191 case 8 : /* fall through */
1192 case 9 : /* fall through */
1193 case 10 : /* fall through */
1194 case 11 : /* fall through */
1195 case 12 : /* fall through */
1196 case 13 : /* fall through */
1197 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1198 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P0; goto extract_sfmt_move_c_sprv32_p0;
1199 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1204 unsigned int val = (((insn >> 0) & (15 << 0)));
1207 case 0 : /* fall through */
1208 case 1 : /* fall through */
1209 case 2 : /* fall through */
1210 case 3 : /* fall through */
1211 case 4 : /* fall through */
1212 case 5 : /* fall through */
1213 case 6 : /* fall through */
1214 case 7 : /* fall through */
1215 case 8 : /* fall through */
1216 case 9 : /* fall through */
1217 case 10 : /* fall through */
1218 case 11 : /* fall through */
1219 case 12 : /* fall through */
1220 case 13 : /* fall through */
1221 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1222 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P1; goto extract_sfmt_move_c_sprv32_p0;
1223 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1228 unsigned int val = (((insn >> 0) & (15 << 0)));
1231 case 0 : /* fall through */
1232 case 1 : /* fall through */
1233 case 2 : /* fall through */
1234 case 3 : /* fall through */
1235 case 4 : /* fall through */
1236 case 5 : /* fall through */
1237 case 6 : /* fall through */
1238 case 7 : /* fall through */
1239 case 8 : /* fall through */
1240 case 9 : /* fall through */
1241 case 10 : /* fall through */
1242 case 11 : /* fall through */
1243 case 12 : /* fall through */
1244 case 13 : /* fall through */
1245 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1246 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P2; goto extract_sfmt_move_c_sprv32_p0;
1247 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1252 unsigned int val = (((insn >> 0) & (15 << 0)));
1255 case 0 : /* fall through */
1256 case 1 : /* fall through */
1257 case 2 : /* fall through */
1258 case 3 : /* fall through */
1259 case 4 : /* fall through */
1260 case 5 : /* fall through */
1261 case 6 : /* fall through */
1262 case 7 : /* fall through */
1263 case 8 : /* fall through */
1264 case 9 : /* fall through */
1265 case 10 : /* fall through */
1266 case 11 : /* fall through */
1267 case 12 : /* fall through */
1268 case 13 : /* fall through */
1269 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1270 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P3; goto extract_sfmt_move_c_sprv32_p0;
1271 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1276 unsigned int val = (((insn >> 0) & (15 << 0)));
1279 case 0 : /* fall through */
1280 case 1 : /* fall through */
1281 case 2 : /* fall through */
1282 case 3 : /* fall through */
1283 case 4 : /* fall through */
1284 case 5 : /* fall through */
1285 case 6 : /* fall through */
1286 case 7 : /* fall through */
1287 case 8 : /* fall through */
1288 case 9 : /* fall through */
1289 case 10 : /* fall through */
1290 case 11 : /* fall through */
1291 case 12 : /* fall through */
1292 case 13 : /* fall through */
1293 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1294 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P4; goto extract_sfmt_move_c_sprv32_p0;
1295 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1300 unsigned int val = (((insn >> 0) & (15 << 0)));
1303 case 0 : /* fall through */
1304 case 1 : /* fall through */
1305 case 2 : /* fall through */
1306 case 3 : /* fall through */
1307 case 4 : /* fall through */
1308 case 5 : /* fall through */
1309 case 6 : /* fall through */
1310 case 7 : /* fall through */
1311 case 8 : /* fall through */
1312 case 9 : /* fall through */
1313 case 10 : /* fall through */
1314 case 11 : /* fall through */
1315 case 12 : /* fall through */
1316 case 13 : /* fall through */
1317 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1318 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P5; goto extract_sfmt_move_c_sprv32_p0;
1319 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1324 unsigned int val = (((insn >> 0) & (15 << 0)));
1327 case 0 : /* fall through */
1328 case 1 : /* fall through */
1329 case 2 : /* fall through */
1330 case 3 : /* fall through */
1331 case 4 : /* fall through */
1332 case 5 : /* fall through */
1333 case 6 : /* fall through */
1334 case 7 : /* fall through */
1335 case 8 : /* fall through */
1336 case 9 : /* fall through */
1337 case 10 : /* fall through */
1338 case 11 : /* fall through */
1339 case 12 : /* fall through */
1340 case 13 : /* fall through */
1341 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1342 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P6; goto extract_sfmt_move_c_sprv32_p0;
1343 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1348 unsigned int val = (((insn >> 0) & (15 << 0)));
1351 case 0 : /* fall through */
1352 case 1 : /* fall through */
1353 case 2 : /* fall through */
1354 case 3 : /* fall through */
1355 case 4 : /* fall through */
1356 case 5 : /* fall through */
1357 case 6 : /* fall through */
1358 case 7 : /* fall through */
1359 case 8 : /* fall through */
1360 case 9 : /* fall through */
1361 case 10 : /* fall through */
1362 case 11 : /* fall through */
1363 case 12 : /* fall through */
1364 case 13 : /* fall through */
1365 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1366 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P7; goto extract_sfmt_move_c_sprv32_p0;
1367 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1372 unsigned int val = (((insn >> 0) & (15 << 0)));
1375 case 0 : /* fall through */
1376 case 1 : /* fall through */
1377 case 2 : /* fall through */
1378 case 3 : /* fall through */
1379 case 4 : /* fall through */
1380 case 5 : /* fall through */
1381 case 6 : /* fall through */
1382 case 7 : /* fall through */
1383 case 8 : /* fall through */
1384 case 9 : /* fall through */
1385 case 10 : /* fall through */
1386 case 11 : /* fall through */
1387 case 12 : /* fall through */
1388 case 13 : /* fall through */
1389 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1390 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P8; goto extract_sfmt_move_c_sprv32_p0;
1391 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1396 unsigned int val = (((insn >> 0) & (15 << 0)));
1399 case 0 : /* fall through */
1400 case 1 : /* fall through */
1401 case 2 : /* fall through */
1402 case 3 : /* fall through */
1403 case 4 : /* fall through */
1404 case 5 : /* fall through */
1405 case 6 : /* fall through */
1406 case 7 : /* fall through */
1407 case 8 : /* fall through */
1408 case 9 : /* fall through */
1409 case 10 : /* fall through */
1410 case 11 : /* fall through */
1411 case 12 : /* fall through */
1412 case 13 : /* fall through */
1413 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1414 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P9; goto extract_sfmt_move_c_sprv32_p0;
1415 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1420 unsigned int val = (((insn >> 0) & (15 << 0)));
1423 case 0 : /* fall through */
1424 case 1 : /* fall through */
1425 case 2 : /* fall through */
1426 case 3 : /* fall through */
1427 case 4 : /* fall through */
1428 case 5 : /* fall through */
1429 case 6 : /* fall through */
1430 case 7 : /* fall through */
1431 case 8 : /* fall through */
1432 case 9 : /* fall through */
1433 case 10 : /* fall through */
1434 case 11 : /* fall through */
1435 case 12 : /* fall through */
1436 case 13 : /* fall through */
1437 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1438 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P10; goto extract_sfmt_move_c_sprv32_p0;
1439 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1444 unsigned int val = (((insn >> 0) & (15 << 0)));
1447 case 0 : /* fall through */
1448 case 1 : /* fall through */
1449 case 2 : /* fall through */
1450 case 3 : /* fall through */
1451 case 4 : /* fall through */
1452 case 5 : /* fall through */
1453 case 6 : /* fall through */
1454 case 7 : /* fall through */
1455 case 8 : /* fall through */
1456 case 9 : /* fall through */
1457 case 10 : /* fall through */
1458 case 11 : /* fall through */
1459 case 12 : /* fall through */
1460 case 13 : /* fall through */
1461 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1462 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P11; goto extract_sfmt_move_c_sprv32_p0;
1463 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1468 unsigned int val = (((insn >> 0) & (15 << 0)));
1471 case 0 : /* fall through */
1472 case 1 : /* fall through */
1473 case 2 : /* fall through */
1474 case 3 : /* fall through */
1475 case 4 : /* fall through */
1476 case 5 : /* fall through */
1477 case 6 : /* fall through */
1478 case 7 : /* fall through */
1479 case 8 : /* fall through */
1480 case 9 : /* fall through */
1481 case 10 : /* fall through */
1482 case 11 : /* fall through */
1483 case 12 : /* fall through */
1484 case 13 : /* fall through */
1485 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1486 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P12; goto extract_sfmt_move_c_sprv32_p0;
1487 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1492 unsigned int val = (((insn >> 0) & (15 << 0)));
1495 case 0 : /* fall through */
1496 case 1 : /* fall through */
1497 case 2 : /* fall through */
1498 case 3 : /* fall through */
1499 case 4 : /* fall through */
1500 case 5 : /* fall through */
1501 case 6 : /* fall through */
1502 case 7 : /* fall through */
1503 case 8 : /* fall through */
1504 case 9 : /* fall through */
1505 case 10 : /* fall through */
1506 case 11 : /* fall through */
1507 case 12 : /* fall through */
1508 case 13 : /* fall through */
1509 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1510 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P13; goto extract_sfmt_move_c_sprv32_p0;
1511 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1516 unsigned int val = (((insn >> 0) & (15 << 0)));
1519 case 0 : /* fall through */
1520 case 1 : /* fall through */
1521 case 2 : /* fall through */
1522 case 3 : /* fall through */
1523 case 4 : /* fall through */
1524 case 5 : /* fall through */
1525 case 6 : /* fall through */
1526 case 7 : /* fall through */
1527 case 8 : /* fall through */
1528 case 9 : /* fall through */
1529 case 10 : /* fall through */
1530 case 11 : /* fall through */
1531 case 12 : /* fall through */
1532 case 13 : /* fall through */
1533 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1534 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P14; goto extract_sfmt_move_c_sprv32_p0;
1535 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1540 unsigned int val = (((insn >> 0) & (15 << 0)));
1543 case 0 : /* fall through */
1544 case 1 : /* fall through */
1545 case 2 : /* fall through */
1546 case 3 : /* fall through */
1547 case 4 : /* fall through */
1548 case 5 : /* fall through */
1549 case 6 : /* fall through */
1550 case 7 : /* fall through */
1551 case 8 : /* fall through */
1552 case 9 : /* fall through */
1553 case 10 : /* fall through */
1554 case 11 : /* fall through */
1555 case 12 : /* fall through */
1556 case 13 : /* fall through */
1557 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1558 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P15; goto extract_sfmt_move_c_sprv32_p0;
1559 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1562 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1567 unsigned int val = (((insn >> 0) & (15 << 0)));
1570 case 0 : /* fall through */
1571 case 1 : /* fall through */
1572 case 2 : /* fall through */
1573 case 3 : /* fall through */
1574 case 4 : /* fall through */
1575 case 5 : /* fall through */
1576 case 6 : /* fall through */
1577 case 7 : /* fall through */
1578 case 8 : /* fall through */
1579 case 9 : /* fall through */
1580 case 10 : /* fall through */
1581 case 11 : /* fall through */
1582 case 12 : /* fall through */
1583 case 13 : /* fall through */
1584 case 14 : itype = CRISV32F_INSN_MOVE_M_B_M; goto extract_sfmt_move_m_b_m;
1585 case 15 : itype = CRISV32F_INSN_MOVECBR; goto extract_sfmt_movecbr;
1586 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1591 unsigned int val = (((insn >> 0) & (15 << 0)));
1594 case 0 : /* fall through */
1595 case 1 : /* fall through */
1596 case 2 : /* fall through */
1597 case 3 : /* fall through */
1598 case 4 : /* fall through */
1599 case 5 : /* fall through */
1600 case 6 : /* fall through */
1601 case 7 : /* fall through */
1602 case 8 : /* fall through */
1603 case 9 : /* fall through */
1604 case 10 : /* fall through */
1605 case 11 : /* fall through */
1606 case 12 : /* fall through */
1607 case 13 : /* fall through */
1608 case 14 : itype = CRISV32F_INSN_MOVE_M_W_M; goto extract_sfmt_move_m_w_m;
1609 case 15 : itype = CRISV32F_INSN_MOVECWR; goto extract_sfmt_movecwr;
1610 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1615 unsigned int val = (((insn >> 0) & (15 << 0)));
1618 case 0 : /* fall through */
1619 case 1 : /* fall through */
1620 case 2 : /* fall through */
1621 case 3 : /* fall through */
1622 case 4 : /* fall through */
1623 case 5 : /* fall through */
1624 case 6 : /* fall through */
1625 case 7 : /* fall through */
1626 case 8 : /* fall through */
1627 case 9 : /* fall through */
1628 case 10 : /* fall through */
1629 case 11 : /* fall through */
1630 case 12 : /* fall through */
1631 case 13 : /* fall through */
1632 case 14 : itype = CRISV32F_INSN_MOVE_M_D_M; goto extract_sfmt_move_m_d_m;
1633 case 15 : itype = CRISV32F_INSN_MOVECDR; goto extract_sfmt_movecdr;
1634 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1639 unsigned int val = (((insn >> 0) & (15 << 0)));
1642 case 0 : /* fall through */
1643 case 1 : /* fall through */
1644 case 2 : /* fall through */
1645 case 3 : /* fall through */
1646 case 4 : /* fall through */
1647 case 5 : /* fall through */
1648 case 6 : /* fall through */
1649 case 7 : /* fall through */
1650 case 8 : /* fall through */
1651 case 9 : /* fall through */
1652 case 10 : /* fall through */
1653 case 11 : /* fall through */
1654 case 12 : /* fall through */
1655 case 13 : /* fall through */
1656 case 14 : itype = CRISV32F_INSN_SUB_M_B_M; goto extract_sfmt_add_m_b_m;
1657 case 15 : itype = CRISV32F_INSN_SUBCBR; goto extract_sfmt_addcbr;
1658 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1663 unsigned int val = (((insn >> 0) & (15 << 0)));
1666 case 0 : /* fall through */
1667 case 1 : /* fall through */
1668 case 2 : /* fall through */
1669 case 3 : /* fall through */
1670 case 4 : /* fall through */
1671 case 5 : /* fall through */
1672 case 6 : /* fall through */
1673 case 7 : /* fall through */
1674 case 8 : /* fall through */
1675 case 9 : /* fall through */
1676 case 10 : /* fall through */
1677 case 11 : /* fall through */
1678 case 12 : /* fall through */
1679 case 13 : /* fall through */
1680 case 14 : itype = CRISV32F_INSN_SUB_M_W_M; goto extract_sfmt_add_m_w_m;
1681 case 15 : itype = CRISV32F_INSN_SUBCWR; goto extract_sfmt_addcwr;
1682 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1687 unsigned int val = (((insn >> 0) & (15 << 0)));
1690 case 0 : /* fall through */
1691 case 1 : /* fall through */
1692 case 2 : /* fall through */
1693 case 3 : /* fall through */
1694 case 4 : /* fall through */
1695 case 5 : /* fall through */
1696 case 6 : /* fall through */
1697 case 7 : /* fall through */
1698 case 8 : /* fall through */
1699 case 9 : /* fall through */
1700 case 10 : /* fall through */
1701 case 11 : /* fall through */
1702 case 12 : /* fall through */
1703 case 13 : /* fall through */
1704 case 14 : itype = CRISV32F_INSN_SUB_M_D_M; goto extract_sfmt_add_m_d_m;
1705 case 15 : itype = CRISV32F_INSN_SUBCDR; goto extract_sfmt_addcdr;
1706 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1709 case 235 : itype = CRISV32F_INSN_BAS_C; goto extract_sfmt_bas_c;
1712 unsigned int val = (((insn >> 0) & (15 << 0)));
1715 case 0 : /* fall through */
1716 case 1 : /* fall through */
1717 case 2 : /* fall through */
1718 case 3 : /* fall through */
1719 case 4 : /* fall through */
1720 case 5 : /* fall through */
1721 case 6 : /* fall through */
1722 case 7 : /* fall through */
1723 case 8 : /* fall through */
1724 case 9 : /* fall through */
1725 case 10 : /* fall through */
1726 case 11 : /* fall through */
1727 case 12 : /* fall through */
1728 case 13 : /* fall through */
1729 case 14 : itype = CRISV32F_INSN_CMP_M_B_M; goto extract_sfmt_cmp_m_b_m;
1730 case 15 : itype = CRISV32F_INSN_CMPCBR; goto extract_sfmt_cmpcbr;
1731 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1736 unsigned int val = (((insn >> 0) & (15 << 0)));
1739 case 0 : /* fall through */
1740 case 1 : /* fall through */
1741 case 2 : /* fall through */
1742 case 3 : /* fall through */
1743 case 4 : /* fall through */
1744 case 5 : /* fall through */
1745 case 6 : /* fall through */
1746 case 7 : /* fall through */
1747 case 8 : /* fall through */
1748 case 9 : /* fall through */
1749 case 10 : /* fall through */
1750 case 11 : /* fall through */
1751 case 12 : /* fall through */
1752 case 13 : /* fall through */
1753 case 14 : itype = CRISV32F_INSN_CMP_M_W_M; goto extract_sfmt_cmp_m_w_m;
1754 case 15 : itype = CRISV32F_INSN_CMPCWR; goto extract_sfmt_cmpcwr;
1755 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1760 unsigned int val = (((insn >> 0) & (15 << 0)));
1763 case 0 : /* fall through */
1764 case 1 : /* fall through */
1765 case 2 : /* fall through */
1766 case 3 : /* fall through */
1767 case 4 : /* fall through */
1768 case 5 : /* fall through */
1769 case 6 : /* fall through */
1770 case 7 : /* fall through */
1771 case 8 : /* fall through */
1772 case 9 : /* fall through */
1773 case 10 : /* fall through */
1774 case 11 : /* fall through */
1775 case 12 : /* fall through */
1776 case 13 : /* fall through */
1777 case 14 : itype = CRISV32F_INSN_CMP_M_D_M; goto extract_sfmt_cmp_m_d_m;
1778 case 15 : itype = CRISV32F_INSN_CMPCDR; goto extract_sfmt_cmpcdr;
1779 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1782 case 239 : itype = CRISV32F_INSN_BASC_C; goto extract_sfmt_bas_c;
1785 unsigned int val = (((insn >> 0) & (15 << 0)));
1788 case 0 : /* fall through */
1789 case 1 : /* fall through */
1790 case 2 : /* fall through */
1791 case 3 : /* fall through */
1792 case 4 : /* fall through */
1793 case 5 : /* fall through */
1794 case 6 : /* fall through */
1795 case 7 : /* fall through */
1796 case 8 : /* fall through */
1797 case 9 : /* fall through */
1798 case 10 : /* fall through */
1799 case 11 : /* fall through */
1800 case 12 : /* fall through */
1801 case 13 : /* fall through */
1802 case 14 : itype = CRISV32F_INSN_AND_M_B_M; goto extract_sfmt_and_m_b_m;
1803 case 15 : itype = CRISV32F_INSN_ANDCBR; goto extract_sfmt_andcbr;
1804 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1809 unsigned int val = (((insn >> 0) & (15 << 0)));
1812 case 0 : /* fall through */
1813 case 1 : /* fall through */
1814 case 2 : /* fall through */
1815 case 3 : /* fall through */
1816 case 4 : /* fall through */
1817 case 5 : /* fall through */
1818 case 6 : /* fall through */
1819 case 7 : /* fall through */
1820 case 8 : /* fall through */
1821 case 9 : /* fall through */
1822 case 10 : /* fall through */
1823 case 11 : /* fall through */
1824 case 12 : /* fall through */
1825 case 13 : /* fall through */
1826 case 14 : itype = CRISV32F_INSN_AND_M_W_M; goto extract_sfmt_and_m_w_m;
1827 case 15 : itype = CRISV32F_INSN_ANDCWR; goto extract_sfmt_andcwr;
1828 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1833 unsigned int val = (((insn >> 0) & (15 << 0)));
1836 case 0 : /* fall through */
1837 case 1 : /* fall through */
1838 case 2 : /* fall through */
1839 case 3 : /* fall through */
1840 case 4 : /* fall through */
1841 case 5 : /* fall through */
1842 case 6 : /* fall through */
1843 case 7 : /* fall through */
1844 case 8 : /* fall through */
1845 case 9 : /* fall through */
1846 case 10 : /* fall through */
1847 case 11 : /* fall through */
1848 case 12 : /* fall through */
1849 case 13 : /* fall through */
1850 case 14 : itype = CRISV32F_INSN_AND_M_D_M; goto extract_sfmt_and_m_d_m;
1851 case 15 : itype = CRISV32F_INSN_ANDCDR; goto extract_sfmt_andcdr;
1852 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1855 case 243 : itype = CRISV32F_INSN_JASC_C; goto extract_sfmt_jas_c;
1858 unsigned int val = (((insn >> 0) & (15 << 0)));
1861 case 0 : /* fall through */
1862 case 1 : /* fall through */
1863 case 2 : /* fall through */
1864 case 3 : /* fall through */
1865 case 4 : /* fall through */
1866 case 5 : /* fall through */
1867 case 6 : /* fall through */
1868 case 7 : /* fall through */
1869 case 8 : /* fall through */
1870 case 9 : /* fall through */
1871 case 10 : /* fall through */
1872 case 11 : /* fall through */
1873 case 12 : /* fall through */
1874 case 13 : /* fall through */
1875 case 14 : itype = CRISV32F_INSN_OR_M_B_M; goto extract_sfmt_and_m_b_m;
1876 case 15 : itype = CRISV32F_INSN_ORCBR; goto extract_sfmt_andcbr;
1877 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1882 unsigned int val = (((insn >> 0) & (15 << 0)));
1885 case 0 : /* fall through */
1886 case 1 : /* fall through */
1887 case 2 : /* fall through */
1888 case 3 : /* fall through */
1889 case 4 : /* fall through */
1890 case 5 : /* fall through */
1891 case 6 : /* fall through */
1892 case 7 : /* fall through */
1893 case 8 : /* fall through */
1894 case 9 : /* fall through */
1895 case 10 : /* fall through */
1896 case 11 : /* fall through */
1897 case 12 : /* fall through */
1898 case 13 : /* fall through */
1899 case 14 : itype = CRISV32F_INSN_OR_M_W_M; goto extract_sfmt_and_m_w_m;
1900 case 15 : itype = CRISV32F_INSN_ORCWR; goto extract_sfmt_andcwr;
1901 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1906 unsigned int val = (((insn >> 0) & (15 << 0)));
1909 case 0 : /* fall through */
1910 case 1 : /* fall through */
1911 case 2 : /* fall through */
1912 case 3 : /* fall through */
1913 case 4 : /* fall through */
1914 case 5 : /* fall through */
1915 case 6 : /* fall through */
1916 case 7 : /* fall through */
1917 case 8 : /* fall through */
1918 case 9 : /* fall through */
1919 case 10 : /* fall through */
1920 case 11 : /* fall through */
1921 case 12 : /* fall through */
1922 case 13 : /* fall through */
1923 case 14 : itype = CRISV32F_INSN_OR_M_D_M; goto extract_sfmt_and_m_d_m;
1924 case 15 : itype = CRISV32F_INSN_ORCDR; goto extract_sfmt_andcdr;
1925 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1928 case 247 : itype = CRISV32F_INSN_MOVE_SS_R; goto extract_sfmt_move_ss_r;
1929 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1934 /* The instruction has been decoded, now extract the fields. */
1938 const IDESC *idesc = &crisv32f_insn_data[itype];
1939 #define FLD(f) abuf->fields.fmt_empty.f
1942 /* Record the fields for the semantic handler. */
1943 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_empty", (char *) 0));
1949 extract_sfmt_move_b_r:
1951 const IDESC *idesc = &crisv32f_insn_data[itype];
1952 CGEN_INSN_INT insn = base_insn;
1953 #define FLD(f) abuf->fields.sfmt_addc_m.f
1957 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
1958 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
1960 /* Record the fields for the semantic handler. */
1961 FLD (f_operand1) = f_operand1;
1962 FLD (f_operand2) = f_operand2;
1963 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_b_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
1965 #if WITH_PROFILE_MODEL_P
1966 /* Record the fields for profiling. */
1967 if (PROFILE_MODEL_P (current_cpu))
1969 FLD (in_Rs) = f_operand1;
1970 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
1977 extract_sfmt_move_d_r:
1979 const IDESC *idesc = &crisv32f_insn_data[itype];
1980 CGEN_INSN_INT insn = base_insn;
1981 #define FLD(f) abuf->fields.sfmt_addc_m.f
1985 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
1986 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
1988 /* Record the fields for the semantic handler. */
1989 FLD (f_operand1) = f_operand1;
1990 FLD (f_operand2) = f_operand2;
1991 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_d_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
1993 #if WITH_PROFILE_MODEL_P
1994 /* Record the fields for profiling. */
1995 if (PROFILE_MODEL_P (current_cpu))
1997 FLD (in_Rs) = f_operand1;
1998 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
2007 const IDESC *idesc = &crisv32f_insn_data[itype];
2008 CGEN_INSN_INT insn = base_insn;
2009 #define FLD(f) abuf->fields.sfmt_moveq.f
2013 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2014 f_s6 = EXTRACT_LSB0_INT (insn, 16, 5, 6);
2016 /* Record the fields for the semantic handler. */
2018 FLD (f_operand2) = f_operand2;
2019 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_moveq", "f_s6 0x%x", 'x', f_s6, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2021 #if WITH_PROFILE_MODEL_P
2022 /* Record the fields for profiling. */
2023 if (PROFILE_MODEL_P (current_cpu))
2025 FLD (out_Rd) = f_operand2;
2032 extract_sfmt_movs_b_r:
2034 const IDESC *idesc = &crisv32f_insn_data[itype];
2035 CGEN_INSN_INT insn = base_insn;
2036 #define FLD(f) abuf->fields.sfmt_muls_b.f
2040 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2041 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2043 /* Record the fields for the semantic handler. */
2044 FLD (f_operand1) = f_operand1;
2045 FLD (f_operand2) = f_operand2;
2046 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movs_b_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2048 #if WITH_PROFILE_MODEL_P
2049 /* Record the fields for profiling. */
2050 if (PROFILE_MODEL_P (current_cpu))
2052 FLD (in_Rs) = f_operand1;
2053 FLD (out_Rd) = f_operand2;
2060 extract_sfmt_movecbr:
2062 const IDESC *idesc = &crisv32f_insn_data[itype];
2063 CGEN_INSN_INT insn = base_insn;
2064 #define FLD(f) abuf->fields.sfmt_addcbr.f
2065 INT f_indir_pc__byte;
2067 /* Contents of trailing part of insn. */
2070 word_1 = GETIMEMUHI (current_cpu, pc + 2);
2071 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
2072 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2074 /* Record the fields for the semantic handler. */
2075 FLD (f_operand2) = f_operand2;
2076 FLD (f_indir_pc__byte) = f_indir_pc__byte;
2077 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movecbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
2079 #if WITH_PROFILE_MODEL_P
2080 /* Record the fields for profiling. */
2081 if (PROFILE_MODEL_P (current_cpu))
2083 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
2090 extract_sfmt_movecwr:
2092 const IDESC *idesc = &crisv32f_insn_data[itype];
2093 CGEN_INSN_INT insn = base_insn;
2094 #define FLD(f) abuf->fields.sfmt_addcwr.f
2095 INT f_indir_pc__word;
2097 /* Contents of trailing part of insn. */
2100 word_1 = GETIMEMUHI (current_cpu, pc + 2);
2101 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
2102 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2104 /* Record the fields for the semantic handler. */
2105 FLD (f_operand2) = f_operand2;
2106 FLD (f_indir_pc__word) = f_indir_pc__word;
2107 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movecwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
2109 #if WITH_PROFILE_MODEL_P
2110 /* Record the fields for profiling. */
2111 if (PROFILE_MODEL_P (current_cpu))
2113 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
2120 extract_sfmt_movecdr:
2122 const IDESC *idesc = &crisv32f_insn_data[itype];
2123 CGEN_INSN_INT insn = base_insn;
2124 #define FLD(f) abuf->fields.sfmt_bound_cd.f
2125 INT f_indir_pc__dword;
2127 /* Contents of trailing part of insn. */
2130 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2131 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
2132 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2134 /* Record the fields for the semantic handler. */
2135 FLD (f_indir_pc__dword) = f_indir_pc__dword;
2136 FLD (f_operand2) = f_operand2;
2137 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movecdr", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2139 #if WITH_PROFILE_MODEL_P
2140 /* Record the fields for profiling. */
2141 if (PROFILE_MODEL_P (current_cpu))
2143 FLD (out_Rd) = f_operand2;
2150 extract_sfmt_movscbr:
2152 const IDESC *idesc = &crisv32f_insn_data[itype];
2153 CGEN_INSN_INT insn = base_insn;
2154 #define FLD(f) abuf->fields.sfmt_bound_cb.f
2156 INT f_indir_pc__byte;
2157 /* Contents of trailing part of insn. */
2160 word_1 = GETIMEMUHI (current_cpu, pc + 2);
2161 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2162 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
2164 /* Record the fields for the semantic handler. */
2165 FLD (f_indir_pc__byte) = f_indir_pc__byte;
2166 FLD (f_operand2) = f_operand2;
2167 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movscbr", "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2169 #if WITH_PROFILE_MODEL_P
2170 /* Record the fields for profiling. */
2171 if (PROFILE_MODEL_P (current_cpu))
2173 FLD (out_Rd) = f_operand2;
2180 extract_sfmt_movscwr:
2182 const IDESC *idesc = &crisv32f_insn_data[itype];
2183 CGEN_INSN_INT insn = base_insn;
2184 #define FLD(f) abuf->fields.sfmt_bound_cw.f
2186 INT f_indir_pc__word;
2187 /* Contents of trailing part of insn. */
2190 word_1 = GETIMEMUHI (current_cpu, pc + 2);
2191 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2192 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
2194 /* Record the fields for the semantic handler. */
2195 FLD (f_indir_pc__word) = f_indir_pc__word;
2196 FLD (f_operand2) = f_operand2;
2197 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movscwr", "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2199 #if WITH_PROFILE_MODEL_P
2200 /* Record the fields for profiling. */
2201 if (PROFILE_MODEL_P (current_cpu))
2203 FLD (out_Rd) = f_operand2;
2210 extract_sfmt_movucbr:
2212 const IDESC *idesc = &crisv32f_insn_data[itype];
2213 CGEN_INSN_INT insn = base_insn;
2214 #define FLD(f) abuf->fields.sfmt_bound_cb.f
2216 INT f_indir_pc__byte;
2217 /* Contents of trailing part of insn. */
2220 word_1 = GETIMEMUHI (current_cpu, pc + 2);
2221 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2222 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
2224 /* Record the fields for the semantic handler. */
2225 FLD (f_indir_pc__byte) = f_indir_pc__byte;
2226 FLD (f_operand2) = f_operand2;
2227 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movucbr", "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2229 #if WITH_PROFILE_MODEL_P
2230 /* Record the fields for profiling. */
2231 if (PROFILE_MODEL_P (current_cpu))
2233 FLD (out_Rd) = f_operand2;
2240 extract_sfmt_movucwr:
2242 const IDESC *idesc = &crisv32f_insn_data[itype];
2243 CGEN_INSN_INT insn = base_insn;
2244 #define FLD(f) abuf->fields.sfmt_bound_cw.f
2246 INT f_indir_pc__word;
2247 /* Contents of trailing part of insn. */
2250 word_1 = GETIMEMUHI (current_cpu, pc + 2);
2251 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2252 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
2254 /* Record the fields for the semantic handler. */
2255 FLD (f_indir_pc__word) = f_indir_pc__word;
2256 FLD (f_operand2) = f_operand2;
2257 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movucwr", "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2259 #if WITH_PROFILE_MODEL_P
2260 /* Record the fields for profiling. */
2261 if (PROFILE_MODEL_P (current_cpu))
2263 FLD (out_Rd) = f_operand2;
2272 const IDESC *idesc = &crisv32f_insn_data[itype];
2273 CGEN_INSN_INT insn = base_insn;
2274 #define FLD(f) abuf->fields.sfmt_addq.f
2278 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2279 f_u6 = EXTRACT_LSB0_UINT (insn, 16, 5, 6);
2281 /* Record the fields for the semantic handler. */
2282 FLD (f_operand2) = f_operand2;
2284 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addq", "f_operand2 0x%x", 'x', f_operand2, "f_u6 0x%x", 'x', f_u6, (char *) 0));
2286 #if WITH_PROFILE_MODEL_P
2287 /* Record the fields for profiling. */
2288 if (PROFILE_MODEL_P (current_cpu))
2290 FLD (in_Rd) = f_operand2;
2291 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
2298 extract_sfmt_cmp_r_b_r:
2300 const IDESC *idesc = &crisv32f_insn_data[itype];
2301 CGEN_INSN_INT insn = base_insn;
2302 #define FLD(f) abuf->fields.sfmt_muls_b.f
2306 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2307 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2309 /* Record the fields for the semantic handler. */
2310 FLD (f_operand2) = f_operand2;
2311 FLD (f_operand1) = f_operand1;
2312 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmp_r_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
2314 #if WITH_PROFILE_MODEL_P
2315 /* Record the fields for profiling. */
2316 if (PROFILE_MODEL_P (current_cpu))
2318 FLD (in_Rd) = f_operand2;
2319 FLD (in_Rs) = f_operand1;
2326 extract_sfmt_cmp_m_b_m:
2328 const IDESC *idesc = &crisv32f_insn_data[itype];
2329 CGEN_INSN_INT insn = base_insn;
2330 #define FLD(f) abuf->fields.sfmt_addc_m.f
2335 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2336 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2337 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2339 /* Record the fields for the semantic handler. */
2340 FLD (f_operand2) = f_operand2;
2341 FLD (f_operand1) = f_operand1;
2342 FLD (f_memmode) = f_memmode;
2343 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmp_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
2345 #if WITH_PROFILE_MODEL_P
2346 /* Record the fields for profiling. */
2347 if (PROFILE_MODEL_P (current_cpu))
2349 FLD (in_Rd) = f_operand2;
2350 FLD (in_Rs) = f_operand1;
2351 FLD (out_Rs) = f_operand1;
2358 extract_sfmt_cmp_m_w_m:
2360 const IDESC *idesc = &crisv32f_insn_data[itype];
2361 CGEN_INSN_INT insn = base_insn;
2362 #define FLD(f) abuf->fields.sfmt_addc_m.f
2367 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2368 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2369 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2371 /* Record the fields for the semantic handler. */
2372 FLD (f_operand2) = f_operand2;
2373 FLD (f_operand1) = f_operand1;
2374 FLD (f_memmode) = f_memmode;
2375 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmp_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
2377 #if WITH_PROFILE_MODEL_P
2378 /* Record the fields for profiling. */
2379 if (PROFILE_MODEL_P (current_cpu))
2381 FLD (in_Rd) = f_operand2;
2382 FLD (in_Rs) = f_operand1;
2383 FLD (out_Rs) = f_operand1;
2390 extract_sfmt_cmp_m_d_m:
2392 const IDESC *idesc = &crisv32f_insn_data[itype];
2393 CGEN_INSN_INT insn = base_insn;
2394 #define FLD(f) abuf->fields.sfmt_addc_m.f
2399 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2400 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2401 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2403 /* Record the fields for the semantic handler. */
2404 FLD (f_operand2) = f_operand2;
2405 FLD (f_operand1) = f_operand1;
2406 FLD (f_memmode) = f_memmode;
2407 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmp_m_d_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
2409 #if WITH_PROFILE_MODEL_P
2410 /* Record the fields for profiling. */
2411 if (PROFILE_MODEL_P (current_cpu))
2413 FLD (in_Rd) = f_operand2;
2414 FLD (in_Rs) = f_operand1;
2415 FLD (out_Rs) = f_operand1;
2422 extract_sfmt_cmpcbr:
2424 const IDESC *idesc = &crisv32f_insn_data[itype];
2425 CGEN_INSN_INT insn = base_insn;
2426 #define FLD(f) abuf->fields.sfmt_bound_cb.f
2427 INT f_indir_pc__byte;
2429 /* Contents of trailing part of insn. */
2432 word_1 = GETIMEMUHI (current_cpu, pc + 2);
2433 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
2434 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2436 /* Record the fields for the semantic handler. */
2437 FLD (f_operand2) = f_operand2;
2438 FLD (f_indir_pc__byte) = f_indir_pc__byte;
2439 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpcbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
2441 #if WITH_PROFILE_MODEL_P
2442 /* Record the fields for profiling. */
2443 if (PROFILE_MODEL_P (current_cpu))
2445 FLD (in_Rd) = f_operand2;
2452 extract_sfmt_cmpcwr:
2454 const IDESC *idesc = &crisv32f_insn_data[itype];
2455 CGEN_INSN_INT insn = base_insn;
2456 #define FLD(f) abuf->fields.sfmt_bound_cw.f
2457 INT f_indir_pc__word;
2459 /* Contents of trailing part of insn. */
2462 word_1 = GETIMEMUHI (current_cpu, pc + 2);
2463 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
2464 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2466 /* Record the fields for the semantic handler. */
2467 FLD (f_operand2) = f_operand2;
2468 FLD (f_indir_pc__word) = f_indir_pc__word;
2469 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpcwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
2471 #if WITH_PROFILE_MODEL_P
2472 /* Record the fields for profiling. */
2473 if (PROFILE_MODEL_P (current_cpu))
2475 FLD (in_Rd) = f_operand2;
2482 extract_sfmt_cmpcdr:
2484 const IDESC *idesc = &crisv32f_insn_data[itype];
2485 CGEN_INSN_INT insn = base_insn;
2486 #define FLD(f) abuf->fields.sfmt_bound_cd.f
2487 INT f_indir_pc__dword;
2489 /* Contents of trailing part of insn. */
2492 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2493 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
2494 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2496 /* Record the fields for the semantic handler. */
2497 FLD (f_operand2) = f_operand2;
2498 FLD (f_indir_pc__dword) = f_indir_pc__dword;
2499 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpcdr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
2501 #if WITH_PROFILE_MODEL_P
2502 /* Record the fields for profiling. */
2503 if (PROFILE_MODEL_P (current_cpu))
2505 FLD (in_Rd) = f_operand2;
2514 const IDESC *idesc = &crisv32f_insn_data[itype];
2515 CGEN_INSN_INT insn = base_insn;
2516 #define FLD(f) abuf->fields.sfmt_andq.f
2520 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2521 f_s6 = EXTRACT_LSB0_INT (insn, 16, 5, 6);
2523 /* Record the fields for the semantic handler. */
2524 FLD (f_operand2) = f_operand2;
2526 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpq", "f_operand2 0x%x", 'x', f_operand2, "f_s6 0x%x", 'x', f_s6, (char *) 0));
2528 #if WITH_PROFILE_MODEL_P
2529 /* Record the fields for profiling. */
2530 if (PROFILE_MODEL_P (current_cpu))
2532 FLD (in_Rd) = f_operand2;
2539 extract_sfmt_cmpucbr:
2541 const IDESC *idesc = &crisv32f_insn_data[itype];
2542 CGEN_INSN_INT insn = base_insn;
2543 #define FLD(f) abuf->fields.sfmt_bound_cb.f
2544 INT f_indir_pc__byte;
2546 /* Contents of trailing part of insn. */
2549 word_1 = GETIMEMUHI (current_cpu, pc + 2);
2550 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
2551 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2553 /* Record the fields for the semantic handler. */
2554 FLD (f_operand2) = f_operand2;
2555 FLD (f_indir_pc__byte) = f_indir_pc__byte;
2556 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpucbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
2558 #if WITH_PROFILE_MODEL_P
2559 /* Record the fields for profiling. */
2560 if (PROFILE_MODEL_P (current_cpu))
2562 FLD (in_Rd) = f_operand2;
2569 extract_sfmt_cmpucwr:
2571 const IDESC *idesc = &crisv32f_insn_data[itype];
2572 CGEN_INSN_INT insn = base_insn;
2573 #define FLD(f) abuf->fields.sfmt_bound_cw.f
2574 INT f_indir_pc__word;
2576 /* Contents of trailing part of insn. */
2579 word_1 = GETIMEMUHI (current_cpu, pc + 2);
2580 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
2581 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2583 /* Record the fields for the semantic handler. */
2584 FLD (f_operand2) = f_operand2;
2585 FLD (f_indir_pc__word) = f_indir_pc__word;
2586 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpucwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
2588 #if WITH_PROFILE_MODEL_P
2589 /* Record the fields for profiling. */
2590 if (PROFILE_MODEL_P (current_cpu))
2592 FLD (in_Rd) = f_operand2;
2599 extract_sfmt_move_m_b_m:
2601 const IDESC *idesc = &crisv32f_insn_data[itype];
2602 CGEN_INSN_INT insn = base_insn;
2603 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2608 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2609 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2610 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2612 /* Record the fields for the semantic handler. */
2613 FLD (f_operand1) = f_operand1;
2614 FLD (f_operand2) = f_operand2;
2615 FLD (f_memmode) = f_memmode;
2616 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_m_b_m", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
2618 #if WITH_PROFILE_MODEL_P
2619 /* Record the fields for profiling. */
2620 if (PROFILE_MODEL_P (current_cpu))
2622 FLD (in_Rs) = f_operand1;
2623 FLD (out_Rs) = f_operand1;
2624 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
2631 extract_sfmt_move_m_w_m:
2633 const IDESC *idesc = &crisv32f_insn_data[itype];
2634 CGEN_INSN_INT insn = base_insn;
2635 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2640 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2641 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2642 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2644 /* Record the fields for the semantic handler. */
2645 FLD (f_operand1) = f_operand1;
2646 FLD (f_operand2) = f_operand2;
2647 FLD (f_memmode) = f_memmode;
2648 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_m_w_m", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
2650 #if WITH_PROFILE_MODEL_P
2651 /* Record the fields for profiling. */
2652 if (PROFILE_MODEL_P (current_cpu))
2654 FLD (in_Rs) = f_operand1;
2655 FLD (out_Rs) = f_operand1;
2656 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
2663 extract_sfmt_move_m_d_m:
2665 const IDESC *idesc = &crisv32f_insn_data[itype];
2666 CGEN_INSN_INT insn = base_insn;
2667 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2672 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2673 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2674 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2676 /* Record the fields for the semantic handler. */
2677 FLD (f_operand1) = f_operand1;
2678 FLD (f_operand2) = f_operand2;
2679 FLD (f_memmode) = f_memmode;
2680 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_m_d_m", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
2682 #if WITH_PROFILE_MODEL_P
2683 /* Record the fields for profiling. */
2684 if (PROFILE_MODEL_P (current_cpu))
2686 FLD (in_Rs) = f_operand1;
2687 FLD (out_Rs) = f_operand1;
2688 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
2695 extract_sfmt_movs_m_b_m:
2697 const IDESC *idesc = &crisv32f_insn_data[itype];
2698 CGEN_INSN_INT insn = base_insn;
2699 #define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
2704 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2705 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2706 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2708 /* Record the fields for the semantic handler. */
2709 FLD (f_operand1) = f_operand1;
2710 FLD (f_memmode) = f_memmode;
2711 FLD (f_operand2) = f_operand2;
2712 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movs_m_b_m", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2714 #if WITH_PROFILE_MODEL_P
2715 /* Record the fields for profiling. */
2716 if (PROFILE_MODEL_P (current_cpu))
2718 FLD (in_Rs) = f_operand1;
2719 FLD (out_Rd) = f_operand2;
2720 FLD (out_Rs) = f_operand1;
2727 extract_sfmt_movs_m_w_m:
2729 const IDESC *idesc = &crisv32f_insn_data[itype];
2730 CGEN_INSN_INT insn = base_insn;
2731 #define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
2736 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2737 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2738 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2740 /* Record the fields for the semantic handler. */
2741 FLD (f_operand1) = f_operand1;
2742 FLD (f_memmode) = f_memmode;
2743 FLD (f_operand2) = f_operand2;
2744 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movs_m_w_m", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2746 #if WITH_PROFILE_MODEL_P
2747 /* Record the fields for profiling. */
2748 if (PROFILE_MODEL_P (current_cpu))
2750 FLD (in_Rs) = f_operand1;
2751 FLD (out_Rd) = f_operand2;
2752 FLD (out_Rs) = f_operand1;
2759 extract_sfmt_move_r_sprv32:
2761 const IDESC *idesc = &crisv32f_insn_data[itype];
2762 CGEN_INSN_INT insn = base_insn;
2763 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
2767 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2768 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2770 /* Record the fields for the semantic handler. */
2771 FLD (f_operand1) = f_operand1;
2772 FLD (f_operand2) = f_operand2;
2773 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_r_sprv32", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2775 #if WITH_PROFILE_MODEL_P
2776 /* Record the fields for profiling. */
2777 if (PROFILE_MODEL_P (current_cpu))
2779 FLD (in_Rs) = f_operand1;
2780 FLD (out_Pd) = f_operand2;
2787 extract_sfmt_move_spr_rv32:
2789 const IDESC *idesc = &crisv32f_insn_data[itype];
2790 CGEN_INSN_INT insn = base_insn;
2791 #define FLD(f) abuf->fields.sfmt_mcp.f
2795 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2796 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2798 /* Record the fields for the semantic handler. */
2799 FLD (f_operand2) = f_operand2;
2800 FLD (f_operand1) = f_operand1;
2801 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_spr_rv32", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
2803 #if WITH_PROFILE_MODEL_P
2804 /* Record the fields for profiling. */
2805 if (PROFILE_MODEL_P (current_cpu))
2807 FLD (in_Ps) = f_operand2;
2808 FLD (out_h_gr_SI_index_of__DFLT_Rs) = FLD (f_operand1);
2815 extract_sfmt_move_m_sprv32:
2817 const IDESC *idesc = &crisv32f_insn_data[itype];
2818 CGEN_INSN_INT insn = base_insn;
2819 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
2824 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2825 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2826 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2828 /* Record the fields for the semantic handler. */
2829 FLD (f_operand1) = f_operand1;
2830 FLD (f_operand2) = f_operand2;
2831 FLD (f_memmode) = f_memmode;
2832 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_m_sprv32", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
2834 #if WITH_PROFILE_MODEL_P
2835 /* Record the fields for profiling. */
2836 if (PROFILE_MODEL_P (current_cpu))
2838 FLD (in_Rs) = f_operand1;
2839 FLD (out_Pd) = f_operand2;
2840 FLD (out_Rs) = f_operand1;
2847 extract_sfmt_move_c_sprv32_p0:
2849 const IDESC *idesc = &crisv32f_insn_data[itype];
2850 CGEN_INSN_INT insn = base_insn;
2851 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p0.f
2852 INT f_indir_pc__dword;
2854 /* Contents of trailing part of insn. */
2857 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2858 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
2859 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2861 /* Record the fields for the semantic handler. */
2862 FLD (f_indir_pc__dword) = f_indir_pc__dword;
2863 FLD (f_operand2) = f_operand2;
2864 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_c_sprv32_p0", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2866 #if WITH_PROFILE_MODEL_P
2867 /* Record the fields for profiling. */
2868 if (PROFILE_MODEL_P (current_cpu))
2870 FLD (out_Pd) = f_operand2;
2877 extract_sfmt_move_spr_mv32:
2879 const IDESC *idesc = &crisv32f_insn_data[itype];
2880 CGEN_INSN_INT insn = base_insn;
2881 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
2886 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2887 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2888 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2890 /* Record the fields for the semantic handler. */
2891 FLD (f_operand2) = f_operand2;
2892 FLD (f_operand1) = f_operand1;
2893 FLD (f_memmode) = f_memmode;
2894 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_spr_mv32", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
2896 #if WITH_PROFILE_MODEL_P
2897 /* Record the fields for profiling. */
2898 if (PROFILE_MODEL_P (current_cpu))
2900 FLD (in_Ps) = f_operand2;
2901 FLD (in_Rs) = f_operand1;
2902 FLD (out_Rs) = f_operand1;
2909 extract_sfmt_move_ss_r:
2911 const IDESC *idesc = &crisv32f_insn_data[itype];
2912 CGEN_INSN_INT insn = base_insn;
2913 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
2917 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2918 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2920 /* Record the fields for the semantic handler. */
2921 FLD (f_operand2) = f_operand2;
2922 FLD (f_operand1) = f_operand1;
2923 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_ss_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
2925 #if WITH_PROFILE_MODEL_P
2926 /* Record the fields for profiling. */
2927 if (PROFILE_MODEL_P (current_cpu))
2929 FLD (out_Rs) = f_operand1;
2936 extract_sfmt_move_r_ss:
2938 const IDESC *idesc = &crisv32f_insn_data[itype];
2939 CGEN_INSN_INT insn = base_insn;
2940 #define FLD(f) abuf->fields.sfmt_mcp.f
2944 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2945 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2947 /* Record the fields for the semantic handler. */
2948 FLD (f_operand1) = f_operand1;
2949 FLD (f_operand2) = f_operand2;
2950 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_r_ss", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2952 #if WITH_PROFILE_MODEL_P
2953 /* Record the fields for profiling. */
2954 if (PROFILE_MODEL_P (current_cpu))
2956 FLD (in_Rs) = f_operand1;
2963 extract_sfmt_movem_r_m_v32:
2965 const IDESC *idesc = &crisv32f_insn_data[itype];
2966 CGEN_INSN_INT insn = base_insn;
2967 #define FLD(f) abuf->fields.sfmt_movem_r_m_v32.f
2972 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2973 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2974 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2976 /* Record the fields for the semantic handler. */
2977 FLD (f_operand2) = f_operand2;
2978 FLD (f_operand1) = f_operand1;
2979 FLD (f_memmode) = f_memmode;
2980 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movem_r_m_v32", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
2982 #if WITH_PROFILE_MODEL_P
2983 /* Record the fields for profiling. */
2984 if (PROFILE_MODEL_P (current_cpu))
2986 FLD (in_Rd) = f_operand2;
2987 FLD (in_Rs) = f_operand1;
2988 FLD (in_h_gr_SI_0) = 0;
2989 FLD (in_h_gr_SI_1) = 1;
2990 FLD (in_h_gr_SI_10) = 10;
2991 FLD (in_h_gr_SI_11) = 11;
2992 FLD (in_h_gr_SI_12) = 12;
2993 FLD (in_h_gr_SI_13) = 13;
2994 FLD (in_h_gr_SI_14) = 14;
2995 FLD (in_h_gr_SI_15) = 15;
2996 FLD (in_h_gr_SI_2) = 2;
2997 FLD (in_h_gr_SI_3) = 3;
2998 FLD (in_h_gr_SI_4) = 4;
2999 FLD (in_h_gr_SI_5) = 5;
3000 FLD (in_h_gr_SI_6) = 6;
3001 FLD (in_h_gr_SI_7) = 7;
3002 FLD (in_h_gr_SI_8) = 8;
3003 FLD (in_h_gr_SI_9) = 9;
3004 FLD (out_Rs) = f_operand1;
3011 extract_sfmt_movem_m_r_v32:
3013 const IDESC *idesc = &crisv32f_insn_data[itype];
3014 CGEN_INSN_INT insn = base_insn;
3015 #define FLD(f) abuf->fields.sfmt_movem_m_r_v32.f
3020 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3021 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3022 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3024 /* Record the fields for the semantic handler. */
3025 FLD (f_operand2) = f_operand2;
3026 FLD (f_operand1) = f_operand1;
3027 FLD (f_memmode) = f_memmode;
3028 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movem_m_r_v32", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3030 #if WITH_PROFILE_MODEL_P
3031 /* Record the fields for profiling. */
3032 if (PROFILE_MODEL_P (current_cpu))
3034 FLD (in_Rd) = f_operand2;
3035 FLD (in_Rs) = f_operand1;
3036 FLD (out_Rs) = f_operand1;
3037 FLD (out_h_gr_SI_0) = 0;
3038 FLD (out_h_gr_SI_1) = 1;
3039 FLD (out_h_gr_SI_10) = 10;
3040 FLD (out_h_gr_SI_11) = 11;
3041 FLD (out_h_gr_SI_12) = 12;
3042 FLD (out_h_gr_SI_13) = 13;
3043 FLD (out_h_gr_SI_14) = 14;
3044 FLD (out_h_gr_SI_15) = 15;
3045 FLD (out_h_gr_SI_2) = 2;
3046 FLD (out_h_gr_SI_3) = 3;
3047 FLD (out_h_gr_SI_4) = 4;
3048 FLD (out_h_gr_SI_5) = 5;
3049 FLD (out_h_gr_SI_6) = 6;
3050 FLD (out_h_gr_SI_7) = 7;
3051 FLD (out_h_gr_SI_8) = 8;
3052 FLD (out_h_gr_SI_9) = 9;
3059 extract_sfmt_add_b_r:
3061 const IDESC *idesc = &crisv32f_insn_data[itype];
3062 CGEN_INSN_INT insn = base_insn;
3063 #define FLD(f) abuf->fields.sfmt_addc_m.f
3067 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3068 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3070 /* Record the fields for the semantic handler. */
3071 FLD (f_operand2) = f_operand2;
3072 FLD (f_operand1) = f_operand1;
3073 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
3075 #if WITH_PROFILE_MODEL_P
3076 /* Record the fields for profiling. */
3077 if (PROFILE_MODEL_P (current_cpu))
3079 FLD (in_Rd) = f_operand2;
3080 FLD (in_Rs) = f_operand1;
3081 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3088 extract_sfmt_add_d_r:
3090 const IDESC *idesc = &crisv32f_insn_data[itype];
3091 CGEN_INSN_INT insn = base_insn;
3092 #define FLD(f) abuf->fields.sfmt_addc_m.f
3096 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3097 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3099 /* Record the fields for the semantic handler. */
3100 FLD (f_operand2) = f_operand2;
3101 FLD (f_operand1) = f_operand1;
3102 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add_d_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
3104 #if WITH_PROFILE_MODEL_P
3105 /* Record the fields for profiling. */
3106 if (PROFILE_MODEL_P (current_cpu))
3108 FLD (in_Rd) = f_operand2;
3109 FLD (in_Rs) = f_operand1;
3110 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3117 extract_sfmt_add_m_b_m:
3119 const IDESC *idesc = &crisv32f_insn_data[itype];
3120 CGEN_INSN_INT insn = base_insn;
3121 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3126 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3127 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3128 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3130 /* Record the fields for the semantic handler. */
3131 FLD (f_operand2) = f_operand2;
3132 FLD (f_operand1) = f_operand1;
3133 FLD (f_memmode) = f_memmode;
3134 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3136 #if WITH_PROFILE_MODEL_P
3137 /* Record the fields for profiling. */
3138 if (PROFILE_MODEL_P (current_cpu))
3140 FLD (in_Rd) = f_operand2;
3141 FLD (in_Rs) = f_operand1;
3142 FLD (out_Rs) = f_operand1;
3143 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3150 extract_sfmt_add_m_w_m:
3152 const IDESC *idesc = &crisv32f_insn_data[itype];
3153 CGEN_INSN_INT insn = base_insn;
3154 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3159 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3160 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3161 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3163 /* Record the fields for the semantic handler. */
3164 FLD (f_operand2) = f_operand2;
3165 FLD (f_operand1) = f_operand1;
3166 FLD (f_memmode) = f_memmode;
3167 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3169 #if WITH_PROFILE_MODEL_P
3170 /* Record the fields for profiling. */
3171 if (PROFILE_MODEL_P (current_cpu))
3173 FLD (in_Rd) = f_operand2;
3174 FLD (in_Rs) = f_operand1;
3175 FLD (out_Rs) = f_operand1;
3176 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3183 extract_sfmt_add_m_d_m:
3185 const IDESC *idesc = &crisv32f_insn_data[itype];
3186 CGEN_INSN_INT insn = base_insn;
3187 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3192 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3193 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3194 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3196 /* Record the fields for the semantic handler. */
3197 FLD (f_operand2) = f_operand2;
3198 FLD (f_operand1) = f_operand1;
3199 FLD (f_memmode) = f_memmode;
3200 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add_m_d_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3202 #if WITH_PROFILE_MODEL_P
3203 /* Record the fields for profiling. */
3204 if (PROFILE_MODEL_P (current_cpu))
3206 FLD (in_Rd) = f_operand2;
3207 FLD (in_Rs) = f_operand1;
3208 FLD (out_Rs) = f_operand1;
3209 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3216 extract_sfmt_addcbr:
3218 const IDESC *idesc = &crisv32f_insn_data[itype];
3219 CGEN_INSN_INT insn = base_insn;
3220 #define FLD(f) abuf->fields.sfmt_addcbr.f
3221 INT f_indir_pc__byte;
3223 /* Contents of trailing part of insn. */
3226 word_1 = GETIMEMUHI (current_cpu, pc + 2);
3227 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
3228 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3230 /* Record the fields for the semantic handler. */
3231 FLD (f_operand2) = f_operand2;
3232 FLD (f_indir_pc__byte) = f_indir_pc__byte;
3233 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addcbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
3235 #if WITH_PROFILE_MODEL_P
3236 /* Record the fields for profiling. */
3237 if (PROFILE_MODEL_P (current_cpu))
3239 FLD (in_Rd) = f_operand2;
3240 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3247 extract_sfmt_addcwr:
3249 const IDESC *idesc = &crisv32f_insn_data[itype];
3250 CGEN_INSN_INT insn = base_insn;
3251 #define FLD(f) abuf->fields.sfmt_addcwr.f
3252 INT f_indir_pc__word;
3254 /* Contents of trailing part of insn. */
3257 word_1 = GETIMEMUHI (current_cpu, pc + 2);
3258 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
3259 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3261 /* Record the fields for the semantic handler. */
3262 FLD (f_operand2) = f_operand2;
3263 FLD (f_indir_pc__word) = f_indir_pc__word;
3264 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addcwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
3266 #if WITH_PROFILE_MODEL_P
3267 /* Record the fields for profiling. */
3268 if (PROFILE_MODEL_P (current_cpu))
3270 FLD (in_Rd) = f_operand2;
3271 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3278 extract_sfmt_addcdr:
3280 const IDESC *idesc = &crisv32f_insn_data[itype];
3281 CGEN_INSN_INT insn = base_insn;
3282 #define FLD(f) abuf->fields.sfmt_addcdr.f
3283 INT f_indir_pc__dword;
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_addcdr", "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;
3302 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3309 extract_sfmt_adds_m_b_m:
3311 const IDESC *idesc = &crisv32f_insn_data[itype];
3312 CGEN_INSN_INT insn = base_insn;
3313 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3318 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3319 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3320 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3322 /* Record the fields for the semantic handler. */
3323 FLD (f_operand2) = f_operand2;
3324 FLD (f_operand1) = f_operand1;
3325 FLD (f_memmode) = f_memmode;
3326 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_adds_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3328 #if WITH_PROFILE_MODEL_P
3329 /* Record the fields for profiling. */
3330 if (PROFILE_MODEL_P (current_cpu))
3332 FLD (in_Rd) = f_operand2;
3333 FLD (in_Rs) = f_operand1;
3334 FLD (out_Rs) = f_operand1;
3335 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3342 extract_sfmt_adds_m_w_m:
3344 const IDESC *idesc = &crisv32f_insn_data[itype];
3345 CGEN_INSN_INT insn = base_insn;
3346 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3351 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3352 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3353 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3355 /* Record the fields for the semantic handler. */
3356 FLD (f_operand2) = f_operand2;
3357 FLD (f_operand1) = f_operand1;
3358 FLD (f_memmode) = f_memmode;
3359 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_adds_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3361 #if WITH_PROFILE_MODEL_P
3362 /* Record the fields for profiling. */
3363 if (PROFILE_MODEL_P (current_cpu))
3365 FLD (in_Rd) = f_operand2;
3366 FLD (in_Rs) = f_operand1;
3367 FLD (out_Rs) = f_operand1;
3368 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
3375 extract_sfmt_addscbr:
3377 const IDESC *idesc = &crisv32f_insn_data[itype];
3378 CGEN_INSN_INT insn = base_insn;
3379 #define FLD(f) abuf->fields.sfmt_addcbr.f
3380 INT f_indir_pc__byte;
3382 /* Contents of trailing part of insn. */
3385 word_1 = GETIMEMUHI (current_cpu, pc + 2);
3386 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
3387 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3389 /* Record the fields for the semantic handler. */
3390 FLD (f_operand2) = f_operand2;
3391 FLD (f_indir_pc__byte) = f_indir_pc__byte;
3392 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addscbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
3394 #if WITH_PROFILE_MODEL_P
3395 /* Record the fields for profiling. */
3396 if (PROFILE_MODEL_P (current_cpu))
3398 FLD (in_Rd) = f_operand2;
3399 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3406 extract_sfmt_addscwr:
3408 const IDESC *idesc = &crisv32f_insn_data[itype];
3409 CGEN_INSN_INT insn = base_insn;
3410 #define FLD(f) abuf->fields.sfmt_addcwr.f
3411 INT f_indir_pc__word;
3413 /* Contents of trailing part of insn. */
3416 word_1 = GETIMEMUHI (current_cpu, pc + 2);
3417 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
3418 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3420 /* Record the fields for the semantic handler. */
3421 FLD (f_operand2) = f_operand2;
3422 FLD (f_indir_pc__word) = f_indir_pc__word;
3423 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addscwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
3425 #if WITH_PROFILE_MODEL_P
3426 /* Record the fields for profiling. */
3427 if (PROFILE_MODEL_P (current_cpu))
3429 FLD (in_Rd) = f_operand2;
3430 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3437 extract_sfmt_addc_m:
3439 const IDESC *idesc = &crisv32f_insn_data[itype];
3440 CGEN_INSN_INT insn = base_insn;
3441 #define FLD(f) abuf->fields.sfmt_addc_m.f
3446 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3447 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3448 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3450 /* Record the fields for the semantic handler. */
3451 FLD (f_operand2) = f_operand2;
3452 FLD (f_operand1) = f_operand1;
3453 FLD (f_memmode) = f_memmode;
3454 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addc_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3456 #if WITH_PROFILE_MODEL_P
3457 /* Record the fields for profiling. */
3458 if (PROFILE_MODEL_P (current_cpu))
3460 FLD (in_Rd) = f_operand2;
3461 FLD (in_Rs) = f_operand1;
3462 FLD (out_Rs) = f_operand1;
3463 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3470 extract_sfmt_lapc_d:
3472 const IDESC *idesc = &crisv32f_insn_data[itype];
3473 CGEN_INSN_INT insn = base_insn;
3474 #define FLD(f) abuf->fields.sfmt_lapc_d.f
3475 SI f_indir_pc__dword_pcrel;
3477 /* Contents of trailing part of insn. */
3480 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3481 f_indir_pc__dword_pcrel = ((pc) + ((0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0))));
3482 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3484 /* Record the fields for the semantic handler. */
3485 FLD (f_operand2) = f_operand2;
3486 FLD (i_const32_pcrel) = f_indir_pc__dword_pcrel;
3487 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lapc_d", "f_operand2 0x%x", 'x', f_operand2, "const32_pcrel 0x%x", 'x', f_indir_pc__dword_pcrel, (char *) 0));
3489 #if WITH_PROFILE_MODEL_P
3490 /* Record the fields for profiling. */
3491 if (PROFILE_MODEL_P (current_cpu))
3493 FLD (out_Rd) = f_operand2;
3502 const IDESC *idesc = &crisv32f_insn_data[itype];
3503 CGEN_INSN_INT insn = base_insn;
3504 #define FLD(f) abuf->fields.sfmt_lapcq.f
3508 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3509 f_qo = ((pc) + (((EXTRACT_LSB0_UINT (insn, 16, 3, 4)) << (1))));
3511 /* Record the fields for the semantic handler. */
3512 FLD (f_operand2) = f_operand2;
3514 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lapcq", "f_operand2 0x%x", 'x', f_operand2, "qo 0x%x", 'x', f_qo, (char *) 0));
3516 #if WITH_PROFILE_MODEL_P
3517 /* Record the fields for profiling. */
3518 if (PROFILE_MODEL_P (current_cpu))
3520 FLD (out_Rd) = f_operand2;
3527 extract_sfmt_addi_b_r:
3529 const IDESC *idesc = &crisv32f_insn_data[itype];
3530 CGEN_INSN_INT insn = base_insn;
3531 #define FLD(f) abuf->fields.sfmt_addc_m.f
3535 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3536 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3538 /* Record the fields for the semantic handler. */
3539 FLD (f_operand2) = f_operand2;
3540 FLD (f_operand1) = f_operand1;
3541 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addi_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
3543 #if WITH_PROFILE_MODEL_P
3544 /* Record the fields for profiling. */
3545 if (PROFILE_MODEL_P (current_cpu))
3547 FLD (in_Rd) = f_operand2;
3548 FLD (in_Rs) = f_operand1;
3549 FLD (out_Rs) = f_operand1;
3556 extract_sfmt_neg_b_r:
3558 const IDESC *idesc = &crisv32f_insn_data[itype];
3559 CGEN_INSN_INT insn = base_insn;
3560 #define FLD(f) abuf->fields.sfmt_addc_m.f
3564 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3565 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3567 /* Record the fields for the semantic handler. */
3568 FLD (f_operand1) = f_operand1;
3569 FLD (f_operand2) = f_operand2;
3570 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_neg_b_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3572 #if WITH_PROFILE_MODEL_P
3573 /* Record the fields for profiling. */
3574 if (PROFILE_MODEL_P (current_cpu))
3576 FLD (in_Rs) = f_operand1;
3577 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3584 extract_sfmt_neg_d_r:
3586 const IDESC *idesc = &crisv32f_insn_data[itype];
3587 CGEN_INSN_INT insn = base_insn;
3588 #define FLD(f) abuf->fields.sfmt_addc_m.f
3592 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3593 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3595 /* Record the fields for the semantic handler. */
3596 FLD (f_operand1) = f_operand1;
3597 FLD (f_operand2) = f_operand2;
3598 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_neg_d_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3600 #if WITH_PROFILE_MODEL_P
3601 /* Record the fields for profiling. */
3602 if (PROFILE_MODEL_P (current_cpu))
3604 FLD (in_Rs) = f_operand1;
3605 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3612 extract_sfmt_test_m_b_m:
3614 const IDESC *idesc = &crisv32f_insn_data[itype];
3615 CGEN_INSN_INT insn = base_insn;
3616 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
3620 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3621 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3623 /* Record the fields for the semantic handler. */
3624 FLD (f_operand1) = f_operand1;
3625 FLD (f_memmode) = f_memmode;
3626 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_test_m_b_m", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3628 #if WITH_PROFILE_MODEL_P
3629 /* Record the fields for profiling. */
3630 if (PROFILE_MODEL_P (current_cpu))
3632 FLD (in_Rs) = f_operand1;
3633 FLD (out_Rs) = f_operand1;
3640 extract_sfmt_test_m_w_m:
3642 const IDESC *idesc = &crisv32f_insn_data[itype];
3643 CGEN_INSN_INT insn = base_insn;
3644 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
3648 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3649 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3651 /* Record the fields for the semantic handler. */
3652 FLD (f_operand1) = f_operand1;
3653 FLD (f_memmode) = f_memmode;
3654 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_test_m_w_m", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3656 #if WITH_PROFILE_MODEL_P
3657 /* Record the fields for profiling. */
3658 if (PROFILE_MODEL_P (current_cpu))
3660 FLD (in_Rs) = f_operand1;
3661 FLD (out_Rs) = f_operand1;
3668 extract_sfmt_test_m_d_m:
3670 const IDESC *idesc = &crisv32f_insn_data[itype];
3671 CGEN_INSN_INT insn = base_insn;
3672 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
3676 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3677 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3679 /* Record the fields for the semantic handler. */
3680 FLD (f_operand1) = f_operand1;
3681 FLD (f_memmode) = f_memmode;
3682 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_test_m_d_m", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3684 #if WITH_PROFILE_MODEL_P
3685 /* Record the fields for profiling. */
3686 if (PROFILE_MODEL_P (current_cpu))
3688 FLD (in_Rs) = f_operand1;
3689 FLD (out_Rs) = f_operand1;
3696 extract_sfmt_move_r_m_b_m:
3698 const IDESC *idesc = &crisv32f_insn_data[itype];
3699 CGEN_INSN_INT insn = base_insn;
3700 #define FLD(f) abuf->fields.sfmt_addc_m.f
3705 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3706 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3707 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3709 /* Record the fields for the semantic handler. */
3710 FLD (f_operand2) = f_operand2;
3711 FLD (f_operand1) = f_operand1;
3712 FLD (f_memmode) = f_memmode;
3713 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_r_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3715 #if WITH_PROFILE_MODEL_P
3716 /* Record the fields for profiling. */
3717 if (PROFILE_MODEL_P (current_cpu))
3719 FLD (in_Rd) = f_operand2;
3720 FLD (in_Rs) = f_operand1;
3721 FLD (out_Rs) = f_operand1;
3728 extract_sfmt_move_r_m_w_m:
3730 const IDESC *idesc = &crisv32f_insn_data[itype];
3731 CGEN_INSN_INT insn = base_insn;
3732 #define FLD(f) abuf->fields.sfmt_addc_m.f
3737 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3738 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3739 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3741 /* Record the fields for the semantic handler. */
3742 FLD (f_operand2) = f_operand2;
3743 FLD (f_operand1) = f_operand1;
3744 FLD (f_memmode) = f_memmode;
3745 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_r_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3747 #if WITH_PROFILE_MODEL_P
3748 /* Record the fields for profiling. */
3749 if (PROFILE_MODEL_P (current_cpu))
3751 FLD (in_Rd) = f_operand2;
3752 FLD (in_Rs) = f_operand1;
3753 FLD (out_Rs) = f_operand1;
3760 extract_sfmt_move_r_m_d_m:
3762 const IDESC *idesc = &crisv32f_insn_data[itype];
3763 CGEN_INSN_INT insn = base_insn;
3764 #define FLD(f) abuf->fields.sfmt_addc_m.f
3769 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3770 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3771 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3773 /* Record the fields for the semantic handler. */
3774 FLD (f_operand2) = f_operand2;
3775 FLD (f_operand1) = f_operand1;
3776 FLD (f_memmode) = f_memmode;
3777 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_r_m_d_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3779 #if WITH_PROFILE_MODEL_P
3780 /* Record the fields for profiling. */
3781 if (PROFILE_MODEL_P (current_cpu))
3783 FLD (in_Rd) = f_operand2;
3784 FLD (in_Rs) = f_operand1;
3785 FLD (out_Rs) = f_operand1;
3792 extract_sfmt_muls_b:
3794 const IDESC *idesc = &crisv32f_insn_data[itype];
3795 CGEN_INSN_INT insn = base_insn;
3796 #define FLD(f) abuf->fields.sfmt_muls_b.f
3800 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3801 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3803 /* Record the fields for the semantic handler. */
3804 FLD (f_operand2) = f_operand2;
3805 FLD (f_operand1) = f_operand1;
3806 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_muls_b", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
3808 #if WITH_PROFILE_MODEL_P
3809 /* Record the fields for profiling. */
3810 if (PROFILE_MODEL_P (current_cpu))
3812 FLD (in_Rd) = f_operand2;
3813 FLD (in_Rs) = f_operand1;
3814 FLD (out_Rd) = f_operand2;
3815 FLD (out_h_sr_SI_7) = 7;
3824 const IDESC *idesc = &crisv32f_insn_data[itype];
3825 CGEN_INSN_INT insn = base_insn;
3826 #define FLD(f) abuf->fields.sfmt_mcp.f
3830 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3831 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3833 /* Record the fields for the semantic handler. */
3834 FLD (f_operand2) = f_operand2;
3835 FLD (f_operand1) = f_operand1;
3836 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mcp", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
3838 #if WITH_PROFILE_MODEL_P
3839 /* Record the fields for profiling. */
3840 if (PROFILE_MODEL_P (current_cpu))
3842 FLD (in_Ps) = f_operand2;
3843 FLD (in_Rs) = f_operand1;
3844 FLD (out_h_gr_SI_index_of__DFLT_Rs) = FLD (f_operand1);
3853 const IDESC *idesc = &crisv32f_insn_data[itype];
3854 CGEN_INSN_INT insn = base_insn;
3855 #define FLD(f) abuf->fields.sfmt_muls_b.f
3859 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3860 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3862 /* Record the fields for the semantic handler. */
3863 FLD (f_operand2) = f_operand2;
3864 FLD (f_operand1) = f_operand1;
3865 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dstep", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
3867 #if WITH_PROFILE_MODEL_P
3868 /* Record the fields for profiling. */
3869 if (PROFILE_MODEL_P (current_cpu))
3871 FLD (in_Rd) = f_operand2;
3872 FLD (in_Rs) = f_operand1;
3873 FLD (out_Rd) = f_operand2;
3880 extract_sfmt_and_b_r:
3882 const IDESC *idesc = &crisv32f_insn_data[itype];
3883 CGEN_INSN_INT insn = base_insn;
3884 #define FLD(f) abuf->fields.sfmt_addc_m.f
3888 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3889 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3891 /* Record the fields for the semantic handler. */
3892 FLD (f_operand2) = f_operand2;
3893 FLD (f_operand1) = f_operand1;
3894 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
3896 #if WITH_PROFILE_MODEL_P
3897 /* Record the fields for profiling. */
3898 if (PROFILE_MODEL_P (current_cpu))
3900 FLD (in_Rd) = f_operand2;
3901 FLD (in_Rs) = f_operand1;
3902 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3909 extract_sfmt_and_w_r:
3911 const IDESC *idesc = &crisv32f_insn_data[itype];
3912 CGEN_INSN_INT insn = base_insn;
3913 #define FLD(f) abuf->fields.sfmt_addc_m.f
3917 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3918 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3920 /* Record the fields for the semantic handler. */
3921 FLD (f_operand2) = f_operand2;
3922 FLD (f_operand1) = f_operand1;
3923 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_w_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
3925 #if WITH_PROFILE_MODEL_P
3926 /* Record the fields for profiling. */
3927 if (PROFILE_MODEL_P (current_cpu))
3929 FLD (in_Rd) = f_operand2;
3930 FLD (in_Rs) = f_operand1;
3931 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3938 extract_sfmt_and_d_r:
3940 const IDESC *idesc = &crisv32f_insn_data[itype];
3941 CGEN_INSN_INT insn = base_insn;
3942 #define FLD(f) abuf->fields.sfmt_addc_m.f
3946 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3947 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3949 /* Record the fields for the semantic handler. */
3950 FLD (f_operand2) = f_operand2;
3951 FLD (f_operand1) = f_operand1;
3952 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_d_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
3954 #if WITH_PROFILE_MODEL_P
3955 /* Record the fields for profiling. */
3956 if (PROFILE_MODEL_P (current_cpu))
3958 FLD (in_Rd) = f_operand2;
3959 FLD (in_Rs) = f_operand1;
3960 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3967 extract_sfmt_and_m_b_m:
3969 const IDESC *idesc = &crisv32f_insn_data[itype];
3970 CGEN_INSN_INT insn = base_insn;
3971 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3976 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3977 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3978 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3980 /* Record the fields for the semantic handler. */
3981 FLD (f_operand2) = f_operand2;
3982 FLD (f_operand1) = f_operand1;
3983 FLD (f_memmode) = f_memmode;
3984 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3986 #if WITH_PROFILE_MODEL_P
3987 /* Record the fields for profiling. */
3988 if (PROFILE_MODEL_P (current_cpu))
3990 FLD (in_Rd) = f_operand2;
3991 FLD (in_Rs) = f_operand1;
3992 FLD (out_Rs) = f_operand1;
3993 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
4000 extract_sfmt_and_m_w_m:
4002 const IDESC *idesc = &crisv32f_insn_data[itype];
4003 CGEN_INSN_INT insn = base_insn;
4004 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4009 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4010 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4011 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4013 /* Record the fields for the semantic handler. */
4014 FLD (f_operand2) = f_operand2;
4015 FLD (f_operand1) = f_operand1;
4016 FLD (f_memmode) = f_memmode;
4017 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4019 #if WITH_PROFILE_MODEL_P
4020 /* Record the fields for profiling. */
4021 if (PROFILE_MODEL_P (current_cpu))
4023 FLD (in_Rd) = f_operand2;
4024 FLD (in_Rs) = f_operand1;
4025 FLD (out_Rs) = f_operand1;
4026 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
4033 extract_sfmt_and_m_d_m:
4035 const IDESC *idesc = &crisv32f_insn_data[itype];
4036 CGEN_INSN_INT insn = base_insn;
4037 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4042 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4043 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4044 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4046 /* Record the fields for the semantic handler. */
4047 FLD (f_operand2) = f_operand2;
4048 FLD (f_operand1) = f_operand1;
4049 FLD (f_memmode) = f_memmode;
4050 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_m_d_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4052 #if WITH_PROFILE_MODEL_P
4053 /* Record the fields for profiling. */
4054 if (PROFILE_MODEL_P (current_cpu))
4056 FLD (in_Rd) = f_operand2;
4057 FLD (in_Rs) = f_operand1;
4058 FLD (out_Rs) = f_operand1;
4059 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
4066 extract_sfmt_andcbr:
4068 const IDESC *idesc = &crisv32f_insn_data[itype];
4069 CGEN_INSN_INT insn = base_insn;
4070 #define FLD(f) abuf->fields.sfmt_addcbr.f
4071 INT f_indir_pc__byte;
4073 /* Contents of trailing part of insn. */
4076 word_1 = GETIMEMUHI (current_cpu, pc + 2);
4077 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
4078 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4080 /* Record the fields for the semantic handler. */
4081 FLD (f_operand2) = f_operand2;
4082 FLD (f_indir_pc__byte) = f_indir_pc__byte;
4083 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andcbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
4085 #if WITH_PROFILE_MODEL_P
4086 /* Record the fields for profiling. */
4087 if (PROFILE_MODEL_P (current_cpu))
4089 FLD (in_Rd) = f_operand2;
4090 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4097 extract_sfmt_andcwr:
4099 const IDESC *idesc = &crisv32f_insn_data[itype];
4100 CGEN_INSN_INT insn = base_insn;
4101 #define FLD(f) abuf->fields.sfmt_addcwr.f
4102 INT f_indir_pc__word;
4104 /* Contents of trailing part of insn. */
4107 word_1 = GETIMEMUHI (current_cpu, pc + 2);
4108 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
4109 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4111 /* Record the fields for the semantic handler. */
4112 FLD (f_operand2) = f_operand2;
4113 FLD (f_indir_pc__word) = f_indir_pc__word;
4114 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andcwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
4116 #if WITH_PROFILE_MODEL_P
4117 /* Record the fields for profiling. */
4118 if (PROFILE_MODEL_P (current_cpu))
4120 FLD (in_Rd) = f_operand2;
4121 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4128 extract_sfmt_andcdr:
4130 const IDESC *idesc = &crisv32f_insn_data[itype];
4131 CGEN_INSN_INT insn = base_insn;
4132 #define FLD(f) abuf->fields.sfmt_addcdr.f
4133 INT f_indir_pc__dword;
4135 /* Contents of trailing part of insn. */
4138 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4139 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
4140 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4142 /* Record the fields for the semantic handler. */
4143 FLD (f_operand2) = f_operand2;
4144 FLD (f_indir_pc__dword) = f_indir_pc__dword;
4145 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andcdr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
4147 #if WITH_PROFILE_MODEL_P
4148 /* Record the fields for profiling. */
4149 if (PROFILE_MODEL_P (current_cpu))
4151 FLD (in_Rd) = f_operand2;
4152 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4161 const IDESC *idesc = &crisv32f_insn_data[itype];
4162 CGEN_INSN_INT insn = base_insn;
4163 #define FLD(f) abuf->fields.sfmt_andq.f
4167 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4168 f_s6 = EXTRACT_LSB0_INT (insn, 16, 5, 6);
4170 /* Record the fields for the semantic handler. */
4171 FLD (f_operand2) = f_operand2;
4173 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andq", "f_operand2 0x%x", 'x', f_operand2, "f_s6 0x%x", 'x', f_s6, (char *) 0));
4175 #if WITH_PROFILE_MODEL_P
4176 /* Record the fields for profiling. */
4177 if (PROFILE_MODEL_P (current_cpu))
4179 FLD (in_Rd) = f_operand2;
4180 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4189 const IDESC *idesc = &crisv32f_insn_data[itype];
4190 CGEN_INSN_INT insn = base_insn;
4191 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
4195 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4196 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4198 /* Record the fields for the semantic handler. */
4199 FLD (f_operand1) = f_operand1;
4200 FLD (f_operand2) = f_operand2;
4201 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_swap", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
4203 #if WITH_PROFILE_MODEL_P
4204 /* Record the fields for profiling. */
4205 if (PROFILE_MODEL_P (current_cpu))
4207 FLD (in_Rs) = f_operand1;
4208 FLD (out_Rs) = f_operand1;
4215 extract_sfmt_asrr_b_r:
4217 const IDESC *idesc = &crisv32f_insn_data[itype];
4218 CGEN_INSN_INT insn = base_insn;
4219 #define FLD(f) abuf->fields.sfmt_addc_m.f
4223 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4224 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4226 /* Record the fields for the semantic handler. */
4227 FLD (f_operand2) = f_operand2;
4228 FLD (f_operand1) = f_operand1;
4229 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_asrr_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4231 #if WITH_PROFILE_MODEL_P
4232 /* Record the fields for profiling. */
4233 if (PROFILE_MODEL_P (current_cpu))
4235 FLD (in_Rd) = f_operand2;
4236 FLD (in_Rs) = f_operand1;
4237 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4246 const IDESC *idesc = &crisv32f_insn_data[itype];
4247 CGEN_INSN_INT insn = base_insn;
4248 #define FLD(f) abuf->fields.sfmt_asrq.f
4252 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4253 f_u5 = EXTRACT_LSB0_UINT (insn, 16, 4, 5);
4255 /* Record the fields for the semantic handler. */
4256 FLD (f_operand2) = f_operand2;
4258 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_asrq", "f_operand2 0x%x", 'x', f_operand2, "f_u5 0x%x", 'x', f_u5, (char *) 0));
4260 #if WITH_PROFILE_MODEL_P
4261 /* Record the fields for profiling. */
4262 if (PROFILE_MODEL_P (current_cpu))
4264 FLD (in_Rd) = f_operand2;
4265 FLD (out_Rd) = f_operand2;
4272 extract_sfmt_lsrr_b_r:
4274 const IDESC *idesc = &crisv32f_insn_data[itype];
4275 CGEN_INSN_INT insn = base_insn;
4276 #define FLD(f) abuf->fields.sfmt_addc_m.f
4280 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4281 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4283 /* Record the fields for the semantic handler. */
4284 FLD (f_operand2) = f_operand2;
4285 FLD (f_operand1) = f_operand1;
4286 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lsrr_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4288 #if WITH_PROFILE_MODEL_P
4289 /* Record the fields for profiling. */
4290 if (PROFILE_MODEL_P (current_cpu))
4292 FLD (in_Rd) = f_operand2;
4293 FLD (in_Rs) = f_operand1;
4294 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4301 extract_sfmt_lsrr_d_r:
4303 const IDESC *idesc = &crisv32f_insn_data[itype];
4304 CGEN_INSN_INT insn = base_insn;
4305 #define FLD(f) abuf->fields.sfmt_addc_m.f
4309 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4310 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4312 /* Record the fields for the semantic handler. */
4313 FLD (f_operand2) = f_operand2;
4314 FLD (f_operand1) = f_operand1;
4315 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lsrr_d_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4317 #if WITH_PROFILE_MODEL_P
4318 /* Record the fields for profiling. */
4319 if (PROFILE_MODEL_P (current_cpu))
4321 FLD (in_Rd) = f_operand2;
4322 FLD (in_Rs) = f_operand1;
4323 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4332 const IDESC *idesc = &crisv32f_insn_data[itype];
4333 CGEN_INSN_INT insn = base_insn;
4334 #define FLD(f) abuf->fields.sfmt_muls_b.f
4338 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4339 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4341 /* Record the fields for the semantic handler. */
4342 FLD (f_operand2) = f_operand2;
4343 FLD (f_operand1) = f_operand1;
4344 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_btst", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4346 #if WITH_PROFILE_MODEL_P
4347 /* Record the fields for profiling. */
4348 if (PROFILE_MODEL_P (current_cpu))
4350 FLD (in_Rd) = f_operand2;
4351 FLD (in_Rs) = f_operand1;
4360 const IDESC *idesc = &crisv32f_insn_data[itype];
4361 CGEN_INSN_INT insn = base_insn;
4362 #define FLD(f) abuf->fields.sfmt_asrq.f
4366 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4367 f_u5 = EXTRACT_LSB0_UINT (insn, 16, 4, 5);
4369 /* Record the fields for the semantic handler. */
4370 FLD (f_operand2) = f_operand2;
4372 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_btstq", "f_operand2 0x%x", 'x', f_operand2, "f_u5 0x%x", 'x', f_u5, (char *) 0));
4374 #if WITH_PROFILE_MODEL_P
4375 /* Record the fields for profiling. */
4376 if (PROFILE_MODEL_P (current_cpu))
4378 FLD (in_Rd) = f_operand2;
4387 const IDESC *idesc = &crisv32f_insn_data[itype];
4388 CGEN_INSN_INT insn = base_insn;
4389 #define FLD(f) abuf->fields.sfmt_setf.f
4394 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4395 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4396 f_dstsrc = ((((f_operand1) | (((f_operand2) << (4))))) & (255));
4398 /* Record the fields for the semantic handler. */
4399 FLD (f_dstsrc) = f_dstsrc;
4400 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_setf", "f_dstsrc 0x%x", 'x', f_dstsrc, (char *) 0));
4408 const IDESC *idesc = &crisv32f_insn_data[itype];
4409 #define FLD(f) abuf->fields.sfmt_rfe.f
4412 /* Record the fields for the semantic handler. */
4413 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rfe", (char *) 0));
4415 #if WITH_PROFILE_MODEL_P
4416 /* Record the fields for profiling. */
4417 if (PROFILE_MODEL_P (current_cpu))
4419 FLD (in_h_sr_SI_13) = 13;
4420 FLD (out_h_sr_SI_13) = 13;
4429 const IDESC *idesc = &crisv32f_insn_data[itype];
4430 #define FLD(f) abuf->fields.sfmt_rfe.f
4433 /* Record the fields for the semantic handler. */
4434 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sfe", (char *) 0));
4436 #if WITH_PROFILE_MODEL_P
4437 /* Record the fields for profiling. */
4438 if (PROFILE_MODEL_P (current_cpu))
4440 FLD (in_h_sr_SI_13) = 13;
4441 FLD (out_h_sr_SI_13) = 13;
4450 const IDESC *idesc = &crisv32f_insn_data[itype];
4451 #define FLD(f) abuf->fields.fmt_empty.f
4454 /* Record the fields for the semantic handler. */
4455 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rfg", (char *) 0));
4457 #if WITH_PROFILE_MODEL_P
4458 /* Record the fields for profiling. */
4459 if (PROFILE_MODEL_P (current_cpu))
4469 const IDESC *idesc = &crisv32f_insn_data[itype];
4470 #define FLD(f) abuf->fields.sfmt_rfe.f
4473 /* Record the fields for the semantic handler. */
4474 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rfn", (char *) 0));
4476 #if WITH_PROFILE_MODEL_P
4477 /* Record the fields for profiling. */
4478 if (PROFILE_MODEL_P (current_cpu))
4480 FLD (in_h_sr_SI_13) = 13;
4481 FLD (out_h_sr_SI_13) = 13;
4490 const IDESC *idesc = &crisv32f_insn_data[itype];
4491 #define FLD(f) abuf->fields.fmt_empty.f
4494 /* Record the fields for the semantic handler. */
4495 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_halt", (char *) 0));
4497 #if WITH_PROFILE_MODEL_P
4498 /* Record the fields for profiling. */
4499 if (PROFILE_MODEL_P (current_cpu))
4509 const IDESC *idesc = &crisv32f_insn_data[itype];
4510 CGEN_INSN_INT insn = base_insn;
4511 #define FLD(f) abuf->fields.sfmt_bcc_b.f
4517 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4518 f_disp9_lo = EXTRACT_LSB0_UINT (insn, 16, 7, 7);
4519 f_disp9_hi = EXTRACT_LSB0_INT (insn, 16, 0, 1);
4523 tmp_abslo = ((f_disp9_lo) << (1));
4524 tmp_absval = ((((((f_disp9_hi) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo));
4525 f_disp9 = ((((pc) + (tmp_absval))) + (((GET_H_V32_V32 ()) ? (0) : (2))));
4528 /* Record the fields for the semantic handler. */
4529 FLD (f_operand2) = f_operand2;
4530 FLD (i_o_pcrel) = f_disp9;
4531 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bcc_b", "f_operand2 0x%x", 'x', f_operand2, "o_pcrel 0x%x", 'x', f_disp9, (char *) 0));
4533 #if WITH_PROFILE_MODEL_P
4534 /* Record the fields for profiling. */
4535 if (PROFILE_MODEL_P (current_cpu))
4545 const IDESC *idesc = &crisv32f_insn_data[itype];
4546 CGEN_INSN_INT insn = base_insn;
4547 #define FLD(f) abuf->fields.sfmt_bcc_b.f
4552 f_disp9_lo = EXTRACT_LSB0_UINT (insn, 16, 7, 7);
4553 f_disp9_hi = EXTRACT_LSB0_INT (insn, 16, 0, 1);
4557 tmp_abslo = ((f_disp9_lo) << (1));
4558 tmp_absval = ((((((f_disp9_hi) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo));
4559 f_disp9 = ((((pc) + (tmp_absval))) + (((GET_H_V32_V32 ()) ? (0) : (2))));
4562 /* Record the fields for the semantic handler. */
4563 FLD (i_o_pcrel) = f_disp9;
4564 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ba_b", "o_pcrel 0x%x", 'x', f_disp9, (char *) 0));
4566 #if WITH_PROFILE_MODEL_P
4567 /* Record the fields for profiling. */
4568 if (PROFILE_MODEL_P (current_cpu))
4578 const IDESC *idesc = &crisv32f_insn_data[itype];
4579 CGEN_INSN_INT insn = base_insn;
4580 #define FLD(f) abuf->fields.sfmt_bcc_w.f
4581 SI f_indir_pc__word_pcrel;
4583 /* Contents of trailing part of insn. */
4586 word_1 = GETIMEMUHI (current_cpu, pc + 2);
4587 f_indir_pc__word_pcrel = ((EXTHISI (((HI) (UINT) ((0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0)))))) + (((pc) + (((GET_H_V32_V32 ()) ? (0) : (4))))));
4588 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4590 /* Record the fields for the semantic handler. */
4591 FLD (f_operand2) = f_operand2;
4592 FLD (i_o_word_pcrel) = f_indir_pc__word_pcrel;
4593 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bcc_w", "f_operand2 0x%x", 'x', f_operand2, "o_word_pcrel 0x%x", 'x', f_indir_pc__word_pcrel, (char *) 0));
4595 #if WITH_PROFILE_MODEL_P
4596 /* Record the fields for profiling. */
4597 if (PROFILE_MODEL_P (current_cpu))
4607 const IDESC *idesc = &crisv32f_insn_data[itype];
4608 CGEN_INSN_INT insn = base_insn;
4609 #define FLD(f) abuf->fields.sfmt_bcc_w.f
4610 SI f_indir_pc__word_pcrel;
4611 /* Contents of trailing part of insn. */
4614 word_1 = GETIMEMUHI (current_cpu, pc + 2);
4615 f_indir_pc__word_pcrel = ((EXTHISI (((HI) (UINT) ((0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0)))))) + (((pc) + (((GET_H_V32_V32 ()) ? (0) : (4))))));
4617 /* Record the fields for the semantic handler. */
4618 FLD (i_o_word_pcrel) = f_indir_pc__word_pcrel;
4619 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ba_w", "o_word_pcrel 0x%x", 'x', f_indir_pc__word_pcrel, (char *) 0));
4621 #if WITH_PROFILE_MODEL_P
4622 /* Record the fields for profiling. */
4623 if (PROFILE_MODEL_P (current_cpu))
4633 const IDESC *idesc = &crisv32f_insn_data[itype];
4634 CGEN_INSN_INT insn = base_insn;
4635 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
4639 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4640 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4642 /* Record the fields for the semantic handler. */
4643 FLD (f_operand1) = f_operand1;
4644 FLD (f_operand2) = f_operand2;
4645 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jas_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
4647 #if WITH_PROFILE_MODEL_P
4648 /* Record the fields for profiling. */
4649 if (PROFILE_MODEL_P (current_cpu))
4651 FLD (in_Rs) = f_operand1;
4652 FLD (out_Pd) = f_operand2;
4661 const IDESC *idesc = &crisv32f_insn_data[itype];
4662 CGEN_INSN_INT insn = base_insn;
4663 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p0.f
4664 INT f_indir_pc__dword;
4666 /* Contents of trailing part of insn. */
4669 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4670 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
4671 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4673 /* Record the fields for the semantic handler. */
4674 FLD (f_indir_pc__dword) = f_indir_pc__dword;
4675 FLD (f_operand2) = f_operand2;
4676 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jas_c", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
4678 #if WITH_PROFILE_MODEL_P
4679 /* Record the fields for profiling. */
4680 if (PROFILE_MODEL_P (current_cpu))
4682 FLD (out_Pd) = f_operand2;
4689 extract_sfmt_jump_p:
4691 const IDESC *idesc = &crisv32f_insn_data[itype];
4692 CGEN_INSN_INT insn = base_insn;
4693 #define FLD(f) abuf->fields.sfmt_mcp.f
4696 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4698 /* Record the fields for the semantic handler. */
4699 FLD (f_operand2) = f_operand2;
4700 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jump_p", "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
4702 #if WITH_PROFILE_MODEL_P
4703 /* Record the fields for profiling. */
4704 if (PROFILE_MODEL_P (current_cpu))
4706 FLD (in_Ps) = f_operand2;
4715 const IDESC *idesc = &crisv32f_insn_data[itype];
4716 CGEN_INSN_INT insn = base_insn;
4717 #define FLD(f) abuf->fields.sfmt_bas_c.f
4718 SI f_indir_pc__dword_pcrel;
4720 /* Contents of trailing part of insn. */
4723 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4724 f_indir_pc__dword_pcrel = ((pc) + ((0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0))));
4725 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4727 /* Record the fields for the semantic handler. */
4728 FLD (f_operand2) = f_operand2;
4729 FLD (i_const32_pcrel) = f_indir_pc__dword_pcrel;
4730 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bas_c", "f_operand2 0x%x", 'x', f_operand2, "const32_pcrel 0x%x", 'x', f_indir_pc__dword_pcrel, (char *) 0));
4732 #if WITH_PROFILE_MODEL_P
4733 /* Record the fields for profiling. */
4734 if (PROFILE_MODEL_P (current_cpu))
4736 FLD (out_Pd) = f_operand2;
4743 extract_sfmt_jasc_r:
4745 const IDESC *idesc = &crisv32f_insn_data[itype];
4746 CGEN_INSN_INT insn = base_insn;
4747 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
4751 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4752 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4754 /* Record the fields for the semantic handler. */
4755 FLD (f_operand1) = f_operand1;
4756 FLD (f_operand2) = f_operand2;
4757 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jasc_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
4759 #if WITH_PROFILE_MODEL_P
4760 /* Record the fields for profiling. */
4761 if (PROFILE_MODEL_P (current_cpu))
4763 FLD (in_Rs) = f_operand1;
4764 FLD (out_Pd) = f_operand2;
4773 const IDESC *idesc = &crisv32f_insn_data[itype];
4774 CGEN_INSN_INT insn = base_insn;
4775 #define FLD(f) abuf->fields.sfmt_break.f
4778 f_u4 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4780 /* Record the fields for the semantic handler. */
4782 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_break", "f_u4 0x%x", 'x', f_u4, (char *) 0));
4784 #if WITH_PROFILE_MODEL_P
4785 /* Record the fields for profiling. */
4786 if (PROFILE_MODEL_P (current_cpu))
4794 extract_sfmt_bound_cb:
4796 const IDESC *idesc = &crisv32f_insn_data[itype];
4797 CGEN_INSN_INT insn = base_insn;
4798 #define FLD(f) abuf->fields.sfmt_bound_cb.f
4799 INT f_indir_pc__byte;
4801 /* Contents of trailing part of insn. */
4804 word_1 = GETIMEMUHI (current_cpu, pc + 2);
4805 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
4806 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4808 /* Record the fields for the semantic handler. */
4809 FLD (f_operand2) = f_operand2;
4810 FLD (f_indir_pc__byte) = f_indir_pc__byte;
4811 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bound_cb", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
4813 #if WITH_PROFILE_MODEL_P
4814 /* Record the fields for profiling. */
4815 if (PROFILE_MODEL_P (current_cpu))
4817 FLD (in_Rd) = f_operand2;
4818 FLD (out_Rd) = f_operand2;
4825 extract_sfmt_bound_cw:
4827 const IDESC *idesc = &crisv32f_insn_data[itype];
4828 CGEN_INSN_INT insn = base_insn;
4829 #define FLD(f) abuf->fields.sfmt_bound_cw.f
4830 INT f_indir_pc__word;
4832 /* Contents of trailing part of insn. */
4835 word_1 = GETIMEMUHI (current_cpu, pc + 2);
4836 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
4837 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4839 /* Record the fields for the semantic handler. */
4840 FLD (f_operand2) = f_operand2;
4841 FLD (f_indir_pc__word) = f_indir_pc__word;
4842 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bound_cw", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
4844 #if WITH_PROFILE_MODEL_P
4845 /* Record the fields for profiling. */
4846 if (PROFILE_MODEL_P (current_cpu))
4848 FLD (in_Rd) = f_operand2;
4849 FLD (out_Rd) = f_operand2;
4856 extract_sfmt_bound_cd:
4858 const IDESC *idesc = &crisv32f_insn_data[itype];
4859 CGEN_INSN_INT insn = base_insn;
4860 #define FLD(f) abuf->fields.sfmt_bound_cd.f
4861 INT f_indir_pc__dword;
4863 /* Contents of trailing part of insn. */
4866 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4867 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
4868 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4870 /* Record the fields for the semantic handler. */
4871 FLD (f_operand2) = f_operand2;
4872 FLD (f_indir_pc__dword) = f_indir_pc__dword;
4873 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bound_cd", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
4875 #if WITH_PROFILE_MODEL_P
4876 /* Record the fields for profiling. */
4877 if (PROFILE_MODEL_P (current_cpu))
4879 FLD (in_Rd) = f_operand2;
4880 FLD (out_Rd) = f_operand2;
4889 const IDESC *idesc = &crisv32f_insn_data[itype];
4890 CGEN_INSN_INT insn = base_insn;
4891 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
4895 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4896 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4898 /* Record the fields for the semantic handler. */
4899 FLD (f_operand2) = f_operand2;
4900 FLD (f_operand1) = f_operand1;
4901 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_scc", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
4903 #if WITH_PROFILE_MODEL_P
4904 /* Record the fields for profiling. */
4905 if (PROFILE_MODEL_P (current_cpu))
4907 FLD (out_Rs) = f_operand1;
4916 const IDESC *idesc = &crisv32f_insn_data[itype];
4917 CGEN_INSN_INT insn = base_insn;
4918 #define FLD(f) abuf->fields.sfmt_addoq.f
4922 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4923 f_s8 = EXTRACT_LSB0_INT (insn, 16, 7, 8);
4925 /* Record the fields for the semantic handler. */
4926 FLD (f_operand2) = f_operand2;
4928 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addoq", "f_operand2 0x%x", 'x', f_operand2, "f_s8 0x%x", 'x', f_s8, (char *) 0));
4930 #if WITH_PROFILE_MODEL_P
4931 /* Record the fields for profiling. */
4932 if (PROFILE_MODEL_P (current_cpu))
4934 FLD (in_Rd) = f_operand2;
4941 extract_sfmt_addo_m_b_m:
4943 const IDESC *idesc = &crisv32f_insn_data[itype];
4944 CGEN_INSN_INT insn = base_insn;
4945 #define FLD(f) abuf->fields.sfmt_addc_m.f
4950 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4951 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4952 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4954 /* Record the fields for the semantic handler. */
4955 FLD (f_operand2) = f_operand2;
4956 FLD (f_operand1) = f_operand1;
4957 FLD (f_memmode) = f_memmode;
4958 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4960 #if WITH_PROFILE_MODEL_P
4961 /* Record the fields for profiling. */
4962 if (PROFILE_MODEL_P (current_cpu))
4964 FLD (in_Rd) = f_operand2;
4965 FLD (in_Rs) = f_operand1;
4966 FLD (out_Rs) = f_operand1;
4973 extract_sfmt_addo_m_w_m:
4975 const IDESC *idesc = &crisv32f_insn_data[itype];
4976 CGEN_INSN_INT insn = base_insn;
4977 #define FLD(f) abuf->fields.sfmt_addc_m.f
4982 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4983 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4984 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4986 /* Record the fields for the semantic handler. */
4987 FLD (f_operand2) = f_operand2;
4988 FLD (f_operand1) = f_operand1;
4989 FLD (f_memmode) = f_memmode;
4990 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
4992 #if WITH_PROFILE_MODEL_P
4993 /* Record the fields for profiling. */
4994 if (PROFILE_MODEL_P (current_cpu))
4996 FLD (in_Rd) = f_operand2;
4997 FLD (in_Rs) = f_operand1;
4998 FLD (out_Rs) = f_operand1;
5005 extract_sfmt_addo_m_d_m:
5007 const IDESC *idesc = &crisv32f_insn_data[itype];
5008 CGEN_INSN_INT insn = base_insn;
5009 #define FLD(f) abuf->fields.sfmt_addc_m.f
5014 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5015 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5016 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5018 /* Record the fields for the semantic handler. */
5019 FLD (f_operand2) = f_operand2;
5020 FLD (f_operand1) = f_operand1;
5021 FLD (f_memmode) = f_memmode;
5022 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_m_d_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
5024 #if WITH_PROFILE_MODEL_P
5025 /* Record the fields for profiling. */
5026 if (PROFILE_MODEL_P (current_cpu))
5028 FLD (in_Rd) = f_operand2;
5029 FLD (in_Rs) = f_operand1;
5030 FLD (out_Rs) = f_operand1;
5037 extract_sfmt_addo_cb:
5039 const IDESC *idesc = &crisv32f_insn_data[itype];
5040 CGEN_INSN_INT insn = base_insn;
5041 #define FLD(f) abuf->fields.sfmt_bound_cb.f
5042 INT f_indir_pc__byte;
5044 /* Contents of trailing part of insn. */
5047 word_1 = GETIMEMUHI (current_cpu, pc + 2);
5048 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
5049 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5051 /* Record the fields for the semantic handler. */
5052 FLD (f_operand2) = f_operand2;
5053 FLD (f_indir_pc__byte) = f_indir_pc__byte;
5054 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_cb", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
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;
5067 extract_sfmt_addo_cw:
5069 const IDESC *idesc = &crisv32f_insn_data[itype];
5070 CGEN_INSN_INT insn = base_insn;
5071 #define FLD(f) abuf->fields.sfmt_bound_cw.f
5072 INT f_indir_pc__word;
5074 /* Contents of trailing part of insn. */
5077 word_1 = GETIMEMUHI (current_cpu, pc + 2);
5078 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
5079 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5081 /* Record the fields for the semantic handler. */
5082 FLD (f_operand2) = f_operand2;
5083 FLD (f_indir_pc__word) = f_indir_pc__word;
5084 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_cw", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
5086 #if WITH_PROFILE_MODEL_P
5087 /* Record the fields for profiling. */
5088 if (PROFILE_MODEL_P (current_cpu))
5090 FLD (in_Rd) = f_operand2;
5097 extract_sfmt_addo_cd:
5099 const IDESC *idesc = &crisv32f_insn_data[itype];
5100 CGEN_INSN_INT insn = base_insn;
5101 #define FLD(f) abuf->fields.sfmt_bound_cd.f
5102 INT f_indir_pc__dword;
5104 /* Contents of trailing part of insn. */
5107 word_1 = GETIMEMUSI (current_cpu, pc + 2);
5108 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
5109 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5111 /* Record the fields for the semantic handler. */
5112 FLD (f_operand2) = f_operand2;
5113 FLD (f_indir_pc__dword) = f_indir_pc__dword;
5114 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_cd", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
5116 #if WITH_PROFILE_MODEL_P
5117 /* Record the fields for profiling. */
5118 if (PROFILE_MODEL_P (current_cpu))
5120 FLD (in_Rd) = f_operand2;
5127 extract_sfmt_addi_acr_b_r:
5129 const IDESC *idesc = &crisv32f_insn_data[itype];
5130 CGEN_INSN_INT insn = base_insn;
5131 #define FLD(f) abuf->fields.sfmt_muls_b.f
5135 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5136 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5138 /* Record the fields for the semantic handler. */
5139 FLD (f_operand2) = f_operand2;
5140 FLD (f_operand1) = f_operand1;
5141 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addi_acr_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
5143 #if WITH_PROFILE_MODEL_P
5144 /* Record the fields for profiling. */
5145 if (PROFILE_MODEL_P (current_cpu))
5147 FLD (in_Rd) = f_operand2;
5148 FLD (in_Rs) = f_operand1;
5157 const IDESC *idesc = &crisv32f_insn_data[itype];
5158 CGEN_INSN_INT insn = base_insn;
5159 #define FLD(f) abuf->fields.sfmt_mcp.f
5162 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5164 /* Record the fields for the semantic handler. */
5165 FLD (f_operand1) = f_operand1;
5166 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fidxi", "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
5168 #if WITH_PROFILE_MODEL_P
5169 /* Record the fields for profiling. */
5170 if (PROFILE_MODEL_P (current_cpu))
5172 FLD (in_Rs) = f_operand1;