1 /* Simulator instruction decoder for crisv10f.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright (C) 1996-2024 Free Software Foundation, Inc.
7 This file is part of the GNU simulators.
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)
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.
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, write to the Free Software Foundation, Inc.,
21 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
25 #define WANT_CPU crisv10f
26 #define WANT_CPU_CRISV10F
29 #include "sim-assert.h"
33 /* The instruction descriptor array.
34 This is computed at runtime. Space for it is not malloc'd to save a
35 teensy bit of cpu in the decoder. Moving it to malloc space is trivial
36 but won't be done until necessary (we don't currently support the runtime
37 addition of instructions nor an SMP machine with different cpus). */
38 static IDESC crisv10f_insn_data
[CRISV10F_INSN__MAX
];
40 /* Commas between elements are contained in the macros.
41 Some of these are conditionally compiled out. */
43 static const struct insn_sem crisv10f_insn_sem
[] =
45 { VIRTUAL_INSN_X_INVALID
, CRISV10F_INSN_X_INVALID
, CRISV10F_SFMT_EMPTY
},
46 { VIRTUAL_INSN_X_AFTER
, CRISV10F_INSN_X_AFTER
, CRISV10F_SFMT_EMPTY
},
47 { VIRTUAL_INSN_X_BEFORE
, CRISV10F_INSN_X_BEFORE
, CRISV10F_SFMT_EMPTY
},
48 { VIRTUAL_INSN_X_CTI_CHAIN
, CRISV10F_INSN_X_CTI_CHAIN
, CRISV10F_SFMT_EMPTY
},
49 { VIRTUAL_INSN_X_CHAIN
, CRISV10F_INSN_X_CHAIN
, CRISV10F_SFMT_EMPTY
},
50 { VIRTUAL_INSN_X_BEGIN
, CRISV10F_INSN_X_BEGIN
, CRISV10F_SFMT_EMPTY
},
51 { CRIS_INSN_NOP
, CRISV10F_INSN_NOP
, CRISV10F_SFMT_NOP
},
52 { CRIS_INSN_MOVE_B_R
, CRISV10F_INSN_MOVE_B_R
, CRISV10F_SFMT_MOVE_B_R
},
53 { CRIS_INSN_MOVE_W_R
, CRISV10F_INSN_MOVE_W_R
, CRISV10F_SFMT_MOVE_B_R
},
54 { CRIS_INSN_MOVE_D_R
, CRISV10F_INSN_MOVE_D_R
, CRISV10F_SFMT_MOVE_D_R
},
55 { CRIS_INSN_MOVEPCR
, CRISV10F_INSN_MOVEPCR
, CRISV10F_SFMT_MOVEPCR
},
56 { CRIS_INSN_MOVEQ
, CRISV10F_INSN_MOVEQ
, CRISV10F_SFMT_MOVEQ
},
57 { CRIS_INSN_MOVS_B_R
, CRISV10F_INSN_MOVS_B_R
, CRISV10F_SFMT_MOVS_B_R
},
58 { CRIS_INSN_MOVS_W_R
, CRISV10F_INSN_MOVS_W_R
, CRISV10F_SFMT_MOVS_B_R
},
59 { CRIS_INSN_MOVU_B_R
, CRISV10F_INSN_MOVU_B_R
, CRISV10F_SFMT_MOVS_B_R
},
60 { CRIS_INSN_MOVU_W_R
, CRISV10F_INSN_MOVU_W_R
, CRISV10F_SFMT_MOVS_B_R
},
61 { CRIS_INSN_MOVECBR
, CRISV10F_INSN_MOVECBR
, CRISV10F_SFMT_MOVECBR
},
62 { CRIS_INSN_MOVECWR
, CRISV10F_INSN_MOVECWR
, CRISV10F_SFMT_MOVECWR
},
63 { CRIS_INSN_MOVECDR
, CRISV10F_INSN_MOVECDR
, CRISV10F_SFMT_MOVECDR
},
64 { CRIS_INSN_MOVSCBR
, CRISV10F_INSN_MOVSCBR
, CRISV10F_SFMT_MOVSCBR
},
65 { CRIS_INSN_MOVSCWR
, CRISV10F_INSN_MOVSCWR
, CRISV10F_SFMT_MOVSCWR
},
66 { CRIS_INSN_MOVUCBR
, CRISV10F_INSN_MOVUCBR
, CRISV10F_SFMT_MOVUCBR
},
67 { CRIS_INSN_MOVUCWR
, CRISV10F_INSN_MOVUCWR
, CRISV10F_SFMT_MOVUCWR
},
68 { CRIS_INSN_ADDQ
, CRISV10F_INSN_ADDQ
, CRISV10F_SFMT_ADDQ
},
69 { CRIS_INSN_SUBQ
, CRISV10F_INSN_SUBQ
, CRISV10F_SFMT_ADDQ
},
70 { CRIS_INSN_CMP_R_B_R
, CRISV10F_INSN_CMP_R_B_R
, CRISV10F_SFMT_CMP_R_B_R
},
71 { CRIS_INSN_CMP_R_W_R
, CRISV10F_INSN_CMP_R_W_R
, CRISV10F_SFMT_CMP_R_B_R
},
72 { CRIS_INSN_CMP_R_D_R
, CRISV10F_INSN_CMP_R_D_R
, CRISV10F_SFMT_CMP_R_B_R
},
73 { CRIS_INSN_CMP_M_B_M
, CRISV10F_INSN_CMP_M_B_M
, CRISV10F_SFMT_CMP_M_B_M
},
74 { CRIS_INSN_CMP_M_W_M
, CRISV10F_INSN_CMP_M_W_M
, CRISV10F_SFMT_CMP_M_W_M
},
75 { CRIS_INSN_CMP_M_D_M
, CRISV10F_INSN_CMP_M_D_M
, CRISV10F_SFMT_CMP_M_D_M
},
76 { CRIS_INSN_CMPCBR
, CRISV10F_INSN_CMPCBR
, CRISV10F_SFMT_CMPCBR
},
77 { CRIS_INSN_CMPCWR
, CRISV10F_INSN_CMPCWR
, CRISV10F_SFMT_CMPCWR
},
78 { CRIS_INSN_CMPCDR
, CRISV10F_INSN_CMPCDR
, CRISV10F_SFMT_CMPCDR
},
79 { CRIS_INSN_CMPQ
, CRISV10F_INSN_CMPQ
, CRISV10F_SFMT_CMPQ
},
80 { CRIS_INSN_CMPS_M_B_M
, CRISV10F_INSN_CMPS_M_B_M
, CRISV10F_SFMT_CMP_M_B_M
},
81 { CRIS_INSN_CMPS_M_W_M
, CRISV10F_INSN_CMPS_M_W_M
, CRISV10F_SFMT_CMP_M_W_M
},
82 { CRIS_INSN_CMPSCBR
, CRISV10F_INSN_CMPSCBR
, CRISV10F_SFMT_CMPCBR
},
83 { CRIS_INSN_CMPSCWR
, CRISV10F_INSN_CMPSCWR
, CRISV10F_SFMT_CMPCWR
},
84 { CRIS_INSN_CMPU_M_B_M
, CRISV10F_INSN_CMPU_M_B_M
, CRISV10F_SFMT_CMP_M_B_M
},
85 { CRIS_INSN_CMPU_M_W_M
, CRISV10F_INSN_CMPU_M_W_M
, CRISV10F_SFMT_CMP_M_W_M
},
86 { CRIS_INSN_CMPUCBR
, CRISV10F_INSN_CMPUCBR
, CRISV10F_SFMT_CMPUCBR
},
87 { CRIS_INSN_CMPUCWR
, CRISV10F_INSN_CMPUCWR
, CRISV10F_SFMT_CMPUCWR
},
88 { CRIS_INSN_MOVE_M_B_M
, CRISV10F_INSN_MOVE_M_B_M
, CRISV10F_SFMT_MOVE_M_B_M
},
89 { CRIS_INSN_MOVE_M_W_M
, CRISV10F_INSN_MOVE_M_W_M
, CRISV10F_SFMT_MOVE_M_W_M
},
90 { CRIS_INSN_MOVE_M_D_M
, CRISV10F_INSN_MOVE_M_D_M
, CRISV10F_SFMT_MOVE_M_D_M
},
91 { CRIS_INSN_MOVS_M_B_M
, CRISV10F_INSN_MOVS_M_B_M
, CRISV10F_SFMT_MOVS_M_B_M
},
92 { CRIS_INSN_MOVS_M_W_M
, CRISV10F_INSN_MOVS_M_W_M
, CRISV10F_SFMT_MOVS_M_W_M
},
93 { CRIS_INSN_MOVU_M_B_M
, CRISV10F_INSN_MOVU_M_B_M
, CRISV10F_SFMT_MOVS_M_B_M
},
94 { CRIS_INSN_MOVU_M_W_M
, CRISV10F_INSN_MOVU_M_W_M
, CRISV10F_SFMT_MOVS_M_W_M
},
95 { CRIS_INSN_MOVE_R_SPRV10
, CRISV10F_INSN_MOVE_R_SPRV10
, CRISV10F_SFMT_MOVE_R_SPRV10
},
96 { CRIS_INSN_MOVE_SPR_RV10
, CRISV10F_INSN_MOVE_SPR_RV10
, CRISV10F_SFMT_MOVE_SPR_RV10
},
97 { CRIS_INSN_RET_TYPE
, CRISV10F_INSN_RET_TYPE
, CRISV10F_SFMT_RET_TYPE
},
98 { CRIS_INSN_MOVE_M_SPRV10
, CRISV10F_INSN_MOVE_M_SPRV10
, CRISV10F_SFMT_MOVE_M_SPRV10
},
99 { CRIS_INSN_MOVE_C_SPRV10_P5
, CRISV10F_INSN_MOVE_C_SPRV10_P5
, CRISV10F_SFMT_MOVE_C_SPRV10_P5
},
100 { CRIS_INSN_MOVE_C_SPRV10_P9
, CRISV10F_INSN_MOVE_C_SPRV10_P9
, CRISV10F_SFMT_MOVE_C_SPRV10_P9
},
101 { CRIS_INSN_MOVE_C_SPRV10_P10
, CRISV10F_INSN_MOVE_C_SPRV10_P10
, CRISV10F_SFMT_MOVE_C_SPRV10_P9
},
102 { CRIS_INSN_MOVE_C_SPRV10_P11
, CRISV10F_INSN_MOVE_C_SPRV10_P11
, CRISV10F_SFMT_MOVE_C_SPRV10_P9
},
103 { CRIS_INSN_MOVE_C_SPRV10_P12
, CRISV10F_INSN_MOVE_C_SPRV10_P12
, CRISV10F_SFMT_MOVE_C_SPRV10_P9
},
104 { CRIS_INSN_MOVE_C_SPRV10_P13
, CRISV10F_INSN_MOVE_C_SPRV10_P13
, CRISV10F_SFMT_MOVE_C_SPRV10_P9
},
105 { CRIS_INSN_MOVE_C_SPRV10_P7
, CRISV10F_INSN_MOVE_C_SPRV10_P7
, CRISV10F_SFMT_MOVE_C_SPRV10_P9
},
106 { CRIS_INSN_MOVE_C_SPRV10_P14
, CRISV10F_INSN_MOVE_C_SPRV10_P14
, CRISV10F_SFMT_MOVE_C_SPRV10_P9
},
107 { CRIS_INSN_MOVE_C_SPRV10_P15
, CRISV10F_INSN_MOVE_C_SPRV10_P15
, CRISV10F_SFMT_MOVE_C_SPRV10_P9
},
108 { CRIS_INSN_MOVE_SPR_MV10
, CRISV10F_INSN_MOVE_SPR_MV10
, CRISV10F_SFMT_MOVE_SPR_MV10
},
109 { CRIS_INSN_SBFS
, CRISV10F_INSN_SBFS
, CRISV10F_SFMT_SBFS
},
110 { CRIS_INSN_MOVEM_R_M
, CRISV10F_INSN_MOVEM_R_M
, CRISV10F_SFMT_MOVEM_R_M
},
111 { CRIS_INSN_MOVEM_M_R
, CRISV10F_INSN_MOVEM_M_R
, CRISV10F_SFMT_MOVEM_M_R
},
112 { CRIS_INSN_MOVEM_M_PC
, CRISV10F_INSN_MOVEM_M_PC
, CRISV10F_SFMT_MOVEM_M_PC
},
113 { CRIS_INSN_ADD_B_R
, CRISV10F_INSN_ADD_B_R
, CRISV10F_SFMT_ADD_B_R
},
114 { CRIS_INSN_ADD_W_R
, CRISV10F_INSN_ADD_W_R
, CRISV10F_SFMT_ADD_B_R
},
115 { CRIS_INSN_ADD_D_R
, CRISV10F_INSN_ADD_D_R
, CRISV10F_SFMT_ADD_D_R
},
116 { CRIS_INSN_ADD_M_B_M
, CRISV10F_INSN_ADD_M_B_M
, CRISV10F_SFMT_ADD_M_B_M
},
117 { CRIS_INSN_ADD_M_W_M
, CRISV10F_INSN_ADD_M_W_M
, CRISV10F_SFMT_ADD_M_W_M
},
118 { CRIS_INSN_ADD_M_D_M
, CRISV10F_INSN_ADD_M_D_M
, CRISV10F_SFMT_ADD_M_D_M
},
119 { CRIS_INSN_ADDCBR
, CRISV10F_INSN_ADDCBR
, CRISV10F_SFMT_ADDCBR
},
120 { CRIS_INSN_ADDCWR
, CRISV10F_INSN_ADDCWR
, CRISV10F_SFMT_ADDCWR
},
121 { CRIS_INSN_ADDCDR
, CRISV10F_INSN_ADDCDR
, CRISV10F_SFMT_ADDCDR
},
122 { CRIS_INSN_ADDCPC
, CRISV10F_INSN_ADDCPC
, CRISV10F_SFMT_ADDCPC
},
123 { CRIS_INSN_ADDS_B_R
, CRISV10F_INSN_ADDS_B_R
, CRISV10F_SFMT_ADD_D_R
},
124 { CRIS_INSN_ADDS_W_R
, CRISV10F_INSN_ADDS_W_R
, CRISV10F_SFMT_ADD_D_R
},
125 { CRIS_INSN_ADDS_M_B_M
, CRISV10F_INSN_ADDS_M_B_M
, CRISV10F_SFMT_ADDS_M_B_M
},
126 { CRIS_INSN_ADDS_M_W_M
, CRISV10F_INSN_ADDS_M_W_M
, CRISV10F_SFMT_ADDS_M_W_M
},
127 { CRIS_INSN_ADDSCBR
, CRISV10F_INSN_ADDSCBR
, CRISV10F_SFMT_ADDSCBR
},
128 { CRIS_INSN_ADDSCWR
, CRISV10F_INSN_ADDSCWR
, CRISV10F_SFMT_ADDSCWR
},
129 { CRIS_INSN_ADDSPCPC
, CRISV10F_INSN_ADDSPCPC
, CRISV10F_SFMT_ADDSPCPC
},
130 { CRIS_INSN_ADDU_B_R
, CRISV10F_INSN_ADDU_B_R
, CRISV10F_SFMT_ADD_D_R
},
131 { CRIS_INSN_ADDU_W_R
, CRISV10F_INSN_ADDU_W_R
, CRISV10F_SFMT_ADD_D_R
},
132 { CRIS_INSN_ADDU_M_B_M
, CRISV10F_INSN_ADDU_M_B_M
, CRISV10F_SFMT_ADDS_M_B_M
},
133 { CRIS_INSN_ADDU_M_W_M
, CRISV10F_INSN_ADDU_M_W_M
, CRISV10F_SFMT_ADDS_M_W_M
},
134 { CRIS_INSN_ADDUCBR
, CRISV10F_INSN_ADDUCBR
, CRISV10F_SFMT_ADDSCBR
},
135 { CRIS_INSN_ADDUCWR
, CRISV10F_INSN_ADDUCWR
, CRISV10F_SFMT_ADDSCWR
},
136 { CRIS_INSN_SUB_B_R
, CRISV10F_INSN_SUB_B_R
, CRISV10F_SFMT_ADD_B_R
},
137 { CRIS_INSN_SUB_W_R
, CRISV10F_INSN_SUB_W_R
, CRISV10F_SFMT_ADD_B_R
},
138 { CRIS_INSN_SUB_D_R
, CRISV10F_INSN_SUB_D_R
, CRISV10F_SFMT_ADD_D_R
},
139 { CRIS_INSN_SUB_M_B_M
, CRISV10F_INSN_SUB_M_B_M
, CRISV10F_SFMT_ADD_M_B_M
},
140 { CRIS_INSN_SUB_M_W_M
, CRISV10F_INSN_SUB_M_W_M
, CRISV10F_SFMT_ADD_M_W_M
},
141 { CRIS_INSN_SUB_M_D_M
, CRISV10F_INSN_SUB_M_D_M
, CRISV10F_SFMT_ADD_M_D_M
},
142 { CRIS_INSN_SUBCBR
, CRISV10F_INSN_SUBCBR
, CRISV10F_SFMT_ADDCBR
},
143 { CRIS_INSN_SUBCWR
, CRISV10F_INSN_SUBCWR
, CRISV10F_SFMT_ADDCWR
},
144 { CRIS_INSN_SUBCDR
, CRISV10F_INSN_SUBCDR
, CRISV10F_SFMT_ADDCDR
},
145 { CRIS_INSN_SUBS_B_R
, CRISV10F_INSN_SUBS_B_R
, CRISV10F_SFMT_ADD_D_R
},
146 { CRIS_INSN_SUBS_W_R
, CRISV10F_INSN_SUBS_W_R
, CRISV10F_SFMT_ADD_D_R
},
147 { CRIS_INSN_SUBS_M_B_M
, CRISV10F_INSN_SUBS_M_B_M
, CRISV10F_SFMT_ADDS_M_B_M
},
148 { CRIS_INSN_SUBS_M_W_M
, CRISV10F_INSN_SUBS_M_W_M
, CRISV10F_SFMT_ADDS_M_W_M
},
149 { CRIS_INSN_SUBSCBR
, CRISV10F_INSN_SUBSCBR
, CRISV10F_SFMT_ADDSCBR
},
150 { CRIS_INSN_SUBSCWR
, CRISV10F_INSN_SUBSCWR
, CRISV10F_SFMT_ADDSCWR
},
151 { CRIS_INSN_SUBU_B_R
, CRISV10F_INSN_SUBU_B_R
, CRISV10F_SFMT_ADD_D_R
},
152 { CRIS_INSN_SUBU_W_R
, CRISV10F_INSN_SUBU_W_R
, CRISV10F_SFMT_ADD_D_R
},
153 { CRIS_INSN_SUBU_M_B_M
, CRISV10F_INSN_SUBU_M_B_M
, CRISV10F_SFMT_ADDS_M_B_M
},
154 { CRIS_INSN_SUBU_M_W_M
, CRISV10F_INSN_SUBU_M_W_M
, CRISV10F_SFMT_ADDS_M_W_M
},
155 { CRIS_INSN_SUBUCBR
, CRISV10F_INSN_SUBUCBR
, CRISV10F_SFMT_ADDSCBR
},
156 { CRIS_INSN_SUBUCWR
, CRISV10F_INSN_SUBUCWR
, CRISV10F_SFMT_ADDSCWR
},
157 { CRIS_INSN_ADDI_B_R
, CRISV10F_INSN_ADDI_B_R
, CRISV10F_SFMT_ADDI_B_R
},
158 { CRIS_INSN_ADDI_W_R
, CRISV10F_INSN_ADDI_W_R
, CRISV10F_SFMT_ADDI_B_R
},
159 { CRIS_INSN_ADDI_D_R
, CRISV10F_INSN_ADDI_D_R
, CRISV10F_SFMT_ADDI_B_R
},
160 { CRIS_INSN_NEG_B_R
, CRISV10F_INSN_NEG_B_R
, CRISV10F_SFMT_NEG_B_R
},
161 { CRIS_INSN_NEG_W_R
, CRISV10F_INSN_NEG_W_R
, CRISV10F_SFMT_NEG_B_R
},
162 { CRIS_INSN_NEG_D_R
, CRISV10F_INSN_NEG_D_R
, CRISV10F_SFMT_NEG_D_R
},
163 { CRIS_INSN_TEST_M_B_M
, CRISV10F_INSN_TEST_M_B_M
, CRISV10F_SFMT_TEST_M_B_M
},
164 { CRIS_INSN_TEST_M_W_M
, CRISV10F_INSN_TEST_M_W_M
, CRISV10F_SFMT_TEST_M_W_M
},
165 { CRIS_INSN_TEST_M_D_M
, CRISV10F_INSN_TEST_M_D_M
, CRISV10F_SFMT_TEST_M_D_M
},
166 { CRIS_INSN_MOVE_R_M_B_M
, CRISV10F_INSN_MOVE_R_M_B_M
, CRISV10F_SFMT_MOVE_R_M_B_M
},
167 { CRIS_INSN_MOVE_R_M_W_M
, CRISV10F_INSN_MOVE_R_M_W_M
, CRISV10F_SFMT_MOVE_R_M_W_M
},
168 { CRIS_INSN_MOVE_R_M_D_M
, CRISV10F_INSN_MOVE_R_M_D_M
, CRISV10F_SFMT_MOVE_R_M_D_M
},
169 { CRIS_INSN_MULS_B
, CRISV10F_INSN_MULS_B
, CRISV10F_SFMT_MULS_B
},
170 { CRIS_INSN_MULS_W
, CRISV10F_INSN_MULS_W
, CRISV10F_SFMT_MULS_B
},
171 { CRIS_INSN_MULS_D
, CRISV10F_INSN_MULS_D
, CRISV10F_SFMT_MULS_B
},
172 { CRIS_INSN_MULU_B
, CRISV10F_INSN_MULU_B
, CRISV10F_SFMT_MULS_B
},
173 { CRIS_INSN_MULU_W
, CRISV10F_INSN_MULU_W
, CRISV10F_SFMT_MULS_B
},
174 { CRIS_INSN_MULU_D
, CRISV10F_INSN_MULU_D
, CRISV10F_SFMT_MULS_B
},
175 { CRIS_INSN_MSTEP
, CRISV10F_INSN_MSTEP
, CRISV10F_SFMT_MSTEP
},
176 { CRIS_INSN_DSTEP
, CRISV10F_INSN_DSTEP
, CRISV10F_SFMT_DSTEP
},
177 { CRIS_INSN_ABS
, CRISV10F_INSN_ABS
, CRISV10F_SFMT_MOVS_B_R
},
178 { CRIS_INSN_AND_B_R
, CRISV10F_INSN_AND_B_R
, CRISV10F_SFMT_AND_B_R
},
179 { CRIS_INSN_AND_W_R
, CRISV10F_INSN_AND_W_R
, CRISV10F_SFMT_AND_B_R
},
180 { CRIS_INSN_AND_D_R
, CRISV10F_INSN_AND_D_R
, CRISV10F_SFMT_AND_D_R
},
181 { CRIS_INSN_AND_M_B_M
, CRISV10F_INSN_AND_M_B_M
, CRISV10F_SFMT_AND_M_B_M
},
182 { CRIS_INSN_AND_M_W_M
, CRISV10F_INSN_AND_M_W_M
, CRISV10F_SFMT_AND_M_W_M
},
183 { CRIS_INSN_AND_M_D_M
, CRISV10F_INSN_AND_M_D_M
, CRISV10F_SFMT_AND_M_D_M
},
184 { CRIS_INSN_ANDCBR
, CRISV10F_INSN_ANDCBR
, CRISV10F_SFMT_ANDCBR
},
185 { CRIS_INSN_ANDCWR
, CRISV10F_INSN_ANDCWR
, CRISV10F_SFMT_ANDCWR
},
186 { CRIS_INSN_ANDCDR
, CRISV10F_INSN_ANDCDR
, CRISV10F_SFMT_ANDCDR
},
187 { CRIS_INSN_ANDQ
, CRISV10F_INSN_ANDQ
, CRISV10F_SFMT_ANDQ
},
188 { CRIS_INSN_ORR_B_R
, CRISV10F_INSN_ORR_B_R
, CRISV10F_SFMT_AND_B_R
},
189 { CRIS_INSN_ORR_W_R
, CRISV10F_INSN_ORR_W_R
, CRISV10F_SFMT_AND_B_R
},
190 { CRIS_INSN_ORR_D_R
, CRISV10F_INSN_ORR_D_R
, CRISV10F_SFMT_AND_D_R
},
191 { CRIS_INSN_OR_M_B_M
, CRISV10F_INSN_OR_M_B_M
, CRISV10F_SFMT_AND_M_B_M
},
192 { CRIS_INSN_OR_M_W_M
, CRISV10F_INSN_OR_M_W_M
, CRISV10F_SFMT_AND_M_W_M
},
193 { CRIS_INSN_OR_M_D_M
, CRISV10F_INSN_OR_M_D_M
, CRISV10F_SFMT_AND_M_D_M
},
194 { CRIS_INSN_ORCBR
, CRISV10F_INSN_ORCBR
, CRISV10F_SFMT_ANDCBR
},
195 { CRIS_INSN_ORCWR
, CRISV10F_INSN_ORCWR
, CRISV10F_SFMT_ANDCWR
},
196 { CRIS_INSN_ORCDR
, CRISV10F_INSN_ORCDR
, CRISV10F_SFMT_ANDCDR
},
197 { CRIS_INSN_ORQ
, CRISV10F_INSN_ORQ
, CRISV10F_SFMT_ANDQ
},
198 { CRIS_INSN_XOR
, CRISV10F_INSN_XOR
, CRISV10F_SFMT_DSTEP
},
199 { CRIS_INSN_SWAP
, CRISV10F_INSN_SWAP
, CRISV10F_SFMT_SWAP
},
200 { CRIS_INSN_ASRR_B_R
, CRISV10F_INSN_ASRR_B_R
, CRISV10F_SFMT_AND_B_R
},
201 { CRIS_INSN_ASRR_W_R
, CRISV10F_INSN_ASRR_W_R
, CRISV10F_SFMT_AND_B_R
},
202 { CRIS_INSN_ASRR_D_R
, CRISV10F_INSN_ASRR_D_R
, CRISV10F_SFMT_AND_D_R
},
203 { CRIS_INSN_ASRQ
, CRISV10F_INSN_ASRQ
, CRISV10F_SFMT_ASRQ
},
204 { CRIS_INSN_LSRR_B_R
, CRISV10F_INSN_LSRR_B_R
, CRISV10F_SFMT_LSRR_B_R
},
205 { CRIS_INSN_LSRR_W_R
, CRISV10F_INSN_LSRR_W_R
, CRISV10F_SFMT_LSRR_B_R
},
206 { CRIS_INSN_LSRR_D_R
, CRISV10F_INSN_LSRR_D_R
, CRISV10F_SFMT_LSRR_D_R
},
207 { CRIS_INSN_LSRQ
, CRISV10F_INSN_LSRQ
, CRISV10F_SFMT_ASRQ
},
208 { CRIS_INSN_LSLR_B_R
, CRISV10F_INSN_LSLR_B_R
, CRISV10F_SFMT_LSRR_B_R
},
209 { CRIS_INSN_LSLR_W_R
, CRISV10F_INSN_LSLR_W_R
, CRISV10F_SFMT_LSRR_B_R
},
210 { CRIS_INSN_LSLR_D_R
, CRISV10F_INSN_LSLR_D_R
, CRISV10F_SFMT_LSRR_D_R
},
211 { CRIS_INSN_LSLQ
, CRISV10F_INSN_LSLQ
, CRISV10F_SFMT_ASRQ
},
212 { CRIS_INSN_BTST
, CRISV10F_INSN_BTST
, CRISV10F_SFMT_BTST
},
213 { CRIS_INSN_BTSTQ
, CRISV10F_INSN_BTSTQ
, CRISV10F_SFMT_BTSTQ
},
214 { CRIS_INSN_SETF
, CRISV10F_INSN_SETF
, CRISV10F_SFMT_SETF
},
215 { CRIS_INSN_CLEARF
, CRISV10F_INSN_CLEARF
, CRISV10F_SFMT_SETF
},
216 { CRIS_INSN_BCC_B
, CRISV10F_INSN_BCC_B
, CRISV10F_SFMT_BCC_B
},
217 { CRIS_INSN_BA_B
, CRISV10F_INSN_BA_B
, CRISV10F_SFMT_BA_B
},
218 { CRIS_INSN_BCC_W
, CRISV10F_INSN_BCC_W
, CRISV10F_SFMT_BCC_W
},
219 { CRIS_INSN_BA_W
, CRISV10F_INSN_BA_W
, CRISV10F_SFMT_BA_W
},
220 { CRIS_INSN_JUMP_R
, CRISV10F_INSN_JUMP_R
, CRISV10F_SFMT_JUMP_R
},
221 { CRIS_INSN_JUMP_M
, CRISV10F_INSN_JUMP_M
, CRISV10F_SFMT_JUMP_M
},
222 { CRIS_INSN_JUMP_C
, CRISV10F_INSN_JUMP_C
, CRISV10F_SFMT_JUMP_C
},
223 { CRIS_INSN_BREAK
, CRISV10F_INSN_BREAK
, CRISV10F_SFMT_BREAK
},
224 { CRIS_INSN_BOUND_R_B_R
, CRISV10F_INSN_BOUND_R_B_R
, CRISV10F_SFMT_DSTEP
},
225 { CRIS_INSN_BOUND_R_W_R
, CRISV10F_INSN_BOUND_R_W_R
, CRISV10F_SFMT_DSTEP
},
226 { CRIS_INSN_BOUND_R_D_R
, CRISV10F_INSN_BOUND_R_D_R
, CRISV10F_SFMT_DSTEP
},
227 { CRIS_INSN_BOUND_M_B_M
, CRISV10F_INSN_BOUND_M_B_M
, CRISV10F_SFMT_BOUND_M_B_M
},
228 { CRIS_INSN_BOUND_M_W_M
, CRISV10F_INSN_BOUND_M_W_M
, CRISV10F_SFMT_BOUND_M_W_M
},
229 { CRIS_INSN_BOUND_M_D_M
, CRISV10F_INSN_BOUND_M_D_M
, CRISV10F_SFMT_BOUND_M_D_M
},
230 { CRIS_INSN_BOUND_CB
, CRISV10F_INSN_BOUND_CB
, CRISV10F_SFMT_BOUND_CB
},
231 { CRIS_INSN_BOUND_CW
, CRISV10F_INSN_BOUND_CW
, CRISV10F_SFMT_BOUND_CW
},
232 { CRIS_INSN_BOUND_CD
, CRISV10F_INSN_BOUND_CD
, CRISV10F_SFMT_BOUND_CD
},
233 { CRIS_INSN_SCC
, CRISV10F_INSN_SCC
, CRISV10F_SFMT_SCC
},
234 { CRIS_INSN_LZ
, CRISV10F_INSN_LZ
, CRISV10F_SFMT_MOVS_B_R
},
235 { CRIS_INSN_ADDOQ
, CRISV10F_INSN_ADDOQ
, CRISV10F_SFMT_ADDOQ
},
236 { CRIS_INSN_BDAPQPC
, CRISV10F_INSN_BDAPQPC
, CRISV10F_SFMT_BDAPQPC
},
237 { CRIS_INSN_BDAP_32_PC
, CRISV10F_INSN_BDAP_32_PC
, CRISV10F_SFMT_BDAP_32_PC
},
238 { CRIS_INSN_MOVE_M_PCPLUS_P0
, CRISV10F_INSN_MOVE_M_PCPLUS_P0
, CRISV10F_SFMT_MOVE_M_PCPLUS_P0
},
239 { CRIS_INSN_MOVE_M_SPPLUS_P8
, CRISV10F_INSN_MOVE_M_SPPLUS_P8
, CRISV10F_SFMT_MOVE_M_SPPLUS_P8
},
240 { CRIS_INSN_ADDO_M_B_M
, CRISV10F_INSN_ADDO_M_B_M
, CRISV10F_SFMT_ADDO_M_B_M
},
241 { CRIS_INSN_ADDO_M_W_M
, CRISV10F_INSN_ADDO_M_W_M
, CRISV10F_SFMT_ADDO_M_W_M
},
242 { CRIS_INSN_ADDO_M_D_M
, CRISV10F_INSN_ADDO_M_D_M
, CRISV10F_SFMT_ADDO_M_D_M
},
243 { CRIS_INSN_ADDO_CB
, CRISV10F_INSN_ADDO_CB
, CRISV10F_SFMT_ADDO_CB
},
244 { CRIS_INSN_ADDO_CW
, CRISV10F_INSN_ADDO_CW
, CRISV10F_SFMT_ADDO_CW
},
245 { CRIS_INSN_ADDO_CD
, CRISV10F_INSN_ADDO_CD
, CRISV10F_SFMT_ADDO_CD
},
246 { CRIS_INSN_DIP_M
, CRISV10F_INSN_DIP_M
, CRISV10F_SFMT_DIP_M
},
247 { CRIS_INSN_DIP_C
, CRISV10F_INSN_DIP_C
, CRISV10F_SFMT_DIP_C
},
248 { CRIS_INSN_ADDI_ACR_B_R
, CRISV10F_INSN_ADDI_ACR_B_R
, CRISV10F_SFMT_ADDI_ACR_B_R
},
249 { CRIS_INSN_ADDI_ACR_W_R
, CRISV10F_INSN_ADDI_ACR_W_R
, CRISV10F_SFMT_ADDI_ACR_B_R
},
250 { CRIS_INSN_ADDI_ACR_D_R
, CRISV10F_INSN_ADDI_ACR_D_R
, CRISV10F_SFMT_ADDI_ACR_B_R
},
251 { CRIS_INSN_BIAP_PC_B_R
, CRISV10F_INSN_BIAP_PC_B_R
, CRISV10F_SFMT_BIAP_PC_B_R
},
252 { CRIS_INSN_BIAP_PC_W_R
, CRISV10F_INSN_BIAP_PC_W_R
, CRISV10F_SFMT_BIAP_PC_B_R
},
253 { CRIS_INSN_BIAP_PC_D_R
, CRISV10F_INSN_BIAP_PC_D_R
, CRISV10F_SFMT_BIAP_PC_B_R
},
256 static const struct insn_sem crisv10f_insn_sem_invalid
=
258 VIRTUAL_INSN_X_INVALID
, CRISV10F_INSN_X_INVALID
, CRISV10F_SFMT_EMPTY
261 /* Initialize an IDESC from the compile-time computable parts. */
264 init_idesc (SIM_CPU
*cpu
, IDESC
*id
, const struct insn_sem
*t
)
266 const CGEN_INSN
*insn_table
= CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu
))->init_entries
;
270 if ((int) t
->type
<= 0)
271 id
->idata
= & cgen_virtual_insn_table
[- (int) t
->type
];
273 id
->idata
= & insn_table
[t
->type
];
274 id
->attrs
= CGEN_INSN_ATTRS (id
->idata
);
275 /* Oh my god, a magic number. */
276 id
->length
= CGEN_INSN_BITSIZE (id
->idata
) / 8;
278 #if WITH_PROFILE_MODEL_P
279 id
->timing
= & MODEL_TIMING (CPU_MODEL (cpu
)) [t
->index
];
281 SIM_DESC sd
= CPU_STATE (cpu
);
282 SIM_ASSERT (t
->index
== id
->timing
->num
);
286 /* Semantic pointers are initialized elsewhere. */
289 /* Initialize the instruction descriptor table. */
292 crisv10f_init_idesc_table (SIM_CPU
*cpu
)
295 const struct insn_sem
*t
,*tend
;
296 int tabsize
= CRISV10F_INSN__MAX
;
297 IDESC
*table
= crisv10f_insn_data
;
299 memset (table
, 0, tabsize
* sizeof (IDESC
));
301 /* First set all entries to the `invalid insn'. */
302 t
= & crisv10f_insn_sem_invalid
;
303 for (id
= table
, tabend
= table
+ tabsize
; id
< tabend
; ++id
)
304 init_idesc (cpu
, id
, t
);
306 /* Now fill in the values for the chosen cpu. */
307 for (t
= crisv10f_insn_sem
, tend
= t
+ ARRAY_SIZE (crisv10f_insn_sem
);
310 init_idesc (cpu
, & table
[t
->index
], t
);
313 /* Link the IDESC table into the cpu. */
314 CPU_IDESC (cpu
) = table
;
317 /* Given an instruction, return a pointer to its IDESC entry. */
320 crisv10f_decode (SIM_CPU
*current_cpu
, IADDR pc
,
321 CGEN_INSN_WORD base_insn
,
324 /* Result of decoder. */
325 CRISV10F_INSN_TYPE itype
;
328 CGEN_INSN_WORD insn
= base_insn
;
331 unsigned int val0
= (((insn
>> 4) & (255 << 0)));
351 unsigned int val1
= (((insn
>> 12) & (15 << 0)));
368 case 15: itype
= CRISV10F_INSN_BCC_B
; goto extract_sfmt_bcc_b
;
369 case 14: itype
= CRISV10F_INSN_BA_B
; goto extract_sfmt_ba_b
;
370 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
390 unsigned int val1
= (((insn
>> 12) & (15 << 0)));
407 case 14: itype
= CRISV10F_INSN_ADDOQ
; goto extract_sfmt_addoq
;
408 case 15: itype
= CRISV10F_INSN_BDAPQPC
; goto extract_sfmt_bdapqpc
;
409 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
415 case 35: itype
= CRISV10F_INSN_ADDQ
; goto extract_sfmt_addq
;
419 case 39: itype
= CRISV10F_INSN_MOVEQ
; goto extract_sfmt_moveq
;
423 case 43: itype
= CRISV10F_INSN_SUBQ
; goto extract_sfmt_addq
;
427 case 47: itype
= CRISV10F_INSN_CMPQ
; goto extract_sfmt_cmpq
;
431 case 51: itype
= CRISV10F_INSN_ANDQ
; goto extract_sfmt_andq
;
435 case 55: itype
= CRISV10F_INSN_ORQ
; goto extract_sfmt_andq
;
437 case 57: itype
= CRISV10F_INSN_BTSTQ
; goto extract_sfmt_btstq
;
439 case 59: itype
= CRISV10F_INSN_ASRQ
; goto extract_sfmt_asrq
;
441 case 61: itype
= CRISV10F_INSN_LSLQ
; goto extract_sfmt_asrq
;
443 case 63: itype
= CRISV10F_INSN_LSRQ
; goto extract_sfmt_asrq
;
444 case 64: itype
= CRISV10F_INSN_ADDU_B_R
; goto extract_sfmt_add_d_r
;
445 case 65: itype
= CRISV10F_INSN_ADDU_W_R
; goto extract_sfmt_add_d_r
;
446 case 66: itype
= CRISV10F_INSN_ADDS_B_R
; goto extract_sfmt_add_d_r
;
447 case 67: itype
= CRISV10F_INSN_ADDS_W_R
; goto extract_sfmt_add_d_r
;
448 case 68: itype
= CRISV10F_INSN_MOVU_B_R
; goto extract_sfmt_movs_b_r
;
449 case 69: itype
= CRISV10F_INSN_MOVU_W_R
; goto extract_sfmt_movs_b_r
;
450 case 70: itype
= CRISV10F_INSN_MOVS_B_R
; goto extract_sfmt_movs_b_r
;
451 case 71: itype
= CRISV10F_INSN_MOVS_W_R
; goto extract_sfmt_movs_b_r
;
452 case 72: itype
= CRISV10F_INSN_SUBU_B_R
; goto extract_sfmt_add_d_r
;
453 case 73: itype
= CRISV10F_INSN_SUBU_W_R
; goto extract_sfmt_add_d_r
;
454 case 74: itype
= CRISV10F_INSN_SUBS_B_R
; goto extract_sfmt_add_d_r
;
455 case 75: itype
= CRISV10F_INSN_SUBS_W_R
; goto extract_sfmt_add_d_r
;
456 case 76: itype
= CRISV10F_INSN_LSLR_B_R
; goto extract_sfmt_lsrr_b_r
;
457 case 77: itype
= CRISV10F_INSN_LSLR_W_R
; goto extract_sfmt_lsrr_b_r
;
458 case 78: itype
= CRISV10F_INSN_LSLR_D_R
; goto extract_sfmt_lsrr_d_r
;
459 case 79: itype
= CRISV10F_INSN_BTST
; goto extract_sfmt_btst
;
462 unsigned int val1
= (((insn
>> 8) & (7 << 4)) | ((insn
>> 0) & (15 << 0)));
591 case 127: itype
= CRISV10F_INSN_ADDI_B_R
; goto extract_sfmt_addi_b_r
;
594 unsigned int val2
= (((insn
>> 15) & (1 << 0)));
597 case 0: itype
= CRISV10F_INSN_NOP
; goto extract_sfmt_nop
;
598 case 1: itype
= CRISV10F_INSN_ADDI_B_R
; goto extract_sfmt_addi_b_r
;
599 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
602 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
605 case 81: itype
= CRISV10F_INSN_ADDI_W_R
; goto extract_sfmt_addi_b_r
;
606 case 82: itype
= CRISV10F_INSN_ADDI_D_R
; goto extract_sfmt_addi_b_r
;
607 case 83: itype
= CRISV10F_INSN_SCC
; goto extract_sfmt_scc
;
610 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
627 case 14: itype
= CRISV10F_INSN_ADDI_ACR_B_R
; goto extract_sfmt_addi_acr_b_r
;
628 case 15: itype
= CRISV10F_INSN_BIAP_PC_B_R
; goto extract_sfmt_biap_pc_b_r
;
629 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
634 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
651 case 14: itype
= CRISV10F_INSN_ADDI_ACR_W_R
; goto extract_sfmt_addi_acr_b_r
;
652 case 15: itype
= CRISV10F_INSN_BIAP_PC_W_R
; goto extract_sfmt_biap_pc_b_r
;
653 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
658 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
675 case 14: itype
= CRISV10F_INSN_ADDI_ACR_D_R
; goto extract_sfmt_addi_acr_b_r
;
676 case 15: itype
= CRISV10F_INSN_BIAP_PC_D_R
; goto extract_sfmt_biap_pc_b_r
;
677 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
680 case 88: itype
= CRISV10F_INSN_NEG_B_R
; goto extract_sfmt_neg_b_r
;
681 case 89: itype
= CRISV10F_INSN_NEG_W_R
; goto extract_sfmt_neg_b_r
;
682 case 90: itype
= CRISV10F_INSN_NEG_D_R
; goto extract_sfmt_neg_d_r
;
683 case 91: itype
= CRISV10F_INSN_SETF
; goto extract_sfmt_setf
;
684 case 92: itype
= CRISV10F_INSN_BOUND_R_B_R
; goto extract_sfmt_dstep
;
685 case 93: itype
= CRISV10F_INSN_BOUND_R_W_R
; goto extract_sfmt_dstep
;
686 case 94: itype
= CRISV10F_INSN_BOUND_R_D_R
; goto extract_sfmt_dstep
;
687 case 95: itype
= CRISV10F_INSN_CLEARF
; goto extract_sfmt_setf
;
688 case 96: itype
= CRISV10F_INSN_ADD_B_R
; goto extract_sfmt_add_b_r
;
689 case 97: itype
= CRISV10F_INSN_ADD_W_R
; goto extract_sfmt_add_b_r
;
690 case 98: itype
= CRISV10F_INSN_ADD_D_R
; goto extract_sfmt_add_d_r
;
691 case 99: itype
= CRISV10F_INSN_MOVE_R_SPRV10
; goto extract_sfmt_move_r_sprv10
;
692 case 100: itype
= CRISV10F_INSN_MOVE_B_R
; goto extract_sfmt_move_b_r
;
693 case 101: itype
= CRISV10F_INSN_MOVE_W_R
; goto extract_sfmt_move_b_r
;
696 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
713 case 14: itype
= CRISV10F_INSN_MOVE_D_R
; goto extract_sfmt_move_d_r
;
714 case 15: itype
= CRISV10F_INSN_MOVEPCR
; goto extract_sfmt_movepcr
;
715 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
720 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
737 case 14: itype
= CRISV10F_INSN_MOVE_SPR_RV10
; goto extract_sfmt_move_spr_rv10
;
738 case 15: itype
= CRISV10F_INSN_RET_TYPE
; goto extract_sfmt_ret_type
;
739 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
742 case 104: itype
= CRISV10F_INSN_SUB_B_R
; goto extract_sfmt_add_b_r
;
743 case 105: itype
= CRISV10F_INSN_SUB_W_R
; goto extract_sfmt_add_b_r
;
744 case 106: itype
= CRISV10F_INSN_SUB_D_R
; goto extract_sfmt_add_d_r
;
745 case 107: itype
= CRISV10F_INSN_ABS
; goto extract_sfmt_movs_b_r
;
746 case 108: itype
= CRISV10F_INSN_CMP_R_B_R
; goto extract_sfmt_cmp_r_b_r
;
747 case 109: itype
= CRISV10F_INSN_CMP_R_W_R
; goto extract_sfmt_cmp_r_b_r
;
748 case 110: itype
= CRISV10F_INSN_CMP_R_D_R
; goto extract_sfmt_cmp_r_b_r
;
749 case 111: itype
= CRISV10F_INSN_DSTEP
; goto extract_sfmt_dstep
;
750 case 112: itype
= CRISV10F_INSN_AND_B_R
; goto extract_sfmt_and_b_r
;
751 case 113: itype
= CRISV10F_INSN_AND_W_R
; goto extract_sfmt_and_b_r
;
752 case 114: itype
= CRISV10F_INSN_AND_D_R
; goto extract_sfmt_and_d_r
;
753 case 115: itype
= CRISV10F_INSN_LZ
; goto extract_sfmt_movs_b_r
;
754 case 116: itype
= CRISV10F_INSN_ORR_B_R
; goto extract_sfmt_and_b_r
;
755 case 117: itype
= CRISV10F_INSN_ORR_W_R
; goto extract_sfmt_and_b_r
;
756 case 118: itype
= CRISV10F_INSN_ORR_D_R
; goto extract_sfmt_and_d_r
;
757 case 119: itype
= CRISV10F_INSN_SWAP
; goto extract_sfmt_swap
;
758 case 120: itype
= CRISV10F_INSN_ASRR_B_R
; goto extract_sfmt_and_b_r
;
759 case 121: itype
= CRISV10F_INSN_ASRR_W_R
; goto extract_sfmt_and_b_r
;
760 case 122: itype
= CRISV10F_INSN_ASRR_D_R
; goto extract_sfmt_and_d_r
;
761 case 123: itype
= CRISV10F_INSN_XOR
; goto extract_sfmt_dstep
;
762 case 124: itype
= CRISV10F_INSN_LSRR_B_R
; goto extract_sfmt_lsrr_b_r
;
763 case 125: itype
= CRISV10F_INSN_LSRR_W_R
; goto extract_sfmt_lsrr_b_r
;
764 case 126: itype
= CRISV10F_INSN_LSRR_D_R
; goto extract_sfmt_lsrr_d_r
;
765 case 127: itype
= CRISV10F_INSN_MSTEP
; goto extract_sfmt_mstep
;
766 case 128: itype
= CRISV10F_INSN_ADDU_M_B_M
; goto extract_sfmt_adds_m_b_m
;
767 case 129: itype
= CRISV10F_INSN_ADDU_M_W_M
; goto extract_sfmt_adds_m_w_m
;
768 case 130: itype
= CRISV10F_INSN_ADDS_M_B_M
; goto extract_sfmt_adds_m_b_m
;
771 unsigned int val1
= (((insn
>> 8) & (7 << 4)) | ((insn
>> 0) & (15 << 0)));
900 case 126: itype
= CRISV10F_INSN_ADDS_M_W_M
; goto extract_sfmt_adds_m_w_m
;
903 unsigned int val2
= (((insn
>> 15) & (1 << 0)));
906 case 0: itype
= CRISV10F_INSN_ADDS_M_W_M
; goto extract_sfmt_adds_m_w_m
;
907 case 1: itype
= CRISV10F_INSN_ADDSPCPC
; goto extract_sfmt_addspcpc
;
908 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
911 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
914 case 132: itype
= CRISV10F_INSN_MOVU_M_B_M
; goto extract_sfmt_movs_m_b_m
;
915 case 133: itype
= CRISV10F_INSN_MOVU_M_W_M
; goto extract_sfmt_movs_m_w_m
;
916 case 134: itype
= CRISV10F_INSN_MOVS_M_B_M
; goto extract_sfmt_movs_m_b_m
;
917 case 135: itype
= CRISV10F_INSN_MOVS_M_W_M
; goto extract_sfmt_movs_m_w_m
;
918 case 136: itype
= CRISV10F_INSN_SUBU_M_B_M
; goto extract_sfmt_adds_m_b_m
;
919 case 137: itype
= CRISV10F_INSN_SUBU_M_W_M
; goto extract_sfmt_adds_m_w_m
;
920 case 138: itype
= CRISV10F_INSN_SUBS_M_B_M
; goto extract_sfmt_adds_m_b_m
;
921 case 139: itype
= CRISV10F_INSN_SUBS_M_W_M
; goto extract_sfmt_adds_m_w_m
;
922 case 140: itype
= CRISV10F_INSN_CMPU_M_B_M
; goto extract_sfmt_cmp_m_b_m
;
923 case 141: itype
= CRISV10F_INSN_CMPU_M_W_M
; goto extract_sfmt_cmp_m_w_m
;
924 case 142: itype
= CRISV10F_INSN_CMPS_M_B_M
; goto extract_sfmt_cmp_m_b_m
;
925 case 143: itype
= CRISV10F_INSN_CMPS_M_W_M
; goto extract_sfmt_cmp_m_w_m
;
926 case 144: itype
= CRISV10F_INSN_MULU_B
; goto extract_sfmt_muls_b
;
927 case 145: itype
= CRISV10F_INSN_MULU_W
; goto extract_sfmt_muls_b
;
928 case 146: itype
= CRISV10F_INSN_MULU_D
; goto extract_sfmt_muls_b
;
931 unsigned int val1
= (((insn
>> 12) & (15 << 0)));
948 case 15: itype
= CRISV10F_INSN_JUMP_M
; goto extract_sfmt_jump_m
;
949 case 14: itype
= CRISV10F_INSN_BREAK
; goto extract_sfmt_break
;
950 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
953 case 148: itype
= CRISV10F_INSN_ADDO_M_B_M
; goto extract_sfmt_addo_m_b_m
;
954 case 149: itype
= CRISV10F_INSN_ADDO_M_W_M
; goto extract_sfmt_addo_m_w_m
;
955 case 150: itype
= CRISV10F_INSN_ADDO_M_D_M
; goto extract_sfmt_addo_m_d_m
;
957 if ((base_insn
& 0xfbf0) == 0x970)
958 { itype
= CRISV10F_INSN_DIP_M
; goto extract_sfmt_dip_m
; }
959 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
960 case 155: itype
= CRISV10F_INSN_JUMP_R
; goto extract_sfmt_jump_r
;
961 case 156: itype
= CRISV10F_INSN_BOUND_M_B_M
; goto extract_sfmt_bound_m_b_m
;
962 case 157: itype
= CRISV10F_INSN_BOUND_M_W_M
; goto extract_sfmt_bound_m_w_m
;
963 case 158: itype
= CRISV10F_INSN_BOUND_M_D_M
; goto extract_sfmt_bound_m_d_m
;
964 case 160: itype
= CRISV10F_INSN_ADD_M_B_M
; goto extract_sfmt_add_m_b_m
;
965 case 161: itype
= CRISV10F_INSN_ADD_M_W_M
; goto extract_sfmt_add_m_w_m
;
966 case 162: itype
= CRISV10F_INSN_ADD_M_D_M
; goto extract_sfmt_add_m_d_m
;
967 case 163: itype
= CRISV10F_INSN_MOVE_M_SPRV10
; goto extract_sfmt_move_m_sprv10
;
968 case 164: itype
= CRISV10F_INSN_MOVE_M_B_M
; goto extract_sfmt_move_m_b_m
;
969 case 165: itype
= CRISV10F_INSN_MOVE_M_W_M
; goto extract_sfmt_move_m_w_m
;
970 case 166: itype
= CRISV10F_INSN_MOVE_M_D_M
; goto extract_sfmt_move_m_d_m
;
972 case 231: itype
= CRISV10F_INSN_MOVE_SPR_MV10
; goto extract_sfmt_move_spr_mv10
;
973 case 168: itype
= CRISV10F_INSN_SUB_M_B_M
; goto extract_sfmt_add_m_b_m
;
974 case 169: itype
= CRISV10F_INSN_SUB_M_W_M
; goto extract_sfmt_add_m_w_m
;
975 case 170: itype
= CRISV10F_INSN_SUB_M_D_M
; goto extract_sfmt_add_m_d_m
;
976 case 172: itype
= CRISV10F_INSN_CMP_M_B_M
; goto extract_sfmt_cmp_m_b_m
;
977 case 173: itype
= CRISV10F_INSN_CMP_M_W_M
; goto extract_sfmt_cmp_m_w_m
;
978 case 174: itype
= CRISV10F_INSN_CMP_M_D_M
; goto extract_sfmt_cmp_m_d_m
;
979 case 176: itype
= CRISV10F_INSN_AND_M_B_M
; goto extract_sfmt_and_m_b_m
;
980 case 177: itype
= CRISV10F_INSN_AND_M_W_M
; goto extract_sfmt_and_m_w_m
;
981 case 178: itype
= CRISV10F_INSN_AND_M_D_M
; goto extract_sfmt_and_m_d_m
;
982 case 180: itype
= CRISV10F_INSN_OR_M_B_M
; goto extract_sfmt_and_m_b_m
;
983 case 181: itype
= CRISV10F_INSN_OR_M_W_M
; goto extract_sfmt_and_m_w_m
;
984 case 182: itype
= CRISV10F_INSN_OR_M_D_M
; goto extract_sfmt_and_m_d_m
;
987 if ((base_insn
& 0xfbf0) == 0x3b70)
988 { itype
= CRISV10F_INSN_SBFS
; goto extract_sfmt_sbfs
; }
989 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
992 if ((base_insn
& 0xfbf0) == 0xb80)
993 { itype
= CRISV10F_INSN_TEST_M_B_M
; goto extract_sfmt_test_m_b_m
; }
994 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
997 if ((base_insn
& 0xfbf0) == 0xb90)
998 { itype
= CRISV10F_INSN_TEST_M_W_M
; goto extract_sfmt_test_m_w_m
; }
999 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1002 if ((base_insn
& 0xfbf0) == 0xba0)
1003 { itype
= CRISV10F_INSN_TEST_M_D_M
; goto extract_sfmt_test_m_d_m
; }
1004 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1008 unsigned int val1
= (((insn
>> 12) & (15 << 0)));
1025 case 14: itype
= CRISV10F_INSN_MOVEM_M_R
; goto extract_sfmt_movem_m_r
;
1026 case 15: itype
= CRISV10F_INSN_MOVEM_M_PC
; goto extract_sfmt_movem_m_pc
;
1027 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1031 case 252: itype
= CRISV10F_INSN_MOVE_R_M_B_M
; goto extract_sfmt_move_r_m_b_m
;
1033 case 253: itype
= CRISV10F_INSN_MOVE_R_M_W_M
; goto extract_sfmt_move_r_m_w_m
;
1035 case 254: itype
= CRISV10F_INSN_MOVE_R_M_D_M
; goto extract_sfmt_move_r_m_d_m
;
1037 case 255: itype
= CRISV10F_INSN_MOVEM_R_M
; goto extract_sfmt_movem_r_m
;
1040 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1057 case 14: itype
= CRISV10F_INSN_ADDU_M_B_M
; goto extract_sfmt_adds_m_b_m
;
1058 case 15: itype
= CRISV10F_INSN_ADDUCBR
; goto extract_sfmt_addscbr
;
1059 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1064 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1081 case 14: itype
= CRISV10F_INSN_ADDU_M_W_M
; goto extract_sfmt_adds_m_w_m
;
1082 case 15: itype
= CRISV10F_INSN_ADDUCWR
; goto extract_sfmt_addscwr
;
1083 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1088 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1105 case 14: itype
= CRISV10F_INSN_ADDS_M_B_M
; goto extract_sfmt_adds_m_b_m
;
1106 case 15: itype
= CRISV10F_INSN_ADDSCBR
; goto extract_sfmt_addscbr
;
1107 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1112 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1129 case 14: itype
= CRISV10F_INSN_ADDS_M_W_M
; goto extract_sfmt_adds_m_w_m
;
1130 case 15: itype
= CRISV10F_INSN_ADDSCWR
; goto extract_sfmt_addscwr
;
1131 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1136 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1153 case 14: itype
= CRISV10F_INSN_MOVU_M_B_M
; goto extract_sfmt_movs_m_b_m
;
1154 case 15: itype
= CRISV10F_INSN_MOVUCBR
; goto extract_sfmt_movucbr
;
1155 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1160 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1177 case 14: itype
= CRISV10F_INSN_MOVU_M_W_M
; goto extract_sfmt_movs_m_w_m
;
1178 case 15: itype
= CRISV10F_INSN_MOVUCWR
; goto extract_sfmt_movucwr
;
1179 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1184 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1201 case 14: itype
= CRISV10F_INSN_MOVS_M_B_M
; goto extract_sfmt_movs_m_b_m
;
1202 case 15: itype
= CRISV10F_INSN_MOVSCBR
; goto extract_sfmt_movscbr
;
1203 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1208 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1225 case 14: itype
= CRISV10F_INSN_MOVS_M_W_M
; goto extract_sfmt_movs_m_w_m
;
1226 case 15: itype
= CRISV10F_INSN_MOVSCWR
; goto extract_sfmt_movscwr
;
1227 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1232 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1249 case 14: itype
= CRISV10F_INSN_SUBU_M_B_M
; goto extract_sfmt_adds_m_b_m
;
1250 case 15: itype
= CRISV10F_INSN_SUBUCBR
; goto extract_sfmt_addscbr
;
1251 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1256 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1273 case 14: itype
= CRISV10F_INSN_SUBU_M_W_M
; goto extract_sfmt_adds_m_w_m
;
1274 case 15: itype
= CRISV10F_INSN_SUBUCWR
; goto extract_sfmt_addscwr
;
1275 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1280 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1297 case 14: itype
= CRISV10F_INSN_SUBS_M_B_M
; goto extract_sfmt_adds_m_b_m
;
1298 case 15: itype
= CRISV10F_INSN_SUBSCBR
; goto extract_sfmt_addscbr
;
1299 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1304 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1321 case 14: itype
= CRISV10F_INSN_SUBS_M_W_M
; goto extract_sfmt_adds_m_w_m
;
1322 case 15: itype
= CRISV10F_INSN_SUBSCWR
; goto extract_sfmt_addscwr
;
1323 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1328 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1345 case 14: itype
= CRISV10F_INSN_CMPU_M_B_M
; goto extract_sfmt_cmp_m_b_m
;
1346 case 15: itype
= CRISV10F_INSN_CMPUCBR
; goto extract_sfmt_cmpucbr
;
1347 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1352 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1369 case 14: itype
= CRISV10F_INSN_CMPU_M_W_M
; goto extract_sfmt_cmp_m_w_m
;
1370 case 15: itype
= CRISV10F_INSN_CMPUCWR
; goto extract_sfmt_cmpucwr
;
1371 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1376 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1393 case 14: itype
= CRISV10F_INSN_CMPS_M_B_M
; goto extract_sfmt_cmp_m_b_m
;
1394 case 15: itype
= CRISV10F_INSN_CMPSCBR
; goto extract_sfmt_cmpcbr
;
1395 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1400 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1417 case 14: itype
= CRISV10F_INSN_CMPS_M_W_M
; goto extract_sfmt_cmp_m_w_m
;
1418 case 15: itype
= CRISV10F_INSN_CMPSCWR
; goto extract_sfmt_cmpcwr
;
1419 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1422 case 208: itype
= CRISV10F_INSN_MULS_B
; goto extract_sfmt_muls_b
;
1423 case 209: itype
= CRISV10F_INSN_MULS_W
; goto extract_sfmt_muls_b
;
1424 case 210: itype
= CRISV10F_INSN_MULS_D
; goto extract_sfmt_muls_b
;
1427 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1444 case 14: itype
= CRISV10F_INSN_JUMP_M
; goto extract_sfmt_jump_m
;
1445 case 15: itype
= CRISV10F_INSN_JUMP_C
; goto extract_sfmt_jump_c
;
1446 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1451 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1468 case 14: itype
= CRISV10F_INSN_ADDO_M_B_M
; goto extract_sfmt_addo_m_b_m
;
1469 case 15: itype
= CRISV10F_INSN_ADDO_CB
; goto extract_sfmt_addo_cb
;
1470 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1475 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1492 case 14: itype
= CRISV10F_INSN_ADDO_M_W_M
; goto extract_sfmt_addo_m_w_m
;
1493 case 15: itype
= CRISV10F_INSN_ADDO_CW
; goto extract_sfmt_addo_cw
;
1494 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1499 unsigned int val1
= (((insn
>> 12) & (15 << 0)));
1518 unsigned int val2
= (((insn
>> 0) & (15 << 0)));
1535 case 14: itype
= CRISV10F_INSN_ADDO_M_D_M
; goto extract_sfmt_addo_m_d_m
;
1536 case 15: itype
= CRISV10F_INSN_ADDO_CD
; goto extract_sfmt_addo_cd
;
1537 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1542 unsigned int val2
= (((insn
>> 0) & (15 << 0)));
1559 case 14: itype
= CRISV10F_INSN_ADDO_M_D_M
; goto extract_sfmt_addo_m_d_m
;
1560 case 15: itype
= CRISV10F_INSN_BDAP_32_PC
; goto extract_sfmt_bdap_32_pc
;
1561 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1564 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1569 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1587 if ((base_insn
& 0xfbf0) == 0x970)
1588 { itype
= CRISV10F_INSN_DIP_M
; goto extract_sfmt_dip_m
; }
1589 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1591 if ((base_insn
& 0xffff) == 0xd7f)
1592 { itype
= CRISV10F_INSN_DIP_C
; goto extract_sfmt_dip_c
; }
1593 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1594 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1599 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1616 case 14: itype
= CRISV10F_INSN_BOUND_M_B_M
; goto extract_sfmt_bound_m_b_m
;
1617 case 15: itype
= CRISV10F_INSN_BOUND_CB
; goto extract_sfmt_bound_cb
;
1618 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1623 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1640 case 14: itype
= CRISV10F_INSN_BOUND_M_W_M
; goto extract_sfmt_bound_m_w_m
;
1641 case 15: itype
= CRISV10F_INSN_BOUND_CW
; goto extract_sfmt_bound_cw
;
1642 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1647 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1664 case 14: itype
= CRISV10F_INSN_BOUND_M_D_M
; goto extract_sfmt_bound_m_d_m
;
1665 case 15: itype
= CRISV10F_INSN_BOUND_CD
; goto extract_sfmt_bound_cd
;
1666 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1671 unsigned int val1
= (((insn
>> 12) & (15 << 0)));
1689 if ((base_insn
& 0xfff) == 0xdff)
1690 { itype
= CRISV10F_INSN_BCC_W
; goto extract_sfmt_bcc_w
; }
1691 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1693 if ((base_insn
& 0xffff) == 0xedff)
1694 { itype
= CRISV10F_INSN_BA_W
; goto extract_sfmt_ba_w
; }
1695 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1696 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1701 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1718 case 14: itype
= CRISV10F_INSN_ADD_M_B_M
; goto extract_sfmt_add_m_b_m
;
1719 case 15: itype
= CRISV10F_INSN_ADDCBR
; goto extract_sfmt_addcbr
;
1720 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1725 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1742 case 14: itype
= CRISV10F_INSN_ADD_M_W_M
; goto extract_sfmt_add_m_w_m
;
1743 case 15: itype
= CRISV10F_INSN_ADDCWR
; goto extract_sfmt_addcwr
;
1744 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1749 unsigned int val1
= (((insn
>> 12) & (15 << 0)));
1768 unsigned int val2
= (((insn
>> 0) & (15 << 0)));
1785 case 14: itype
= CRISV10F_INSN_ADD_M_D_M
; goto extract_sfmt_add_m_d_m
;
1786 case 15: itype
= CRISV10F_INSN_ADDCDR
; goto extract_sfmt_addcdr
;
1787 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1792 unsigned int val2
= (((insn
>> 0) & (15 << 0)));
1809 case 14: itype
= CRISV10F_INSN_ADD_M_D_M
; goto extract_sfmt_add_m_d_m
;
1810 case 15: itype
= CRISV10F_INSN_ADDCPC
; goto extract_sfmt_addcpc
;
1811 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1814 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1819 unsigned int val1
= (((insn
>> 11) & (15 << 1)) | ((insn
>> 0) & (1 << 0)));
1842 case 30: itype
= CRISV10F_INSN_MOVE_M_SPRV10
; goto extract_sfmt_move_m_sprv10
;
1845 unsigned int val2
= (((insn
>> 1) & (7 << 0)));
1854 case 6: itype
= CRISV10F_INSN_MOVE_M_SPRV10
; goto extract_sfmt_move_m_sprv10
;
1855 case 7: itype
= CRISV10F_INSN_MOVE_M_PCPLUS_P0
; goto extract_sfmt_move_m_pcplus_p0
;
1856 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1861 unsigned int val2
= (((insn
>> 1) & (7 << 0)));
1870 case 6: itype
= CRISV10F_INSN_MOVE_M_SPRV10
; goto extract_sfmt_move_m_sprv10
;
1871 case 7: itype
= CRISV10F_INSN_MOVE_C_SPRV10_P5
; goto extract_sfmt_move_c_sprv10_p5
;
1872 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1877 unsigned int val2
= (((insn
>> 1) & (7 << 0)));
1886 case 6: itype
= CRISV10F_INSN_MOVE_M_SPRV10
; goto extract_sfmt_move_m_sprv10
;
1887 case 7: itype
= CRISV10F_INSN_MOVE_C_SPRV10_P7
; goto extract_sfmt_move_c_sprv10_p9
;
1888 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1893 unsigned int val2
= (((insn
>> 1) & (7 << 0)));
1902 case 6: itype
= CRISV10F_INSN_MOVE_M_SPRV10
; goto extract_sfmt_move_m_sprv10
;
1903 case 7: itype
= CRISV10F_INSN_MOVE_M_SPPLUS_P8
; goto extract_sfmt_move_m_spplus_p8
;
1904 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1909 unsigned int val2
= (((insn
>> 1) & (7 << 0)));
1918 case 6: itype
= CRISV10F_INSN_MOVE_M_SPRV10
; goto extract_sfmt_move_m_sprv10
;
1919 case 7: itype
= CRISV10F_INSN_MOVE_C_SPRV10_P9
; goto extract_sfmt_move_c_sprv10_p9
;
1920 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1925 unsigned int val2
= (((insn
>> 1) & (7 << 0)));
1934 case 6: itype
= CRISV10F_INSN_MOVE_M_SPRV10
; goto extract_sfmt_move_m_sprv10
;
1935 case 7: itype
= CRISV10F_INSN_MOVE_C_SPRV10_P10
; goto extract_sfmt_move_c_sprv10_p9
;
1936 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1941 unsigned int val2
= (((insn
>> 1) & (7 << 0)));
1950 case 6: itype
= CRISV10F_INSN_MOVE_M_SPRV10
; goto extract_sfmt_move_m_sprv10
;
1951 case 7: itype
= CRISV10F_INSN_MOVE_C_SPRV10_P11
; goto extract_sfmt_move_c_sprv10_p9
;
1952 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1957 unsigned int val2
= (((insn
>> 1) & (7 << 0)));
1966 case 6: itype
= CRISV10F_INSN_MOVE_M_SPRV10
; goto extract_sfmt_move_m_sprv10
;
1967 case 7: itype
= CRISV10F_INSN_MOVE_C_SPRV10_P12
; goto extract_sfmt_move_c_sprv10_p9
;
1968 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1973 unsigned int val2
= (((insn
>> 1) & (7 << 0)));
1982 case 6: itype
= CRISV10F_INSN_MOVE_M_SPRV10
; goto extract_sfmt_move_m_sprv10
;
1983 case 7: itype
= CRISV10F_INSN_MOVE_C_SPRV10_P13
; goto extract_sfmt_move_c_sprv10_p9
;
1984 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1989 unsigned int val2
= (((insn
>> 1) & (7 << 0)));
1998 case 6: itype
= CRISV10F_INSN_MOVE_M_SPRV10
; goto extract_sfmt_move_m_sprv10
;
1999 case 7: itype
= CRISV10F_INSN_MOVE_C_SPRV10_P14
; goto extract_sfmt_move_c_sprv10_p9
;
2000 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2005 unsigned int val2
= (((insn
>> 1) & (7 << 0)));
2014 case 6: itype
= CRISV10F_INSN_MOVE_M_SPRV10
; goto extract_sfmt_move_m_sprv10
;
2015 case 7: itype
= CRISV10F_INSN_MOVE_C_SPRV10_P15
; goto extract_sfmt_move_c_sprv10_p9
;
2016 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2019 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2024 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
2041 case 14: itype
= CRISV10F_INSN_MOVE_M_B_M
; goto extract_sfmt_move_m_b_m
;
2042 case 15: itype
= CRISV10F_INSN_MOVECBR
; goto extract_sfmt_movecbr
;
2043 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2048 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
2065 case 14: itype
= CRISV10F_INSN_MOVE_M_W_M
; goto extract_sfmt_move_m_w_m
;
2066 case 15: itype
= CRISV10F_INSN_MOVECWR
; goto extract_sfmt_movecwr
;
2067 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2072 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
2089 case 14: itype
= CRISV10F_INSN_MOVE_M_D_M
; goto extract_sfmt_move_m_d_m
;
2090 case 15: itype
= CRISV10F_INSN_MOVECDR
; goto extract_sfmt_movecdr
;
2091 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2096 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
2113 case 14: itype
= CRISV10F_INSN_SUB_M_B_M
; goto extract_sfmt_add_m_b_m
;
2114 case 15: itype
= CRISV10F_INSN_SUBCBR
; goto extract_sfmt_addcbr
;
2115 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2120 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
2137 case 14: itype
= CRISV10F_INSN_SUB_M_W_M
; goto extract_sfmt_add_m_w_m
;
2138 case 15: itype
= CRISV10F_INSN_SUBCWR
; goto extract_sfmt_addcwr
;
2139 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2144 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
2161 case 14: itype
= CRISV10F_INSN_SUB_M_D_M
; goto extract_sfmt_add_m_d_m
;
2162 case 15: itype
= CRISV10F_INSN_SUBCDR
; goto extract_sfmt_addcdr
;
2163 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2168 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
2185 case 14: itype
= CRISV10F_INSN_CMP_M_B_M
; goto extract_sfmt_cmp_m_b_m
;
2186 case 15: itype
= CRISV10F_INSN_CMPCBR
; goto extract_sfmt_cmpcbr
;
2187 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2192 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
2209 case 14: itype
= CRISV10F_INSN_CMP_M_W_M
; goto extract_sfmt_cmp_m_w_m
;
2210 case 15: itype
= CRISV10F_INSN_CMPCWR
; goto extract_sfmt_cmpcwr
;
2211 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2216 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
2233 case 14: itype
= CRISV10F_INSN_CMP_M_D_M
; goto extract_sfmt_cmp_m_d_m
;
2234 case 15: itype
= CRISV10F_INSN_CMPCDR
; goto extract_sfmt_cmpcdr
;
2235 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2240 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
2257 case 14: itype
= CRISV10F_INSN_AND_M_B_M
; goto extract_sfmt_and_m_b_m
;
2258 case 15: itype
= CRISV10F_INSN_ANDCBR
; goto extract_sfmt_andcbr
;
2259 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2264 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
2281 case 14: itype
= CRISV10F_INSN_AND_M_W_M
; goto extract_sfmt_and_m_w_m
;
2282 case 15: itype
= CRISV10F_INSN_ANDCWR
; goto extract_sfmt_andcwr
;
2283 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2288 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
2305 case 14: itype
= CRISV10F_INSN_AND_M_D_M
; goto extract_sfmt_and_m_d_m
;
2306 case 15: itype
= CRISV10F_INSN_ANDCDR
; goto extract_sfmt_andcdr
;
2307 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2312 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
2329 case 14: itype
= CRISV10F_INSN_OR_M_B_M
; goto extract_sfmt_and_m_b_m
;
2330 case 15: itype
= CRISV10F_INSN_ORCBR
; goto extract_sfmt_andcbr
;
2331 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2336 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
2353 case 14: itype
= CRISV10F_INSN_OR_M_W_M
; goto extract_sfmt_and_m_w_m
;
2354 case 15: itype
= CRISV10F_INSN_ORCWR
; goto extract_sfmt_andcwr
;
2355 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2360 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
2377 case 14: itype
= CRISV10F_INSN_OR_M_D_M
; goto extract_sfmt_and_m_d_m
;
2378 case 15: itype
= CRISV10F_INSN_ORCDR
; goto extract_sfmt_andcdr
;
2379 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2382 default: itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2387 /* The instruction has been decoded, now extract the fields. */
2391 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
2392 #define FLD(f) abuf->fields.sfmt_empty.f
2395 /* Record the fields for the semantic handler. */
2396 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_empty", (char *) 0));
2404 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
2405 #define FLD(f) abuf->fields.sfmt_empty.f
2408 /* Record the fields for the semantic handler. */
2409 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_nop", (char *) 0));
2415 extract_sfmt_move_b_r
:
2417 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
2418 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2419 #define FLD(f) abuf->fields.sfmt_add_b_r.f
2423 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2424 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
2426 /* Record the fields for the semantic handler. */
2427 FLD (f_operand1
) = f_operand1
;
2428 FLD (f_operand2
) = f_operand2
;
2429 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));
2431 #if WITH_PROFILE_MODEL_P
2432 /* Record the fields for profiling. */
2433 if (PROFILE_MODEL_P (current_cpu
))
2435 FLD (in_Rs
) = f_operand1
;
2436 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
2443 extract_sfmt_move_d_r
:
2445 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
2446 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2447 #define FLD(f) abuf->fields.sfmt_add_b_r.f
2451 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2452 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
2454 /* Record the fields for the semantic handler. */
2455 FLD (f_operand1
) = f_operand1
;
2456 FLD (f_operand2
) = f_operand2
;
2457 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));
2459 #if WITH_PROFILE_MODEL_P
2460 /* Record the fields for profiling. */
2461 if (PROFILE_MODEL_P (current_cpu
))
2463 FLD (in_Rs
) = f_operand1
;
2464 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
2471 extract_sfmt_movepcr
:
2473 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
2474 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2475 #define FLD(f) abuf->fields.sfmt_moveq.f
2478 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2480 /* Record the fields for the semantic handler. */
2481 FLD (f_operand2
) = f_operand2
;
2482 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movepcr", "f_operand2 0x%x", 'x', f_operand2
, (char *) 0));
2484 #if WITH_PROFILE_MODEL_P
2485 /* Record the fields for profiling. */
2486 if (PROFILE_MODEL_P (current_cpu
))
2488 FLD (out_Rd
) = f_operand2
;
2497 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
2498 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2499 #define FLD(f) abuf->fields.sfmt_moveq.f
2503 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2504 f_s6
= EXTRACT_LSB0_SINT (insn
, 16, 5, 6);
2506 /* Record the fields for the semantic handler. */
2508 FLD (f_operand2
) = f_operand2
;
2509 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));
2511 #if WITH_PROFILE_MODEL_P
2512 /* Record the fields for profiling. */
2513 if (PROFILE_MODEL_P (current_cpu
))
2515 FLD (out_Rd
) = f_operand2
;
2522 extract_sfmt_movs_b_r
:
2524 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
2525 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2526 #define FLD(f) abuf->fields.sfmt_muls_b.f
2530 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2531 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
2533 /* Record the fields for the semantic handler. */
2534 FLD (f_operand1
) = f_operand1
;
2535 FLD (f_operand2
) = f_operand2
;
2536 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));
2538 #if WITH_PROFILE_MODEL_P
2539 /* Record the fields for profiling. */
2540 if (PROFILE_MODEL_P (current_cpu
))
2542 FLD (in_Rs
) = f_operand1
;
2543 FLD (out_Rd
) = f_operand2
;
2550 extract_sfmt_movecbr
:
2552 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
2553 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2554 #define FLD(f) abuf->fields.sfmt_addcbr.f
2555 INT f_indir_pc__byte
;
2557 /* Contents of trailing part of insn. */
2560 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2561 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
2562 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2564 /* Record the fields for the semantic handler. */
2565 FLD (f_operand2
) = f_operand2
;
2566 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
2567 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));
2569 #if WITH_PROFILE_MODEL_P
2570 /* Record the fields for profiling. */
2571 if (PROFILE_MODEL_P (current_cpu
))
2573 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
2580 extract_sfmt_movecwr
:
2582 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
2583 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2584 #define FLD(f) abuf->fields.sfmt_addcwr.f
2585 INT f_indir_pc__word
;
2587 /* Contents of trailing part of insn. */
2590 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2591 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
2592 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2594 /* Record the fields for the semantic handler. */
2595 FLD (f_operand2
) = f_operand2
;
2596 FLD (f_indir_pc__word
) = f_indir_pc__word
;
2597 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));
2599 #if WITH_PROFILE_MODEL_P
2600 /* Record the fields for profiling. */
2601 if (PROFILE_MODEL_P (current_cpu
))
2603 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
2610 extract_sfmt_movecdr
:
2612 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
2613 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2614 #define FLD(f) abuf->fields.sfmt_bound_cd.f
2615 INT f_indir_pc__dword
;
2617 /* Contents of trailing part of insn. */
2620 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2621 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
2622 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2624 /* Record the fields for the semantic handler. */
2625 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
2626 FLD (f_operand2
) = f_operand2
;
2627 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));
2629 #if WITH_PROFILE_MODEL_P
2630 /* Record the fields for profiling. */
2631 if (PROFILE_MODEL_P (current_cpu
))
2633 FLD (out_Rd
) = f_operand2
;
2640 extract_sfmt_movscbr
:
2642 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
2643 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2644 #define FLD(f) abuf->fields.sfmt_bound_cb.f
2646 INT f_indir_pc__byte
;
2647 /* Contents of trailing part of insn. */
2650 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2651 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2652 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
2654 /* Record the fields for the semantic handler. */
2655 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
2656 FLD (f_operand2
) = f_operand2
;
2657 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));
2659 #if WITH_PROFILE_MODEL_P
2660 /* Record the fields for profiling. */
2661 if (PROFILE_MODEL_P (current_cpu
))
2663 FLD (out_Rd
) = f_operand2
;
2670 extract_sfmt_movscwr
:
2672 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
2673 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2674 #define FLD(f) abuf->fields.sfmt_bound_cw.f
2676 INT f_indir_pc__word
;
2677 /* Contents of trailing part of insn. */
2680 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2681 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2682 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
2684 /* Record the fields for the semantic handler. */
2685 FLD (f_indir_pc__word
) = f_indir_pc__word
;
2686 FLD (f_operand2
) = f_operand2
;
2687 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));
2689 #if WITH_PROFILE_MODEL_P
2690 /* Record the fields for profiling. */
2691 if (PROFILE_MODEL_P (current_cpu
))
2693 FLD (out_Rd
) = f_operand2
;
2700 extract_sfmt_movucbr
:
2702 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
2703 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2704 #define FLD(f) abuf->fields.sfmt_bound_cb.f
2706 INT f_indir_pc__byte
;
2707 /* Contents of trailing part of insn. */
2710 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2711 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2712 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
2714 /* Record the fields for the semantic handler. */
2715 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
2716 FLD (f_operand2
) = f_operand2
;
2717 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));
2719 #if WITH_PROFILE_MODEL_P
2720 /* Record the fields for profiling. */
2721 if (PROFILE_MODEL_P (current_cpu
))
2723 FLD (out_Rd
) = f_operand2
;
2730 extract_sfmt_movucwr
:
2732 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
2733 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2734 #define FLD(f) abuf->fields.sfmt_bound_cw.f
2736 INT f_indir_pc__word
;
2737 /* Contents of trailing part of insn. */
2740 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2741 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2742 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
2744 /* Record the fields for the semantic handler. */
2745 FLD (f_indir_pc__word
) = f_indir_pc__word
;
2746 FLD (f_operand2
) = f_operand2
;
2747 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));
2749 #if WITH_PROFILE_MODEL_P
2750 /* Record the fields for profiling. */
2751 if (PROFILE_MODEL_P (current_cpu
))
2753 FLD (out_Rd
) = f_operand2
;
2762 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
2763 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2764 #define FLD(f) abuf->fields.sfmt_addq.f
2768 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2769 f_u6
= EXTRACT_LSB0_UINT (insn
, 16, 5, 6);
2771 /* Record the fields for the semantic handler. */
2772 FLD (f_operand2
) = f_operand2
;
2774 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));
2776 #if WITH_PROFILE_MODEL_P
2777 /* Record the fields for profiling. */
2778 if (PROFILE_MODEL_P (current_cpu
))
2780 FLD (in_Rd
) = f_operand2
;
2781 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
2788 extract_sfmt_cmp_r_b_r
:
2790 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
2791 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2792 #define FLD(f) abuf->fields.sfmt_add_b_r.f
2796 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2797 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
2799 /* Record the fields for the semantic handler. */
2800 FLD (f_operand2
) = f_operand2
;
2801 FLD (f_operand1
) = f_operand1
;
2802 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));
2804 #if WITH_PROFILE_MODEL_P
2805 /* Record the fields for profiling. */
2806 if (PROFILE_MODEL_P (current_cpu
))
2808 FLD (in_Rd
) = f_operand2
;
2809 FLD (in_Rs
) = f_operand1
;
2816 extract_sfmt_cmp_m_b_m
:
2818 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
2819 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2820 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2825 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2826 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
2827 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
2829 /* Record the fields for the semantic handler. */
2830 FLD (f_operand2
) = f_operand2
;
2831 FLD (f_operand1
) = f_operand1
;
2832 FLD (f_memmode
) = f_memmode
;
2833 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));
2835 #if WITH_PROFILE_MODEL_P
2836 /* Record the fields for profiling. */
2837 if (PROFILE_MODEL_P (current_cpu
))
2839 FLD (in_Rd
) = f_operand2
;
2840 FLD (in_Rs
) = f_operand1
;
2841 FLD (out_Rs
) = f_operand1
;
2848 extract_sfmt_cmp_m_w_m
:
2850 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
2851 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2852 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2857 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2858 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
2859 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
2861 /* Record the fields for the semantic handler. */
2862 FLD (f_operand2
) = f_operand2
;
2863 FLD (f_operand1
) = f_operand1
;
2864 FLD (f_memmode
) = f_memmode
;
2865 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));
2867 #if WITH_PROFILE_MODEL_P
2868 /* Record the fields for profiling. */
2869 if (PROFILE_MODEL_P (current_cpu
))
2871 FLD (in_Rd
) = f_operand2
;
2872 FLD (in_Rs
) = f_operand1
;
2873 FLD (out_Rs
) = f_operand1
;
2880 extract_sfmt_cmp_m_d_m
:
2882 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
2883 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2884 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2889 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2890 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
2891 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
2893 /* Record the fields for the semantic handler. */
2894 FLD (f_operand2
) = f_operand2
;
2895 FLD (f_operand1
) = f_operand1
;
2896 FLD (f_memmode
) = f_memmode
;
2897 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));
2899 #if WITH_PROFILE_MODEL_P
2900 /* Record the fields for profiling. */
2901 if (PROFILE_MODEL_P (current_cpu
))
2903 FLD (in_Rd
) = f_operand2
;
2904 FLD (in_Rs
) = f_operand1
;
2905 FLD (out_Rs
) = f_operand1
;
2912 extract_sfmt_cmpcbr
:
2914 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
2915 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2916 #define FLD(f) abuf->fields.sfmt_bound_cb.f
2917 INT f_indir_pc__byte
;
2919 /* Contents of trailing part of insn. */
2922 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2923 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
2924 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2926 /* Record the fields for the semantic handler. */
2927 FLD (f_operand2
) = f_operand2
;
2928 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
2929 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));
2931 #if WITH_PROFILE_MODEL_P
2932 /* Record the fields for profiling. */
2933 if (PROFILE_MODEL_P (current_cpu
))
2935 FLD (in_Rd
) = f_operand2
;
2942 extract_sfmt_cmpcwr
:
2944 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
2945 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2946 #define FLD(f) abuf->fields.sfmt_bound_cw.f
2947 INT f_indir_pc__word
;
2949 /* Contents of trailing part of insn. */
2952 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2953 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
2954 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2956 /* Record the fields for the semantic handler. */
2957 FLD (f_operand2
) = f_operand2
;
2958 FLD (f_indir_pc__word
) = f_indir_pc__word
;
2959 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));
2961 #if WITH_PROFILE_MODEL_P
2962 /* Record the fields for profiling. */
2963 if (PROFILE_MODEL_P (current_cpu
))
2965 FLD (in_Rd
) = f_operand2
;
2972 extract_sfmt_cmpcdr
:
2974 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
2975 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2976 #define FLD(f) abuf->fields.sfmt_bound_cd.f
2977 INT f_indir_pc__dword
;
2979 /* Contents of trailing part of insn. */
2982 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2983 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
2984 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2986 /* Record the fields for the semantic handler. */
2987 FLD (f_operand2
) = f_operand2
;
2988 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
2989 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));
2991 #if WITH_PROFILE_MODEL_P
2992 /* Record the fields for profiling. */
2993 if (PROFILE_MODEL_P (current_cpu
))
2995 FLD (in_Rd
) = f_operand2
;
3004 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3005 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3006 #define FLD(f) abuf->fields.sfmt_andq.f
3010 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3011 f_s6
= EXTRACT_LSB0_SINT (insn
, 16, 5, 6);
3013 /* Record the fields for the semantic handler. */
3014 FLD (f_operand2
) = f_operand2
;
3016 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));
3018 #if WITH_PROFILE_MODEL_P
3019 /* Record the fields for profiling. */
3020 if (PROFILE_MODEL_P (current_cpu
))
3022 FLD (in_Rd
) = f_operand2
;
3029 extract_sfmt_cmpucbr
:
3031 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3032 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3033 #define FLD(f) abuf->fields.sfmt_bound_cb.f
3034 INT f_indir_pc__byte
;
3036 /* Contents of trailing part of insn. */
3039 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3040 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
3041 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3043 /* Record the fields for the semantic handler. */
3044 FLD (f_operand2
) = f_operand2
;
3045 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
3046 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));
3048 #if WITH_PROFILE_MODEL_P
3049 /* Record the fields for profiling. */
3050 if (PROFILE_MODEL_P (current_cpu
))
3052 FLD (in_Rd
) = f_operand2
;
3059 extract_sfmt_cmpucwr
:
3061 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3062 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3063 #define FLD(f) abuf->fields.sfmt_bound_cw.f
3064 INT f_indir_pc__word
;
3066 /* Contents of trailing part of insn. */
3069 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3070 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
3071 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3073 /* Record the fields for the semantic handler. */
3074 FLD (f_operand2
) = f_operand2
;
3075 FLD (f_indir_pc__word
) = f_indir_pc__word
;
3076 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));
3078 #if WITH_PROFILE_MODEL_P
3079 /* Record the fields for profiling. */
3080 if (PROFILE_MODEL_P (current_cpu
))
3082 FLD (in_Rd
) = f_operand2
;
3089 extract_sfmt_move_m_b_m
:
3091 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3092 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3093 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3098 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3099 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3100 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3102 /* Record the fields for the semantic handler. */
3103 FLD (f_operand1
) = f_operand1
;
3104 FLD (f_operand2
) = f_operand2
;
3105 FLD (f_memmode
) = f_memmode
;
3106 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));
3108 #if WITH_PROFILE_MODEL_P
3109 /* Record the fields for profiling. */
3110 if (PROFILE_MODEL_P (current_cpu
))
3112 FLD (in_Rs
) = f_operand1
;
3113 FLD (out_Rs
) = f_operand1
;
3114 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
)));
3121 extract_sfmt_move_m_w_m
:
3123 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3124 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3125 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3130 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3131 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3132 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3134 /* Record the fields for the semantic handler. */
3135 FLD (f_operand1
) = f_operand1
;
3136 FLD (f_operand2
) = f_operand2
;
3137 FLD (f_memmode
) = f_memmode
;
3138 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));
3140 #if WITH_PROFILE_MODEL_P
3141 /* Record the fields for profiling. */
3142 if (PROFILE_MODEL_P (current_cpu
))
3144 FLD (in_Rs
) = f_operand1
;
3145 FLD (out_Rs
) = f_operand1
;
3146 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
)));
3153 extract_sfmt_move_m_d_m
:
3155 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3156 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3157 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3162 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3163 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3164 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3166 /* Record the fields for the semantic handler. */
3167 FLD (f_operand1
) = f_operand1
;
3168 FLD (f_operand2
) = f_operand2
;
3169 FLD (f_memmode
) = f_memmode
;
3170 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));
3172 #if WITH_PROFILE_MODEL_P
3173 /* Record the fields for profiling. */
3174 if (PROFILE_MODEL_P (current_cpu
))
3176 FLD (in_Rs
) = f_operand1
;
3177 FLD (out_Rs
) = f_operand1
;
3178 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
)));
3185 extract_sfmt_movs_m_b_m
:
3187 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3188 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3189 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3194 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3195 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3196 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3198 /* Record the fields for the semantic handler. */
3199 FLD (f_operand1
) = f_operand1
;
3200 FLD (f_memmode
) = f_memmode
;
3201 FLD (f_operand2
) = f_operand2
;
3202 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));
3204 #if WITH_PROFILE_MODEL_P
3205 /* Record the fields for profiling. */
3206 if (PROFILE_MODEL_P (current_cpu
))
3208 FLD (in_Rs
) = f_operand1
;
3209 FLD (out_Rd
) = f_operand2
;
3210 FLD (out_Rs
) = f_operand1
;
3217 extract_sfmt_movs_m_w_m
:
3219 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3220 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3221 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3226 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3227 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3228 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3230 /* Record the fields for the semantic handler. */
3231 FLD (f_operand1
) = f_operand1
;
3232 FLD (f_memmode
) = f_memmode
;
3233 FLD (f_operand2
) = f_operand2
;
3234 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));
3236 #if WITH_PROFILE_MODEL_P
3237 /* Record the fields for profiling. */
3238 if (PROFILE_MODEL_P (current_cpu
))
3240 FLD (in_Rs
) = f_operand1
;
3241 FLD (out_Rd
) = f_operand2
;
3242 FLD (out_Rs
) = f_operand1
;
3249 extract_sfmt_move_r_sprv10
:
3251 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3252 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3253 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
3257 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3258 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3260 /* Record the fields for the semantic handler. */
3261 FLD (f_operand1
) = f_operand1
;
3262 FLD (f_operand2
) = f_operand2
;
3263 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));
3265 #if WITH_PROFILE_MODEL_P
3266 /* Record the fields for profiling. */
3267 if (PROFILE_MODEL_P (current_cpu
))
3269 FLD (in_Rs
) = f_operand1
;
3270 FLD (out_Pd
) = f_operand2
;
3277 extract_sfmt_move_spr_rv10
:
3279 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3280 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3281 #define FLD(f) abuf->fields.sfmt_move_spr_rv10.f
3285 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3286 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3288 /* Record the fields for the semantic handler. */
3289 FLD (f_operand2
) = f_operand2
;
3290 FLD (f_operand1
) = f_operand1
;
3291 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));
3293 #if WITH_PROFILE_MODEL_P
3294 /* Record the fields for profiling. */
3295 if (PROFILE_MODEL_P (current_cpu
))
3297 FLD (in_Ps
) = f_operand2
;
3298 FLD (out_h_gr_SI_index_of__INT_Rs
) = FLD (f_operand1
);
3305 extract_sfmt_ret_type
:
3307 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3308 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3309 #define FLD(f) abuf->fields.sfmt_move_spr_rv10.f
3312 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3314 /* Record the fields for the semantic handler. */
3315 FLD (f_operand2
) = f_operand2
;
3316 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ret_type", "f_operand2 0x%x", 'x', f_operand2
, (char *) 0));
3318 #if WITH_PROFILE_MODEL_P
3319 /* Record the fields for profiling. */
3320 if (PROFILE_MODEL_P (current_cpu
))
3322 FLD (in_Ps
) = f_operand2
;
3329 extract_sfmt_move_m_sprv10
:
3331 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3332 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3333 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
3338 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3339 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3340 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3342 /* Record the fields for the semantic handler. */
3343 FLD (f_operand1
) = f_operand1
;
3344 FLD (f_operand2
) = f_operand2
;
3345 FLD (f_memmode
) = f_memmode
;
3346 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));
3348 #if WITH_PROFILE_MODEL_P
3349 /* Record the fields for profiling. */
3350 if (PROFILE_MODEL_P (current_cpu
))
3352 FLD (in_Rs
) = f_operand1
;
3353 FLD (out_Pd
) = f_operand2
;
3354 FLD (out_Rs
) = f_operand1
;
3361 extract_sfmt_move_c_sprv10_p5
:
3363 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3364 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3365 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p5.f
3367 INT f_indir_pc__word
;
3368 /* Contents of trailing part of insn. */
3371 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3372 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3373 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
3375 /* Record the fields for the semantic handler. */
3376 FLD (f_indir_pc__word
) = f_indir_pc__word
;
3377 FLD (f_operand2
) = f_operand2
;
3378 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));
3380 #if WITH_PROFILE_MODEL_P
3381 /* Record the fields for profiling. */
3382 if (PROFILE_MODEL_P (current_cpu
))
3384 FLD (out_Pd
) = f_operand2
;
3391 extract_sfmt_move_c_sprv10_p9
:
3393 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3394 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3395 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
3396 INT f_indir_pc__dword
;
3398 /* Contents of trailing part of insn. */
3401 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3402 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
3403 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3405 /* Record the fields for the semantic handler. */
3406 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
3407 FLD (f_operand2
) = f_operand2
;
3408 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));
3410 #if WITH_PROFILE_MODEL_P
3411 /* Record the fields for profiling. */
3412 if (PROFILE_MODEL_P (current_cpu
))
3414 FLD (out_Pd
) = f_operand2
;
3421 extract_sfmt_move_spr_mv10
:
3423 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3424 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3425 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
3430 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3431 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3432 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3434 /* Record the fields for the semantic handler. */
3435 FLD (f_operand2
) = f_operand2
;
3436 FLD (f_operand1
) = f_operand1
;
3437 FLD (f_memmode
) = f_memmode
;
3438 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));
3440 #if WITH_PROFILE_MODEL_P
3441 /* Record the fields for profiling. */
3442 if (PROFILE_MODEL_P (current_cpu
))
3444 FLD (in_Ps
) = f_operand2
;
3445 FLD (in_Rs
) = f_operand1
;
3446 FLD (out_Rs
) = f_operand1
;
3455 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3456 #define FLD(f) abuf->fields.sfmt_empty.f
3459 /* Record the fields for the semantic handler. */
3460 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_sbfs", (char *) 0));
3466 extract_sfmt_movem_r_m
:
3468 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3469 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3470 #define FLD(f) abuf->fields.sfmt_movem_r_m.f
3475 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3476 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3477 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3479 /* Record the fields for the semantic handler. */
3480 FLD (f_operand2
) = f_operand2
;
3481 FLD (f_operand1
) = f_operand1
;
3482 FLD (f_memmode
) = f_memmode
;
3483 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));
3485 #if WITH_PROFILE_MODEL_P
3486 /* Record the fields for profiling. */
3487 if (PROFILE_MODEL_P (current_cpu
))
3489 FLD (in_Rd
) = f_operand2
;
3490 FLD (in_Rs
) = f_operand1
;
3491 FLD (in_h_gr_SI_0
) = 0;
3492 FLD (in_h_gr_SI_1
) = 1;
3493 FLD (in_h_gr_SI_10
) = 10;
3494 FLD (in_h_gr_SI_11
) = 11;
3495 FLD (in_h_gr_SI_12
) = 12;
3496 FLD (in_h_gr_SI_13
) = 13;
3497 FLD (in_h_gr_SI_14
) = 14;
3498 FLD (in_h_gr_SI_15
) = 15;
3499 FLD (in_h_gr_SI_2
) = 2;
3500 FLD (in_h_gr_SI_3
) = 3;
3501 FLD (in_h_gr_SI_4
) = 4;
3502 FLD (in_h_gr_SI_5
) = 5;
3503 FLD (in_h_gr_SI_6
) = 6;
3504 FLD (in_h_gr_SI_7
) = 7;
3505 FLD (in_h_gr_SI_8
) = 8;
3506 FLD (in_h_gr_SI_9
) = 9;
3507 FLD (out_Rs
) = f_operand1
;
3514 extract_sfmt_movem_m_r
:
3516 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3517 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3518 #define FLD(f) abuf->fields.sfmt_movem_m_r.f
3523 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3524 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3525 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3527 /* Record the fields for the semantic handler. */
3528 FLD (f_operand2
) = f_operand2
;
3529 FLD (f_operand1
) = f_operand1
;
3530 FLD (f_memmode
) = f_memmode
;
3531 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));
3533 #if WITH_PROFILE_MODEL_P
3534 /* Record the fields for profiling. */
3535 if (PROFILE_MODEL_P (current_cpu
))
3537 FLD (in_Rd
) = f_operand2
;
3538 FLD (in_Rs
) = f_operand1
;
3539 FLD (out_Rs
) = f_operand1
;
3540 FLD (out_h_gr_SI_0
) = 0;
3541 FLD (out_h_gr_SI_1
) = 1;
3542 FLD (out_h_gr_SI_10
) = 10;
3543 FLD (out_h_gr_SI_11
) = 11;
3544 FLD (out_h_gr_SI_12
) = 12;
3545 FLD (out_h_gr_SI_13
) = 13;
3546 FLD (out_h_gr_SI_14
) = 14;
3547 FLD (out_h_gr_SI_2
) = 2;
3548 FLD (out_h_gr_SI_3
) = 3;
3549 FLD (out_h_gr_SI_4
) = 4;
3550 FLD (out_h_gr_SI_5
) = 5;
3551 FLD (out_h_gr_SI_6
) = 6;
3552 FLD (out_h_gr_SI_7
) = 7;
3553 FLD (out_h_gr_SI_8
) = 8;
3554 FLD (out_h_gr_SI_9
) = 9;
3561 extract_sfmt_movem_m_pc
:
3563 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3564 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3565 #define FLD(f) abuf->fields.sfmt_movem_m_r.f
3569 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3570 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3572 /* Record the fields for the semantic handler. */
3573 FLD (f_operand1
) = f_operand1
;
3574 FLD (f_memmode
) = f_memmode
;
3575 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));
3577 #if WITH_PROFILE_MODEL_P
3578 /* Record the fields for profiling. */
3579 if (PROFILE_MODEL_P (current_cpu
))
3581 FLD (in_Rs
) = f_operand1
;
3582 FLD (out_Rs
) = f_operand1
;
3583 FLD (out_h_gr_SI_0
) = 0;
3584 FLD (out_h_gr_SI_1
) = 1;
3585 FLD (out_h_gr_SI_10
) = 10;
3586 FLD (out_h_gr_SI_11
) = 11;
3587 FLD (out_h_gr_SI_12
) = 12;
3588 FLD (out_h_gr_SI_13
) = 13;
3589 FLD (out_h_gr_SI_14
) = 14;
3590 FLD (out_h_gr_SI_2
) = 2;
3591 FLD (out_h_gr_SI_3
) = 3;
3592 FLD (out_h_gr_SI_4
) = 4;
3593 FLD (out_h_gr_SI_5
) = 5;
3594 FLD (out_h_gr_SI_6
) = 6;
3595 FLD (out_h_gr_SI_7
) = 7;
3596 FLD (out_h_gr_SI_8
) = 8;
3597 FLD (out_h_gr_SI_9
) = 9;
3604 extract_sfmt_add_b_r
:
3606 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3607 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3608 #define FLD(f) abuf->fields.sfmt_add_b_r.f
3612 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3613 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3615 /* Record the fields for the semantic handler. */
3616 FLD (f_operand2
) = f_operand2
;
3617 FLD (f_operand1
) = f_operand1
;
3618 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));
3620 #if WITH_PROFILE_MODEL_P
3621 /* Record the fields for profiling. */
3622 if (PROFILE_MODEL_P (current_cpu
))
3624 FLD (in_Rd
) = f_operand2
;
3625 FLD (in_Rs
) = f_operand1
;
3626 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
3633 extract_sfmt_add_d_r
:
3635 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3636 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3637 #define FLD(f) abuf->fields.sfmt_add_b_r.f
3641 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3642 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3644 /* Record the fields for the semantic handler. */
3645 FLD (f_operand2
) = f_operand2
;
3646 FLD (f_operand1
) = f_operand1
;
3647 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));
3649 #if WITH_PROFILE_MODEL_P
3650 /* Record the fields for profiling. */
3651 if (PROFILE_MODEL_P (current_cpu
))
3653 FLD (in_Rd
) = f_operand2
;
3654 FLD (in_Rs
) = f_operand1
;
3655 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
3662 extract_sfmt_add_m_b_m
:
3664 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3665 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3666 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3671 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3672 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3673 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3675 /* Record the fields for the semantic handler. */
3676 FLD (f_operand2
) = f_operand2
;
3677 FLD (f_operand1
) = f_operand1
;
3678 FLD (f_memmode
) = f_memmode
;
3679 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));
3681 #if WITH_PROFILE_MODEL_P
3682 /* Record the fields for profiling. */
3683 if (PROFILE_MODEL_P (current_cpu
))
3685 FLD (in_Rd
) = f_operand2
;
3686 FLD (in_Rs
) = f_operand1
;
3687 FLD (out_Rs
) = f_operand1
;
3688 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
)));
3695 extract_sfmt_add_m_w_m
:
3697 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3698 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3699 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3704 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3705 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3706 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3708 /* Record the fields for the semantic handler. */
3709 FLD (f_operand2
) = f_operand2
;
3710 FLD (f_operand1
) = f_operand1
;
3711 FLD (f_memmode
) = f_memmode
;
3712 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));
3714 #if WITH_PROFILE_MODEL_P
3715 /* Record the fields for profiling. */
3716 if (PROFILE_MODEL_P (current_cpu
))
3718 FLD (in_Rd
) = f_operand2
;
3719 FLD (in_Rs
) = f_operand1
;
3720 FLD (out_Rs
) = f_operand1
;
3721 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
)));
3728 extract_sfmt_add_m_d_m
:
3730 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3731 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3732 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3737 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3738 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3739 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3741 /* Record the fields for the semantic handler. */
3742 FLD (f_operand2
) = f_operand2
;
3743 FLD (f_operand1
) = f_operand1
;
3744 FLD (f_memmode
) = f_memmode
;
3745 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));
3747 #if WITH_PROFILE_MODEL_P
3748 /* Record the fields for profiling. */
3749 if (PROFILE_MODEL_P (current_cpu
))
3751 FLD (in_Rd
) = f_operand2
;
3752 FLD (in_Rs
) = f_operand1
;
3753 FLD (out_Rs
) = f_operand1
;
3754 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
)));
3761 extract_sfmt_addcbr
:
3763 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3764 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3765 #define FLD(f) abuf->fields.sfmt_addcbr.f
3766 INT f_indir_pc__byte
;
3768 /* Contents of trailing part of insn. */
3771 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3772 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
3773 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3775 /* Record the fields for the semantic handler. */
3776 FLD (f_operand2
) = f_operand2
;
3777 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
3778 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));
3780 #if WITH_PROFILE_MODEL_P
3781 /* Record the fields for profiling. */
3782 if (PROFILE_MODEL_P (current_cpu
))
3784 FLD (in_Rd
) = f_operand2
;
3785 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
3792 extract_sfmt_addcwr
:
3794 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3795 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3796 #define FLD(f) abuf->fields.sfmt_addcwr.f
3797 INT f_indir_pc__word
;
3799 /* Contents of trailing part of insn. */
3802 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3803 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
3804 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3806 /* Record the fields for the semantic handler. */
3807 FLD (f_operand2
) = f_operand2
;
3808 FLD (f_indir_pc__word
) = f_indir_pc__word
;
3809 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));
3811 #if WITH_PROFILE_MODEL_P
3812 /* Record the fields for profiling. */
3813 if (PROFILE_MODEL_P (current_cpu
))
3815 FLD (in_Rd
) = f_operand2
;
3816 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
3823 extract_sfmt_addcdr
:
3825 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3826 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3827 #define FLD(f) abuf->fields.sfmt_addcdr.f
3828 INT f_indir_pc__dword
;
3830 /* Contents of trailing part of insn. */
3833 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3834 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
3835 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3837 /* Record the fields for the semantic handler. */
3838 FLD (f_operand2
) = f_operand2
;
3839 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
3840 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));
3842 #if WITH_PROFILE_MODEL_P
3843 /* Record the fields for profiling. */
3844 if (PROFILE_MODEL_P (current_cpu
))
3846 FLD (in_Rd
) = f_operand2
;
3847 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
3854 extract_sfmt_addcpc
:
3856 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3857 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3858 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
3859 INT f_indir_pc__dword
;
3860 /* Contents of trailing part of insn. */
3863 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3864 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
3866 /* Record the fields for the semantic handler. */
3867 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
3868 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_addcpc", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword
, (char *) 0));
3870 #if WITH_PROFILE_MODEL_P
3871 /* Record the fields for profiling. */
3872 if (PROFILE_MODEL_P (current_cpu
))
3880 extract_sfmt_adds_m_b_m
:
3882 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3883 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3884 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3889 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3890 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3891 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3893 /* Record the fields for the semantic handler. */
3894 FLD (f_operand2
) = f_operand2
;
3895 FLD (f_operand1
) = f_operand1
;
3896 FLD (f_memmode
) = f_memmode
;
3897 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));
3899 #if WITH_PROFILE_MODEL_P
3900 /* Record the fields for profiling. */
3901 if (PROFILE_MODEL_P (current_cpu
))
3903 FLD (in_Rd
) = f_operand2
;
3904 FLD (in_Rs
) = f_operand1
;
3905 FLD (out_Rs
) = f_operand1
;
3906 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
)));
3913 extract_sfmt_adds_m_w_m
:
3915 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3916 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3917 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3922 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3923 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3924 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3926 /* Record the fields for the semantic handler. */
3927 FLD (f_operand2
) = f_operand2
;
3928 FLD (f_operand1
) = f_operand1
;
3929 FLD (f_memmode
) = f_memmode
;
3930 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));
3932 #if WITH_PROFILE_MODEL_P
3933 /* Record the fields for profiling. */
3934 if (PROFILE_MODEL_P (current_cpu
))
3936 FLD (in_Rd
) = f_operand2
;
3937 FLD (in_Rs
) = f_operand1
;
3938 FLD (out_Rs
) = f_operand1
;
3939 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
)));
3946 extract_sfmt_addscbr
:
3948 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3949 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3950 #define FLD(f) abuf->fields.sfmt_addcbr.f
3951 INT f_indir_pc__byte
;
3953 /* Contents of trailing part of insn. */
3956 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3957 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
3958 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3960 /* Record the fields for the semantic handler. */
3961 FLD (f_operand2
) = f_operand2
;
3962 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
3963 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));
3965 #if WITH_PROFILE_MODEL_P
3966 /* Record the fields for profiling. */
3967 if (PROFILE_MODEL_P (current_cpu
))
3969 FLD (in_Rd
) = f_operand2
;
3970 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
3977 extract_sfmt_addscwr
:
3979 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3980 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3981 #define FLD(f) abuf->fields.sfmt_addcwr.f
3982 INT f_indir_pc__word
;
3984 /* Contents of trailing part of insn. */
3987 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3988 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
3989 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3991 /* Record the fields for the semantic handler. */
3992 FLD (f_operand2
) = f_operand2
;
3993 FLD (f_indir_pc__word
) = f_indir_pc__word
;
3994 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));
3996 #if WITH_PROFILE_MODEL_P
3997 /* Record the fields for profiling. */
3998 if (PROFILE_MODEL_P (current_cpu
))
4000 FLD (in_Rd
) = f_operand2
;
4001 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
4008 extract_sfmt_addspcpc
:
4010 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4011 #define FLD(f) abuf->fields.sfmt_empty.f
4014 /* Record the fields for the semantic handler. */
4015 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_addspcpc", (char *) 0));
4017 #if WITH_PROFILE_MODEL_P
4018 /* Record the fields for profiling. */
4019 if (PROFILE_MODEL_P (current_cpu
))
4027 extract_sfmt_addi_b_r
:
4029 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4030 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4031 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
4035 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4036 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4038 /* Record the fields for the semantic handler. */
4039 FLD (f_operand2
) = f_operand2
;
4040 FLD (f_operand1
) = f_operand1
;
4041 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));
4043 #if WITH_PROFILE_MODEL_P
4044 /* Record the fields for profiling. */
4045 if (PROFILE_MODEL_P (current_cpu
))
4047 FLD (in_Rd
) = f_operand2
;
4048 FLD (in_Rs
) = f_operand1
;
4049 FLD (out_Rs
) = f_operand1
;
4056 extract_sfmt_neg_b_r
:
4058 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4059 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4060 #define FLD(f) abuf->fields.sfmt_add_b_r.f
4064 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4065 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4067 /* Record the fields for the semantic handler. */
4068 FLD (f_operand1
) = f_operand1
;
4069 FLD (f_operand2
) = f_operand2
;
4070 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));
4072 #if WITH_PROFILE_MODEL_P
4073 /* Record the fields for profiling. */
4074 if (PROFILE_MODEL_P (current_cpu
))
4076 FLD (in_Rs
) = f_operand1
;
4077 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
4084 extract_sfmt_neg_d_r
:
4086 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4087 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4088 #define FLD(f) abuf->fields.sfmt_add_b_r.f
4092 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4093 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4095 /* Record the fields for the semantic handler. */
4096 FLD (f_operand1
) = f_operand1
;
4097 FLD (f_operand2
) = f_operand2
;
4098 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));
4100 #if WITH_PROFILE_MODEL_P
4101 /* Record the fields for profiling. */
4102 if (PROFILE_MODEL_P (current_cpu
))
4104 FLD (in_Rs
) = f_operand1
;
4105 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
4112 extract_sfmt_test_m_b_m
:
4114 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4115 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4116 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
4120 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4121 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4123 /* Record the fields for the semantic handler. */
4124 FLD (f_operand1
) = f_operand1
;
4125 FLD (f_memmode
) = f_memmode
;
4126 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));
4128 #if WITH_PROFILE_MODEL_P
4129 /* Record the fields for profiling. */
4130 if (PROFILE_MODEL_P (current_cpu
))
4132 FLD (in_Rs
) = f_operand1
;
4133 FLD (out_Rs
) = f_operand1
;
4140 extract_sfmt_test_m_w_m
:
4142 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4143 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4144 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
4148 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4149 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4151 /* Record the fields for the semantic handler. */
4152 FLD (f_operand1
) = f_operand1
;
4153 FLD (f_memmode
) = f_memmode
;
4154 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));
4156 #if WITH_PROFILE_MODEL_P
4157 /* Record the fields for profiling. */
4158 if (PROFILE_MODEL_P (current_cpu
))
4160 FLD (in_Rs
) = f_operand1
;
4161 FLD (out_Rs
) = f_operand1
;
4168 extract_sfmt_test_m_d_m
:
4170 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4171 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4172 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
4176 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4177 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4179 /* Record the fields for the semantic handler. */
4180 FLD (f_operand1
) = f_operand1
;
4181 FLD (f_memmode
) = f_memmode
;
4182 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));
4184 #if WITH_PROFILE_MODEL_P
4185 /* Record the fields for profiling. */
4186 if (PROFILE_MODEL_P (current_cpu
))
4188 FLD (in_Rs
) = f_operand1
;
4189 FLD (out_Rs
) = f_operand1
;
4196 extract_sfmt_move_r_m_b_m
:
4198 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4199 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4200 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
4205 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4206 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4207 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4209 /* Record the fields for the semantic handler. */
4210 FLD (f_operand2
) = f_operand2
;
4211 FLD (f_operand1
) = f_operand1
;
4212 FLD (f_memmode
) = f_memmode
;
4213 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));
4215 #if WITH_PROFILE_MODEL_P
4216 /* Record the fields for profiling. */
4217 if (PROFILE_MODEL_P (current_cpu
))
4219 FLD (in_Rd
) = f_operand2
;
4220 FLD (in_Rs
) = f_operand1
;
4221 FLD (out_Rs
) = f_operand1
;
4228 extract_sfmt_move_r_m_w_m
:
4230 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4231 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4232 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
4237 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4238 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4239 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4241 /* Record the fields for the semantic handler. */
4242 FLD (f_operand2
) = f_operand2
;
4243 FLD (f_operand1
) = f_operand1
;
4244 FLD (f_memmode
) = f_memmode
;
4245 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));
4247 #if WITH_PROFILE_MODEL_P
4248 /* Record the fields for profiling. */
4249 if (PROFILE_MODEL_P (current_cpu
))
4251 FLD (in_Rd
) = f_operand2
;
4252 FLD (in_Rs
) = f_operand1
;
4253 FLD (out_Rs
) = f_operand1
;
4260 extract_sfmt_move_r_m_d_m
:
4262 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4263 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4264 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
4269 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4270 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4271 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4273 /* Record the fields for the semantic handler. */
4274 FLD (f_operand2
) = f_operand2
;
4275 FLD (f_operand1
) = f_operand1
;
4276 FLD (f_memmode
) = f_memmode
;
4277 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));
4279 #if WITH_PROFILE_MODEL_P
4280 /* Record the fields for profiling. */
4281 if (PROFILE_MODEL_P (current_cpu
))
4283 FLD (in_Rd
) = f_operand2
;
4284 FLD (in_Rs
) = f_operand1
;
4285 FLD (out_Rs
) = f_operand1
;
4292 extract_sfmt_muls_b
:
4294 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4295 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4296 #define FLD(f) abuf->fields.sfmt_muls_b.f
4300 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4301 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4303 /* Record the fields for the semantic handler. */
4304 FLD (f_operand2
) = f_operand2
;
4305 FLD (f_operand1
) = f_operand1
;
4306 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));
4308 #if WITH_PROFILE_MODEL_P
4309 /* Record the fields for profiling. */
4310 if (PROFILE_MODEL_P (current_cpu
))
4312 FLD (in_Rd
) = f_operand2
;
4313 FLD (in_Rs
) = f_operand1
;
4314 FLD (out_Rd
) = f_operand2
;
4315 FLD (out_h_sr_SI_7
) = 7;
4324 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4325 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4326 #define FLD(f) abuf->fields.sfmt_muls_b.f
4330 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4331 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4333 /* Record the fields for the semantic handler. */
4334 FLD (f_operand2
) = f_operand2
;
4335 FLD (f_operand1
) = f_operand1
;
4336 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));
4338 #if WITH_PROFILE_MODEL_P
4339 /* Record the fields for profiling. */
4340 if (PROFILE_MODEL_P (current_cpu
))
4342 FLD (in_Rd
) = f_operand2
;
4343 FLD (in_Rs
) = f_operand1
;
4344 FLD (out_Rd
) = f_operand2
;
4353 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4354 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4355 #define FLD(f) abuf->fields.sfmt_muls_b.f
4359 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4360 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4362 /* Record the fields for the semantic handler. */
4363 FLD (f_operand2
) = f_operand2
;
4364 FLD (f_operand1
) = f_operand1
;
4365 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));
4367 #if WITH_PROFILE_MODEL_P
4368 /* Record the fields for profiling. */
4369 if (PROFILE_MODEL_P (current_cpu
))
4371 FLD (in_Rd
) = f_operand2
;
4372 FLD (in_Rs
) = f_operand1
;
4373 FLD (out_Rd
) = f_operand2
;
4380 extract_sfmt_and_b_r
:
4382 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4383 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4384 #define FLD(f) abuf->fields.sfmt_add_b_r.f
4388 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4389 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4391 /* Record the fields for the semantic handler. */
4392 FLD (f_operand2
) = f_operand2
;
4393 FLD (f_operand1
) = f_operand1
;
4394 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));
4396 #if WITH_PROFILE_MODEL_P
4397 /* Record the fields for profiling. */
4398 if (PROFILE_MODEL_P (current_cpu
))
4400 FLD (in_Rd
) = f_operand2
;
4401 FLD (in_Rs
) = f_operand1
;
4402 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
4409 extract_sfmt_and_d_r
:
4411 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4412 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4413 #define FLD(f) abuf->fields.sfmt_add_b_r.f
4417 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4418 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4420 /* Record the fields for the semantic handler. */
4421 FLD (f_operand2
) = f_operand2
;
4422 FLD (f_operand1
) = f_operand1
;
4423 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));
4425 #if WITH_PROFILE_MODEL_P
4426 /* Record the fields for profiling. */
4427 if (PROFILE_MODEL_P (current_cpu
))
4429 FLD (in_Rd
) = f_operand2
;
4430 FLD (in_Rs
) = f_operand1
;
4431 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
4438 extract_sfmt_and_m_b_m
:
4440 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4441 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4442 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4447 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4448 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4449 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4451 /* Record the fields for the semantic handler. */
4452 FLD (f_operand2
) = f_operand2
;
4453 FLD (f_operand1
) = f_operand1
;
4454 FLD (f_memmode
) = f_memmode
;
4455 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));
4457 #if WITH_PROFILE_MODEL_P
4458 /* Record the fields for profiling. */
4459 if (PROFILE_MODEL_P (current_cpu
))
4461 FLD (in_Rd
) = f_operand2
;
4462 FLD (in_Rs
) = f_operand1
;
4463 FLD (out_Rs
) = f_operand1
;
4464 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
)));
4471 extract_sfmt_and_m_w_m
:
4473 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4474 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4475 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4480 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4481 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4482 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4484 /* Record the fields for the semantic handler. */
4485 FLD (f_operand2
) = f_operand2
;
4486 FLD (f_operand1
) = f_operand1
;
4487 FLD (f_memmode
) = f_memmode
;
4488 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));
4490 #if WITH_PROFILE_MODEL_P
4491 /* Record the fields for profiling. */
4492 if (PROFILE_MODEL_P (current_cpu
))
4494 FLD (in_Rd
) = f_operand2
;
4495 FLD (in_Rs
) = f_operand1
;
4496 FLD (out_Rs
) = f_operand1
;
4497 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
)));
4504 extract_sfmt_and_m_d_m
:
4506 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4507 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4508 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4513 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4514 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4515 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4517 /* Record the fields for the semantic handler. */
4518 FLD (f_operand2
) = f_operand2
;
4519 FLD (f_operand1
) = f_operand1
;
4520 FLD (f_memmode
) = f_memmode
;
4521 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));
4523 #if WITH_PROFILE_MODEL_P
4524 /* Record the fields for profiling. */
4525 if (PROFILE_MODEL_P (current_cpu
))
4527 FLD (in_Rd
) = f_operand2
;
4528 FLD (in_Rs
) = f_operand1
;
4529 FLD (out_Rs
) = f_operand1
;
4530 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
)));
4537 extract_sfmt_andcbr
:
4539 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4540 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4541 #define FLD(f) abuf->fields.sfmt_addcbr.f
4542 INT f_indir_pc__byte
;
4544 /* Contents of trailing part of insn. */
4547 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4548 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
4549 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4551 /* Record the fields for the semantic handler. */
4552 FLD (f_operand2
) = f_operand2
;
4553 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
4554 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));
4556 #if WITH_PROFILE_MODEL_P
4557 /* Record the fields for profiling. */
4558 if (PROFILE_MODEL_P (current_cpu
))
4560 FLD (in_Rd
) = f_operand2
;
4561 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
4568 extract_sfmt_andcwr
:
4570 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4571 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4572 #define FLD(f) abuf->fields.sfmt_addcwr.f
4573 INT f_indir_pc__word
;
4575 /* Contents of trailing part of insn. */
4578 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4579 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
4580 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4582 /* Record the fields for the semantic handler. */
4583 FLD (f_operand2
) = f_operand2
;
4584 FLD (f_indir_pc__word
) = f_indir_pc__word
;
4585 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));
4587 #if WITH_PROFILE_MODEL_P
4588 /* Record the fields for profiling. */
4589 if (PROFILE_MODEL_P (current_cpu
))
4591 FLD (in_Rd
) = f_operand2
;
4592 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
4599 extract_sfmt_andcdr
:
4601 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4602 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4603 #define FLD(f) abuf->fields.sfmt_addcdr.f
4604 INT f_indir_pc__dword
;
4606 /* Contents of trailing part of insn. */
4609 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4610 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
4611 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4613 /* Record the fields for the semantic handler. */
4614 FLD (f_operand2
) = f_operand2
;
4615 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
4616 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));
4618 #if WITH_PROFILE_MODEL_P
4619 /* Record the fields for profiling. */
4620 if (PROFILE_MODEL_P (current_cpu
))
4622 FLD (in_Rd
) = f_operand2
;
4623 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
4632 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4633 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4634 #define FLD(f) abuf->fields.sfmt_andq.f
4638 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4639 f_s6
= EXTRACT_LSB0_SINT (insn
, 16, 5, 6);
4641 /* Record the fields for the semantic handler. */
4642 FLD (f_operand2
) = f_operand2
;
4644 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));
4646 #if WITH_PROFILE_MODEL_P
4647 /* Record the fields for profiling. */
4648 if (PROFILE_MODEL_P (current_cpu
))
4650 FLD (in_Rd
) = f_operand2
;
4651 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
4660 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4661 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4662 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
4666 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4667 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4669 /* Record the fields for the semantic handler. */
4670 FLD (f_operand1
) = f_operand1
;
4671 FLD (f_operand2
) = f_operand2
;
4672 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));
4674 #if WITH_PROFILE_MODEL_P
4675 /* Record the fields for profiling. */
4676 if (PROFILE_MODEL_P (current_cpu
))
4678 FLD (in_Rs
) = f_operand1
;
4679 FLD (out_Rs
) = f_operand1
;
4688 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4689 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4690 #define FLD(f) abuf->fields.sfmt_asrq.f
4694 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4695 f_u5
= EXTRACT_LSB0_UINT (insn
, 16, 4, 5);
4697 /* Record the fields for the semantic handler. */
4698 FLD (f_operand2
) = f_operand2
;
4700 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));
4702 #if WITH_PROFILE_MODEL_P
4703 /* Record the fields for profiling. */
4704 if (PROFILE_MODEL_P (current_cpu
))
4706 FLD (in_Rd
) = f_operand2
;
4707 FLD (out_Rd
) = f_operand2
;
4714 extract_sfmt_lsrr_b_r
:
4716 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4717 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4718 #define FLD(f) abuf->fields.sfmt_add_b_r.f
4722 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4723 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4725 /* Record the fields for the semantic handler. */
4726 FLD (f_operand2
) = f_operand2
;
4727 FLD (f_operand1
) = f_operand1
;
4728 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));
4730 #if WITH_PROFILE_MODEL_P
4731 /* Record the fields for profiling. */
4732 if (PROFILE_MODEL_P (current_cpu
))
4734 FLD (in_Rd
) = f_operand2
;
4735 FLD (in_Rs
) = f_operand1
;
4736 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
4743 extract_sfmt_lsrr_d_r
:
4745 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4746 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4747 #define FLD(f) abuf->fields.sfmt_add_b_r.f
4751 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4752 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4754 /* Record the fields for the semantic handler. */
4755 FLD (f_operand2
) = f_operand2
;
4756 FLD (f_operand1
) = f_operand1
;
4757 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));
4759 #if WITH_PROFILE_MODEL_P
4760 /* Record the fields for profiling. */
4761 if (PROFILE_MODEL_P (current_cpu
))
4763 FLD (in_Rd
) = f_operand2
;
4764 FLD (in_Rs
) = f_operand1
;
4765 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
4774 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4775 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4776 #define FLD(f) abuf->fields.sfmt_add_b_r.f
4780 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4781 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4783 /* Record the fields for the semantic handler. */
4784 FLD (f_operand2
) = f_operand2
;
4785 FLD (f_operand1
) = f_operand1
;
4786 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));
4788 #if WITH_PROFILE_MODEL_P
4789 /* Record the fields for profiling. */
4790 if (PROFILE_MODEL_P (current_cpu
))
4792 FLD (in_Rd
) = f_operand2
;
4793 FLD (in_Rs
) = f_operand1
;
4802 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4803 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4804 #define FLD(f) abuf->fields.sfmt_asrq.f
4808 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4809 f_u5
= EXTRACT_LSB0_UINT (insn
, 16, 4, 5);
4811 /* Record the fields for the semantic handler. */
4812 FLD (f_operand2
) = f_operand2
;
4814 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));
4816 #if WITH_PROFILE_MODEL_P
4817 /* Record the fields for profiling. */
4818 if (PROFILE_MODEL_P (current_cpu
))
4820 FLD (in_Rd
) = f_operand2
;
4829 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4830 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4831 #define FLD(f) abuf->fields.sfmt_setf.f
4836 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4837 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4838 f_dstsrc
= ((((f_operand1
) | (((f_operand2
) << (4))))) & (255));
4840 /* Record the fields for the semantic handler. */
4841 FLD (f_dstsrc
) = f_dstsrc
;
4842 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_setf", "f_dstsrc 0x%x", 'x', f_dstsrc
, (char *) 0));
4850 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4851 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4852 #define FLD(f) abuf->fields.sfmt_bcc_b.f
4858 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4859 f_disp9_lo
= EXTRACT_LSB0_UINT (insn
, 16, 7, 7);
4860 f_disp9_hi
= EXTRACT_LSB0_SINT (insn
, 16, 0, 1);
4864 tmp_abslo
= ((f_disp9_lo
) << (1));
4865 tmp_absval
= ((((((f_disp9_hi
) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo
));
4866 f_disp9
= ((((pc
) + (tmp_absval
))) + (((GET_H_V32_NON_V32 ()) ? (0) : (2))));
4869 /* Record the fields for the semantic handler. */
4870 FLD (f_operand2
) = f_operand2
;
4871 FLD (i_o_pcrel
) = f_disp9
;
4872 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));
4874 #if WITH_PROFILE_MODEL_P
4875 /* Record the fields for profiling. */
4876 if (PROFILE_MODEL_P (current_cpu
))
4886 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4887 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4888 #define FLD(f) abuf->fields.sfmt_bcc_b.f
4893 f_disp9_lo
= EXTRACT_LSB0_UINT (insn
, 16, 7, 7);
4894 f_disp9_hi
= EXTRACT_LSB0_SINT (insn
, 16, 0, 1);
4898 tmp_abslo
= ((f_disp9_lo
) << (1));
4899 tmp_absval
= ((((((f_disp9_hi
) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo
));
4900 f_disp9
= ((((pc
) + (tmp_absval
))) + (((GET_H_V32_NON_V32 ()) ? (0) : (2))));
4903 /* Record the fields for the semantic handler. */
4904 FLD (i_o_pcrel
) = f_disp9
;
4905 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ba_b", "o_pcrel 0x%x", 'x', f_disp9
, (char *) 0));
4907 #if WITH_PROFILE_MODEL_P
4908 /* Record the fields for profiling. */
4909 if (PROFILE_MODEL_P (current_cpu
))
4919 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4920 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4921 #define FLD(f) abuf->fields.sfmt_bcc_w.f
4922 SI f_indir_pc__word_pcrel
;
4924 /* Contents of trailing part of insn. */
4927 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4928 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))))));
4929 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4931 /* Record the fields for the semantic handler. */
4932 FLD (f_operand2
) = f_operand2
;
4933 FLD (i_o_word_pcrel
) = f_indir_pc__word_pcrel
;
4934 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));
4936 #if WITH_PROFILE_MODEL_P
4937 /* Record the fields for profiling. */
4938 if (PROFILE_MODEL_P (current_cpu
))
4948 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4949 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4950 #define FLD(f) abuf->fields.sfmt_bcc_w.f
4951 SI f_indir_pc__word_pcrel
;
4952 /* Contents of trailing part of insn. */
4955 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4956 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))))));
4958 /* Record the fields for the semantic handler. */
4959 FLD (i_o_word_pcrel
) = f_indir_pc__word_pcrel
;
4960 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));
4962 #if WITH_PROFILE_MODEL_P
4963 /* Record the fields for profiling. */
4964 if (PROFILE_MODEL_P (current_cpu
))
4972 extract_sfmt_jump_r
:
4974 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4975 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4976 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
4980 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4981 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4983 /* Record the fields for the semantic handler. */
4984 FLD (f_operand1
) = f_operand1
;
4985 FLD (f_operand2
) = f_operand2
;
4986 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));
4988 #if WITH_PROFILE_MODEL_P
4989 /* Record the fields for profiling. */
4990 if (PROFILE_MODEL_P (current_cpu
))
4992 FLD (in_Rs
) = f_operand1
;
4993 FLD (out_Pd
) = f_operand2
;
5000 extract_sfmt_jump_m
:
5002 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5003 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
5004 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
5009 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5010 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
5011 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5013 /* Record the fields for the semantic handler. */
5014 FLD (f_operand1
) = f_operand1
;
5015 FLD (f_memmode
) = f_memmode
;
5016 FLD (f_operand2
) = f_operand2
;
5017 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));
5019 #if WITH_PROFILE_MODEL_P
5020 /* Record the fields for profiling. */
5021 if (PROFILE_MODEL_P (current_cpu
))
5023 FLD (in_Rs
) = f_operand1
;
5024 FLD (out_Pd
) = f_operand2
;
5025 FLD (out_Rs
) = f_operand1
;
5032 extract_sfmt_jump_c
:
5034 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5035 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
5036 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
5037 INT f_indir_pc__dword
;
5039 /* Contents of trailing part of insn. */
5042 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
5043 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
5044 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5046 /* Record the fields for the semantic handler. */
5047 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
5048 FLD (f_operand2
) = f_operand2
;
5049 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));
5051 #if WITH_PROFILE_MODEL_P
5052 /* Record the fields for profiling. */
5053 if (PROFILE_MODEL_P (current_cpu
))
5055 FLD (out_Pd
) = f_operand2
;
5064 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5065 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
5066 #define FLD(f) abuf->fields.sfmt_break.f
5069 f_u4
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5071 /* Record the fields for the semantic handler. */
5073 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_break", "f_u4 0x%x", 'x', f_u4
, (char *) 0));
5075 #if WITH_PROFILE_MODEL_P
5076 /* Record the fields for profiling. */
5077 if (PROFILE_MODEL_P (current_cpu
))
5085 extract_sfmt_bound_m_b_m
:
5087 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5088 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
5089 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
5094 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5095 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
5096 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5098 /* Record the fields for the semantic handler. */
5099 FLD (f_operand2
) = f_operand2
;
5100 FLD (f_operand1
) = f_operand1
;
5101 FLD (f_memmode
) = f_memmode
;
5102 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));
5104 #if WITH_PROFILE_MODEL_P
5105 /* Record the fields for profiling. */
5106 if (PROFILE_MODEL_P (current_cpu
))
5108 FLD (in_Rd
) = f_operand2
;
5109 FLD (in_Rs
) = f_operand1
;
5110 FLD (out_Rd
) = f_operand2
;
5111 FLD (out_Rs
) = f_operand1
;
5118 extract_sfmt_bound_m_w_m
:
5120 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5121 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
5122 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
5127 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5128 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
5129 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5131 /* Record the fields for the semantic handler. */
5132 FLD (f_operand2
) = f_operand2
;
5133 FLD (f_operand1
) = f_operand1
;
5134 FLD (f_memmode
) = f_memmode
;
5135 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));
5137 #if WITH_PROFILE_MODEL_P
5138 /* Record the fields for profiling. */
5139 if (PROFILE_MODEL_P (current_cpu
))
5141 FLD (in_Rd
) = f_operand2
;
5142 FLD (in_Rs
) = f_operand1
;
5143 FLD (out_Rd
) = f_operand2
;
5144 FLD (out_Rs
) = f_operand1
;
5151 extract_sfmt_bound_m_d_m
:
5153 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5154 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
5155 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
5160 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5161 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
5162 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5164 /* Record the fields for the semantic handler. */
5165 FLD (f_operand2
) = f_operand2
;
5166 FLD (f_operand1
) = f_operand1
;
5167 FLD (f_memmode
) = f_memmode
;
5168 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));
5170 #if WITH_PROFILE_MODEL_P
5171 /* Record the fields for profiling. */
5172 if (PROFILE_MODEL_P (current_cpu
))
5174 FLD (in_Rd
) = f_operand2
;
5175 FLD (in_Rs
) = f_operand1
;
5176 FLD (out_Rd
) = f_operand2
;
5177 FLD (out_Rs
) = f_operand1
;
5184 extract_sfmt_bound_cb
:
5186 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5187 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
5188 #define FLD(f) abuf->fields.sfmt_bound_cb.f
5189 INT f_indir_pc__byte
;
5191 /* Contents of trailing part of insn. */
5194 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
5195 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
5196 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5198 /* Record the fields for the semantic handler. */
5199 FLD (f_operand2
) = f_operand2
;
5200 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
5201 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));
5203 #if WITH_PROFILE_MODEL_P
5204 /* Record the fields for profiling. */
5205 if (PROFILE_MODEL_P (current_cpu
))
5207 FLD (in_Rd
) = f_operand2
;
5208 FLD (out_Rd
) = f_operand2
;
5215 extract_sfmt_bound_cw
:
5217 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5218 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
5219 #define FLD(f) abuf->fields.sfmt_bound_cw.f
5220 INT f_indir_pc__word
;
5222 /* Contents of trailing part of insn. */
5225 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
5226 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
5227 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5229 /* Record the fields for the semantic handler. */
5230 FLD (f_operand2
) = f_operand2
;
5231 FLD (f_indir_pc__word
) = f_indir_pc__word
;
5232 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));
5234 #if WITH_PROFILE_MODEL_P
5235 /* Record the fields for profiling. */
5236 if (PROFILE_MODEL_P (current_cpu
))
5238 FLD (in_Rd
) = f_operand2
;
5239 FLD (out_Rd
) = f_operand2
;
5246 extract_sfmt_bound_cd
:
5248 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5249 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
5250 #define FLD(f) abuf->fields.sfmt_bound_cd.f
5251 INT f_indir_pc__dword
;
5253 /* Contents of trailing part of insn. */
5256 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
5257 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
5258 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5260 /* Record the fields for the semantic handler. */
5261 FLD (f_operand2
) = f_operand2
;
5262 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
5263 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));
5265 #if WITH_PROFILE_MODEL_P
5266 /* Record the fields for profiling. */
5267 if (PROFILE_MODEL_P (current_cpu
))
5269 FLD (in_Rd
) = f_operand2
;
5270 FLD (out_Rd
) = f_operand2
;
5279 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5280 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
5281 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
5285 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5286 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5288 /* Record the fields for the semantic handler. */
5289 FLD (f_operand2
) = f_operand2
;
5290 FLD (f_operand1
) = f_operand1
;
5291 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));
5293 #if WITH_PROFILE_MODEL_P
5294 /* Record the fields for profiling. */
5295 if (PROFILE_MODEL_P (current_cpu
))
5297 FLD (out_Rs
) = f_operand1
;
5306 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5307 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
5308 #define FLD(f) abuf->fields.sfmt_addoq.f
5312 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5313 f_s8
= EXTRACT_LSB0_SINT (insn
, 16, 7, 8);
5315 /* Record the fields for the semantic handler. */
5316 FLD (f_operand2
) = f_operand2
;
5318 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));
5320 #if WITH_PROFILE_MODEL_P
5321 /* Record the fields for profiling. */
5322 if (PROFILE_MODEL_P (current_cpu
))
5324 FLD (in_Rd
) = f_operand2
;
5331 extract_sfmt_bdapqpc
:
5333 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5334 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
5335 #define FLD(f) abuf->fields.sfmt_addoq.f
5338 f_s8
= EXTRACT_LSB0_SINT (insn
, 16, 7, 8);
5340 /* Record the fields for the semantic handler. */
5342 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_bdapqpc", "f_s8 0x%x", 'x', f_s8
, (char *) 0));
5344 #if WITH_PROFILE_MODEL_P
5345 /* Record the fields for profiling. */
5346 if (PROFILE_MODEL_P (current_cpu
))
5354 extract_sfmt_bdap_32_pc
:
5356 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5357 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
5358 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
5359 INT f_indir_pc__dword
;
5360 /* Contents of trailing part of insn. */
5363 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
5364 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
5366 /* Record the fields for the semantic handler. */
5367 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
5368 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));
5370 #if WITH_PROFILE_MODEL_P
5371 /* Record the fields for profiling. */
5372 if (PROFILE_MODEL_P (current_cpu
))
5380 extract_sfmt_move_m_pcplus_p0
:
5382 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5383 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
5384 #define FLD(f) abuf->fields.sfmt_move_m_spplus_p8.f
5387 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
5389 /* Record the fields for the semantic handler. */
5390 FLD (f_memmode
) = f_memmode
;
5391 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_move_m_pcplus_p0", "f_memmode 0x%x", 'x', f_memmode
, (char *) 0));
5393 #if WITH_PROFILE_MODEL_P
5394 /* Record the fields for profiling. */
5395 if (PROFILE_MODEL_P (current_cpu
))
5403 extract_sfmt_move_m_spplus_p8
:
5405 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5406 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
5407 #define FLD(f) abuf->fields.sfmt_move_m_spplus_p8.f
5410 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
5412 /* Record the fields for the semantic handler. */
5413 FLD (f_memmode
) = f_memmode
;
5414 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_move_m_spplus_p8", "f_memmode 0x%x", 'x', f_memmode
, (char *) 0));
5416 #if WITH_PROFILE_MODEL_P
5417 /* Record the fields for profiling. */
5418 if (PROFILE_MODEL_P (current_cpu
))
5420 FLD (in_h_gr_SI_14
) = 14;
5421 FLD (out_h_gr_SI_14
) = 14;
5428 extract_sfmt_addo_m_b_m
:
5430 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5431 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
5432 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
5437 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5438 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
5439 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5441 /* Record the fields for the semantic handler. */
5442 FLD (f_operand2
) = f_operand2
;
5443 FLD (f_operand1
) = f_operand1
;
5444 FLD (f_memmode
) = f_memmode
;
5445 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));
5447 #if WITH_PROFILE_MODEL_P
5448 /* Record the fields for profiling. */
5449 if (PROFILE_MODEL_P (current_cpu
))
5451 FLD (in_Rd
) = f_operand2
;
5452 FLD (in_Rs
) = f_operand1
;
5453 FLD (out_Rs
) = f_operand1
;
5460 extract_sfmt_addo_m_w_m
:
5462 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5463 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
5464 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
5469 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5470 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
5471 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5473 /* Record the fields for the semantic handler. */
5474 FLD (f_operand2
) = f_operand2
;
5475 FLD (f_operand1
) = f_operand1
;
5476 FLD (f_memmode
) = f_memmode
;
5477 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));
5479 #if WITH_PROFILE_MODEL_P
5480 /* Record the fields for profiling. */
5481 if (PROFILE_MODEL_P (current_cpu
))
5483 FLD (in_Rd
) = f_operand2
;
5484 FLD (in_Rs
) = f_operand1
;
5485 FLD (out_Rs
) = f_operand1
;
5492 extract_sfmt_addo_m_d_m
:
5494 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5495 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
5496 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
5501 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5502 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
5503 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5505 /* Record the fields for the semantic handler. */
5506 FLD (f_operand2
) = f_operand2
;
5507 FLD (f_operand1
) = f_operand1
;
5508 FLD (f_memmode
) = f_memmode
;
5509 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));
5511 #if WITH_PROFILE_MODEL_P
5512 /* Record the fields for profiling. */
5513 if (PROFILE_MODEL_P (current_cpu
))
5515 FLD (in_Rd
) = f_operand2
;
5516 FLD (in_Rs
) = f_operand1
;
5517 FLD (out_Rs
) = f_operand1
;
5524 extract_sfmt_addo_cb
:
5526 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5527 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
5528 #define FLD(f) abuf->fields.sfmt_bound_cb.f
5529 INT f_indir_pc__byte
;
5531 /* Contents of trailing part of insn. */
5534 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
5535 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
5536 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5538 /* Record the fields for the semantic handler. */
5539 FLD (f_operand2
) = f_operand2
;
5540 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
5541 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));
5543 #if WITH_PROFILE_MODEL_P
5544 /* Record the fields for profiling. */
5545 if (PROFILE_MODEL_P (current_cpu
))
5547 FLD (in_Rd
) = f_operand2
;
5554 extract_sfmt_addo_cw
:
5556 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5557 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
5558 #define FLD(f) abuf->fields.sfmt_bound_cw.f
5559 INT f_indir_pc__word
;
5561 /* Contents of trailing part of insn. */
5564 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
5565 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
5566 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5568 /* Record the fields for the semantic handler. */
5569 FLD (f_operand2
) = f_operand2
;
5570 FLD (f_indir_pc__word
) = f_indir_pc__word
;
5571 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));
5573 #if WITH_PROFILE_MODEL_P
5574 /* Record the fields for profiling. */
5575 if (PROFILE_MODEL_P (current_cpu
))
5577 FLD (in_Rd
) = f_operand2
;
5584 extract_sfmt_addo_cd
:
5586 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5587 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
5588 #define FLD(f) abuf->fields.sfmt_bound_cd.f
5589 INT f_indir_pc__dword
;
5591 /* Contents of trailing part of insn. */
5594 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
5595 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
5596 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5598 /* Record the fields for the semantic handler. */
5599 FLD (f_operand2
) = f_operand2
;
5600 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
5601 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));
5603 #if WITH_PROFILE_MODEL_P
5604 /* Record the fields for profiling. */
5605 if (PROFILE_MODEL_P (current_cpu
))
5607 FLD (in_Rd
) = f_operand2
;
5616 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5617 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
5618 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
5622 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
5623 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5625 /* Record the fields for the semantic handler. */
5626 FLD (f_operand1
) = f_operand1
;
5627 FLD (f_memmode
) = f_memmode
;
5628 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));
5630 #if WITH_PROFILE_MODEL_P
5631 /* Record the fields for profiling. */
5632 if (PROFILE_MODEL_P (current_cpu
))
5634 FLD (in_Rs
) = f_operand1
;
5635 FLD (out_Rs
) = f_operand1
;
5644 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5645 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
5646 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
5647 INT f_indir_pc__dword
;
5648 /* Contents of trailing part of insn. */
5651 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
5652 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
5654 /* Record the fields for the semantic handler. */
5655 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
5656 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));
5662 extract_sfmt_addi_acr_b_r
:
5664 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5665 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
5666 #define FLD(f) abuf->fields.sfmt_add_b_r.f
5670 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5671 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5673 /* Record the fields for the semantic handler. */
5674 FLD (f_operand2
) = f_operand2
;
5675 FLD (f_operand1
) = f_operand1
;
5676 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));
5678 #if WITH_PROFILE_MODEL_P
5679 /* Record the fields for profiling. */
5680 if (PROFILE_MODEL_P (current_cpu
))
5682 FLD (in_Rd
) = f_operand2
;
5683 FLD (in_Rs
) = f_operand1
;
5690 extract_sfmt_biap_pc_b_r
:
5692 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5693 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
5694 #define FLD(f) abuf->fields.sfmt_addoq.f
5697 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5699 /* Record the fields for the semantic handler. */
5700 FLD (f_operand2
) = f_operand2
;
5701 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_biap_pc_b_r", "f_operand2 0x%x", 'x', f_operand2
, (char *) 0));
5703 #if WITH_PROFILE_MODEL_P
5704 /* Record the fields for profiling. */
5705 if (PROFILE_MODEL_P (current_cpu
))
5707 FLD (in_Rd
) = f_operand2
;