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