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