Fix typo last entry
[deliverable/binutils-gdb.git] / sim / cris / decodev32.c
CommitLineData
f6bcefef
HPN
1/* Simulator instruction decoder for crisv32f.
2
3THIS FILE IS MACHINE GENERATED WITH CGEN.
4
cce0efb5 5Copyright 1996-2005 Free Software Foundation, Inc.
f6bcefef
HPN
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 crisv32f
26#define WANT_CPU_CRISV32F
27
28#include "sim-main.h"
29#include "sim-assert.h"
cce0efb5 30#include "cgen-ops.h"
f6bcefef
HPN
31
32/* The instruction descriptor array.
33 This is computed at runtime. Space for it is not malloc'd to save a
34 teensy bit of cpu in the decoder. Moving it to malloc space is trivial
35 but won't be done until necessary (we don't currently support the runtime
36 addition of instructions nor an SMP machine with different cpus). */
37static IDESC crisv32f_insn_data[CRISV32F_INSN__MAX];
38
39/* Commas between elements are contained in the macros.
40 Some of these are conditionally compiled out. */
41
42static const struct insn_sem crisv32f_insn_sem[] =
43{
44 { VIRTUAL_INSN_X_INVALID, CRISV32F_INSN_X_INVALID, CRISV32F_SFMT_EMPTY },
45 { VIRTUAL_INSN_X_AFTER, CRISV32F_INSN_X_AFTER, CRISV32F_SFMT_EMPTY },
46 { VIRTUAL_INSN_X_BEFORE, CRISV32F_INSN_X_BEFORE, CRISV32F_SFMT_EMPTY },
47 { VIRTUAL_INSN_X_CTI_CHAIN, CRISV32F_INSN_X_CTI_CHAIN, CRISV32F_SFMT_EMPTY },
48 { VIRTUAL_INSN_X_CHAIN, CRISV32F_INSN_X_CHAIN, CRISV32F_SFMT_EMPTY },
49 { VIRTUAL_INSN_X_BEGIN, CRISV32F_INSN_X_BEGIN, CRISV32F_SFMT_EMPTY },
50 { CRIS_INSN_MOVE_B_R, CRISV32F_INSN_MOVE_B_R, CRISV32F_SFMT_MOVE_B_R },
51 { CRIS_INSN_MOVE_W_R, CRISV32F_INSN_MOVE_W_R, CRISV32F_SFMT_MOVE_B_R },
52 { CRIS_INSN_MOVE_D_R, CRISV32F_INSN_MOVE_D_R, CRISV32F_SFMT_MOVE_D_R },
53 { CRIS_INSN_MOVEQ, CRISV32F_INSN_MOVEQ, CRISV32F_SFMT_MOVEQ },
54 { CRIS_INSN_MOVS_B_R, CRISV32F_INSN_MOVS_B_R, CRISV32F_SFMT_MOVS_B_R },
55 { CRIS_INSN_MOVS_W_R, CRISV32F_INSN_MOVS_W_R, CRISV32F_SFMT_MOVS_B_R },
56 { CRIS_INSN_MOVU_B_R, CRISV32F_INSN_MOVU_B_R, CRISV32F_SFMT_MOVS_B_R },
57 { CRIS_INSN_MOVU_W_R, CRISV32F_INSN_MOVU_W_R, CRISV32F_SFMT_MOVS_B_R },
58 { CRIS_INSN_MOVECBR, CRISV32F_INSN_MOVECBR, CRISV32F_SFMT_MOVECBR },
59 { CRIS_INSN_MOVECWR, CRISV32F_INSN_MOVECWR, CRISV32F_SFMT_MOVECWR },
60 { CRIS_INSN_MOVECDR, CRISV32F_INSN_MOVECDR, CRISV32F_SFMT_MOVECDR },
61 { CRIS_INSN_MOVSCBR, CRISV32F_INSN_MOVSCBR, CRISV32F_SFMT_MOVSCBR },
62 { CRIS_INSN_MOVSCWR, CRISV32F_INSN_MOVSCWR, CRISV32F_SFMT_MOVSCWR },
63 { CRIS_INSN_MOVUCBR, CRISV32F_INSN_MOVUCBR, CRISV32F_SFMT_MOVUCBR },
64 { CRIS_INSN_MOVUCWR, CRISV32F_INSN_MOVUCWR, CRISV32F_SFMT_MOVUCWR },
65 { CRIS_INSN_ADDQ, CRISV32F_INSN_ADDQ, CRISV32F_SFMT_ADDQ },
66 { CRIS_INSN_SUBQ, CRISV32F_INSN_SUBQ, CRISV32F_SFMT_ADDQ },
67 { CRIS_INSN_CMP_R_B_R, CRISV32F_INSN_CMP_R_B_R, CRISV32F_SFMT_CMP_R_B_R },
68 { CRIS_INSN_CMP_R_W_R, CRISV32F_INSN_CMP_R_W_R, CRISV32F_SFMT_CMP_R_B_R },
69 { CRIS_INSN_CMP_R_D_R, CRISV32F_INSN_CMP_R_D_R, CRISV32F_SFMT_CMP_R_B_R },
70 { CRIS_INSN_CMP_M_B_M, CRISV32F_INSN_CMP_M_B_M, CRISV32F_SFMT_CMP_M_B_M },
71 { CRIS_INSN_CMP_M_W_M, CRISV32F_INSN_CMP_M_W_M, CRISV32F_SFMT_CMP_M_W_M },
72 { CRIS_INSN_CMP_M_D_M, CRISV32F_INSN_CMP_M_D_M, CRISV32F_SFMT_CMP_M_D_M },
73 { CRIS_INSN_CMPCBR, CRISV32F_INSN_CMPCBR, CRISV32F_SFMT_CMPCBR },
74 { CRIS_INSN_CMPCWR, CRISV32F_INSN_CMPCWR, CRISV32F_SFMT_CMPCWR },
75 { CRIS_INSN_CMPCDR, CRISV32F_INSN_CMPCDR, CRISV32F_SFMT_CMPCDR },
76 { CRIS_INSN_CMPQ, CRISV32F_INSN_CMPQ, CRISV32F_SFMT_CMPQ },
77 { CRIS_INSN_CMPS_M_B_M, CRISV32F_INSN_CMPS_M_B_M, CRISV32F_SFMT_CMP_M_B_M },
78 { CRIS_INSN_CMPS_M_W_M, CRISV32F_INSN_CMPS_M_W_M, CRISV32F_SFMT_CMP_M_W_M },
79 { CRIS_INSN_CMPSCBR, CRISV32F_INSN_CMPSCBR, CRISV32F_SFMT_CMPCBR },
80 { CRIS_INSN_CMPSCWR, CRISV32F_INSN_CMPSCWR, CRISV32F_SFMT_CMPCWR },
81 { CRIS_INSN_CMPU_M_B_M, CRISV32F_INSN_CMPU_M_B_M, CRISV32F_SFMT_CMP_M_B_M },
82 { CRIS_INSN_CMPU_M_W_M, CRISV32F_INSN_CMPU_M_W_M, CRISV32F_SFMT_CMP_M_W_M },
83 { CRIS_INSN_CMPUCBR, CRISV32F_INSN_CMPUCBR, CRISV32F_SFMT_CMPUCBR },
84 { CRIS_INSN_CMPUCWR, CRISV32F_INSN_CMPUCWR, CRISV32F_SFMT_CMPUCWR },
85 { CRIS_INSN_MOVE_M_B_M, CRISV32F_INSN_MOVE_M_B_M, CRISV32F_SFMT_MOVE_M_B_M },
86 { CRIS_INSN_MOVE_M_W_M, CRISV32F_INSN_MOVE_M_W_M, CRISV32F_SFMT_MOVE_M_W_M },
87 { CRIS_INSN_MOVE_M_D_M, CRISV32F_INSN_MOVE_M_D_M, CRISV32F_SFMT_MOVE_M_D_M },
88 { CRIS_INSN_MOVS_M_B_M, CRISV32F_INSN_MOVS_M_B_M, CRISV32F_SFMT_MOVS_M_B_M },
89 { CRIS_INSN_MOVS_M_W_M, CRISV32F_INSN_MOVS_M_W_M, CRISV32F_SFMT_MOVS_M_W_M },
90 { CRIS_INSN_MOVU_M_B_M, CRISV32F_INSN_MOVU_M_B_M, CRISV32F_SFMT_MOVS_M_B_M },
91 { CRIS_INSN_MOVU_M_W_M, CRISV32F_INSN_MOVU_M_W_M, CRISV32F_SFMT_MOVS_M_W_M },
92 { CRIS_INSN_MOVE_R_SPRV32, CRISV32F_INSN_MOVE_R_SPRV32, CRISV32F_SFMT_MOVE_R_SPRV32 },
93 { CRIS_INSN_MOVE_SPR_RV32, CRISV32F_INSN_MOVE_SPR_RV32, CRISV32F_SFMT_MOVE_SPR_RV32 },
94 { CRIS_INSN_MOVE_M_SPRV32, CRISV32F_INSN_MOVE_M_SPRV32, CRISV32F_SFMT_MOVE_M_SPRV32 },
95 { CRIS_INSN_MOVE_C_SPRV32_P0, CRISV32F_INSN_MOVE_C_SPRV32_P0, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
96 { CRIS_INSN_MOVE_C_SPRV32_P1, CRISV32F_INSN_MOVE_C_SPRV32_P1, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
97 { CRIS_INSN_MOVE_C_SPRV32_P2, CRISV32F_INSN_MOVE_C_SPRV32_P2, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
98 { CRIS_INSN_MOVE_C_SPRV32_P3, CRISV32F_INSN_MOVE_C_SPRV32_P3, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
99 { CRIS_INSN_MOVE_C_SPRV32_P4, CRISV32F_INSN_MOVE_C_SPRV32_P4, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
100 { CRIS_INSN_MOVE_C_SPRV32_P5, CRISV32F_INSN_MOVE_C_SPRV32_P5, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
101 { CRIS_INSN_MOVE_C_SPRV32_P6, CRISV32F_INSN_MOVE_C_SPRV32_P6, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
102 { CRIS_INSN_MOVE_C_SPRV32_P7, CRISV32F_INSN_MOVE_C_SPRV32_P7, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
103 { CRIS_INSN_MOVE_C_SPRV32_P8, CRISV32F_INSN_MOVE_C_SPRV32_P8, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
104 { CRIS_INSN_MOVE_C_SPRV32_P9, CRISV32F_INSN_MOVE_C_SPRV32_P9, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
105 { CRIS_INSN_MOVE_C_SPRV32_P10, CRISV32F_INSN_MOVE_C_SPRV32_P10, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
106 { CRIS_INSN_MOVE_C_SPRV32_P11, CRISV32F_INSN_MOVE_C_SPRV32_P11, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
107 { CRIS_INSN_MOVE_C_SPRV32_P12, CRISV32F_INSN_MOVE_C_SPRV32_P12, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
108 { CRIS_INSN_MOVE_C_SPRV32_P13, CRISV32F_INSN_MOVE_C_SPRV32_P13, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
109 { CRIS_INSN_MOVE_C_SPRV32_P14, CRISV32F_INSN_MOVE_C_SPRV32_P14, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
110 { CRIS_INSN_MOVE_C_SPRV32_P15, CRISV32F_INSN_MOVE_C_SPRV32_P15, CRISV32F_SFMT_MOVE_C_SPRV32_P0 },
111 { CRIS_INSN_MOVE_SPR_MV32, CRISV32F_INSN_MOVE_SPR_MV32, CRISV32F_SFMT_MOVE_SPR_MV32 },
112 { CRIS_INSN_MOVE_SS_R, CRISV32F_INSN_MOVE_SS_R, CRISV32F_SFMT_MOVE_SS_R },
113 { CRIS_INSN_MOVE_R_SS, CRISV32F_INSN_MOVE_R_SS, CRISV32F_SFMT_MOVE_R_SS },
114 { CRIS_INSN_MOVEM_R_M_V32, CRISV32F_INSN_MOVEM_R_M_V32, CRISV32F_SFMT_MOVEM_R_M_V32 },
115 { CRIS_INSN_MOVEM_M_R_V32, CRISV32F_INSN_MOVEM_M_R_V32, CRISV32F_SFMT_MOVEM_M_R_V32 },
116 { CRIS_INSN_ADD_B_R, CRISV32F_INSN_ADD_B_R, CRISV32F_SFMT_ADD_B_R },
117 { CRIS_INSN_ADD_W_R, CRISV32F_INSN_ADD_W_R, CRISV32F_SFMT_ADD_B_R },
118 { CRIS_INSN_ADD_D_R, CRISV32F_INSN_ADD_D_R, CRISV32F_SFMT_ADD_D_R },
119 { CRIS_INSN_ADD_M_B_M, CRISV32F_INSN_ADD_M_B_M, CRISV32F_SFMT_ADD_M_B_M },
120 { CRIS_INSN_ADD_M_W_M, CRISV32F_INSN_ADD_M_W_M, CRISV32F_SFMT_ADD_M_W_M },
121 { CRIS_INSN_ADD_M_D_M, CRISV32F_INSN_ADD_M_D_M, CRISV32F_SFMT_ADD_M_D_M },
122 { CRIS_INSN_ADDCBR, CRISV32F_INSN_ADDCBR, CRISV32F_SFMT_ADDCBR },
123 { CRIS_INSN_ADDCWR, CRISV32F_INSN_ADDCWR, CRISV32F_SFMT_ADDCWR },
124 { CRIS_INSN_ADDCDR, CRISV32F_INSN_ADDCDR, CRISV32F_SFMT_ADDCDR },
125 { CRIS_INSN_ADDS_B_R, CRISV32F_INSN_ADDS_B_R, CRISV32F_SFMT_ADD_D_R },
126 { CRIS_INSN_ADDS_W_R, CRISV32F_INSN_ADDS_W_R, CRISV32F_SFMT_ADD_D_R },
127 { CRIS_INSN_ADDS_M_B_M, CRISV32F_INSN_ADDS_M_B_M, CRISV32F_SFMT_ADDS_M_B_M },
128 { CRIS_INSN_ADDS_M_W_M, CRISV32F_INSN_ADDS_M_W_M, CRISV32F_SFMT_ADDS_M_W_M },
129 { CRIS_INSN_ADDSCBR, CRISV32F_INSN_ADDSCBR, CRISV32F_SFMT_ADDSCBR },
130 { CRIS_INSN_ADDSCWR, CRISV32F_INSN_ADDSCWR, CRISV32F_SFMT_ADDSCWR },
131 { CRIS_INSN_ADDU_B_R, CRISV32F_INSN_ADDU_B_R, CRISV32F_SFMT_ADD_D_R },
132 { CRIS_INSN_ADDU_W_R, CRISV32F_INSN_ADDU_W_R, CRISV32F_SFMT_ADD_D_R },
133 { CRIS_INSN_ADDU_M_B_M, CRISV32F_INSN_ADDU_M_B_M, CRISV32F_SFMT_ADDS_M_B_M },
134 { CRIS_INSN_ADDU_M_W_M, CRISV32F_INSN_ADDU_M_W_M, CRISV32F_SFMT_ADDS_M_W_M },
135 { CRIS_INSN_ADDUCBR, CRISV32F_INSN_ADDUCBR, CRISV32F_SFMT_ADDSCBR },
136 { CRIS_INSN_ADDUCWR, CRISV32F_INSN_ADDUCWR, CRISV32F_SFMT_ADDSCWR },
137 { CRIS_INSN_SUB_B_R, CRISV32F_INSN_SUB_B_R, CRISV32F_SFMT_ADD_B_R },
138 { CRIS_INSN_SUB_W_R, CRISV32F_INSN_SUB_W_R, CRISV32F_SFMT_ADD_B_R },
139 { CRIS_INSN_SUB_D_R, CRISV32F_INSN_SUB_D_R, CRISV32F_SFMT_ADD_D_R },
140 { CRIS_INSN_SUB_M_B_M, CRISV32F_INSN_SUB_M_B_M, CRISV32F_SFMT_ADD_M_B_M },
141 { CRIS_INSN_SUB_M_W_M, CRISV32F_INSN_SUB_M_W_M, CRISV32F_SFMT_ADD_M_W_M },
142 { CRIS_INSN_SUB_M_D_M, CRISV32F_INSN_SUB_M_D_M, CRISV32F_SFMT_ADD_M_D_M },
143 { CRIS_INSN_SUBCBR, CRISV32F_INSN_SUBCBR, CRISV32F_SFMT_ADDCBR },
144 { CRIS_INSN_SUBCWR, CRISV32F_INSN_SUBCWR, CRISV32F_SFMT_ADDCWR },
145 { CRIS_INSN_SUBCDR, CRISV32F_INSN_SUBCDR, CRISV32F_SFMT_ADDCDR },
146 { CRIS_INSN_SUBS_B_R, CRISV32F_INSN_SUBS_B_R, CRISV32F_SFMT_ADD_D_R },
147 { CRIS_INSN_SUBS_W_R, CRISV32F_INSN_SUBS_W_R, CRISV32F_SFMT_ADD_D_R },
148 { CRIS_INSN_SUBS_M_B_M, CRISV32F_INSN_SUBS_M_B_M, CRISV32F_SFMT_ADDS_M_B_M },
149 { CRIS_INSN_SUBS_M_W_M, CRISV32F_INSN_SUBS_M_W_M, CRISV32F_SFMT_ADDS_M_W_M },
150 { CRIS_INSN_SUBSCBR, CRISV32F_INSN_SUBSCBR, CRISV32F_SFMT_ADDSCBR },
151 { CRIS_INSN_SUBSCWR, CRISV32F_INSN_SUBSCWR, CRISV32F_SFMT_ADDSCWR },
152 { CRIS_INSN_SUBU_B_R, CRISV32F_INSN_SUBU_B_R, CRISV32F_SFMT_ADD_D_R },
153 { CRIS_INSN_SUBU_W_R, CRISV32F_INSN_SUBU_W_R, CRISV32F_SFMT_ADD_D_R },
154 { CRIS_INSN_SUBU_M_B_M, CRISV32F_INSN_SUBU_M_B_M, CRISV32F_SFMT_ADDS_M_B_M },
155 { CRIS_INSN_SUBU_M_W_M, CRISV32F_INSN_SUBU_M_W_M, CRISV32F_SFMT_ADDS_M_W_M },
156 { CRIS_INSN_SUBUCBR, CRISV32F_INSN_SUBUCBR, CRISV32F_SFMT_ADDSCBR },
157 { CRIS_INSN_SUBUCWR, CRISV32F_INSN_SUBUCWR, CRISV32F_SFMT_ADDSCWR },
158 { CRIS_INSN_ADDC_R, CRISV32F_INSN_ADDC_R, CRISV32F_SFMT_ADD_D_R },
159 { CRIS_INSN_ADDC_M, CRISV32F_INSN_ADDC_M, CRISV32F_SFMT_ADDC_M },
160 { CRIS_INSN_ADDC_C, CRISV32F_INSN_ADDC_C, CRISV32F_SFMT_ADDCDR },
161 { CRIS_INSN_LAPC_D, CRISV32F_INSN_LAPC_D, CRISV32F_SFMT_LAPC_D },
162 { CRIS_INSN_LAPCQ, CRISV32F_INSN_LAPCQ, CRISV32F_SFMT_LAPCQ },
163 { CRIS_INSN_ADDI_B_R, CRISV32F_INSN_ADDI_B_R, CRISV32F_SFMT_ADDI_B_R },
164 { CRIS_INSN_ADDI_W_R, CRISV32F_INSN_ADDI_W_R, CRISV32F_SFMT_ADDI_B_R },
165 { CRIS_INSN_ADDI_D_R, CRISV32F_INSN_ADDI_D_R, CRISV32F_SFMT_ADDI_B_R },
166 { CRIS_INSN_NEG_B_R, CRISV32F_INSN_NEG_B_R, CRISV32F_SFMT_NEG_B_R },
167 { CRIS_INSN_NEG_W_R, CRISV32F_INSN_NEG_W_R, CRISV32F_SFMT_NEG_B_R },
168 { CRIS_INSN_NEG_D_R, CRISV32F_INSN_NEG_D_R, CRISV32F_SFMT_NEG_D_R },
169 { CRIS_INSN_TEST_M_B_M, CRISV32F_INSN_TEST_M_B_M, CRISV32F_SFMT_TEST_M_B_M },
170 { CRIS_INSN_TEST_M_W_M, CRISV32F_INSN_TEST_M_W_M, CRISV32F_SFMT_TEST_M_W_M },
171 { CRIS_INSN_TEST_M_D_M, CRISV32F_INSN_TEST_M_D_M, CRISV32F_SFMT_TEST_M_D_M },
172 { CRIS_INSN_MOVE_R_M_B_M, CRISV32F_INSN_MOVE_R_M_B_M, CRISV32F_SFMT_MOVE_R_M_B_M },
173 { CRIS_INSN_MOVE_R_M_W_M, CRISV32F_INSN_MOVE_R_M_W_M, CRISV32F_SFMT_MOVE_R_M_W_M },
174 { CRIS_INSN_MOVE_R_M_D_M, CRISV32F_INSN_MOVE_R_M_D_M, CRISV32F_SFMT_MOVE_R_M_D_M },
175 { CRIS_INSN_MULS_B, CRISV32F_INSN_MULS_B, CRISV32F_SFMT_MULS_B },
176 { CRIS_INSN_MULS_W, CRISV32F_INSN_MULS_W, CRISV32F_SFMT_MULS_B },
177 { CRIS_INSN_MULS_D, CRISV32F_INSN_MULS_D, CRISV32F_SFMT_MULS_B },
178 { CRIS_INSN_MULU_B, CRISV32F_INSN_MULU_B, CRISV32F_SFMT_MULS_B },
179 { CRIS_INSN_MULU_W, CRISV32F_INSN_MULU_W, CRISV32F_SFMT_MULS_B },
180 { CRIS_INSN_MULU_D, CRISV32F_INSN_MULU_D, CRISV32F_SFMT_MULS_B },
181 { CRIS_INSN_MCP, CRISV32F_INSN_MCP, CRISV32F_SFMT_MCP },
182 { CRIS_INSN_DSTEP, CRISV32F_INSN_DSTEP, CRISV32F_SFMT_DSTEP },
183 { CRIS_INSN_ABS, CRISV32F_INSN_ABS, CRISV32F_SFMT_MOVS_B_R },
184 { CRIS_INSN_AND_B_R, CRISV32F_INSN_AND_B_R, CRISV32F_SFMT_AND_B_R },
185 { CRIS_INSN_AND_W_R, CRISV32F_INSN_AND_W_R, CRISV32F_SFMT_AND_W_R },
186 { CRIS_INSN_AND_D_R, CRISV32F_INSN_AND_D_R, CRISV32F_SFMT_AND_D_R },
187 { CRIS_INSN_AND_M_B_M, CRISV32F_INSN_AND_M_B_M, CRISV32F_SFMT_AND_M_B_M },
188 { CRIS_INSN_AND_M_W_M, CRISV32F_INSN_AND_M_W_M, CRISV32F_SFMT_AND_M_W_M },
189 { CRIS_INSN_AND_M_D_M, CRISV32F_INSN_AND_M_D_M, CRISV32F_SFMT_AND_M_D_M },
190 { CRIS_INSN_ANDCBR, CRISV32F_INSN_ANDCBR, CRISV32F_SFMT_ANDCBR },
191 { CRIS_INSN_ANDCWR, CRISV32F_INSN_ANDCWR, CRISV32F_SFMT_ANDCWR },
192 { CRIS_INSN_ANDCDR, CRISV32F_INSN_ANDCDR, CRISV32F_SFMT_ANDCDR },
193 { CRIS_INSN_ANDQ, CRISV32F_INSN_ANDQ, CRISV32F_SFMT_ANDQ },
194 { CRIS_INSN_ORR_B_R, CRISV32F_INSN_ORR_B_R, CRISV32F_SFMT_AND_B_R },
195 { CRIS_INSN_ORR_W_R, CRISV32F_INSN_ORR_W_R, CRISV32F_SFMT_AND_W_R },
196 { CRIS_INSN_ORR_D_R, CRISV32F_INSN_ORR_D_R, CRISV32F_SFMT_AND_D_R },
197 { CRIS_INSN_OR_M_B_M, CRISV32F_INSN_OR_M_B_M, CRISV32F_SFMT_AND_M_B_M },
198 { CRIS_INSN_OR_M_W_M, CRISV32F_INSN_OR_M_W_M, CRISV32F_SFMT_AND_M_W_M },
199 { CRIS_INSN_OR_M_D_M, CRISV32F_INSN_OR_M_D_M, CRISV32F_SFMT_AND_M_D_M },
200 { CRIS_INSN_ORCBR, CRISV32F_INSN_ORCBR, CRISV32F_SFMT_ANDCBR },
201 { CRIS_INSN_ORCWR, CRISV32F_INSN_ORCWR, CRISV32F_SFMT_ANDCWR },
202 { CRIS_INSN_ORCDR, CRISV32F_INSN_ORCDR, CRISV32F_SFMT_ANDCDR },
203 { CRIS_INSN_ORQ, CRISV32F_INSN_ORQ, CRISV32F_SFMT_ANDQ },
204 { CRIS_INSN_XOR, CRISV32F_INSN_XOR, CRISV32F_SFMT_DSTEP },
205 { CRIS_INSN_SWAP, CRISV32F_INSN_SWAP, CRISV32F_SFMT_SWAP },
206 { CRIS_INSN_ASRR_B_R, CRISV32F_INSN_ASRR_B_R, CRISV32F_SFMT_ASRR_B_R },
207 { CRIS_INSN_ASRR_W_R, CRISV32F_INSN_ASRR_W_R, CRISV32F_SFMT_ASRR_B_R },
208 { CRIS_INSN_ASRR_D_R, CRISV32F_INSN_ASRR_D_R, CRISV32F_SFMT_AND_D_R },
209 { CRIS_INSN_ASRQ, CRISV32F_INSN_ASRQ, CRISV32F_SFMT_ASRQ },
210 { CRIS_INSN_LSRR_B_R, CRISV32F_INSN_LSRR_B_R, CRISV32F_SFMT_LSRR_B_R },
211 { CRIS_INSN_LSRR_W_R, CRISV32F_INSN_LSRR_W_R, CRISV32F_SFMT_LSRR_B_R },
212 { CRIS_INSN_LSRR_D_R, CRISV32F_INSN_LSRR_D_R, CRISV32F_SFMT_LSRR_D_R },
213 { CRIS_INSN_LSRQ, CRISV32F_INSN_LSRQ, CRISV32F_SFMT_ASRQ },
214 { CRIS_INSN_LSLR_B_R, CRISV32F_INSN_LSLR_B_R, CRISV32F_SFMT_LSRR_B_R },
215 { CRIS_INSN_LSLR_W_R, CRISV32F_INSN_LSLR_W_R, CRISV32F_SFMT_LSRR_B_R },
216 { CRIS_INSN_LSLR_D_R, CRISV32F_INSN_LSLR_D_R, CRISV32F_SFMT_LSRR_D_R },
217 { CRIS_INSN_LSLQ, CRISV32F_INSN_LSLQ, CRISV32F_SFMT_ASRQ },
218 { CRIS_INSN_BTST, CRISV32F_INSN_BTST, CRISV32F_SFMT_BTST },
219 { CRIS_INSN_BTSTQ, CRISV32F_INSN_BTSTQ, CRISV32F_SFMT_BTSTQ },
220 { CRIS_INSN_SETF, CRISV32F_INSN_SETF, CRISV32F_SFMT_SETF },
221 { CRIS_INSN_CLEARF, CRISV32F_INSN_CLEARF, CRISV32F_SFMT_SETF },
222 { CRIS_INSN_RFE, CRISV32F_INSN_RFE, CRISV32F_SFMT_RFE },
223 { CRIS_INSN_SFE, CRISV32F_INSN_SFE, CRISV32F_SFMT_SFE },
224 { CRIS_INSN_RFG, CRISV32F_INSN_RFG, CRISV32F_SFMT_RFG },
225 { CRIS_INSN_RFN, CRISV32F_INSN_RFN, CRISV32F_SFMT_RFN },
226 { CRIS_INSN_HALT, CRISV32F_INSN_HALT, CRISV32F_SFMT_HALT },
227 { CRIS_INSN_BCC_B, CRISV32F_INSN_BCC_B, CRISV32F_SFMT_BCC_B },
228 { CRIS_INSN_BA_B, CRISV32F_INSN_BA_B, CRISV32F_SFMT_BA_B },
229 { CRIS_INSN_BCC_W, CRISV32F_INSN_BCC_W, CRISV32F_SFMT_BCC_W },
230 { CRIS_INSN_BA_W, CRISV32F_INSN_BA_W, CRISV32F_SFMT_BA_W },
231 { CRIS_INSN_JAS_R, CRISV32F_INSN_JAS_R, CRISV32F_SFMT_JAS_R },
232 { CRIS_INSN_JAS_C, CRISV32F_INSN_JAS_C, CRISV32F_SFMT_JAS_C },
233 { CRIS_INSN_JUMP_P, CRISV32F_INSN_JUMP_P, CRISV32F_SFMT_JUMP_P },
234 { CRIS_INSN_BAS_C, CRISV32F_INSN_BAS_C, CRISV32F_SFMT_BAS_C },
235 { CRIS_INSN_JASC_R, CRISV32F_INSN_JASC_R, CRISV32F_SFMT_JASC_R },
236 { CRIS_INSN_JASC_C, CRISV32F_INSN_JASC_C, CRISV32F_SFMT_JAS_C },
237 { CRIS_INSN_BASC_C, CRISV32F_INSN_BASC_C, CRISV32F_SFMT_BAS_C },
238 { CRIS_INSN_BREAK, CRISV32F_INSN_BREAK, CRISV32F_SFMT_BREAK },
239 { CRIS_INSN_BOUND_R_B_R, CRISV32F_INSN_BOUND_R_B_R, CRISV32F_SFMT_DSTEP },
240 { CRIS_INSN_BOUND_R_W_R, CRISV32F_INSN_BOUND_R_W_R, CRISV32F_SFMT_DSTEP },
241 { CRIS_INSN_BOUND_R_D_R, CRISV32F_INSN_BOUND_R_D_R, CRISV32F_SFMT_DSTEP },
242 { CRIS_INSN_BOUND_CB, CRISV32F_INSN_BOUND_CB, CRISV32F_SFMT_BOUND_CB },
243 { CRIS_INSN_BOUND_CW, CRISV32F_INSN_BOUND_CW, CRISV32F_SFMT_BOUND_CW },
244 { CRIS_INSN_BOUND_CD, CRISV32F_INSN_BOUND_CD, CRISV32F_SFMT_BOUND_CD },
245 { CRIS_INSN_SCC, CRISV32F_INSN_SCC, CRISV32F_SFMT_SCC },
246 { CRIS_INSN_LZ, CRISV32F_INSN_LZ, CRISV32F_SFMT_MOVS_B_R },
247 { CRIS_INSN_ADDOQ, CRISV32F_INSN_ADDOQ, CRISV32F_SFMT_ADDOQ },
248 { CRIS_INSN_ADDO_M_B_M, CRISV32F_INSN_ADDO_M_B_M, CRISV32F_SFMT_ADDO_M_B_M },
249 { CRIS_INSN_ADDO_M_W_M, CRISV32F_INSN_ADDO_M_W_M, CRISV32F_SFMT_ADDO_M_W_M },
250 { CRIS_INSN_ADDO_M_D_M, CRISV32F_INSN_ADDO_M_D_M, CRISV32F_SFMT_ADDO_M_D_M },
251 { CRIS_INSN_ADDO_CB, CRISV32F_INSN_ADDO_CB, CRISV32F_SFMT_ADDO_CB },
252 { CRIS_INSN_ADDO_CW, CRISV32F_INSN_ADDO_CW, CRISV32F_SFMT_ADDO_CW },
253 { CRIS_INSN_ADDO_CD, CRISV32F_INSN_ADDO_CD, CRISV32F_SFMT_ADDO_CD },
254 { CRIS_INSN_ADDI_ACR_B_R, CRISV32F_INSN_ADDI_ACR_B_R, CRISV32F_SFMT_ADDI_ACR_B_R },
255 { CRIS_INSN_ADDI_ACR_W_R, CRISV32F_INSN_ADDI_ACR_W_R, CRISV32F_SFMT_ADDI_ACR_B_R },
256 { CRIS_INSN_ADDI_ACR_D_R, CRISV32F_INSN_ADDI_ACR_D_R, CRISV32F_SFMT_ADDI_ACR_B_R },
257 { CRIS_INSN_FIDXI, CRISV32F_INSN_FIDXI, CRISV32F_SFMT_FIDXI },
258 { CRIS_INSN_FTAGI, CRISV32F_INSN_FTAGI, CRISV32F_SFMT_FIDXI },
259 { CRIS_INSN_FIDXD, CRISV32F_INSN_FIDXD, CRISV32F_SFMT_FIDXI },
260 { CRIS_INSN_FTAGD, CRISV32F_INSN_FTAGD, CRISV32F_SFMT_FIDXI },
261};
262
263static const struct insn_sem crisv32f_insn_sem_invalid = {
264 VIRTUAL_INSN_X_INVALID, CRISV32F_INSN_X_INVALID, CRISV32F_SFMT_EMPTY
265};
266
267/* Initialize an IDESC from the compile-time computable parts. */
268
269static INLINE void
270init_idesc (SIM_CPU *cpu, IDESC *id, const struct insn_sem *t)
271{
272 const CGEN_INSN *insn_table = CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu))->init_entries;
273
274 id->num = t->index;
275 id->sfmt = t->sfmt;
276 if ((int) t->type <= 0)
277 id->idata = & cgen_virtual_insn_table[- (int) t->type];
278 else
279 id->idata = & insn_table[t->type];
280 id->attrs = CGEN_INSN_ATTRS (id->idata);
281 /* Oh my god, a magic number. */
282 id->length = CGEN_INSN_BITSIZE (id->idata) / 8;
283
284#if WITH_PROFILE_MODEL_P
285 id->timing = & MODEL_TIMING (CPU_MODEL (cpu)) [t->index];
286 {
287 SIM_DESC sd = CPU_STATE (cpu);
288 SIM_ASSERT (t->index == id->timing->num);
289 }
290#endif
291
292 /* Semantic pointers are initialized elsewhere. */
293}
294
295/* Initialize the instruction descriptor table. */
296
297void
298crisv32f_init_idesc_table (SIM_CPU *cpu)
299{
300 IDESC *id,*tabend;
301 const struct insn_sem *t,*tend;
302 int tabsize = CRISV32F_INSN__MAX;
303 IDESC *table = crisv32f_insn_data;
304
305 memset (table, 0, tabsize * sizeof (IDESC));
306
307 /* First set all entries to the `invalid insn'. */
308 t = & crisv32f_insn_sem_invalid;
309 for (id = table, tabend = table + tabsize; id < tabend; ++id)
310 init_idesc (cpu, id, t);
311
312 /* Now fill in the values for the chosen cpu. */
313 for (t = crisv32f_insn_sem, tend = t + sizeof (crisv32f_insn_sem) / sizeof (*t);
314 t != tend; ++t)
315 {
316 init_idesc (cpu, & table[t->index], t);
317 }
318
319 /* Link the IDESC table into the cpu. */
320 CPU_IDESC (cpu) = table;
321}
322
323/* Given an instruction, return a pointer to its IDESC entry. */
324
325const IDESC *
326crisv32f_decode (SIM_CPU *current_cpu, IADDR pc,
327 CGEN_INSN_INT base_insn,
328 ARGBUF *abuf)
329{
330 /* Result of decoder. */
331 CRISV32F_INSN_TYPE itype;
332
333 {
334 CGEN_INSN_INT insn = base_insn;
335
336 {
337 unsigned int val = (((insn >> 4) & (255 << 0)));
338 switch (val)
339 {
340 case 0 : /* fall through */
341 case 1 : /* fall through */
342 case 2 : /* fall through */
343 case 3 : /* fall through */
344 case 4 : /* fall through */
345 case 5 : /* fall through */
346 case 6 : /* fall through */
347 case 7 : /* fall through */
348 case 8 : /* fall through */
349 case 9 : /* fall through */
350 case 10 : /* fall through */
351 case 11 : /* fall through */
352 case 12 : /* fall through */
353 case 13 : /* fall through */
354 case 14 : /* fall through */
355 case 15 :
356 {
357 unsigned int val = (((insn >> 12) & (15 << 0)));
358 switch (val)
359 {
360 case 0 : /* fall through */
361 case 1 : /* fall through */
362 case 2 : /* fall through */
363 case 3 : /* fall through */
364 case 4 : /* fall through */
365 case 5 : /* fall through */
366 case 6 : /* fall through */
367 case 7 : /* fall through */
368 case 8 : /* fall through */
369 case 9 : /* fall through */
370 case 10 : /* fall through */
371 case 11 : /* fall through */
372 case 12 : /* fall through */
373 case 13 : /* fall through */
374 case 15 : itype = CRISV32F_INSN_BCC_B; goto extract_sfmt_bcc_b;
375 case 14 : itype = CRISV32F_INSN_BA_B; goto extract_sfmt_ba_b;
376 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
377 }
378 }
379 case 16 : /* fall through */
380 case 17 : /* fall through */
381 case 18 : /* fall through */
382 case 19 : /* fall through */
383 case 20 : /* fall through */
384 case 21 : /* fall through */
385 case 22 : /* fall through */
386 case 23 : /* fall through */
387 case 24 : /* fall through */
388 case 25 : /* fall through */
389 case 26 : /* fall through */
390 case 27 : /* fall through */
391 case 28 : /* fall through */
392 case 29 : /* fall through */
393 case 30 : /* fall through */
394 case 31 : itype = CRISV32F_INSN_ADDOQ; goto extract_sfmt_addoq;
395 case 32 : /* fall through */
396 case 33 : /* fall through */
397 case 34 : /* fall through */
398 case 35 : itype = CRISV32F_INSN_ADDQ; goto extract_sfmt_addq;
399 case 36 : /* fall through */
400 case 37 : /* fall through */
401 case 38 : /* fall through */
402 case 39 : itype = CRISV32F_INSN_MOVEQ; goto extract_sfmt_moveq;
403 case 40 : /* fall through */
404 case 41 : /* fall through */
405 case 42 : /* fall through */
406 case 43 : itype = CRISV32F_INSN_SUBQ; goto extract_sfmt_addq;
407 case 44 : /* fall through */
408 case 45 : /* fall through */
409 case 46 : /* fall through */
410 case 47 : itype = CRISV32F_INSN_CMPQ; goto extract_sfmt_cmpq;
411 case 48 : /* fall through */
412 case 49 : /* fall through */
413 case 50 : /* fall through */
414 case 51 : itype = CRISV32F_INSN_ANDQ; goto extract_sfmt_andq;
415 case 52 : /* fall through */
416 case 53 : /* fall through */
417 case 54 : /* fall through */
418 case 55 : itype = CRISV32F_INSN_ORQ; goto extract_sfmt_andq;
419 case 56 : /* fall through */
420 case 57 : itype = CRISV32F_INSN_BTSTQ; goto extract_sfmt_btstq;
421 case 58 : /* fall through */
422 case 59 : itype = CRISV32F_INSN_ASRQ; goto extract_sfmt_asrq;
423 case 60 : /* fall through */
424 case 61 : itype = CRISV32F_INSN_LSLQ; goto extract_sfmt_asrq;
425 case 62 : /* fall through */
426 case 63 : itype = CRISV32F_INSN_LSRQ; goto extract_sfmt_asrq;
427 case 64 : itype = CRISV32F_INSN_ADDU_B_R; goto extract_sfmt_add_d_r;
428 case 65 : itype = CRISV32F_INSN_ADDU_W_R; goto extract_sfmt_add_d_r;
429 case 66 : itype = CRISV32F_INSN_ADDS_B_R; goto extract_sfmt_add_d_r;
430 case 67 : itype = CRISV32F_INSN_ADDS_W_R; goto extract_sfmt_add_d_r;
431 case 68 : itype = CRISV32F_INSN_MOVU_B_R; goto extract_sfmt_movs_b_r;
432 case 69 : itype = CRISV32F_INSN_MOVU_W_R; goto extract_sfmt_movs_b_r;
433 case 70 : itype = CRISV32F_INSN_MOVS_B_R; goto extract_sfmt_movs_b_r;
434 case 71 : itype = CRISV32F_INSN_MOVS_W_R; goto extract_sfmt_movs_b_r;
435 case 72 : itype = CRISV32F_INSN_SUBU_B_R; goto extract_sfmt_add_d_r;
436 case 73 : itype = CRISV32F_INSN_SUBU_W_R; goto extract_sfmt_add_d_r;
437 case 74 : itype = CRISV32F_INSN_SUBS_B_R; goto extract_sfmt_add_d_r;
438 case 75 : itype = CRISV32F_INSN_SUBS_W_R; goto extract_sfmt_add_d_r;
439 case 76 : itype = CRISV32F_INSN_LSLR_B_R; goto extract_sfmt_lsrr_b_r;
440 case 77 : itype = CRISV32F_INSN_LSLR_W_R; goto extract_sfmt_lsrr_b_r;
441 case 78 : itype = CRISV32F_INSN_LSLR_D_R; goto extract_sfmt_lsrr_d_r;
442 case 79 : itype = CRISV32F_INSN_BTST; goto extract_sfmt_btst;
443 case 80 : itype = CRISV32F_INSN_ADDI_B_R; goto extract_sfmt_addi_b_r;
444 case 81 : itype = CRISV32F_INSN_ADDI_W_R; goto extract_sfmt_addi_b_r;
445 case 82 : itype = CRISV32F_INSN_ADDI_D_R; goto extract_sfmt_addi_b_r;
446 case 83 : itype = CRISV32F_INSN_SCC; goto extract_sfmt_scc;
447 case 84 : itype = CRISV32F_INSN_ADDI_ACR_B_R; goto extract_sfmt_addi_acr_b_r;
448 case 85 : itype = CRISV32F_INSN_ADDI_ACR_W_R; goto extract_sfmt_addi_acr_b_r;
449 case 86 : itype = CRISV32F_INSN_ADDI_ACR_D_R; goto extract_sfmt_addi_acr_b_r;
450 case 87 : itype = CRISV32F_INSN_ADDC_R; goto extract_sfmt_add_d_r;
451 case 88 : itype = CRISV32F_INSN_NEG_B_R; goto extract_sfmt_neg_b_r;
452 case 89 : itype = CRISV32F_INSN_NEG_W_R; goto extract_sfmt_neg_b_r;
453 case 90 : itype = CRISV32F_INSN_NEG_D_R; goto extract_sfmt_neg_d_r;
454 case 91 : itype = CRISV32F_INSN_SETF; goto extract_sfmt_setf;
455 case 92 : itype = CRISV32F_INSN_BOUND_R_B_R; goto extract_sfmt_dstep;
456 case 93 : itype = CRISV32F_INSN_BOUND_R_W_R; goto extract_sfmt_dstep;
457 case 94 : itype = CRISV32F_INSN_BOUND_R_D_R; goto extract_sfmt_dstep;
458 case 95 : itype = CRISV32F_INSN_CLEARF; goto extract_sfmt_setf;
459 case 96 : itype = CRISV32F_INSN_ADD_B_R; goto extract_sfmt_add_b_r;
460 case 97 : itype = CRISV32F_INSN_ADD_W_R; goto extract_sfmt_add_b_r;
461 case 98 : itype = CRISV32F_INSN_ADD_D_R; goto extract_sfmt_add_d_r;
462 case 99 : itype = CRISV32F_INSN_MOVE_R_SPRV32; goto extract_sfmt_move_r_sprv32;
463 case 100 : itype = CRISV32F_INSN_MOVE_B_R; goto extract_sfmt_move_b_r;
464 case 101 : itype = CRISV32F_INSN_MOVE_W_R; goto extract_sfmt_move_b_r;
465 case 102 : itype = CRISV32F_INSN_MOVE_D_R; goto extract_sfmt_move_d_r;
466 case 103 : itype = CRISV32F_INSN_MOVE_SPR_RV32; goto extract_sfmt_move_spr_rv32;
467 case 104 : itype = CRISV32F_INSN_SUB_B_R; goto extract_sfmt_add_b_r;
468 case 105 : itype = CRISV32F_INSN_SUB_W_R; goto extract_sfmt_add_b_r;
469 case 106 : itype = CRISV32F_INSN_SUB_D_R; goto extract_sfmt_add_d_r;
470 case 107 : itype = CRISV32F_INSN_ABS; goto extract_sfmt_movs_b_r;
471 case 108 : itype = CRISV32F_INSN_CMP_R_B_R; goto extract_sfmt_cmp_r_b_r;
472 case 109 : itype = CRISV32F_INSN_CMP_R_W_R; goto extract_sfmt_cmp_r_b_r;
473 case 110 : itype = CRISV32F_INSN_CMP_R_D_R; goto extract_sfmt_cmp_r_b_r;
474 case 111 : itype = CRISV32F_INSN_DSTEP; goto extract_sfmt_dstep;
475 case 112 : itype = CRISV32F_INSN_AND_B_R; goto extract_sfmt_and_b_r;
476 case 113 : itype = CRISV32F_INSN_AND_W_R; goto extract_sfmt_and_w_r;
477 case 114 : itype = CRISV32F_INSN_AND_D_R; goto extract_sfmt_and_d_r;
478 case 115 : itype = CRISV32F_INSN_LZ; goto extract_sfmt_movs_b_r;
479 case 116 : itype = CRISV32F_INSN_ORR_B_R; goto extract_sfmt_and_b_r;
480 case 117 : itype = CRISV32F_INSN_ORR_W_R; goto extract_sfmt_and_w_r;
481 case 118 : itype = CRISV32F_INSN_ORR_D_R; goto extract_sfmt_and_d_r;
482 case 119 : itype = CRISV32F_INSN_SWAP; goto extract_sfmt_swap;
483 case 120 : itype = CRISV32F_INSN_ASRR_B_R; goto extract_sfmt_asrr_b_r;
484 case 121 : itype = CRISV32F_INSN_ASRR_W_R; goto extract_sfmt_asrr_b_r;
485 case 122 : itype = CRISV32F_INSN_ASRR_D_R; goto extract_sfmt_and_d_r;
486 case 123 : itype = CRISV32F_INSN_XOR; goto extract_sfmt_dstep;
487 case 124 : itype = CRISV32F_INSN_LSRR_B_R; goto extract_sfmt_lsrr_b_r;
488 case 125 : itype = CRISV32F_INSN_LSRR_W_R; goto extract_sfmt_lsrr_b_r;
489 case 126 : itype = CRISV32F_INSN_LSRR_D_R; goto extract_sfmt_lsrr_d_r;
490 case 127 : itype = CRISV32F_INSN_MCP; goto extract_sfmt_mcp;
491 case 128 : itype = CRISV32F_INSN_ADDU_M_B_M; goto extract_sfmt_adds_m_b_m;
492 case 129 : itype = CRISV32F_INSN_ADDU_M_W_M; goto extract_sfmt_adds_m_w_m;
493 case 130 : itype = CRISV32F_INSN_ADDS_M_B_M; goto extract_sfmt_adds_m_b_m;
494 case 131 : itype = CRISV32F_INSN_ADDS_M_W_M; goto extract_sfmt_adds_m_w_m;
495 case 132 : itype = CRISV32F_INSN_MOVU_M_B_M; goto extract_sfmt_movs_m_b_m;
496 case 133 : itype = CRISV32F_INSN_MOVU_M_W_M; goto extract_sfmt_movs_m_w_m;
497 case 134 : itype = CRISV32F_INSN_MOVS_M_B_M; goto extract_sfmt_movs_m_b_m;
498 case 135 : itype = CRISV32F_INSN_MOVS_M_W_M; goto extract_sfmt_movs_m_w_m;
499 case 136 : itype = CRISV32F_INSN_SUBU_M_B_M; goto extract_sfmt_adds_m_b_m;
500 case 137 : itype = CRISV32F_INSN_SUBU_M_W_M; goto extract_sfmt_adds_m_w_m;
501 case 138 : itype = CRISV32F_INSN_SUBS_M_B_M; goto extract_sfmt_adds_m_b_m;
502 case 139 : itype = CRISV32F_INSN_SUBS_M_W_M; goto extract_sfmt_adds_m_w_m;
503 case 140 : itype = CRISV32F_INSN_CMPU_M_B_M; goto extract_sfmt_cmp_m_b_m;
504 case 141 : itype = CRISV32F_INSN_CMPU_M_W_M; goto extract_sfmt_cmp_m_w_m;
505 case 142 : itype = CRISV32F_INSN_CMPS_M_B_M; goto extract_sfmt_cmp_m_b_m;
506 case 143 : itype = CRISV32F_INSN_CMPS_M_W_M; goto extract_sfmt_cmp_m_w_m;
507 case 144 : itype = CRISV32F_INSN_MULU_B; goto extract_sfmt_muls_b;
508 case 145 : itype = CRISV32F_INSN_MULU_W; goto extract_sfmt_muls_b;
509 case 146 : itype = CRISV32F_INSN_MULU_D; goto extract_sfmt_muls_b;
510 case 147 :
511 {
512 unsigned int val = (((insn >> 12) & (15 << 0)));
513 switch (val)
514 {
515 case 2 : itype = CRISV32F_INSN_RFE; goto extract_sfmt_rfe;
516 case 3 : itype = CRISV32F_INSN_SFE; goto extract_sfmt_sfe;
517 case 4 : itype = CRISV32F_INSN_RFG; goto extract_sfmt_rfg;
518 case 5 : itype = CRISV32F_INSN_RFN; goto extract_sfmt_rfn;
519 case 14 : itype = CRISV32F_INSN_BREAK; goto extract_sfmt_break;
520 case 15 : itype = CRISV32F_INSN_HALT; goto extract_sfmt_halt;
521 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
522 }
523 }
524 case 148 : itype = CRISV32F_INSN_ADDO_M_B_M; goto extract_sfmt_addo_m_b_m;
525 case 149 : itype = CRISV32F_INSN_ADDO_M_W_M; goto extract_sfmt_addo_m_w_m;
526 case 150 : itype = CRISV32F_INSN_ADDO_M_D_M; goto extract_sfmt_addo_m_d_m;
527 case 151 : itype = CRISV32F_INSN_LAPCQ; goto extract_sfmt_lapcq;
528 case 154 : itype = CRISV32F_INSN_ADDC_M; goto extract_sfmt_addc_m;
529 case 155 : itype = CRISV32F_INSN_JAS_R; goto extract_sfmt_jas_r;
530 case 159 : itype = CRISV32F_INSN_JUMP_P; goto extract_sfmt_jump_p;
531 case 160 : itype = CRISV32F_INSN_ADD_M_B_M; goto extract_sfmt_add_m_b_m;
532 case 161 : itype = CRISV32F_INSN_ADD_M_W_M; goto extract_sfmt_add_m_w_m;
533 case 162 : itype = CRISV32F_INSN_ADD_M_D_M; goto extract_sfmt_add_m_d_m;
534 case 163 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
535 case 164 : itype = CRISV32F_INSN_MOVE_M_B_M; goto extract_sfmt_move_m_b_m;
536 case 165 : itype = CRISV32F_INSN_MOVE_M_W_M; goto extract_sfmt_move_m_w_m;
537 case 166 : itype = CRISV32F_INSN_MOVE_M_D_M; goto extract_sfmt_move_m_d_m;
538 case 167 : /* fall through */
539 case 231 : itype = CRISV32F_INSN_MOVE_SPR_MV32; goto extract_sfmt_move_spr_mv32;
540 case 168 : itype = CRISV32F_INSN_SUB_M_B_M; goto extract_sfmt_add_m_b_m;
541 case 169 : itype = CRISV32F_INSN_SUB_M_W_M; goto extract_sfmt_add_m_w_m;
542 case 170 : itype = CRISV32F_INSN_SUB_M_D_M; goto extract_sfmt_add_m_d_m;
543 case 171 :
544 {
545 unsigned int val = (((insn >> 12) & (1 << 0)));
546 switch (val)
547 {
548 case 0 : itype = CRISV32F_INSN_FIDXD; goto extract_sfmt_fidxi;
549 case 1 : itype = CRISV32F_INSN_FTAGD; goto extract_sfmt_fidxi;
550 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
551 }
552 }
553 case 172 : itype = CRISV32F_INSN_CMP_M_B_M; goto extract_sfmt_cmp_m_b_m;
554 case 173 : itype = CRISV32F_INSN_CMP_M_W_M; goto extract_sfmt_cmp_m_w_m;
555 case 174 : itype = CRISV32F_INSN_CMP_M_D_M; goto extract_sfmt_cmp_m_d_m;
556 case 176 : itype = CRISV32F_INSN_AND_M_B_M; goto extract_sfmt_and_m_b_m;
557 case 177 : itype = CRISV32F_INSN_AND_M_W_M; goto extract_sfmt_and_m_w_m;
558 case 178 : itype = CRISV32F_INSN_AND_M_D_M; goto extract_sfmt_and_m_d_m;
559 case 179 : itype = CRISV32F_INSN_JASC_R; goto extract_sfmt_jasc_r;
560 case 180 : itype = CRISV32F_INSN_OR_M_B_M; goto extract_sfmt_and_m_b_m;
561 case 181 : itype = CRISV32F_INSN_OR_M_W_M; goto extract_sfmt_and_m_w_m;
562 case 182 : itype = CRISV32F_INSN_OR_M_D_M; goto extract_sfmt_and_m_d_m;
563 case 183 : itype = CRISV32F_INSN_MOVE_R_SS; goto extract_sfmt_move_r_ss;
564 case 184 : /* fall through */
565 case 248 : itype = CRISV32F_INSN_TEST_M_B_M; goto extract_sfmt_test_m_b_m;
566 case 185 : /* fall through */
567 case 249 : itype = CRISV32F_INSN_TEST_M_W_M; goto extract_sfmt_test_m_w_m;
568 case 186 : /* fall through */
569 case 250 : itype = CRISV32F_INSN_TEST_M_D_M; goto extract_sfmt_test_m_d_m;
570 case 187 : /* fall through */
571 case 251 : itype = CRISV32F_INSN_MOVEM_M_R_V32; goto extract_sfmt_movem_m_r_v32;
572 case 188 : /* fall through */
573 case 252 : itype = CRISV32F_INSN_MOVE_R_M_B_M; goto extract_sfmt_move_r_m_b_m;
574 case 189 : /* fall through */
575 case 253 : itype = CRISV32F_INSN_MOVE_R_M_W_M; goto extract_sfmt_move_r_m_w_m;
576 case 190 : /* fall through */
577 case 254 : itype = CRISV32F_INSN_MOVE_R_M_D_M; goto extract_sfmt_move_r_m_d_m;
578 case 191 : /* fall through */
579 case 255 : itype = CRISV32F_INSN_MOVEM_R_M_V32; goto extract_sfmt_movem_r_m_v32;
580 case 192 :
581 {
582 unsigned int val = (((insn >> 0) & (15 << 0)));
583 switch (val)
584 {
585 case 0 : /* fall through */
586 case 1 : /* fall through */
587 case 2 : /* fall through */
588 case 3 : /* fall through */
589 case 4 : /* fall through */
590 case 5 : /* fall through */
591 case 6 : /* fall through */
592 case 7 : /* fall through */
593 case 8 : /* fall through */
594 case 9 : /* fall through */
595 case 10 : /* fall through */
596 case 11 : /* fall through */
597 case 12 : /* fall through */
598 case 13 : /* fall through */
599 case 14 : itype = CRISV32F_INSN_ADDU_M_B_M; goto extract_sfmt_adds_m_b_m;
600 case 15 : itype = CRISV32F_INSN_ADDUCBR; goto extract_sfmt_addscbr;
601 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
602 }
603 }
604 case 193 :
605 {
606 unsigned int val = (((insn >> 0) & (15 << 0)));
607 switch (val)
608 {
609 case 0 : /* fall through */
610 case 1 : /* fall through */
611 case 2 : /* fall through */
612 case 3 : /* fall through */
613 case 4 : /* fall through */
614 case 5 : /* fall through */
615 case 6 : /* fall through */
616 case 7 : /* fall through */
617 case 8 : /* fall through */
618 case 9 : /* fall through */
619 case 10 : /* fall through */
620 case 11 : /* fall through */
621 case 12 : /* fall through */
622 case 13 : /* fall through */
623 case 14 : itype = CRISV32F_INSN_ADDU_M_W_M; goto extract_sfmt_adds_m_w_m;
624 case 15 : itype = CRISV32F_INSN_ADDUCWR; goto extract_sfmt_addscwr;
625 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
626 }
627 }
628 case 194 :
629 {
630 unsigned int val = (((insn >> 0) & (15 << 0)));
631 switch (val)
632 {
633 case 0 : /* fall through */
634 case 1 : /* fall through */
635 case 2 : /* fall through */
636 case 3 : /* fall through */
637 case 4 : /* fall through */
638 case 5 : /* fall through */
639 case 6 : /* fall through */
640 case 7 : /* fall through */
641 case 8 : /* fall through */
642 case 9 : /* fall through */
643 case 10 : /* fall through */
644 case 11 : /* fall through */
645 case 12 : /* fall through */
646 case 13 : /* fall through */
647 case 14 : itype = CRISV32F_INSN_ADDS_M_B_M; goto extract_sfmt_adds_m_b_m;
648 case 15 : itype = CRISV32F_INSN_ADDSCBR; goto extract_sfmt_addscbr;
649 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
650 }
651 }
652 case 195 :
653 {
654 unsigned int val = (((insn >> 0) & (15 << 0)));
655 switch (val)
656 {
657 case 0 : /* fall through */
658 case 1 : /* fall through */
659 case 2 : /* fall through */
660 case 3 : /* fall through */
661 case 4 : /* fall through */
662 case 5 : /* fall through */
663 case 6 : /* fall through */
664 case 7 : /* fall through */
665 case 8 : /* fall through */
666 case 9 : /* fall through */
667 case 10 : /* fall through */
668 case 11 : /* fall through */
669 case 12 : /* fall through */
670 case 13 : /* fall through */
671 case 14 : itype = CRISV32F_INSN_ADDS_M_W_M; goto extract_sfmt_adds_m_w_m;
672 case 15 : itype = CRISV32F_INSN_ADDSCWR; goto extract_sfmt_addscwr;
673 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
674 }
675 }
676 case 196 :
677 {
678 unsigned int val = (((insn >> 0) & (15 << 0)));
679 switch (val)
680 {
681 case 0 : /* fall through */
682 case 1 : /* fall through */
683 case 2 : /* fall through */
684 case 3 : /* fall through */
685 case 4 : /* fall through */
686 case 5 : /* fall through */
687 case 6 : /* fall through */
688 case 7 : /* fall through */
689 case 8 : /* fall through */
690 case 9 : /* fall through */
691 case 10 : /* fall through */
692 case 11 : /* fall through */
693 case 12 : /* fall through */
694 case 13 : /* fall through */
695 case 14 : itype = CRISV32F_INSN_MOVU_M_B_M; goto extract_sfmt_movs_m_b_m;
696 case 15 : itype = CRISV32F_INSN_MOVUCBR; goto extract_sfmt_movucbr;
697 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
698 }
699 }
700 case 197 :
701 {
702 unsigned int val = (((insn >> 0) & (15 << 0)));
703 switch (val)
704 {
705 case 0 : /* fall through */
706 case 1 : /* fall through */
707 case 2 : /* fall through */
708 case 3 : /* fall through */
709 case 4 : /* fall through */
710 case 5 : /* fall through */
711 case 6 : /* fall through */
712 case 7 : /* fall through */
713 case 8 : /* fall through */
714 case 9 : /* fall through */
715 case 10 : /* fall through */
716 case 11 : /* fall through */
717 case 12 : /* fall through */
718 case 13 : /* fall through */
719 case 14 : itype = CRISV32F_INSN_MOVU_M_W_M; goto extract_sfmt_movs_m_w_m;
720 case 15 : itype = CRISV32F_INSN_MOVUCWR; goto extract_sfmt_movucwr;
721 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
722 }
723 }
724 case 198 :
725 {
726 unsigned int val = (((insn >> 0) & (15 << 0)));
727 switch (val)
728 {
729 case 0 : /* fall through */
730 case 1 : /* fall through */
731 case 2 : /* fall through */
732 case 3 : /* fall through */
733 case 4 : /* fall through */
734 case 5 : /* fall through */
735 case 6 : /* fall through */
736 case 7 : /* fall through */
737 case 8 : /* fall through */
738 case 9 : /* fall through */
739 case 10 : /* fall through */
740 case 11 : /* fall through */
741 case 12 : /* fall through */
742 case 13 : /* fall through */
743 case 14 : itype = CRISV32F_INSN_MOVS_M_B_M; goto extract_sfmt_movs_m_b_m;
744 case 15 : itype = CRISV32F_INSN_MOVSCBR; goto extract_sfmt_movscbr;
745 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
746 }
747 }
748 case 199 :
749 {
750 unsigned int val = (((insn >> 0) & (15 << 0)));
751 switch (val)
752 {
753 case 0 : /* fall through */
754 case 1 : /* fall through */
755 case 2 : /* fall through */
756 case 3 : /* fall through */
757 case 4 : /* fall through */
758 case 5 : /* fall through */
759 case 6 : /* fall through */
760 case 7 : /* fall through */
761 case 8 : /* fall through */
762 case 9 : /* fall through */
763 case 10 : /* fall through */
764 case 11 : /* fall through */
765 case 12 : /* fall through */
766 case 13 : /* fall through */
767 case 14 : itype = CRISV32F_INSN_MOVS_M_W_M; goto extract_sfmt_movs_m_w_m;
768 case 15 : itype = CRISV32F_INSN_MOVSCWR; goto extract_sfmt_movscwr;
769 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
770 }
771 }
772 case 200 :
773 {
774 unsigned int val = (((insn >> 0) & (15 << 0)));
775 switch (val)
776 {
777 case 0 : /* fall through */
778 case 1 : /* fall through */
779 case 2 : /* fall through */
780 case 3 : /* fall through */
781 case 4 : /* fall through */
782 case 5 : /* fall through */
783 case 6 : /* fall through */
784 case 7 : /* fall through */
785 case 8 : /* fall through */
786 case 9 : /* fall through */
787 case 10 : /* fall through */
788 case 11 : /* fall through */
789 case 12 : /* fall through */
790 case 13 : /* fall through */
791 case 14 : itype = CRISV32F_INSN_SUBU_M_B_M; goto extract_sfmt_adds_m_b_m;
792 case 15 : itype = CRISV32F_INSN_SUBUCBR; goto extract_sfmt_addscbr;
793 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
794 }
795 }
796 case 201 :
797 {
798 unsigned int val = (((insn >> 0) & (15 << 0)));
799 switch (val)
800 {
801 case 0 : /* fall through */
802 case 1 : /* fall through */
803 case 2 : /* fall through */
804 case 3 : /* fall through */
805 case 4 : /* fall through */
806 case 5 : /* fall through */
807 case 6 : /* fall through */
808 case 7 : /* fall through */
809 case 8 : /* fall through */
810 case 9 : /* fall through */
811 case 10 : /* fall through */
812 case 11 : /* fall through */
813 case 12 : /* fall through */
814 case 13 : /* fall through */
815 case 14 : itype = CRISV32F_INSN_SUBU_M_W_M; goto extract_sfmt_adds_m_w_m;
816 case 15 : itype = CRISV32F_INSN_SUBUCWR; goto extract_sfmt_addscwr;
817 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
818 }
819 }
820 case 202 :
821 {
822 unsigned int val = (((insn >> 0) & (15 << 0)));
823 switch (val)
824 {
825 case 0 : /* fall through */
826 case 1 : /* fall through */
827 case 2 : /* fall through */
828 case 3 : /* fall through */
829 case 4 : /* fall through */
830 case 5 : /* fall through */
831 case 6 : /* fall through */
832 case 7 : /* fall through */
833 case 8 : /* fall through */
834 case 9 : /* fall through */
835 case 10 : /* fall through */
836 case 11 : /* fall through */
837 case 12 : /* fall through */
838 case 13 : /* fall through */
839 case 14 : itype = CRISV32F_INSN_SUBS_M_B_M; goto extract_sfmt_adds_m_b_m;
840 case 15 : itype = CRISV32F_INSN_SUBSCBR; goto extract_sfmt_addscbr;
841 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
842 }
843 }
844 case 203 :
845 {
846 unsigned int val = (((insn >> 0) & (15 << 0)));
847 switch (val)
848 {
849 case 0 : /* fall through */
850 case 1 : /* fall through */
851 case 2 : /* fall through */
852 case 3 : /* fall through */
853 case 4 : /* fall through */
854 case 5 : /* fall through */
855 case 6 : /* fall through */
856 case 7 : /* fall through */
857 case 8 : /* fall through */
858 case 9 : /* fall through */
859 case 10 : /* fall through */
860 case 11 : /* fall through */
861 case 12 : /* fall through */
862 case 13 : /* fall through */
863 case 14 : itype = CRISV32F_INSN_SUBS_M_W_M; goto extract_sfmt_adds_m_w_m;
864 case 15 : itype = CRISV32F_INSN_SUBSCWR; goto extract_sfmt_addscwr;
865 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
866 }
867 }
868 case 204 :
869 {
870 unsigned int val = (((insn >> 0) & (15 << 0)));
871 switch (val)
872 {
873 case 0 : /* fall through */
874 case 1 : /* fall through */
875 case 2 : /* fall through */
876 case 3 : /* fall through */
877 case 4 : /* fall through */
878 case 5 : /* fall through */
879 case 6 : /* fall through */
880 case 7 : /* fall through */
881 case 8 : /* fall through */
882 case 9 : /* fall through */
883 case 10 : /* fall through */
884 case 11 : /* fall through */
885 case 12 : /* fall through */
886 case 13 : /* fall through */
887 case 14 : itype = CRISV32F_INSN_CMPU_M_B_M; goto extract_sfmt_cmp_m_b_m;
888 case 15 : itype = CRISV32F_INSN_CMPUCBR; goto extract_sfmt_cmpucbr;
889 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
890 }
891 }
892 case 205 :
893 {
894 unsigned int val = (((insn >> 0) & (15 << 0)));
895 switch (val)
896 {
897 case 0 : /* fall through */
898 case 1 : /* fall through */
899 case 2 : /* fall through */
900 case 3 : /* fall through */
901 case 4 : /* fall through */
902 case 5 : /* fall through */
903 case 6 : /* fall through */
904 case 7 : /* fall through */
905 case 8 : /* fall through */
906 case 9 : /* fall through */
907 case 10 : /* fall through */
908 case 11 : /* fall through */
909 case 12 : /* fall through */
910 case 13 : /* fall through */
911 case 14 : itype = CRISV32F_INSN_CMPU_M_W_M; goto extract_sfmt_cmp_m_w_m;
912 case 15 : itype = CRISV32F_INSN_CMPUCWR; goto extract_sfmt_cmpucwr;
913 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
914 }
915 }
916 case 206 :
917 {
918 unsigned int val = (((insn >> 0) & (15 << 0)));
919 switch (val)
920 {
921 case 0 : /* fall through */
922 case 1 : /* fall through */
923 case 2 : /* fall through */
924 case 3 : /* fall through */
925 case 4 : /* fall through */
926 case 5 : /* fall through */
927 case 6 : /* fall through */
928 case 7 : /* fall through */
929 case 8 : /* fall through */
930 case 9 : /* fall through */
931 case 10 : /* fall through */
932 case 11 : /* fall through */
933 case 12 : /* fall through */
934 case 13 : /* fall through */
935 case 14 : itype = CRISV32F_INSN_CMPS_M_B_M; goto extract_sfmt_cmp_m_b_m;
936 case 15 : itype = CRISV32F_INSN_CMPSCBR; goto extract_sfmt_cmpcbr;
937 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
938 }
939 }
940 case 207 :
941 {
942 unsigned int val = (((insn >> 0) & (15 << 0)));
943 switch (val)
944 {
945 case 0 : /* fall through */
946 case 1 : /* fall through */
947 case 2 : /* fall through */
948 case 3 : /* fall through */
949 case 4 : /* fall through */
950 case 5 : /* fall through */
951 case 6 : /* fall through */
952 case 7 : /* fall through */
953 case 8 : /* fall through */
954 case 9 : /* fall through */
955 case 10 : /* fall through */
956 case 11 : /* fall through */
957 case 12 : /* fall through */
958 case 13 : /* fall through */
959 case 14 : itype = CRISV32F_INSN_CMPS_M_W_M; goto extract_sfmt_cmp_m_w_m;
960 case 15 : itype = CRISV32F_INSN_CMPSCWR; goto extract_sfmt_cmpcwr;
961 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
962 }
963 }
964 case 208 : itype = CRISV32F_INSN_MULS_B; goto extract_sfmt_muls_b;
965 case 209 : itype = CRISV32F_INSN_MULS_W; goto extract_sfmt_muls_b;
966 case 210 : itype = CRISV32F_INSN_MULS_D; goto extract_sfmt_muls_b;
967 case 211 :
968 {
969 unsigned int val = (((insn >> 12) & (1 << 0)));
970 switch (val)
971 {
972 case 0 : itype = CRISV32F_INSN_FIDXI; goto extract_sfmt_fidxi;
973 case 1 : itype = CRISV32F_INSN_FTAGI; goto extract_sfmt_fidxi;
974 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
975 }
976 }
977 case 212 :
978 {
979 unsigned int val = (((insn >> 0) & (15 << 0)));
980 switch (val)
981 {
982 case 0 : /* fall through */
983 case 1 : /* fall through */
984 case 2 : /* fall through */
985 case 3 : /* fall through */
986 case 4 : /* fall through */
987 case 5 : /* fall through */
988 case 6 : /* fall through */
989 case 7 : /* fall through */
990 case 8 : /* fall through */
991 case 9 : /* fall through */
992 case 10 : /* fall through */
993 case 11 : /* fall through */
994 case 12 : /* fall through */
995 case 13 : /* fall through */
996 case 14 : itype = CRISV32F_INSN_ADDO_M_B_M; goto extract_sfmt_addo_m_b_m;
997 case 15 : itype = CRISV32F_INSN_ADDO_CB; goto extract_sfmt_addo_cb;
998 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
999 }
1000 }
1001 case 213 :
1002 {
1003 unsigned int val = (((insn >> 0) & (15 << 0)));
1004 switch (val)
1005 {
1006 case 0 : /* fall through */
1007 case 1 : /* fall through */
1008 case 2 : /* fall through */
1009 case 3 : /* fall through */
1010 case 4 : /* fall through */
1011 case 5 : /* fall through */
1012 case 6 : /* fall through */
1013 case 7 : /* fall through */
1014 case 8 : /* fall through */
1015 case 9 : /* fall through */
1016 case 10 : /* fall through */
1017 case 11 : /* fall through */
1018 case 12 : /* fall through */
1019 case 13 : /* fall through */
1020 case 14 : itype = CRISV32F_INSN_ADDO_M_W_M; goto extract_sfmt_addo_m_w_m;
1021 case 15 : itype = CRISV32F_INSN_ADDO_CW; goto extract_sfmt_addo_cw;
1022 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1023 }
1024 }
1025 case 214 :
1026 {
1027 unsigned int val = (((insn >> 0) & (15 << 0)));
1028 switch (val)
1029 {
1030 case 0 : /* fall through */
1031 case 1 : /* fall through */
1032 case 2 : /* fall through */
1033 case 3 : /* fall through */
1034 case 4 : /* fall through */
1035 case 5 : /* fall through */
1036 case 6 : /* fall through */
1037 case 7 : /* fall through */
1038 case 8 : /* fall through */
1039 case 9 : /* fall through */
1040 case 10 : /* fall through */
1041 case 11 : /* fall through */
1042 case 12 : /* fall through */
1043 case 13 : /* fall through */
1044 case 14 : itype = CRISV32F_INSN_ADDO_M_D_M; goto extract_sfmt_addo_m_d_m;
1045 case 15 : itype = CRISV32F_INSN_ADDO_CD; goto extract_sfmt_addo_cd;
1046 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1047 }
1048 }
1049 case 215 : itype = CRISV32F_INSN_LAPC_D; goto extract_sfmt_lapc_d;
1050 case 218 :
1051 {
1052 unsigned int val = (((insn >> 0) & (15 << 0)));
1053 switch (val)
1054 {
1055 case 0 : /* fall through */
1056 case 1 : /* fall through */
1057 case 2 : /* fall through */
1058 case 3 : /* fall through */
1059 case 4 : /* fall through */
1060 case 5 : /* fall through */
1061 case 6 : /* fall through */
1062 case 7 : /* fall through */
1063 case 8 : /* fall through */
1064 case 9 : /* fall through */
1065 case 10 : /* fall through */
1066 case 11 : /* fall through */
1067 case 12 : /* fall through */
1068 case 13 : /* fall through */
1069 case 14 : itype = CRISV32F_INSN_ADDC_M; goto extract_sfmt_addc_m;
1070 case 15 : itype = CRISV32F_INSN_ADDC_C; goto extract_sfmt_addcdr;
1071 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1072 }
1073 }
1074 case 219 : itype = CRISV32F_INSN_JAS_C; goto extract_sfmt_jas_c;
1075 case 220 : itype = CRISV32F_INSN_BOUND_CB; goto extract_sfmt_bound_cb;
1076 case 221 : itype = CRISV32F_INSN_BOUND_CW; goto extract_sfmt_bound_cw;
1077 case 222 : itype = CRISV32F_INSN_BOUND_CD; goto extract_sfmt_bound_cd;
1078 case 223 :
1079 {
1080 unsigned int val = (((insn >> 12) & (15 << 0)));
1081 switch (val)
1082 {
1083 case 0 : /* fall through */
1084 case 1 : /* fall through */
1085 case 2 : /* fall through */
1086 case 3 : /* fall through */
1087 case 4 : /* fall through */
1088 case 5 : /* fall through */
1089 case 6 : /* fall through */
1090 case 7 : /* fall through */
1091 case 8 : /* fall through */
1092 case 9 : /* fall through */
1093 case 10 : /* fall through */
1094 case 11 : /* fall through */
1095 case 12 : /* fall through */
1096 case 13 : /* fall through */
1097 case 15 : itype = CRISV32F_INSN_BCC_W; goto extract_sfmt_bcc_w;
1098 case 14 : itype = CRISV32F_INSN_BA_W; goto extract_sfmt_ba_w;
1099 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1100 }
1101 }
1102 case 224 :
1103 {
1104 unsigned int val = (((insn >> 0) & (15 << 0)));
1105 switch (val)
1106 {
1107 case 0 : /* fall through */
1108 case 1 : /* fall through */
1109 case 2 : /* fall through */
1110 case 3 : /* fall through */
1111 case 4 : /* fall through */
1112 case 5 : /* fall through */
1113 case 6 : /* fall through */
1114 case 7 : /* fall through */
1115 case 8 : /* fall through */
1116 case 9 : /* fall through */
1117 case 10 : /* fall through */
1118 case 11 : /* fall through */
1119 case 12 : /* fall through */
1120 case 13 : /* fall through */
1121 case 14 : itype = CRISV32F_INSN_ADD_M_B_M; goto extract_sfmt_add_m_b_m;
1122 case 15 : itype = CRISV32F_INSN_ADDCBR; goto extract_sfmt_addcbr;
1123 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1124 }
1125 }
1126 case 225 :
1127 {
1128 unsigned int val = (((insn >> 0) & (15 << 0)));
1129 switch (val)
1130 {
1131 case 0 : /* fall through */
1132 case 1 : /* fall through */
1133 case 2 : /* fall through */
1134 case 3 : /* fall through */
1135 case 4 : /* fall through */
1136 case 5 : /* fall through */
1137 case 6 : /* fall through */
1138 case 7 : /* fall through */
1139 case 8 : /* fall through */
1140 case 9 : /* fall through */
1141 case 10 : /* fall through */
1142 case 11 : /* fall through */
1143 case 12 : /* fall through */
1144 case 13 : /* fall through */
1145 case 14 : itype = CRISV32F_INSN_ADD_M_W_M; goto extract_sfmt_add_m_w_m;
1146 case 15 : itype = CRISV32F_INSN_ADDCWR; goto extract_sfmt_addcwr;
1147 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1148 }
1149 }
1150 case 226 :
1151 {
1152 unsigned int val = (((insn >> 0) & (15 << 0)));
1153 switch (val)
1154 {
1155 case 0 : /* fall through */
1156 case 1 : /* fall through */
1157 case 2 : /* fall through */
1158 case 3 : /* fall through */
1159 case 4 : /* fall through */
1160 case 5 : /* fall through */
1161 case 6 : /* fall through */
1162 case 7 : /* fall through */
1163 case 8 : /* fall through */
1164 case 9 : /* fall through */
1165 case 10 : /* fall through */
1166 case 11 : /* fall through */
1167 case 12 : /* fall through */
1168 case 13 : /* fall through */
1169 case 14 : itype = CRISV32F_INSN_ADD_M_D_M; goto extract_sfmt_add_m_d_m;
1170 case 15 : itype = CRISV32F_INSN_ADDCDR; goto extract_sfmt_addcdr;
1171 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1172 }
1173 }
1174 case 227 :
1175 {
1176 unsigned int val = (((insn >> 12) & (15 << 0)));
1177 switch (val)
1178 {
1179 case 0 :
1180 {
1181 unsigned int val = (((insn >> 0) & (15 << 0)));
1182 switch (val)
1183 {
1184 case 0 : /* fall through */
1185 case 1 : /* fall through */
1186 case 2 : /* fall through */
1187 case 3 : /* fall through */
1188 case 4 : /* fall through */
1189 case 5 : /* fall through */
1190 case 6 : /* fall through */
1191 case 7 : /* fall through */
1192 case 8 : /* fall through */
1193 case 9 : /* fall through */
1194 case 10 : /* fall through */
1195 case 11 : /* fall through */
1196 case 12 : /* fall through */
1197 case 13 : /* fall through */
1198 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1199 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P0; goto extract_sfmt_move_c_sprv32_p0;
1200 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1201 }
1202 }
1203 case 1 :
1204 {
1205 unsigned int val = (((insn >> 0) & (15 << 0)));
1206 switch (val)
1207 {
1208 case 0 : /* fall through */
1209 case 1 : /* fall through */
1210 case 2 : /* fall through */
1211 case 3 : /* fall through */
1212 case 4 : /* fall through */
1213 case 5 : /* fall through */
1214 case 6 : /* fall through */
1215 case 7 : /* fall through */
1216 case 8 : /* fall through */
1217 case 9 : /* fall through */
1218 case 10 : /* fall through */
1219 case 11 : /* fall through */
1220 case 12 : /* fall through */
1221 case 13 : /* fall through */
1222 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1223 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P1; goto extract_sfmt_move_c_sprv32_p0;
1224 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1225 }
1226 }
1227 case 2 :
1228 {
1229 unsigned int val = (((insn >> 0) & (15 << 0)));
1230 switch (val)
1231 {
1232 case 0 : /* fall through */
1233 case 1 : /* fall through */
1234 case 2 : /* fall through */
1235 case 3 : /* fall through */
1236 case 4 : /* fall through */
1237 case 5 : /* fall through */
1238 case 6 : /* fall through */
1239 case 7 : /* fall through */
1240 case 8 : /* fall through */
1241 case 9 : /* fall through */
1242 case 10 : /* fall through */
1243 case 11 : /* fall through */
1244 case 12 : /* fall through */
1245 case 13 : /* fall through */
1246 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1247 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P2; goto extract_sfmt_move_c_sprv32_p0;
1248 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1249 }
1250 }
1251 case 3 :
1252 {
1253 unsigned int val = (((insn >> 0) & (15 << 0)));
1254 switch (val)
1255 {
1256 case 0 : /* fall through */
1257 case 1 : /* fall through */
1258 case 2 : /* fall through */
1259 case 3 : /* fall through */
1260 case 4 : /* fall through */
1261 case 5 : /* fall through */
1262 case 6 : /* fall through */
1263 case 7 : /* fall through */
1264 case 8 : /* fall through */
1265 case 9 : /* fall through */
1266 case 10 : /* fall through */
1267 case 11 : /* fall through */
1268 case 12 : /* fall through */
1269 case 13 : /* fall through */
1270 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1271 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P3; goto extract_sfmt_move_c_sprv32_p0;
1272 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1273 }
1274 }
1275 case 4 :
1276 {
1277 unsigned int val = (((insn >> 0) & (15 << 0)));
1278 switch (val)
1279 {
1280 case 0 : /* fall through */
1281 case 1 : /* fall through */
1282 case 2 : /* fall through */
1283 case 3 : /* fall through */
1284 case 4 : /* fall through */
1285 case 5 : /* fall through */
1286 case 6 : /* fall through */
1287 case 7 : /* fall through */
1288 case 8 : /* fall through */
1289 case 9 : /* fall through */
1290 case 10 : /* fall through */
1291 case 11 : /* fall through */
1292 case 12 : /* fall through */
1293 case 13 : /* fall through */
1294 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1295 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P4; goto extract_sfmt_move_c_sprv32_p0;
1296 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1297 }
1298 }
1299 case 5 :
1300 {
1301 unsigned int val = (((insn >> 0) & (15 << 0)));
1302 switch (val)
1303 {
1304 case 0 : /* fall through */
1305 case 1 : /* fall through */
1306 case 2 : /* fall through */
1307 case 3 : /* fall through */
1308 case 4 : /* fall through */
1309 case 5 : /* fall through */
1310 case 6 : /* fall through */
1311 case 7 : /* fall through */
1312 case 8 : /* fall through */
1313 case 9 : /* fall through */
1314 case 10 : /* fall through */
1315 case 11 : /* fall through */
1316 case 12 : /* fall through */
1317 case 13 : /* fall through */
1318 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1319 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P5; goto extract_sfmt_move_c_sprv32_p0;
1320 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1321 }
1322 }
1323 case 6 :
1324 {
1325 unsigned int val = (((insn >> 0) & (15 << 0)));
1326 switch (val)
1327 {
1328 case 0 : /* fall through */
1329 case 1 : /* fall through */
1330 case 2 : /* fall through */
1331 case 3 : /* fall through */
1332 case 4 : /* fall through */
1333 case 5 : /* fall through */
1334 case 6 : /* fall through */
1335 case 7 : /* fall through */
1336 case 8 : /* fall through */
1337 case 9 : /* fall through */
1338 case 10 : /* fall through */
1339 case 11 : /* fall through */
1340 case 12 : /* fall through */
1341 case 13 : /* fall through */
1342 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1343 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P6; goto extract_sfmt_move_c_sprv32_p0;
1344 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1345 }
1346 }
1347 case 7 :
1348 {
1349 unsigned int val = (((insn >> 0) & (15 << 0)));
1350 switch (val)
1351 {
1352 case 0 : /* fall through */
1353 case 1 : /* fall through */
1354 case 2 : /* fall through */
1355 case 3 : /* fall through */
1356 case 4 : /* fall through */
1357 case 5 : /* fall through */
1358 case 6 : /* fall through */
1359 case 7 : /* fall through */
1360 case 8 : /* fall through */
1361 case 9 : /* fall through */
1362 case 10 : /* fall through */
1363 case 11 : /* fall through */
1364 case 12 : /* fall through */
1365 case 13 : /* fall through */
1366 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1367 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P7; goto extract_sfmt_move_c_sprv32_p0;
1368 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1369 }
1370 }
1371 case 8 :
1372 {
1373 unsigned int val = (((insn >> 0) & (15 << 0)));
1374 switch (val)
1375 {
1376 case 0 : /* fall through */
1377 case 1 : /* fall through */
1378 case 2 : /* fall through */
1379 case 3 : /* fall through */
1380 case 4 : /* fall through */
1381 case 5 : /* fall through */
1382 case 6 : /* fall through */
1383 case 7 : /* fall through */
1384 case 8 : /* fall through */
1385 case 9 : /* fall through */
1386 case 10 : /* fall through */
1387 case 11 : /* fall through */
1388 case 12 : /* fall through */
1389 case 13 : /* fall through */
1390 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1391 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P8; goto extract_sfmt_move_c_sprv32_p0;
1392 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1393 }
1394 }
1395 case 9 :
1396 {
1397 unsigned int val = (((insn >> 0) & (15 << 0)));
1398 switch (val)
1399 {
1400 case 0 : /* fall through */
1401 case 1 : /* fall through */
1402 case 2 : /* fall through */
1403 case 3 : /* fall through */
1404 case 4 : /* fall through */
1405 case 5 : /* fall through */
1406 case 6 : /* fall through */
1407 case 7 : /* fall through */
1408 case 8 : /* fall through */
1409 case 9 : /* fall through */
1410 case 10 : /* fall through */
1411 case 11 : /* fall through */
1412 case 12 : /* fall through */
1413 case 13 : /* fall through */
1414 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1415 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P9; goto extract_sfmt_move_c_sprv32_p0;
1416 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1417 }
1418 }
1419 case 10 :
1420 {
1421 unsigned int val = (((insn >> 0) & (15 << 0)));
1422 switch (val)
1423 {
1424 case 0 : /* fall through */
1425 case 1 : /* fall through */
1426 case 2 : /* fall through */
1427 case 3 : /* fall through */
1428 case 4 : /* fall through */
1429 case 5 : /* fall through */
1430 case 6 : /* fall through */
1431 case 7 : /* fall through */
1432 case 8 : /* fall through */
1433 case 9 : /* fall through */
1434 case 10 : /* fall through */
1435 case 11 : /* fall through */
1436 case 12 : /* fall through */
1437 case 13 : /* fall through */
1438 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1439 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P10; goto extract_sfmt_move_c_sprv32_p0;
1440 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1441 }
1442 }
1443 case 11 :
1444 {
1445 unsigned int val = (((insn >> 0) & (15 << 0)));
1446 switch (val)
1447 {
1448 case 0 : /* fall through */
1449 case 1 : /* fall through */
1450 case 2 : /* fall through */
1451 case 3 : /* fall through */
1452 case 4 : /* fall through */
1453 case 5 : /* fall through */
1454 case 6 : /* fall through */
1455 case 7 : /* fall through */
1456 case 8 : /* fall through */
1457 case 9 : /* fall through */
1458 case 10 : /* fall through */
1459 case 11 : /* fall through */
1460 case 12 : /* fall through */
1461 case 13 : /* fall through */
1462 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1463 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P11; goto extract_sfmt_move_c_sprv32_p0;
1464 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1465 }
1466 }
1467 case 12 :
1468 {
1469 unsigned int val = (((insn >> 0) & (15 << 0)));
1470 switch (val)
1471 {
1472 case 0 : /* fall through */
1473 case 1 : /* fall through */
1474 case 2 : /* fall through */
1475 case 3 : /* fall through */
1476 case 4 : /* fall through */
1477 case 5 : /* fall through */
1478 case 6 : /* fall through */
1479 case 7 : /* fall through */
1480 case 8 : /* fall through */
1481 case 9 : /* fall through */
1482 case 10 : /* fall through */
1483 case 11 : /* fall through */
1484 case 12 : /* fall through */
1485 case 13 : /* fall through */
1486 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1487 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P12; goto extract_sfmt_move_c_sprv32_p0;
1488 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1489 }
1490 }
1491 case 13 :
1492 {
1493 unsigned int val = (((insn >> 0) & (15 << 0)));
1494 switch (val)
1495 {
1496 case 0 : /* fall through */
1497 case 1 : /* fall through */
1498 case 2 : /* fall through */
1499 case 3 : /* fall through */
1500 case 4 : /* fall through */
1501 case 5 : /* fall through */
1502 case 6 : /* fall through */
1503 case 7 : /* fall through */
1504 case 8 : /* fall through */
1505 case 9 : /* fall through */
1506 case 10 : /* fall through */
1507 case 11 : /* fall through */
1508 case 12 : /* fall through */
1509 case 13 : /* fall through */
1510 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1511 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P13; goto extract_sfmt_move_c_sprv32_p0;
1512 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1513 }
1514 }
1515 case 14 :
1516 {
1517 unsigned int val = (((insn >> 0) & (15 << 0)));
1518 switch (val)
1519 {
1520 case 0 : /* fall through */
1521 case 1 : /* fall through */
1522 case 2 : /* fall through */
1523 case 3 : /* fall through */
1524 case 4 : /* fall through */
1525 case 5 : /* fall through */
1526 case 6 : /* fall through */
1527 case 7 : /* fall through */
1528 case 8 : /* fall through */
1529 case 9 : /* fall through */
1530 case 10 : /* fall through */
1531 case 11 : /* fall through */
1532 case 12 : /* fall through */
1533 case 13 : /* fall through */
1534 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1535 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P14; goto extract_sfmt_move_c_sprv32_p0;
1536 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1537 }
1538 }
1539 case 15 :
1540 {
1541 unsigned int val = (((insn >> 0) & (15 << 0)));
1542 switch (val)
1543 {
1544 case 0 : /* fall through */
1545 case 1 : /* fall through */
1546 case 2 : /* fall through */
1547 case 3 : /* fall through */
1548 case 4 : /* fall through */
1549 case 5 : /* fall through */
1550 case 6 : /* fall through */
1551 case 7 : /* fall through */
1552 case 8 : /* fall through */
1553 case 9 : /* fall through */
1554 case 10 : /* fall through */
1555 case 11 : /* fall through */
1556 case 12 : /* fall through */
1557 case 13 : /* fall through */
1558 case 14 : itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
1559 case 15 : itype = CRISV32F_INSN_MOVE_C_SPRV32_P15; goto extract_sfmt_move_c_sprv32_p0;
1560 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1561 }
1562 }
1563 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1564 }
1565 }
1566 case 228 :
1567 {
1568 unsigned int val = (((insn >> 0) & (15 << 0)));
1569 switch (val)
1570 {
1571 case 0 : /* fall through */
1572 case 1 : /* fall through */
1573 case 2 : /* fall through */
1574 case 3 : /* fall through */
1575 case 4 : /* fall through */
1576 case 5 : /* fall through */
1577 case 6 : /* fall through */
1578 case 7 : /* fall through */
1579 case 8 : /* fall through */
1580 case 9 : /* fall through */
1581 case 10 : /* fall through */
1582 case 11 : /* fall through */
1583 case 12 : /* fall through */
1584 case 13 : /* fall through */
1585 case 14 : itype = CRISV32F_INSN_MOVE_M_B_M; goto extract_sfmt_move_m_b_m;
1586 case 15 : itype = CRISV32F_INSN_MOVECBR; goto extract_sfmt_movecbr;
1587 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1588 }
1589 }
1590 case 229 :
1591 {
1592 unsigned int val = (((insn >> 0) & (15 << 0)));
1593 switch (val)
1594 {
1595 case 0 : /* fall through */
1596 case 1 : /* fall through */
1597 case 2 : /* fall through */
1598 case 3 : /* fall through */
1599 case 4 : /* fall through */
1600 case 5 : /* fall through */
1601 case 6 : /* fall through */
1602 case 7 : /* fall through */
1603 case 8 : /* fall through */
1604 case 9 : /* fall through */
1605 case 10 : /* fall through */
1606 case 11 : /* fall through */
1607 case 12 : /* fall through */
1608 case 13 : /* fall through */
1609 case 14 : itype = CRISV32F_INSN_MOVE_M_W_M; goto extract_sfmt_move_m_w_m;
1610 case 15 : itype = CRISV32F_INSN_MOVECWR; goto extract_sfmt_movecwr;
1611 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1612 }
1613 }
1614 case 230 :
1615 {
1616 unsigned int val = (((insn >> 0) & (15 << 0)));
1617 switch (val)
1618 {
1619 case 0 : /* fall through */
1620 case 1 : /* fall through */
1621 case 2 : /* fall through */
1622 case 3 : /* fall through */
1623 case 4 : /* fall through */
1624 case 5 : /* fall through */
1625 case 6 : /* fall through */
1626 case 7 : /* fall through */
1627 case 8 : /* fall through */
1628 case 9 : /* fall through */
1629 case 10 : /* fall through */
1630 case 11 : /* fall through */
1631 case 12 : /* fall through */
1632 case 13 : /* fall through */
1633 case 14 : itype = CRISV32F_INSN_MOVE_M_D_M; goto extract_sfmt_move_m_d_m;
1634 case 15 : itype = CRISV32F_INSN_MOVECDR; goto extract_sfmt_movecdr;
1635 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1636 }
1637 }
1638 case 232 :
1639 {
1640 unsigned int val = (((insn >> 0) & (15 << 0)));
1641 switch (val)
1642 {
1643 case 0 : /* fall through */
1644 case 1 : /* fall through */
1645 case 2 : /* fall through */
1646 case 3 : /* fall through */
1647 case 4 : /* fall through */
1648 case 5 : /* fall through */
1649 case 6 : /* fall through */
1650 case 7 : /* fall through */
1651 case 8 : /* fall through */
1652 case 9 : /* fall through */
1653 case 10 : /* fall through */
1654 case 11 : /* fall through */
1655 case 12 : /* fall through */
1656 case 13 : /* fall through */
1657 case 14 : itype = CRISV32F_INSN_SUB_M_B_M; goto extract_sfmt_add_m_b_m;
1658 case 15 : itype = CRISV32F_INSN_SUBCBR; goto extract_sfmt_addcbr;
1659 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1660 }
1661 }
1662 case 233 :
1663 {
1664 unsigned int val = (((insn >> 0) & (15 << 0)));
1665 switch (val)
1666 {
1667 case 0 : /* fall through */
1668 case 1 : /* fall through */
1669 case 2 : /* fall through */
1670 case 3 : /* fall through */
1671 case 4 : /* fall through */
1672 case 5 : /* fall through */
1673 case 6 : /* fall through */
1674 case 7 : /* fall through */
1675 case 8 : /* fall through */
1676 case 9 : /* fall through */
1677 case 10 : /* fall through */
1678 case 11 : /* fall through */
1679 case 12 : /* fall through */
1680 case 13 : /* fall through */
1681 case 14 : itype = CRISV32F_INSN_SUB_M_W_M; goto extract_sfmt_add_m_w_m;
1682 case 15 : itype = CRISV32F_INSN_SUBCWR; goto extract_sfmt_addcwr;
1683 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1684 }
1685 }
1686 case 234 :
1687 {
1688 unsigned int val = (((insn >> 0) & (15 << 0)));
1689 switch (val)
1690 {
1691 case 0 : /* fall through */
1692 case 1 : /* fall through */
1693 case 2 : /* fall through */
1694 case 3 : /* fall through */
1695 case 4 : /* fall through */
1696 case 5 : /* fall through */
1697 case 6 : /* fall through */
1698 case 7 : /* fall through */
1699 case 8 : /* fall through */
1700 case 9 : /* fall through */
1701 case 10 : /* fall through */
1702 case 11 : /* fall through */
1703 case 12 : /* fall through */
1704 case 13 : /* fall through */
1705 case 14 : itype = CRISV32F_INSN_SUB_M_D_M; goto extract_sfmt_add_m_d_m;
1706 case 15 : itype = CRISV32F_INSN_SUBCDR; goto extract_sfmt_addcdr;
1707 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1708 }
1709 }
1710 case 235 : itype = CRISV32F_INSN_BAS_C; goto extract_sfmt_bas_c;
1711 case 236 :
1712 {
1713 unsigned int val = (((insn >> 0) & (15 << 0)));
1714 switch (val)
1715 {
1716 case 0 : /* fall through */
1717 case 1 : /* fall through */
1718 case 2 : /* fall through */
1719 case 3 : /* fall through */
1720 case 4 : /* fall through */
1721 case 5 : /* fall through */
1722 case 6 : /* fall through */
1723 case 7 : /* fall through */
1724 case 8 : /* fall through */
1725 case 9 : /* fall through */
1726 case 10 : /* fall through */
1727 case 11 : /* fall through */
1728 case 12 : /* fall through */
1729 case 13 : /* fall through */
1730 case 14 : itype = CRISV32F_INSN_CMP_M_B_M; goto extract_sfmt_cmp_m_b_m;
1731 case 15 : itype = CRISV32F_INSN_CMPCBR; goto extract_sfmt_cmpcbr;
1732 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1733 }
1734 }
1735 case 237 :
1736 {
1737 unsigned int val = (((insn >> 0) & (15 << 0)));
1738 switch (val)
1739 {
1740 case 0 : /* fall through */
1741 case 1 : /* fall through */
1742 case 2 : /* fall through */
1743 case 3 : /* fall through */
1744 case 4 : /* fall through */
1745 case 5 : /* fall through */
1746 case 6 : /* fall through */
1747 case 7 : /* fall through */
1748 case 8 : /* fall through */
1749 case 9 : /* fall through */
1750 case 10 : /* fall through */
1751 case 11 : /* fall through */
1752 case 12 : /* fall through */
1753 case 13 : /* fall through */
1754 case 14 : itype = CRISV32F_INSN_CMP_M_W_M; goto extract_sfmt_cmp_m_w_m;
1755 case 15 : itype = CRISV32F_INSN_CMPCWR; goto extract_sfmt_cmpcwr;
1756 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1757 }
1758 }
1759 case 238 :
1760 {
1761 unsigned int val = (((insn >> 0) & (15 << 0)));
1762 switch (val)
1763 {
1764 case 0 : /* fall through */
1765 case 1 : /* fall through */
1766 case 2 : /* fall through */
1767 case 3 : /* fall through */
1768 case 4 : /* fall through */
1769 case 5 : /* fall through */
1770 case 6 : /* fall through */
1771 case 7 : /* fall through */
1772 case 8 : /* fall through */
1773 case 9 : /* fall through */
1774 case 10 : /* fall through */
1775 case 11 : /* fall through */
1776 case 12 : /* fall through */
1777 case 13 : /* fall through */
1778 case 14 : itype = CRISV32F_INSN_CMP_M_D_M; goto extract_sfmt_cmp_m_d_m;
1779 case 15 : itype = CRISV32F_INSN_CMPCDR; goto extract_sfmt_cmpcdr;
1780 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1781 }
1782 }
1783 case 239 : itype = CRISV32F_INSN_BASC_C; goto extract_sfmt_bas_c;
1784 case 240 :
1785 {
1786 unsigned int val = (((insn >> 0) & (15 << 0)));
1787 switch (val)
1788 {
1789 case 0 : /* fall through */
1790 case 1 : /* fall through */
1791 case 2 : /* fall through */
1792 case 3 : /* fall through */
1793 case 4 : /* fall through */
1794 case 5 : /* fall through */
1795 case 6 : /* fall through */
1796 case 7 : /* fall through */
1797 case 8 : /* fall through */
1798 case 9 : /* fall through */
1799 case 10 : /* fall through */
1800 case 11 : /* fall through */
1801 case 12 : /* fall through */
1802 case 13 : /* fall through */
1803 case 14 : itype = CRISV32F_INSN_AND_M_B_M; goto extract_sfmt_and_m_b_m;
1804 case 15 : itype = CRISV32F_INSN_ANDCBR; goto extract_sfmt_andcbr;
1805 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1806 }
1807 }
1808 case 241 :
1809 {
1810 unsigned int val = (((insn >> 0) & (15 << 0)));
1811 switch (val)
1812 {
1813 case 0 : /* fall through */
1814 case 1 : /* fall through */
1815 case 2 : /* fall through */
1816 case 3 : /* fall through */
1817 case 4 : /* fall through */
1818 case 5 : /* fall through */
1819 case 6 : /* fall through */
1820 case 7 : /* fall through */
1821 case 8 : /* fall through */
1822 case 9 : /* fall through */
1823 case 10 : /* fall through */
1824 case 11 : /* fall through */
1825 case 12 : /* fall through */
1826 case 13 : /* fall through */
1827 case 14 : itype = CRISV32F_INSN_AND_M_W_M; goto extract_sfmt_and_m_w_m;
1828 case 15 : itype = CRISV32F_INSN_ANDCWR; goto extract_sfmt_andcwr;
1829 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1830 }
1831 }
1832 case 242 :
1833 {
1834 unsigned int val = (((insn >> 0) & (15 << 0)));
1835 switch (val)
1836 {
1837 case 0 : /* fall through */
1838 case 1 : /* fall through */
1839 case 2 : /* fall through */
1840 case 3 : /* fall through */
1841 case 4 : /* fall through */
1842 case 5 : /* fall through */
1843 case 6 : /* fall through */
1844 case 7 : /* fall through */
1845 case 8 : /* fall through */
1846 case 9 : /* fall through */
1847 case 10 : /* fall through */
1848 case 11 : /* fall through */
1849 case 12 : /* fall through */
1850 case 13 : /* fall through */
1851 case 14 : itype = CRISV32F_INSN_AND_M_D_M; goto extract_sfmt_and_m_d_m;
1852 case 15 : itype = CRISV32F_INSN_ANDCDR; goto extract_sfmt_andcdr;
1853 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1854 }
1855 }
1856 case 243 : itype = CRISV32F_INSN_JASC_C; goto extract_sfmt_jas_c;
1857 case 244 :
1858 {
1859 unsigned int val = (((insn >> 0) & (15 << 0)));
1860 switch (val)
1861 {
1862 case 0 : /* fall through */
1863 case 1 : /* fall through */
1864 case 2 : /* fall through */
1865 case 3 : /* fall through */
1866 case 4 : /* fall through */
1867 case 5 : /* fall through */
1868 case 6 : /* fall through */
1869 case 7 : /* fall through */
1870 case 8 : /* fall through */
1871 case 9 : /* fall through */
1872 case 10 : /* fall through */
1873 case 11 : /* fall through */
1874 case 12 : /* fall through */
1875 case 13 : /* fall through */
1876 case 14 : itype = CRISV32F_INSN_OR_M_B_M; goto extract_sfmt_and_m_b_m;
1877 case 15 : itype = CRISV32F_INSN_ORCBR; goto extract_sfmt_andcbr;
1878 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1879 }
1880 }
1881 case 245 :
1882 {
1883 unsigned int val = (((insn >> 0) & (15 << 0)));
1884 switch (val)
1885 {
1886 case 0 : /* fall through */
1887 case 1 : /* fall through */
1888 case 2 : /* fall through */
1889 case 3 : /* fall through */
1890 case 4 : /* fall through */
1891 case 5 : /* fall through */
1892 case 6 : /* fall through */
1893 case 7 : /* fall through */
1894 case 8 : /* fall through */
1895 case 9 : /* fall through */
1896 case 10 : /* fall through */
1897 case 11 : /* fall through */
1898 case 12 : /* fall through */
1899 case 13 : /* fall through */
1900 case 14 : itype = CRISV32F_INSN_OR_M_W_M; goto extract_sfmt_and_m_w_m;
1901 case 15 : itype = CRISV32F_INSN_ORCWR; goto extract_sfmt_andcwr;
1902 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1903 }
1904 }
1905 case 246 :
1906 {
1907 unsigned int val = (((insn >> 0) & (15 << 0)));
1908 switch (val)
1909 {
1910 case 0 : /* fall through */
1911 case 1 : /* fall through */
1912 case 2 : /* fall through */
1913 case 3 : /* fall through */
1914 case 4 : /* fall through */
1915 case 5 : /* fall through */
1916 case 6 : /* fall through */
1917 case 7 : /* fall through */
1918 case 8 : /* fall through */
1919 case 9 : /* fall through */
1920 case 10 : /* fall through */
1921 case 11 : /* fall through */
1922 case 12 : /* fall through */
1923 case 13 : /* fall through */
1924 case 14 : itype = CRISV32F_INSN_OR_M_D_M; goto extract_sfmt_and_m_d_m;
1925 case 15 : itype = CRISV32F_INSN_ORCDR; goto extract_sfmt_andcdr;
1926 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1927 }
1928 }
1929 case 247 : itype = CRISV32F_INSN_MOVE_SS_R; goto extract_sfmt_move_ss_r;
1930 default : itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
1931 }
1932 }
1933 }
1934
1935 /* The instruction has been decoded, now extract the fields. */
1936
1937 extract_sfmt_empty:
1938 {
1939 const IDESC *idesc = &crisv32f_insn_data[itype];
1940#define FLD(f) abuf->fields.fmt_empty.f
1941
1942
1943 /* Record the fields for the semantic handler. */
1944 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_empty", (char *) 0));
1945
1946#undef FLD
1947 return idesc;
1948 }
1949
1950 extract_sfmt_move_b_r:
1951 {
1952 const IDESC *idesc = &crisv32f_insn_data[itype];
1953 CGEN_INSN_INT insn = base_insn;
1954#define FLD(f) abuf->fields.sfmt_addc_m.f
1955 UINT f_operand2;
1956 UINT f_operand1;
1957
1958 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
1959 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
1960
1961 /* Record the fields for the semantic handler. */
1962 FLD (f_operand1) = f_operand1;
1963 FLD (f_operand2) = f_operand2;
1964 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));
1965
1966#if WITH_PROFILE_MODEL_P
1967 /* Record the fields for profiling. */
1968 if (PROFILE_MODEL_P (current_cpu))
1969 {
1970 FLD (in_Rs) = f_operand1;
1971 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
1972 }
1973#endif
1974#undef FLD
1975 return idesc;
1976 }
1977
1978 extract_sfmt_move_d_r:
1979 {
1980 const IDESC *idesc = &crisv32f_insn_data[itype];
1981 CGEN_INSN_INT insn = base_insn;
1982#define FLD(f) abuf->fields.sfmt_addc_m.f
1983 UINT f_operand2;
1984 UINT f_operand1;
1985
1986 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
1987 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
1988
1989 /* Record the fields for the semantic handler. */
1990 FLD (f_operand1) = f_operand1;
1991 FLD (f_operand2) = f_operand2;
1992 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));
1993
1994#if WITH_PROFILE_MODEL_P
1995 /* Record the fields for profiling. */
1996 if (PROFILE_MODEL_P (current_cpu))
1997 {
1998 FLD (in_Rs) = f_operand1;
1999 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
2000 }
2001#endif
2002#undef FLD
2003 return idesc;
2004 }
2005
2006 extract_sfmt_moveq:
2007 {
2008 const IDESC *idesc = &crisv32f_insn_data[itype];
2009 CGEN_INSN_INT insn = base_insn;
2010#define FLD(f) abuf->fields.sfmt_moveq.f
2011 UINT f_operand2;
2012 INT f_s6;
2013
2014 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2015 f_s6 = EXTRACT_LSB0_INT (insn, 16, 5, 6);
2016
2017 /* Record the fields for the semantic handler. */
2018 FLD (f_s6) = f_s6;
2019 FLD (f_operand2) = f_operand2;
2020 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));
2021
2022#if WITH_PROFILE_MODEL_P
2023 /* Record the fields for profiling. */
2024 if (PROFILE_MODEL_P (current_cpu))
2025 {
2026 FLD (out_Rd) = f_operand2;
2027 }
2028#endif
2029#undef FLD
2030 return idesc;
2031 }
2032
2033 extract_sfmt_movs_b_r:
2034 {
2035 const IDESC *idesc = &crisv32f_insn_data[itype];
2036 CGEN_INSN_INT insn = base_insn;
2037#define FLD(f) abuf->fields.sfmt_muls_b.f
2038 UINT f_operand2;
2039 UINT f_operand1;
2040
2041 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2042 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2043
2044 /* Record the fields for the semantic handler. */
2045 FLD (f_operand1) = f_operand1;
2046 FLD (f_operand2) = f_operand2;
2047 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));
2048
2049#if WITH_PROFILE_MODEL_P
2050 /* Record the fields for profiling. */
2051 if (PROFILE_MODEL_P (current_cpu))
2052 {
2053 FLD (in_Rs) = f_operand1;
2054 FLD (out_Rd) = f_operand2;
2055 }
2056#endif
2057#undef FLD
2058 return idesc;
2059 }
2060
2061 extract_sfmt_movecbr:
2062 {
2063 const IDESC *idesc = &crisv32f_insn_data[itype];
2064 CGEN_INSN_INT insn = base_insn;
2065#define FLD(f) abuf->fields.sfmt_addcbr.f
2066 INT f_indir_pc__byte;
2067 UINT f_operand2;
2068 /* Contents of trailing part of insn. */
2069 UINT word_1;
2070
2071 word_1 = GETIMEMUHI (current_cpu, pc + 2);
2072 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
2073 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2074
2075 /* Record the fields for the semantic handler. */
2076 FLD (f_operand2) = f_operand2;
2077 FLD (f_indir_pc__byte) = f_indir_pc__byte;
2078 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));
2079
2080#if WITH_PROFILE_MODEL_P
2081 /* Record the fields for profiling. */
2082 if (PROFILE_MODEL_P (current_cpu))
2083 {
2084 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
2085 }
2086#endif
2087#undef FLD
2088 return idesc;
2089 }
2090
2091 extract_sfmt_movecwr:
2092 {
2093 const IDESC *idesc = &crisv32f_insn_data[itype];
2094 CGEN_INSN_INT insn = base_insn;
2095#define FLD(f) abuf->fields.sfmt_addcwr.f
2096 INT f_indir_pc__word;
2097 UINT f_operand2;
2098 /* Contents of trailing part of insn. */
2099 UINT word_1;
2100
2101 word_1 = GETIMEMUHI (current_cpu, pc + 2);
2102 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
2103 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2104
2105 /* Record the fields for the semantic handler. */
2106 FLD (f_operand2) = f_operand2;
2107 FLD (f_indir_pc__word) = f_indir_pc__word;
2108 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));
2109
2110#if WITH_PROFILE_MODEL_P
2111 /* Record the fields for profiling. */
2112 if (PROFILE_MODEL_P (current_cpu))
2113 {
2114 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
2115 }
2116#endif
2117#undef FLD
2118 return idesc;
2119 }
2120
2121 extract_sfmt_movecdr:
2122 {
2123 const IDESC *idesc = &crisv32f_insn_data[itype];
2124 CGEN_INSN_INT insn = base_insn;
2125#define FLD(f) abuf->fields.sfmt_bound_cd.f
2126 INT f_indir_pc__dword;
2127 UINT f_operand2;
2128 /* Contents of trailing part of insn. */
2129 UINT word_1;
2130
2131 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2132 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
2133 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2134
2135 /* Record the fields for the semantic handler. */
2136 FLD (f_indir_pc__dword) = f_indir_pc__dword;
2137 FLD (f_operand2) = f_operand2;
2138 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));
2139
2140#if WITH_PROFILE_MODEL_P
2141 /* Record the fields for profiling. */
2142 if (PROFILE_MODEL_P (current_cpu))
2143 {
2144 FLD (out_Rd) = f_operand2;
2145 }
2146#endif
2147#undef FLD
2148 return idesc;
2149 }
2150
2151 extract_sfmt_movscbr:
2152 {
2153 const IDESC *idesc = &crisv32f_insn_data[itype];
2154 CGEN_INSN_INT insn = base_insn;
2155#define FLD(f) abuf->fields.sfmt_bound_cb.f
2156 UINT f_operand2;
2157 INT f_indir_pc__byte;
2158 /* Contents of trailing part of insn. */
2159 UINT word_1;
2160
2161 word_1 = GETIMEMUHI (current_cpu, pc + 2);
2162 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2163 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
2164
2165 /* Record the fields for the semantic handler. */
2166 FLD (f_indir_pc__byte) = f_indir_pc__byte;
2167 FLD (f_operand2) = f_operand2;
2168 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));
2169
2170#if WITH_PROFILE_MODEL_P
2171 /* Record the fields for profiling. */
2172 if (PROFILE_MODEL_P (current_cpu))
2173 {
2174 FLD (out_Rd) = f_operand2;
2175 }
2176#endif
2177#undef FLD
2178 return idesc;
2179 }
2180
2181 extract_sfmt_movscwr:
2182 {
2183 const IDESC *idesc = &crisv32f_insn_data[itype];
2184 CGEN_INSN_INT insn = base_insn;
2185#define FLD(f) abuf->fields.sfmt_bound_cw.f
2186 UINT f_operand2;
2187 INT f_indir_pc__word;
2188 /* Contents of trailing part of insn. */
2189 UINT word_1;
2190
2191 word_1 = GETIMEMUHI (current_cpu, pc + 2);
2192 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2193 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
2194
2195 /* Record the fields for the semantic handler. */
2196 FLD (f_indir_pc__word) = f_indir_pc__word;
2197 FLD (f_operand2) = f_operand2;
2198 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));
2199
2200#if WITH_PROFILE_MODEL_P
2201 /* Record the fields for profiling. */
2202 if (PROFILE_MODEL_P (current_cpu))
2203 {
2204 FLD (out_Rd) = f_operand2;
2205 }
2206#endif
2207#undef FLD
2208 return idesc;
2209 }
2210
2211 extract_sfmt_movucbr:
2212 {
2213 const IDESC *idesc = &crisv32f_insn_data[itype];
2214 CGEN_INSN_INT insn = base_insn;
2215#define FLD(f) abuf->fields.sfmt_bound_cb.f
2216 UINT f_operand2;
2217 INT f_indir_pc__byte;
2218 /* Contents of trailing part of insn. */
2219 UINT word_1;
2220
2221 word_1 = GETIMEMUHI (current_cpu, pc + 2);
2222 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2223 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
2224
2225 /* Record the fields for the semantic handler. */
2226 FLD (f_indir_pc__byte) = f_indir_pc__byte;
2227 FLD (f_operand2) = f_operand2;
2228 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));
2229
2230#if WITH_PROFILE_MODEL_P
2231 /* Record the fields for profiling. */
2232 if (PROFILE_MODEL_P (current_cpu))
2233 {
2234 FLD (out_Rd) = f_operand2;
2235 }
2236#endif
2237#undef FLD
2238 return idesc;
2239 }
2240
2241 extract_sfmt_movucwr:
2242 {
2243 const IDESC *idesc = &crisv32f_insn_data[itype];
2244 CGEN_INSN_INT insn = base_insn;
2245#define FLD(f) abuf->fields.sfmt_bound_cw.f
2246 UINT f_operand2;
2247 INT f_indir_pc__word;
2248 /* Contents of trailing part of insn. */
2249 UINT word_1;
2250
2251 word_1 = GETIMEMUHI (current_cpu, pc + 2);
2252 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2253 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
2254
2255 /* Record the fields for the semantic handler. */
2256 FLD (f_indir_pc__word) = f_indir_pc__word;
2257 FLD (f_operand2) = f_operand2;
2258 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));
2259
2260#if WITH_PROFILE_MODEL_P
2261 /* Record the fields for profiling. */
2262 if (PROFILE_MODEL_P (current_cpu))
2263 {
2264 FLD (out_Rd) = f_operand2;
2265 }
2266#endif
2267#undef FLD
2268 return idesc;
2269 }
2270
2271 extract_sfmt_addq:
2272 {
2273 const IDESC *idesc = &crisv32f_insn_data[itype];
2274 CGEN_INSN_INT insn = base_insn;
2275#define FLD(f) abuf->fields.sfmt_addq.f
2276 UINT f_operand2;
2277 UINT f_u6;
2278
2279 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2280 f_u6 = EXTRACT_LSB0_UINT (insn, 16, 5, 6);
2281
2282 /* Record the fields for the semantic handler. */
2283 FLD (f_operand2) = f_operand2;
2284 FLD (f_u6) = f_u6;
2285 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));
2286
2287#if WITH_PROFILE_MODEL_P
2288 /* Record the fields for profiling. */
2289 if (PROFILE_MODEL_P (current_cpu))
2290 {
2291 FLD (in_Rd) = f_operand2;
2292 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
2293 }
2294#endif
2295#undef FLD
2296 return idesc;
2297 }
2298
2299 extract_sfmt_cmp_r_b_r:
2300 {
2301 const IDESC *idesc = &crisv32f_insn_data[itype];
2302 CGEN_INSN_INT insn = base_insn;
2303#define FLD(f) abuf->fields.sfmt_muls_b.f
2304 UINT f_operand2;
2305 UINT f_operand1;
2306
2307 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2308 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2309
2310 /* Record the fields for the semantic handler. */
2311 FLD (f_operand2) = f_operand2;
2312 FLD (f_operand1) = f_operand1;
2313 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));
2314
2315#if WITH_PROFILE_MODEL_P
2316 /* Record the fields for profiling. */
2317 if (PROFILE_MODEL_P (current_cpu))
2318 {
2319 FLD (in_Rd) = f_operand2;
2320 FLD (in_Rs) = f_operand1;
2321 }
2322#endif
2323#undef FLD
2324 return idesc;
2325 }
2326
2327 extract_sfmt_cmp_m_b_m:
2328 {
2329 const IDESC *idesc = &crisv32f_insn_data[itype];
2330 CGEN_INSN_INT insn = base_insn;
2331#define FLD(f) abuf->fields.sfmt_addc_m.f
2332 UINT f_operand2;
2333 UINT f_memmode;
2334 UINT f_operand1;
2335
2336 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2337 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2338 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2339
2340 /* Record the fields for the semantic handler. */
2341 FLD (f_operand2) = f_operand2;
2342 FLD (f_operand1) = f_operand1;
2343 FLD (f_memmode) = f_memmode;
2344 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));
2345
2346#if WITH_PROFILE_MODEL_P
2347 /* Record the fields for profiling. */
2348 if (PROFILE_MODEL_P (current_cpu))
2349 {
2350 FLD (in_Rd) = f_operand2;
2351 FLD (in_Rs) = f_operand1;
2352 FLD (out_Rs) = f_operand1;
2353 }
2354#endif
2355#undef FLD
2356 return idesc;
2357 }
2358
2359 extract_sfmt_cmp_m_w_m:
2360 {
2361 const IDESC *idesc = &crisv32f_insn_data[itype];
2362 CGEN_INSN_INT insn = base_insn;
2363#define FLD(f) abuf->fields.sfmt_addc_m.f
2364 UINT f_operand2;
2365 UINT f_memmode;
2366 UINT f_operand1;
2367
2368 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2369 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2370 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2371
2372 /* Record the fields for the semantic handler. */
2373 FLD (f_operand2) = f_operand2;
2374 FLD (f_operand1) = f_operand1;
2375 FLD (f_memmode) = f_memmode;
2376 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));
2377
2378#if WITH_PROFILE_MODEL_P
2379 /* Record the fields for profiling. */
2380 if (PROFILE_MODEL_P (current_cpu))
2381 {
2382 FLD (in_Rd) = f_operand2;
2383 FLD (in_Rs) = f_operand1;
2384 FLD (out_Rs) = f_operand1;
2385 }
2386#endif
2387#undef FLD
2388 return idesc;
2389 }
2390
2391 extract_sfmt_cmp_m_d_m:
2392 {
2393 const IDESC *idesc = &crisv32f_insn_data[itype];
2394 CGEN_INSN_INT insn = base_insn;
2395#define FLD(f) abuf->fields.sfmt_addc_m.f
2396 UINT f_operand2;
2397 UINT f_memmode;
2398 UINT f_operand1;
2399
2400 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2401 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2402 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2403
2404 /* Record the fields for the semantic handler. */
2405 FLD (f_operand2) = f_operand2;
2406 FLD (f_operand1) = f_operand1;
2407 FLD (f_memmode) = f_memmode;
2408 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));
2409
2410#if WITH_PROFILE_MODEL_P
2411 /* Record the fields for profiling. */
2412 if (PROFILE_MODEL_P (current_cpu))
2413 {
2414 FLD (in_Rd) = f_operand2;
2415 FLD (in_Rs) = f_operand1;
2416 FLD (out_Rs) = f_operand1;
2417 }
2418#endif
2419#undef FLD
2420 return idesc;
2421 }
2422
2423 extract_sfmt_cmpcbr:
2424 {
2425 const IDESC *idesc = &crisv32f_insn_data[itype];
2426 CGEN_INSN_INT insn = base_insn;
2427#define FLD(f) abuf->fields.sfmt_bound_cb.f
2428 INT f_indir_pc__byte;
2429 UINT f_operand2;
2430 /* Contents of trailing part of insn. */
2431 UINT word_1;
2432
2433 word_1 = GETIMEMUHI (current_cpu, pc + 2);
2434 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
2435 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2436
2437 /* Record the fields for the semantic handler. */
2438 FLD (f_operand2) = f_operand2;
2439 FLD (f_indir_pc__byte) = f_indir_pc__byte;
2440 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));
2441
2442#if WITH_PROFILE_MODEL_P
2443 /* Record the fields for profiling. */
2444 if (PROFILE_MODEL_P (current_cpu))
2445 {
2446 FLD (in_Rd) = f_operand2;
2447 }
2448#endif
2449#undef FLD
2450 return idesc;
2451 }
2452
2453 extract_sfmt_cmpcwr:
2454 {
2455 const IDESC *idesc = &crisv32f_insn_data[itype];
2456 CGEN_INSN_INT insn = base_insn;
2457#define FLD(f) abuf->fields.sfmt_bound_cw.f
2458 INT f_indir_pc__word;
2459 UINT f_operand2;
2460 /* Contents of trailing part of insn. */
2461 UINT word_1;
2462
2463 word_1 = GETIMEMUHI (current_cpu, pc + 2);
2464 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
2465 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2466
2467 /* Record the fields for the semantic handler. */
2468 FLD (f_operand2) = f_operand2;
2469 FLD (f_indir_pc__word) = f_indir_pc__word;
2470 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));
2471
2472#if WITH_PROFILE_MODEL_P
2473 /* Record the fields for profiling. */
2474 if (PROFILE_MODEL_P (current_cpu))
2475 {
2476 FLD (in_Rd) = f_operand2;
2477 }
2478#endif
2479#undef FLD
2480 return idesc;
2481 }
2482
2483 extract_sfmt_cmpcdr:
2484 {
2485 const IDESC *idesc = &crisv32f_insn_data[itype];
2486 CGEN_INSN_INT insn = base_insn;
2487#define FLD(f) abuf->fields.sfmt_bound_cd.f
2488 INT f_indir_pc__dword;
2489 UINT f_operand2;
2490 /* Contents of trailing part of insn. */
2491 UINT word_1;
2492
2493 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2494 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
2495 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2496
2497 /* Record the fields for the semantic handler. */
2498 FLD (f_operand2) = f_operand2;
2499 FLD (f_indir_pc__dword) = f_indir_pc__dword;
2500 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));
2501
2502#if WITH_PROFILE_MODEL_P
2503 /* Record the fields for profiling. */
2504 if (PROFILE_MODEL_P (current_cpu))
2505 {
2506 FLD (in_Rd) = f_operand2;
2507 }
2508#endif
2509#undef FLD
2510 return idesc;
2511 }
2512
2513 extract_sfmt_cmpq:
2514 {
2515 const IDESC *idesc = &crisv32f_insn_data[itype];
2516 CGEN_INSN_INT insn = base_insn;
2517#define FLD(f) abuf->fields.sfmt_andq.f
2518 UINT f_operand2;
2519 INT f_s6;
2520
2521 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2522 f_s6 = EXTRACT_LSB0_INT (insn, 16, 5, 6);
2523
2524 /* Record the fields for the semantic handler. */
2525 FLD (f_operand2) = f_operand2;
2526 FLD (f_s6) = f_s6;
2527 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));
2528
2529#if WITH_PROFILE_MODEL_P
2530 /* Record the fields for profiling. */
2531 if (PROFILE_MODEL_P (current_cpu))
2532 {
2533 FLD (in_Rd) = f_operand2;
2534 }
2535#endif
2536#undef FLD
2537 return idesc;
2538 }
2539
2540 extract_sfmt_cmpucbr:
2541 {
2542 const IDESC *idesc = &crisv32f_insn_data[itype];
2543 CGEN_INSN_INT insn = base_insn;
2544#define FLD(f) abuf->fields.sfmt_bound_cb.f
2545 INT f_indir_pc__byte;
2546 UINT f_operand2;
2547 /* Contents of trailing part of insn. */
2548 UINT word_1;
2549
2550 word_1 = GETIMEMUHI (current_cpu, pc + 2);
2551 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
2552 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2553
2554 /* Record the fields for the semantic handler. */
2555 FLD (f_operand2) = f_operand2;
2556 FLD (f_indir_pc__byte) = f_indir_pc__byte;
2557 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));
2558
2559#if WITH_PROFILE_MODEL_P
2560 /* Record the fields for profiling. */
2561 if (PROFILE_MODEL_P (current_cpu))
2562 {
2563 FLD (in_Rd) = f_operand2;
2564 }
2565#endif
2566#undef FLD
2567 return idesc;
2568 }
2569
2570 extract_sfmt_cmpucwr:
2571 {
2572 const IDESC *idesc = &crisv32f_insn_data[itype];
2573 CGEN_INSN_INT insn = base_insn;
2574#define FLD(f) abuf->fields.sfmt_bound_cw.f
2575 INT f_indir_pc__word;
2576 UINT f_operand2;
2577 /* Contents of trailing part of insn. */
2578 UINT word_1;
2579
2580 word_1 = GETIMEMUHI (current_cpu, pc + 2);
2581 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
2582 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2583
2584 /* Record the fields for the semantic handler. */
2585 FLD (f_operand2) = f_operand2;
2586 FLD (f_indir_pc__word) = f_indir_pc__word;
2587 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));
2588
2589#if WITH_PROFILE_MODEL_P
2590 /* Record the fields for profiling. */
2591 if (PROFILE_MODEL_P (current_cpu))
2592 {
2593 FLD (in_Rd) = f_operand2;
2594 }
2595#endif
2596#undef FLD
2597 return idesc;
2598 }
2599
2600 extract_sfmt_move_m_b_m:
2601 {
2602 const IDESC *idesc = &crisv32f_insn_data[itype];
2603 CGEN_INSN_INT insn = base_insn;
2604#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2605 UINT f_operand2;
2606 UINT f_memmode;
2607 UINT f_operand1;
2608
2609 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2610 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2611 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2612
2613 /* Record the fields for the semantic handler. */
2614 FLD (f_operand1) = f_operand1;
2615 FLD (f_operand2) = f_operand2;
2616 FLD (f_memmode) = f_memmode;
2617 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));
2618
2619#if WITH_PROFILE_MODEL_P
2620 /* Record the fields for profiling. */
2621 if (PROFILE_MODEL_P (current_cpu))
2622 {
2623 FLD (in_Rs) = f_operand1;
2624 FLD (out_Rs) = f_operand1;
2625 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)));
2626 }
2627#endif
2628#undef FLD
2629 return idesc;
2630 }
2631
2632 extract_sfmt_move_m_w_m:
2633 {
2634 const IDESC *idesc = &crisv32f_insn_data[itype];
2635 CGEN_INSN_INT insn = base_insn;
2636#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2637 UINT f_operand2;
2638 UINT f_memmode;
2639 UINT f_operand1;
2640
2641 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2642 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2643 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2644
2645 /* Record the fields for the semantic handler. */
2646 FLD (f_operand1) = f_operand1;
2647 FLD (f_operand2) = f_operand2;
2648 FLD (f_memmode) = f_memmode;
2649 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));
2650
2651#if WITH_PROFILE_MODEL_P
2652 /* Record the fields for profiling. */
2653 if (PROFILE_MODEL_P (current_cpu))
2654 {
2655 FLD (in_Rs) = f_operand1;
2656 FLD (out_Rs) = f_operand1;
2657 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)));
2658 }
2659#endif
2660#undef FLD
2661 return idesc;
2662 }
2663
2664 extract_sfmt_move_m_d_m:
2665 {
2666 const IDESC *idesc = &crisv32f_insn_data[itype];
2667 CGEN_INSN_INT insn = base_insn;
2668#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2669 UINT f_operand2;
2670 UINT f_memmode;
2671 UINT f_operand1;
2672
2673 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2674 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2675 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2676
2677 /* Record the fields for the semantic handler. */
2678 FLD (f_operand1) = f_operand1;
2679 FLD (f_operand2) = f_operand2;
2680 FLD (f_memmode) = f_memmode;
2681 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));
2682
2683#if WITH_PROFILE_MODEL_P
2684 /* Record the fields for profiling. */
2685 if (PROFILE_MODEL_P (current_cpu))
2686 {
2687 FLD (in_Rs) = f_operand1;
2688 FLD (out_Rs) = f_operand1;
2689 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)));
2690 }
2691#endif
2692#undef FLD
2693 return idesc;
2694 }
2695
2696 extract_sfmt_movs_m_b_m:
2697 {
2698 const IDESC *idesc = &crisv32f_insn_data[itype];
2699 CGEN_INSN_INT insn = base_insn;
2700#define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
2701 UINT f_operand2;
2702 UINT f_memmode;
2703 UINT f_operand1;
2704
2705 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2706 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2707 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2708
2709 /* Record the fields for the semantic handler. */
2710 FLD (f_operand1) = f_operand1;
2711 FLD (f_memmode) = f_memmode;
2712 FLD (f_operand2) = f_operand2;
2713 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));
2714
2715#if WITH_PROFILE_MODEL_P
2716 /* Record the fields for profiling. */
2717 if (PROFILE_MODEL_P (current_cpu))
2718 {
2719 FLD (in_Rs) = f_operand1;
2720 FLD (out_Rd) = f_operand2;
2721 FLD (out_Rs) = f_operand1;
2722 }
2723#endif
2724#undef FLD
2725 return idesc;
2726 }
2727
2728 extract_sfmt_movs_m_w_m:
2729 {
2730 const IDESC *idesc = &crisv32f_insn_data[itype];
2731 CGEN_INSN_INT insn = base_insn;
2732#define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
2733 UINT f_operand2;
2734 UINT f_memmode;
2735 UINT f_operand1;
2736
2737 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2738 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2739 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2740
2741 /* Record the fields for the semantic handler. */
2742 FLD (f_operand1) = f_operand1;
2743 FLD (f_memmode) = f_memmode;
2744 FLD (f_operand2) = f_operand2;
2745 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));
2746
2747#if WITH_PROFILE_MODEL_P
2748 /* Record the fields for profiling. */
2749 if (PROFILE_MODEL_P (current_cpu))
2750 {
2751 FLD (in_Rs) = f_operand1;
2752 FLD (out_Rd) = f_operand2;
2753 FLD (out_Rs) = f_operand1;
2754 }
2755#endif
2756#undef FLD
2757 return idesc;
2758 }
2759
2760 extract_sfmt_move_r_sprv32:
2761 {
2762 const IDESC *idesc = &crisv32f_insn_data[itype];
2763 CGEN_INSN_INT insn = base_insn;
2764#define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
2765 UINT f_operand2;
2766 UINT f_operand1;
2767
2768 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2769 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2770
2771 /* Record the fields for the semantic handler. */
2772 FLD (f_operand1) = f_operand1;
2773 FLD (f_operand2) = f_operand2;
2774 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_r_sprv32", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2775
2776#if WITH_PROFILE_MODEL_P
2777 /* Record the fields for profiling. */
2778 if (PROFILE_MODEL_P (current_cpu))
2779 {
2780 FLD (in_Rs) = f_operand1;
2781 FLD (out_Pd) = f_operand2;
2782 }
2783#endif
2784#undef FLD
2785 return idesc;
2786 }
2787
2788 extract_sfmt_move_spr_rv32:
2789 {
2790 const IDESC *idesc = &crisv32f_insn_data[itype];
2791 CGEN_INSN_INT insn = base_insn;
2792#define FLD(f) abuf->fields.sfmt_mcp.f
2793 UINT f_operand2;
2794 UINT f_operand1;
2795
2796 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2797 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2798
2799 /* Record the fields for the semantic handler. */
2800 FLD (f_operand2) = f_operand2;
2801 FLD (f_operand1) = f_operand1;
2802 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_spr_rv32", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
2803
2804#if WITH_PROFILE_MODEL_P
2805 /* Record the fields for profiling. */
2806 if (PROFILE_MODEL_P (current_cpu))
2807 {
2808 FLD (in_Ps) = f_operand2;
2809 FLD (out_h_gr_SI_index_of__DFLT_Rs) = FLD (f_operand1);
2810 }
2811#endif
2812#undef FLD
2813 return idesc;
2814 }
2815
2816 extract_sfmt_move_m_sprv32:
2817 {
2818 const IDESC *idesc = &crisv32f_insn_data[itype];
2819 CGEN_INSN_INT insn = base_insn;
2820#define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
2821 UINT f_operand2;
2822 UINT f_memmode;
2823 UINT f_operand1;
2824
2825 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2826 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2827 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2828
2829 /* Record the fields for the semantic handler. */
2830 FLD (f_operand1) = f_operand1;
2831 FLD (f_operand2) = f_operand2;
2832 FLD (f_memmode) = f_memmode;
2833 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_m_sprv32", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
2834
2835#if WITH_PROFILE_MODEL_P
2836 /* Record the fields for profiling. */
2837 if (PROFILE_MODEL_P (current_cpu))
2838 {
2839 FLD (in_Rs) = f_operand1;
2840 FLD (out_Pd) = f_operand2;
2841 FLD (out_Rs) = f_operand1;
2842 }
2843#endif
2844#undef FLD
2845 return idesc;
2846 }
2847
2848 extract_sfmt_move_c_sprv32_p0:
2849 {
2850 const IDESC *idesc = &crisv32f_insn_data[itype];
2851 CGEN_INSN_INT insn = base_insn;
2852#define FLD(f) abuf->fields.sfmt_move_c_sprv32_p0.f
2853 INT f_indir_pc__dword;
2854 UINT f_operand2;
2855 /* Contents of trailing part of insn. */
2856 UINT word_1;
2857
2858 word_1 = GETIMEMUSI (current_cpu, pc + 2);
2859 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
2860 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2861
2862 /* Record the fields for the semantic handler. */
2863 FLD (f_indir_pc__dword) = f_indir_pc__dword;
2864 FLD (f_operand2) = f_operand2;
2865 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_c_sprv32_p0", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2866
2867#if WITH_PROFILE_MODEL_P
2868 /* Record the fields for profiling. */
2869 if (PROFILE_MODEL_P (current_cpu))
2870 {
2871 FLD (out_Pd) = f_operand2;
2872 }
2873#endif
2874#undef FLD
2875 return idesc;
2876 }
2877
2878 extract_sfmt_move_spr_mv32:
2879 {
2880 const IDESC *idesc = &crisv32f_insn_data[itype];
2881 CGEN_INSN_INT insn = base_insn;
2882#define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
2883 UINT f_operand2;
2884 UINT f_memmode;
2885 UINT f_operand1;
2886
2887 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2888 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2889 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2890
2891 /* Record the fields for the semantic handler. */
2892 FLD (f_operand2) = f_operand2;
2893 FLD (f_operand1) = f_operand1;
2894 FLD (f_memmode) = f_memmode;
2895 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_spr_mv32", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
2896
2897#if WITH_PROFILE_MODEL_P
2898 /* Record the fields for profiling. */
2899 if (PROFILE_MODEL_P (current_cpu))
2900 {
2901 FLD (in_Ps) = f_operand2;
2902 FLD (in_Rs) = f_operand1;
2903 FLD (out_Rs) = f_operand1;
2904 }
2905#endif
2906#undef FLD
2907 return idesc;
2908 }
2909
2910 extract_sfmt_move_ss_r:
2911 {
2912 const IDESC *idesc = &crisv32f_insn_data[itype];
2913 CGEN_INSN_INT insn = base_insn;
2914#define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
2915 UINT f_operand2;
2916 UINT f_operand1;
2917
2918 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2919 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2920
2921 /* Record the fields for the semantic handler. */
2922 FLD (f_operand2) = f_operand2;
2923 FLD (f_operand1) = f_operand1;
2924 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_ss_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
2925
2926#if WITH_PROFILE_MODEL_P
2927 /* Record the fields for profiling. */
2928 if (PROFILE_MODEL_P (current_cpu))
2929 {
2930 FLD (out_Rs) = f_operand1;
2931 }
2932#endif
2933#undef FLD
2934 return idesc;
2935 }
2936
2937 extract_sfmt_move_r_ss:
2938 {
2939 const IDESC *idesc = &crisv32f_insn_data[itype];
2940 CGEN_INSN_INT insn = base_insn;
2941#define FLD(f) abuf->fields.sfmt_mcp.f
2942 UINT f_operand2;
2943 UINT f_operand1;
2944
2945 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2946 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2947
2948 /* Record the fields for the semantic handler. */
2949 FLD (f_operand1) = f_operand1;
2950 FLD (f_operand2) = f_operand2;
2951 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_r_ss", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
2952
2953#if WITH_PROFILE_MODEL_P
2954 /* Record the fields for profiling. */
2955 if (PROFILE_MODEL_P (current_cpu))
2956 {
2957 FLD (in_Rs) = f_operand1;
2958 }
2959#endif
2960#undef FLD
2961 return idesc;
2962 }
2963
2964 extract_sfmt_movem_r_m_v32:
2965 {
2966 const IDESC *idesc = &crisv32f_insn_data[itype];
2967 CGEN_INSN_INT insn = base_insn;
2968#define FLD(f) abuf->fields.sfmt_movem_r_m_v32.f
2969 UINT f_operand2;
2970 UINT f_memmode;
2971 UINT f_operand1;
2972
2973 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
2974 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
2975 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
2976
2977 /* Record the fields for the semantic handler. */
2978 FLD (f_operand2) = f_operand2;
2979 FLD (f_operand1) = f_operand1;
2980 FLD (f_memmode) = f_memmode;
2981 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movem_r_m_v32", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
2982
2983#if WITH_PROFILE_MODEL_P
2984 /* Record the fields for profiling. */
2985 if (PROFILE_MODEL_P (current_cpu))
2986 {
2987 FLD (in_Rd) = f_operand2;
2988 FLD (in_Rs) = f_operand1;
2989 FLD (in_h_gr_SI_0) = 0;
2990 FLD (in_h_gr_SI_1) = 1;
2991 FLD (in_h_gr_SI_10) = 10;
2992 FLD (in_h_gr_SI_11) = 11;
2993 FLD (in_h_gr_SI_12) = 12;
2994 FLD (in_h_gr_SI_13) = 13;
2995 FLD (in_h_gr_SI_14) = 14;
2996 FLD (in_h_gr_SI_15) = 15;
2997 FLD (in_h_gr_SI_2) = 2;
2998 FLD (in_h_gr_SI_3) = 3;
2999 FLD (in_h_gr_SI_4) = 4;
3000 FLD (in_h_gr_SI_5) = 5;
3001 FLD (in_h_gr_SI_6) = 6;
3002 FLD (in_h_gr_SI_7) = 7;
3003 FLD (in_h_gr_SI_8) = 8;
3004 FLD (in_h_gr_SI_9) = 9;
3005 FLD (out_Rs) = f_operand1;
3006 }
3007#endif
3008#undef FLD
3009 return idesc;
3010 }
3011
3012 extract_sfmt_movem_m_r_v32:
3013 {
3014 const IDESC *idesc = &crisv32f_insn_data[itype];
3015 CGEN_INSN_INT insn = base_insn;
3016#define FLD(f) abuf->fields.sfmt_movem_m_r_v32.f
3017 UINT f_operand2;
3018 UINT f_memmode;
3019 UINT f_operand1;
3020
3021 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3022 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3023 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3024
3025 /* Record the fields for the semantic handler. */
3026 FLD (f_operand2) = f_operand2;
3027 FLD (f_operand1) = f_operand1;
3028 FLD (f_memmode) = f_memmode;
3029 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movem_m_r_v32", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3030
3031#if WITH_PROFILE_MODEL_P
3032 /* Record the fields for profiling. */
3033 if (PROFILE_MODEL_P (current_cpu))
3034 {
3035 FLD (in_Rd) = f_operand2;
3036 FLD (in_Rs) = f_operand1;
3037 FLD (out_Rs) = f_operand1;
3038 FLD (out_h_gr_SI_0) = 0;
3039 FLD (out_h_gr_SI_1) = 1;
3040 FLD (out_h_gr_SI_10) = 10;
3041 FLD (out_h_gr_SI_11) = 11;
3042 FLD (out_h_gr_SI_12) = 12;
3043 FLD (out_h_gr_SI_13) = 13;
3044 FLD (out_h_gr_SI_14) = 14;
3045 FLD (out_h_gr_SI_15) = 15;
3046 FLD (out_h_gr_SI_2) = 2;
3047 FLD (out_h_gr_SI_3) = 3;
3048 FLD (out_h_gr_SI_4) = 4;
3049 FLD (out_h_gr_SI_5) = 5;
3050 FLD (out_h_gr_SI_6) = 6;
3051 FLD (out_h_gr_SI_7) = 7;
3052 FLD (out_h_gr_SI_8) = 8;
3053 FLD (out_h_gr_SI_9) = 9;
3054 }
3055#endif
3056#undef FLD
3057 return idesc;
3058 }
3059
3060 extract_sfmt_add_b_r:
3061 {
3062 const IDESC *idesc = &crisv32f_insn_data[itype];
3063 CGEN_INSN_INT insn = base_insn;
3064#define FLD(f) abuf->fields.sfmt_addc_m.f
3065 UINT f_operand2;
3066 UINT f_operand1;
3067
3068 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3069 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3070
3071 /* Record the fields for the semantic handler. */
3072 FLD (f_operand2) = f_operand2;
3073 FLD (f_operand1) = f_operand1;
3074 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));
3075
3076#if WITH_PROFILE_MODEL_P
3077 /* Record the fields for profiling. */
3078 if (PROFILE_MODEL_P (current_cpu))
3079 {
3080 FLD (in_Rd) = f_operand2;
3081 FLD (in_Rs) = f_operand1;
3082 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3083 }
3084#endif
3085#undef FLD
3086 return idesc;
3087 }
3088
3089 extract_sfmt_add_d_r:
3090 {
3091 const IDESC *idesc = &crisv32f_insn_data[itype];
3092 CGEN_INSN_INT insn = base_insn;
3093#define FLD(f) abuf->fields.sfmt_addc_m.f
3094 UINT f_operand2;
3095 UINT f_operand1;
3096
3097 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3098 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3099
3100 /* Record the fields for the semantic handler. */
3101 FLD (f_operand2) = f_operand2;
3102 FLD (f_operand1) = f_operand1;
3103 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));
3104
3105#if WITH_PROFILE_MODEL_P
3106 /* Record the fields for profiling. */
3107 if (PROFILE_MODEL_P (current_cpu))
3108 {
3109 FLD (in_Rd) = f_operand2;
3110 FLD (in_Rs) = f_operand1;
3111 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3112 }
3113#endif
3114#undef FLD
3115 return idesc;
3116 }
3117
3118 extract_sfmt_add_m_b_m:
3119 {
3120 const IDESC *idesc = &crisv32f_insn_data[itype];
3121 CGEN_INSN_INT insn = base_insn;
3122#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3123 UINT f_operand2;
3124 UINT f_memmode;
3125 UINT f_operand1;
3126
3127 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3128 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3129 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3130
3131 /* Record the fields for the semantic handler. */
3132 FLD (f_operand2) = f_operand2;
3133 FLD (f_operand1) = f_operand1;
3134 FLD (f_memmode) = f_memmode;
3135 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));
3136
3137#if WITH_PROFILE_MODEL_P
3138 /* Record the fields for profiling. */
3139 if (PROFILE_MODEL_P (current_cpu))
3140 {
3141 FLD (in_Rd) = f_operand2;
3142 FLD (in_Rs) = f_operand1;
3143 FLD (out_Rs) = f_operand1;
3144 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)));
3145 }
3146#endif
3147#undef FLD
3148 return idesc;
3149 }
3150
3151 extract_sfmt_add_m_w_m:
3152 {
3153 const IDESC *idesc = &crisv32f_insn_data[itype];
3154 CGEN_INSN_INT insn = base_insn;
3155#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3156 UINT f_operand2;
3157 UINT f_memmode;
3158 UINT f_operand1;
3159
3160 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3161 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3162 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3163
3164 /* Record the fields for the semantic handler. */
3165 FLD (f_operand2) = f_operand2;
3166 FLD (f_operand1) = f_operand1;
3167 FLD (f_memmode) = f_memmode;
3168 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));
3169
3170#if WITH_PROFILE_MODEL_P
3171 /* Record the fields for profiling. */
3172 if (PROFILE_MODEL_P (current_cpu))
3173 {
3174 FLD (in_Rd) = f_operand2;
3175 FLD (in_Rs) = f_operand1;
3176 FLD (out_Rs) = f_operand1;
3177 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)));
3178 }
3179#endif
3180#undef FLD
3181 return idesc;
3182 }
3183
3184 extract_sfmt_add_m_d_m:
3185 {
3186 const IDESC *idesc = &crisv32f_insn_data[itype];
3187 CGEN_INSN_INT insn = base_insn;
3188#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3189 UINT f_operand2;
3190 UINT f_memmode;
3191 UINT f_operand1;
3192
3193 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3194 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3195 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3196
3197 /* Record the fields for the semantic handler. */
3198 FLD (f_operand2) = f_operand2;
3199 FLD (f_operand1) = f_operand1;
3200 FLD (f_memmode) = f_memmode;
3201 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));
3202
3203#if WITH_PROFILE_MODEL_P
3204 /* Record the fields for profiling. */
3205 if (PROFILE_MODEL_P (current_cpu))
3206 {
3207 FLD (in_Rd) = f_operand2;
3208 FLD (in_Rs) = f_operand1;
3209 FLD (out_Rs) = f_operand1;
3210 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)));
3211 }
3212#endif
3213#undef FLD
3214 return idesc;
3215 }
3216
3217 extract_sfmt_addcbr:
3218 {
3219 const IDESC *idesc = &crisv32f_insn_data[itype];
3220 CGEN_INSN_INT insn = base_insn;
3221#define FLD(f) abuf->fields.sfmt_addcbr.f
3222 INT f_indir_pc__byte;
3223 UINT f_operand2;
3224 /* Contents of trailing part of insn. */
3225 UINT word_1;
3226
3227 word_1 = GETIMEMUHI (current_cpu, pc + 2);
3228 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
3229 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3230
3231 /* Record the fields for the semantic handler. */
3232 FLD (f_operand2) = f_operand2;
3233 FLD (f_indir_pc__byte) = f_indir_pc__byte;
3234 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));
3235
3236#if WITH_PROFILE_MODEL_P
3237 /* Record the fields for profiling. */
3238 if (PROFILE_MODEL_P (current_cpu))
3239 {
3240 FLD (in_Rd) = f_operand2;
3241 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3242 }
3243#endif
3244#undef FLD
3245 return idesc;
3246 }
3247
3248 extract_sfmt_addcwr:
3249 {
3250 const IDESC *idesc = &crisv32f_insn_data[itype];
3251 CGEN_INSN_INT insn = base_insn;
3252#define FLD(f) abuf->fields.sfmt_addcwr.f
3253 INT f_indir_pc__word;
3254 UINT f_operand2;
3255 /* Contents of trailing part of insn. */
3256 UINT word_1;
3257
3258 word_1 = GETIMEMUHI (current_cpu, pc + 2);
3259 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
3260 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3261
3262 /* Record the fields for the semantic handler. */
3263 FLD (f_operand2) = f_operand2;
3264 FLD (f_indir_pc__word) = f_indir_pc__word;
3265 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));
3266
3267#if WITH_PROFILE_MODEL_P
3268 /* Record the fields for profiling. */
3269 if (PROFILE_MODEL_P (current_cpu))
3270 {
3271 FLD (in_Rd) = f_operand2;
3272 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3273 }
3274#endif
3275#undef FLD
3276 return idesc;
3277 }
3278
3279 extract_sfmt_addcdr:
3280 {
3281 const IDESC *idesc = &crisv32f_insn_data[itype];
3282 CGEN_INSN_INT insn = base_insn;
3283#define FLD(f) abuf->fields.sfmt_addcdr.f
3284 INT f_indir_pc__dword;
3285 UINT f_operand2;
3286 /* Contents of trailing part of insn. */
3287 UINT word_1;
3288
3289 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3290 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
3291 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3292
3293 /* Record the fields for the semantic handler. */
3294 FLD (f_operand2) = f_operand2;
3295 FLD (f_indir_pc__dword) = f_indir_pc__dword;
3296 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));
3297
3298#if WITH_PROFILE_MODEL_P
3299 /* Record the fields for profiling. */
3300 if (PROFILE_MODEL_P (current_cpu))
3301 {
3302 FLD (in_Rd) = f_operand2;
3303 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3304 }
3305#endif
3306#undef FLD
3307 return idesc;
3308 }
3309
3310 extract_sfmt_adds_m_b_m:
3311 {
3312 const IDESC *idesc = &crisv32f_insn_data[itype];
3313 CGEN_INSN_INT insn = base_insn;
3314#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3315 UINT f_operand2;
3316 UINT f_memmode;
3317 UINT f_operand1;
3318
3319 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3320 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3321 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3322
3323 /* Record the fields for the semantic handler. */
3324 FLD (f_operand2) = f_operand2;
3325 FLD (f_operand1) = f_operand1;
3326 FLD (f_memmode) = f_memmode;
3327 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));
3328
3329#if WITH_PROFILE_MODEL_P
3330 /* Record the fields for profiling. */
3331 if (PROFILE_MODEL_P (current_cpu))
3332 {
3333 FLD (in_Rd) = f_operand2;
3334 FLD (in_Rs) = f_operand1;
3335 FLD (out_Rs) = f_operand1;
3336 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)));
3337 }
3338#endif
3339#undef FLD
3340 return idesc;
3341 }
3342
3343 extract_sfmt_adds_m_w_m:
3344 {
3345 const IDESC *idesc = &crisv32f_insn_data[itype];
3346 CGEN_INSN_INT insn = base_insn;
3347#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3348 UINT f_operand2;
3349 UINT f_memmode;
3350 UINT f_operand1;
3351
3352 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3353 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3354 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3355
3356 /* Record the fields for the semantic handler. */
3357 FLD (f_operand2) = f_operand2;
3358 FLD (f_operand1) = f_operand1;
3359 FLD (f_memmode) = f_memmode;
3360 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));
3361
3362#if WITH_PROFILE_MODEL_P
3363 /* Record the fields for profiling. */
3364 if (PROFILE_MODEL_P (current_cpu))
3365 {
3366 FLD (in_Rd) = f_operand2;
3367 FLD (in_Rs) = f_operand1;
3368 FLD (out_Rs) = f_operand1;
3369 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)));
3370 }
3371#endif
3372#undef FLD
3373 return idesc;
3374 }
3375
3376 extract_sfmt_addscbr:
3377 {
3378 const IDESC *idesc = &crisv32f_insn_data[itype];
3379 CGEN_INSN_INT insn = base_insn;
3380#define FLD(f) abuf->fields.sfmt_addcbr.f
3381 INT f_indir_pc__byte;
3382 UINT f_operand2;
3383 /* Contents of trailing part of insn. */
3384 UINT word_1;
3385
3386 word_1 = GETIMEMUHI (current_cpu, pc + 2);
3387 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
3388 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3389
3390 /* Record the fields for the semantic handler. */
3391 FLD (f_operand2) = f_operand2;
3392 FLD (f_indir_pc__byte) = f_indir_pc__byte;
3393 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));
3394
3395#if WITH_PROFILE_MODEL_P
3396 /* Record the fields for profiling. */
3397 if (PROFILE_MODEL_P (current_cpu))
3398 {
3399 FLD (in_Rd) = f_operand2;
3400 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3401 }
3402#endif
3403#undef FLD
3404 return idesc;
3405 }
3406
3407 extract_sfmt_addscwr:
3408 {
3409 const IDESC *idesc = &crisv32f_insn_data[itype];
3410 CGEN_INSN_INT insn = base_insn;
3411#define FLD(f) abuf->fields.sfmt_addcwr.f
3412 INT f_indir_pc__word;
3413 UINT f_operand2;
3414 /* Contents of trailing part of insn. */
3415 UINT word_1;
3416
3417 word_1 = GETIMEMUHI (current_cpu, pc + 2);
3418 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
3419 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3420
3421 /* Record the fields for the semantic handler. */
3422 FLD (f_operand2) = f_operand2;
3423 FLD (f_indir_pc__word) = f_indir_pc__word;
3424 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));
3425
3426#if WITH_PROFILE_MODEL_P
3427 /* Record the fields for profiling. */
3428 if (PROFILE_MODEL_P (current_cpu))
3429 {
3430 FLD (in_Rd) = f_operand2;
3431 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3432 }
3433#endif
3434#undef FLD
3435 return idesc;
3436 }
3437
3438 extract_sfmt_addc_m:
3439 {
3440 const IDESC *idesc = &crisv32f_insn_data[itype];
3441 CGEN_INSN_INT insn = base_insn;
3442#define FLD(f) abuf->fields.sfmt_addc_m.f
3443 UINT f_operand2;
3444 UINT f_memmode;
3445 UINT f_operand1;
3446
3447 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3448 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3449 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3450
3451 /* Record the fields for the semantic handler. */
3452 FLD (f_operand2) = f_operand2;
3453 FLD (f_operand1) = f_operand1;
3454 FLD (f_memmode) = f_memmode;
3455 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addc_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
3456
3457#if WITH_PROFILE_MODEL_P
3458 /* Record the fields for profiling. */
3459 if (PROFILE_MODEL_P (current_cpu))
3460 {
3461 FLD (in_Rd) = f_operand2;
3462 FLD (in_Rs) = f_operand1;
3463 FLD (out_Rs) = f_operand1;
3464 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3465 }
3466#endif
3467#undef FLD
3468 return idesc;
3469 }
3470
3471 extract_sfmt_lapc_d:
3472 {
3473 const IDESC *idesc = &crisv32f_insn_data[itype];
3474 CGEN_INSN_INT insn = base_insn;
3475#define FLD(f) abuf->fields.sfmt_lapc_d.f
3476 SI f_indir_pc__dword_pcrel;
3477 UINT f_operand2;
3478 /* Contents of trailing part of insn. */
3479 UINT word_1;
3480
3481 word_1 = GETIMEMUSI (current_cpu, pc + 2);
3482 f_indir_pc__dword_pcrel = ((pc) + ((0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0))));
3483 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3484
3485 /* Record the fields for the semantic handler. */
3486 FLD (f_operand2) = f_operand2;
3487 FLD (i_const32_pcrel) = f_indir_pc__dword_pcrel;
3488 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lapc_d", "f_operand2 0x%x", 'x', f_operand2, "const32_pcrel 0x%x", 'x', f_indir_pc__dword_pcrel, (char *) 0));
3489
3490#if WITH_PROFILE_MODEL_P
3491 /* Record the fields for profiling. */
3492 if (PROFILE_MODEL_P (current_cpu))
3493 {
3494 FLD (out_Rd) = f_operand2;
3495 }
3496#endif
3497#undef FLD
3498 return idesc;
3499 }
3500
3501 extract_sfmt_lapcq:
3502 {
3503 const IDESC *idesc = &crisv32f_insn_data[itype];
3504 CGEN_INSN_INT insn = base_insn;
3505#define FLD(f) abuf->fields.sfmt_lapcq.f
3506 UINT f_operand2;
3507 SI f_qo;
3508
3509 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3510 f_qo = ((pc) + (((EXTRACT_LSB0_UINT (insn, 16, 3, 4)) << (1))));
3511
3512 /* Record the fields for the semantic handler. */
3513 FLD (f_operand2) = f_operand2;
3514 FLD (i_qo) = f_qo;
3515 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lapcq", "f_operand2 0x%x", 'x', f_operand2, "qo 0x%x", 'x', f_qo, (char *) 0));
3516
3517#if WITH_PROFILE_MODEL_P
3518 /* Record the fields for profiling. */
3519 if (PROFILE_MODEL_P (current_cpu))
3520 {
3521 FLD (out_Rd) = f_operand2;
3522 }
3523#endif
3524#undef FLD
3525 return idesc;
3526 }
3527
3528 extract_sfmt_addi_b_r:
3529 {
3530 const IDESC *idesc = &crisv32f_insn_data[itype];
3531 CGEN_INSN_INT insn = base_insn;
3532#define FLD(f) abuf->fields.sfmt_addc_m.f
3533 UINT f_operand2;
3534 UINT f_operand1;
3535
3536 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3537 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3538
3539 /* Record the fields for the semantic handler. */
3540 FLD (f_operand2) = f_operand2;
3541 FLD (f_operand1) = f_operand1;
3542 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));
3543
3544#if WITH_PROFILE_MODEL_P
3545 /* Record the fields for profiling. */
3546 if (PROFILE_MODEL_P (current_cpu))
3547 {
3548 FLD (in_Rd) = f_operand2;
3549 FLD (in_Rs) = f_operand1;
3550 FLD (out_Rs) = f_operand1;
3551 }
3552#endif
3553#undef FLD
3554 return idesc;
3555 }
3556
3557 extract_sfmt_neg_b_r:
3558 {
3559 const IDESC *idesc = &crisv32f_insn_data[itype];
3560 CGEN_INSN_INT insn = base_insn;
3561#define FLD(f) abuf->fields.sfmt_addc_m.f
3562 UINT f_operand2;
3563 UINT f_operand1;
3564
3565 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3566 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3567
3568 /* Record the fields for the semantic handler. */
3569 FLD (f_operand1) = f_operand1;
3570 FLD (f_operand2) = f_operand2;
3571 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));
3572
3573#if WITH_PROFILE_MODEL_P
3574 /* Record the fields for profiling. */
3575 if (PROFILE_MODEL_P (current_cpu))
3576 {
3577 FLD (in_Rs) = f_operand1;
3578 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3579 }
3580#endif
3581#undef FLD
3582 return idesc;
3583 }
3584
3585 extract_sfmt_neg_d_r:
3586 {
3587 const IDESC *idesc = &crisv32f_insn_data[itype];
3588 CGEN_INSN_INT insn = base_insn;
3589#define FLD(f) abuf->fields.sfmt_addc_m.f
3590 UINT f_operand2;
3591 UINT f_operand1;
3592
3593 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3594 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3595
3596 /* Record the fields for the semantic handler. */
3597 FLD (f_operand1) = f_operand1;
3598 FLD (f_operand2) = f_operand2;
3599 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));
3600
3601#if WITH_PROFILE_MODEL_P
3602 /* Record the fields for profiling. */
3603 if (PROFILE_MODEL_P (current_cpu))
3604 {
3605 FLD (in_Rs) = f_operand1;
3606 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3607 }
3608#endif
3609#undef FLD
3610 return idesc;
3611 }
3612
3613 extract_sfmt_test_m_b_m:
3614 {
3615 const IDESC *idesc = &crisv32f_insn_data[itype];
3616 CGEN_INSN_INT insn = base_insn;
3617#define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
3618 UINT f_memmode;
3619 UINT f_operand1;
3620
3621 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3622 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3623
3624 /* Record the fields for the semantic handler. */
3625 FLD (f_operand1) = f_operand1;
3626 FLD (f_memmode) = f_memmode;
3627 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));
3628
3629#if WITH_PROFILE_MODEL_P
3630 /* Record the fields for profiling. */
3631 if (PROFILE_MODEL_P (current_cpu))
3632 {
3633 FLD (in_Rs) = f_operand1;
3634 FLD (out_Rs) = f_operand1;
3635 }
3636#endif
3637#undef FLD
3638 return idesc;
3639 }
3640
3641 extract_sfmt_test_m_w_m:
3642 {
3643 const IDESC *idesc = &crisv32f_insn_data[itype];
3644 CGEN_INSN_INT insn = base_insn;
3645#define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
3646 UINT f_memmode;
3647 UINT f_operand1;
3648
3649 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3650 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3651
3652 /* Record the fields for the semantic handler. */
3653 FLD (f_operand1) = f_operand1;
3654 FLD (f_memmode) = f_memmode;
3655 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));
3656
3657#if WITH_PROFILE_MODEL_P
3658 /* Record the fields for profiling. */
3659 if (PROFILE_MODEL_P (current_cpu))
3660 {
3661 FLD (in_Rs) = f_operand1;
3662 FLD (out_Rs) = f_operand1;
3663 }
3664#endif
3665#undef FLD
3666 return idesc;
3667 }
3668
3669 extract_sfmt_test_m_d_m:
3670 {
3671 const IDESC *idesc = &crisv32f_insn_data[itype];
3672 CGEN_INSN_INT insn = base_insn;
3673#define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
3674 UINT f_memmode;
3675 UINT f_operand1;
3676
3677 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3678 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3679
3680 /* Record the fields for the semantic handler. */
3681 FLD (f_operand1) = f_operand1;
3682 FLD (f_memmode) = f_memmode;
3683 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));
3684
3685#if WITH_PROFILE_MODEL_P
3686 /* Record the fields for profiling. */
3687 if (PROFILE_MODEL_P (current_cpu))
3688 {
3689 FLD (in_Rs) = f_operand1;
3690 FLD (out_Rs) = f_operand1;
3691 }
3692#endif
3693#undef FLD
3694 return idesc;
3695 }
3696
3697 extract_sfmt_move_r_m_b_m:
3698 {
3699 const IDESC *idesc = &crisv32f_insn_data[itype];
3700 CGEN_INSN_INT insn = base_insn;
3701#define FLD(f) abuf->fields.sfmt_addc_m.f
3702 UINT f_operand2;
3703 UINT f_memmode;
3704 UINT f_operand1;
3705
3706 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3707 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3708 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3709
3710 /* Record the fields for the semantic handler. */
3711 FLD (f_operand2) = f_operand2;
3712 FLD (f_operand1) = f_operand1;
3713 FLD (f_memmode) = f_memmode;
3714 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));
3715
3716#if WITH_PROFILE_MODEL_P
3717 /* Record the fields for profiling. */
3718 if (PROFILE_MODEL_P (current_cpu))
3719 {
3720 FLD (in_Rd) = f_operand2;
3721 FLD (in_Rs) = f_operand1;
3722 FLD (out_Rs) = f_operand1;
3723 }
3724#endif
3725#undef FLD
3726 return idesc;
3727 }
3728
3729 extract_sfmt_move_r_m_w_m:
3730 {
3731 const IDESC *idesc = &crisv32f_insn_data[itype];
3732 CGEN_INSN_INT insn = base_insn;
3733#define FLD(f) abuf->fields.sfmt_addc_m.f
3734 UINT f_operand2;
3735 UINT f_memmode;
3736 UINT f_operand1;
3737
3738 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3739 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3740 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3741
3742 /* Record the fields for the semantic handler. */
3743 FLD (f_operand2) = f_operand2;
3744 FLD (f_operand1) = f_operand1;
3745 FLD (f_memmode) = f_memmode;
3746 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));
3747
3748#if WITH_PROFILE_MODEL_P
3749 /* Record the fields for profiling. */
3750 if (PROFILE_MODEL_P (current_cpu))
3751 {
3752 FLD (in_Rd) = f_operand2;
3753 FLD (in_Rs) = f_operand1;
3754 FLD (out_Rs) = f_operand1;
3755 }
3756#endif
3757#undef FLD
3758 return idesc;
3759 }
3760
3761 extract_sfmt_move_r_m_d_m:
3762 {
3763 const IDESC *idesc = &crisv32f_insn_data[itype];
3764 CGEN_INSN_INT insn = base_insn;
3765#define FLD(f) abuf->fields.sfmt_addc_m.f
3766 UINT f_operand2;
3767 UINT f_memmode;
3768 UINT f_operand1;
3769
3770 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3771 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3772 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3773
3774 /* Record the fields for the semantic handler. */
3775 FLD (f_operand2) = f_operand2;
3776 FLD (f_operand1) = f_operand1;
3777 FLD (f_memmode) = f_memmode;
3778 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));
3779
3780#if WITH_PROFILE_MODEL_P
3781 /* Record the fields for profiling. */
3782 if (PROFILE_MODEL_P (current_cpu))
3783 {
3784 FLD (in_Rd) = f_operand2;
3785 FLD (in_Rs) = f_operand1;
3786 FLD (out_Rs) = f_operand1;
3787 }
3788#endif
3789#undef FLD
3790 return idesc;
3791 }
3792
3793 extract_sfmt_muls_b:
3794 {
3795 const IDESC *idesc = &crisv32f_insn_data[itype];
3796 CGEN_INSN_INT insn = base_insn;
3797#define FLD(f) abuf->fields.sfmt_muls_b.f
3798 UINT f_operand2;
3799 UINT f_operand1;
3800
3801 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3802 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3803
3804 /* Record the fields for the semantic handler. */
3805 FLD (f_operand2) = f_operand2;
3806 FLD (f_operand1) = f_operand1;
3807 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));
3808
3809#if WITH_PROFILE_MODEL_P
3810 /* Record the fields for profiling. */
3811 if (PROFILE_MODEL_P (current_cpu))
3812 {
3813 FLD (in_Rd) = f_operand2;
3814 FLD (in_Rs) = f_operand1;
3815 FLD (out_Rd) = f_operand2;
3816 FLD (out_h_sr_SI_7) = 7;
3817 }
3818#endif
3819#undef FLD
3820 return idesc;
3821 }
3822
3823 extract_sfmt_mcp:
3824 {
3825 const IDESC *idesc = &crisv32f_insn_data[itype];
3826 CGEN_INSN_INT insn = base_insn;
3827#define FLD(f) abuf->fields.sfmt_mcp.f
3828 UINT f_operand2;
3829 UINT f_operand1;
3830
3831 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3832 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3833
3834 /* Record the fields for the semantic handler. */
3835 FLD (f_operand2) = f_operand2;
3836 FLD (f_operand1) = f_operand1;
3837 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mcp", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
3838
3839#if WITH_PROFILE_MODEL_P
3840 /* Record the fields for profiling. */
3841 if (PROFILE_MODEL_P (current_cpu))
3842 {
3843 FLD (in_Ps) = f_operand2;
3844 FLD (in_Rs) = f_operand1;
3845 FLD (out_h_gr_SI_index_of__DFLT_Rs) = FLD (f_operand1);
3846 }
3847#endif
3848#undef FLD
3849 return idesc;
3850 }
3851
3852 extract_sfmt_dstep:
3853 {
3854 const IDESC *idesc = &crisv32f_insn_data[itype];
3855 CGEN_INSN_INT insn = base_insn;
3856#define FLD(f) abuf->fields.sfmt_muls_b.f
3857 UINT f_operand2;
3858 UINT f_operand1;
3859
3860 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3861 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3862
3863 /* Record the fields for the semantic handler. */
3864 FLD (f_operand2) = f_operand2;
3865 FLD (f_operand1) = f_operand1;
3866 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));
3867
3868#if WITH_PROFILE_MODEL_P
3869 /* Record the fields for profiling. */
3870 if (PROFILE_MODEL_P (current_cpu))
3871 {
3872 FLD (in_Rd) = f_operand2;
3873 FLD (in_Rs) = f_operand1;
3874 FLD (out_Rd) = f_operand2;
3875 }
3876#endif
3877#undef FLD
3878 return idesc;
3879 }
3880
3881 extract_sfmt_and_b_r:
3882 {
3883 const IDESC *idesc = &crisv32f_insn_data[itype];
3884 CGEN_INSN_INT insn = base_insn;
3885#define FLD(f) abuf->fields.sfmt_addc_m.f
3886 UINT f_operand2;
3887 UINT f_operand1;
3888
3889 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3890 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3891
3892 /* Record the fields for the semantic handler. */
3893 FLD (f_operand2) = f_operand2;
3894 FLD (f_operand1) = f_operand1;
3895 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));
3896
3897#if WITH_PROFILE_MODEL_P
3898 /* Record the fields for profiling. */
3899 if (PROFILE_MODEL_P (current_cpu))
3900 {
3901 FLD (in_Rd) = f_operand2;
3902 FLD (in_Rs) = f_operand1;
3903 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3904 }
3905#endif
3906#undef FLD
3907 return idesc;
3908 }
3909
3910 extract_sfmt_and_w_r:
3911 {
3912 const IDESC *idesc = &crisv32f_insn_data[itype];
3913 CGEN_INSN_INT insn = base_insn;
3914#define FLD(f) abuf->fields.sfmt_addc_m.f
3915 UINT f_operand2;
3916 UINT f_operand1;
3917
3918 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3919 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3920
3921 /* Record the fields for the semantic handler. */
3922 FLD (f_operand2) = f_operand2;
3923 FLD (f_operand1) = f_operand1;
3924 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));
3925
3926#if WITH_PROFILE_MODEL_P
3927 /* Record the fields for profiling. */
3928 if (PROFILE_MODEL_P (current_cpu))
3929 {
3930 FLD (in_Rd) = f_operand2;
3931 FLD (in_Rs) = f_operand1;
3932 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3933 }
3934#endif
3935#undef FLD
3936 return idesc;
3937 }
3938
3939 extract_sfmt_and_d_r:
3940 {
3941 const IDESC *idesc = &crisv32f_insn_data[itype];
3942 CGEN_INSN_INT insn = base_insn;
3943#define FLD(f) abuf->fields.sfmt_addc_m.f
3944 UINT f_operand2;
3945 UINT f_operand1;
3946
3947 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3948 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3949
3950 /* Record the fields for the semantic handler. */
3951 FLD (f_operand2) = f_operand2;
3952 FLD (f_operand1) = f_operand1;
3953 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));
3954
3955#if WITH_PROFILE_MODEL_P
3956 /* Record the fields for profiling. */
3957 if (PROFILE_MODEL_P (current_cpu))
3958 {
3959 FLD (in_Rd) = f_operand2;
3960 FLD (in_Rs) = f_operand1;
3961 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
3962 }
3963#endif
3964#undef FLD
3965 return idesc;
3966 }
3967
3968 extract_sfmt_and_m_b_m:
3969 {
3970 const IDESC *idesc = &crisv32f_insn_data[itype];
3971 CGEN_INSN_INT insn = base_insn;
3972#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3973 UINT f_operand2;
3974 UINT f_memmode;
3975 UINT f_operand1;
3976
3977 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
3978 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
3979 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
3980
3981 /* Record the fields for the semantic handler. */
3982 FLD (f_operand2) = f_operand2;
3983 FLD (f_operand1) = f_operand1;
3984 FLD (f_memmode) = f_memmode;
3985 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));
3986
3987#if WITH_PROFILE_MODEL_P
3988 /* Record the fields for profiling. */
3989 if (PROFILE_MODEL_P (current_cpu))
3990 {
3991 FLD (in_Rd) = f_operand2;
3992 FLD (in_Rs) = f_operand1;
3993 FLD (out_Rs) = f_operand1;
3994 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)));
3995 }
3996#endif
3997#undef FLD
3998 return idesc;
3999 }
4000
4001 extract_sfmt_and_m_w_m:
4002 {
4003 const IDESC *idesc = &crisv32f_insn_data[itype];
4004 CGEN_INSN_INT insn = base_insn;
4005#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4006 UINT f_operand2;
4007 UINT f_memmode;
4008 UINT f_operand1;
4009
4010 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4011 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4012 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4013
4014 /* Record the fields for the semantic handler. */
4015 FLD (f_operand2) = f_operand2;
4016 FLD (f_operand1) = f_operand1;
4017 FLD (f_memmode) = f_memmode;
4018 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));
4019
4020#if WITH_PROFILE_MODEL_P
4021 /* Record the fields for profiling. */
4022 if (PROFILE_MODEL_P (current_cpu))
4023 {
4024 FLD (in_Rd) = f_operand2;
4025 FLD (in_Rs) = f_operand1;
4026 FLD (out_Rs) = f_operand1;
4027 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)));
4028 }
4029#endif
4030#undef FLD
4031 return idesc;
4032 }
4033
4034 extract_sfmt_and_m_d_m:
4035 {
4036 const IDESC *idesc = &crisv32f_insn_data[itype];
4037 CGEN_INSN_INT insn = base_insn;
4038#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4039 UINT f_operand2;
4040 UINT f_memmode;
4041 UINT f_operand1;
4042
4043 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4044 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4045 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4046
4047 /* Record the fields for the semantic handler. */
4048 FLD (f_operand2) = f_operand2;
4049 FLD (f_operand1) = f_operand1;
4050 FLD (f_memmode) = f_memmode;
4051 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));
4052
4053#if WITH_PROFILE_MODEL_P
4054 /* Record the fields for profiling. */
4055 if (PROFILE_MODEL_P (current_cpu))
4056 {
4057 FLD (in_Rd) = f_operand2;
4058 FLD (in_Rs) = f_operand1;
4059 FLD (out_Rs) = f_operand1;
4060 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)));
4061 }
4062#endif
4063#undef FLD
4064 return idesc;
4065 }
4066
4067 extract_sfmt_andcbr:
4068 {
4069 const IDESC *idesc = &crisv32f_insn_data[itype];
4070 CGEN_INSN_INT insn = base_insn;
4071#define FLD(f) abuf->fields.sfmt_addcbr.f
4072 INT f_indir_pc__byte;
4073 UINT f_operand2;
4074 /* Contents of trailing part of insn. */
4075 UINT word_1;
4076
4077 word_1 = GETIMEMUHI (current_cpu, pc + 2);
4078 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
4079 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4080
4081 /* Record the fields for the semantic handler. */
4082 FLD (f_operand2) = f_operand2;
4083 FLD (f_indir_pc__byte) = f_indir_pc__byte;
4084 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));
4085
4086#if WITH_PROFILE_MODEL_P
4087 /* Record the fields for profiling. */
4088 if (PROFILE_MODEL_P (current_cpu))
4089 {
4090 FLD (in_Rd) = f_operand2;
4091 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4092 }
4093#endif
4094#undef FLD
4095 return idesc;
4096 }
4097
4098 extract_sfmt_andcwr:
4099 {
4100 const IDESC *idesc = &crisv32f_insn_data[itype];
4101 CGEN_INSN_INT insn = base_insn;
4102#define FLD(f) abuf->fields.sfmt_addcwr.f
4103 INT f_indir_pc__word;
4104 UINT f_operand2;
4105 /* Contents of trailing part of insn. */
4106 UINT word_1;
4107
4108 word_1 = GETIMEMUHI (current_cpu, pc + 2);
4109 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
4110 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4111
4112 /* Record the fields for the semantic handler. */
4113 FLD (f_operand2) = f_operand2;
4114 FLD (f_indir_pc__word) = f_indir_pc__word;
4115 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));
4116
4117#if WITH_PROFILE_MODEL_P
4118 /* Record the fields for profiling. */
4119 if (PROFILE_MODEL_P (current_cpu))
4120 {
4121 FLD (in_Rd) = f_operand2;
4122 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4123 }
4124#endif
4125#undef FLD
4126 return idesc;
4127 }
4128
4129 extract_sfmt_andcdr:
4130 {
4131 const IDESC *idesc = &crisv32f_insn_data[itype];
4132 CGEN_INSN_INT insn = base_insn;
4133#define FLD(f) abuf->fields.sfmt_addcdr.f
4134 INT f_indir_pc__dword;
4135 UINT f_operand2;
4136 /* Contents of trailing part of insn. */
4137 UINT word_1;
4138
4139 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4140 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
4141 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4142
4143 /* Record the fields for the semantic handler. */
4144 FLD (f_operand2) = f_operand2;
4145 FLD (f_indir_pc__dword) = f_indir_pc__dword;
4146 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));
4147
4148#if WITH_PROFILE_MODEL_P
4149 /* Record the fields for profiling. */
4150 if (PROFILE_MODEL_P (current_cpu))
4151 {
4152 FLD (in_Rd) = f_operand2;
4153 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4154 }
4155#endif
4156#undef FLD
4157 return idesc;
4158 }
4159
4160 extract_sfmt_andq:
4161 {
4162 const IDESC *idesc = &crisv32f_insn_data[itype];
4163 CGEN_INSN_INT insn = base_insn;
4164#define FLD(f) abuf->fields.sfmt_andq.f
4165 UINT f_operand2;
4166 INT f_s6;
4167
4168 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4169 f_s6 = EXTRACT_LSB0_INT (insn, 16, 5, 6);
4170
4171 /* Record the fields for the semantic handler. */
4172 FLD (f_operand2) = f_operand2;
4173 FLD (f_s6) = f_s6;
4174 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));
4175
4176#if WITH_PROFILE_MODEL_P
4177 /* Record the fields for profiling. */
4178 if (PROFILE_MODEL_P (current_cpu))
4179 {
4180 FLD (in_Rd) = f_operand2;
4181 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4182 }
4183#endif
4184#undef FLD
4185 return idesc;
4186 }
4187
4188 extract_sfmt_swap:
4189 {
4190 const IDESC *idesc = &crisv32f_insn_data[itype];
4191 CGEN_INSN_INT insn = base_insn;
4192#define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
4193 UINT f_operand2;
4194 UINT f_operand1;
4195
4196 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4197 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4198
4199 /* Record the fields for the semantic handler. */
4200 FLD (f_operand1) = f_operand1;
4201 FLD (f_operand2) = f_operand2;
4202 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));
4203
4204#if WITH_PROFILE_MODEL_P
4205 /* Record the fields for profiling. */
4206 if (PROFILE_MODEL_P (current_cpu))
4207 {
4208 FLD (in_Rs) = f_operand1;
4209 FLD (out_Rs) = f_operand1;
4210 }
4211#endif
4212#undef FLD
4213 return idesc;
4214 }
4215
4216 extract_sfmt_asrr_b_r:
4217 {
4218 const IDESC *idesc = &crisv32f_insn_data[itype];
4219 CGEN_INSN_INT insn = base_insn;
4220#define FLD(f) abuf->fields.sfmt_addc_m.f
4221 UINT f_operand2;
4222 UINT f_operand1;
4223
4224 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4225 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4226
4227 /* Record the fields for the semantic handler. */
4228 FLD (f_operand2) = f_operand2;
4229 FLD (f_operand1) = f_operand1;
4230 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));
4231
4232#if WITH_PROFILE_MODEL_P
4233 /* Record the fields for profiling. */
4234 if (PROFILE_MODEL_P (current_cpu))
4235 {
4236 FLD (in_Rd) = f_operand2;
4237 FLD (in_Rs) = f_operand1;
4238 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4239 }
4240#endif
4241#undef FLD
4242 return idesc;
4243 }
4244
4245 extract_sfmt_asrq:
4246 {
4247 const IDESC *idesc = &crisv32f_insn_data[itype];
4248 CGEN_INSN_INT insn = base_insn;
4249#define FLD(f) abuf->fields.sfmt_asrq.f
4250 UINT f_operand2;
4251 UINT f_u5;
4252
4253 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4254 f_u5 = EXTRACT_LSB0_UINT (insn, 16, 4, 5);
4255
4256 /* Record the fields for the semantic handler. */
4257 FLD (f_operand2) = f_operand2;
4258 FLD (f_u5) = f_u5;
4259 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));
4260
4261#if WITH_PROFILE_MODEL_P
4262 /* Record the fields for profiling. */
4263 if (PROFILE_MODEL_P (current_cpu))
4264 {
4265 FLD (in_Rd) = f_operand2;
4266 FLD (out_Rd) = f_operand2;
4267 }
4268#endif
4269#undef FLD
4270 return idesc;
4271 }
4272
4273 extract_sfmt_lsrr_b_r:
4274 {
4275 const IDESC *idesc = &crisv32f_insn_data[itype];
4276 CGEN_INSN_INT insn = base_insn;
4277#define FLD(f) abuf->fields.sfmt_addc_m.f
4278 UINT f_operand2;
4279 UINT f_operand1;
4280
4281 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4282 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4283
4284 /* Record the fields for the semantic handler. */
4285 FLD (f_operand2) = f_operand2;
4286 FLD (f_operand1) = f_operand1;
4287 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));
4288
4289#if WITH_PROFILE_MODEL_P
4290 /* Record the fields for profiling. */
4291 if (PROFILE_MODEL_P (current_cpu))
4292 {
4293 FLD (in_Rd) = f_operand2;
4294 FLD (in_Rs) = f_operand1;
4295 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4296 }
4297#endif
4298#undef FLD
4299 return idesc;
4300 }
4301
4302 extract_sfmt_lsrr_d_r:
4303 {
4304 const IDESC *idesc = &crisv32f_insn_data[itype];
4305 CGEN_INSN_INT insn = base_insn;
4306#define FLD(f) abuf->fields.sfmt_addc_m.f
4307 UINT f_operand2;
4308 UINT f_operand1;
4309
4310 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4311 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4312
4313 /* Record the fields for the semantic handler. */
4314 FLD (f_operand2) = f_operand2;
4315 FLD (f_operand1) = f_operand1;
4316 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));
4317
4318#if WITH_PROFILE_MODEL_P
4319 /* Record the fields for profiling. */
4320 if (PROFILE_MODEL_P (current_cpu))
4321 {
4322 FLD (in_Rd) = f_operand2;
4323 FLD (in_Rs) = f_operand1;
4324 FLD (out_h_gr_SI_index_of__DFLT_Rd) = FLD (f_operand2);
4325 }
4326#endif
4327#undef FLD
4328 return idesc;
4329 }
4330
4331 extract_sfmt_btst:
4332 {
4333 const IDESC *idesc = &crisv32f_insn_data[itype];
4334 CGEN_INSN_INT insn = base_insn;
4335#define FLD(f) abuf->fields.sfmt_muls_b.f
4336 UINT f_operand2;
4337 UINT f_operand1;
4338
4339 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4340 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4341
4342 /* Record the fields for the semantic handler. */
4343 FLD (f_operand2) = f_operand2;
4344 FLD (f_operand1) = f_operand1;
4345 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));
4346
4347#if WITH_PROFILE_MODEL_P
4348 /* Record the fields for profiling. */
4349 if (PROFILE_MODEL_P (current_cpu))
4350 {
4351 FLD (in_Rd) = f_operand2;
4352 FLD (in_Rs) = f_operand1;
4353 }
4354#endif
4355#undef FLD
4356 return idesc;
4357 }
4358
4359 extract_sfmt_btstq:
4360 {
4361 const IDESC *idesc = &crisv32f_insn_data[itype];
4362 CGEN_INSN_INT insn = base_insn;
4363#define FLD(f) abuf->fields.sfmt_asrq.f
4364 UINT f_operand2;
4365 UINT f_u5;
4366
4367 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4368 f_u5 = EXTRACT_LSB0_UINT (insn, 16, 4, 5);
4369
4370 /* Record the fields for the semantic handler. */
4371 FLD (f_operand2) = f_operand2;
4372 FLD (f_u5) = f_u5;
4373 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));
4374
4375#if WITH_PROFILE_MODEL_P
4376 /* Record the fields for profiling. */
4377 if (PROFILE_MODEL_P (current_cpu))
4378 {
4379 FLD (in_Rd) = f_operand2;
4380 }
4381#endif
4382#undef FLD
4383 return idesc;
4384 }
4385
4386 extract_sfmt_setf:
4387 {
4388 const IDESC *idesc = &crisv32f_insn_data[itype];
4389 CGEN_INSN_INT insn = base_insn;
4390#define FLD(f) abuf->fields.sfmt_setf.f
4391 UINT f_operand2;
4392 UINT f_operand1;
4393 UINT f_dstsrc;
4394
4395 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4396 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4397 f_dstsrc = ((((f_operand1) | (((f_operand2) << (4))))) & (255));
4398
4399 /* Record the fields for the semantic handler. */
4400 FLD (f_dstsrc) = f_dstsrc;
4401 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_setf", "f_dstsrc 0x%x", 'x', f_dstsrc, (char *) 0));
4402
4403#undef FLD
4404 return idesc;
4405 }
4406
4407 extract_sfmt_rfe:
4408 {
4409 const IDESC *idesc = &crisv32f_insn_data[itype];
4410#define FLD(f) abuf->fields.sfmt_rfe.f
4411
4412
4413 /* Record the fields for the semantic handler. */
4414 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rfe", (char *) 0));
4415
4416#if WITH_PROFILE_MODEL_P
4417 /* Record the fields for profiling. */
4418 if (PROFILE_MODEL_P (current_cpu))
4419 {
4420 FLD (in_h_sr_SI_13) = 13;
4421 FLD (out_h_sr_SI_13) = 13;
4422 }
4423#endif
4424#undef FLD
4425 return idesc;
4426 }
4427
4428 extract_sfmt_sfe:
4429 {
4430 const IDESC *idesc = &crisv32f_insn_data[itype];
4431#define FLD(f) abuf->fields.sfmt_rfe.f
4432
4433
4434 /* Record the fields for the semantic handler. */
4435 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sfe", (char *) 0));
4436
4437#if WITH_PROFILE_MODEL_P
4438 /* Record the fields for profiling. */
4439 if (PROFILE_MODEL_P (current_cpu))
4440 {
4441 FLD (in_h_sr_SI_13) = 13;
4442 FLD (out_h_sr_SI_13) = 13;
4443 }
4444#endif
4445#undef FLD
4446 return idesc;
4447 }
4448
4449 extract_sfmt_rfg:
4450 {
4451 const IDESC *idesc = &crisv32f_insn_data[itype];
4452#define FLD(f) abuf->fields.fmt_empty.f
4453
4454
4455 /* Record the fields for the semantic handler. */
4456 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rfg", (char *) 0));
4457
4458#if WITH_PROFILE_MODEL_P
4459 /* Record the fields for profiling. */
4460 if (PROFILE_MODEL_P (current_cpu))
4461 {
4462 }
4463#endif
4464#undef FLD
4465 return idesc;
4466 }
4467
4468 extract_sfmt_rfn:
4469 {
4470 const IDESC *idesc = &crisv32f_insn_data[itype];
4471#define FLD(f) abuf->fields.sfmt_rfe.f
4472
4473
4474 /* Record the fields for the semantic handler. */
4475 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rfn", (char *) 0));
4476
4477#if WITH_PROFILE_MODEL_P
4478 /* Record the fields for profiling. */
4479 if (PROFILE_MODEL_P (current_cpu))
4480 {
4481 FLD (in_h_sr_SI_13) = 13;
4482 FLD (out_h_sr_SI_13) = 13;
4483 }
4484#endif
4485#undef FLD
4486 return idesc;
4487 }
4488
4489 extract_sfmt_halt:
4490 {
4491 const IDESC *idesc = &crisv32f_insn_data[itype];
4492#define FLD(f) abuf->fields.fmt_empty.f
4493
4494
4495 /* Record the fields for the semantic handler. */
4496 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_halt", (char *) 0));
4497
4498#if WITH_PROFILE_MODEL_P
4499 /* Record the fields for profiling. */
4500 if (PROFILE_MODEL_P (current_cpu))
4501 {
4502 }
4503#endif
4504#undef FLD
4505 return idesc;
4506 }
4507
4508 extract_sfmt_bcc_b:
4509 {
4510 const IDESC *idesc = &crisv32f_insn_data[itype];
4511 CGEN_INSN_INT insn = base_insn;
4512#define FLD(f) abuf->fields.sfmt_bcc_b.f
4513 UINT f_operand2;
4514 UINT f_disp9_lo;
4515 INT f_disp9_hi;
4516 INT f_disp9;
4517
4518 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4519 f_disp9_lo = EXTRACT_LSB0_UINT (insn, 16, 7, 7);
4520 f_disp9_hi = EXTRACT_LSB0_INT (insn, 16, 0, 1);
4521{
4522 SI tmp_abslo;
4523 SI tmp_absval;
4524 tmp_abslo = ((f_disp9_lo) << (1));
4525 tmp_absval = ((((((f_disp9_hi) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo));
4526 f_disp9 = ((((pc) + (tmp_absval))) + (((GET_H_V32_V32 ()) ? (0) : (2))));
4527}
4528
4529 /* Record the fields for the semantic handler. */
4530 FLD (f_operand2) = f_operand2;
4531 FLD (i_o_pcrel) = f_disp9;
4532 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));
4533
4534#if WITH_PROFILE_MODEL_P
4535 /* Record the fields for profiling. */
4536 if (PROFILE_MODEL_P (current_cpu))
4537 {
4538 }
4539#endif
4540#undef FLD
4541 return idesc;
4542 }
4543
4544 extract_sfmt_ba_b:
4545 {
4546 const IDESC *idesc = &crisv32f_insn_data[itype];
4547 CGEN_INSN_INT insn = base_insn;
4548#define FLD(f) abuf->fields.sfmt_bcc_b.f
4549 UINT f_disp9_lo;
4550 INT f_disp9_hi;
4551 INT f_disp9;
4552
4553 f_disp9_lo = EXTRACT_LSB0_UINT (insn, 16, 7, 7);
4554 f_disp9_hi = EXTRACT_LSB0_INT (insn, 16, 0, 1);
4555{
4556 SI tmp_abslo;
4557 SI tmp_absval;
4558 tmp_abslo = ((f_disp9_lo) << (1));
4559 tmp_absval = ((((((f_disp9_hi) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo));
4560 f_disp9 = ((((pc) + (tmp_absval))) + (((GET_H_V32_V32 ()) ? (0) : (2))));
4561}
4562
4563 /* Record the fields for the semantic handler. */
4564 FLD (i_o_pcrel) = f_disp9;
4565 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ba_b", "o_pcrel 0x%x", 'x', f_disp9, (char *) 0));
4566
4567#if WITH_PROFILE_MODEL_P
4568 /* Record the fields for profiling. */
4569 if (PROFILE_MODEL_P (current_cpu))
4570 {
4571 }
4572#endif
4573#undef FLD
4574 return idesc;
4575 }
4576
4577 extract_sfmt_bcc_w:
4578 {
4579 const IDESC *idesc = &crisv32f_insn_data[itype];
4580 CGEN_INSN_INT insn = base_insn;
4581#define FLD(f) abuf->fields.sfmt_bcc_w.f
4582 SI f_indir_pc__word_pcrel;
4583 UINT f_operand2;
4584 /* Contents of trailing part of insn. */
4585 UINT word_1;
4586
4587 word_1 = GETIMEMUHI (current_cpu, pc + 2);
4588 f_indir_pc__word_pcrel = ((EXTHISI (((HI) (UINT) ((0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0)))))) + (((pc) + (((GET_H_V32_V32 ()) ? (0) : (4))))));
4589 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4590
4591 /* Record the fields for the semantic handler. */
4592 FLD (f_operand2) = f_operand2;
4593 FLD (i_o_word_pcrel) = f_indir_pc__word_pcrel;
4594 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));
4595
4596#if WITH_PROFILE_MODEL_P
4597 /* Record the fields for profiling. */
4598 if (PROFILE_MODEL_P (current_cpu))
4599 {
4600 }
4601#endif
4602#undef FLD
4603 return idesc;
4604 }
4605
4606 extract_sfmt_ba_w:
4607 {
4608 const IDESC *idesc = &crisv32f_insn_data[itype];
4609 CGEN_INSN_INT insn = base_insn;
4610#define FLD(f) abuf->fields.sfmt_bcc_w.f
4611 SI f_indir_pc__word_pcrel;
4612 /* Contents of trailing part of insn. */
4613 UINT word_1;
4614
4615 word_1 = GETIMEMUHI (current_cpu, pc + 2);
4616 f_indir_pc__word_pcrel = ((EXTHISI (((HI) (UINT) ((0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0)))))) + (((pc) + (((GET_H_V32_V32 ()) ? (0) : (4))))));
4617
4618 /* Record the fields for the semantic handler. */
4619 FLD (i_o_word_pcrel) = f_indir_pc__word_pcrel;
4620 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ba_w", "o_word_pcrel 0x%x", 'x', f_indir_pc__word_pcrel, (char *) 0));
4621
4622#if WITH_PROFILE_MODEL_P
4623 /* Record the fields for profiling. */
4624 if (PROFILE_MODEL_P (current_cpu))
4625 {
4626 }
4627#endif
4628#undef FLD
4629 return idesc;
4630 }
4631
4632 extract_sfmt_jas_r:
4633 {
4634 const IDESC *idesc = &crisv32f_insn_data[itype];
4635 CGEN_INSN_INT insn = base_insn;
4636#define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
4637 UINT f_operand2;
4638 UINT f_operand1;
4639
4640 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4641 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4642
4643 /* Record the fields for the semantic handler. */
4644 FLD (f_operand1) = f_operand1;
4645 FLD (f_operand2) = f_operand2;
4646 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jas_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
4647
4648#if WITH_PROFILE_MODEL_P
4649 /* Record the fields for profiling. */
4650 if (PROFILE_MODEL_P (current_cpu))
4651 {
4652 FLD (in_Rs) = f_operand1;
4653 FLD (out_Pd) = f_operand2;
4654 }
4655#endif
4656#undef FLD
4657 return idesc;
4658 }
4659
4660 extract_sfmt_jas_c:
4661 {
4662 const IDESC *idesc = &crisv32f_insn_data[itype];
4663 CGEN_INSN_INT insn = base_insn;
4664#define FLD(f) abuf->fields.sfmt_move_c_sprv32_p0.f
4665 INT f_indir_pc__dword;
4666 UINT f_operand2;
4667 /* Contents of trailing part of insn. */
4668 UINT word_1;
4669
4670 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4671 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
4672 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4673
4674 /* Record the fields for the semantic handler. */
4675 FLD (f_indir_pc__dword) = f_indir_pc__dword;
4676 FLD (f_operand2) = f_operand2;
4677 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jas_c", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
4678
4679#if WITH_PROFILE_MODEL_P
4680 /* Record the fields for profiling. */
4681 if (PROFILE_MODEL_P (current_cpu))
4682 {
4683 FLD (out_Pd) = f_operand2;
4684 }
4685#endif
4686#undef FLD
4687 return idesc;
4688 }
4689
4690 extract_sfmt_jump_p:
4691 {
4692 const IDESC *idesc = &crisv32f_insn_data[itype];
4693 CGEN_INSN_INT insn = base_insn;
4694#define FLD(f) abuf->fields.sfmt_mcp.f
4695 UINT f_operand2;
4696
4697 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4698
4699 /* Record the fields for the semantic handler. */
4700 FLD (f_operand2) = f_operand2;
4701 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jump_p", "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
4702
4703#if WITH_PROFILE_MODEL_P
4704 /* Record the fields for profiling. */
4705 if (PROFILE_MODEL_P (current_cpu))
4706 {
4707 FLD (in_Ps) = f_operand2;
4708 }
4709#endif
4710#undef FLD
4711 return idesc;
4712 }
4713
4714 extract_sfmt_bas_c:
4715 {
4716 const IDESC *idesc = &crisv32f_insn_data[itype];
4717 CGEN_INSN_INT insn = base_insn;
4718#define FLD(f) abuf->fields.sfmt_bas_c.f
4719 SI f_indir_pc__dword_pcrel;
4720 UINT f_operand2;
4721 /* Contents of trailing part of insn. */
4722 UINT word_1;
4723
4724 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4725 f_indir_pc__dword_pcrel = ((pc) + ((0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0))));
4726 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4727
4728 /* Record the fields for the semantic handler. */
4729 FLD (f_operand2) = f_operand2;
4730 FLD (i_const32_pcrel) = f_indir_pc__dword_pcrel;
4731 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bas_c", "f_operand2 0x%x", 'x', f_operand2, "const32_pcrel 0x%x", 'x', f_indir_pc__dword_pcrel, (char *) 0));
4732
4733#if WITH_PROFILE_MODEL_P
4734 /* Record the fields for profiling. */
4735 if (PROFILE_MODEL_P (current_cpu))
4736 {
4737 FLD (out_Pd) = f_operand2;
4738 }
4739#endif
4740#undef FLD
4741 return idesc;
4742 }
4743
4744 extract_sfmt_jasc_r:
4745 {
4746 const IDESC *idesc = &crisv32f_insn_data[itype];
4747 CGEN_INSN_INT insn = base_insn;
4748#define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
4749 UINT f_operand2;
4750 UINT f_operand1;
4751
4752 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4753 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4754
4755 /* Record the fields for the semantic handler. */
4756 FLD (f_operand1) = f_operand1;
4757 FLD (f_operand2) = f_operand2;
4758 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jasc_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
4759
4760#if WITH_PROFILE_MODEL_P
4761 /* Record the fields for profiling. */
4762 if (PROFILE_MODEL_P (current_cpu))
4763 {
4764 FLD (in_Rs) = f_operand1;
4765 FLD (out_Pd) = f_operand2;
4766 }
4767#endif
4768#undef FLD
4769 return idesc;
4770 }
4771
4772 extract_sfmt_break:
4773 {
4774 const IDESC *idesc = &crisv32f_insn_data[itype];
4775 CGEN_INSN_INT insn = base_insn;
4776#define FLD(f) abuf->fields.sfmt_break.f
4777 UINT f_u4;
4778
4779 f_u4 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4780
4781 /* Record the fields for the semantic handler. */
4782 FLD (f_u4) = f_u4;
4783 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_break", "f_u4 0x%x", 'x', f_u4, (char *) 0));
4784
4785#if WITH_PROFILE_MODEL_P
4786 /* Record the fields for profiling. */
4787 if (PROFILE_MODEL_P (current_cpu))
4788 {
4789 }
4790#endif
4791#undef FLD
4792 return idesc;
4793 }
4794
4795 extract_sfmt_bound_cb:
4796 {
4797 const IDESC *idesc = &crisv32f_insn_data[itype];
4798 CGEN_INSN_INT insn = base_insn;
4799#define FLD(f) abuf->fields.sfmt_bound_cb.f
4800 INT f_indir_pc__byte;
4801 UINT f_operand2;
4802 /* Contents of trailing part of insn. */
4803 UINT word_1;
4804
4805 word_1 = GETIMEMUHI (current_cpu, pc + 2);
4806 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
4807 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4808
4809 /* Record the fields for the semantic handler. */
4810 FLD (f_operand2) = f_operand2;
4811 FLD (f_indir_pc__byte) = f_indir_pc__byte;
4812 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));
4813
4814#if WITH_PROFILE_MODEL_P
4815 /* Record the fields for profiling. */
4816 if (PROFILE_MODEL_P (current_cpu))
4817 {
4818 FLD (in_Rd) = f_operand2;
4819 FLD (out_Rd) = f_operand2;
4820 }
4821#endif
4822#undef FLD
4823 return idesc;
4824 }
4825
4826 extract_sfmt_bound_cw:
4827 {
4828 const IDESC *idesc = &crisv32f_insn_data[itype];
4829 CGEN_INSN_INT insn = base_insn;
4830#define FLD(f) abuf->fields.sfmt_bound_cw.f
4831 INT f_indir_pc__word;
4832 UINT f_operand2;
4833 /* Contents of trailing part of insn. */
4834 UINT word_1;
4835
4836 word_1 = GETIMEMUHI (current_cpu, pc + 2);
4837 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
4838 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4839
4840 /* Record the fields for the semantic handler. */
4841 FLD (f_operand2) = f_operand2;
4842 FLD (f_indir_pc__word) = f_indir_pc__word;
4843 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));
4844
4845#if WITH_PROFILE_MODEL_P
4846 /* Record the fields for profiling. */
4847 if (PROFILE_MODEL_P (current_cpu))
4848 {
4849 FLD (in_Rd) = f_operand2;
4850 FLD (out_Rd) = f_operand2;
4851 }
4852#endif
4853#undef FLD
4854 return idesc;
4855 }
4856
4857 extract_sfmt_bound_cd:
4858 {
4859 const IDESC *idesc = &crisv32f_insn_data[itype];
4860 CGEN_INSN_INT insn = base_insn;
4861#define FLD(f) abuf->fields.sfmt_bound_cd.f
4862 INT f_indir_pc__dword;
4863 UINT f_operand2;
4864 /* Contents of trailing part of insn. */
4865 UINT word_1;
4866
4867 word_1 = GETIMEMUSI (current_cpu, pc + 2);
4868 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
4869 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4870
4871 /* Record the fields for the semantic handler. */
4872 FLD (f_operand2) = f_operand2;
4873 FLD (f_indir_pc__dword) = f_indir_pc__dword;
4874 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));
4875
4876#if WITH_PROFILE_MODEL_P
4877 /* Record the fields for profiling. */
4878 if (PROFILE_MODEL_P (current_cpu))
4879 {
4880 FLD (in_Rd) = f_operand2;
4881 FLD (out_Rd) = f_operand2;
4882 }
4883#endif
4884#undef FLD
4885 return idesc;
4886 }
4887
4888 extract_sfmt_scc:
4889 {
4890 const IDESC *idesc = &crisv32f_insn_data[itype];
4891 CGEN_INSN_INT insn = base_insn;
4892#define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
4893 UINT f_operand2;
4894 UINT f_operand1;
4895
4896 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4897 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4898
4899 /* Record the fields for the semantic handler. */
4900 FLD (f_operand2) = f_operand2;
4901 FLD (f_operand1) = f_operand1;
4902 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));
4903
4904#if WITH_PROFILE_MODEL_P
4905 /* Record the fields for profiling. */
4906 if (PROFILE_MODEL_P (current_cpu))
4907 {
4908 FLD (out_Rs) = f_operand1;
4909 }
4910#endif
4911#undef FLD
4912 return idesc;
4913 }
4914
4915 extract_sfmt_addoq:
4916 {
4917 const IDESC *idesc = &crisv32f_insn_data[itype];
4918 CGEN_INSN_INT insn = base_insn;
4919#define FLD(f) abuf->fields.sfmt_addoq.f
4920 UINT f_operand2;
4921 INT f_s8;
4922
4923 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4924 f_s8 = EXTRACT_LSB0_INT (insn, 16, 7, 8);
4925
4926 /* Record the fields for the semantic handler. */
4927 FLD (f_operand2) = f_operand2;
4928 FLD (f_s8) = f_s8;
4929 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));
4930
4931#if WITH_PROFILE_MODEL_P
4932 /* Record the fields for profiling. */
4933 if (PROFILE_MODEL_P (current_cpu))
4934 {
4935 FLD (in_Rd) = f_operand2;
4936 }
4937#endif
4938#undef FLD
4939 return idesc;
4940 }
4941
4942 extract_sfmt_addo_m_b_m:
4943 {
4944 const IDESC *idesc = &crisv32f_insn_data[itype];
4945 CGEN_INSN_INT insn = base_insn;
4946#define FLD(f) abuf->fields.sfmt_addc_m.f
4947 UINT f_operand2;
4948 UINT f_memmode;
4949 UINT f_operand1;
4950
4951 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4952 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4953 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4954
4955 /* Record the fields for the semantic handler. */
4956 FLD (f_operand2) = f_operand2;
4957 FLD (f_operand1) = f_operand1;
4958 FLD (f_memmode) = f_memmode;
4959 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));
4960
4961#if WITH_PROFILE_MODEL_P
4962 /* Record the fields for profiling. */
4963 if (PROFILE_MODEL_P (current_cpu))
4964 {
4965 FLD (in_Rd) = f_operand2;
4966 FLD (in_Rs) = f_operand1;
4967 FLD (out_Rs) = f_operand1;
4968 }
4969#endif
4970#undef FLD
4971 return idesc;
4972 }
4973
4974 extract_sfmt_addo_m_w_m:
4975 {
4976 const IDESC *idesc = &crisv32f_insn_data[itype];
4977 CGEN_INSN_INT insn = base_insn;
4978#define FLD(f) abuf->fields.sfmt_addc_m.f
4979 UINT f_operand2;
4980 UINT f_memmode;
4981 UINT f_operand1;
4982
4983 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
4984 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
4985 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
4986
4987 /* Record the fields for the semantic handler. */
4988 FLD (f_operand2) = f_operand2;
4989 FLD (f_operand1) = f_operand1;
4990 FLD (f_memmode) = f_memmode;
4991 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));
4992
4993#if WITH_PROFILE_MODEL_P
4994 /* Record the fields for profiling. */
4995 if (PROFILE_MODEL_P (current_cpu))
4996 {
4997 FLD (in_Rd) = f_operand2;
4998 FLD (in_Rs) = f_operand1;
4999 FLD (out_Rs) = f_operand1;
5000 }
5001#endif
5002#undef FLD
5003 return idesc;
5004 }
5005
5006 extract_sfmt_addo_m_d_m:
5007 {
5008 const IDESC *idesc = &crisv32f_insn_data[itype];
5009 CGEN_INSN_INT insn = base_insn;
5010#define FLD(f) abuf->fields.sfmt_addc_m.f
5011 UINT f_operand2;
5012 UINT f_memmode;
5013 UINT f_operand1;
5014
5015 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5016 f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
5017 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5018
5019 /* Record the fields for the semantic handler. */
5020 FLD (f_operand2) = f_operand2;
5021 FLD (f_operand1) = f_operand1;
5022 FLD (f_memmode) = f_memmode;
5023 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));
5024
5025#if WITH_PROFILE_MODEL_P
5026 /* Record the fields for profiling. */
5027 if (PROFILE_MODEL_P (current_cpu))
5028 {
5029 FLD (in_Rd) = f_operand2;
5030 FLD (in_Rs) = f_operand1;
5031 FLD (out_Rs) = f_operand1;
5032 }
5033#endif
5034#undef FLD
5035 return idesc;
5036 }
5037
5038 extract_sfmt_addo_cb:
5039 {
5040 const IDESC *idesc = &crisv32f_insn_data[itype];
5041 CGEN_INSN_INT insn = base_insn;
5042#define FLD(f) abuf->fields.sfmt_bound_cb.f
5043 INT f_indir_pc__byte;
5044 UINT f_operand2;
5045 /* Contents of trailing part of insn. */
5046 UINT word_1;
5047
5048 word_1 = GETIMEMUHI (current_cpu, pc + 2);
5049 f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
5050 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5051
5052 /* Record the fields for the semantic handler. */
5053 FLD (f_operand2) = f_operand2;
5054 FLD (f_indir_pc__byte) = f_indir_pc__byte;
5055 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));
5056
5057#if WITH_PROFILE_MODEL_P
5058 /* Record the fields for profiling. */
5059 if (PROFILE_MODEL_P (current_cpu))
5060 {
5061 FLD (in_Rd) = f_operand2;
5062 }
5063#endif
5064#undef FLD
5065 return idesc;
5066 }
5067
5068 extract_sfmt_addo_cw:
5069 {
5070 const IDESC *idesc = &crisv32f_insn_data[itype];
5071 CGEN_INSN_INT insn = base_insn;
5072#define FLD(f) abuf->fields.sfmt_bound_cw.f
5073 INT f_indir_pc__word;
5074 UINT f_operand2;
5075 /* Contents of trailing part of insn. */
5076 UINT word_1;
5077
5078 word_1 = GETIMEMUHI (current_cpu, pc + 2);
5079 f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 16, 15, 16) << 0));
5080 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5081
5082 /* Record the fields for the semantic handler. */
5083 FLD (f_operand2) = f_operand2;
5084 FLD (f_indir_pc__word) = f_indir_pc__word;
5085 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));
5086
5087#if WITH_PROFILE_MODEL_P
5088 /* Record the fields for profiling. */
5089 if (PROFILE_MODEL_P (current_cpu))
5090 {
5091 FLD (in_Rd) = f_operand2;
5092 }
5093#endif
5094#undef FLD
5095 return idesc;
5096 }
5097
5098 extract_sfmt_addo_cd:
5099 {
5100 const IDESC *idesc = &crisv32f_insn_data[itype];
5101 CGEN_INSN_INT insn = base_insn;
5102#define FLD(f) abuf->fields.sfmt_bound_cd.f
5103 INT f_indir_pc__dword;
5104 UINT f_operand2;
5105 /* Contents of trailing part of insn. */
5106 UINT word_1;
5107
5108 word_1 = GETIMEMUSI (current_cpu, pc + 2);
5109 f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
5110 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5111
5112 /* Record the fields for the semantic handler. */
5113 FLD (f_operand2) = f_operand2;
5114 FLD (f_indir_pc__dword) = f_indir_pc__dword;
5115 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));
5116
5117#if WITH_PROFILE_MODEL_P
5118 /* Record the fields for profiling. */
5119 if (PROFILE_MODEL_P (current_cpu))
5120 {
5121 FLD (in_Rd) = f_operand2;
5122 }
5123#endif
5124#undef FLD
5125 return idesc;
5126 }
5127
5128 extract_sfmt_addi_acr_b_r:
5129 {
5130 const IDESC *idesc = &crisv32f_insn_data[itype];
5131 CGEN_INSN_INT insn = base_insn;
5132#define FLD(f) abuf->fields.sfmt_muls_b.f
5133 UINT f_operand2;
5134 UINT f_operand1;
5135
5136 f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
5137 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5138
5139 /* Record the fields for the semantic handler. */
5140 FLD (f_operand2) = f_operand2;
5141 FLD (f_operand1) = f_operand1;
5142 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));
5143
5144#if WITH_PROFILE_MODEL_P
5145 /* Record the fields for profiling. */
5146 if (PROFILE_MODEL_P (current_cpu))
5147 {
5148 FLD (in_Rd) = f_operand2;
5149 FLD (in_Rs) = f_operand1;
5150 }
5151#endif
5152#undef FLD
5153 return idesc;
5154 }
5155
5156 extract_sfmt_fidxi:
5157 {
5158 const IDESC *idesc = &crisv32f_insn_data[itype];
5159 CGEN_INSN_INT insn = base_insn;
5160#define FLD(f) abuf->fields.sfmt_mcp.f
5161 UINT f_operand1;
5162
5163 f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
5164
5165 /* Record the fields for the semantic handler. */
5166 FLD (f_operand1) = f_operand1;
5167 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fidxi", "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
5168
5169#if WITH_PROFILE_MODEL_P
5170 /* Record the fields for profiling. */
5171 if (PROFILE_MODEL_P (current_cpu))
5172 {
5173 FLD (in_Rs) = f_operand1;
5174 }
5175#endif
5176#undef FLD
5177 return idesc;
5178 }
5179
5180}
This page took 0.228538 seconds and 4 git commands to generate.