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