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