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