]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - sim/cris/decodev10.c
* cris/Makefile.in (stamp-v10fcpu, stamp-v32fcpu): Add kludge to
[thirdparty/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 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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 : itype = CRISV10F_INSN_BCC_B; goto extract_sfmt_bcc_b;
368 case 14 : itype = CRISV10F_INSN_BA_B; goto extract_sfmt_ba_b;
369 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
370 }
371 }
372 case 16 : /* fall through */
373 case 17 : /* fall through */
374 case 18 : /* fall through */
375 case 19 : /* fall through */
376 case 20 : /* fall through */
377 case 21 : /* fall through */
378 case 22 : /* fall through */
379 case 23 : /* fall through */
380 case 24 : /* fall through */
381 case 25 : /* fall through */
382 case 26 : /* fall through */
383 case 27 : /* fall through */
384 case 28 : /* fall through */
385 case 29 : /* fall through */
386 case 30 : /* fall through */
387 case 31 :
388 {
389 unsigned int val = (((insn >> 12) & (15 << 0)));
390 switch (val)
391 {
392 case 0 : /* fall through */
393 case 1 : /* fall through */
394 case 2 : /* fall through */
395 case 3 : /* fall through */
396 case 4 : /* fall through */
397 case 5 : /* fall through */
398 case 6 : /* fall through */
399 case 7 : /* fall through */
400 case 8 : /* fall through */
401 case 9 : /* fall through */
402 case 10 : /* fall through */
403 case 11 : /* fall through */
404 case 12 : /* fall through */
405 case 13 : /* fall through */
406 case 14 : itype = CRISV10F_INSN_ADDOQ; goto extract_sfmt_addoq;
407 case 15 : itype = CRISV10F_INSN_BDAPQPC; goto extract_sfmt_bdapqpc;
408 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
409 }
410 }
411 case 32 : /* fall through */
412 case 33 : /* fall through */
413 case 34 : /* fall through */
414 case 35 : itype = CRISV10F_INSN_ADDQ; goto extract_sfmt_addq;
415 case 36 : /* fall through */
416 case 37 : /* fall through */
417 case 38 : /* fall through */
418 case 39 : itype = CRISV10F_INSN_MOVEQ; goto extract_sfmt_moveq;
419 case 40 : /* fall through */
420 case 41 : /* fall through */
421 case 42 : /* fall through */
422 case 43 : itype = CRISV10F_INSN_SUBQ; goto extract_sfmt_addq;
423 case 44 : /* fall through */
424 case 45 : /* fall through */
425 case 46 : /* fall through */
426 case 47 : itype = CRISV10F_INSN_CMPQ; goto extract_sfmt_cmpq;
427 case 48 : /* fall through */
428 case 49 : /* fall through */
429 case 50 : /* fall through */
430 case 51 : itype = CRISV10F_INSN_ANDQ; goto extract_sfmt_andq;
431 case 52 : /* fall through */
432 case 53 : /* fall through */
433 case 54 : /* fall through */
434 case 55 : itype = CRISV10F_INSN_ORQ; goto extract_sfmt_andq;
435 case 56 : /* fall through */
436 case 57 : itype = CRISV10F_INSN_BTSTQ; goto extract_sfmt_btstq;
437 case 58 : /* fall through */
438 case 59 : itype = CRISV10F_INSN_ASRQ; goto extract_sfmt_asrq;
439 case 60 : /* fall through */
440 case 61 : itype = CRISV10F_INSN_LSLQ; goto extract_sfmt_asrq;
441 case 62 : /* fall through */
442 case 63 : itype = CRISV10F_INSN_LSRQ; goto extract_sfmt_asrq;
443 case 64 : itype = CRISV10F_INSN_ADDU_B_R; goto extract_sfmt_add_d_r;
444 case 65 : itype = CRISV10F_INSN_ADDU_W_R; goto extract_sfmt_add_d_r;
445 case 66 : itype = CRISV10F_INSN_ADDS_B_R; goto extract_sfmt_add_d_r;
446 case 67 : itype = CRISV10F_INSN_ADDS_W_R; goto extract_sfmt_add_d_r;
447 case 68 : itype = CRISV10F_INSN_MOVU_B_R; goto extract_sfmt_movs_b_r;
448 case 69 : itype = CRISV10F_INSN_MOVU_W_R; goto extract_sfmt_movs_b_r;
449 case 70 : itype = CRISV10F_INSN_MOVS_B_R; goto extract_sfmt_movs_b_r;
450 case 71 : itype = CRISV10F_INSN_MOVS_W_R; goto extract_sfmt_movs_b_r;
451 case 72 : itype = CRISV10F_INSN_SUBU_B_R; goto extract_sfmt_add_d_r;
452 case 73 : itype = CRISV10F_INSN_SUBU_W_R; goto extract_sfmt_add_d_r;
453 case 74 : itype = CRISV10F_INSN_SUBS_B_R; goto extract_sfmt_add_d_r;
454 case 75 : itype = CRISV10F_INSN_SUBS_W_R; goto extract_sfmt_add_d_r;
455 case 76 : itype = CRISV10F_INSN_LSLR_B_R; goto extract_sfmt_lsrr_b_r;
456 case 77 : itype = CRISV10F_INSN_LSLR_W_R; goto extract_sfmt_lsrr_b_r;
457 case 78 : itype = CRISV10F_INSN_LSLR_D_R; goto extract_sfmt_lsrr_d_r;
458 case 79 : itype = CRISV10F_INSN_BTST; goto extract_sfmt_btst;
459 case 80 :
460 {
461 unsigned int val = (((insn >> 8) & (7 << 4)) | ((insn >> 0) & (15 << 0)));
462 switch (val)
463 {
464 case 0 : /* fall through */
465 case 1 : /* fall through */
466 case 2 : /* fall through */
467 case 3 : /* fall through */
468 case 4 : /* fall through */
469 case 5 : /* fall through */
470 case 6 : /* fall through */
471 case 7 : /* fall through */
472 case 8 : /* fall through */
473 case 9 : /* fall through */
474 case 10 : /* fall through */
475 case 11 : /* fall through */
476 case 12 : /* fall through */
477 case 13 : /* fall through */
478 case 14 : /* fall through */
479 case 16 : /* fall through */
480 case 17 : /* fall through */
481 case 18 : /* fall through */
482 case 19 : /* fall through */
483 case 20 : /* fall through */
484 case 21 : /* fall through */
485 case 22 : /* fall through */
486 case 23 : /* fall through */
487 case 24 : /* fall through */
488 case 25 : /* fall through */
489 case 26 : /* fall through */
490 case 27 : /* fall through */
491 case 28 : /* fall through */
492 case 29 : /* fall through */
493 case 30 : /* fall through */
494 case 31 : /* fall through */
495 case 32 : /* fall through */
496 case 33 : /* fall through */
497 case 34 : /* fall through */
498 case 35 : /* fall through */
499 case 36 : /* fall through */
500 case 37 : /* fall through */
501 case 38 : /* fall through */
502 case 39 : /* fall through */
503 case 40 : /* fall through */
504 case 41 : /* fall through */
505 case 42 : /* fall through */
506 case 43 : /* fall through */
507 case 44 : /* fall through */
508 case 45 : /* fall through */
509 case 46 : /* fall through */
510 case 47 : /* fall through */
511 case 48 : /* fall through */
512 case 49 : /* fall through */
513 case 50 : /* fall through */
514 case 51 : /* fall through */
515 case 52 : /* fall through */
516 case 53 : /* fall through */
517 case 54 : /* fall through */
518 case 55 : /* fall through */
519 case 56 : /* fall through */
520 case 57 : /* fall through */
521 case 58 : /* fall through */
522 case 59 : /* fall through */
523 case 60 : /* fall through */
524 case 61 : /* fall through */
525 case 62 : /* fall through */
526 case 63 : /* fall through */
527 case 64 : /* fall through */
528 case 65 : /* fall through */
529 case 66 : /* fall through */
530 case 67 : /* fall through */
531 case 68 : /* fall through */
532 case 69 : /* fall through */
533 case 70 : /* fall through */
534 case 71 : /* fall through */
535 case 72 : /* fall through */
536 case 73 : /* fall through */
537 case 74 : /* fall through */
538 case 75 : /* fall through */
539 case 76 : /* fall through */
540 case 77 : /* fall through */
541 case 78 : /* fall through */
542 case 79 : /* fall through */
543 case 80 : /* fall through */
544 case 81 : /* fall through */
545 case 82 : /* fall through */
546 case 83 : /* fall through */
547 case 84 : /* fall through */
548 case 85 : /* fall through */
549 case 86 : /* fall through */
550 case 87 : /* fall through */
551 case 88 : /* fall through */
552 case 89 : /* fall through */
553 case 90 : /* fall through */
554 case 91 : /* fall through */
555 case 92 : /* fall through */
556 case 93 : /* fall through */
557 case 94 : /* fall through */
558 case 95 : /* fall through */
559 case 96 : /* fall through */
560 case 97 : /* fall through */
561 case 98 : /* fall through */
562 case 99 : /* fall through */
563 case 100 : /* fall through */
564 case 101 : /* fall through */
565 case 102 : /* fall through */
566 case 103 : /* fall through */
567 case 104 : /* fall through */
568 case 105 : /* fall through */
569 case 106 : /* fall through */
570 case 107 : /* fall through */
571 case 108 : /* fall through */
572 case 109 : /* fall through */
573 case 110 : /* fall through */
574 case 111 : /* fall through */
575 case 112 : /* fall through */
576 case 113 : /* fall through */
577 case 114 : /* fall through */
578 case 115 : /* fall through */
579 case 116 : /* fall through */
580 case 117 : /* fall through */
581 case 118 : /* fall through */
582 case 119 : /* fall through */
583 case 120 : /* fall through */
584 case 121 : /* fall through */
585 case 122 : /* fall through */
586 case 123 : /* fall through */
587 case 124 : /* fall through */
588 case 125 : /* fall through */
589 case 126 : /* fall through */
590 case 127 : itype = CRISV10F_INSN_ADDI_B_R; goto extract_sfmt_addi_b_r;
591 case 15 :
592 {
593 unsigned int val = (((insn >> 15) & (1 << 0)));
594 switch (val)
595 {
596 case 0 : itype = CRISV10F_INSN_NOP; goto extract_sfmt_nop;
597 case 1 : itype = CRISV10F_INSN_ADDI_B_R; goto extract_sfmt_addi_b_r;
598 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
599 }
600 }
601 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
602 }
603 }
604 case 81 : itype = CRISV10F_INSN_ADDI_W_R; goto extract_sfmt_addi_b_r;
605 case 82 : itype = CRISV10F_INSN_ADDI_D_R; goto extract_sfmt_addi_b_r;
606 case 83 : itype = CRISV10F_INSN_SCC; goto extract_sfmt_scc;
607 case 84 :
608 {
609 unsigned int val = (((insn >> 0) & (15 << 0)));
610 switch (val)
611 {
612 case 0 : /* fall through */
613 case 1 : /* fall through */
614 case 2 : /* fall through */
615 case 3 : /* fall through */
616 case 4 : /* fall through */
617 case 5 : /* fall through */
618 case 6 : /* fall through */
619 case 7 : /* fall through */
620 case 8 : /* fall through */
621 case 9 : /* fall through */
622 case 10 : /* fall through */
623 case 11 : /* fall through */
624 case 12 : /* fall through */
625 case 13 : /* fall through */
626 case 14 : itype = CRISV10F_INSN_ADDI_ACR_B_R; goto extract_sfmt_addi_acr_b_r;
627 case 15 : itype = CRISV10F_INSN_BIAP_PC_B_R; goto extract_sfmt_biap_pc_b_r;
628 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
629 }
630 }
631 case 85 :
632 {
633 unsigned int val = (((insn >> 0) & (15 << 0)));
634 switch (val)
635 {
636 case 0 : /* fall through */
637 case 1 : /* fall through */
638 case 2 : /* fall through */
639 case 3 : /* fall through */
640 case 4 : /* fall through */
641 case 5 : /* fall through */
642 case 6 : /* fall through */
643 case 7 : /* fall through */
644 case 8 : /* fall through */
645 case 9 : /* fall through */
646 case 10 : /* fall through */
647 case 11 : /* fall through */
648 case 12 : /* fall through */
649 case 13 : /* fall through */
650 case 14 : itype = CRISV10F_INSN_ADDI_ACR_W_R; goto extract_sfmt_addi_acr_b_r;
651 case 15 : itype = CRISV10F_INSN_BIAP_PC_W_R; goto extract_sfmt_biap_pc_b_r;
652 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
653 }
654 }
655 case 86 :
656 {
657 unsigned int val = (((insn >> 0) & (15 << 0)));
658 switch (val)
659 {
660 case 0 : /* fall through */
661 case 1 : /* fall through */
662 case 2 : /* fall through */
663 case 3 : /* fall through */
664 case 4 : /* fall through */
665 case 5 : /* fall through */
666 case 6 : /* fall through */
667 case 7 : /* fall through */
668 case 8 : /* fall through */
669 case 9 : /* fall through */
670 case 10 : /* fall through */
671 case 11 : /* fall through */
672 case 12 : /* fall through */
673 case 13 : /* fall through */
674 case 14 : itype = CRISV10F_INSN_ADDI_ACR_D_R; goto extract_sfmt_addi_acr_b_r;
675 case 15 : itype = CRISV10F_INSN_BIAP_PC_D_R; goto extract_sfmt_biap_pc_b_r;
676 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
677 }
678 }
679 case 88 : itype = CRISV10F_INSN_NEG_B_R; goto extract_sfmt_neg_b_r;
680 case 89 : itype = CRISV10F_INSN_NEG_W_R; goto extract_sfmt_neg_b_r;
681 case 90 : itype = CRISV10F_INSN_NEG_D_R; goto extract_sfmt_neg_d_r;
682 case 91 : itype = CRISV10F_INSN_SETF; goto extract_sfmt_setf;
683 case 92 : itype = CRISV10F_INSN_BOUND_R_B_R; goto extract_sfmt_dstep;
684 case 93 : itype = CRISV10F_INSN_BOUND_R_W_R; goto extract_sfmt_dstep;
685 case 94 : itype = CRISV10F_INSN_BOUND_R_D_R; goto extract_sfmt_dstep;
686 case 95 : itype = CRISV10F_INSN_CLEARF; goto extract_sfmt_setf;
687 case 96 : itype = CRISV10F_INSN_ADD_B_R; goto extract_sfmt_add_b_r;
688 case 97 : itype = CRISV10F_INSN_ADD_W_R; goto extract_sfmt_add_b_r;
689 case 98 : itype = CRISV10F_INSN_ADD_D_R; goto extract_sfmt_add_d_r;
690 case 99 : itype = CRISV10F_INSN_MOVE_R_SPRV10; goto extract_sfmt_move_r_sprv10;
691 case 100 : itype = CRISV10F_INSN_MOVE_B_R; goto extract_sfmt_move_b_r;
692 case 101 : itype = CRISV10F_INSN_MOVE_W_R; goto extract_sfmt_move_b_r;
693 case 102 :
694 {
695 unsigned int val = (((insn >> 0) & (15 << 0)));
696 switch (val)
697 {
698 case 0 : /* fall through */
699 case 1 : /* fall through */
700 case 2 : /* fall through */
701 case 3 : /* fall through */
702 case 4 : /* fall through */
703 case 5 : /* fall through */
704 case 6 : /* fall through */
705 case 7 : /* fall through */
706 case 8 : /* fall through */
707 case 9 : /* fall through */
708 case 10 : /* fall through */
709 case 11 : /* fall through */
710 case 12 : /* fall through */
711 case 13 : /* fall through */
712 case 14 : itype = CRISV10F_INSN_MOVE_D_R; goto extract_sfmt_move_d_r;
713 case 15 : itype = CRISV10F_INSN_MOVEPCR; goto extract_sfmt_movepcr;
714 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
715 }
716 }
717 case 103 :
718 {
719 unsigned int val = (((insn >> 0) & (15 << 0)));
720 switch (val)
721 {
722 case 0 : /* fall through */
723 case 1 : /* fall through */
724 case 2 : /* fall through */
725 case 3 : /* fall through */
726 case 4 : /* fall through */
727 case 5 : /* fall through */
728 case 6 : /* fall through */
729 case 7 : /* fall through */
730 case 8 : /* fall through */
731 case 9 : /* fall through */
732 case 10 : /* fall through */
733 case 11 : /* fall through */
734 case 12 : /* fall through */
735 case 13 : /* fall through */
736 case 14 : itype = CRISV10F_INSN_MOVE_SPR_RV10; goto extract_sfmt_move_spr_rv10;
737 case 15 : itype = CRISV10F_INSN_RET_TYPE; goto extract_sfmt_ret_type;
738 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
739 }
740 }
741 case 104 : itype = CRISV10F_INSN_SUB_B_R; goto extract_sfmt_add_b_r;
742 case 105 : itype = CRISV10F_INSN_SUB_W_R; goto extract_sfmt_add_b_r;
743 case 106 : itype = CRISV10F_INSN_SUB_D_R; goto extract_sfmt_add_d_r;
744 case 107 : itype = CRISV10F_INSN_ABS; goto extract_sfmt_movs_b_r;
745 case 108 : itype = CRISV10F_INSN_CMP_R_B_R; goto extract_sfmt_cmp_r_b_r;
746 case 109 : itype = CRISV10F_INSN_CMP_R_W_R; goto extract_sfmt_cmp_r_b_r;
747 case 110 : itype = CRISV10F_INSN_CMP_R_D_R; goto extract_sfmt_cmp_r_b_r;
748 case 111 : itype = CRISV10F_INSN_DSTEP; goto extract_sfmt_dstep;
749 case 112 : itype = CRISV10F_INSN_AND_B_R; goto extract_sfmt_and_b_r;
750 case 113 : itype = CRISV10F_INSN_AND_W_R; goto extract_sfmt_and_w_r;
751 case 114 : itype = CRISV10F_INSN_AND_D_R; goto extract_sfmt_and_d_r;
752 case 115 : itype = CRISV10F_INSN_LZ; goto extract_sfmt_movs_b_r;
753 case 116 : itype = CRISV10F_INSN_ORR_B_R; goto extract_sfmt_and_b_r;
754 case 117 : itype = CRISV10F_INSN_ORR_W_R; goto extract_sfmt_and_w_r;
755 case 118 : itype = CRISV10F_INSN_ORR_D_R; goto extract_sfmt_and_d_r;
756 case 119 : itype = CRISV10F_INSN_SWAP; goto extract_sfmt_swap;
757 case 120 : itype = CRISV10F_INSN_ASRR_B_R; goto extract_sfmt_asrr_b_r;
758 case 121 : itype = CRISV10F_INSN_ASRR_W_R; goto extract_sfmt_asrr_b_r;
759 case 122 : itype = CRISV10F_INSN_ASRR_D_R; goto extract_sfmt_and_d_r;
760 case 123 : itype = CRISV10F_INSN_XOR; goto extract_sfmt_dstep;
761 case 124 : itype = CRISV10F_INSN_LSRR_B_R; goto extract_sfmt_lsrr_b_r;
762 case 125 : itype = CRISV10F_INSN_LSRR_W_R; goto extract_sfmt_lsrr_b_r;
763 case 126 : itype = CRISV10F_INSN_LSRR_D_R; goto extract_sfmt_lsrr_d_r;
764 case 127 : itype = CRISV10F_INSN_MSTEP; goto extract_sfmt_mstep;
765 case 128 : itype = CRISV10F_INSN_ADDU_M_B_M; goto extract_sfmt_adds_m_b_m;
766 case 129 : itype = CRISV10F_INSN_ADDU_M_W_M; goto extract_sfmt_adds_m_w_m;
767 case 130 : itype = CRISV10F_INSN_ADDS_M_B_M; goto extract_sfmt_adds_m_b_m;
768 case 131 :
769 {
770 unsigned int val = (((insn >> 8) & (7 << 4)) | ((insn >> 0) & (15 << 0)));
771 switch (val)
772 {
773 case 0 : /* fall through */
774 case 1 : /* fall through */
775 case 2 : /* fall through */
776 case 3 : /* fall through */
777 case 4 : /* fall through */
778 case 5 : /* fall through */
779 case 6 : /* fall through */
780 case 7 : /* fall through */
781 case 8 : /* fall through */
782 case 9 : /* fall through */
783 case 10 : /* fall through */
784 case 11 : /* fall through */
785 case 12 : /* fall through */
786 case 13 : /* fall through */
787 case 14 : /* fall through */
788 case 15 : /* fall through */
789 case 16 : /* fall through */
790 case 17 : /* fall through */
791 case 18 : /* fall through */
792 case 19 : /* fall through */
793 case 20 : /* fall through */
794 case 21 : /* fall through */
795 case 22 : /* fall through */
796 case 23 : /* fall through */
797 case 24 : /* fall through */
798 case 25 : /* fall through */
799 case 26 : /* fall through */
800 case 27 : /* fall through */
801 case 28 : /* fall through */
802 case 29 : /* fall through */
803 case 30 : /* fall through */
804 case 31 : /* fall through */
805 case 32 : /* fall through */
806 case 33 : /* fall through */
807 case 34 : /* fall through */
808 case 35 : /* fall through */
809 case 36 : /* fall through */
810 case 37 : /* fall through */
811 case 38 : /* fall through */
812 case 39 : /* fall through */
813 case 40 : /* fall through */
814 case 41 : /* fall through */
815 case 42 : /* fall through */
816 case 43 : /* fall through */
817 case 44 : /* fall through */
818 case 45 : /* fall through */
819 case 46 : /* fall through */
820 case 47 : /* fall through */
821 case 48 : /* fall through */
822 case 49 : /* fall through */
823 case 50 : /* fall through */
824 case 51 : /* fall through */
825 case 52 : /* fall through */
826 case 53 : /* fall through */
827 case 54 : /* fall through */
828 case 55 : /* fall through */
829 case 56 : /* fall through */
830 case 57 : /* fall through */
831 case 58 : /* fall through */
832 case 59 : /* fall through */
833 case 60 : /* fall through */
834 case 61 : /* fall through */
835 case 62 : /* fall through */
836 case 63 : /* fall through */
837 case 64 : /* fall through */
838 case 65 : /* fall through */
839 case 66 : /* fall through */
840 case 67 : /* fall through */
841 case 68 : /* fall through */
842 case 69 : /* fall through */
843 case 70 : /* fall through */
844 case 71 : /* fall through */
845 case 72 : /* fall through */
846 case 73 : /* fall through */
847 case 74 : /* fall through */
848 case 75 : /* fall through */
849 case 76 : /* fall through */
850 case 77 : /* fall through */
851 case 78 : /* fall through */
852 case 79 : /* fall through */
853 case 80 : /* fall through */
854 case 81 : /* fall through */
855 case 82 : /* fall through */
856 case 83 : /* fall through */
857 case 84 : /* fall through */
858 case 85 : /* fall through */
859 case 86 : /* fall through */
860 case 87 : /* fall through */
861 case 88 : /* fall through */
862 case 89 : /* fall through */
863 case 90 : /* fall through */
864 case 91 : /* fall through */
865 case 92 : /* fall through */
866 case 93 : /* fall through */
867 case 94 : /* fall through */
868 case 95 : /* fall through */
869 case 96 : /* fall through */
870 case 97 : /* fall through */
871 case 98 : /* fall through */
872 case 99 : /* fall through */
873 case 100 : /* fall through */
874 case 101 : /* fall through */
875 case 102 : /* fall through */
876 case 103 : /* fall through */
877 case 104 : /* fall through */
878 case 105 : /* fall through */
879 case 106 : /* fall through */
880 case 107 : /* fall through */
881 case 108 : /* fall through */
882 case 109 : /* fall through */
883 case 110 : /* fall through */
884 case 111 : /* fall through */
885 case 112 : /* fall through */
886 case 113 : /* fall through */
887 case 114 : /* fall through */
888 case 115 : /* fall through */
889 case 116 : /* fall through */
890 case 117 : /* fall through */
891 case 118 : /* fall through */
892 case 119 : /* fall through */
893 case 120 : /* fall through */
894 case 121 : /* fall through */
895 case 122 : /* fall through */
896 case 123 : /* fall through */
897 case 124 : /* fall through */
898 case 125 : /* fall through */
899 case 126 : itype = CRISV10F_INSN_ADDS_M_W_M; goto extract_sfmt_adds_m_w_m;
900 case 127 :
901 {
902 unsigned int val = (((insn >> 15) & (1 << 0)));
903 switch (val)
904 {
905 case 0 : itype = CRISV10F_INSN_ADDS_M_W_M; goto extract_sfmt_adds_m_w_m;
906 case 1 : itype = CRISV10F_INSN_ADDSPCPC; goto extract_sfmt_addspcpc;
907 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
908 }
909 }
910 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
911 }
912 }
913 case 132 : itype = CRISV10F_INSN_MOVU_M_B_M; goto extract_sfmt_movs_m_b_m;
914 case 133 : itype = CRISV10F_INSN_MOVU_M_W_M; goto extract_sfmt_movs_m_w_m;
915 case 134 : itype = CRISV10F_INSN_MOVS_M_B_M; goto extract_sfmt_movs_m_b_m;
916 case 135 : itype = CRISV10F_INSN_MOVS_M_W_M; goto extract_sfmt_movs_m_w_m;
917 case 136 : itype = CRISV10F_INSN_SUBU_M_B_M; goto extract_sfmt_adds_m_b_m;
918 case 137 : itype = CRISV10F_INSN_SUBU_M_W_M; goto extract_sfmt_adds_m_w_m;
919 case 138 : itype = CRISV10F_INSN_SUBS_M_B_M; goto extract_sfmt_adds_m_b_m;
920 case 139 : itype = CRISV10F_INSN_SUBS_M_W_M; goto extract_sfmt_adds_m_w_m;
921 case 140 : itype = CRISV10F_INSN_CMPU_M_B_M; goto extract_sfmt_cmp_m_b_m;
922 case 141 : itype = CRISV10F_INSN_CMPU_M_W_M; goto extract_sfmt_cmp_m_w_m;
923 case 142 : itype = CRISV10F_INSN_CMPS_M_B_M; goto extract_sfmt_cmp_m_b_m;
924 case 143 : itype = CRISV10F_INSN_CMPS_M_W_M; goto extract_sfmt_cmp_m_w_m;
925 case 144 : itype = CRISV10F_INSN_MULU_B; goto extract_sfmt_muls_b;
926 case 145 : itype = CRISV10F_INSN_MULU_W; goto extract_sfmt_muls_b;
927 case 146 : itype = CRISV10F_INSN_MULU_D; goto extract_sfmt_muls_b;
928 case 147 :
929 {
930 unsigned int val = (((insn >> 12) & (15 << 0)));
931 switch (val)
932 {
933 case 0 : /* fall through */
934 case 1 : /* fall through */
935 case 2 : /* fall through */
936 case 3 : /* fall through */
937 case 4 : /* fall through */
938 case 5 : /* fall through */
939 case 6 : /* fall through */
940 case 7 : /* fall through */
941 case 8 : /* fall through */
942 case 9 : /* fall through */
943 case 10 : /* fall through */
944 case 11 : /* fall through */
945 case 12 : /* fall through */
946 case 13 : /* fall through */
947 case 15 : itype = CRISV10F_INSN_JUMP_M; goto extract_sfmt_jump_m;
948 case 14 : itype = CRISV10F_INSN_BREAK; goto extract_sfmt_break;
949 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
950 }
951 }
952 case 148 : itype = CRISV10F_INSN_ADDO_M_B_M; goto extract_sfmt_addo_m_b_m;
953 case 149 : itype = CRISV10F_INSN_ADDO_M_W_M; goto extract_sfmt_addo_m_w_m;
954 case 150 : itype = CRISV10F_INSN_ADDO_M_D_M; goto extract_sfmt_addo_m_d_m;
955 case 151 : itype = CRISV10F_INSN_DIP_M; goto extract_sfmt_dip_m;
956 case 155 : itype = CRISV10F_INSN_JUMP_R; goto extract_sfmt_jump_r;
957 case 156 : itype = CRISV10F_INSN_BOUND_M_B_M; goto extract_sfmt_bound_m_b_m;
958 case 157 : itype = CRISV10F_INSN_BOUND_M_W_M; goto extract_sfmt_bound_m_w_m;
959 case 158 : itype = CRISV10F_INSN_BOUND_M_D_M; goto extract_sfmt_bound_m_d_m;
960 case 160 : itype = CRISV10F_INSN_ADD_M_B_M; goto extract_sfmt_add_m_b_m;
961 case 161 : itype = CRISV10F_INSN_ADD_M_W_M; goto extract_sfmt_add_m_w_m;
962 case 162 : itype = CRISV10F_INSN_ADD_M_D_M; goto extract_sfmt_add_m_d_m;
963 case 163 : itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10;
964 case 164 : itype = CRISV10F_INSN_MOVE_M_B_M; goto extract_sfmt_move_m_b_m;
965 case 165 : itype = CRISV10F_INSN_MOVE_M_W_M; goto extract_sfmt_move_m_w_m;
966 case 166 : itype = CRISV10F_INSN_MOVE_M_D_M; goto extract_sfmt_move_m_d_m;
967 case 167 : /* fall through */
968 case 231 : itype = CRISV10F_INSN_MOVE_SPR_MV10; goto extract_sfmt_move_spr_mv10;
969 case 168 : itype = CRISV10F_INSN_SUB_M_B_M; goto extract_sfmt_add_m_b_m;
970 case 169 : itype = CRISV10F_INSN_SUB_M_W_M; goto extract_sfmt_add_m_w_m;
971 case 170 : itype = CRISV10F_INSN_SUB_M_D_M; goto extract_sfmt_add_m_d_m;
972 case 172 : itype = CRISV10F_INSN_CMP_M_B_M; goto extract_sfmt_cmp_m_b_m;
973 case 173 : itype = CRISV10F_INSN_CMP_M_W_M; goto extract_sfmt_cmp_m_w_m;
974 case 174 : itype = CRISV10F_INSN_CMP_M_D_M; goto extract_sfmt_cmp_m_d_m;
975 case 176 : itype = CRISV10F_INSN_AND_M_B_M; goto extract_sfmt_and_m_b_m;
976 case 177 : itype = CRISV10F_INSN_AND_M_W_M; goto extract_sfmt_and_m_w_m;
977 case 178 : itype = CRISV10F_INSN_AND_M_D_M; goto extract_sfmt_and_m_d_m;
978 case 180 : itype = CRISV10F_INSN_OR_M_B_M; goto extract_sfmt_and_m_b_m;
979 case 181 : itype = CRISV10F_INSN_OR_M_W_M; goto extract_sfmt_and_m_w_m;
980 case 182 : itype = CRISV10F_INSN_OR_M_D_M; goto extract_sfmt_and_m_d_m;
981 case 183 : /* fall through */
982 case 247 : itype = CRISV10F_INSN_SBFS; goto extract_sfmt_sbfs;
983 case 184 : /* fall through */
984 case 248 : itype = CRISV10F_INSN_TEST_M_B_M; goto extract_sfmt_test_m_b_m;
985 case 185 : /* fall through */
986 case 249 : itype = CRISV10F_INSN_TEST_M_W_M; goto extract_sfmt_test_m_w_m;
987 case 186 : /* fall through */
988 case 250 : itype = CRISV10F_INSN_TEST_M_D_M; goto extract_sfmt_test_m_d_m;
989 case 187 : /* fall through */
990 case 251 :
991 {
992 unsigned int val = (((insn >> 12) & (15 << 0)));
993 switch (val)
994 {
995 case 0 : /* fall through */
996 case 1 : /* fall through */
997 case 2 : /* fall through */
998 case 3 : /* fall through */
999 case 4 : /* fall through */
1000 case 5 : /* fall through */
1001 case 6 : /* fall through */
1002 case 7 : /* fall through */
1003 case 8 : /* fall through */
1004 case 9 : /* fall through */
1005 case 10 : /* fall through */
1006 case 11 : /* fall through */
1007 case 12 : /* fall through */
1008 case 13 : /* fall through */
1009 case 14 : itype = CRISV10F_INSN_MOVEM_M_R; goto extract_sfmt_movem_m_r;
1010 case 15 : itype = CRISV10F_INSN_MOVEM_M_PC; goto extract_sfmt_movem_m_pc;
1011 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1012 }
1013 }
1014 case 188 : /* fall through */
1015 case 252 : itype = CRISV10F_INSN_MOVE_R_M_B_M; goto extract_sfmt_move_r_m_b_m;
1016 case 189 : /* fall through */
1017 case 253 : itype = CRISV10F_INSN_MOVE_R_M_W_M; goto extract_sfmt_move_r_m_w_m;
1018 case 190 : /* fall through */
1019 case 254 : itype = CRISV10F_INSN_MOVE_R_M_D_M; goto extract_sfmt_move_r_m_d_m;
1020 case 191 : /* fall through */
1021 case 255 : itype = CRISV10F_INSN_MOVEM_R_M; goto extract_sfmt_movem_r_m;
1022 case 192 :
1023 {
1024 unsigned int val = (((insn >> 0) & (15 << 0)));
1025 switch (val)
1026 {
1027 case 0 : /* fall through */
1028 case 1 : /* fall through */
1029 case 2 : /* fall through */
1030 case 3 : /* fall through */
1031 case 4 : /* fall through */
1032 case 5 : /* fall through */
1033 case 6 : /* fall through */
1034 case 7 : /* fall through */
1035 case 8 : /* fall through */
1036 case 9 : /* fall through */
1037 case 10 : /* fall through */
1038 case 11 : /* fall through */
1039 case 12 : /* fall through */
1040 case 13 : /* fall through */
1041 case 14 : itype = CRISV10F_INSN_ADDU_M_B_M; goto extract_sfmt_adds_m_b_m;
1042 case 15 : itype = CRISV10F_INSN_ADDUCBR; goto extract_sfmt_addscbr;
1043 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1044 }
1045 }
1046 case 193 :
1047 {
1048 unsigned int val = (((insn >> 0) & (15 << 0)));
1049 switch (val)
1050 {
1051 case 0 : /* fall through */
1052 case 1 : /* fall through */
1053 case 2 : /* fall through */
1054 case 3 : /* fall through */
1055 case 4 : /* fall through */
1056 case 5 : /* fall through */
1057 case 6 : /* fall through */
1058 case 7 : /* fall through */
1059 case 8 : /* fall through */
1060 case 9 : /* fall through */
1061 case 10 : /* fall through */
1062 case 11 : /* fall through */
1063 case 12 : /* fall through */
1064 case 13 : /* fall through */
1065 case 14 : itype = CRISV10F_INSN_ADDU_M_W_M; goto extract_sfmt_adds_m_w_m;
1066 case 15 : itype = CRISV10F_INSN_ADDUCWR; goto extract_sfmt_addscwr;
1067 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1068 }
1069 }
1070 case 194 :
1071 {
1072 unsigned int val = (((insn >> 0) & (15 << 0)));
1073 switch (val)
1074 {
1075 case 0 : /* fall through */
1076 case 1 : /* fall through */
1077 case 2 : /* fall through */
1078 case 3 : /* fall through */
1079 case 4 : /* fall through */
1080 case 5 : /* fall through */
1081 case 6 : /* fall through */
1082 case 7 : /* fall through */
1083 case 8 : /* fall through */
1084 case 9 : /* fall through */
1085 case 10 : /* fall through */
1086 case 11 : /* fall through */
1087 case 12 : /* fall through */
1088 case 13 : /* fall through */
1089 case 14 : itype = CRISV10F_INSN_ADDS_M_B_M; goto extract_sfmt_adds_m_b_m;
1090 case 15 : itype = CRISV10F_INSN_ADDSCBR; goto extract_sfmt_addscbr;
1091 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1092 }
1093 }
1094 case 195 :
1095 {
1096 unsigned int val = (((insn >> 0) & (15 << 0)));
1097 switch (val)
1098 {
1099 case 0 : /* fall through */
1100 case 1 : /* fall through */
1101 case 2 : /* fall through */
1102 case 3 : /* fall through */
1103 case 4 : /* fall through */
1104 case 5 : /* fall through */
1105 case 6 : /* fall through */
1106 case 7 : /* fall through */
1107 case 8 : /* fall through */
1108 case 9 : /* fall through */
1109 case 10 : /* fall through */
1110 case 11 : /* fall through */
1111 case 12 : /* fall through */
1112 case 13 : /* fall through */
1113 case 14 : itype = CRISV10F_INSN_ADDS_M_W_M; goto extract_sfmt_adds_m_w_m;
1114 case 15 : itype = CRISV10F_INSN_ADDSCWR; goto extract_sfmt_addscwr;
1115 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1116 }
1117 }
1118 case 196 :
1119 {
1120 unsigned int val = (((insn >> 0) & (15 << 0)));
1121 switch (val)
1122 {
1123 case 0 : /* fall through */
1124 case 1 : /* fall through */
1125 case 2 : /* fall through */
1126 case 3 : /* fall through */
1127 case 4 : /* fall through */
1128 case 5 : /* fall through */
1129 case 6 : /* fall through */
1130 case 7 : /* fall through */
1131 case 8 : /* fall through */
1132 case 9 : /* fall through */
1133 case 10 : /* fall through */
1134 case 11 : /* fall through */
1135 case 12 : /* fall through */
1136 case 13 : /* fall through */
1137 case 14 : itype = CRISV10F_INSN_MOVU_M_B_M; goto extract_sfmt_movs_m_b_m;
1138 case 15 : itype = CRISV10F_INSN_MOVUCBR; goto extract_sfmt_movucbr;
1139 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1140 }
1141 }
1142 case 197 :
1143 {
1144 unsigned int val = (((insn >> 0) & (15 << 0)));
1145 switch (val)
1146 {
1147 case 0 : /* fall through */
1148 case 1 : /* fall through */
1149 case 2 : /* fall through */
1150 case 3 : /* fall through */
1151 case 4 : /* fall through */
1152 case 5 : /* fall through */
1153 case 6 : /* fall through */
1154 case 7 : /* fall through */
1155 case 8 : /* fall through */
1156 case 9 : /* fall through */
1157 case 10 : /* fall through */
1158 case 11 : /* fall through */
1159 case 12 : /* fall through */
1160 case 13 : /* fall through */
1161 case 14 : itype = CRISV10F_INSN_MOVU_M_W_M; goto extract_sfmt_movs_m_w_m;
1162 case 15 : itype = CRISV10F_INSN_MOVUCWR; goto extract_sfmt_movucwr;
1163 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1164 }
1165 }
1166 case 198 :
1167 {
1168 unsigned int val = (((insn >> 0) & (15 << 0)));
1169 switch (val)
1170 {
1171 case 0 : /* fall through */
1172 case 1 : /* fall through */
1173 case 2 : /* fall through */
1174 case 3 : /* fall through */
1175 case 4 : /* fall through */
1176 case 5 : /* fall through */
1177 case 6 : /* fall through */
1178 case 7 : /* fall through */
1179 case 8 : /* fall through */
1180 case 9 : /* fall through */
1181 case 10 : /* fall through */
1182 case 11 : /* fall through */
1183 case 12 : /* fall through */
1184 case 13 : /* fall through */
1185 case 14 : itype = CRISV10F_INSN_MOVS_M_B_M; goto extract_sfmt_movs_m_b_m;
1186 case 15 : itype = CRISV10F_INSN_MOVSCBR; goto extract_sfmt_movscbr;
1187 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1188 }
1189 }
1190 case 199 :
1191 {
1192 unsigned int val = (((insn >> 0) & (15 << 0)));
1193 switch (val)
1194 {
1195 case 0 : /* fall through */
1196 case 1 : /* fall through */
1197 case 2 : /* fall through */
1198 case 3 : /* fall through */
1199 case 4 : /* fall through */
1200 case 5 : /* fall through */
1201 case 6 : /* fall through */
1202 case 7 : /* fall through */
1203 case 8 : /* fall through */
1204 case 9 : /* fall through */
1205 case 10 : /* fall through */
1206 case 11 : /* fall through */
1207 case 12 : /* fall through */
1208 case 13 : /* fall through */
1209 case 14 : itype = CRISV10F_INSN_MOVS_M_W_M; goto extract_sfmt_movs_m_w_m;
1210 case 15 : itype = CRISV10F_INSN_MOVSCWR; goto extract_sfmt_movscwr;
1211 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1212 }
1213 }
1214 case 200 :
1215 {
1216 unsigned int val = (((insn >> 0) & (15 << 0)));
1217 switch (val)
1218 {
1219 case 0 : /* fall through */
1220 case 1 : /* fall through */
1221 case 2 : /* fall through */
1222 case 3 : /* fall through */
1223 case 4 : /* fall through */
1224 case 5 : /* fall through */
1225 case 6 : /* fall through */
1226 case 7 : /* fall through */
1227 case 8 : /* fall through */
1228 case 9 : /* fall through */
1229 case 10 : /* fall through */
1230 case 11 : /* fall through */
1231 case 12 : /* fall through */
1232 case 13 : /* fall through */
1233 case 14 : itype = CRISV10F_INSN_SUBU_M_B_M; goto extract_sfmt_adds_m_b_m;
1234 case 15 : itype = CRISV10F_INSN_SUBUCBR; goto extract_sfmt_addscbr;
1235 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1236 }
1237 }
1238 case 201 :
1239 {
1240 unsigned int val = (((insn >> 0) & (15 << 0)));
1241 switch (val)
1242 {
1243 case 0 : /* fall through */
1244 case 1 : /* fall through */
1245 case 2 : /* fall through */
1246 case 3 : /* fall through */
1247 case 4 : /* fall through */
1248 case 5 : /* fall through */
1249 case 6 : /* fall through */
1250 case 7 : /* fall through */
1251 case 8 : /* fall through */
1252 case 9 : /* fall through */
1253 case 10 : /* fall through */
1254 case 11 : /* fall through */
1255 case 12 : /* fall through */
1256 case 13 : /* fall through */
1257 case 14 : itype = CRISV10F_INSN_SUBU_M_W_M; goto extract_sfmt_adds_m_w_m;
1258 case 15 : itype = CRISV10F_INSN_SUBUCWR; goto extract_sfmt_addscwr;
1259 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1260 }
1261 }
1262 case 202 :
1263 {
1264 unsigned int val = (((insn >> 0) & (15 << 0)));
1265 switch (val)
1266 {
1267 case 0 : /* fall through */
1268 case 1 : /* fall through */
1269 case 2 : /* fall through */
1270 case 3 : /* fall through */
1271 case 4 : /* fall through */
1272 case 5 : /* fall through */
1273 case 6 : /* fall through */
1274 case 7 : /* fall through */
1275 case 8 : /* fall through */
1276 case 9 : /* fall through */
1277 case 10 : /* fall through */
1278 case 11 : /* fall through */
1279 case 12 : /* fall through */
1280 case 13 : /* fall through */
1281 case 14 : itype = CRISV10F_INSN_SUBS_M_B_M; goto extract_sfmt_adds_m_b_m;
1282 case 15 : itype = CRISV10F_INSN_SUBSCBR; goto extract_sfmt_addscbr;
1283 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1284 }
1285 }
1286 case 203 :
1287 {
1288 unsigned int val = (((insn >> 0) & (15 << 0)));
1289 switch (val)
1290 {
1291 case 0 : /* fall through */
1292 case 1 : /* fall through */
1293 case 2 : /* fall through */
1294 case 3 : /* fall through */
1295 case 4 : /* fall through */
1296 case 5 : /* fall through */
1297 case 6 : /* fall through */
1298 case 7 : /* fall through */
1299 case 8 : /* fall through */
1300 case 9 : /* fall through */
1301 case 10 : /* fall through */
1302 case 11 : /* fall through */
1303 case 12 : /* fall through */
1304 case 13 : /* fall through */
1305 case 14 : itype = CRISV10F_INSN_SUBS_M_W_M; goto extract_sfmt_adds_m_w_m;
1306 case 15 : itype = CRISV10F_INSN_SUBSCWR; goto extract_sfmt_addscwr;
1307 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1308 }
1309 }
1310 case 204 :
1311 {
1312 unsigned int val = (((insn >> 0) & (15 << 0)));
1313 switch (val)
1314 {
1315 case 0 : /* fall through */
1316 case 1 : /* fall through */
1317 case 2 : /* fall through */
1318 case 3 : /* fall through */
1319 case 4 : /* fall through */
1320 case 5 : /* fall through */
1321 case 6 : /* fall through */
1322 case 7 : /* fall through */
1323 case 8 : /* fall through */
1324 case 9 : /* fall through */
1325 case 10 : /* fall through */
1326 case 11 : /* fall through */
1327 case 12 : /* fall through */
1328 case 13 : /* fall through */
1329 case 14 : itype = CRISV10F_INSN_CMPU_M_B_M; goto extract_sfmt_cmp_m_b_m;
1330 case 15 : itype = CRISV10F_INSN_CMPUCBR; goto extract_sfmt_cmpucbr;
1331 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1332 }
1333 }
1334 case 205 :
1335 {
1336 unsigned int val = (((insn >> 0) & (15 << 0)));
1337 switch (val)
1338 {
1339 case 0 : /* fall through */
1340 case 1 : /* fall through */
1341 case 2 : /* fall through */
1342 case 3 : /* fall through */
1343 case 4 : /* fall through */
1344 case 5 : /* fall through */
1345 case 6 : /* fall through */
1346 case 7 : /* fall through */
1347 case 8 : /* fall through */
1348 case 9 : /* fall through */
1349 case 10 : /* fall through */
1350 case 11 : /* fall through */
1351 case 12 : /* fall through */
1352 case 13 : /* fall through */
1353 case 14 : itype = CRISV10F_INSN_CMPU_M_W_M; goto extract_sfmt_cmp_m_w_m;
1354 case 15 : itype = CRISV10F_INSN_CMPUCWR; goto extract_sfmt_cmpucwr;
1355 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1356 }
1357 }
1358 case 206 :
1359 {
1360 unsigned int val = (((insn >> 0) & (15 << 0)));
1361 switch (val)
1362 {
1363 case 0 : /* fall through */
1364 case 1 : /* fall through */
1365 case 2 : /* fall through */
1366 case 3 : /* fall through */
1367 case 4 : /* fall through */
1368 case 5 : /* fall through */
1369 case 6 : /* fall through */
1370 case 7 : /* fall through */
1371 case 8 : /* fall through */
1372 case 9 : /* fall through */
1373 case 10 : /* fall through */
1374 case 11 : /* fall through */
1375 case 12 : /* fall through */
1376 case 13 : /* fall through */
1377 case 14 : itype = CRISV10F_INSN_CMPS_M_B_M; goto extract_sfmt_cmp_m_b_m;
1378 case 15 : itype = CRISV10F_INSN_CMPSCBR; goto extract_sfmt_cmpcbr;
1379 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1380 }
1381 }
1382 case 207 :
1383 {
1384 unsigned int val = (((insn >> 0) & (15 << 0)));
1385 switch (val)
1386 {
1387 case 0 : /* fall through */
1388 case 1 : /* fall through */
1389 case 2 : /* fall through */
1390 case 3 : /* fall through */
1391 case 4 : /* fall through */
1392 case 5 : /* fall through */
1393 case 6 : /* fall through */
1394 case 7 : /* fall through */
1395 case 8 : /* fall through */
1396 case 9 : /* fall through */
1397 case 10 : /* fall through */
1398 case 11 : /* fall through */
1399 case 12 : /* fall through */
1400 case 13 : /* fall through */
1401 case 14 : itype = CRISV10F_INSN_CMPS_M_W_M; goto extract_sfmt_cmp_m_w_m;
1402 case 15 : itype = CRISV10F_INSN_CMPSCWR; goto extract_sfmt_cmpcwr;
1403 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1404 }
1405 }
1406 case 208 : itype = CRISV10F_INSN_MULS_B; goto extract_sfmt_muls_b;
1407 case 209 : itype = CRISV10F_INSN_MULS_W; goto extract_sfmt_muls_b;
1408 case 210 : itype = CRISV10F_INSN_MULS_D; goto extract_sfmt_muls_b;
1409 case 211 :
1410 {
1411 unsigned int val = (((insn >> 0) & (15 << 0)));
1412 switch (val)
1413 {
1414 case 0 : /* fall through */
1415 case 1 : /* fall through */
1416 case 2 : /* fall through */
1417 case 3 : /* fall through */
1418 case 4 : /* fall through */
1419 case 5 : /* fall through */
1420 case 6 : /* fall through */
1421 case 7 : /* fall through */
1422 case 8 : /* fall through */
1423 case 9 : /* fall through */
1424 case 10 : /* fall through */
1425 case 11 : /* fall through */
1426 case 12 : /* fall through */
1427 case 13 : /* fall through */
1428 case 14 : itype = CRISV10F_INSN_JUMP_M; goto extract_sfmt_jump_m;
1429 case 15 : itype = CRISV10F_INSN_JUMP_C; goto extract_sfmt_jump_c;
1430 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1431 }
1432 }
1433 case 212 :
1434 {
1435 unsigned int val = (((insn >> 0) & (15 << 0)));
1436 switch (val)
1437 {
1438 case 0 : /* fall through */
1439 case 1 : /* fall through */
1440 case 2 : /* fall through */
1441 case 3 : /* fall through */
1442 case 4 : /* fall through */
1443 case 5 : /* fall through */
1444 case 6 : /* fall through */
1445 case 7 : /* fall through */
1446 case 8 : /* fall through */
1447 case 9 : /* fall through */
1448 case 10 : /* fall through */
1449 case 11 : /* fall through */
1450 case 12 : /* fall through */
1451 case 13 : /* fall through */
1452 case 14 : itype = CRISV10F_INSN_ADDO_M_B_M; goto extract_sfmt_addo_m_b_m;
1453 case 15 : itype = CRISV10F_INSN_ADDO_CB; goto extract_sfmt_addo_cb;
1454 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1455 }
1456 }
1457 case 213 :
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 : itype = CRISV10F_INSN_ADDO_M_W_M; goto extract_sfmt_addo_m_w_m;
1477 case 15 : itype = CRISV10F_INSN_ADDO_CW; goto extract_sfmt_addo_cw;
1478 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1479 }
1480 }
1481 case 214 :
1482 {
1483 unsigned int val = (((insn >> 0) & (15 << 0)));
1484 switch (val)
1485 {
1486 case 0 : /* fall through */
1487 case 1 : /* fall through */
1488 case 2 : /* fall through */
1489 case 3 : /* fall through */
1490 case 4 : /* fall through */
1491 case 5 : /* fall through */
1492 case 6 : /* fall through */
1493 case 7 : /* fall through */
1494 case 8 : /* fall through */
1495 case 9 : /* fall through */
1496 case 10 : /* fall through */
1497 case 11 : /* fall through */
1498 case 12 : /* fall through */
1499 case 13 : /* fall through */
1500 case 14 : itype = CRISV10F_INSN_ADDO_M_D_M; goto extract_sfmt_addo_m_d_m;
1501 case 15 : itype = CRISV10F_INSN_ADDO_CD; goto extract_sfmt_addo_cd;
1502 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1503 }
1504 }
1505 case 215 :
1506 {
1507 unsigned int val = (((insn >> 0) & (15 << 0)));
1508 switch (val)
1509 {
1510 case 0 : /* fall through */
1511 case 1 : /* fall through */
1512 case 2 : /* fall through */
1513 case 3 : /* fall through */
1514 case 4 : /* fall through */
1515 case 5 : /* fall through */
1516 case 6 : /* fall through */
1517 case 7 : /* fall through */
1518 case 8 : /* fall through */
1519 case 9 : /* fall through */
1520 case 10 : /* fall through */
1521 case 11 : /* fall through */
1522 case 12 : /* fall through */
1523 case 13 : /* fall through */
1524 case 14 : itype = CRISV10F_INSN_DIP_M; goto extract_sfmt_dip_m;
1525 case 15 : itype = CRISV10F_INSN_DIP_C; goto extract_sfmt_dip_c;
1526 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1527 }
1528 }
1529 case 220 :
1530 {
1531 unsigned int val = (((insn >> 0) & (15 << 0)));
1532 switch (val)
1533 {
1534 case 0 : /* fall through */
1535 case 1 : /* fall through */
1536 case 2 : /* fall through */
1537 case 3 : /* fall through */
1538 case 4 : /* fall through */
1539 case 5 : /* fall through */
1540 case 6 : /* fall through */
1541 case 7 : /* fall through */
1542 case 8 : /* fall through */
1543 case 9 : /* fall through */
1544 case 10 : /* fall through */
1545 case 11 : /* fall through */
1546 case 12 : /* fall through */
1547 case 13 : /* fall through */
1548 case 14 : itype = CRISV10F_INSN_BOUND_M_B_M; goto extract_sfmt_bound_m_b_m;
1549 case 15 : itype = CRISV10F_INSN_BOUND_CB; goto extract_sfmt_bound_cb;
1550 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1551 }
1552 }
1553 case 221 :
1554 {
1555 unsigned int val = (((insn >> 0) & (15 << 0)));
1556 switch (val)
1557 {
1558 case 0 : /* fall through */
1559 case 1 : /* fall through */
1560 case 2 : /* fall through */
1561 case 3 : /* fall through */
1562 case 4 : /* fall through */
1563 case 5 : /* fall through */
1564 case 6 : /* fall through */
1565 case 7 : /* fall through */
1566 case 8 : /* fall through */
1567 case 9 : /* fall through */
1568 case 10 : /* fall through */
1569 case 11 : /* fall through */
1570 case 12 : /* fall through */
1571 case 13 : /* fall through */
1572 case 14 : itype = CRISV10F_INSN_BOUND_M_W_M; goto extract_sfmt_bound_m_w_m;
1573 case 15 : itype = CRISV10F_INSN_BOUND_CW; goto extract_sfmt_bound_cw;
1574 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1575 }
1576 }
1577 case 222 :
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 : itype = CRISV10F_INSN_BOUND_M_D_M; goto extract_sfmt_bound_m_d_m;
1597 case 15 : itype = CRISV10F_INSN_BOUND_CD; goto extract_sfmt_bound_cd;
1598 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1599 }
1600 }
1601 case 223 :
1602 {
1603 unsigned int val = (((insn >> 12) & (15 << 0)));
1604 switch (val)
1605 {
1606 case 0 : /* fall through */
1607 case 1 : /* fall through */
1608 case 2 : /* fall through */
1609 case 3 : /* fall through */
1610 case 4 : /* fall through */
1611 case 5 : /* fall through */
1612 case 6 : /* fall through */
1613 case 7 : /* fall through */
1614 case 8 : /* fall through */
1615 case 9 : /* fall through */
1616 case 10 : /* fall through */
1617 case 11 : /* fall through */
1618 case 12 : /* fall through */
1619 case 13 : /* fall through */
1620 case 15 : itype = CRISV10F_INSN_BCC_W; goto extract_sfmt_bcc_w;
1621 case 14 : itype = CRISV10F_INSN_BA_W; goto extract_sfmt_ba_w;
1622 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1623 }
1624 }
1625 case 224 :
1626 {
1627 unsigned int val = (((insn >> 0) & (15 << 0)));
1628 switch (val)
1629 {
1630 case 0 : /* fall through */
1631 case 1 : /* fall through */
1632 case 2 : /* fall through */
1633 case 3 : /* fall through */
1634 case 4 : /* fall through */
1635 case 5 : /* fall through */
1636 case 6 : /* fall through */
1637 case 7 : /* fall through */
1638 case 8 : /* fall through */
1639 case 9 : /* fall through */
1640 case 10 : /* fall through */
1641 case 11 : /* fall through */
1642 case 12 : /* fall through */
1643 case 13 : /* fall through */
1644 case 14 : itype = CRISV10F_INSN_ADD_M_B_M; goto extract_sfmt_add_m_b_m;
1645 case 15 : itype = CRISV10F_INSN_ADDCBR; goto extract_sfmt_addcbr;
1646 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1647 }
1648 }
1649 case 225 :
1650 {
1651 unsigned int val = (((insn >> 0) & (15 << 0)));
1652 switch (val)
1653 {
1654 case 0 : /* fall through */
1655 case 1 : /* fall through */
1656 case 2 : /* fall through */
1657 case 3 : /* fall through */
1658 case 4 : /* fall through */
1659 case 5 : /* fall through */
1660 case 6 : /* fall through */
1661 case 7 : /* fall through */
1662 case 8 : /* fall through */
1663 case 9 : /* fall through */
1664 case 10 : /* fall through */
1665 case 11 : /* fall through */
1666 case 12 : /* fall through */
1667 case 13 : /* fall through */
1668 case 14 : itype = CRISV10F_INSN_ADD_M_W_M; goto extract_sfmt_add_m_w_m;
1669 case 15 : itype = CRISV10F_INSN_ADDCWR; goto extract_sfmt_addcwr;
1670 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1671 }
1672 }
1673 case 226 :
1674 {
1675 unsigned int val = (((insn >> 12) & (15 << 0)));
1676 switch (val)
1677 {
1678 case 0 : /* fall through */
1679 case 1 : /* fall through */
1680 case 2 : /* fall through */
1681 case 3 : /* fall through */
1682 case 4 : /* fall through */
1683 case 5 : /* fall through */
1684 case 6 : /* fall through */
1685 case 7 : /* fall through */
1686 case 8 : /* fall through */
1687 case 9 : /* fall through */
1688 case 10 : /* fall through */
1689 case 11 : /* fall through */
1690 case 12 : /* fall through */
1691 case 13 : /* fall through */
1692 case 14 :
1693 {
1694 unsigned int val = (((insn >> 0) & (15 << 0)));
1695 switch (val)
1696 {
1697 case 0 : /* fall through */
1698 case 1 : /* fall through */
1699 case 2 : /* fall through */
1700 case 3 : /* fall through */
1701 case 4 : /* fall through */
1702 case 5 : /* fall through */
1703 case 6 : /* fall through */
1704 case 7 : /* fall through */
1705 case 8 : /* fall through */
1706 case 9 : /* fall through */
1707 case 10 : /* fall through */
1708 case 11 : /* fall through */
1709 case 12 : /* fall through */
1710 case 13 : /* fall through */
1711 case 14 : itype = CRISV10F_INSN_ADD_M_D_M; goto extract_sfmt_add_m_d_m;
1712 case 15 : itype = CRISV10F_INSN_ADDCDR; goto extract_sfmt_addcdr;
1713 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1714 }
1715 }
1716 case 15 :
1717 {
1718 unsigned int val = (((insn >> 0) & (15 << 0)));
1719 switch (val)
1720 {
1721 case 0 : /* fall through */
1722 case 1 : /* fall through */
1723 case 2 : /* fall through */
1724 case 3 : /* fall through */
1725 case 4 : /* fall through */
1726 case 5 : /* fall through */
1727 case 6 : /* fall through */
1728 case 7 : /* fall through */
1729 case 8 : /* fall through */
1730 case 9 : /* fall through */
1731 case 10 : /* fall through */
1732 case 11 : /* fall through */
1733 case 12 : /* fall through */
1734 case 13 : /* fall through */
1735 case 14 : itype = CRISV10F_INSN_ADD_M_D_M; goto extract_sfmt_add_m_d_m;
1736 case 15 : itype = CRISV10F_INSN_ADDCPC; goto extract_sfmt_addcpc;
1737 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1738 }
1739 }
1740 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1741 }
1742 }
1743 case 227 :
1744 {
1745 unsigned int val = (((insn >> 12) & (15 << 0)));
1746 switch (val)
1747 {
1748 case 0 :
1749 {
1750 unsigned int val = (((insn >> 0) & (15 << 0)));
1751 switch (val)
1752 {
1753 case 0 : /* fall through */
1754 case 1 : /* fall through */
1755 case 2 : /* fall through */
1756 case 3 : /* fall through */
1757 case 4 : /* fall through */
1758 case 5 : /* fall through */
1759 case 6 : /* fall through */
1760 case 7 : /* fall through */
1761 case 8 : /* fall through */
1762 case 9 : /* fall through */
1763 case 10 : /* fall through */
1764 case 11 : /* fall through */
1765 case 12 : /* fall through */
1766 case 13 : /* fall through */
1767 case 14 : itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10;
1768 case 15 : itype = CRISV10F_INSN_MOVE_C_SPRV10_P0; goto extract_sfmt_move_c_sprv10_p0;
1769 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1770 }
1771 }
1772 case 1 :
1773 {
1774 unsigned int val = (((insn >> 0) & (15 << 0)));
1775 switch (val)
1776 {
1777 case 0 : /* fall through */
1778 case 1 : /* fall through */
1779 case 2 : /* fall through */
1780 case 3 : /* fall through */
1781 case 4 : /* fall through */
1782 case 5 : /* fall through */
1783 case 6 : /* fall through */
1784 case 7 : /* fall through */
1785 case 8 : /* fall through */
1786 case 9 : /* fall through */
1787 case 10 : /* fall through */
1788 case 11 : /* fall through */
1789 case 12 : /* fall through */
1790 case 13 : /* fall through */
1791 case 14 : itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10;
1792 case 15 : itype = CRISV10F_INSN_MOVE_C_SPRV10_P1; goto extract_sfmt_move_c_sprv10_p0;
1793 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1794 }
1795 }
1796 case 2 : /* fall through */
1797 case 3 : /* fall through */
1798 case 6 : itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10;
1799 case 4 :
1800 {
1801 unsigned int val = (((insn >> 0) & (15 << 0)));
1802 switch (val)
1803 {
1804 case 0 : /* fall through */
1805 case 1 : /* fall through */
1806 case 2 : /* fall through */
1807 case 3 : /* fall through */
1808 case 4 : /* fall through */
1809 case 5 : /* fall through */
1810 case 6 : /* fall through */
1811 case 7 : /* fall through */
1812 case 8 : /* fall through */
1813 case 9 : /* fall through */
1814 case 10 : /* fall through */
1815 case 11 : /* fall through */
1816 case 12 : /* fall through */
1817 case 13 : /* fall through */
1818 case 14 : itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10;
1819 case 15 : itype = CRISV10F_INSN_MOVE_C_SPRV10_P4; goto extract_sfmt_move_c_sprv10_p4;
1820 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1821 }
1822 }
1823 case 5 :
1824 {
1825 unsigned int val = (((insn >> 0) & (15 << 0)));
1826 switch (val)
1827 {
1828 case 0 : /* fall through */
1829 case 1 : /* fall through */
1830 case 2 : /* fall through */
1831 case 3 : /* fall through */
1832 case 4 : /* fall through */
1833 case 5 : /* fall through */
1834 case 6 : /* fall through */
1835 case 7 : /* fall through */
1836 case 8 : /* fall through */
1837 case 9 : /* fall through */
1838 case 10 : /* fall through */
1839 case 11 : /* fall through */
1840 case 12 : /* fall through */
1841 case 13 : /* fall through */
1842 case 14 : itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10;
1843 case 15 : itype = CRISV10F_INSN_MOVE_C_SPRV10_P5; goto extract_sfmt_move_c_sprv10_p4;
1844 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1845 }
1846 }
1847 case 7 :
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 : itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10;
1867 case 15 : itype = CRISV10F_INSN_MOVE_C_SPRV10_P7; goto extract_sfmt_move_c_sprv10_p8;
1868 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1869 }
1870 }
1871 case 8 :
1872 {
1873 unsigned int val = (((insn >> 0) & (15 << 0)));
1874 switch (val)
1875 {
1876 case 0 : /* fall through */
1877 case 1 : /* fall through */
1878 case 2 : /* fall through */
1879 case 3 : /* fall through */
1880 case 4 : /* fall through */
1881 case 5 : /* fall through */
1882 case 6 : /* fall through */
1883 case 7 : /* fall through */
1884 case 8 : /* fall through */
1885 case 9 : /* fall through */
1886 case 10 : /* fall through */
1887 case 11 : /* fall through */
1888 case 12 : /* fall through */
1889 case 13 : /* fall through */
1890 case 14 : itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10;
1891 case 15 : itype = CRISV10F_INSN_MOVE_C_SPRV10_P8; goto extract_sfmt_move_c_sprv10_p8;
1892 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1893 }
1894 }
1895 case 9 :
1896 {
1897 unsigned int val = (((insn >> 0) & (15 << 0)));
1898 switch (val)
1899 {
1900 case 0 : /* fall through */
1901 case 1 : /* fall through */
1902 case 2 : /* fall through */
1903 case 3 : /* fall through */
1904 case 4 : /* fall through */
1905 case 5 : /* fall through */
1906 case 6 : /* fall through */
1907 case 7 : /* fall through */
1908 case 8 : /* fall through */
1909 case 9 : /* fall through */
1910 case 10 : /* fall through */
1911 case 11 : /* fall through */
1912 case 12 : /* fall through */
1913 case 13 : /* fall through */
1914 case 14 : itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10;
1915 case 15 : itype = CRISV10F_INSN_MOVE_C_SPRV10_P9; goto extract_sfmt_move_c_sprv10_p8;
1916 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1917 }
1918 }
1919 case 10 :
1920 {
1921 unsigned int val = (((insn >> 0) & (15 << 0)));
1922 switch (val)
1923 {
1924 case 0 : /* fall through */
1925 case 1 : /* fall through */
1926 case 2 : /* fall through */
1927 case 3 : /* fall through */
1928 case 4 : /* fall through */
1929 case 5 : /* fall through */
1930 case 6 : /* fall through */
1931 case 7 : /* fall through */
1932 case 8 : /* fall through */
1933 case 9 : /* fall through */
1934 case 10 : /* fall through */
1935 case 11 : /* fall through */
1936 case 12 : /* fall through */
1937 case 13 : /* fall through */
1938 case 14 : itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10;
1939 case 15 : itype = CRISV10F_INSN_MOVE_C_SPRV10_P10; goto extract_sfmt_move_c_sprv10_p8;
1940 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1941 }
1942 }
1943 case 11 :
1944 {
1945 unsigned int val = (((insn >> 0) & (15 << 0)));
1946 switch (val)
1947 {
1948 case 0 : /* fall through */
1949 case 1 : /* fall through */
1950 case 2 : /* fall through */
1951 case 3 : /* fall through */
1952 case 4 : /* fall through */
1953 case 5 : /* fall through */
1954 case 6 : /* fall through */
1955 case 7 : /* fall through */
1956 case 8 : /* fall through */
1957 case 9 : /* fall through */
1958 case 10 : /* fall through */
1959 case 11 : /* fall through */
1960 case 12 : /* fall through */
1961 case 13 : /* fall through */
1962 case 14 : itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10;
1963 case 15 : itype = CRISV10F_INSN_MOVE_C_SPRV10_P11; goto extract_sfmt_move_c_sprv10_p8;
1964 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1965 }
1966 }
1967 case 12 :
1968 {
1969 unsigned int val = (((insn >> 0) & (15 << 0)));
1970 switch (val)
1971 {
1972 case 0 : /* fall through */
1973 case 1 : /* fall through */
1974 case 2 : /* fall through */
1975 case 3 : /* fall through */
1976 case 4 : /* fall through */
1977 case 5 : /* fall through */
1978 case 6 : /* fall through */
1979 case 7 : /* fall through */
1980 case 8 : /* fall through */
1981 case 9 : /* fall through */
1982 case 10 : /* fall through */
1983 case 11 : /* fall through */
1984 case 12 : /* fall through */
1985 case 13 : /* fall through */
1986 case 14 : itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10;
1987 case 15 : itype = CRISV10F_INSN_MOVE_C_SPRV10_P12; goto extract_sfmt_move_c_sprv10_p8;
1988 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
1989 }
1990 }
1991 case 13 :
1992 {
1993 unsigned int val = (((insn >> 0) & (15 << 0)));
1994 switch (val)
1995 {
1996 case 0 : /* fall through */
1997 case 1 : /* fall through */
1998 case 2 : /* fall through */
1999 case 3 : /* fall through */
2000 case 4 : /* fall through */
2001 case 5 : /* fall through */
2002 case 6 : /* fall through */
2003 case 7 : /* fall through */
2004 case 8 : /* fall through */
2005 case 9 : /* fall through */
2006 case 10 : /* fall through */
2007 case 11 : /* fall through */
2008 case 12 : /* fall through */
2009 case 13 : /* fall through */
2010 case 14 : itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10;
2011 case 15 : itype = CRISV10F_INSN_MOVE_C_SPRV10_P13; goto extract_sfmt_move_c_sprv10_p8;
2012 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2013 }
2014 }
2015 case 14 :
2016 {
2017 unsigned int val = (((insn >> 0) & (15 << 0)));
2018 switch (val)
2019 {
2020 case 0 : /* fall through */
2021 case 1 : /* fall through */
2022 case 2 : /* fall through */
2023 case 3 : /* fall through */
2024 case 4 : /* fall through */
2025 case 5 : /* fall through */
2026 case 6 : /* fall through */
2027 case 7 : /* fall through */
2028 case 8 : /* fall through */
2029 case 9 : /* fall through */
2030 case 10 : /* fall through */
2031 case 11 : /* fall through */
2032 case 12 : /* fall through */
2033 case 13 : /* fall through */
2034 case 14 : itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10;
2035 case 15 : itype = CRISV10F_INSN_MOVE_C_SPRV10_P14; goto extract_sfmt_move_c_sprv10_p8;
2036 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2037 }
2038 }
2039 case 15 :
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 : itype = CRISV10F_INSN_MOVE_M_SPRV10; goto extract_sfmt_move_m_sprv10;
2059 case 15 : itype = CRISV10F_INSN_MOVE_C_SPRV10_P15; goto extract_sfmt_move_c_sprv10_p8;
2060 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2061 }
2062 }
2063 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2064 }
2065 }
2066 case 228 :
2067 {
2068 unsigned int val = (((insn >> 0) & (15 << 0)));
2069 switch (val)
2070 {
2071 case 0 : /* fall through */
2072 case 1 : /* fall through */
2073 case 2 : /* fall through */
2074 case 3 : /* fall through */
2075 case 4 : /* fall through */
2076 case 5 : /* fall through */
2077 case 6 : /* fall through */
2078 case 7 : /* fall through */
2079 case 8 : /* fall through */
2080 case 9 : /* fall through */
2081 case 10 : /* fall through */
2082 case 11 : /* fall through */
2083 case 12 : /* fall through */
2084 case 13 : /* fall through */
2085 case 14 : itype = CRISV10F_INSN_MOVE_M_B_M; goto extract_sfmt_move_m_b_m;
2086 case 15 : itype = CRISV10F_INSN_MOVECBR; goto extract_sfmt_movecbr;
2087 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2088 }
2089 }
2090 case 229 :
2091 {
2092 unsigned int val = (((insn >> 0) & (15 << 0)));
2093 switch (val)
2094 {
2095 case 0 : /* fall through */
2096 case 1 : /* fall through */
2097 case 2 : /* fall through */
2098 case 3 : /* fall through */
2099 case 4 : /* fall through */
2100 case 5 : /* fall through */
2101 case 6 : /* fall through */
2102 case 7 : /* fall through */
2103 case 8 : /* fall through */
2104 case 9 : /* fall through */
2105 case 10 : /* fall through */
2106 case 11 : /* fall through */
2107 case 12 : /* fall through */
2108 case 13 : /* fall through */
2109 case 14 : itype = CRISV10F_INSN_MOVE_M_W_M; goto extract_sfmt_move_m_w_m;
2110 case 15 : itype = CRISV10F_INSN_MOVECWR; goto extract_sfmt_movecwr;
2111 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2112 }
2113 }
2114 case 230 :
2115 {
2116 unsigned int val = (((insn >> 0) & (15 << 0)));
2117 switch (val)
2118 {
2119 case 0 : /* fall through */
2120 case 1 : /* fall through */
2121 case 2 : /* fall through */
2122 case 3 : /* fall through */
2123 case 4 : /* fall through */
2124 case 5 : /* fall through */
2125 case 6 : /* fall through */
2126 case 7 : /* fall through */
2127 case 8 : /* fall through */
2128 case 9 : /* fall through */
2129 case 10 : /* fall through */
2130 case 11 : /* fall through */
2131 case 12 : /* fall through */
2132 case 13 : /* fall through */
2133 case 14 : itype = CRISV10F_INSN_MOVE_M_D_M; goto extract_sfmt_move_m_d_m;
2134 case 15 : itype = CRISV10F_INSN_MOVECDR; goto extract_sfmt_movecdr;
2135 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2136 }
2137 }
2138 case 232 :
2139 {
2140 unsigned int val = (((insn >> 0) & (15 << 0)));
2141 switch (val)
2142 {
2143 case 0 : /* fall through */
2144 case 1 : /* fall through */
2145 case 2 : /* fall through */
2146 case 3 : /* fall through */
2147 case 4 : /* fall through */
2148 case 5 : /* fall through */
2149 case 6 : /* fall through */
2150 case 7 : /* fall through */
2151 case 8 : /* fall through */
2152 case 9 : /* fall through */
2153 case 10 : /* fall through */
2154 case 11 : /* fall through */
2155 case 12 : /* fall through */
2156 case 13 : /* fall through */
2157 case 14 : itype = CRISV10F_INSN_SUB_M_B_M; goto extract_sfmt_add_m_b_m;
2158 case 15 : itype = CRISV10F_INSN_SUBCBR; goto extract_sfmt_addcbr;
2159 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2160 }
2161 }
2162 case 233 :
2163 {
2164 unsigned int val = (((insn >> 0) & (15 << 0)));
2165 switch (val)
2166 {
2167 case 0 : /* fall through */
2168 case 1 : /* fall through */
2169 case 2 : /* fall through */
2170 case 3 : /* fall through */
2171 case 4 : /* fall through */
2172 case 5 : /* fall through */
2173 case 6 : /* fall through */
2174 case 7 : /* fall through */
2175 case 8 : /* fall through */
2176 case 9 : /* fall through */
2177 case 10 : /* fall through */
2178 case 11 : /* fall through */
2179 case 12 : /* fall through */
2180 case 13 : /* fall through */
2181 case 14 : itype = CRISV10F_INSN_SUB_M_W_M; goto extract_sfmt_add_m_w_m;
2182 case 15 : itype = CRISV10F_INSN_SUBCWR; goto extract_sfmt_addcwr;
2183 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2184 }
2185 }
2186 case 234 :
2187 {
2188 unsigned int val = (((insn >> 0) & (15 << 0)));
2189 switch (val)
2190 {
2191 case 0 : /* fall through */
2192 case 1 : /* fall through */
2193 case 2 : /* fall through */
2194 case 3 : /* fall through */
2195 case 4 : /* fall through */
2196 case 5 : /* fall through */
2197 case 6 : /* fall through */
2198 case 7 : /* fall through */
2199 case 8 : /* fall through */
2200 case 9 : /* fall through */
2201 case 10 : /* fall through */
2202 case 11 : /* fall through */
2203 case 12 : /* fall through */
2204 case 13 : /* fall through */
2205 case 14 : itype = CRISV10F_INSN_SUB_M_D_M; goto extract_sfmt_add_m_d_m;
2206 case 15 : itype = CRISV10F_INSN_SUBCDR; goto extract_sfmt_addcdr;
2207 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2208 }
2209 }
2210 case 236 :
2211 {
2212 unsigned int val = (((insn >> 0) & (15 << 0)));
2213 switch (val)
2214 {
2215 case 0 : /* fall through */
2216 case 1 : /* fall through */
2217 case 2 : /* fall through */
2218 case 3 : /* fall through */
2219 case 4 : /* fall through */
2220 case 5 : /* fall through */
2221 case 6 : /* fall through */
2222 case 7 : /* fall through */
2223 case 8 : /* fall through */
2224 case 9 : /* fall through */
2225 case 10 : /* fall through */
2226 case 11 : /* fall through */
2227 case 12 : /* fall through */
2228 case 13 : /* fall through */
2229 case 14 : itype = CRISV10F_INSN_CMP_M_B_M; goto extract_sfmt_cmp_m_b_m;
2230 case 15 : itype = CRISV10F_INSN_CMPCBR; goto extract_sfmt_cmpcbr;
2231 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2232 }
2233 }
2234 case 237 :
2235 {
2236 unsigned int val = (((insn >> 0) & (15 << 0)));
2237 switch (val)
2238 {
2239 case 0 : /* fall through */
2240 case 1 : /* fall through */
2241 case 2 : /* fall through */
2242 case 3 : /* fall through */
2243 case 4 : /* fall through */
2244 case 5 : /* fall through */
2245 case 6 : /* fall through */
2246 case 7 : /* fall through */
2247 case 8 : /* fall through */
2248 case 9 : /* fall through */
2249 case 10 : /* fall through */
2250 case 11 : /* fall through */
2251 case 12 : /* fall through */
2252 case 13 : /* fall through */
2253 case 14 : itype = CRISV10F_INSN_CMP_M_W_M; goto extract_sfmt_cmp_m_w_m;
2254 case 15 : itype = CRISV10F_INSN_CMPCWR; goto extract_sfmt_cmpcwr;
2255 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2256 }
2257 }
2258 case 238 :
2259 {
2260 unsigned int val = (((insn >> 0) & (15 << 0)));
2261 switch (val)
2262 {
2263 case 0 : /* fall through */
2264 case 1 : /* fall through */
2265 case 2 : /* fall through */
2266 case 3 : /* fall through */
2267 case 4 : /* fall through */
2268 case 5 : /* fall through */
2269 case 6 : /* fall through */
2270 case 7 : /* fall through */
2271 case 8 : /* fall through */
2272 case 9 : /* fall through */
2273 case 10 : /* fall through */
2274 case 11 : /* fall through */
2275 case 12 : /* fall through */
2276 case 13 : /* fall through */
2277 case 14 : itype = CRISV10F_INSN_CMP_M_D_M; goto extract_sfmt_cmp_m_d_m;
2278 case 15 : itype = CRISV10F_INSN_CMPCDR; goto extract_sfmt_cmpcdr;
2279 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2280 }
2281 }
2282 case 240 :
2283 {
2284 unsigned int val = (((insn >> 0) & (15 << 0)));
2285 switch (val)
2286 {
2287 case 0 : /* fall through */
2288 case 1 : /* fall through */
2289 case 2 : /* fall through */
2290 case 3 : /* fall through */
2291 case 4 : /* fall through */
2292 case 5 : /* fall through */
2293 case 6 : /* fall through */
2294 case 7 : /* fall through */
2295 case 8 : /* fall through */
2296 case 9 : /* fall through */
2297 case 10 : /* fall through */
2298 case 11 : /* fall through */
2299 case 12 : /* fall through */
2300 case 13 : /* fall through */
2301 case 14 : itype = CRISV10F_INSN_AND_M_B_M; goto extract_sfmt_and_m_b_m;
2302 case 15 : itype = CRISV10F_INSN_ANDCBR; goto extract_sfmt_andcbr;
2303 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2304 }
2305 }
2306 case 241 :
2307 {
2308 unsigned int val = (((insn >> 0) & (15 << 0)));
2309 switch (val)
2310 {
2311 case 0 : /* fall through */
2312 case 1 : /* fall through */
2313 case 2 : /* fall through */
2314 case 3 : /* fall through */
2315 case 4 : /* fall through */
2316 case 5 : /* fall through */
2317 case 6 : /* fall through */
2318 case 7 : /* fall through */
2319 case 8 : /* fall through */
2320 case 9 : /* fall through */
2321 case 10 : /* fall through */
2322 case 11 : /* fall through */
2323 case 12 : /* fall through */
2324 case 13 : /* fall through */
2325 case 14 : itype = CRISV10F_INSN_AND_M_W_M; goto extract_sfmt_and_m_w_m;
2326 case 15 : itype = CRISV10F_INSN_ANDCWR; goto extract_sfmt_andcwr;
2327 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2328 }
2329 }
2330 case 242 :
2331 {
2332 unsigned int val = (((insn >> 0) & (15 << 0)));
2333 switch (val)
2334 {
2335 case 0 : /* fall through */
2336 case 1 : /* fall through */
2337 case 2 : /* fall through */
2338 case 3 : /* fall through */
2339 case 4 : /* fall through */
2340 case 5 : /* fall through */
2341 case 6 : /* fall through */
2342 case 7 : /* fall through */
2343 case 8 : /* fall through */
2344 case 9 : /* fall through */
2345 case 10 : /* fall through */
2346 case 11 : /* fall through */
2347 case 12 : /* fall through */
2348 case 13 : /* fall through */
2349 case 14 : itype = CRISV10F_INSN_AND_M_D_M; goto extract_sfmt_and_m_d_m;
2350 case 15 : itype = CRISV10F_INSN_ANDCDR; goto extract_sfmt_andcdr;
2351 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2352 }
2353 }
2354 case 244 :
2355 {
2356 unsigned int val = (((insn >> 0) & (15 << 0)));
2357 switch (val)
2358 {
2359 case 0 : /* fall through */
2360 case 1 : /* fall through */
2361 case 2 : /* fall through */
2362 case 3 : /* fall through */
2363 case 4 : /* fall through */
2364 case 5 : /* fall through */
2365 case 6 : /* fall through */
2366 case 7 : /* fall through */
2367 case 8 : /* fall through */
2368 case 9 : /* fall through */
2369 case 10 : /* fall through */
2370 case 11 : /* fall through */
2371 case 12 : /* fall through */
2372 case 13 : /* fall through */
2373 case 14 : itype = CRISV10F_INSN_OR_M_B_M; goto extract_sfmt_and_m_b_m;
2374 case 15 : itype = CRISV10F_INSN_ORCBR; goto extract_sfmt_andcbr;
2375 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2376 }
2377 }
2378 case 245 :
2379 {
2380 unsigned int val = (((insn >> 0) & (15 << 0)));
2381 switch (val)
2382 {
2383 case 0 : /* fall through */
2384 case 1 : /* fall through */
2385 case 2 : /* fall through */
2386 case 3 : /* fall through */
2387 case 4 : /* fall through */
2388 case 5 : /* fall through */
2389 case 6 : /* fall through */
2390 case 7 : /* fall through */
2391 case 8 : /* fall through */
2392 case 9 : /* fall through */
2393 case 10 : /* fall through */
2394 case 11 : /* fall through */
2395 case 12 : /* fall through */
2396 case 13 : /* fall through */
2397 case 14 : itype = CRISV10F_INSN_OR_M_W_M; goto extract_sfmt_and_m_w_m;
2398 case 15 : itype = CRISV10F_INSN_ORCWR; goto extract_sfmt_andcwr;
2399 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2400 }
2401 }
2402 case 246 :
2403 {
2404 unsigned int val = (((insn >> 0) & (15 << 0)));
2405 switch (val)
2406 {
2407 case 0 : /* fall through */
2408 case 1 : /* fall through */
2409 case 2 : /* fall through */
2410 case 3 : /* fall through */
2411 case 4 : /* fall through */
2412 case 5 : /* fall through */
2413 case 6 : /* fall through */
2414 case 7 : /* fall through */
2415 case 8 : /* fall through */
2416 case 9 : /* fall through */
2417 case 10 : /* fall through */
2418 case 11 : /* fall through */
2419 case 12 : /* fall through */
2420 case 13 : /* fall through */
2421 case 14 : itype = CRISV10F_INSN_OR_M_D_M; goto extract_sfmt_and_m_d_m;
2422 case 15 : itype = CRISV10F_INSN_ORCDR; goto extract_sfmt_andcdr;
2423 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2424 }
2425 }
2426 default : itype = CRISV10F_INSN_X_INVALID; goto extract_sfmt_empty;
2427 }
2428 }
2429 }
2430
2431 /* The instruction has been decoded, now extract the fields. */
2432
2433 extract_sfmt_empty:
2434 {
2435 const IDESC *idesc = &crisv10f_insn_data[itype];
2436 #define FLD(f) abuf->fields.fmt_empty.f
2437
2438
2439 /* Record the fields for the semantic handler. */
2440 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_empty", (char *) 0));
2441
2442 #undef FLD
2443 return idesc;
2444 }
2445
2446 extract_sfmt_nop:
2447 {
2448 const IDESC *idesc = &crisv10f_insn_data[itype];
2449 #define FLD(f) abuf->fields.fmt_empty.f
2450
2451
2452 /* Record the fields for the semantic handler. */
2453 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_nop", (char *) 0));
2454
2455 #undef FLD
2456 return idesc;
2457 }
2458
2459 extract_sfmt_move_b_r:
2460 {
2461 const IDESC *idesc = &crisv10f_insn_data[itype];
2462 CGEN_INSN_INT insn = base_insn;
2463 #define FLD(f) abuf->fields.sfmt_add_b_r.f
2464 UINT f_operand2;
2465 UINT f_operand1;
2466
2467 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2468 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2469
2470 /* Record the fields for the semantic handler. */
2471 FLD (f_operand1) = f_operand1;
2472 FLD (f_operand2) = f_operand2;
2473 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));
2474
2475 #if WITH_PROFILE_MODEL_P
2476 /* Record the fields for profiling. */
2477 if (PROFILE_MODEL_P (current_cpu))
2478 {
2479 FLD (in_Rs) = f_operand1;
2480 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
2481 }
2482 #endif
2483 #undef FLD
2484 return idesc;
2485 }
2486
2487 extract_sfmt_move_d_r:
2488 {
2489 const IDESC *idesc = &crisv10f_insn_data[itype];
2490 CGEN_INSN_INT insn = base_insn;
2491 #define FLD(f) abuf->fields.sfmt_add_b_r.f
2492 UINT f_operand2;
2493 UINT f_operand1;
2494
2495 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2496 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2497
2498 /* Record the fields for the semantic handler. */
2499 FLD (f_operand1) = f_operand1;
2500 FLD (f_operand2) = f_operand2;
2501 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));
2502
2503 #if WITH_PROFILE_MODEL_P
2504 /* Record the fields for profiling. */
2505 if (PROFILE_MODEL_P (current_cpu))
2506 {
2507 FLD (in_Rs) = f_operand1;
2508 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
2509 }
2510 #endif
2511 #undef FLD
2512 return idesc;
2513 }
2514
2515 extract_sfmt_movepcr:
2516 {
2517 const IDESC *idesc = &crisv10f_insn_data[itype];
2518 CGEN_INSN_INT insn = base_insn;
2519 #define FLD(f) abuf->fields.sfmt_moveq.f
2520 UINT f_operand2;
2521
2522 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2523
2524 /* Record the fields for the semantic handler. */
2525 FLD (f_operand2) = f_operand2;
2526 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movepcr", "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2527
2528 #if WITH_PROFILE_MODEL_P
2529 /* Record the fields for profiling. */
2530 if (PROFILE_MODEL_P (current_cpu))
2531 {
2532 FLD (out_Rd) = f_operand2;
2533 }
2534 #endif
2535 #undef FLD
2536 return idesc;
2537 }
2538
2539 extract_sfmt_moveq:
2540 {
2541 const IDESC *idesc = &crisv10f_insn_data[itype];
2542 CGEN_INSN_INT insn = base_insn;
2543 #define FLD(f) abuf->fields.sfmt_moveq.f
2544 UINT f_operand2;
2545 INT f_s6;
2546
2547 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2548 f_s6 = EXTRACT_LSB0_INT (insn, 16, 5, 6);
2549
2550 /* Record the fields for the semantic handler. */
2551 FLD (f_s6) = f_s6;
2552 FLD (f_operand2) = f_operand2;
2553 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));
2554
2555 #if WITH_PROFILE_MODEL_P
2556 /* Record the fields for profiling. */
2557 if (PROFILE_MODEL_P (current_cpu))
2558 {
2559 FLD (out_Rd) = f_operand2;
2560 }
2561 #endif
2562 #undef FLD
2563 return idesc;
2564 }
2565
2566 extract_sfmt_movs_b_r:
2567 {
2568 const IDESC *idesc = &crisv10f_insn_data[itype];
2569 CGEN_INSN_INT insn = base_insn;
2570 #define FLD(f) abuf->fields.sfmt_muls_b.f
2571 UINT f_operand2;
2572 UINT f_operand1;
2573
2574 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2575 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2576
2577 /* Record the fields for the semantic handler. */
2578 FLD (f_operand1) = f_operand1;
2579 FLD (f_operand2) = f_operand2;
2580 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));
2581
2582 #if WITH_PROFILE_MODEL_P
2583 /* Record the fields for profiling. */
2584 if (PROFILE_MODEL_P (current_cpu))
2585 {
2586 FLD (in_Rs) = f_operand1;
2587 FLD (out_Rd) = f_operand2;
2588 }
2589 #endif
2590 #undef FLD
2591 return idesc;
2592 }
2593
2594 extract_sfmt_movecbr:
2595 {
2596 const IDESC *idesc = &crisv10f_insn_data[itype];
2597 CGEN_INSN_INT insn = base_insn;
2598 #define FLD(f) abuf->fields.sfmt_addcbr.f
2599 INT f_indir_pc__byte;
2600 UINT f_operand2;
2601 /* Contents of trailing part of insn. */
2602 UINT word_1;
2603
2604 word_1 = GETIMEMUHI (current_cpu, pc + 2);
2605 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
2606 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2607
2608 /* Record the fields for the semantic handler. */
2609 FLD (f_operand2) = f_operand2;
2610 FLD (f_indir_pc__byte) = f_indir_pc__byte;
2611 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));
2612
2613 #if WITH_PROFILE_MODEL_P
2614 /* Record the fields for profiling. */
2615 if (PROFILE_MODEL_P (current_cpu))
2616 {
2617 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
2618 }
2619 #endif
2620 #undef FLD
2621 return idesc;
2622 }
2623
2624 extract_sfmt_movecwr:
2625 {
2626 const IDESC *idesc = &crisv10f_insn_data[itype];
2627 CGEN_INSN_INT insn = base_insn;
2628 #define FLD(f) abuf->fields.sfmt_addcwr.f
2629 INT f_indir_pc__word;
2630 UINT f_operand2;
2631 /* Contents of trailing part of insn. */
2632 UINT word_1;
2633
2634 word_1 = GETIMEMUHI (current_cpu, pc + 2);
2635 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
2636 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2637
2638 /* Record the fields for the semantic handler. */
2639 FLD (f_operand2) = f_operand2;
2640 FLD (f_indir_pc__word) = f_indir_pc__word;
2641 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));
2642
2643 #if WITH_PROFILE_MODEL_P
2644 /* Record the fields for profiling. */
2645 if (PROFILE_MODEL_P (current_cpu))
2646 {
2647 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
2648 }
2649 #endif
2650 #undef FLD
2651 return idesc;
2652 }
2653
2654 extract_sfmt_movecdr:
2655 {
2656 const IDESC *idesc = &crisv10f_insn_data[itype];
2657 CGEN_INSN_INT insn = base_insn;
2658 #define FLD(f) abuf->fields.sfmt_bound_cd.f
2659 INT f_indir_pc__dword;
2660 UINT f_operand2;
2661 /* Contents of trailing part of insn. */
2662 UINT word_1;
2663
2664 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2665 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
2666 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2667
2668 /* Record the fields for the semantic handler. */
2669 FLD (f_indir_pc__dword) = f_indir_pc__dword;
2670 FLD (f_operand2) = f_operand2;
2671 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));
2672
2673 #if WITH_PROFILE_MODEL_P
2674 /* Record the fields for profiling. */
2675 if (PROFILE_MODEL_P (current_cpu))
2676 {
2677 FLD (out_Rd) = f_operand2;
2678 }
2679 #endif
2680 #undef FLD
2681 return idesc;
2682 }
2683
2684 extract_sfmt_movscbr:
2685 {
2686 const IDESC *idesc = &crisv10f_insn_data[itype];
2687 CGEN_INSN_INT insn = base_insn;
2688 #define FLD(f) abuf->fields.sfmt_bound_cb.f
2689 UINT f_operand2;
2690 INT f_indir_pc__byte;
2691 /* Contents of trailing part of insn. */
2692 UINT word_1;
2693
2694 word_1 = GETIMEMUHI (current_cpu, pc + 2);
2695 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2696 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
2697
2698 /* Record the fields for the semantic handler. */
2699 FLD (f_indir_pc__byte) = f_indir_pc__byte;
2700 FLD (f_operand2) = f_operand2;
2701 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));
2702
2703 #if WITH_PROFILE_MODEL_P
2704 /* Record the fields for profiling. */
2705 if (PROFILE_MODEL_P (current_cpu))
2706 {
2707 FLD (out_Rd) = f_operand2;
2708 }
2709 #endif
2710 #undef FLD
2711 return idesc;
2712 }
2713
2714 extract_sfmt_movscwr:
2715 {
2716 const IDESC *idesc = &crisv10f_insn_data[itype];
2717 CGEN_INSN_INT insn = base_insn;
2718 #define FLD(f) abuf->fields.sfmt_bound_cw.f
2719 UINT f_operand2;
2720 INT f_indir_pc__word;
2721 /* Contents of trailing part of insn. */
2722 UINT word_1;
2723
2724 word_1 = GETIMEMUHI (current_cpu, pc + 2);
2725 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2726 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
2727
2728 /* Record the fields for the semantic handler. */
2729 FLD (f_indir_pc__word) = f_indir_pc__word;
2730 FLD (f_operand2) = f_operand2;
2731 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));
2732
2733 #if WITH_PROFILE_MODEL_P
2734 /* Record the fields for profiling. */
2735 if (PROFILE_MODEL_P (current_cpu))
2736 {
2737 FLD (out_Rd) = f_operand2;
2738 }
2739 #endif
2740 #undef FLD
2741 return idesc;
2742 }
2743
2744 extract_sfmt_movucbr:
2745 {
2746 const IDESC *idesc = &crisv10f_insn_data[itype];
2747 CGEN_INSN_INT insn = base_insn;
2748 #define FLD(f) abuf->fields.sfmt_bound_cb.f
2749 UINT f_operand2;
2750 INT f_indir_pc__byte;
2751 /* Contents of trailing part of insn. */
2752 UINT word_1;
2753
2754 word_1 = GETIMEMUHI (current_cpu, pc + 2);
2755 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2756 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
2757
2758 /* Record the fields for the semantic handler. */
2759 FLD (f_indir_pc__byte) = f_indir_pc__byte;
2760 FLD (f_operand2) = f_operand2;
2761 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));
2762
2763 #if WITH_PROFILE_MODEL_P
2764 /* Record the fields for profiling. */
2765 if (PROFILE_MODEL_P (current_cpu))
2766 {
2767 FLD (out_Rd) = f_operand2;
2768 }
2769 #endif
2770 #undef FLD
2771 return idesc;
2772 }
2773
2774 extract_sfmt_movucwr:
2775 {
2776 const IDESC *idesc = &crisv10f_insn_data[itype];
2777 CGEN_INSN_INT insn = base_insn;
2778 #define FLD(f) abuf->fields.sfmt_bound_cw.f
2779 UINT f_operand2;
2780 INT f_indir_pc__word;
2781 /* Contents of trailing part of insn. */
2782 UINT word_1;
2783
2784 word_1 = GETIMEMUHI (current_cpu, pc + 2);
2785 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2786 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
2787
2788 /* Record the fields for the semantic handler. */
2789 FLD (f_indir_pc__word) = f_indir_pc__word;
2790 FLD (f_operand2) = f_operand2;
2791 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));
2792
2793 #if WITH_PROFILE_MODEL_P
2794 /* Record the fields for profiling. */
2795 if (PROFILE_MODEL_P (current_cpu))
2796 {
2797 FLD (out_Rd) = f_operand2;
2798 }
2799 #endif
2800 #undef FLD
2801 return idesc;
2802 }
2803
2804 extract_sfmt_addq:
2805 {
2806 const IDESC *idesc = &crisv10f_insn_data[itype];
2807 CGEN_INSN_INT insn = base_insn;
2808 #define FLD(f) abuf->fields.sfmt_addq.f
2809 UINT f_operand2;
2810 UINT f_u6;
2811
2812 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2813 f_u6 = EXTRACT_LSB0_UINT (insn, 16, 5, 6);
2814
2815 /* Record the fields for the semantic handler. */
2816 FLD (f_operand2) = f_operand2;
2817 FLD (f_u6) = f_u6;
2818 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));
2819
2820 #if WITH_PROFILE_MODEL_P
2821 /* Record the fields for profiling. */
2822 if (PROFILE_MODEL_P (current_cpu))
2823 {
2824 FLD (in_Rd) = f_operand2;
2825 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
2826 }
2827 #endif
2828 #undef FLD
2829 return idesc;
2830 }
2831
2832 extract_sfmt_cmp_r_b_r:
2833 {
2834 const IDESC *idesc = &crisv10f_insn_data[itype];
2835 CGEN_INSN_INT insn = base_insn;
2836 #define FLD(f) abuf->fields.sfmt_add_b_r.f
2837 UINT f_operand2;
2838 UINT f_operand1;
2839
2840 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2841 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2842
2843 /* Record the fields for the semantic handler. */
2844 FLD (f_operand2) = f_operand2;
2845 FLD (f_operand1) = f_operand1;
2846 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));
2847
2848 #if WITH_PROFILE_MODEL_P
2849 /* Record the fields for profiling. */
2850 if (PROFILE_MODEL_P (current_cpu))
2851 {
2852 FLD (in_Rd) = f_operand2;
2853 FLD (in_Rs) = f_operand1;
2854 }
2855 #endif
2856 #undef FLD
2857 return idesc;
2858 }
2859
2860 extract_sfmt_cmp_m_b_m:
2861 {
2862 const IDESC *idesc = &crisv10f_insn_data[itype];
2863 CGEN_INSN_INT insn = base_insn;
2864 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2865 UINT f_operand2;
2866 UINT f_memmode;
2867 UINT f_operand1;
2868
2869 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2870 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2871 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2872
2873 /* Record the fields for the semantic handler. */
2874 FLD (f_operand2) = f_operand2;
2875 FLD (f_operand1) = f_operand1;
2876 FLD (f_memmode) = f_memmode;
2877 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));
2878
2879 #if WITH_PROFILE_MODEL_P
2880 /* Record the fields for profiling. */
2881 if (PROFILE_MODEL_P (current_cpu))
2882 {
2883 FLD (in_Rd) = f_operand2;
2884 FLD (in_Rs) = f_operand1;
2885 FLD (out_Rs) = f_operand1;
2886 }
2887 #endif
2888 #undef FLD
2889 return idesc;
2890 }
2891
2892 extract_sfmt_cmp_m_w_m:
2893 {
2894 const IDESC *idesc = &crisv10f_insn_data[itype];
2895 CGEN_INSN_INT insn = base_insn;
2896 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2897 UINT f_operand2;
2898 UINT f_memmode;
2899 UINT f_operand1;
2900
2901 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2902 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2903 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2904
2905 /* Record the fields for the semantic handler. */
2906 FLD (f_operand2) = f_operand2;
2907 FLD (f_operand1) = f_operand1;
2908 FLD (f_memmode) = f_memmode;
2909 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));
2910
2911 #if WITH_PROFILE_MODEL_P
2912 /* Record the fields for profiling. */
2913 if (PROFILE_MODEL_P (current_cpu))
2914 {
2915 FLD (in_Rd) = f_operand2;
2916 FLD (in_Rs) = f_operand1;
2917 FLD (out_Rs) = f_operand1;
2918 }
2919 #endif
2920 #undef FLD
2921 return idesc;
2922 }
2923
2924 extract_sfmt_cmp_m_d_m:
2925 {
2926 const IDESC *idesc = &crisv10f_insn_data[itype];
2927 CGEN_INSN_INT insn = base_insn;
2928 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2929 UINT f_operand2;
2930 UINT f_memmode;
2931 UINT f_operand1;
2932
2933 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2934 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2935 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2936
2937 /* Record the fields for the semantic handler. */
2938 FLD (f_operand2) = f_operand2;
2939 FLD (f_operand1) = f_operand1;
2940 FLD (f_memmode) = f_memmode;
2941 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));
2942
2943 #if WITH_PROFILE_MODEL_P
2944 /* Record the fields for profiling. */
2945 if (PROFILE_MODEL_P (current_cpu))
2946 {
2947 FLD (in_Rd) = f_operand2;
2948 FLD (in_Rs) = f_operand1;
2949 FLD (out_Rs) = f_operand1;
2950 }
2951 #endif
2952 #undef FLD
2953 return idesc;
2954 }
2955
2956 extract_sfmt_cmpcbr:
2957 {
2958 const IDESC *idesc = &crisv10f_insn_data[itype];
2959 CGEN_INSN_INT insn = base_insn;
2960 #define FLD(f) abuf->fields.sfmt_bound_cb.f
2961 INT f_indir_pc__byte;
2962 UINT f_operand2;
2963 /* Contents of trailing part of insn. */
2964 UINT word_1;
2965
2966 word_1 = GETIMEMUHI (current_cpu, pc + 2);
2967 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
2968 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2969
2970 /* Record the fields for the semantic handler. */
2971 FLD (f_operand2) = f_operand2;
2972 FLD (f_indir_pc__byte) = f_indir_pc__byte;
2973 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));
2974
2975 #if WITH_PROFILE_MODEL_P
2976 /* Record the fields for profiling. */
2977 if (PROFILE_MODEL_P (current_cpu))
2978 {
2979 FLD (in_Rd) = f_operand2;
2980 }
2981 #endif
2982 #undef FLD
2983 return idesc;
2984 }
2985
2986 extract_sfmt_cmpcwr:
2987 {
2988 const IDESC *idesc = &crisv10f_insn_data[itype];
2989 CGEN_INSN_INT insn = base_insn;
2990 #define FLD(f) abuf->fields.sfmt_bound_cw.f
2991 INT f_indir_pc__word;
2992 UINT f_operand2;
2993 /* Contents of trailing part of insn. */
2994 UINT word_1;
2995
2996 word_1 = GETIMEMUHI (current_cpu, pc + 2);
2997 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
2998 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2999
3000 /* Record the fields for the semantic handler. */
3001 FLD (f_operand2) = f_operand2;
3002 FLD (f_indir_pc__word) = f_indir_pc__word;
3003 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));
3004
3005 #if WITH_PROFILE_MODEL_P
3006 /* Record the fields for profiling. */
3007 if (PROFILE_MODEL_P (current_cpu))
3008 {
3009 FLD (in_Rd) = f_operand2;
3010 }
3011 #endif
3012 #undef FLD
3013 return idesc;
3014 }
3015
3016 extract_sfmt_cmpcdr:
3017 {
3018 const IDESC *idesc = &crisv10f_insn_data[itype];
3019 CGEN_INSN_INT insn = base_insn;
3020 #define FLD(f) abuf->fields.sfmt_bound_cd.f
3021 INT f_indir_pc__dword;
3022 UINT f_operand2;
3023 /* Contents of trailing part of insn. */
3024 UINT word_1;
3025
3026 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3027 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
3028 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3029
3030 /* Record the fields for the semantic handler. */
3031 FLD (f_operand2) = f_operand2;
3032 FLD (f_indir_pc__dword) = f_indir_pc__dword;
3033 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));
3034
3035 #if WITH_PROFILE_MODEL_P
3036 /* Record the fields for profiling. */
3037 if (PROFILE_MODEL_P (current_cpu))
3038 {
3039 FLD (in_Rd) = f_operand2;
3040 }
3041 #endif
3042 #undef FLD
3043 return idesc;
3044 }
3045
3046 extract_sfmt_cmpq:
3047 {
3048 const IDESC *idesc = &crisv10f_insn_data[itype];
3049 CGEN_INSN_INT insn = base_insn;
3050 #define FLD(f) abuf->fields.sfmt_andq.f
3051 UINT f_operand2;
3052 INT f_s6;
3053
3054 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3055 f_s6 = EXTRACT_LSB0_INT (insn, 16, 5, 6);
3056
3057 /* Record the fields for the semantic handler. */
3058 FLD (f_operand2) = f_operand2;
3059 FLD (f_s6) = f_s6;
3060 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));
3061
3062 #if WITH_PROFILE_MODEL_P
3063 /* Record the fields for profiling. */
3064 if (PROFILE_MODEL_P (current_cpu))
3065 {
3066 FLD (in_Rd) = f_operand2;
3067 }
3068 #endif
3069 #undef FLD
3070 return idesc;
3071 }
3072
3073 extract_sfmt_cmpucbr:
3074 {
3075 const IDESC *idesc = &crisv10f_insn_data[itype];
3076 CGEN_INSN_INT insn = base_insn;
3077 #define FLD(f) abuf->fields.sfmt_bound_cb.f
3078 INT f_indir_pc__byte;
3079 UINT f_operand2;
3080 /* Contents of trailing part of insn. */
3081 UINT word_1;
3082
3083 word_1 = GETIMEMUHI (current_cpu, pc + 2);
3084 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
3085 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3086
3087 /* Record the fields for the semantic handler. */
3088 FLD (f_operand2) = f_operand2;
3089 FLD (f_indir_pc__byte) = f_indir_pc__byte;
3090 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));
3091
3092 #if WITH_PROFILE_MODEL_P
3093 /* Record the fields for profiling. */
3094 if (PROFILE_MODEL_P (current_cpu))
3095 {
3096 FLD (in_Rd) = f_operand2;
3097 }
3098 #endif
3099 #undef FLD
3100 return idesc;
3101 }
3102
3103 extract_sfmt_cmpucwr:
3104 {
3105 const IDESC *idesc = &crisv10f_insn_data[itype];
3106 CGEN_INSN_INT insn = base_insn;
3107 #define FLD(f) abuf->fields.sfmt_bound_cw.f
3108 INT f_indir_pc__word;
3109 UINT f_operand2;
3110 /* Contents of trailing part of insn. */
3111 UINT word_1;
3112
3113 word_1 = GETIMEMUHI (current_cpu, pc + 2);
3114 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
3115 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3116
3117 /* Record the fields for the semantic handler. */
3118 FLD (f_operand2) = f_operand2;
3119 FLD (f_indir_pc__word) = f_indir_pc__word;
3120 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));
3121
3122 #if WITH_PROFILE_MODEL_P
3123 /* Record the fields for profiling. */
3124 if (PROFILE_MODEL_P (current_cpu))
3125 {
3126 FLD (in_Rd) = f_operand2;
3127 }
3128 #endif
3129 #undef FLD
3130 return idesc;
3131 }
3132
3133 extract_sfmt_move_m_b_m:
3134 {
3135 const IDESC *idesc = &crisv10f_insn_data[itype];
3136 CGEN_INSN_INT insn = base_insn;
3137 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3138 UINT f_operand2;
3139 UINT f_memmode;
3140 UINT f_operand1;
3141
3142 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3143 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3144 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3145
3146 /* Record the fields for the semantic handler. */
3147 FLD (f_operand1) = f_operand1;
3148 FLD (f_operand2) = f_operand2;
3149 FLD (f_memmode) = f_memmode;
3150 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));
3151
3152 #if WITH_PROFILE_MODEL_P
3153 /* Record the fields for profiling. */
3154 if (PROFILE_MODEL_P (current_cpu))
3155 {
3156 FLD (in_Rs) = f_operand1;
3157 FLD (out_Rs) = f_operand1;
3158 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)));
3159 }
3160 #endif
3161 #undef FLD
3162 return idesc;
3163 }
3164
3165 extract_sfmt_move_m_w_m:
3166 {
3167 const IDESC *idesc = &crisv10f_insn_data[itype];
3168 CGEN_INSN_INT insn = base_insn;
3169 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3170 UINT f_operand2;
3171 UINT f_memmode;
3172 UINT f_operand1;
3173
3174 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3175 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3176 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3177
3178 /* Record the fields for the semantic handler. */
3179 FLD (f_operand1) = f_operand1;
3180 FLD (f_operand2) = f_operand2;
3181 FLD (f_memmode) = f_memmode;
3182 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));
3183
3184 #if WITH_PROFILE_MODEL_P
3185 /* Record the fields for profiling. */
3186 if (PROFILE_MODEL_P (current_cpu))
3187 {
3188 FLD (in_Rs) = f_operand1;
3189 FLD (out_Rs) = f_operand1;
3190 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)));
3191 }
3192 #endif
3193 #undef FLD
3194 return idesc;
3195 }
3196
3197 extract_sfmt_move_m_d_m:
3198 {
3199 const IDESC *idesc = &crisv10f_insn_data[itype];
3200 CGEN_INSN_INT insn = base_insn;
3201 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3202 UINT f_operand2;
3203 UINT f_memmode;
3204 UINT f_operand1;
3205
3206 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3207 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3208 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3209
3210 /* Record the fields for the semantic handler. */
3211 FLD (f_operand1) = f_operand1;
3212 FLD (f_operand2) = f_operand2;
3213 FLD (f_memmode) = f_memmode;
3214 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));
3215
3216 #if WITH_PROFILE_MODEL_P
3217 /* Record the fields for profiling. */
3218 if (PROFILE_MODEL_P (current_cpu))
3219 {
3220 FLD (in_Rs) = f_operand1;
3221 FLD (out_Rs) = f_operand1;
3222 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)));
3223 }
3224 #endif
3225 #undef FLD
3226 return idesc;
3227 }
3228
3229 extract_sfmt_movs_m_b_m:
3230 {
3231 const IDESC *idesc = &crisv10f_insn_data[itype];
3232 CGEN_INSN_INT insn = base_insn;
3233 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3234 UINT f_operand2;
3235 UINT f_memmode;
3236 UINT f_operand1;
3237
3238 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3239 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3240 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3241
3242 /* Record the fields for the semantic handler. */
3243 FLD (f_operand1) = f_operand1;
3244 FLD (f_memmode) = f_memmode;
3245 FLD (f_operand2) = f_operand2;
3246 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));
3247
3248 #if WITH_PROFILE_MODEL_P
3249 /* Record the fields for profiling. */
3250 if (PROFILE_MODEL_P (current_cpu))
3251 {
3252 FLD (in_Rs) = f_operand1;
3253 FLD (out_Rd) = f_operand2;
3254 FLD (out_Rs) = f_operand1;
3255 }
3256 #endif
3257 #undef FLD
3258 return idesc;
3259 }
3260
3261 extract_sfmt_movs_m_w_m:
3262 {
3263 const IDESC *idesc = &crisv10f_insn_data[itype];
3264 CGEN_INSN_INT insn = base_insn;
3265 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3266 UINT f_operand2;
3267 UINT f_memmode;
3268 UINT f_operand1;
3269
3270 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3271 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3272 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3273
3274 /* Record the fields for the semantic handler. */
3275 FLD (f_operand1) = f_operand1;
3276 FLD (f_memmode) = f_memmode;
3277 FLD (f_operand2) = f_operand2;
3278 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));
3279
3280 #if WITH_PROFILE_MODEL_P
3281 /* Record the fields for profiling. */
3282 if (PROFILE_MODEL_P (current_cpu))
3283 {
3284 FLD (in_Rs) = f_operand1;
3285 FLD (out_Rd) = f_operand2;
3286 FLD (out_Rs) = f_operand1;
3287 }
3288 #endif
3289 #undef FLD
3290 return idesc;
3291 }
3292
3293 extract_sfmt_move_r_sprv10:
3294 {
3295 const IDESC *idesc = &crisv10f_insn_data[itype];
3296 CGEN_INSN_INT insn = base_insn;
3297 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
3298 UINT f_operand2;
3299 UINT f_operand1;
3300
3301 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3302 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3303
3304 /* Record the fields for the semantic handler. */
3305 FLD (f_operand1) = f_operand1;
3306 FLD (f_operand2) = f_operand2;
3307 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));
3308
3309 #if WITH_PROFILE_MODEL_P
3310 /* Record the fields for profiling. */
3311 if (PROFILE_MODEL_P (current_cpu))
3312 {
3313 FLD (in_Rs) = f_operand1;
3314 FLD (out_Pd) = f_operand2;
3315 }
3316 #endif
3317 #undef FLD
3318 return idesc;
3319 }
3320
3321 extract_sfmt_move_spr_rv10:
3322 {
3323 const IDESC *idesc = &crisv10f_insn_data[itype];
3324 CGEN_INSN_INT insn = base_insn;
3325 #define FLD(f) abuf->fields.sfmt_move_spr_rv10.f
3326 UINT f_operand2;
3327 UINT f_operand1;
3328
3329 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3330 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3331
3332 /* Record the fields for the semantic handler. */
3333 FLD (f_operand2) = f_operand2;
3334 FLD (f_operand1) = f_operand1;
3335 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));
3336
3337 #if WITH_PROFILE_MODEL_P
3338 /* Record the fields for profiling. */
3339 if (PROFILE_MODEL_P (current_cpu))
3340 {
3341 FLD (in_Ps) = f_operand2;
3342 FLD (out_h_gr_SI_index_of__DFLT_Rs) = FLD (f_operand1);
3343 }
3344 #endif
3345 #undef FLD
3346 return idesc;
3347 }
3348
3349 extract_sfmt_ret_type:
3350 {
3351 const IDESC *idesc = &crisv10f_insn_data[itype];
3352 CGEN_INSN_INT insn = base_insn;
3353 #define FLD(f) abuf->fields.sfmt_move_spr_rv10.f
3354 UINT f_operand2;
3355
3356 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3357
3358 /* Record the fields for the semantic handler. */
3359 FLD (f_operand2) = f_operand2;
3360 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ret_type", "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
3361
3362 #if WITH_PROFILE_MODEL_P
3363 /* Record the fields for profiling. */
3364 if (PROFILE_MODEL_P (current_cpu))
3365 {
3366 FLD (in_Ps) = f_operand2;
3367 }
3368 #endif
3369 #undef FLD
3370 return idesc;
3371 }
3372
3373 extract_sfmt_move_m_sprv10:
3374 {
3375 const IDESC *idesc = &crisv10f_insn_data[itype];
3376 CGEN_INSN_INT insn = base_insn;
3377 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
3378 UINT f_operand2;
3379 UINT f_memmode;
3380 UINT f_operand1;
3381
3382 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3383 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3384 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3385
3386 /* Record the fields for the semantic handler. */
3387 FLD (f_operand1) = f_operand1;
3388 FLD (f_operand2) = f_operand2;
3389 FLD (f_memmode) = f_memmode;
3390 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));
3391
3392 #if WITH_PROFILE_MODEL_P
3393 /* Record the fields for profiling. */
3394 if (PROFILE_MODEL_P (current_cpu))
3395 {
3396 FLD (in_Rs) = f_operand1;
3397 FLD (out_Pd) = f_operand2;
3398 FLD (out_Rs) = f_operand1;
3399 }
3400 #endif
3401 #undef FLD
3402 return idesc;
3403 }
3404
3405 extract_sfmt_move_c_sprv10_p0:
3406 {
3407 const IDESC *idesc = &crisv10f_insn_data[itype];
3408 CGEN_INSN_INT insn = base_insn;
3409 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p0.f
3410 UINT f_operand2;
3411 INT f_indir_pc__byte;
3412 /* Contents of trailing part of insn. */
3413 UINT word_1;
3414
3415 word_1 = GETIMEMUHI (current_cpu, pc + 2);
3416 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3417 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
3418
3419 /* Record the fields for the semantic handler. */
3420 FLD (f_indir_pc__byte) = f_indir_pc__byte;
3421 FLD (f_operand2) = f_operand2;
3422 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));
3423
3424 #if WITH_PROFILE_MODEL_P
3425 /* Record the fields for profiling. */
3426 if (PROFILE_MODEL_P (current_cpu))
3427 {
3428 FLD (out_Pd) = f_operand2;
3429 }
3430 #endif
3431 #undef FLD
3432 return idesc;
3433 }
3434
3435 extract_sfmt_move_c_sprv10_p4:
3436 {
3437 const IDESC *idesc = &crisv10f_insn_data[itype];
3438 CGEN_INSN_INT insn = base_insn;
3439 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p4.f
3440 UINT f_operand2;
3441 INT f_indir_pc__word;
3442 /* Contents of trailing part of insn. */
3443 UINT word_1;
3444
3445 word_1 = GETIMEMUHI (current_cpu, pc + 2);
3446 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3447 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
3448
3449 /* Record the fields for the semantic handler. */
3450 FLD (f_indir_pc__word) = f_indir_pc__word;
3451 FLD (f_operand2) = f_operand2;
3452 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));
3453
3454 #if WITH_PROFILE_MODEL_P
3455 /* Record the fields for profiling. */
3456 if (PROFILE_MODEL_P (current_cpu))
3457 {
3458 FLD (out_Pd) = f_operand2;
3459 }
3460 #endif
3461 #undef FLD
3462 return idesc;
3463 }
3464
3465 extract_sfmt_move_c_sprv10_p8:
3466 {
3467 const IDESC *idesc = &crisv10f_insn_data[itype];
3468 CGEN_INSN_INT insn = base_insn;
3469 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p8.f
3470 INT f_indir_pc__dword;
3471 UINT f_operand2;
3472 /* Contents of trailing part of insn. */
3473 UINT word_1;
3474
3475 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3476 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
3477 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3478
3479 /* Record the fields for the semantic handler. */
3480 FLD (f_indir_pc__dword) = f_indir_pc__dword;
3481 FLD (f_operand2) = f_operand2;
3482 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));
3483
3484 #if WITH_PROFILE_MODEL_P
3485 /* Record the fields for profiling. */
3486 if (PROFILE_MODEL_P (current_cpu))
3487 {
3488 FLD (out_Pd) = f_operand2;
3489 }
3490 #endif
3491 #undef FLD
3492 return idesc;
3493 }
3494
3495 extract_sfmt_move_spr_mv10:
3496 {
3497 const IDESC *idesc = &crisv10f_insn_data[itype];
3498 CGEN_INSN_INT insn = base_insn;
3499 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
3500 UINT f_operand2;
3501 UINT f_memmode;
3502 UINT f_operand1;
3503
3504 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3505 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3506 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3507
3508 /* Record the fields for the semantic handler. */
3509 FLD (f_operand2) = f_operand2;
3510 FLD (f_operand1) = f_operand1;
3511 FLD (f_memmode) = f_memmode;
3512 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));
3513
3514 #if WITH_PROFILE_MODEL_P
3515 /* Record the fields for profiling. */
3516 if (PROFILE_MODEL_P (current_cpu))
3517 {
3518 FLD (in_Ps) = f_operand2;
3519 FLD (in_Rs) = f_operand1;
3520 FLD (out_Rs) = f_operand1;
3521 }
3522 #endif
3523 #undef FLD
3524 return idesc;
3525 }
3526
3527 extract_sfmt_sbfs:
3528 {
3529 const IDESC *idesc = &crisv10f_insn_data[itype];
3530 #define FLD(f) abuf->fields.fmt_empty.f
3531
3532
3533 /* Record the fields for the semantic handler. */
3534 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sbfs", (char *) 0));
3535
3536 #undef FLD
3537 return idesc;
3538 }
3539
3540 extract_sfmt_movem_r_m:
3541 {
3542 const IDESC *idesc = &crisv10f_insn_data[itype];
3543 CGEN_INSN_INT insn = base_insn;
3544 #define FLD(f) abuf->fields.sfmt_movem_r_m.f
3545 UINT f_operand2;
3546 UINT f_memmode;
3547 UINT f_operand1;
3548
3549 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3550 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3551 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3552
3553 /* Record the fields for the semantic handler. */
3554 FLD (f_operand2) = f_operand2;
3555 FLD (f_operand1) = f_operand1;
3556 FLD (f_memmode) = f_memmode;
3557 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));
3558
3559 #if WITH_PROFILE_MODEL_P
3560 /* Record the fields for profiling. */
3561 if (PROFILE_MODEL_P (current_cpu))
3562 {
3563 FLD (in_Rd) = f_operand2;
3564 FLD (in_Rs) = f_operand1;
3565 FLD (in_h_gr_SI_0) = 0;
3566 FLD (in_h_gr_SI_1) = 1;
3567 FLD (in_h_gr_SI_10) = 10;
3568 FLD (in_h_gr_SI_11) = 11;
3569 FLD (in_h_gr_SI_12) = 12;
3570 FLD (in_h_gr_SI_13) = 13;
3571 FLD (in_h_gr_SI_14) = 14;
3572 FLD (in_h_gr_SI_15) = 15;
3573 FLD (in_h_gr_SI_2) = 2;
3574 FLD (in_h_gr_SI_3) = 3;
3575 FLD (in_h_gr_SI_4) = 4;
3576 FLD (in_h_gr_SI_5) = 5;
3577 FLD (in_h_gr_SI_6) = 6;
3578 FLD (in_h_gr_SI_7) = 7;
3579 FLD (in_h_gr_SI_8) = 8;
3580 FLD (in_h_gr_SI_9) = 9;
3581 FLD (out_Rs) = f_operand1;
3582 }
3583 #endif
3584 #undef FLD
3585 return idesc;
3586 }
3587
3588 extract_sfmt_movem_m_r:
3589 {
3590 const IDESC *idesc = &crisv10f_insn_data[itype];
3591 CGEN_INSN_INT insn = base_insn;
3592 #define FLD(f) abuf->fields.sfmt_movem_m_r.f
3593 UINT f_operand2;
3594 UINT f_memmode;
3595 UINT f_operand1;
3596
3597 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3598 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3599 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3600
3601 /* Record the fields for the semantic handler. */
3602 FLD (f_operand2) = f_operand2;
3603 FLD (f_operand1) = f_operand1;
3604 FLD (f_memmode) = f_memmode;
3605 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));
3606
3607 #if WITH_PROFILE_MODEL_P
3608 /* Record the fields for profiling. */
3609 if (PROFILE_MODEL_P (current_cpu))
3610 {
3611 FLD (in_Rd) = f_operand2;
3612 FLD (in_Rs) = f_operand1;
3613 FLD (out_Rs) = f_operand1;
3614 FLD (out_h_gr_SI_0) = 0;
3615 FLD (out_h_gr_SI_1) = 1;
3616 FLD (out_h_gr_SI_10) = 10;
3617 FLD (out_h_gr_SI_11) = 11;
3618 FLD (out_h_gr_SI_12) = 12;
3619 FLD (out_h_gr_SI_13) = 13;
3620 FLD (out_h_gr_SI_14) = 14;
3621 FLD (out_h_gr_SI_2) = 2;
3622 FLD (out_h_gr_SI_3) = 3;
3623 FLD (out_h_gr_SI_4) = 4;
3624 FLD (out_h_gr_SI_5) = 5;
3625 FLD (out_h_gr_SI_6) = 6;
3626 FLD (out_h_gr_SI_7) = 7;
3627 FLD (out_h_gr_SI_8) = 8;
3628 FLD (out_h_gr_SI_9) = 9;
3629 }
3630 #endif
3631 #undef FLD
3632 return idesc;
3633 }
3634
3635 extract_sfmt_movem_m_pc:
3636 {
3637 const IDESC *idesc = &crisv10f_insn_data[itype];
3638 CGEN_INSN_INT insn = base_insn;
3639 #define FLD(f) abuf->fields.sfmt_movem_m_r.f
3640 UINT f_memmode;
3641 UINT f_operand1;
3642
3643 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3644 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3645
3646 /* Record the fields for the semantic handler. */
3647 FLD (f_operand1) = f_operand1;
3648 FLD (f_memmode) = f_memmode;
3649 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));
3650
3651 #if WITH_PROFILE_MODEL_P
3652 /* Record the fields for profiling. */
3653 if (PROFILE_MODEL_P (current_cpu))
3654 {
3655 FLD (in_Rs) = f_operand1;
3656 FLD (out_Rs) = f_operand1;
3657 FLD (out_h_gr_SI_0) = 0;
3658 FLD (out_h_gr_SI_1) = 1;
3659 FLD (out_h_gr_SI_10) = 10;
3660 FLD (out_h_gr_SI_11) = 11;
3661 FLD (out_h_gr_SI_12) = 12;
3662 FLD (out_h_gr_SI_13) = 13;
3663 FLD (out_h_gr_SI_14) = 14;
3664 FLD (out_h_gr_SI_2) = 2;
3665 FLD (out_h_gr_SI_3) = 3;
3666 FLD (out_h_gr_SI_4) = 4;
3667 FLD (out_h_gr_SI_5) = 5;
3668 FLD (out_h_gr_SI_6) = 6;
3669 FLD (out_h_gr_SI_7) = 7;
3670 FLD (out_h_gr_SI_8) = 8;
3671 FLD (out_h_gr_SI_9) = 9;
3672 }
3673 #endif
3674 #undef FLD
3675 return idesc;
3676 }
3677
3678 extract_sfmt_add_b_r:
3679 {
3680 const IDESC *idesc = &crisv10f_insn_data[itype];
3681 CGEN_INSN_INT insn = base_insn;
3682 #define FLD(f) abuf->fields.sfmt_add_b_r.f
3683 UINT f_operand2;
3684 UINT f_operand1;
3685
3686 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3687 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3688
3689 /* Record the fields for the semantic handler. */
3690 FLD (f_operand2) = f_operand2;
3691 FLD (f_operand1) = f_operand1;
3692 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));
3693
3694 #if WITH_PROFILE_MODEL_P
3695 /* Record the fields for profiling. */
3696 if (PROFILE_MODEL_P (current_cpu))
3697 {
3698 FLD (in_Rd) = f_operand2;
3699 FLD (in_Rs) = f_operand1;
3700 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3701 }
3702 #endif
3703 #undef FLD
3704 return idesc;
3705 }
3706
3707 extract_sfmt_add_d_r:
3708 {
3709 const IDESC *idesc = &crisv10f_insn_data[itype];
3710 CGEN_INSN_INT insn = base_insn;
3711 #define FLD(f) abuf->fields.sfmt_add_b_r.f
3712 UINT f_operand2;
3713 UINT f_operand1;
3714
3715 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3716 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3717
3718 /* Record the fields for the semantic handler. */
3719 FLD (f_operand2) = f_operand2;
3720 FLD (f_operand1) = f_operand1;
3721 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));
3722
3723 #if WITH_PROFILE_MODEL_P
3724 /* Record the fields for profiling. */
3725 if (PROFILE_MODEL_P (current_cpu))
3726 {
3727 FLD (in_Rd) = f_operand2;
3728 FLD (in_Rs) = f_operand1;
3729 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3730 }
3731 #endif
3732 #undef FLD
3733 return idesc;
3734 }
3735
3736 extract_sfmt_add_m_b_m:
3737 {
3738 const IDESC *idesc = &crisv10f_insn_data[itype];
3739 CGEN_INSN_INT insn = base_insn;
3740 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3741 UINT f_operand2;
3742 UINT f_memmode;
3743 UINT f_operand1;
3744
3745 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3746 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3747 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3748
3749 /* Record the fields for the semantic handler. */
3750 FLD (f_operand2) = f_operand2;
3751 FLD (f_operand1) = f_operand1;
3752 FLD (f_memmode) = f_memmode;
3753 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));
3754
3755 #if WITH_PROFILE_MODEL_P
3756 /* Record the fields for profiling. */
3757 if (PROFILE_MODEL_P (current_cpu))
3758 {
3759 FLD (in_Rd) = f_operand2;
3760 FLD (in_Rs) = f_operand1;
3761 FLD (out_Rs) = f_operand1;
3762 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)));
3763 }
3764 #endif
3765 #undef FLD
3766 return idesc;
3767 }
3768
3769 extract_sfmt_add_m_w_m:
3770 {
3771 const IDESC *idesc = &crisv10f_insn_data[itype];
3772 CGEN_INSN_INT insn = base_insn;
3773 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3774 UINT f_operand2;
3775 UINT f_memmode;
3776 UINT f_operand1;
3777
3778 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3779 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3780 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3781
3782 /* Record the fields for the semantic handler. */
3783 FLD (f_operand2) = f_operand2;
3784 FLD (f_operand1) = f_operand1;
3785 FLD (f_memmode) = f_memmode;
3786 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));
3787
3788 #if WITH_PROFILE_MODEL_P
3789 /* Record the fields for profiling. */
3790 if (PROFILE_MODEL_P (current_cpu))
3791 {
3792 FLD (in_Rd) = f_operand2;
3793 FLD (in_Rs) = f_operand1;
3794 FLD (out_Rs) = f_operand1;
3795 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)));
3796 }
3797 #endif
3798 #undef FLD
3799 return idesc;
3800 }
3801
3802 extract_sfmt_add_m_d_m:
3803 {
3804 const IDESC *idesc = &crisv10f_insn_data[itype];
3805 CGEN_INSN_INT insn = base_insn;
3806 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3807 UINT f_operand2;
3808 UINT f_memmode;
3809 UINT f_operand1;
3810
3811 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3812 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3813 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3814
3815 /* Record the fields for the semantic handler. */
3816 FLD (f_operand2) = f_operand2;
3817 FLD (f_operand1) = f_operand1;
3818 FLD (f_memmode) = f_memmode;
3819 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));
3820
3821 #if WITH_PROFILE_MODEL_P
3822 /* Record the fields for profiling. */
3823 if (PROFILE_MODEL_P (current_cpu))
3824 {
3825 FLD (in_Rd) = f_operand2;
3826 FLD (in_Rs) = f_operand1;
3827 FLD (out_Rs) = f_operand1;
3828 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)));
3829 }
3830 #endif
3831 #undef FLD
3832 return idesc;
3833 }
3834
3835 extract_sfmt_addcbr:
3836 {
3837 const IDESC *idesc = &crisv10f_insn_data[itype];
3838 CGEN_INSN_INT insn = base_insn;
3839 #define FLD(f) abuf->fields.sfmt_addcbr.f
3840 INT f_indir_pc__byte;
3841 UINT f_operand2;
3842 /* Contents of trailing part of insn. */
3843 UINT word_1;
3844
3845 word_1 = GETIMEMUHI (current_cpu, pc + 2);
3846 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
3847 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3848
3849 /* Record the fields for the semantic handler. */
3850 FLD (f_operand2) = f_operand2;
3851 FLD (f_indir_pc__byte) = f_indir_pc__byte;
3852 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));
3853
3854 #if WITH_PROFILE_MODEL_P
3855 /* Record the fields for profiling. */
3856 if (PROFILE_MODEL_P (current_cpu))
3857 {
3858 FLD (in_Rd) = f_operand2;
3859 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3860 }
3861 #endif
3862 #undef FLD
3863 return idesc;
3864 }
3865
3866 extract_sfmt_addcwr:
3867 {
3868 const IDESC *idesc = &crisv10f_insn_data[itype];
3869 CGEN_INSN_INT insn = base_insn;
3870 #define FLD(f) abuf->fields.sfmt_addcwr.f
3871 INT f_indir_pc__word;
3872 UINT f_operand2;
3873 /* Contents of trailing part of insn. */
3874 UINT word_1;
3875
3876 word_1 = GETIMEMUHI (current_cpu, pc + 2);
3877 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
3878 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3879
3880 /* Record the fields for the semantic handler. */
3881 FLD (f_operand2) = f_operand2;
3882 FLD (f_indir_pc__word) = f_indir_pc__word;
3883 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));
3884
3885 #if WITH_PROFILE_MODEL_P
3886 /* Record the fields for profiling. */
3887 if (PROFILE_MODEL_P (current_cpu))
3888 {
3889 FLD (in_Rd) = f_operand2;
3890 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3891 }
3892 #endif
3893 #undef FLD
3894 return idesc;
3895 }
3896
3897 extract_sfmt_addcdr:
3898 {
3899 const IDESC *idesc = &crisv10f_insn_data[itype];
3900 CGEN_INSN_INT insn = base_insn;
3901 #define FLD(f) abuf->fields.sfmt_addcdr.f
3902 INT f_indir_pc__dword;
3903 UINT f_operand2;
3904 /* Contents of trailing part of insn. */
3905 UINT word_1;
3906
3907 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3908 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
3909 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3910
3911 /* Record the fields for the semantic handler. */
3912 FLD (f_operand2) = f_operand2;
3913 FLD (f_indir_pc__dword) = f_indir_pc__dword;
3914 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));
3915
3916 #if WITH_PROFILE_MODEL_P
3917 /* Record the fields for profiling. */
3918 if (PROFILE_MODEL_P (current_cpu))
3919 {
3920 FLD (in_Rd) = f_operand2;
3921 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3922 }
3923 #endif
3924 #undef FLD
3925 return idesc;
3926 }
3927
3928 extract_sfmt_addcpc:
3929 {
3930 const IDESC *idesc = &crisv10f_insn_data[itype];
3931 CGEN_INSN_INT insn = base_insn;
3932 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p8.f
3933 INT f_indir_pc__dword;
3934 /* Contents of trailing part of insn. */
3935 UINT word_1;
3936
3937 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3938 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
3939
3940 /* Record the fields for the semantic handler. */
3941 FLD (f_indir_pc__dword) = f_indir_pc__dword;
3942 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addcpc", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
3943
3944 #if WITH_PROFILE_MODEL_P
3945 /* Record the fields for profiling. */
3946 if (PROFILE_MODEL_P (current_cpu))
3947 {
3948 }
3949 #endif
3950 #undef FLD
3951 return idesc;
3952 }
3953
3954 extract_sfmt_adds_m_b_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_operand2) = f_operand2;
3969 FLD (f_operand1) = f_operand1;
3970 FLD (f_memmode) = f_memmode;
3971 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));
3972
3973 #if WITH_PROFILE_MODEL_P
3974 /* Record the fields for profiling. */
3975 if (PROFILE_MODEL_P (current_cpu))
3976 {
3977 FLD (in_Rd) = f_operand2;
3978 FLD (in_Rs) = f_operand1;
3979 FLD (out_Rs) = f_operand1;
3980 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)));
3981 }
3982 #endif
3983 #undef FLD
3984 return idesc;
3985 }
3986
3987 extract_sfmt_adds_m_w_m:
3988 {
3989 const IDESC *idesc = &crisv10f_insn_data[itype];
3990 CGEN_INSN_INT insn = base_insn;
3991 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3992 UINT f_operand2;
3993 UINT f_memmode;
3994 UINT f_operand1;
3995
3996 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3997 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3998 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3999
4000 /* Record the fields for the semantic handler. */
4001 FLD (f_operand2) = f_operand2;
4002 FLD (f_operand1) = f_operand1;
4003 FLD (f_memmode) = f_memmode;
4004 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));
4005
4006 #if WITH_PROFILE_MODEL_P
4007 /* Record the fields for profiling. */
4008 if (PROFILE_MODEL_P (current_cpu))
4009 {
4010 FLD (in_Rd) = f_operand2;
4011 FLD (in_Rs) = f_operand1;
4012 FLD (out_Rs) = f_operand1;
4013 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)));
4014 }
4015 #endif
4016 #undef FLD
4017 return idesc;
4018 }
4019
4020 extract_sfmt_addscbr:
4021 {
4022 const IDESC *idesc = &crisv10f_insn_data[itype];
4023 CGEN_INSN_INT insn = base_insn;
4024 #define FLD(f) abuf->fields.sfmt_addcbr.f
4025 INT f_indir_pc__byte;
4026 UINT f_operand2;
4027 /* Contents of trailing part of insn. */
4028 UINT word_1;
4029
4030 word_1 = GETIMEMUHI (current_cpu, pc + 2);
4031 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
4032 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4033
4034 /* Record the fields for the semantic handler. */
4035 FLD (f_operand2) = f_operand2;
4036 FLD (f_indir_pc__byte) = f_indir_pc__byte;
4037 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));
4038
4039 #if WITH_PROFILE_MODEL_P
4040 /* Record the fields for profiling. */
4041 if (PROFILE_MODEL_P (current_cpu))
4042 {
4043 FLD (in_Rd) = f_operand2;
4044 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4045 }
4046 #endif
4047 #undef FLD
4048 return idesc;
4049 }
4050
4051 extract_sfmt_addscwr:
4052 {
4053 const IDESC *idesc = &crisv10f_insn_data[itype];
4054 CGEN_INSN_INT insn = base_insn;
4055 #define FLD(f) abuf->fields.sfmt_addcwr.f
4056 INT f_indir_pc__word;
4057 UINT f_operand2;
4058 /* Contents of trailing part of insn. */
4059 UINT word_1;
4060
4061 word_1 = GETIMEMUHI (current_cpu, pc + 2);
4062 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
4063 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4064
4065 /* Record the fields for the semantic handler. */
4066 FLD (f_operand2) = f_operand2;
4067 FLD (f_indir_pc__word) = f_indir_pc__word;
4068 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));
4069
4070 #if WITH_PROFILE_MODEL_P
4071 /* Record the fields for profiling. */
4072 if (PROFILE_MODEL_P (current_cpu))
4073 {
4074 FLD (in_Rd) = f_operand2;
4075 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4076 }
4077 #endif
4078 #undef FLD
4079 return idesc;
4080 }
4081
4082 extract_sfmt_addspcpc:
4083 {
4084 const IDESC *idesc = &crisv10f_insn_data[itype];
4085 #define FLD(f) abuf->fields.fmt_empty.f
4086
4087
4088 /* Record the fields for the semantic handler. */
4089 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addspcpc", (char *) 0));
4090
4091 #if WITH_PROFILE_MODEL_P
4092 /* Record the fields for profiling. */
4093 if (PROFILE_MODEL_P (current_cpu))
4094 {
4095 }
4096 #endif
4097 #undef FLD
4098 return idesc;
4099 }
4100
4101 extract_sfmt_addi_b_r:
4102 {
4103 const IDESC *idesc = &crisv10f_insn_data[itype];
4104 CGEN_INSN_INT insn = base_insn;
4105 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
4106 UINT f_operand2;
4107 UINT f_operand1;
4108
4109 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4110 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4111
4112 /* Record the fields for the semantic handler. */
4113 FLD (f_operand2) = f_operand2;
4114 FLD (f_operand1) = f_operand1;
4115 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));
4116
4117 #if WITH_PROFILE_MODEL_P
4118 /* Record the fields for profiling. */
4119 if (PROFILE_MODEL_P (current_cpu))
4120 {
4121 FLD (in_Rd) = f_operand2;
4122 FLD (in_Rs) = f_operand1;
4123 FLD (out_Rs) = f_operand1;
4124 }
4125 #endif
4126 #undef FLD
4127 return idesc;
4128 }
4129
4130 extract_sfmt_neg_b_r:
4131 {
4132 const IDESC *idesc = &crisv10f_insn_data[itype];
4133 CGEN_INSN_INT insn = base_insn;
4134 #define FLD(f) abuf->fields.sfmt_add_b_r.f
4135 UINT f_operand2;
4136 UINT f_operand1;
4137
4138 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4139 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4140
4141 /* Record the fields for the semantic handler. */
4142 FLD (f_operand1) = f_operand1;
4143 FLD (f_operand2) = f_operand2;
4144 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));
4145
4146 #if WITH_PROFILE_MODEL_P
4147 /* Record the fields for profiling. */
4148 if (PROFILE_MODEL_P (current_cpu))
4149 {
4150 FLD (in_Rs) = f_operand1;
4151 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4152 }
4153 #endif
4154 #undef FLD
4155 return idesc;
4156 }
4157
4158 extract_sfmt_neg_d_r:
4159 {
4160 const IDESC *idesc = &crisv10f_insn_data[itype];
4161 CGEN_INSN_INT insn = base_insn;
4162 #define FLD(f) abuf->fields.sfmt_add_b_r.f
4163 UINT f_operand2;
4164 UINT f_operand1;
4165
4166 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4167 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4168
4169 /* Record the fields for the semantic handler. */
4170 FLD (f_operand1) = f_operand1;
4171 FLD (f_operand2) = f_operand2;
4172 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));
4173
4174 #if WITH_PROFILE_MODEL_P
4175 /* Record the fields for profiling. */
4176 if (PROFILE_MODEL_P (current_cpu))
4177 {
4178 FLD (in_Rs) = f_operand1;
4179 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4180 }
4181 #endif
4182 #undef FLD
4183 return idesc;
4184 }
4185
4186 extract_sfmt_test_m_b_m:
4187 {
4188 const IDESC *idesc = &crisv10f_insn_data[itype];
4189 CGEN_INSN_INT insn = base_insn;
4190 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
4191 UINT f_memmode;
4192 UINT f_operand1;
4193
4194 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4195 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4196
4197 /* Record the fields for the semantic handler. */
4198 FLD (f_operand1) = f_operand1;
4199 FLD (f_memmode) = f_memmode;
4200 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));
4201
4202 #if WITH_PROFILE_MODEL_P
4203 /* Record the fields for profiling. */
4204 if (PROFILE_MODEL_P (current_cpu))
4205 {
4206 FLD (in_Rs) = f_operand1;
4207 FLD (out_Rs) = f_operand1;
4208 }
4209 #endif
4210 #undef FLD
4211 return idesc;
4212 }
4213
4214 extract_sfmt_test_m_w_m:
4215 {
4216 const IDESC *idesc = &crisv10f_insn_data[itype];
4217 CGEN_INSN_INT insn = base_insn;
4218 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
4219 UINT f_memmode;
4220 UINT f_operand1;
4221
4222 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4223 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4224
4225 /* Record the fields for the semantic handler. */
4226 FLD (f_operand1) = f_operand1;
4227 FLD (f_memmode) = f_memmode;
4228 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));
4229
4230 #if WITH_PROFILE_MODEL_P
4231 /* Record the fields for profiling. */
4232 if (PROFILE_MODEL_P (current_cpu))
4233 {
4234 FLD (in_Rs) = f_operand1;
4235 FLD (out_Rs) = f_operand1;
4236 }
4237 #endif
4238 #undef FLD
4239 return idesc;
4240 }
4241
4242 extract_sfmt_test_m_d_m:
4243 {
4244 const IDESC *idesc = &crisv10f_insn_data[itype];
4245 CGEN_INSN_INT insn = base_insn;
4246 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
4247 UINT f_memmode;
4248 UINT f_operand1;
4249
4250 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4251 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4252
4253 /* Record the fields for the semantic handler. */
4254 FLD (f_operand1) = f_operand1;
4255 FLD (f_memmode) = f_memmode;
4256 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));
4257
4258 #if WITH_PROFILE_MODEL_P
4259 /* Record the fields for profiling. */
4260 if (PROFILE_MODEL_P (current_cpu))
4261 {
4262 FLD (in_Rs) = f_operand1;
4263 FLD (out_Rs) = f_operand1;
4264 }
4265 #endif
4266 #undef FLD
4267 return idesc;
4268 }
4269
4270 extract_sfmt_move_r_m_b_m:
4271 {
4272 const IDESC *idesc = &crisv10f_insn_data[itype];
4273 CGEN_INSN_INT insn = base_insn;
4274 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
4275 UINT f_operand2;
4276 UINT f_memmode;
4277 UINT f_operand1;
4278
4279 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4280 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4281 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4282
4283 /* Record the fields for the semantic handler. */
4284 FLD (f_operand2) = f_operand2;
4285 FLD (f_operand1) = f_operand1;
4286 FLD (f_memmode) = f_memmode;
4287 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));
4288
4289 #if WITH_PROFILE_MODEL_P
4290 /* Record the fields for profiling. */
4291 if (PROFILE_MODEL_P (current_cpu))
4292 {
4293 FLD (in_Rd) = f_operand2;
4294 FLD (in_Rs) = f_operand1;
4295 FLD (out_Rs) = f_operand1;
4296 }
4297 #endif
4298 #undef FLD
4299 return idesc;
4300 }
4301
4302 extract_sfmt_move_r_m_w_m:
4303 {
4304 const IDESC *idesc = &crisv10f_insn_data[itype];
4305 CGEN_INSN_INT insn = base_insn;
4306 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
4307 UINT f_operand2;
4308 UINT f_memmode;
4309 UINT f_operand1;
4310
4311 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4312 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4313 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4314
4315 /* Record the fields for the semantic handler. */
4316 FLD (f_operand2) = f_operand2;
4317 FLD (f_operand1) = f_operand1;
4318 FLD (f_memmode) = f_memmode;
4319 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));
4320
4321 #if WITH_PROFILE_MODEL_P
4322 /* Record the fields for profiling. */
4323 if (PROFILE_MODEL_P (current_cpu))
4324 {
4325 FLD (in_Rd) = f_operand2;
4326 FLD (in_Rs) = f_operand1;
4327 FLD (out_Rs) = f_operand1;
4328 }
4329 #endif
4330 #undef FLD
4331 return idesc;
4332 }
4333
4334 extract_sfmt_move_r_m_d_m:
4335 {
4336 const IDESC *idesc = &crisv10f_insn_data[itype];
4337 CGEN_INSN_INT insn = base_insn;
4338 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
4339 UINT f_operand2;
4340 UINT f_memmode;
4341 UINT f_operand1;
4342
4343 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4344 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4345 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4346
4347 /* Record the fields for the semantic handler. */
4348 FLD (f_operand2) = f_operand2;
4349 FLD (f_operand1) = f_operand1;
4350 FLD (f_memmode) = f_memmode;
4351 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));
4352
4353 #if WITH_PROFILE_MODEL_P
4354 /* Record the fields for profiling. */
4355 if (PROFILE_MODEL_P (current_cpu))
4356 {
4357 FLD (in_Rd) = f_operand2;
4358 FLD (in_Rs) = f_operand1;
4359 FLD (out_Rs) = f_operand1;
4360 }
4361 #endif
4362 #undef FLD
4363 return idesc;
4364 }
4365
4366 extract_sfmt_muls_b:
4367 {
4368 const IDESC *idesc = &crisv10f_insn_data[itype];
4369 CGEN_INSN_INT insn = base_insn;
4370 #define FLD(f) abuf->fields.sfmt_muls_b.f
4371 UINT f_operand2;
4372 UINT f_operand1;
4373
4374 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4375 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4376
4377 /* Record the fields for the semantic handler. */
4378 FLD (f_operand2) = f_operand2;
4379 FLD (f_operand1) = f_operand1;
4380 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));
4381
4382 #if WITH_PROFILE_MODEL_P
4383 /* Record the fields for profiling. */
4384 if (PROFILE_MODEL_P (current_cpu))
4385 {
4386 FLD (in_Rd) = f_operand2;
4387 FLD (in_Rs) = f_operand1;
4388 FLD (out_Rd) = f_operand2;
4389 FLD (out_h_sr_SI_7) = 7;
4390 }
4391 #endif
4392 #undef FLD
4393 return idesc;
4394 }
4395
4396 extract_sfmt_mstep:
4397 {
4398 const IDESC *idesc = &crisv10f_insn_data[itype];
4399 CGEN_INSN_INT insn = base_insn;
4400 #define FLD(f) abuf->fields.sfmt_muls_b.f
4401 UINT f_operand2;
4402 UINT f_operand1;
4403
4404 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4405 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4406
4407 /* Record the fields for the semantic handler. */
4408 FLD (f_operand2) = f_operand2;
4409 FLD (f_operand1) = f_operand1;
4410 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));
4411
4412 #if WITH_PROFILE_MODEL_P
4413 /* Record the fields for profiling. */
4414 if (PROFILE_MODEL_P (current_cpu))
4415 {
4416 FLD (in_Rd) = f_operand2;
4417 FLD (in_Rs) = f_operand1;
4418 FLD (out_Rd) = f_operand2;
4419 }
4420 #endif
4421 #undef FLD
4422 return idesc;
4423 }
4424
4425 extract_sfmt_dstep:
4426 {
4427 const IDESC *idesc = &crisv10f_insn_data[itype];
4428 CGEN_INSN_INT insn = base_insn;
4429 #define FLD(f) abuf->fields.sfmt_muls_b.f
4430 UINT f_operand2;
4431 UINT f_operand1;
4432
4433 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4434 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4435
4436 /* Record the fields for the semantic handler. */
4437 FLD (f_operand2) = f_operand2;
4438 FLD (f_operand1) = f_operand1;
4439 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));
4440
4441 #if WITH_PROFILE_MODEL_P
4442 /* Record the fields for profiling. */
4443 if (PROFILE_MODEL_P (current_cpu))
4444 {
4445 FLD (in_Rd) = f_operand2;
4446 FLD (in_Rs) = f_operand1;
4447 FLD (out_Rd) = f_operand2;
4448 }
4449 #endif
4450 #undef FLD
4451 return idesc;
4452 }
4453
4454 extract_sfmt_and_b_r:
4455 {
4456 const IDESC *idesc = &crisv10f_insn_data[itype];
4457 CGEN_INSN_INT insn = base_insn;
4458 #define FLD(f) abuf->fields.sfmt_add_b_r.f
4459 UINT f_operand2;
4460 UINT f_operand1;
4461
4462 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4463 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4464
4465 /* Record the fields for the semantic handler. */
4466 FLD (f_operand2) = f_operand2;
4467 FLD (f_operand1) = f_operand1;
4468 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));
4469
4470 #if WITH_PROFILE_MODEL_P
4471 /* Record the fields for profiling. */
4472 if (PROFILE_MODEL_P (current_cpu))
4473 {
4474 FLD (in_Rd) = f_operand2;
4475 FLD (in_Rs) = f_operand1;
4476 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4477 }
4478 #endif
4479 #undef FLD
4480 return idesc;
4481 }
4482
4483 extract_sfmt_and_w_r:
4484 {
4485 const IDESC *idesc = &crisv10f_insn_data[itype];
4486 CGEN_INSN_INT insn = base_insn;
4487 #define FLD(f) abuf->fields.sfmt_add_b_r.f
4488 UINT f_operand2;
4489 UINT f_operand1;
4490
4491 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4492 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4493
4494 /* Record the fields for the semantic handler. */
4495 FLD (f_operand2) = f_operand2;
4496 FLD (f_operand1) = f_operand1;
4497 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));
4498
4499 #if WITH_PROFILE_MODEL_P
4500 /* Record the fields for profiling. */
4501 if (PROFILE_MODEL_P (current_cpu))
4502 {
4503 FLD (in_Rd) = f_operand2;
4504 FLD (in_Rs) = f_operand1;
4505 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4506 }
4507 #endif
4508 #undef FLD
4509 return idesc;
4510 }
4511
4512 extract_sfmt_and_d_r:
4513 {
4514 const IDESC *idesc = &crisv10f_insn_data[itype];
4515 CGEN_INSN_INT insn = base_insn;
4516 #define FLD(f) abuf->fields.sfmt_add_b_r.f
4517 UINT f_operand2;
4518 UINT f_operand1;
4519
4520 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4521 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4522
4523 /* Record the fields for the semantic handler. */
4524 FLD (f_operand2) = f_operand2;
4525 FLD (f_operand1) = f_operand1;
4526 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));
4527
4528 #if WITH_PROFILE_MODEL_P
4529 /* Record the fields for profiling. */
4530 if (PROFILE_MODEL_P (current_cpu))
4531 {
4532 FLD (in_Rd) = f_operand2;
4533 FLD (in_Rs) = f_operand1;
4534 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4535 }
4536 #endif
4537 #undef FLD
4538 return idesc;
4539 }
4540
4541 extract_sfmt_and_m_b_m:
4542 {
4543 const IDESC *idesc = &crisv10f_insn_data[itype];
4544 CGEN_INSN_INT insn = base_insn;
4545 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4546 UINT f_operand2;
4547 UINT f_memmode;
4548 UINT f_operand1;
4549
4550 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4551 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4552 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4553
4554 /* Record the fields for the semantic handler. */
4555 FLD (f_operand2) = f_operand2;
4556 FLD (f_operand1) = f_operand1;
4557 FLD (f_memmode) = f_memmode;
4558 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));
4559
4560 #if WITH_PROFILE_MODEL_P
4561 /* Record the fields for profiling. */
4562 if (PROFILE_MODEL_P (current_cpu))
4563 {
4564 FLD (in_Rd) = f_operand2;
4565 FLD (in_Rs) = f_operand1;
4566 FLD (out_Rs) = f_operand1;
4567 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)));
4568 }
4569 #endif
4570 #undef FLD
4571 return idesc;
4572 }
4573
4574 extract_sfmt_and_m_w_m:
4575 {
4576 const IDESC *idesc = &crisv10f_insn_data[itype];
4577 CGEN_INSN_INT insn = base_insn;
4578 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4579 UINT f_operand2;
4580 UINT f_memmode;
4581 UINT f_operand1;
4582
4583 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4584 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4585 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4586
4587 /* Record the fields for the semantic handler. */
4588 FLD (f_operand2) = f_operand2;
4589 FLD (f_operand1) = f_operand1;
4590 FLD (f_memmode) = f_memmode;
4591 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));
4592
4593 #if WITH_PROFILE_MODEL_P
4594 /* Record the fields for profiling. */
4595 if (PROFILE_MODEL_P (current_cpu))
4596 {
4597 FLD (in_Rd) = f_operand2;
4598 FLD (in_Rs) = f_operand1;
4599 FLD (out_Rs) = f_operand1;
4600 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)));
4601 }
4602 #endif
4603 #undef FLD
4604 return idesc;
4605 }
4606
4607 extract_sfmt_and_m_d_m:
4608 {
4609 const IDESC *idesc = &crisv10f_insn_data[itype];
4610 CGEN_INSN_INT insn = base_insn;
4611 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4612 UINT f_operand2;
4613 UINT f_memmode;
4614 UINT f_operand1;
4615
4616 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4617 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4618 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4619
4620 /* Record the fields for the semantic handler. */
4621 FLD (f_operand2) = f_operand2;
4622 FLD (f_operand1) = f_operand1;
4623 FLD (f_memmode) = f_memmode;
4624 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));
4625
4626 #if WITH_PROFILE_MODEL_P
4627 /* Record the fields for profiling. */
4628 if (PROFILE_MODEL_P (current_cpu))
4629 {
4630 FLD (in_Rd) = f_operand2;
4631 FLD (in_Rs) = f_operand1;
4632 FLD (out_Rs) = f_operand1;
4633 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)));
4634 }
4635 #endif
4636 #undef FLD
4637 return idesc;
4638 }
4639
4640 extract_sfmt_andcbr:
4641 {
4642 const IDESC *idesc = &crisv10f_insn_data[itype];
4643 CGEN_INSN_INT insn = base_insn;
4644 #define FLD(f) abuf->fields.sfmt_addcbr.f
4645 INT f_indir_pc__byte;
4646 UINT f_operand2;
4647 /* Contents of trailing part of insn. */
4648 UINT word_1;
4649
4650 word_1 = GETIMEMUHI (current_cpu, pc + 2);
4651 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
4652 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4653
4654 /* Record the fields for the semantic handler. */
4655 FLD (f_operand2) = f_operand2;
4656 FLD (f_indir_pc__byte) = f_indir_pc__byte;
4657 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));
4658
4659 #if WITH_PROFILE_MODEL_P
4660 /* Record the fields for profiling. */
4661 if (PROFILE_MODEL_P (current_cpu))
4662 {
4663 FLD (in_Rd) = f_operand2;
4664 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4665 }
4666 #endif
4667 #undef FLD
4668 return idesc;
4669 }
4670
4671 extract_sfmt_andcwr:
4672 {
4673 const IDESC *idesc = &crisv10f_insn_data[itype];
4674 CGEN_INSN_INT insn = base_insn;
4675 #define FLD(f) abuf->fields.sfmt_addcwr.f
4676 INT f_indir_pc__word;
4677 UINT f_operand2;
4678 /* Contents of trailing part of insn. */
4679 UINT word_1;
4680
4681 word_1 = GETIMEMUHI (current_cpu, pc + 2);
4682 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
4683 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4684
4685 /* Record the fields for the semantic handler. */
4686 FLD (f_operand2) = f_operand2;
4687 FLD (f_indir_pc__word) = f_indir_pc__word;
4688 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));
4689
4690 #if WITH_PROFILE_MODEL_P
4691 /* Record the fields for profiling. */
4692 if (PROFILE_MODEL_P (current_cpu))
4693 {
4694 FLD (in_Rd) = f_operand2;
4695 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4696 }
4697 #endif
4698 #undef FLD
4699 return idesc;
4700 }
4701
4702 extract_sfmt_andcdr:
4703 {
4704 const IDESC *idesc = &crisv10f_insn_data[itype];
4705 CGEN_INSN_INT insn = base_insn;
4706 #define FLD(f) abuf->fields.sfmt_addcdr.f
4707 INT f_indir_pc__dword;
4708 UINT f_operand2;
4709 /* Contents of trailing part of insn. */
4710 UINT word_1;
4711
4712 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4713 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
4714 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4715
4716 /* Record the fields for the semantic handler. */
4717 FLD (f_operand2) = f_operand2;
4718 FLD (f_indir_pc__dword) = f_indir_pc__dword;
4719 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));
4720
4721 #if WITH_PROFILE_MODEL_P
4722 /* Record the fields for profiling. */
4723 if (PROFILE_MODEL_P (current_cpu))
4724 {
4725 FLD (in_Rd) = f_operand2;
4726 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4727 }
4728 #endif
4729 #undef FLD
4730 return idesc;
4731 }
4732
4733 extract_sfmt_andq:
4734 {
4735 const IDESC *idesc = &crisv10f_insn_data[itype];
4736 CGEN_INSN_INT insn = base_insn;
4737 #define FLD(f) abuf->fields.sfmt_andq.f
4738 UINT f_operand2;
4739 INT f_s6;
4740
4741 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4742 f_s6 = EXTRACT_LSB0_INT (insn, 16, 5, 6);
4743
4744 /* Record the fields for the semantic handler. */
4745 FLD (f_operand2) = f_operand2;
4746 FLD (f_s6) = f_s6;
4747 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));
4748
4749 #if WITH_PROFILE_MODEL_P
4750 /* Record the fields for profiling. */
4751 if (PROFILE_MODEL_P (current_cpu))
4752 {
4753 FLD (in_Rd) = f_operand2;
4754 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4755 }
4756 #endif
4757 #undef FLD
4758 return idesc;
4759 }
4760
4761 extract_sfmt_swap:
4762 {
4763 const IDESC *idesc = &crisv10f_insn_data[itype];
4764 CGEN_INSN_INT insn = base_insn;
4765 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
4766 UINT f_operand2;
4767 UINT f_operand1;
4768
4769 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4770 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4771
4772 /* Record the fields for the semantic handler. */
4773 FLD (f_operand1) = f_operand1;
4774 FLD (f_operand2) = f_operand2;
4775 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));
4776
4777 #if WITH_PROFILE_MODEL_P
4778 /* Record the fields for profiling. */
4779 if (PROFILE_MODEL_P (current_cpu))
4780 {
4781 FLD (in_Rs) = f_operand1;
4782 FLD (out_Rs) = f_operand1;
4783 }
4784 #endif
4785 #undef FLD
4786 return idesc;
4787 }
4788
4789 extract_sfmt_asrr_b_r:
4790 {
4791 const IDESC *idesc = &crisv10f_insn_data[itype];
4792 CGEN_INSN_INT insn = base_insn;
4793 #define FLD(f) abuf->fields.sfmt_add_b_r.f
4794 UINT f_operand2;
4795 UINT f_operand1;
4796
4797 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4798 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4799
4800 /* Record the fields for the semantic handler. */
4801 FLD (f_operand2) = f_operand2;
4802 FLD (f_operand1) = f_operand1;
4803 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));
4804
4805 #if WITH_PROFILE_MODEL_P
4806 /* Record the fields for profiling. */
4807 if (PROFILE_MODEL_P (current_cpu))
4808 {
4809 FLD (in_Rd) = f_operand2;
4810 FLD (in_Rs) = f_operand1;
4811 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4812 }
4813 #endif
4814 #undef FLD
4815 return idesc;
4816 }
4817
4818 extract_sfmt_asrq:
4819 {
4820 const IDESC *idesc = &crisv10f_insn_data[itype];
4821 CGEN_INSN_INT insn = base_insn;
4822 #define FLD(f) abuf->fields.sfmt_asrq.f
4823 UINT f_operand2;
4824 UINT f_u5;
4825
4826 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4827 f_u5 = EXTRACT_LSB0_UINT (insn, 16, 4, 5);
4828
4829 /* Record the fields for the semantic handler. */
4830 FLD (f_operand2) = f_operand2;
4831 FLD (f_u5) = f_u5;
4832 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));
4833
4834 #if WITH_PROFILE_MODEL_P
4835 /* Record the fields for profiling. */
4836 if (PROFILE_MODEL_P (current_cpu))
4837 {
4838 FLD (in_Rd) = f_operand2;
4839 FLD (out_Rd) = f_operand2;
4840 }
4841 #endif
4842 #undef FLD
4843 return idesc;
4844 }
4845
4846 extract_sfmt_lsrr_b_r:
4847 {
4848 const IDESC *idesc = &crisv10f_insn_data[itype];
4849 CGEN_INSN_INT insn = base_insn;
4850 #define FLD(f) abuf->fields.sfmt_add_b_r.f
4851 UINT f_operand2;
4852 UINT f_operand1;
4853
4854 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4855 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4856
4857 /* Record the fields for the semantic handler. */
4858 FLD (f_operand2) = f_operand2;
4859 FLD (f_operand1) = f_operand1;
4860 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));
4861
4862 #if WITH_PROFILE_MODEL_P
4863 /* Record the fields for profiling. */
4864 if (PROFILE_MODEL_P (current_cpu))
4865 {
4866 FLD (in_Rd) = f_operand2;
4867 FLD (in_Rs) = f_operand1;
4868 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4869 }
4870 #endif
4871 #undef FLD
4872 return idesc;
4873 }
4874
4875 extract_sfmt_lsrr_d_r:
4876 {
4877 const IDESC *idesc = &crisv10f_insn_data[itype];
4878 CGEN_INSN_INT insn = base_insn;
4879 #define FLD(f) abuf->fields.sfmt_add_b_r.f
4880 UINT f_operand2;
4881 UINT f_operand1;
4882
4883 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4884 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4885
4886 /* Record the fields for the semantic handler. */
4887 FLD (f_operand2) = f_operand2;
4888 FLD (f_operand1) = f_operand1;
4889 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));
4890
4891 #if WITH_PROFILE_MODEL_P
4892 /* Record the fields for profiling. */
4893 if (PROFILE_MODEL_P (current_cpu))
4894 {
4895 FLD (in_Rd) = f_operand2;
4896 FLD (in_Rs) = f_operand1;
4897 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4898 }
4899 #endif
4900 #undef FLD
4901 return idesc;
4902 }
4903
4904 extract_sfmt_btst:
4905 {
4906 const IDESC *idesc = &crisv10f_insn_data[itype];
4907 CGEN_INSN_INT insn = base_insn;
4908 #define FLD(f) abuf->fields.sfmt_add_b_r.f
4909 UINT f_operand2;
4910 UINT f_operand1;
4911
4912 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4913 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4914
4915 /* Record the fields for the semantic handler. */
4916 FLD (f_operand2) = f_operand2;
4917 FLD (f_operand1) = f_operand1;
4918 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));
4919
4920 #if WITH_PROFILE_MODEL_P
4921 /* Record the fields for profiling. */
4922 if (PROFILE_MODEL_P (current_cpu))
4923 {
4924 FLD (in_Rd) = f_operand2;
4925 FLD (in_Rs) = f_operand1;
4926 }
4927 #endif
4928 #undef FLD
4929 return idesc;
4930 }
4931
4932 extract_sfmt_btstq:
4933 {
4934 const IDESC *idesc = &crisv10f_insn_data[itype];
4935 CGEN_INSN_INT insn = base_insn;
4936 #define FLD(f) abuf->fields.sfmt_asrq.f
4937 UINT f_operand2;
4938 UINT f_u5;
4939
4940 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4941 f_u5 = EXTRACT_LSB0_UINT (insn, 16, 4, 5);
4942
4943 /* Record the fields for the semantic handler. */
4944 FLD (f_operand2) = f_operand2;
4945 FLD (f_u5) = f_u5;
4946 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));
4947
4948 #if WITH_PROFILE_MODEL_P
4949 /* Record the fields for profiling. */
4950 if (PROFILE_MODEL_P (current_cpu))
4951 {
4952 FLD (in_Rd) = f_operand2;
4953 }
4954 #endif
4955 #undef FLD
4956 return idesc;
4957 }
4958
4959 extract_sfmt_setf:
4960 {
4961 const IDESC *idesc = &crisv10f_insn_data[itype];
4962 CGEN_INSN_INT insn = base_insn;
4963 #define FLD(f) abuf->fields.sfmt_setf.f
4964 UINT f_operand2;
4965 UINT f_operand1;
4966 UINT f_dstsrc;
4967
4968 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4969 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4970 f_dstsrc = ((((f_operand1) | (((f_operand2) << (4))))) & (255));
4971
4972 /* Record the fields for the semantic handler. */
4973 FLD (f_dstsrc) = f_dstsrc;
4974 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_setf", "f_dstsrc 0x%x", 'x', f_dstsrc, (char *) 0));
4975
4976 #undef FLD
4977 return idesc;
4978 }
4979
4980 extract_sfmt_bcc_b:
4981 {
4982 const IDESC *idesc = &crisv10f_insn_data[itype];
4983 CGEN_INSN_INT insn = base_insn;
4984 #define FLD(f) abuf->fields.sfmt_bcc_b.f
4985 UINT f_operand2;
4986 UINT f_disp9_lo;
4987 INT f_disp9_hi;
4988 INT f_disp9;
4989
4990 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4991 f_disp9_lo = EXTRACT_LSB0_UINT (insn, 16, 7, 7);
4992 f_disp9_hi = EXTRACT_LSB0_INT (insn, 16, 0, 1);
4993 {
4994 SI tmp_abslo;
4995 SI tmp_absval;
4996 tmp_abslo = ((f_disp9_lo) << (1));
4997 tmp_absval = ((((((f_disp9_hi) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo));
4998 f_disp9 = ((((pc) + (tmp_absval))) + (((GET_H_V32_NON_V32 ()) ? (0) : (2))));
4999 }
5000
5001 /* Record the fields for the semantic handler. */
5002 FLD (f_operand2) = f_operand2;
5003 FLD (i_o_pcrel) = f_disp9;
5004 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));
5005
5006 #if WITH_PROFILE_MODEL_P
5007 /* Record the fields for profiling. */
5008 if (PROFILE_MODEL_P (current_cpu))
5009 {
5010 }
5011 #endif
5012 #undef FLD
5013 return idesc;
5014 }
5015
5016 extract_sfmt_ba_b:
5017 {
5018 const IDESC *idesc = &crisv10f_insn_data[itype];
5019 CGEN_INSN_INT insn = base_insn;
5020 #define FLD(f) abuf->fields.sfmt_bcc_b.f
5021 UINT f_disp9_lo;
5022 INT f_disp9_hi;
5023 INT f_disp9;
5024
5025 f_disp9_lo = EXTRACT_LSB0_UINT (insn, 16, 7, 7);
5026 f_disp9_hi = EXTRACT_LSB0_INT (insn, 16, 0, 1);
5027 {
5028 SI tmp_abslo;
5029 SI tmp_absval;
5030 tmp_abslo = ((f_disp9_lo) << (1));
5031 tmp_absval = ((((((f_disp9_hi) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo));
5032 f_disp9 = ((((pc) + (tmp_absval))) + (((GET_H_V32_NON_V32 ()) ? (0) : (2))));
5033 }
5034
5035 /* Record the fields for the semantic handler. */
5036 FLD (i_o_pcrel) = f_disp9;
5037 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ba_b", "o_pcrel 0x%x", 'x', f_disp9, (char *) 0));
5038
5039 #if WITH_PROFILE_MODEL_P
5040 /* Record the fields for profiling. */
5041 if (PROFILE_MODEL_P (current_cpu))
5042 {
5043 }
5044 #endif
5045 #undef FLD
5046 return idesc;
5047 }
5048
5049 extract_sfmt_bcc_w:
5050 {
5051 const IDESC *idesc = &crisv10f_insn_data[itype];
5052 CGEN_INSN_INT insn = base_insn;
5053 #define FLD(f) abuf->fields.sfmt_bcc_w.f
5054 SI f_indir_pc__word_pcrel;
5055 UINT f_operand2;
5056 /* Contents of trailing part of insn. */
5057 UINT word_1;
5058
5059 word_1 = GETIMEMUHI (current_cpu, pc + 2);
5060 f_indir_pc__word_pcrel = ((EXTHISI (((HI) (UINT) ((0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0)))))) + (((pc) + (((GET_H_V32_NON_V32 ()) ? (0) : (4))))));
5061 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5062
5063 /* Record the fields for the semantic handler. */
5064 FLD (f_operand2) = f_operand2;
5065 FLD (i_o_word_pcrel) = f_indir_pc__word_pcrel;
5066 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));
5067
5068 #if WITH_PROFILE_MODEL_P
5069 /* Record the fields for profiling. */
5070 if (PROFILE_MODEL_P (current_cpu))
5071 {
5072 }
5073 #endif
5074 #undef FLD
5075 return idesc;
5076 }
5077
5078 extract_sfmt_ba_w:
5079 {
5080 const IDESC *idesc = &crisv10f_insn_data[itype];
5081 CGEN_INSN_INT insn = base_insn;
5082 #define FLD(f) abuf->fields.sfmt_bcc_w.f
5083 SI f_indir_pc__word_pcrel;
5084 /* Contents of trailing part of insn. */
5085 UINT word_1;
5086
5087 word_1 = GETIMEMUHI (current_cpu, pc + 2);
5088 f_indir_pc__word_pcrel = ((EXTHISI (((HI) (UINT) ((0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0)))))) + (((pc) + (((GET_H_V32_NON_V32 ()) ? (0) : (4))))));
5089
5090 /* Record the fields for the semantic handler. */
5091 FLD (i_o_word_pcrel) = f_indir_pc__word_pcrel;
5092 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ba_w", "o_word_pcrel 0x%x", 'x', f_indir_pc__word_pcrel, (char *) 0));
5093
5094 #if WITH_PROFILE_MODEL_P
5095 /* Record the fields for profiling. */
5096 if (PROFILE_MODEL_P (current_cpu))
5097 {
5098 }
5099 #endif
5100 #undef FLD
5101 return idesc;
5102 }
5103
5104 extract_sfmt_jump_r:
5105 {
5106 const IDESC *idesc = &crisv10f_insn_data[itype];
5107 CGEN_INSN_INT insn = base_insn;
5108 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
5109 UINT f_operand2;
5110 UINT f_operand1;
5111
5112 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5113 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5114
5115 /* Record the fields for the semantic handler. */
5116 FLD (f_operand1) = f_operand1;
5117 FLD (f_operand2) = f_operand2;
5118 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));
5119
5120 #if WITH_PROFILE_MODEL_P
5121 /* Record the fields for profiling. */
5122 if (PROFILE_MODEL_P (current_cpu))
5123 {
5124 FLD (in_Rs) = f_operand1;
5125 FLD (out_Pd) = f_operand2;
5126 }
5127 #endif
5128 #undef FLD
5129 return idesc;
5130 }
5131
5132 extract_sfmt_jump_m:
5133 {
5134 const IDESC *idesc = &crisv10f_insn_data[itype];
5135 CGEN_INSN_INT insn = base_insn;
5136 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
5137 UINT f_operand2;
5138 UINT f_memmode;
5139 UINT f_operand1;
5140
5141 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5142 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5143 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5144
5145 /* Record the fields for the semantic handler. */
5146 FLD (f_operand1) = f_operand1;
5147 FLD (f_memmode) = f_memmode;
5148 FLD (f_operand2) = f_operand2;
5149 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));
5150
5151 #if WITH_PROFILE_MODEL_P
5152 /* Record the fields for profiling. */
5153 if (PROFILE_MODEL_P (current_cpu))
5154 {
5155 FLD (in_Rs) = f_operand1;
5156 FLD (out_Pd) = f_operand2;
5157 FLD (out_Rs) = f_operand1;
5158 }
5159 #endif
5160 #undef FLD
5161 return idesc;
5162 }
5163
5164 extract_sfmt_jump_c:
5165 {
5166 const IDESC *idesc = &crisv10f_insn_data[itype];
5167 CGEN_INSN_INT insn = base_insn;
5168 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p8.f
5169 INT f_indir_pc__dword;
5170 UINT f_operand2;
5171 /* Contents of trailing part of insn. */
5172 UINT word_1;
5173
5174 word_1 = GETIMEMUSI (current_cpu, pc + 2);
5175 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
5176 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5177
5178 /* Record the fields for the semantic handler. */
5179 FLD (f_indir_pc__dword) = f_indir_pc__dword;
5180 FLD (f_operand2) = f_operand2;
5181 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));
5182
5183 #if WITH_PROFILE_MODEL_P
5184 /* Record the fields for profiling. */
5185 if (PROFILE_MODEL_P (current_cpu))
5186 {
5187 FLD (out_Pd) = f_operand2;
5188 }
5189 #endif
5190 #undef FLD
5191 return idesc;
5192 }
5193
5194 extract_sfmt_break:
5195 {
5196 const IDESC *idesc = &crisv10f_insn_data[itype];
5197 CGEN_INSN_INT insn = base_insn;
5198 #define FLD(f) abuf->fields.sfmt_break.f
5199 UINT f_u4;
5200
5201 f_u4 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5202
5203 /* Record the fields for the semantic handler. */
5204 FLD (f_u4) = f_u4;
5205 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_break", "f_u4 0x%x", 'x', f_u4, (char *) 0));
5206
5207 #if WITH_PROFILE_MODEL_P
5208 /* Record the fields for profiling. */
5209 if (PROFILE_MODEL_P (current_cpu))
5210 {
5211 }
5212 #endif
5213 #undef FLD
5214 return idesc;
5215 }
5216
5217 extract_sfmt_bound_m_b_m:
5218 {
5219 const IDESC *idesc = &crisv10f_insn_data[itype];
5220 CGEN_INSN_INT insn = base_insn;
5221 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
5222 UINT f_operand2;
5223 UINT f_memmode;
5224 UINT f_operand1;
5225
5226 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5227 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5228 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5229
5230 /* Record the fields for the semantic handler. */
5231 FLD (f_operand2) = f_operand2;
5232 FLD (f_operand1) = f_operand1;
5233 FLD (f_memmode) = f_memmode;
5234 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));
5235
5236 #if WITH_PROFILE_MODEL_P
5237 /* Record the fields for profiling. */
5238 if (PROFILE_MODEL_P (current_cpu))
5239 {
5240 FLD (in_Rd) = f_operand2;
5241 FLD (in_Rs) = f_operand1;
5242 FLD (out_Rd) = f_operand2;
5243 FLD (out_Rs) = f_operand1;
5244 }
5245 #endif
5246 #undef FLD
5247 return idesc;
5248 }
5249
5250 extract_sfmt_bound_m_w_m:
5251 {
5252 const IDESC *idesc = &crisv10f_insn_data[itype];
5253 CGEN_INSN_INT insn = base_insn;
5254 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
5255 UINT f_operand2;
5256 UINT f_memmode;
5257 UINT f_operand1;
5258
5259 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5260 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5261 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5262
5263 /* Record the fields for the semantic handler. */
5264 FLD (f_operand2) = f_operand2;
5265 FLD (f_operand1) = f_operand1;
5266 FLD (f_memmode) = f_memmode;
5267 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));
5268
5269 #if WITH_PROFILE_MODEL_P
5270 /* Record the fields for profiling. */
5271 if (PROFILE_MODEL_P (current_cpu))
5272 {
5273 FLD (in_Rd) = f_operand2;
5274 FLD (in_Rs) = f_operand1;
5275 FLD (out_Rd) = f_operand2;
5276 FLD (out_Rs) = f_operand1;
5277 }
5278 #endif
5279 #undef FLD
5280 return idesc;
5281 }
5282
5283 extract_sfmt_bound_m_d_m:
5284 {
5285 const IDESC *idesc = &crisv10f_insn_data[itype];
5286 CGEN_INSN_INT insn = base_insn;
5287 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
5288 UINT f_operand2;
5289 UINT f_memmode;
5290 UINT f_operand1;
5291
5292 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5293 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5294 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5295
5296 /* Record the fields for the semantic handler. */
5297 FLD (f_operand2) = f_operand2;
5298 FLD (f_operand1) = f_operand1;
5299 FLD (f_memmode) = f_memmode;
5300 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));
5301
5302 #if WITH_PROFILE_MODEL_P
5303 /* Record the fields for profiling. */
5304 if (PROFILE_MODEL_P (current_cpu))
5305 {
5306 FLD (in_Rd) = f_operand2;
5307 FLD (in_Rs) = f_operand1;
5308 FLD (out_Rd) = f_operand2;
5309 FLD (out_Rs) = f_operand1;
5310 }
5311 #endif
5312 #undef FLD
5313 return idesc;
5314 }
5315
5316 extract_sfmt_bound_cb:
5317 {
5318 const IDESC *idesc = &crisv10f_insn_data[itype];
5319 CGEN_INSN_INT insn = base_insn;
5320 #define FLD(f) abuf->fields.sfmt_bound_cb.f
5321 INT f_indir_pc__byte;
5322 UINT f_operand2;
5323 /* Contents of trailing part of insn. */
5324 UINT word_1;
5325
5326 word_1 = GETIMEMUHI (current_cpu, pc + 2);
5327 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
5328 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5329
5330 /* Record the fields for the semantic handler. */
5331 FLD (f_operand2) = f_operand2;
5332 FLD (f_indir_pc__byte) = f_indir_pc__byte;
5333 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));
5334
5335 #if WITH_PROFILE_MODEL_P
5336 /* Record the fields for profiling. */
5337 if (PROFILE_MODEL_P (current_cpu))
5338 {
5339 FLD (in_Rd) = f_operand2;
5340 FLD (out_Rd) = f_operand2;
5341 }
5342 #endif
5343 #undef FLD
5344 return idesc;
5345 }
5346
5347 extract_sfmt_bound_cw:
5348 {
5349 const IDESC *idesc = &crisv10f_insn_data[itype];
5350 CGEN_INSN_INT insn = base_insn;
5351 #define FLD(f) abuf->fields.sfmt_bound_cw.f
5352 INT f_indir_pc__word;
5353 UINT f_operand2;
5354 /* Contents of trailing part of insn. */
5355 UINT word_1;
5356
5357 word_1 = GETIMEMUHI (current_cpu, pc + 2);
5358 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
5359 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5360
5361 /* Record the fields for the semantic handler. */
5362 FLD (f_operand2) = f_operand2;
5363 FLD (f_indir_pc__word) = f_indir_pc__word;
5364 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));
5365
5366 #if WITH_PROFILE_MODEL_P
5367 /* Record the fields for profiling. */
5368 if (PROFILE_MODEL_P (current_cpu))
5369 {
5370 FLD (in_Rd) = f_operand2;
5371 FLD (out_Rd) = f_operand2;
5372 }
5373 #endif
5374 #undef FLD
5375 return idesc;
5376 }
5377
5378 extract_sfmt_bound_cd:
5379 {
5380 const IDESC *idesc = &crisv10f_insn_data[itype];
5381 CGEN_INSN_INT insn = base_insn;
5382 #define FLD(f) abuf->fields.sfmt_bound_cd.f
5383 INT f_indir_pc__dword;
5384 UINT f_operand2;
5385 /* Contents of trailing part of insn. */
5386 UINT word_1;
5387
5388 word_1 = GETIMEMUSI (current_cpu, pc + 2);
5389 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
5390 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5391
5392 /* Record the fields for the semantic handler. */
5393 FLD (f_operand2) = f_operand2;
5394 FLD (f_indir_pc__dword) = f_indir_pc__dword;
5395 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));
5396
5397 #if WITH_PROFILE_MODEL_P
5398 /* Record the fields for profiling. */
5399 if (PROFILE_MODEL_P (current_cpu))
5400 {
5401 FLD (in_Rd) = f_operand2;
5402 FLD (out_Rd) = f_operand2;
5403 }
5404 #endif
5405 #undef FLD
5406 return idesc;
5407 }
5408
5409 extract_sfmt_scc:
5410 {
5411 const IDESC *idesc = &crisv10f_insn_data[itype];
5412 CGEN_INSN_INT insn = base_insn;
5413 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
5414 UINT f_operand2;
5415 UINT f_operand1;
5416
5417 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5418 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5419
5420 /* Record the fields for the semantic handler. */
5421 FLD (f_operand2) = f_operand2;
5422 FLD (f_operand1) = f_operand1;
5423 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));
5424
5425 #if WITH_PROFILE_MODEL_P
5426 /* Record the fields for profiling. */
5427 if (PROFILE_MODEL_P (current_cpu))
5428 {
5429 FLD (out_Rs) = f_operand1;
5430 }
5431 #endif
5432 #undef FLD
5433 return idesc;
5434 }
5435
5436 extract_sfmt_addoq:
5437 {
5438 const IDESC *idesc = &crisv10f_insn_data[itype];
5439 CGEN_INSN_INT insn = base_insn;
5440 #define FLD(f) abuf->fields.sfmt_addoq.f
5441 UINT f_operand2;
5442 INT f_s8;
5443
5444 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5445 f_s8 = EXTRACT_LSB0_INT (insn, 16, 7, 8);
5446
5447 /* Record the fields for the semantic handler. */
5448 FLD (f_operand2) = f_operand2;
5449 FLD (f_s8) = f_s8;
5450 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));
5451
5452 #if WITH_PROFILE_MODEL_P
5453 /* Record the fields for profiling. */
5454 if (PROFILE_MODEL_P (current_cpu))
5455 {
5456 FLD (in_Rd) = f_operand2;
5457 }
5458 #endif
5459 #undef FLD
5460 return idesc;
5461 }
5462
5463 extract_sfmt_bdapqpc:
5464 {
5465 const IDESC *idesc = &crisv10f_insn_data[itype];
5466 CGEN_INSN_INT insn = base_insn;
5467 #define FLD(f) abuf->fields.sfmt_addoq.f
5468 INT f_s8;
5469
5470 f_s8 = EXTRACT_LSB0_INT (insn, 16, 7, 8);
5471
5472 /* Record the fields for the semantic handler. */
5473 FLD (f_s8) = f_s8;
5474 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bdapqpc", "f_s8 0x%x", 'x', f_s8, (char *) 0));
5475
5476 #if WITH_PROFILE_MODEL_P
5477 /* Record the fields for profiling. */
5478 if (PROFILE_MODEL_P (current_cpu))
5479 {
5480 }
5481 #endif
5482 #undef FLD
5483 return idesc;
5484 }
5485
5486 extract_sfmt_addo_m_b_m:
5487 {
5488 const IDESC *idesc = &crisv10f_insn_data[itype];
5489 CGEN_INSN_INT insn = base_insn;
5490 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
5491 UINT f_operand2;
5492 UINT f_memmode;
5493 UINT f_operand1;
5494
5495 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5496 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5497 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5498
5499 /* Record the fields for the semantic handler. */
5500 FLD (f_operand2) = f_operand2;
5501 FLD (f_operand1) = f_operand1;
5502 FLD (f_memmode) = f_memmode;
5503 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));
5504
5505 #if WITH_PROFILE_MODEL_P
5506 /* Record the fields for profiling. */
5507 if (PROFILE_MODEL_P (current_cpu))
5508 {
5509 FLD (in_Rd) = f_operand2;
5510 FLD (in_Rs) = f_operand1;
5511 FLD (out_Rs) = f_operand1;
5512 }
5513 #endif
5514 #undef FLD
5515 return idesc;
5516 }
5517
5518 extract_sfmt_addo_m_w_m:
5519 {
5520 const IDESC *idesc = &crisv10f_insn_data[itype];
5521 CGEN_INSN_INT insn = base_insn;
5522 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
5523 UINT f_operand2;
5524 UINT f_memmode;
5525 UINT f_operand1;
5526
5527 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5528 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5529 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5530
5531 /* Record the fields for the semantic handler. */
5532 FLD (f_operand2) = f_operand2;
5533 FLD (f_operand1) = f_operand1;
5534 FLD (f_memmode) = f_memmode;
5535 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));
5536
5537 #if WITH_PROFILE_MODEL_P
5538 /* Record the fields for profiling. */
5539 if (PROFILE_MODEL_P (current_cpu))
5540 {
5541 FLD (in_Rd) = f_operand2;
5542 FLD (in_Rs) = f_operand1;
5543 FLD (out_Rs) = f_operand1;
5544 }
5545 #endif
5546 #undef FLD
5547 return idesc;
5548 }
5549
5550 extract_sfmt_addo_m_d_m:
5551 {
5552 const IDESC *idesc = &crisv10f_insn_data[itype];
5553 CGEN_INSN_INT insn = base_insn;
5554 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
5555 UINT f_operand2;
5556 UINT f_memmode;
5557 UINT f_operand1;
5558
5559 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5560 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5561 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5562
5563 /* Record the fields for the semantic handler. */
5564 FLD (f_operand2) = f_operand2;
5565 FLD (f_operand1) = f_operand1;
5566 FLD (f_memmode) = f_memmode;
5567 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));
5568
5569 #if WITH_PROFILE_MODEL_P
5570 /* Record the fields for profiling. */
5571 if (PROFILE_MODEL_P (current_cpu))
5572 {
5573 FLD (in_Rd) = f_operand2;
5574 FLD (in_Rs) = f_operand1;
5575 FLD (out_Rs) = f_operand1;
5576 }
5577 #endif
5578 #undef FLD
5579 return idesc;
5580 }
5581
5582 extract_sfmt_addo_cb:
5583 {
5584 const IDESC *idesc = &crisv10f_insn_data[itype];
5585 CGEN_INSN_INT insn = base_insn;
5586 #define FLD(f) abuf->fields.sfmt_bound_cb.f
5587 INT f_indir_pc__byte;
5588 UINT f_operand2;
5589 /* Contents of trailing part of insn. */
5590 UINT word_1;
5591
5592 word_1 = GETIMEMUHI (current_cpu, pc + 2);
5593 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
5594 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5595
5596 /* Record the fields for the semantic handler. */
5597 FLD (f_operand2) = f_operand2;
5598 FLD (f_indir_pc__byte) = f_indir_pc__byte;
5599 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));
5600
5601 #if WITH_PROFILE_MODEL_P
5602 /* Record the fields for profiling. */
5603 if (PROFILE_MODEL_P (current_cpu))
5604 {
5605 FLD (in_Rd) = f_operand2;
5606 }
5607 #endif
5608 #undef FLD
5609 return idesc;
5610 }
5611
5612 extract_sfmt_addo_cw:
5613 {
5614 const IDESC *idesc = &crisv10f_insn_data[itype];
5615 CGEN_INSN_INT insn = base_insn;
5616 #define FLD(f) abuf->fields.sfmt_bound_cw.f
5617 INT f_indir_pc__word;
5618 UINT f_operand2;
5619 /* Contents of trailing part of insn. */
5620 UINT word_1;
5621
5622 word_1 = GETIMEMUHI (current_cpu, pc + 2);
5623 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
5624 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5625
5626 /* Record the fields for the semantic handler. */
5627 FLD (f_operand2) = f_operand2;
5628 FLD (f_indir_pc__word) = f_indir_pc__word;
5629 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));
5630
5631 #if WITH_PROFILE_MODEL_P
5632 /* Record the fields for profiling. */
5633 if (PROFILE_MODEL_P (current_cpu))
5634 {
5635 FLD (in_Rd) = f_operand2;
5636 }
5637 #endif
5638 #undef FLD
5639 return idesc;
5640 }
5641
5642 extract_sfmt_addo_cd:
5643 {
5644 const IDESC *idesc = &crisv10f_insn_data[itype];
5645 CGEN_INSN_INT insn = base_insn;
5646 #define FLD(f) abuf->fields.sfmt_bound_cd.f
5647 INT f_indir_pc__dword;
5648 UINT f_operand2;
5649 /* Contents of trailing part of insn. */
5650 UINT word_1;
5651
5652 word_1 = GETIMEMUSI (current_cpu, pc + 2);
5653 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
5654 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5655
5656 /* Record the fields for the semantic handler. */
5657 FLD (f_operand2) = f_operand2;
5658 FLD (f_indir_pc__dword) = f_indir_pc__dword;
5659 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));
5660
5661 #if WITH_PROFILE_MODEL_P
5662 /* Record the fields for profiling. */
5663 if (PROFILE_MODEL_P (current_cpu))
5664 {
5665 FLD (in_Rd) = f_operand2;
5666 }
5667 #endif
5668 #undef FLD
5669 return idesc;
5670 }
5671
5672 extract_sfmt_dip_m:
5673 {
5674 const IDESC *idesc = &crisv10f_insn_data[itype];
5675 CGEN_INSN_INT insn = base_insn;
5676 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
5677 UINT f_memmode;
5678 UINT f_operand1;
5679
5680 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5681 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5682
5683 /* Record the fields for the semantic handler. */
5684 FLD (f_operand1) = f_operand1;
5685 FLD (f_memmode) = f_memmode;
5686 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));
5687
5688 #if WITH_PROFILE_MODEL_P
5689 /* Record the fields for profiling. */
5690 if (PROFILE_MODEL_P (current_cpu))
5691 {
5692 FLD (in_Rs) = f_operand1;
5693 FLD (out_Rs) = f_operand1;
5694 }
5695 #endif
5696 #undef FLD
5697 return idesc;
5698 }
5699
5700 extract_sfmt_dip_c:
5701 {
5702 const IDESC *idesc = &crisv10f_insn_data[itype];
5703 CGEN_INSN_INT insn = base_insn;
5704 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p8.f
5705 INT f_indir_pc__dword;
5706 /* Contents of trailing part of insn. */
5707 UINT word_1;
5708
5709 word_1 = GETIMEMUSI (current_cpu, pc + 2);
5710 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
5711
5712 /* Record the fields for the semantic handler. */
5713 FLD (f_indir_pc__dword) = f_indir_pc__dword;
5714 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dip_c", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
5715
5716 #undef FLD
5717 return idesc;
5718 }
5719
5720 extract_sfmt_addi_acr_b_r:
5721 {
5722 const IDESC *idesc = &crisv10f_insn_data[itype];
5723 CGEN_INSN_INT insn = base_insn;
5724 #define FLD(f) abuf->fields.sfmt_add_b_r.f
5725 UINT f_operand2;
5726 UINT f_operand1;
5727
5728 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5729 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5730
5731 /* Record the fields for the semantic handler. */
5732 FLD (f_operand2) = f_operand2;
5733 FLD (f_operand1) = f_operand1;
5734 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));
5735
5736 #if WITH_PROFILE_MODEL_P
5737 /* Record the fields for profiling. */
5738 if (PROFILE_MODEL_P (current_cpu))
5739 {
5740 FLD (in_Rd) = f_operand2;
5741 FLD (in_Rs) = f_operand1;
5742 }
5743 #endif
5744 #undef FLD
5745 return idesc;
5746 }
5747
5748 extract_sfmt_biap_pc_b_r:
5749 {
5750 const IDESC *idesc = &crisv10f_insn_data[itype];
5751 CGEN_INSN_INT insn = base_insn;
5752 #define FLD(f) abuf->fields.sfmt_addoq.f
5753 UINT f_operand2;
5754
5755 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5756
5757 /* Record the fields for the semantic handler. */
5758 FLD (f_operand2) = f_operand2;
5759 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_biap_pc_b_r", "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
5760
5761 #if WITH_PROFILE_MODEL_P
5762 /* Record the fields for profiling. */
5763 if (PROFILE_MODEL_P (current_cpu))
5764 {
5765 FLD (in_Rd) = f_operand2;
5766 }
5767 #endif
5768 #undef FLD
5769 return idesc;
5770 }
5771
5772 }