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