1 /* Simulator instruction decoder for crisv32f.
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 crisv32f
26 #define WANT_CPU_CRISV32F
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 crisv32f_insn_data
[CRISV32F_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 crisv32f_insn_sem
[] =
45 { VIRTUAL_INSN_X_INVALID
, CRISV32F_INSN_X_INVALID
, CRISV32F_SFMT_EMPTY
},
46 { VIRTUAL_INSN_X_AFTER
, CRISV32F_INSN_X_AFTER
, CRISV32F_SFMT_EMPTY
},
47 { VIRTUAL_INSN_X_BEFORE
, CRISV32F_INSN_X_BEFORE
, CRISV32F_SFMT_EMPTY
},
48 { VIRTUAL_INSN_X_CTI_CHAIN
, CRISV32F_INSN_X_CTI_CHAIN
, CRISV32F_SFMT_EMPTY
},
49 { VIRTUAL_INSN_X_CHAIN
, CRISV32F_INSN_X_CHAIN
, CRISV32F_SFMT_EMPTY
},
50 { VIRTUAL_INSN_X_BEGIN
, CRISV32F_INSN_X_BEGIN
, CRISV32F_SFMT_EMPTY
},
51 { CRIS_INSN_MOVE_B_R
, CRISV32F_INSN_MOVE_B_R
, CRISV32F_SFMT_MOVE_B_R
},
52 { CRIS_INSN_MOVE_W_R
, CRISV32F_INSN_MOVE_W_R
, CRISV32F_SFMT_MOVE_B_R
},
53 { CRIS_INSN_MOVE_D_R
, CRISV32F_INSN_MOVE_D_R
, CRISV32F_SFMT_MOVE_D_R
},
54 { CRIS_INSN_MOVEQ
, CRISV32F_INSN_MOVEQ
, CRISV32F_SFMT_MOVEQ
},
55 { CRIS_INSN_MOVS_B_R
, CRISV32F_INSN_MOVS_B_R
, CRISV32F_SFMT_MOVS_B_R
},
56 { CRIS_INSN_MOVS_W_R
, CRISV32F_INSN_MOVS_W_R
, CRISV32F_SFMT_MOVS_B_R
},
57 { CRIS_INSN_MOVU_B_R
, CRISV32F_INSN_MOVU_B_R
, CRISV32F_SFMT_MOVS_B_R
},
58 { CRIS_INSN_MOVU_W_R
, CRISV32F_INSN_MOVU_W_R
, CRISV32F_SFMT_MOVS_B_R
},
59 { CRIS_INSN_MOVECBR
, CRISV32F_INSN_MOVECBR
, CRISV32F_SFMT_MOVECBR
},
60 { CRIS_INSN_MOVECWR
, CRISV32F_INSN_MOVECWR
, CRISV32F_SFMT_MOVECWR
},
61 { CRIS_INSN_MOVECDR
, CRISV32F_INSN_MOVECDR
, CRISV32F_SFMT_MOVECDR
},
62 { CRIS_INSN_MOVSCBR
, CRISV32F_INSN_MOVSCBR
, CRISV32F_SFMT_MOVSCBR
},
63 { CRIS_INSN_MOVSCWR
, CRISV32F_INSN_MOVSCWR
, CRISV32F_SFMT_MOVSCWR
},
64 { CRIS_INSN_MOVUCBR
, CRISV32F_INSN_MOVUCBR
, CRISV32F_SFMT_MOVUCBR
},
65 { CRIS_INSN_MOVUCWR
, CRISV32F_INSN_MOVUCWR
, CRISV32F_SFMT_MOVUCWR
},
66 { CRIS_INSN_ADDQ
, CRISV32F_INSN_ADDQ
, CRISV32F_SFMT_ADDQ
},
67 { CRIS_INSN_SUBQ
, CRISV32F_INSN_SUBQ
, CRISV32F_SFMT_ADDQ
},
68 { CRIS_INSN_CMP_R_B_R
, CRISV32F_INSN_CMP_R_B_R
, CRISV32F_SFMT_CMP_R_B_R
},
69 { CRIS_INSN_CMP_R_W_R
, CRISV32F_INSN_CMP_R_W_R
, CRISV32F_SFMT_CMP_R_B_R
},
70 { CRIS_INSN_CMP_R_D_R
, CRISV32F_INSN_CMP_R_D_R
, CRISV32F_SFMT_CMP_R_B_R
},
71 { CRIS_INSN_CMP_M_B_M
, CRISV32F_INSN_CMP_M_B_M
, CRISV32F_SFMT_CMP_M_B_M
},
72 { CRIS_INSN_CMP_M_W_M
, CRISV32F_INSN_CMP_M_W_M
, CRISV32F_SFMT_CMP_M_W_M
},
73 { CRIS_INSN_CMP_M_D_M
, CRISV32F_INSN_CMP_M_D_M
, CRISV32F_SFMT_CMP_M_D_M
},
74 { CRIS_INSN_CMPCBR
, CRISV32F_INSN_CMPCBR
, CRISV32F_SFMT_CMPCBR
},
75 { CRIS_INSN_CMPCWR
, CRISV32F_INSN_CMPCWR
, CRISV32F_SFMT_CMPCWR
},
76 { CRIS_INSN_CMPCDR
, CRISV32F_INSN_CMPCDR
, CRISV32F_SFMT_CMPCDR
},
77 { CRIS_INSN_CMPQ
, CRISV32F_INSN_CMPQ
, CRISV32F_SFMT_CMPQ
},
78 { CRIS_INSN_CMPS_M_B_M
, CRISV32F_INSN_CMPS_M_B_M
, CRISV32F_SFMT_CMP_M_B_M
},
79 { CRIS_INSN_CMPS_M_W_M
, CRISV32F_INSN_CMPS_M_W_M
, CRISV32F_SFMT_CMP_M_W_M
},
80 { CRIS_INSN_CMPSCBR
, CRISV32F_INSN_CMPSCBR
, CRISV32F_SFMT_CMPCBR
},
81 { CRIS_INSN_CMPSCWR
, CRISV32F_INSN_CMPSCWR
, CRISV32F_SFMT_CMPCWR
},
82 { CRIS_INSN_CMPU_M_B_M
, CRISV32F_INSN_CMPU_M_B_M
, CRISV32F_SFMT_CMP_M_B_M
},
83 { CRIS_INSN_CMPU_M_W_M
, CRISV32F_INSN_CMPU_M_W_M
, CRISV32F_SFMT_CMP_M_W_M
},
84 { CRIS_INSN_CMPUCBR
, CRISV32F_INSN_CMPUCBR
, CRISV32F_SFMT_CMPUCBR
},
85 { CRIS_INSN_CMPUCWR
, CRISV32F_INSN_CMPUCWR
, CRISV32F_SFMT_CMPUCWR
},
86 { CRIS_INSN_MOVE_M_B_M
, CRISV32F_INSN_MOVE_M_B_M
, CRISV32F_SFMT_MOVE_M_B_M
},
87 { CRIS_INSN_MOVE_M_W_M
, CRISV32F_INSN_MOVE_M_W_M
, CRISV32F_SFMT_MOVE_M_W_M
},
88 { CRIS_INSN_MOVE_M_D_M
, CRISV32F_INSN_MOVE_M_D_M
, CRISV32F_SFMT_MOVE_M_D_M
},
89 { CRIS_INSN_MOVS_M_B_M
, CRISV32F_INSN_MOVS_M_B_M
, CRISV32F_SFMT_MOVS_M_B_M
},
90 { CRIS_INSN_MOVS_M_W_M
, CRISV32F_INSN_MOVS_M_W_M
, CRISV32F_SFMT_MOVS_M_W_M
},
91 { CRIS_INSN_MOVU_M_B_M
, CRISV32F_INSN_MOVU_M_B_M
, CRISV32F_SFMT_MOVS_M_B_M
},
92 { CRIS_INSN_MOVU_M_W_M
, CRISV32F_INSN_MOVU_M_W_M
, CRISV32F_SFMT_MOVS_M_W_M
},
93 { CRIS_INSN_MOVE_R_SPRV32
, CRISV32F_INSN_MOVE_R_SPRV32
, CRISV32F_SFMT_MOVE_R_SPRV32
},
94 { CRIS_INSN_MOVE_SPR_RV32
, CRISV32F_INSN_MOVE_SPR_RV32
, CRISV32F_SFMT_MOVE_SPR_RV32
},
95 { CRIS_INSN_MOVE_M_SPRV32
, CRISV32F_INSN_MOVE_M_SPRV32
, CRISV32F_SFMT_MOVE_M_SPRV32
},
96 { CRIS_INSN_MOVE_C_SPRV32_P2
, CRISV32F_INSN_MOVE_C_SPRV32_P2
, CRISV32F_SFMT_MOVE_C_SPRV32_P2
},
97 { CRIS_INSN_MOVE_C_SPRV32_P3
, CRISV32F_INSN_MOVE_C_SPRV32_P3
, CRISV32F_SFMT_MOVE_C_SPRV32_P2
},
98 { CRIS_INSN_MOVE_C_SPRV32_P5
, CRISV32F_INSN_MOVE_C_SPRV32_P5
, CRISV32F_SFMT_MOVE_C_SPRV32_P2
},
99 { CRIS_INSN_MOVE_C_SPRV32_P6
, CRISV32F_INSN_MOVE_C_SPRV32_P6
, CRISV32F_SFMT_MOVE_C_SPRV32_P2
},
100 { CRIS_INSN_MOVE_C_SPRV32_P7
, CRISV32F_INSN_MOVE_C_SPRV32_P7
, CRISV32F_SFMT_MOVE_C_SPRV32_P2
},
101 { CRIS_INSN_MOVE_C_SPRV32_P9
, CRISV32F_INSN_MOVE_C_SPRV32_P9
, CRISV32F_SFMT_MOVE_C_SPRV32_P2
},
102 { CRIS_INSN_MOVE_C_SPRV32_P10
, CRISV32F_INSN_MOVE_C_SPRV32_P10
, CRISV32F_SFMT_MOVE_C_SPRV32_P2
},
103 { CRIS_INSN_MOVE_C_SPRV32_P11
, CRISV32F_INSN_MOVE_C_SPRV32_P11
, CRISV32F_SFMT_MOVE_C_SPRV32_P2
},
104 { CRIS_INSN_MOVE_C_SPRV32_P12
, CRISV32F_INSN_MOVE_C_SPRV32_P12
, CRISV32F_SFMT_MOVE_C_SPRV32_P2
},
105 { CRIS_INSN_MOVE_C_SPRV32_P13
, CRISV32F_INSN_MOVE_C_SPRV32_P13
, CRISV32F_SFMT_MOVE_C_SPRV32_P2
},
106 { CRIS_INSN_MOVE_C_SPRV32_P14
, CRISV32F_INSN_MOVE_C_SPRV32_P14
, CRISV32F_SFMT_MOVE_C_SPRV32_P2
},
107 { CRIS_INSN_MOVE_C_SPRV32_P15
, CRISV32F_INSN_MOVE_C_SPRV32_P15
, CRISV32F_SFMT_MOVE_C_SPRV32_P2
},
108 { CRIS_INSN_MOVE_SPR_MV32
, CRISV32F_INSN_MOVE_SPR_MV32
, CRISV32F_SFMT_MOVE_SPR_MV32
},
109 { CRIS_INSN_MOVE_SS_R
, CRISV32F_INSN_MOVE_SS_R
, CRISV32F_SFMT_MOVE_SS_R
},
110 { CRIS_INSN_MOVE_R_SS
, CRISV32F_INSN_MOVE_R_SS
, CRISV32F_SFMT_MOVE_R_SS
},
111 { CRIS_INSN_MOVEM_R_M_V32
, CRISV32F_INSN_MOVEM_R_M_V32
, CRISV32F_SFMT_MOVEM_R_M_V32
},
112 { CRIS_INSN_MOVEM_M_R_V32
, CRISV32F_INSN_MOVEM_M_R_V32
, CRISV32F_SFMT_MOVEM_M_R_V32
},
113 { CRIS_INSN_ADD_B_R
, CRISV32F_INSN_ADD_B_R
, CRISV32F_SFMT_ADD_B_R
},
114 { CRIS_INSN_ADD_W_R
, CRISV32F_INSN_ADD_W_R
, CRISV32F_SFMT_ADD_B_R
},
115 { CRIS_INSN_ADD_D_R
, CRISV32F_INSN_ADD_D_R
, CRISV32F_SFMT_ADD_D_R
},
116 { CRIS_INSN_ADD_M_B_M
, CRISV32F_INSN_ADD_M_B_M
, CRISV32F_SFMT_ADD_M_B_M
},
117 { CRIS_INSN_ADD_M_W_M
, CRISV32F_INSN_ADD_M_W_M
, CRISV32F_SFMT_ADD_M_W_M
},
118 { CRIS_INSN_ADD_M_D_M
, CRISV32F_INSN_ADD_M_D_M
, CRISV32F_SFMT_ADD_M_D_M
},
119 { CRIS_INSN_ADDCBR
, CRISV32F_INSN_ADDCBR
, CRISV32F_SFMT_ADDCBR
},
120 { CRIS_INSN_ADDCWR
, CRISV32F_INSN_ADDCWR
, CRISV32F_SFMT_ADDCWR
},
121 { CRIS_INSN_ADDCDR
, CRISV32F_INSN_ADDCDR
, CRISV32F_SFMT_ADDCDR
},
122 { CRIS_INSN_ADDS_B_R
, CRISV32F_INSN_ADDS_B_R
, CRISV32F_SFMT_ADD_D_R
},
123 { CRIS_INSN_ADDS_W_R
, CRISV32F_INSN_ADDS_W_R
, CRISV32F_SFMT_ADD_D_R
},
124 { CRIS_INSN_ADDS_M_B_M
, CRISV32F_INSN_ADDS_M_B_M
, CRISV32F_SFMT_ADDS_M_B_M
},
125 { CRIS_INSN_ADDS_M_W_M
, CRISV32F_INSN_ADDS_M_W_M
, CRISV32F_SFMT_ADDS_M_W_M
},
126 { CRIS_INSN_ADDSCBR
, CRISV32F_INSN_ADDSCBR
, CRISV32F_SFMT_ADDSCBR
},
127 { CRIS_INSN_ADDSCWR
, CRISV32F_INSN_ADDSCWR
, CRISV32F_SFMT_ADDSCWR
},
128 { CRIS_INSN_ADDU_B_R
, CRISV32F_INSN_ADDU_B_R
, CRISV32F_SFMT_ADD_D_R
},
129 { CRIS_INSN_ADDU_W_R
, CRISV32F_INSN_ADDU_W_R
, CRISV32F_SFMT_ADD_D_R
},
130 { CRIS_INSN_ADDU_M_B_M
, CRISV32F_INSN_ADDU_M_B_M
, CRISV32F_SFMT_ADDS_M_B_M
},
131 { CRIS_INSN_ADDU_M_W_M
, CRISV32F_INSN_ADDU_M_W_M
, CRISV32F_SFMT_ADDS_M_W_M
},
132 { CRIS_INSN_ADDUCBR
, CRISV32F_INSN_ADDUCBR
, CRISV32F_SFMT_ADDSCBR
},
133 { CRIS_INSN_ADDUCWR
, CRISV32F_INSN_ADDUCWR
, CRISV32F_SFMT_ADDSCWR
},
134 { CRIS_INSN_SUB_B_R
, CRISV32F_INSN_SUB_B_R
, CRISV32F_SFMT_ADD_B_R
},
135 { CRIS_INSN_SUB_W_R
, CRISV32F_INSN_SUB_W_R
, CRISV32F_SFMT_ADD_B_R
},
136 { CRIS_INSN_SUB_D_R
, CRISV32F_INSN_SUB_D_R
, CRISV32F_SFMT_ADD_D_R
},
137 { CRIS_INSN_SUB_M_B_M
, CRISV32F_INSN_SUB_M_B_M
, CRISV32F_SFMT_ADD_M_B_M
},
138 { CRIS_INSN_SUB_M_W_M
, CRISV32F_INSN_SUB_M_W_M
, CRISV32F_SFMT_ADD_M_W_M
},
139 { CRIS_INSN_SUB_M_D_M
, CRISV32F_INSN_SUB_M_D_M
, CRISV32F_SFMT_ADD_M_D_M
},
140 { CRIS_INSN_SUBCBR
, CRISV32F_INSN_SUBCBR
, CRISV32F_SFMT_ADDCBR
},
141 { CRIS_INSN_SUBCWR
, CRISV32F_INSN_SUBCWR
, CRISV32F_SFMT_ADDCWR
},
142 { CRIS_INSN_SUBCDR
, CRISV32F_INSN_SUBCDR
, CRISV32F_SFMT_ADDCDR
},
143 { CRIS_INSN_SUBS_B_R
, CRISV32F_INSN_SUBS_B_R
, CRISV32F_SFMT_ADD_D_R
},
144 { CRIS_INSN_SUBS_W_R
, CRISV32F_INSN_SUBS_W_R
, CRISV32F_SFMT_ADD_D_R
},
145 { CRIS_INSN_SUBS_M_B_M
, CRISV32F_INSN_SUBS_M_B_M
, CRISV32F_SFMT_ADDS_M_B_M
},
146 { CRIS_INSN_SUBS_M_W_M
, CRISV32F_INSN_SUBS_M_W_M
, CRISV32F_SFMT_ADDS_M_W_M
},
147 { CRIS_INSN_SUBSCBR
, CRISV32F_INSN_SUBSCBR
, CRISV32F_SFMT_ADDSCBR
},
148 { CRIS_INSN_SUBSCWR
, CRISV32F_INSN_SUBSCWR
, CRISV32F_SFMT_ADDSCWR
},
149 { CRIS_INSN_SUBU_B_R
, CRISV32F_INSN_SUBU_B_R
, CRISV32F_SFMT_ADD_D_R
},
150 { CRIS_INSN_SUBU_W_R
, CRISV32F_INSN_SUBU_W_R
, CRISV32F_SFMT_ADD_D_R
},
151 { CRIS_INSN_SUBU_M_B_M
, CRISV32F_INSN_SUBU_M_B_M
, CRISV32F_SFMT_ADDS_M_B_M
},
152 { CRIS_INSN_SUBU_M_W_M
, CRISV32F_INSN_SUBU_M_W_M
, CRISV32F_SFMT_ADDS_M_W_M
},
153 { CRIS_INSN_SUBUCBR
, CRISV32F_INSN_SUBUCBR
, CRISV32F_SFMT_ADDSCBR
},
154 { CRIS_INSN_SUBUCWR
, CRISV32F_INSN_SUBUCWR
, CRISV32F_SFMT_ADDSCWR
},
155 { CRIS_INSN_ADDC_R
, CRISV32F_INSN_ADDC_R
, CRISV32F_SFMT_ADD_D_R
},
156 { CRIS_INSN_ADDC_M
, CRISV32F_INSN_ADDC_M
, CRISV32F_SFMT_ADDC_M
},
157 { CRIS_INSN_ADDC_C
, CRISV32F_INSN_ADDC_C
, CRISV32F_SFMT_ADDCDR
},
158 { CRIS_INSN_LAPC_D
, CRISV32F_INSN_LAPC_D
, CRISV32F_SFMT_LAPC_D
},
159 { CRIS_INSN_LAPCQ
, CRISV32F_INSN_LAPCQ
, CRISV32F_SFMT_LAPCQ
},
160 { CRIS_INSN_ADDI_B_R
, CRISV32F_INSN_ADDI_B_R
, CRISV32F_SFMT_ADDI_B_R
},
161 { CRIS_INSN_ADDI_W_R
, CRISV32F_INSN_ADDI_W_R
, CRISV32F_SFMT_ADDI_B_R
},
162 { CRIS_INSN_ADDI_D_R
, CRISV32F_INSN_ADDI_D_R
, CRISV32F_SFMT_ADDI_B_R
},
163 { CRIS_INSN_NEG_B_R
, CRISV32F_INSN_NEG_B_R
, CRISV32F_SFMT_NEG_B_R
},
164 { CRIS_INSN_NEG_W_R
, CRISV32F_INSN_NEG_W_R
, CRISV32F_SFMT_NEG_B_R
},
165 { CRIS_INSN_NEG_D_R
, CRISV32F_INSN_NEG_D_R
, CRISV32F_SFMT_NEG_D_R
},
166 { CRIS_INSN_TEST_M_B_M
, CRISV32F_INSN_TEST_M_B_M
, CRISV32F_SFMT_TEST_M_B_M
},
167 { CRIS_INSN_TEST_M_W_M
, CRISV32F_INSN_TEST_M_W_M
, CRISV32F_SFMT_TEST_M_W_M
},
168 { CRIS_INSN_TEST_M_D_M
, CRISV32F_INSN_TEST_M_D_M
, CRISV32F_SFMT_TEST_M_D_M
},
169 { CRIS_INSN_MOVE_R_M_B_M
, CRISV32F_INSN_MOVE_R_M_B_M
, CRISV32F_SFMT_MOVE_R_M_B_M
},
170 { CRIS_INSN_MOVE_R_M_W_M
, CRISV32F_INSN_MOVE_R_M_W_M
, CRISV32F_SFMT_MOVE_R_M_W_M
},
171 { CRIS_INSN_MOVE_R_M_D_M
, CRISV32F_INSN_MOVE_R_M_D_M
, CRISV32F_SFMT_MOVE_R_M_D_M
},
172 { CRIS_INSN_MULS_B
, CRISV32F_INSN_MULS_B
, CRISV32F_SFMT_MULS_B
},
173 { CRIS_INSN_MULS_W
, CRISV32F_INSN_MULS_W
, CRISV32F_SFMT_MULS_B
},
174 { CRIS_INSN_MULS_D
, CRISV32F_INSN_MULS_D
, CRISV32F_SFMT_MULS_B
},
175 { CRIS_INSN_MULU_B
, CRISV32F_INSN_MULU_B
, CRISV32F_SFMT_MULS_B
},
176 { CRIS_INSN_MULU_W
, CRISV32F_INSN_MULU_W
, CRISV32F_SFMT_MULS_B
},
177 { CRIS_INSN_MULU_D
, CRISV32F_INSN_MULU_D
, CRISV32F_SFMT_MULS_B
},
178 { CRIS_INSN_MCP
, CRISV32F_INSN_MCP
, CRISV32F_SFMT_MCP
},
179 { CRIS_INSN_DSTEP
, CRISV32F_INSN_DSTEP
, CRISV32F_SFMT_DSTEP
},
180 { CRIS_INSN_ABS
, CRISV32F_INSN_ABS
, CRISV32F_SFMT_MOVS_B_R
},
181 { CRIS_INSN_AND_B_R
, CRISV32F_INSN_AND_B_R
, CRISV32F_SFMT_AND_B_R
},
182 { CRIS_INSN_AND_W_R
, CRISV32F_INSN_AND_W_R
, CRISV32F_SFMT_AND_B_R
},
183 { CRIS_INSN_AND_D_R
, CRISV32F_INSN_AND_D_R
, CRISV32F_SFMT_AND_D_R
},
184 { CRIS_INSN_AND_M_B_M
, CRISV32F_INSN_AND_M_B_M
, CRISV32F_SFMT_AND_M_B_M
},
185 { CRIS_INSN_AND_M_W_M
, CRISV32F_INSN_AND_M_W_M
, CRISV32F_SFMT_AND_M_W_M
},
186 { CRIS_INSN_AND_M_D_M
, CRISV32F_INSN_AND_M_D_M
, CRISV32F_SFMT_AND_M_D_M
},
187 { CRIS_INSN_ANDCBR
, CRISV32F_INSN_ANDCBR
, CRISV32F_SFMT_ANDCBR
},
188 { CRIS_INSN_ANDCWR
, CRISV32F_INSN_ANDCWR
, CRISV32F_SFMT_ANDCWR
},
189 { CRIS_INSN_ANDCDR
, CRISV32F_INSN_ANDCDR
, CRISV32F_SFMT_ANDCDR
},
190 { CRIS_INSN_ANDQ
, CRISV32F_INSN_ANDQ
, CRISV32F_SFMT_ANDQ
},
191 { CRIS_INSN_ORR_B_R
, CRISV32F_INSN_ORR_B_R
, CRISV32F_SFMT_AND_B_R
},
192 { CRIS_INSN_ORR_W_R
, CRISV32F_INSN_ORR_W_R
, CRISV32F_SFMT_AND_B_R
},
193 { CRIS_INSN_ORR_D_R
, CRISV32F_INSN_ORR_D_R
, CRISV32F_SFMT_AND_D_R
},
194 { CRIS_INSN_OR_M_B_M
, CRISV32F_INSN_OR_M_B_M
, CRISV32F_SFMT_AND_M_B_M
},
195 { CRIS_INSN_OR_M_W_M
, CRISV32F_INSN_OR_M_W_M
, CRISV32F_SFMT_AND_M_W_M
},
196 { CRIS_INSN_OR_M_D_M
, CRISV32F_INSN_OR_M_D_M
, CRISV32F_SFMT_AND_M_D_M
},
197 { CRIS_INSN_ORCBR
, CRISV32F_INSN_ORCBR
, CRISV32F_SFMT_ANDCBR
},
198 { CRIS_INSN_ORCWR
, CRISV32F_INSN_ORCWR
, CRISV32F_SFMT_ANDCWR
},
199 { CRIS_INSN_ORCDR
, CRISV32F_INSN_ORCDR
, CRISV32F_SFMT_ANDCDR
},
200 { CRIS_INSN_ORQ
, CRISV32F_INSN_ORQ
, CRISV32F_SFMT_ANDQ
},
201 { CRIS_INSN_XOR
, CRISV32F_INSN_XOR
, CRISV32F_SFMT_DSTEP
},
202 { CRIS_INSN_SWAP
, CRISV32F_INSN_SWAP
, CRISV32F_SFMT_SWAP
},
203 { CRIS_INSN_ASRR_B_R
, CRISV32F_INSN_ASRR_B_R
, CRISV32F_SFMT_AND_B_R
},
204 { CRIS_INSN_ASRR_W_R
, CRISV32F_INSN_ASRR_W_R
, CRISV32F_SFMT_AND_B_R
},
205 { CRIS_INSN_ASRR_D_R
, CRISV32F_INSN_ASRR_D_R
, CRISV32F_SFMT_AND_D_R
},
206 { CRIS_INSN_ASRQ
, CRISV32F_INSN_ASRQ
, CRISV32F_SFMT_ASRQ
},
207 { CRIS_INSN_LSRR_B_R
, CRISV32F_INSN_LSRR_B_R
, CRISV32F_SFMT_LSRR_B_R
},
208 { CRIS_INSN_LSRR_W_R
, CRISV32F_INSN_LSRR_W_R
, CRISV32F_SFMT_LSRR_B_R
},
209 { CRIS_INSN_LSRR_D_R
, CRISV32F_INSN_LSRR_D_R
, CRISV32F_SFMT_LSRR_D_R
},
210 { CRIS_INSN_LSRQ
, CRISV32F_INSN_LSRQ
, CRISV32F_SFMT_ASRQ
},
211 { CRIS_INSN_LSLR_B_R
, CRISV32F_INSN_LSLR_B_R
, CRISV32F_SFMT_LSRR_B_R
},
212 { CRIS_INSN_LSLR_W_R
, CRISV32F_INSN_LSLR_W_R
, CRISV32F_SFMT_LSRR_B_R
},
213 { CRIS_INSN_LSLR_D_R
, CRISV32F_INSN_LSLR_D_R
, CRISV32F_SFMT_LSRR_D_R
},
214 { CRIS_INSN_LSLQ
, CRISV32F_INSN_LSLQ
, CRISV32F_SFMT_ASRQ
},
215 { CRIS_INSN_BTST
, CRISV32F_INSN_BTST
, CRISV32F_SFMT_BTST
},
216 { CRIS_INSN_BTSTQ
, CRISV32F_INSN_BTSTQ
, CRISV32F_SFMT_BTSTQ
},
217 { CRIS_INSN_SETF
, CRISV32F_INSN_SETF
, CRISV32F_SFMT_SETF
},
218 { CRIS_INSN_CLEARF
, CRISV32F_INSN_CLEARF
, CRISV32F_SFMT_SETF
},
219 { CRIS_INSN_RFE
, CRISV32F_INSN_RFE
, CRISV32F_SFMT_RFE
},
220 { CRIS_INSN_SFE
, CRISV32F_INSN_SFE
, CRISV32F_SFMT_SFE
},
221 { CRIS_INSN_RFG
, CRISV32F_INSN_RFG
, CRISV32F_SFMT_RFG
},
222 { CRIS_INSN_RFN
, CRISV32F_INSN_RFN
, CRISV32F_SFMT_RFN
},
223 { CRIS_INSN_HALT
, CRISV32F_INSN_HALT
, CRISV32F_SFMT_HALT
},
224 { CRIS_INSN_BCC_B
, CRISV32F_INSN_BCC_B
, CRISV32F_SFMT_BCC_B
},
225 { CRIS_INSN_BA_B
, CRISV32F_INSN_BA_B
, CRISV32F_SFMT_BA_B
},
226 { CRIS_INSN_BCC_W
, CRISV32F_INSN_BCC_W
, CRISV32F_SFMT_BCC_W
},
227 { CRIS_INSN_BA_W
, CRISV32F_INSN_BA_W
, CRISV32F_SFMT_BA_W
},
228 { CRIS_INSN_JAS_R
, CRISV32F_INSN_JAS_R
, CRISV32F_SFMT_JAS_R
},
229 { CRIS_INSN_JAS_C
, CRISV32F_INSN_JAS_C
, CRISV32F_SFMT_JAS_C
},
230 { CRIS_INSN_JUMP_P
, CRISV32F_INSN_JUMP_P
, CRISV32F_SFMT_JUMP_P
},
231 { CRIS_INSN_BAS_C
, CRISV32F_INSN_BAS_C
, CRISV32F_SFMT_BAS_C
},
232 { CRIS_INSN_JASC_R
, CRISV32F_INSN_JASC_R
, CRISV32F_SFMT_JASC_R
},
233 { CRIS_INSN_JASC_C
, CRISV32F_INSN_JASC_C
, CRISV32F_SFMT_JAS_C
},
234 { CRIS_INSN_BASC_C
, CRISV32F_INSN_BASC_C
, CRISV32F_SFMT_BAS_C
},
235 { CRIS_INSN_BREAK
, CRISV32F_INSN_BREAK
, CRISV32F_SFMT_BREAK
},
236 { CRIS_INSN_BOUND_R_B_R
, CRISV32F_INSN_BOUND_R_B_R
, CRISV32F_SFMT_DSTEP
},
237 { CRIS_INSN_BOUND_R_W_R
, CRISV32F_INSN_BOUND_R_W_R
, CRISV32F_SFMT_DSTEP
},
238 { CRIS_INSN_BOUND_R_D_R
, CRISV32F_INSN_BOUND_R_D_R
, CRISV32F_SFMT_DSTEP
},
239 { CRIS_INSN_BOUND_CB
, CRISV32F_INSN_BOUND_CB
, CRISV32F_SFMT_BOUND_CB
},
240 { CRIS_INSN_BOUND_CW
, CRISV32F_INSN_BOUND_CW
, CRISV32F_SFMT_BOUND_CW
},
241 { CRIS_INSN_BOUND_CD
, CRISV32F_INSN_BOUND_CD
, CRISV32F_SFMT_BOUND_CD
},
242 { CRIS_INSN_SCC
, CRISV32F_INSN_SCC
, CRISV32F_SFMT_SCC
},
243 { CRIS_INSN_LZ
, CRISV32F_INSN_LZ
, CRISV32F_SFMT_MOVS_B_R
},
244 { CRIS_INSN_ADDOQ
, CRISV32F_INSN_ADDOQ
, CRISV32F_SFMT_ADDOQ
},
245 { CRIS_INSN_ADDO_M_B_M
, CRISV32F_INSN_ADDO_M_B_M
, CRISV32F_SFMT_ADDO_M_B_M
},
246 { CRIS_INSN_ADDO_M_W_M
, CRISV32F_INSN_ADDO_M_W_M
, CRISV32F_SFMT_ADDO_M_W_M
},
247 { CRIS_INSN_ADDO_M_D_M
, CRISV32F_INSN_ADDO_M_D_M
, CRISV32F_SFMT_ADDO_M_D_M
},
248 { CRIS_INSN_ADDO_CB
, CRISV32F_INSN_ADDO_CB
, CRISV32F_SFMT_ADDO_CB
},
249 { CRIS_INSN_ADDO_CW
, CRISV32F_INSN_ADDO_CW
, CRISV32F_SFMT_ADDO_CW
},
250 { CRIS_INSN_ADDO_CD
, CRISV32F_INSN_ADDO_CD
, CRISV32F_SFMT_ADDO_CD
},
251 { CRIS_INSN_ADDI_ACR_B_R
, CRISV32F_INSN_ADDI_ACR_B_R
, CRISV32F_SFMT_ADDI_ACR_B_R
},
252 { CRIS_INSN_ADDI_ACR_W_R
, CRISV32F_INSN_ADDI_ACR_W_R
, CRISV32F_SFMT_ADDI_ACR_B_R
},
253 { CRIS_INSN_ADDI_ACR_D_R
, CRISV32F_INSN_ADDI_ACR_D_R
, CRISV32F_SFMT_ADDI_ACR_B_R
},
254 { CRIS_INSN_FIDXI
, CRISV32F_INSN_FIDXI
, CRISV32F_SFMT_FIDXI
},
255 { CRIS_INSN_FTAGI
, CRISV32F_INSN_FTAGI
, CRISV32F_SFMT_FIDXI
},
256 { CRIS_INSN_FIDXD
, CRISV32F_INSN_FIDXD
, CRISV32F_SFMT_FIDXI
},
257 { CRIS_INSN_FTAGD
, CRISV32F_INSN_FTAGD
, CRISV32F_SFMT_FIDXI
},
260 static const struct insn_sem crisv32f_insn_sem_invalid
=
262 VIRTUAL_INSN_X_INVALID
, CRISV32F_INSN_X_INVALID
, CRISV32F_SFMT_EMPTY
265 /* Initialize an IDESC from the compile-time computable parts. */
268 init_idesc (SIM_CPU
*cpu
, IDESC
*id
, const struct insn_sem
*t
)
270 const CGEN_INSN
*insn_table
= CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu
))->init_entries
;
274 if ((int) t
->type
<= 0)
275 id
->idata
= & cgen_virtual_insn_table
[- (int) t
->type
];
277 id
->idata
= & insn_table
[t
->type
];
278 id
->attrs
= CGEN_INSN_ATTRS (id
->idata
);
279 /* Oh my god, a magic number. */
280 id
->length
= CGEN_INSN_BITSIZE (id
->idata
) / 8;
282 #if WITH_PROFILE_MODEL_P
283 id
->timing
= & MODEL_TIMING (CPU_MODEL (cpu
)) [t
->index
];
285 SIM_DESC sd
= CPU_STATE (cpu
);
286 SIM_ASSERT (t
->index
== id
->timing
->num
);
290 /* Semantic pointers are initialized elsewhere. */
293 /* Initialize the instruction descriptor table. */
296 crisv32f_init_idesc_table (SIM_CPU
*cpu
)
299 const struct insn_sem
*t
,*tend
;
300 int tabsize
= CRISV32F_INSN__MAX
;
301 IDESC
*table
= crisv32f_insn_data
;
303 memset (table
, 0, tabsize
* sizeof (IDESC
));
305 /* First set all entries to the `invalid insn'. */
306 t
= & crisv32f_insn_sem_invalid
;
307 for (id
= table
, tabend
= table
+ tabsize
; id
< tabend
; ++id
)
308 init_idesc (cpu
, id
, t
);
310 /* Now fill in the values for the chosen cpu. */
311 for (t
= crisv32f_insn_sem
, tend
= t
+ ARRAY_SIZE (crisv32f_insn_sem
);
314 init_idesc (cpu
, & table
[t
->index
], t
);
317 /* Link the IDESC table into the cpu. */
318 CPU_IDESC (cpu
) = table
;
321 /* Given an instruction, return a pointer to its IDESC entry. */
324 crisv32f_decode (SIM_CPU
*current_cpu
, IADDR pc
,
325 CGEN_INSN_WORD base_insn
,
328 /* Result of decoder. */
329 CRISV32F_INSN_TYPE itype
;
332 CGEN_INSN_WORD insn
= base_insn
;
335 unsigned int val0
= (((insn
>> 4) & (255 << 0)));
355 unsigned int val1
= (((insn
>> 12) & (15 << 0)));
372 case 15: itype
= CRISV32F_INSN_BCC_B
; goto extract_sfmt_bcc_b
;
373 case 14: itype
= CRISV32F_INSN_BA_B
; goto extract_sfmt_ba_b
;
374 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
392 case 31: itype
= CRISV32F_INSN_ADDOQ
; goto extract_sfmt_addoq
;
396 case 35: itype
= CRISV32F_INSN_ADDQ
; goto extract_sfmt_addq
;
400 case 39: itype
= CRISV32F_INSN_MOVEQ
; goto extract_sfmt_moveq
;
404 case 43: itype
= CRISV32F_INSN_SUBQ
; goto extract_sfmt_addq
;
408 case 47: itype
= CRISV32F_INSN_CMPQ
; goto extract_sfmt_cmpq
;
412 case 51: itype
= CRISV32F_INSN_ANDQ
; goto extract_sfmt_andq
;
416 case 55: itype
= CRISV32F_INSN_ORQ
; goto extract_sfmt_andq
;
418 case 57: itype
= CRISV32F_INSN_BTSTQ
; goto extract_sfmt_btstq
;
420 case 59: itype
= CRISV32F_INSN_ASRQ
; goto extract_sfmt_asrq
;
422 case 61: itype
= CRISV32F_INSN_LSLQ
; goto extract_sfmt_asrq
;
424 case 63: itype
= CRISV32F_INSN_LSRQ
; goto extract_sfmt_asrq
;
425 case 64: itype
= CRISV32F_INSN_ADDU_B_R
; goto extract_sfmt_add_d_r
;
426 case 65: itype
= CRISV32F_INSN_ADDU_W_R
; goto extract_sfmt_add_d_r
;
427 case 66: itype
= CRISV32F_INSN_ADDS_B_R
; goto extract_sfmt_add_d_r
;
428 case 67: itype
= CRISV32F_INSN_ADDS_W_R
; goto extract_sfmt_add_d_r
;
429 case 68: itype
= CRISV32F_INSN_MOVU_B_R
; goto extract_sfmt_movs_b_r
;
430 case 69: itype
= CRISV32F_INSN_MOVU_W_R
; goto extract_sfmt_movs_b_r
;
431 case 70: itype
= CRISV32F_INSN_MOVS_B_R
; goto extract_sfmt_movs_b_r
;
432 case 71: itype
= CRISV32F_INSN_MOVS_W_R
; goto extract_sfmt_movs_b_r
;
433 case 72: itype
= CRISV32F_INSN_SUBU_B_R
; goto extract_sfmt_add_d_r
;
434 case 73: itype
= CRISV32F_INSN_SUBU_W_R
; goto extract_sfmt_add_d_r
;
435 case 74: itype
= CRISV32F_INSN_SUBS_B_R
; goto extract_sfmt_add_d_r
;
436 case 75: itype
= CRISV32F_INSN_SUBS_W_R
; goto extract_sfmt_add_d_r
;
437 case 76: itype
= CRISV32F_INSN_LSLR_B_R
; goto extract_sfmt_lsrr_b_r
;
438 case 77: itype
= CRISV32F_INSN_LSLR_W_R
; goto extract_sfmt_lsrr_b_r
;
439 case 78: itype
= CRISV32F_INSN_LSLR_D_R
; goto extract_sfmt_lsrr_d_r
;
440 case 79: itype
= CRISV32F_INSN_BTST
; goto extract_sfmt_btst
;
441 case 80: itype
= CRISV32F_INSN_ADDI_B_R
; goto extract_sfmt_addi_b_r
;
442 case 81: itype
= CRISV32F_INSN_ADDI_W_R
; goto extract_sfmt_addi_b_r
;
443 case 82: itype
= CRISV32F_INSN_ADDI_D_R
; goto extract_sfmt_addi_b_r
;
444 case 83: itype
= CRISV32F_INSN_SCC
; goto extract_sfmt_scc
;
445 case 84: itype
= CRISV32F_INSN_ADDI_ACR_B_R
; goto extract_sfmt_addi_acr_b_r
;
446 case 85: itype
= CRISV32F_INSN_ADDI_ACR_W_R
; goto extract_sfmt_addi_acr_b_r
;
447 case 86: itype
= CRISV32F_INSN_ADDI_ACR_D_R
; goto extract_sfmt_addi_acr_b_r
;
448 case 87: itype
= CRISV32F_INSN_ADDC_R
; goto extract_sfmt_add_d_r
;
449 case 88: itype
= CRISV32F_INSN_NEG_B_R
; goto extract_sfmt_neg_b_r
;
450 case 89: itype
= CRISV32F_INSN_NEG_W_R
; goto extract_sfmt_neg_b_r
;
451 case 90: itype
= CRISV32F_INSN_NEG_D_R
; goto extract_sfmt_neg_d_r
;
452 case 91: itype
= CRISV32F_INSN_SETF
; goto extract_sfmt_setf
;
453 case 92: itype
= CRISV32F_INSN_BOUND_R_B_R
; goto extract_sfmt_dstep
;
454 case 93: itype
= CRISV32F_INSN_BOUND_R_W_R
; goto extract_sfmt_dstep
;
455 case 94: itype
= CRISV32F_INSN_BOUND_R_D_R
; goto extract_sfmt_dstep
;
456 case 95: itype
= CRISV32F_INSN_CLEARF
; goto extract_sfmt_setf
;
457 case 96: itype
= CRISV32F_INSN_ADD_B_R
; goto extract_sfmt_add_b_r
;
458 case 97: itype
= CRISV32F_INSN_ADD_W_R
; goto extract_sfmt_add_b_r
;
459 case 98: itype
= CRISV32F_INSN_ADD_D_R
; goto extract_sfmt_add_d_r
;
460 case 99: itype
= CRISV32F_INSN_MOVE_R_SPRV32
; goto extract_sfmt_move_r_sprv32
;
461 case 100: itype
= CRISV32F_INSN_MOVE_B_R
; goto extract_sfmt_move_b_r
;
462 case 101: itype
= CRISV32F_INSN_MOVE_W_R
; goto extract_sfmt_move_b_r
;
463 case 102: itype
= CRISV32F_INSN_MOVE_D_R
; goto extract_sfmt_move_d_r
;
464 case 103: itype
= CRISV32F_INSN_MOVE_SPR_RV32
; goto extract_sfmt_move_spr_rv32
;
465 case 104: itype
= CRISV32F_INSN_SUB_B_R
; goto extract_sfmt_add_b_r
;
466 case 105: itype
= CRISV32F_INSN_SUB_W_R
; goto extract_sfmt_add_b_r
;
467 case 106: itype
= CRISV32F_INSN_SUB_D_R
; goto extract_sfmt_add_d_r
;
468 case 107: itype
= CRISV32F_INSN_ABS
; goto extract_sfmt_movs_b_r
;
469 case 108: itype
= CRISV32F_INSN_CMP_R_B_R
; goto extract_sfmt_cmp_r_b_r
;
470 case 109: itype
= CRISV32F_INSN_CMP_R_W_R
; goto extract_sfmt_cmp_r_b_r
;
471 case 110: itype
= CRISV32F_INSN_CMP_R_D_R
; goto extract_sfmt_cmp_r_b_r
;
472 case 111: itype
= CRISV32F_INSN_DSTEP
; goto extract_sfmt_dstep
;
473 case 112: itype
= CRISV32F_INSN_AND_B_R
; goto extract_sfmt_and_b_r
;
474 case 113: itype
= CRISV32F_INSN_AND_W_R
; goto extract_sfmt_and_b_r
;
475 case 114: itype
= CRISV32F_INSN_AND_D_R
; goto extract_sfmt_and_d_r
;
476 case 115: itype
= CRISV32F_INSN_LZ
; goto extract_sfmt_movs_b_r
;
477 case 116: itype
= CRISV32F_INSN_ORR_B_R
; goto extract_sfmt_and_b_r
;
478 case 117: itype
= CRISV32F_INSN_ORR_W_R
; goto extract_sfmt_and_b_r
;
479 case 118: itype
= CRISV32F_INSN_ORR_D_R
; goto extract_sfmt_and_d_r
;
480 case 119: itype
= CRISV32F_INSN_SWAP
; goto extract_sfmt_swap
;
481 case 120: itype
= CRISV32F_INSN_ASRR_B_R
; goto extract_sfmt_and_b_r
;
482 case 121: itype
= CRISV32F_INSN_ASRR_W_R
; goto extract_sfmt_and_b_r
;
483 case 122: itype
= CRISV32F_INSN_ASRR_D_R
; goto extract_sfmt_and_d_r
;
484 case 123: itype
= CRISV32F_INSN_XOR
; goto extract_sfmt_dstep
;
485 case 124: itype
= CRISV32F_INSN_LSRR_B_R
; goto extract_sfmt_lsrr_b_r
;
486 case 125: itype
= CRISV32F_INSN_LSRR_W_R
; goto extract_sfmt_lsrr_b_r
;
487 case 126: itype
= CRISV32F_INSN_LSRR_D_R
; goto extract_sfmt_lsrr_d_r
;
488 case 127: itype
= CRISV32F_INSN_MCP
; goto extract_sfmt_mcp
;
489 case 128: itype
= CRISV32F_INSN_ADDU_M_B_M
; goto extract_sfmt_adds_m_b_m
;
490 case 129: itype
= CRISV32F_INSN_ADDU_M_W_M
; goto extract_sfmt_adds_m_w_m
;
491 case 130: itype
= CRISV32F_INSN_ADDS_M_B_M
; goto extract_sfmt_adds_m_b_m
;
492 case 131: itype
= CRISV32F_INSN_ADDS_M_W_M
; goto extract_sfmt_adds_m_w_m
;
493 case 132: itype
= CRISV32F_INSN_MOVU_M_B_M
; goto extract_sfmt_movs_m_b_m
;
494 case 133: itype
= CRISV32F_INSN_MOVU_M_W_M
; goto extract_sfmt_movs_m_w_m
;
495 case 134: itype
= CRISV32F_INSN_MOVS_M_B_M
; goto extract_sfmt_movs_m_b_m
;
496 case 135: itype
= CRISV32F_INSN_MOVS_M_W_M
; goto extract_sfmt_movs_m_w_m
;
497 case 136: itype
= CRISV32F_INSN_SUBU_M_B_M
; goto extract_sfmt_adds_m_b_m
;
498 case 137: itype
= CRISV32F_INSN_SUBU_M_W_M
; goto extract_sfmt_adds_m_w_m
;
499 case 138: itype
= CRISV32F_INSN_SUBS_M_B_M
; goto extract_sfmt_adds_m_b_m
;
500 case 139: itype
= CRISV32F_INSN_SUBS_M_W_M
; goto extract_sfmt_adds_m_w_m
;
501 case 140: itype
= CRISV32F_INSN_CMPU_M_B_M
; goto extract_sfmt_cmp_m_b_m
;
502 case 141: itype
= CRISV32F_INSN_CMPU_M_W_M
; goto extract_sfmt_cmp_m_w_m
;
503 case 142: itype
= CRISV32F_INSN_CMPS_M_B_M
; goto extract_sfmt_cmp_m_b_m
;
504 case 143: itype
= CRISV32F_INSN_CMPS_M_W_M
; goto extract_sfmt_cmp_m_w_m
;
505 case 144: itype
= CRISV32F_INSN_MULU_B
; goto extract_sfmt_muls_b
;
506 case 145: itype
= CRISV32F_INSN_MULU_W
; goto extract_sfmt_muls_b
;
507 case 146: itype
= CRISV32F_INSN_MULU_D
; goto extract_sfmt_muls_b
;
510 unsigned int val1
= (((insn
>> 12) & (15 << 0)));
514 if ((base_insn
& 0xffff) == 0x2930)
515 { itype
= CRISV32F_INSN_RFE
; goto extract_sfmt_rfe
; }
516 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
518 if ((base_insn
& 0xffff) == 0x3930)
519 { itype
= CRISV32F_INSN_SFE
; goto extract_sfmt_sfe
; }
520 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
522 if ((base_insn
& 0xffff) == 0x4930)
523 { itype
= CRISV32F_INSN_RFG
; goto extract_sfmt_rfg
; }
524 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
526 if ((base_insn
& 0xffff) == 0x5930)
527 { itype
= CRISV32F_INSN_RFN
; goto extract_sfmt_rfn
; }
528 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
529 case 14: itype
= CRISV32F_INSN_BREAK
; goto extract_sfmt_break
;
531 if ((base_insn
& 0xffff) == 0xf930)
532 { itype
= CRISV32F_INSN_HALT
; goto extract_sfmt_halt
; }
533 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
534 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
537 case 148: itype
= CRISV32F_INSN_ADDO_M_B_M
; goto extract_sfmt_addo_m_b_m
;
538 case 149: itype
= CRISV32F_INSN_ADDO_M_W_M
; goto extract_sfmt_addo_m_w_m
;
539 case 150: itype
= CRISV32F_INSN_ADDO_M_D_M
; goto extract_sfmt_addo_m_d_m
;
540 case 151: itype
= CRISV32F_INSN_LAPCQ
; goto extract_sfmt_lapcq
;
541 case 154: itype
= CRISV32F_INSN_ADDC_M
; goto extract_sfmt_addc_m
;
542 case 155: itype
= CRISV32F_INSN_JAS_R
; goto extract_sfmt_jas_r
;
544 if ((base_insn
& 0xfff) == 0x9f0)
545 { itype
= CRISV32F_INSN_JUMP_P
; goto extract_sfmt_jump_p
; }
546 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
547 case 160: itype
= CRISV32F_INSN_ADD_M_B_M
; goto extract_sfmt_add_m_b_m
;
548 case 161: itype
= CRISV32F_INSN_ADD_M_W_M
; goto extract_sfmt_add_m_w_m
;
549 case 162: itype
= CRISV32F_INSN_ADD_M_D_M
; goto extract_sfmt_add_m_d_m
;
550 case 163: itype
= CRISV32F_INSN_MOVE_M_SPRV32
; goto extract_sfmt_move_m_sprv32
;
551 case 164: itype
= CRISV32F_INSN_MOVE_M_B_M
; goto extract_sfmt_move_m_b_m
;
552 case 165: itype
= CRISV32F_INSN_MOVE_M_W_M
; goto extract_sfmt_move_m_w_m
;
553 case 166: itype
= CRISV32F_INSN_MOVE_M_D_M
; goto extract_sfmt_move_m_d_m
;
555 case 231: itype
= CRISV32F_INSN_MOVE_SPR_MV32
; goto extract_sfmt_move_spr_mv32
;
556 case 168: itype
= CRISV32F_INSN_SUB_M_B_M
; goto extract_sfmt_add_m_b_m
;
557 case 169: itype
= CRISV32F_INSN_SUB_M_W_M
; goto extract_sfmt_add_m_w_m
;
558 case 170: itype
= CRISV32F_INSN_SUB_M_D_M
; goto extract_sfmt_add_m_d_m
;
561 unsigned int val1
= (((insn
>> 12) & (1 << 0)));
565 if ((base_insn
& 0xfff0) == 0xab0)
566 { itype
= CRISV32F_INSN_FIDXD
; goto extract_sfmt_fidxi
; }
567 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
569 if ((base_insn
& 0xfff0) == 0x1ab0)
570 { itype
= CRISV32F_INSN_FTAGD
; goto extract_sfmt_fidxi
; }
571 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
572 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
575 case 172: itype
= CRISV32F_INSN_CMP_M_B_M
; goto extract_sfmt_cmp_m_b_m
;
576 case 173: itype
= CRISV32F_INSN_CMP_M_W_M
; goto extract_sfmt_cmp_m_w_m
;
577 case 174: itype
= CRISV32F_INSN_CMP_M_D_M
; goto extract_sfmt_cmp_m_d_m
;
578 case 176: itype
= CRISV32F_INSN_AND_M_B_M
; goto extract_sfmt_and_m_b_m
;
579 case 177: itype
= CRISV32F_INSN_AND_M_W_M
; goto extract_sfmt_and_m_w_m
;
580 case 178: itype
= CRISV32F_INSN_AND_M_D_M
; goto extract_sfmt_and_m_d_m
;
581 case 179: itype
= CRISV32F_INSN_JASC_R
; goto extract_sfmt_jasc_r
;
582 case 180: itype
= CRISV32F_INSN_OR_M_B_M
; goto extract_sfmt_and_m_b_m
;
583 case 181: itype
= CRISV32F_INSN_OR_M_W_M
; goto extract_sfmt_and_m_w_m
;
584 case 182: itype
= CRISV32F_INSN_OR_M_D_M
; goto extract_sfmt_and_m_d_m
;
585 case 183: itype
= CRISV32F_INSN_MOVE_R_SS
; goto extract_sfmt_move_r_ss
;
588 if ((base_insn
& 0xfbf0) == 0xb80)
589 { itype
= CRISV32F_INSN_TEST_M_B_M
; goto extract_sfmt_test_m_b_m
; }
590 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
593 if ((base_insn
& 0xfbf0) == 0xb90)
594 { itype
= CRISV32F_INSN_TEST_M_W_M
; goto extract_sfmt_test_m_w_m
; }
595 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
598 if ((base_insn
& 0xfbf0) == 0xba0)
599 { itype
= CRISV32F_INSN_TEST_M_D_M
; goto extract_sfmt_test_m_d_m
; }
600 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
602 case 251: itype
= CRISV32F_INSN_MOVEM_M_R_V32
; goto extract_sfmt_movem_m_r_v32
;
604 case 252: itype
= CRISV32F_INSN_MOVE_R_M_B_M
; goto extract_sfmt_move_r_m_b_m
;
606 case 253: itype
= CRISV32F_INSN_MOVE_R_M_W_M
; goto extract_sfmt_move_r_m_w_m
;
608 case 254: itype
= CRISV32F_INSN_MOVE_R_M_D_M
; goto extract_sfmt_move_r_m_d_m
;
610 case 255: itype
= CRISV32F_INSN_MOVEM_R_M_V32
; goto extract_sfmt_movem_r_m_v32
;
613 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
630 case 14: itype
= CRISV32F_INSN_ADDU_M_B_M
; goto extract_sfmt_adds_m_b_m
;
631 case 15: itype
= CRISV32F_INSN_ADDUCBR
; goto extract_sfmt_addscbr
;
632 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
637 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
654 case 14: itype
= CRISV32F_INSN_ADDU_M_W_M
; goto extract_sfmt_adds_m_w_m
;
655 case 15: itype
= CRISV32F_INSN_ADDUCWR
; goto extract_sfmt_addscwr
;
656 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
661 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
678 case 14: itype
= CRISV32F_INSN_ADDS_M_B_M
; goto extract_sfmt_adds_m_b_m
;
679 case 15: itype
= CRISV32F_INSN_ADDSCBR
; goto extract_sfmt_addscbr
;
680 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
685 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
702 case 14: itype
= CRISV32F_INSN_ADDS_M_W_M
; goto extract_sfmt_adds_m_w_m
;
703 case 15: itype
= CRISV32F_INSN_ADDSCWR
; goto extract_sfmt_addscwr
;
704 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
709 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
726 case 14: itype
= CRISV32F_INSN_MOVU_M_B_M
; goto extract_sfmt_movs_m_b_m
;
727 case 15: itype
= CRISV32F_INSN_MOVUCBR
; goto extract_sfmt_movucbr
;
728 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
733 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
750 case 14: itype
= CRISV32F_INSN_MOVU_M_W_M
; goto extract_sfmt_movs_m_w_m
;
751 case 15: itype
= CRISV32F_INSN_MOVUCWR
; goto extract_sfmt_movucwr
;
752 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
757 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
774 case 14: itype
= CRISV32F_INSN_MOVS_M_B_M
; goto extract_sfmt_movs_m_b_m
;
775 case 15: itype
= CRISV32F_INSN_MOVSCBR
; goto extract_sfmt_movscbr
;
776 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
781 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
798 case 14: itype
= CRISV32F_INSN_MOVS_M_W_M
; goto extract_sfmt_movs_m_w_m
;
799 case 15: itype
= CRISV32F_INSN_MOVSCWR
; goto extract_sfmt_movscwr
;
800 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
805 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
822 case 14: itype
= CRISV32F_INSN_SUBU_M_B_M
; goto extract_sfmt_adds_m_b_m
;
823 case 15: itype
= CRISV32F_INSN_SUBUCBR
; goto extract_sfmt_addscbr
;
824 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
829 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
846 case 14: itype
= CRISV32F_INSN_SUBU_M_W_M
; goto extract_sfmt_adds_m_w_m
;
847 case 15: itype
= CRISV32F_INSN_SUBUCWR
; goto extract_sfmt_addscwr
;
848 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
853 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
870 case 14: itype
= CRISV32F_INSN_SUBS_M_B_M
; goto extract_sfmt_adds_m_b_m
;
871 case 15: itype
= CRISV32F_INSN_SUBSCBR
; goto extract_sfmt_addscbr
;
872 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
877 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
894 case 14: itype
= CRISV32F_INSN_SUBS_M_W_M
; goto extract_sfmt_adds_m_w_m
;
895 case 15: itype
= CRISV32F_INSN_SUBSCWR
; goto extract_sfmt_addscwr
;
896 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
901 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
918 case 14: itype
= CRISV32F_INSN_CMPU_M_B_M
; goto extract_sfmt_cmp_m_b_m
;
919 case 15: itype
= CRISV32F_INSN_CMPUCBR
; goto extract_sfmt_cmpucbr
;
920 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
925 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
942 case 14: itype
= CRISV32F_INSN_CMPU_M_W_M
; goto extract_sfmt_cmp_m_w_m
;
943 case 15: itype
= CRISV32F_INSN_CMPUCWR
; goto extract_sfmt_cmpucwr
;
944 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
949 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
966 case 14: itype
= CRISV32F_INSN_CMPS_M_B_M
; goto extract_sfmt_cmp_m_b_m
;
967 case 15: itype
= CRISV32F_INSN_CMPSCBR
; goto extract_sfmt_cmpcbr
;
968 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
973 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
990 case 14: itype
= CRISV32F_INSN_CMPS_M_W_M
; goto extract_sfmt_cmp_m_w_m
;
991 case 15: itype
= CRISV32F_INSN_CMPSCWR
; goto extract_sfmt_cmpcwr
;
992 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
995 case 208: itype
= CRISV32F_INSN_MULS_B
; goto extract_sfmt_muls_b
;
996 case 209: itype
= CRISV32F_INSN_MULS_W
; goto extract_sfmt_muls_b
;
997 case 210: itype
= CRISV32F_INSN_MULS_D
; goto extract_sfmt_muls_b
;
1000 unsigned int val1
= (((insn
>> 12) & (1 << 0)));
1004 if ((base_insn
& 0xfff0) == 0xd30)
1005 { itype
= CRISV32F_INSN_FIDXI
; goto extract_sfmt_fidxi
; }
1006 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1008 if ((base_insn
& 0xfff0) == 0x1d30)
1009 { itype
= CRISV32F_INSN_FTAGI
; goto extract_sfmt_fidxi
; }
1010 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1011 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1016 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1033 case 14: itype
= CRISV32F_INSN_ADDO_M_B_M
; goto extract_sfmt_addo_m_b_m
;
1034 case 15: itype
= CRISV32F_INSN_ADDO_CB
; goto extract_sfmt_addo_cb
;
1035 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1040 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1057 case 14: itype
= CRISV32F_INSN_ADDO_M_W_M
; goto extract_sfmt_addo_m_w_m
;
1058 case 15: itype
= CRISV32F_INSN_ADDO_CW
; goto extract_sfmt_addo_cw
;
1059 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1064 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1081 case 14: itype
= CRISV32F_INSN_ADDO_M_D_M
; goto extract_sfmt_addo_m_d_m
;
1082 case 15: itype
= CRISV32F_INSN_ADDO_CD
; goto extract_sfmt_addo_cd
;
1083 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1087 if ((base_insn
& 0xfff) == 0xd7f)
1088 { itype
= CRISV32F_INSN_LAPC_D
; goto extract_sfmt_lapc_d
; }
1089 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1092 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1109 case 14: itype
= CRISV32F_INSN_ADDC_M
; goto extract_sfmt_addc_m
;
1110 case 15: itype
= CRISV32F_INSN_ADDC_C
; goto extract_sfmt_addcdr
;
1111 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1115 if ((base_insn
& 0xfff) == 0xdbf)
1116 { itype
= CRISV32F_INSN_JAS_C
; goto extract_sfmt_jas_c
; }
1117 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1119 if ((base_insn
& 0xfff) == 0xdcf)
1120 { itype
= CRISV32F_INSN_BOUND_CB
; goto extract_sfmt_bound_cb
; }
1121 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1123 if ((base_insn
& 0xfff) == 0xddf)
1124 { itype
= CRISV32F_INSN_BOUND_CW
; goto extract_sfmt_bound_cw
; }
1125 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1127 if ((base_insn
& 0xfff) == 0xdef)
1128 { itype
= CRISV32F_INSN_BOUND_CD
; goto extract_sfmt_bound_cd
; }
1129 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1132 unsigned int val1
= (((insn
>> 12) & (15 << 0)));
1150 if ((base_insn
& 0xfff) == 0xdff)
1151 { itype
= CRISV32F_INSN_BCC_W
; goto extract_sfmt_bcc_w
; }
1152 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1154 if ((base_insn
& 0xffff) == 0xedff)
1155 { itype
= CRISV32F_INSN_BA_W
; goto extract_sfmt_ba_w
; }
1156 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1157 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1162 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1179 case 14: itype
= CRISV32F_INSN_ADD_M_B_M
; goto extract_sfmt_add_m_b_m
;
1180 case 15: itype
= CRISV32F_INSN_ADDCBR
; goto extract_sfmt_addcbr
;
1181 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1186 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1203 case 14: itype
= CRISV32F_INSN_ADD_M_W_M
; goto extract_sfmt_add_m_w_m
;
1204 case 15: itype
= CRISV32F_INSN_ADDCWR
; goto extract_sfmt_addcwr
;
1205 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1210 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1227 case 14: itype
= CRISV32F_INSN_ADD_M_D_M
; goto extract_sfmt_add_m_d_m
;
1228 case 15: itype
= CRISV32F_INSN_ADDCDR
; goto extract_sfmt_addcdr
;
1229 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1234 unsigned int val1
= (((insn
>> 12) & (15 << 0)));
1240 case 8: itype
= CRISV32F_INSN_MOVE_M_SPRV32
; goto extract_sfmt_move_m_sprv32
;
1243 unsigned int val2
= (((insn
>> 0) & (15 << 0)));
1260 case 14: itype
= CRISV32F_INSN_MOVE_M_SPRV32
; goto extract_sfmt_move_m_sprv32
;
1261 case 15: itype
= CRISV32F_INSN_MOVE_C_SPRV32_P2
; goto extract_sfmt_move_c_sprv32_p2
;
1262 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1267 unsigned int val2
= (((insn
>> 0) & (15 << 0)));
1284 case 14: itype
= CRISV32F_INSN_MOVE_M_SPRV32
; goto extract_sfmt_move_m_sprv32
;
1285 case 15: itype
= CRISV32F_INSN_MOVE_C_SPRV32_P3
; goto extract_sfmt_move_c_sprv32_p2
;
1286 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1291 unsigned int val2
= (((insn
>> 0) & (15 << 0)));
1308 case 14: itype
= CRISV32F_INSN_MOVE_M_SPRV32
; goto extract_sfmt_move_m_sprv32
;
1309 case 15: itype
= CRISV32F_INSN_MOVE_C_SPRV32_P5
; goto extract_sfmt_move_c_sprv32_p2
;
1310 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1315 unsigned int val2
= (((insn
>> 0) & (15 << 0)));
1332 case 14: itype
= CRISV32F_INSN_MOVE_M_SPRV32
; goto extract_sfmt_move_m_sprv32
;
1333 case 15: itype
= CRISV32F_INSN_MOVE_C_SPRV32_P6
; goto extract_sfmt_move_c_sprv32_p2
;
1334 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1339 unsigned int val2
= (((insn
>> 0) & (15 << 0)));
1356 case 14: itype
= CRISV32F_INSN_MOVE_M_SPRV32
; goto extract_sfmt_move_m_sprv32
;
1357 case 15: itype
= CRISV32F_INSN_MOVE_C_SPRV32_P7
; goto extract_sfmt_move_c_sprv32_p2
;
1358 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1363 unsigned int val2
= (((insn
>> 0) & (15 << 0)));
1380 case 14: itype
= CRISV32F_INSN_MOVE_M_SPRV32
; goto extract_sfmt_move_m_sprv32
;
1381 case 15: itype
= CRISV32F_INSN_MOVE_C_SPRV32_P9
; goto extract_sfmt_move_c_sprv32_p2
;
1382 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1387 unsigned int val2
= (((insn
>> 0) & (15 << 0)));
1404 case 14: itype
= CRISV32F_INSN_MOVE_M_SPRV32
; goto extract_sfmt_move_m_sprv32
;
1405 case 15: itype
= CRISV32F_INSN_MOVE_C_SPRV32_P10
; goto extract_sfmt_move_c_sprv32_p2
;
1406 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1411 unsigned int val2
= (((insn
>> 0) & (15 << 0)));
1428 case 14: itype
= CRISV32F_INSN_MOVE_M_SPRV32
; goto extract_sfmt_move_m_sprv32
;
1429 case 15: itype
= CRISV32F_INSN_MOVE_C_SPRV32_P11
; goto extract_sfmt_move_c_sprv32_p2
;
1430 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1435 unsigned int val2
= (((insn
>> 0) & (15 << 0)));
1452 case 14: itype
= CRISV32F_INSN_MOVE_M_SPRV32
; goto extract_sfmt_move_m_sprv32
;
1453 case 15: itype
= CRISV32F_INSN_MOVE_C_SPRV32_P12
; goto extract_sfmt_move_c_sprv32_p2
;
1454 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1459 unsigned int val2
= (((insn
>> 0) & (15 << 0)));
1476 case 14: itype
= CRISV32F_INSN_MOVE_M_SPRV32
; goto extract_sfmt_move_m_sprv32
;
1477 case 15: itype
= CRISV32F_INSN_MOVE_C_SPRV32_P13
; goto extract_sfmt_move_c_sprv32_p2
;
1478 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1483 unsigned int val2
= (((insn
>> 0) & (15 << 0)));
1500 case 14: itype
= CRISV32F_INSN_MOVE_M_SPRV32
; goto extract_sfmt_move_m_sprv32
;
1501 case 15: itype
= CRISV32F_INSN_MOVE_C_SPRV32_P14
; goto extract_sfmt_move_c_sprv32_p2
;
1502 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1507 unsigned int val2
= (((insn
>> 0) & (15 << 0)));
1524 case 14: itype
= CRISV32F_INSN_MOVE_M_SPRV32
; goto extract_sfmt_move_m_sprv32
;
1525 case 15: itype
= CRISV32F_INSN_MOVE_C_SPRV32_P15
; goto extract_sfmt_move_c_sprv32_p2
;
1526 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1529 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1534 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1551 case 14: itype
= CRISV32F_INSN_MOVE_M_B_M
; goto extract_sfmt_move_m_b_m
;
1552 case 15: itype
= CRISV32F_INSN_MOVECBR
; goto extract_sfmt_movecbr
;
1553 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1558 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1575 case 14: itype
= CRISV32F_INSN_MOVE_M_W_M
; goto extract_sfmt_move_m_w_m
;
1576 case 15: itype
= CRISV32F_INSN_MOVECWR
; goto extract_sfmt_movecwr
;
1577 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1582 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1599 case 14: itype
= CRISV32F_INSN_MOVE_M_D_M
; goto extract_sfmt_move_m_d_m
;
1600 case 15: itype
= CRISV32F_INSN_MOVECDR
; goto extract_sfmt_movecdr
;
1601 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1606 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1623 case 14: itype
= CRISV32F_INSN_SUB_M_B_M
; goto extract_sfmt_add_m_b_m
;
1624 case 15: itype
= CRISV32F_INSN_SUBCBR
; goto extract_sfmt_addcbr
;
1625 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1630 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1647 case 14: itype
= CRISV32F_INSN_SUB_M_W_M
; goto extract_sfmt_add_m_w_m
;
1648 case 15: itype
= CRISV32F_INSN_SUBCWR
; goto extract_sfmt_addcwr
;
1649 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1654 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1671 case 14: itype
= CRISV32F_INSN_SUB_M_D_M
; goto extract_sfmt_add_m_d_m
;
1672 case 15: itype
= CRISV32F_INSN_SUBCDR
; goto extract_sfmt_addcdr
;
1673 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1677 if ((base_insn
& 0xfff) == 0xebf)
1678 { itype
= CRISV32F_INSN_BAS_C
; goto extract_sfmt_bas_c
; }
1679 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1682 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1699 case 14: itype
= CRISV32F_INSN_CMP_M_B_M
; goto extract_sfmt_cmp_m_b_m
;
1700 case 15: itype
= CRISV32F_INSN_CMPCBR
; goto extract_sfmt_cmpcbr
;
1701 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1706 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1723 case 14: itype
= CRISV32F_INSN_CMP_M_W_M
; goto extract_sfmt_cmp_m_w_m
;
1724 case 15: itype
= CRISV32F_INSN_CMPCWR
; goto extract_sfmt_cmpcwr
;
1725 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1730 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1747 case 14: itype
= CRISV32F_INSN_CMP_M_D_M
; goto extract_sfmt_cmp_m_d_m
;
1748 case 15: itype
= CRISV32F_INSN_CMPCDR
; goto extract_sfmt_cmpcdr
;
1749 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1753 if ((base_insn
& 0xfff) == 0xeff)
1754 { itype
= CRISV32F_INSN_BASC_C
; goto extract_sfmt_bas_c
; }
1755 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1758 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1775 case 14: itype
= CRISV32F_INSN_AND_M_B_M
; goto extract_sfmt_and_m_b_m
;
1776 case 15: itype
= CRISV32F_INSN_ANDCBR
; goto extract_sfmt_andcbr
;
1777 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1782 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1799 case 14: itype
= CRISV32F_INSN_AND_M_W_M
; goto extract_sfmt_and_m_w_m
;
1800 case 15: itype
= CRISV32F_INSN_ANDCWR
; goto extract_sfmt_andcwr
;
1801 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1806 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1823 case 14: itype
= CRISV32F_INSN_AND_M_D_M
; goto extract_sfmt_and_m_d_m
;
1824 case 15: itype
= CRISV32F_INSN_ANDCDR
; goto extract_sfmt_andcdr
;
1825 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1829 if ((base_insn
& 0xfff) == 0xf3f)
1830 { itype
= CRISV32F_INSN_JASC_C
; goto extract_sfmt_jas_c
; }
1831 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1834 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1851 case 14: itype
= CRISV32F_INSN_OR_M_B_M
; goto extract_sfmt_and_m_b_m
;
1852 case 15: itype
= CRISV32F_INSN_ORCBR
; goto extract_sfmt_andcbr
;
1853 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1858 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1875 case 14: itype
= CRISV32F_INSN_OR_M_W_M
; goto extract_sfmt_and_m_w_m
;
1876 case 15: itype
= CRISV32F_INSN_ORCWR
; goto extract_sfmt_andcwr
;
1877 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1882 unsigned int val1
= (((insn
>> 0) & (15 << 0)));
1899 case 14: itype
= CRISV32F_INSN_OR_M_D_M
; goto extract_sfmt_and_m_d_m
;
1900 case 15: itype
= CRISV32F_INSN_ORCDR
; goto extract_sfmt_andcdr
;
1901 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1904 case 247: itype
= CRISV32F_INSN_MOVE_SS_R
; goto extract_sfmt_move_ss_r
;
1905 default: itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1910 /* The instruction has been decoded, now extract the fields. */
1914 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
1915 #define FLD(f) abuf->fields.sfmt_empty.f
1918 /* Record the fields for the semantic handler. */
1919 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_empty", (char *) 0));
1925 extract_sfmt_move_b_r
:
1927 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
1928 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
1929 #define FLD(f) abuf->fields.sfmt_addc_m.f
1933 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
1934 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
1936 /* Record the fields for the semantic handler. */
1937 FLD (f_operand1
) = f_operand1
;
1938 FLD (f_operand2
) = f_operand2
;
1939 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));
1941 #if WITH_PROFILE_MODEL_P
1942 /* Record the fields for profiling. */
1943 if (PROFILE_MODEL_P (current_cpu
))
1945 FLD (in_Rs
) = f_operand1
;
1946 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
1953 extract_sfmt_move_d_r
:
1955 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
1956 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
1957 #define FLD(f) abuf->fields.sfmt_addc_m.f
1961 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
1962 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
1964 /* Record the fields for the semantic handler. */
1965 FLD (f_operand1
) = f_operand1
;
1966 FLD (f_operand2
) = f_operand2
;
1967 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));
1969 #if WITH_PROFILE_MODEL_P
1970 /* Record the fields for profiling. */
1971 if (PROFILE_MODEL_P (current_cpu
))
1973 FLD (in_Rs
) = f_operand1
;
1974 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
1983 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
1984 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
1985 #define FLD(f) abuf->fields.sfmt_moveq.f
1989 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
1990 f_s6
= EXTRACT_LSB0_SINT (insn
, 16, 5, 6);
1992 /* Record the fields for the semantic handler. */
1994 FLD (f_operand2
) = f_operand2
;
1995 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));
1997 #if WITH_PROFILE_MODEL_P
1998 /* Record the fields for profiling. */
1999 if (PROFILE_MODEL_P (current_cpu
))
2001 FLD (out_Rd
) = f_operand2
;
2008 extract_sfmt_movs_b_r
:
2010 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2011 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2012 #define FLD(f) abuf->fields.sfmt_muls_b.f
2016 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2017 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
2019 /* Record the fields for the semantic handler. */
2020 FLD (f_operand1
) = f_operand1
;
2021 FLD (f_operand2
) = f_operand2
;
2022 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));
2024 #if WITH_PROFILE_MODEL_P
2025 /* Record the fields for profiling. */
2026 if (PROFILE_MODEL_P (current_cpu
))
2028 FLD (in_Rs
) = f_operand1
;
2029 FLD (out_Rd
) = f_operand2
;
2036 extract_sfmt_movecbr
:
2038 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2039 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2040 #define FLD(f) abuf->fields.sfmt_addcbr.f
2041 INT f_indir_pc__byte
;
2043 /* Contents of trailing part of insn. */
2046 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2047 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
2048 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2050 /* Record the fields for the semantic handler. */
2051 FLD (f_operand2
) = f_operand2
;
2052 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
2053 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));
2055 #if WITH_PROFILE_MODEL_P
2056 /* Record the fields for profiling. */
2057 if (PROFILE_MODEL_P (current_cpu
))
2059 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
2066 extract_sfmt_movecwr
:
2068 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2069 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2070 #define FLD(f) abuf->fields.sfmt_addcwr.f
2071 INT f_indir_pc__word
;
2073 /* Contents of trailing part of insn. */
2076 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2077 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
2078 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2080 /* Record the fields for the semantic handler. */
2081 FLD (f_operand2
) = f_operand2
;
2082 FLD (f_indir_pc__word
) = f_indir_pc__word
;
2083 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));
2085 #if WITH_PROFILE_MODEL_P
2086 /* Record the fields for profiling. */
2087 if (PROFILE_MODEL_P (current_cpu
))
2089 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
2096 extract_sfmt_movecdr
:
2098 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2099 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2100 #define FLD(f) abuf->fields.sfmt_bound_cd.f
2101 INT f_indir_pc__dword
;
2103 /* Contents of trailing part of insn. */
2106 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2107 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
2108 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2110 /* Record the fields for the semantic handler. */
2111 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
2112 FLD (f_operand2
) = f_operand2
;
2113 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));
2115 #if WITH_PROFILE_MODEL_P
2116 /* Record the fields for profiling. */
2117 if (PROFILE_MODEL_P (current_cpu
))
2119 FLD (out_Rd
) = f_operand2
;
2126 extract_sfmt_movscbr
:
2128 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2129 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2130 #define FLD(f) abuf->fields.sfmt_bound_cb.f
2132 INT f_indir_pc__byte
;
2133 /* Contents of trailing part of insn. */
2136 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2137 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2138 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
2140 /* Record the fields for the semantic handler. */
2141 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
2142 FLD (f_operand2
) = f_operand2
;
2143 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));
2145 #if WITH_PROFILE_MODEL_P
2146 /* Record the fields for profiling. */
2147 if (PROFILE_MODEL_P (current_cpu
))
2149 FLD (out_Rd
) = f_operand2
;
2156 extract_sfmt_movscwr
:
2158 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2159 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2160 #define FLD(f) abuf->fields.sfmt_bound_cw.f
2162 INT f_indir_pc__word
;
2163 /* Contents of trailing part of insn. */
2166 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2167 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2168 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
2170 /* Record the fields for the semantic handler. */
2171 FLD (f_indir_pc__word
) = f_indir_pc__word
;
2172 FLD (f_operand2
) = f_operand2
;
2173 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));
2175 #if WITH_PROFILE_MODEL_P
2176 /* Record the fields for profiling. */
2177 if (PROFILE_MODEL_P (current_cpu
))
2179 FLD (out_Rd
) = f_operand2
;
2186 extract_sfmt_movucbr
:
2188 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2189 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2190 #define FLD(f) abuf->fields.sfmt_bound_cb.f
2192 INT f_indir_pc__byte
;
2193 /* Contents of trailing part of insn. */
2196 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2197 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2198 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
2200 /* Record the fields for the semantic handler. */
2201 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
2202 FLD (f_operand2
) = f_operand2
;
2203 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));
2205 #if WITH_PROFILE_MODEL_P
2206 /* Record the fields for profiling. */
2207 if (PROFILE_MODEL_P (current_cpu
))
2209 FLD (out_Rd
) = f_operand2
;
2216 extract_sfmt_movucwr
:
2218 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2219 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2220 #define FLD(f) abuf->fields.sfmt_bound_cw.f
2222 INT f_indir_pc__word
;
2223 /* Contents of trailing part of insn. */
2226 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2227 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2228 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
2230 /* Record the fields for the semantic handler. */
2231 FLD (f_indir_pc__word
) = f_indir_pc__word
;
2232 FLD (f_operand2
) = f_operand2
;
2233 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));
2235 #if WITH_PROFILE_MODEL_P
2236 /* Record the fields for profiling. */
2237 if (PROFILE_MODEL_P (current_cpu
))
2239 FLD (out_Rd
) = f_operand2
;
2248 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2249 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2250 #define FLD(f) abuf->fields.sfmt_addq.f
2254 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2255 f_u6
= EXTRACT_LSB0_UINT (insn
, 16, 5, 6);
2257 /* Record the fields for the semantic handler. */
2258 FLD (f_operand2
) = f_operand2
;
2260 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));
2262 #if WITH_PROFILE_MODEL_P
2263 /* Record the fields for profiling. */
2264 if (PROFILE_MODEL_P (current_cpu
))
2266 FLD (in_Rd
) = f_operand2
;
2267 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
2274 extract_sfmt_cmp_r_b_r
:
2276 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2277 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2278 #define FLD(f) abuf->fields.sfmt_muls_b.f
2282 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2283 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
2285 /* Record the fields for the semantic handler. */
2286 FLD (f_operand2
) = f_operand2
;
2287 FLD (f_operand1
) = f_operand1
;
2288 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));
2290 #if WITH_PROFILE_MODEL_P
2291 /* Record the fields for profiling. */
2292 if (PROFILE_MODEL_P (current_cpu
))
2294 FLD (in_Rd
) = f_operand2
;
2295 FLD (in_Rs
) = f_operand1
;
2302 extract_sfmt_cmp_m_b_m
:
2304 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2305 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2306 #define FLD(f) abuf->fields.sfmt_addc_m.f
2311 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2312 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
2313 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
2315 /* Record the fields for the semantic handler. */
2316 FLD (f_operand2
) = f_operand2
;
2317 FLD (f_operand1
) = f_operand1
;
2318 FLD (f_memmode
) = f_memmode
;
2319 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));
2321 #if WITH_PROFILE_MODEL_P
2322 /* Record the fields for profiling. */
2323 if (PROFILE_MODEL_P (current_cpu
))
2325 FLD (in_Rd
) = f_operand2
;
2326 FLD (in_Rs
) = f_operand1
;
2327 FLD (out_Rs
) = f_operand1
;
2334 extract_sfmt_cmp_m_w_m
:
2336 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2337 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2338 #define FLD(f) abuf->fields.sfmt_addc_m.f
2343 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2344 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
2345 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
2347 /* Record the fields for the semantic handler. */
2348 FLD (f_operand2
) = f_operand2
;
2349 FLD (f_operand1
) = f_operand1
;
2350 FLD (f_memmode
) = f_memmode
;
2351 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));
2353 #if WITH_PROFILE_MODEL_P
2354 /* Record the fields for profiling. */
2355 if (PROFILE_MODEL_P (current_cpu
))
2357 FLD (in_Rd
) = f_operand2
;
2358 FLD (in_Rs
) = f_operand1
;
2359 FLD (out_Rs
) = f_operand1
;
2366 extract_sfmt_cmp_m_d_m
:
2368 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2369 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2370 #define FLD(f) abuf->fields.sfmt_addc_m.f
2375 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2376 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
2377 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
2379 /* Record the fields for the semantic handler. */
2380 FLD (f_operand2
) = f_operand2
;
2381 FLD (f_operand1
) = f_operand1
;
2382 FLD (f_memmode
) = f_memmode
;
2383 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));
2385 #if WITH_PROFILE_MODEL_P
2386 /* Record the fields for profiling. */
2387 if (PROFILE_MODEL_P (current_cpu
))
2389 FLD (in_Rd
) = f_operand2
;
2390 FLD (in_Rs
) = f_operand1
;
2391 FLD (out_Rs
) = f_operand1
;
2398 extract_sfmt_cmpcbr
:
2400 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2401 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2402 #define FLD(f) abuf->fields.sfmt_bound_cb.f
2403 INT f_indir_pc__byte
;
2405 /* Contents of trailing part of insn. */
2408 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2409 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
2410 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2412 /* Record the fields for the semantic handler. */
2413 FLD (f_operand2
) = f_operand2
;
2414 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
2415 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));
2417 #if WITH_PROFILE_MODEL_P
2418 /* Record the fields for profiling. */
2419 if (PROFILE_MODEL_P (current_cpu
))
2421 FLD (in_Rd
) = f_operand2
;
2428 extract_sfmt_cmpcwr
:
2430 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2431 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2432 #define FLD(f) abuf->fields.sfmt_bound_cw.f
2433 INT f_indir_pc__word
;
2435 /* Contents of trailing part of insn. */
2438 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2439 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
2440 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2442 /* Record the fields for the semantic handler. */
2443 FLD (f_operand2
) = f_operand2
;
2444 FLD (f_indir_pc__word
) = f_indir_pc__word
;
2445 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));
2447 #if WITH_PROFILE_MODEL_P
2448 /* Record the fields for profiling. */
2449 if (PROFILE_MODEL_P (current_cpu
))
2451 FLD (in_Rd
) = f_operand2
;
2458 extract_sfmt_cmpcdr
:
2460 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2461 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2462 #define FLD(f) abuf->fields.sfmt_bound_cd.f
2463 INT f_indir_pc__dword
;
2465 /* Contents of trailing part of insn. */
2468 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2469 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
2470 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2472 /* Record the fields for the semantic handler. */
2473 FLD (f_operand2
) = f_operand2
;
2474 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
2475 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));
2477 #if WITH_PROFILE_MODEL_P
2478 /* Record the fields for profiling. */
2479 if (PROFILE_MODEL_P (current_cpu
))
2481 FLD (in_Rd
) = f_operand2
;
2490 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2491 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2492 #define FLD(f) abuf->fields.sfmt_andq.f
2496 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2497 f_s6
= EXTRACT_LSB0_SINT (insn
, 16, 5, 6);
2499 /* Record the fields for the semantic handler. */
2500 FLD (f_operand2
) = f_operand2
;
2502 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));
2504 #if WITH_PROFILE_MODEL_P
2505 /* Record the fields for profiling. */
2506 if (PROFILE_MODEL_P (current_cpu
))
2508 FLD (in_Rd
) = f_operand2
;
2515 extract_sfmt_cmpucbr
:
2517 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2518 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2519 #define FLD(f) abuf->fields.sfmt_bound_cb.f
2520 INT f_indir_pc__byte
;
2522 /* Contents of trailing part of insn. */
2525 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2526 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
2527 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2529 /* Record the fields for the semantic handler. */
2530 FLD (f_operand2
) = f_operand2
;
2531 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
2532 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));
2534 #if WITH_PROFILE_MODEL_P
2535 /* Record the fields for profiling. */
2536 if (PROFILE_MODEL_P (current_cpu
))
2538 FLD (in_Rd
) = f_operand2
;
2545 extract_sfmt_cmpucwr
:
2547 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2548 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2549 #define FLD(f) abuf->fields.sfmt_bound_cw.f
2550 INT f_indir_pc__word
;
2552 /* Contents of trailing part of insn. */
2555 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2556 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
2557 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2559 /* Record the fields for the semantic handler. */
2560 FLD (f_operand2
) = f_operand2
;
2561 FLD (f_indir_pc__word
) = f_indir_pc__word
;
2562 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));
2564 #if WITH_PROFILE_MODEL_P
2565 /* Record the fields for profiling. */
2566 if (PROFILE_MODEL_P (current_cpu
))
2568 FLD (in_Rd
) = f_operand2
;
2575 extract_sfmt_move_m_b_m
:
2577 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2578 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2579 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2584 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2585 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
2586 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
2588 /* Record the fields for the semantic handler. */
2589 FLD (f_operand1
) = f_operand1
;
2590 FLD (f_operand2
) = f_operand2
;
2591 FLD (f_memmode
) = f_memmode
;
2592 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));
2594 #if WITH_PROFILE_MODEL_P
2595 /* Record the fields for profiling. */
2596 if (PROFILE_MODEL_P (current_cpu
))
2598 FLD (in_Rs
) = f_operand1
;
2599 FLD (out_Rs
) = f_operand1
;
2600 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
)));
2607 extract_sfmt_move_m_w_m
:
2609 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2610 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2611 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2616 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2617 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
2618 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
2620 /* Record the fields for the semantic handler. */
2621 FLD (f_operand1
) = f_operand1
;
2622 FLD (f_operand2
) = f_operand2
;
2623 FLD (f_memmode
) = f_memmode
;
2624 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));
2626 #if WITH_PROFILE_MODEL_P
2627 /* Record the fields for profiling. */
2628 if (PROFILE_MODEL_P (current_cpu
))
2630 FLD (in_Rs
) = f_operand1
;
2631 FLD (out_Rs
) = f_operand1
;
2632 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
)));
2639 extract_sfmt_move_m_d_m
:
2641 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2642 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2643 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2648 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2649 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
2650 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
2652 /* Record the fields for the semantic handler. */
2653 FLD (f_operand1
) = f_operand1
;
2654 FLD (f_operand2
) = f_operand2
;
2655 FLD (f_memmode
) = f_memmode
;
2656 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));
2658 #if WITH_PROFILE_MODEL_P
2659 /* Record the fields for profiling. */
2660 if (PROFILE_MODEL_P (current_cpu
))
2662 FLD (in_Rs
) = f_operand1
;
2663 FLD (out_Rs
) = f_operand1
;
2664 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
)));
2671 extract_sfmt_movs_m_b_m
:
2673 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2674 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2675 #define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
2680 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2681 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
2682 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
2684 /* Record the fields for the semantic handler. */
2685 FLD (f_operand1
) = f_operand1
;
2686 FLD (f_memmode
) = f_memmode
;
2687 FLD (f_operand2
) = f_operand2
;
2688 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));
2690 #if WITH_PROFILE_MODEL_P
2691 /* Record the fields for profiling. */
2692 if (PROFILE_MODEL_P (current_cpu
))
2694 FLD (in_Rs
) = f_operand1
;
2695 FLD (out_Rd
) = f_operand2
;
2696 FLD (out_Rs
) = f_operand1
;
2703 extract_sfmt_movs_m_w_m
:
2705 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2706 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2707 #define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
2712 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2713 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
2714 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
2716 /* Record the fields for the semantic handler. */
2717 FLD (f_operand1
) = f_operand1
;
2718 FLD (f_memmode
) = f_memmode
;
2719 FLD (f_operand2
) = f_operand2
;
2720 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));
2722 #if WITH_PROFILE_MODEL_P
2723 /* Record the fields for profiling. */
2724 if (PROFILE_MODEL_P (current_cpu
))
2726 FLD (in_Rs
) = f_operand1
;
2727 FLD (out_Rd
) = f_operand2
;
2728 FLD (out_Rs
) = f_operand1
;
2735 extract_sfmt_move_r_sprv32
:
2737 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2738 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2739 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
2743 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2744 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
2746 /* Record the fields for the semantic handler. */
2747 FLD (f_operand1
) = f_operand1
;
2748 FLD (f_operand2
) = f_operand2
;
2749 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_move_r_sprv32", "f_operand1 0x%x", 'x', f_operand1
, "f_operand2 0x%x", 'x', f_operand2
, (char *) 0));
2751 #if WITH_PROFILE_MODEL_P
2752 /* Record the fields for profiling. */
2753 if (PROFILE_MODEL_P (current_cpu
))
2755 FLD (in_Rs
) = f_operand1
;
2756 FLD (out_Pd
) = f_operand2
;
2763 extract_sfmt_move_spr_rv32
:
2765 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2766 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2767 #define FLD(f) abuf->fields.sfmt_mcp.f
2771 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2772 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
2774 /* Record the fields for the semantic handler. */
2775 FLD (f_operand2
) = f_operand2
;
2776 FLD (f_operand1
) = f_operand1
;
2777 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_move_spr_rv32", "f_operand2 0x%x", 'x', f_operand2
, "f_operand1 0x%x", 'x', f_operand1
, (char *) 0));
2779 #if WITH_PROFILE_MODEL_P
2780 /* Record the fields for profiling. */
2781 if (PROFILE_MODEL_P (current_cpu
))
2783 FLD (in_Ps
) = f_operand2
;
2784 FLD (out_h_gr_SI_index_of__INT_Rs
) = FLD (f_operand1
);
2791 extract_sfmt_move_m_sprv32
:
2793 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2794 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2795 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
2800 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2801 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
2802 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
2804 /* Record the fields for the semantic handler. */
2805 FLD (f_operand1
) = f_operand1
;
2806 FLD (f_operand2
) = f_operand2
;
2807 FLD (f_memmode
) = f_memmode
;
2808 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_move_m_sprv32", "f_operand1 0x%x", 'x', f_operand1
, "f_operand2 0x%x", 'x', f_operand2
, "f_memmode 0x%x", 'x', f_memmode
, (char *) 0));
2810 #if WITH_PROFILE_MODEL_P
2811 /* Record the fields for profiling. */
2812 if (PROFILE_MODEL_P (current_cpu
))
2814 FLD (in_Rs
) = f_operand1
;
2815 FLD (out_Pd
) = f_operand2
;
2816 FLD (out_Rs
) = f_operand1
;
2823 extract_sfmt_move_c_sprv32_p2
:
2825 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2826 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2827 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
2828 INT f_indir_pc__dword
;
2830 /* Contents of trailing part of insn. */
2833 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2834 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
2835 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2837 /* Record the fields for the semantic handler. */
2838 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
2839 FLD (f_operand2
) = f_operand2
;
2840 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_move_c_sprv32_p2", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword
, "f_operand2 0x%x", 'x', f_operand2
, (char *) 0));
2842 #if WITH_PROFILE_MODEL_P
2843 /* Record the fields for profiling. */
2844 if (PROFILE_MODEL_P (current_cpu
))
2846 FLD (out_Pd
) = f_operand2
;
2853 extract_sfmt_move_spr_mv32
:
2855 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2856 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2857 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
2862 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2863 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
2864 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
2866 /* Record the fields for the semantic handler. */
2867 FLD (f_operand2
) = f_operand2
;
2868 FLD (f_operand1
) = f_operand1
;
2869 FLD (f_memmode
) = f_memmode
;
2870 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_move_spr_mv32", "f_operand2 0x%x", 'x', f_operand2
, "f_operand1 0x%x", 'x', f_operand1
, "f_memmode 0x%x", 'x', f_memmode
, (char *) 0));
2872 #if WITH_PROFILE_MODEL_P
2873 /* Record the fields for profiling. */
2874 if (PROFILE_MODEL_P (current_cpu
))
2876 FLD (in_Ps
) = f_operand2
;
2877 FLD (in_Rs
) = f_operand1
;
2878 FLD (out_Rs
) = f_operand1
;
2885 extract_sfmt_move_ss_r
:
2887 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2888 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2889 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
2893 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2894 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
2896 /* Record the fields for the semantic handler. */
2897 FLD (f_operand2
) = f_operand2
;
2898 FLD (f_operand1
) = f_operand1
;
2899 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_move_ss_r", "f_operand2 0x%x", 'x', f_operand2
, "f_operand1 0x%x", 'x', f_operand1
, (char *) 0));
2901 #if WITH_PROFILE_MODEL_P
2902 /* Record the fields for profiling. */
2903 if (PROFILE_MODEL_P (current_cpu
))
2905 FLD (out_Rs
) = f_operand1
;
2912 extract_sfmt_move_r_ss
:
2914 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2915 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2916 #define FLD(f) abuf->fields.sfmt_mcp.f
2920 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2921 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
2923 /* Record the fields for the semantic handler. */
2924 FLD (f_operand1
) = f_operand1
;
2925 FLD (f_operand2
) = f_operand2
;
2926 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_move_r_ss", "f_operand1 0x%x", 'x', f_operand1
, "f_operand2 0x%x", 'x', f_operand2
, (char *) 0));
2928 #if WITH_PROFILE_MODEL_P
2929 /* Record the fields for profiling. */
2930 if (PROFILE_MODEL_P (current_cpu
))
2932 FLD (in_Rs
) = f_operand1
;
2939 extract_sfmt_movem_r_m_v32
:
2941 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2942 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2943 #define FLD(f) abuf->fields.sfmt_movem_r_m_v32.f
2948 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2949 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
2950 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
2952 /* Record the fields for the semantic handler. */
2953 FLD (f_operand2
) = f_operand2
;
2954 FLD (f_operand1
) = f_operand1
;
2955 FLD (f_memmode
) = f_memmode
;
2956 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movem_r_m_v32", "f_operand2 0x%x", 'x', f_operand2
, "f_operand1 0x%x", 'x', f_operand1
, "f_memmode 0x%x", 'x', f_memmode
, (char *) 0));
2958 #if WITH_PROFILE_MODEL_P
2959 /* Record the fields for profiling. */
2960 if (PROFILE_MODEL_P (current_cpu
))
2962 FLD (in_Rd
) = f_operand2
;
2963 FLD (in_Rs
) = f_operand1
;
2964 FLD (in_h_gr_SI_0
) = 0;
2965 FLD (in_h_gr_SI_1
) = 1;
2966 FLD (in_h_gr_SI_10
) = 10;
2967 FLD (in_h_gr_SI_11
) = 11;
2968 FLD (in_h_gr_SI_12
) = 12;
2969 FLD (in_h_gr_SI_13
) = 13;
2970 FLD (in_h_gr_SI_14
) = 14;
2971 FLD (in_h_gr_SI_15
) = 15;
2972 FLD (in_h_gr_SI_2
) = 2;
2973 FLD (in_h_gr_SI_3
) = 3;
2974 FLD (in_h_gr_SI_4
) = 4;
2975 FLD (in_h_gr_SI_5
) = 5;
2976 FLD (in_h_gr_SI_6
) = 6;
2977 FLD (in_h_gr_SI_7
) = 7;
2978 FLD (in_h_gr_SI_8
) = 8;
2979 FLD (in_h_gr_SI_9
) = 9;
2980 FLD (out_Rs
) = f_operand1
;
2987 extract_sfmt_movem_m_r_v32
:
2989 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2990 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
2991 #define FLD(f) abuf->fields.sfmt_movem_m_r_v32.f
2996 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2997 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
2998 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3000 /* Record the fields for the semantic handler. */
3001 FLD (f_operand2
) = f_operand2
;
3002 FLD (f_operand1
) = f_operand1
;
3003 FLD (f_memmode
) = f_memmode
;
3004 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movem_m_r_v32", "f_operand2 0x%x", 'x', f_operand2
, "f_operand1 0x%x", 'x', f_operand1
, "f_memmode 0x%x", 'x', f_memmode
, (char *) 0));
3006 #if WITH_PROFILE_MODEL_P
3007 /* Record the fields for profiling. */
3008 if (PROFILE_MODEL_P (current_cpu
))
3010 FLD (in_Rd
) = f_operand2
;
3011 FLD (in_Rs
) = f_operand1
;
3012 FLD (out_Rs
) = f_operand1
;
3013 FLD (out_h_gr_SI_0
) = 0;
3014 FLD (out_h_gr_SI_1
) = 1;
3015 FLD (out_h_gr_SI_10
) = 10;
3016 FLD (out_h_gr_SI_11
) = 11;
3017 FLD (out_h_gr_SI_12
) = 12;
3018 FLD (out_h_gr_SI_13
) = 13;
3019 FLD (out_h_gr_SI_14
) = 14;
3020 FLD (out_h_gr_SI_15
) = 15;
3021 FLD (out_h_gr_SI_2
) = 2;
3022 FLD (out_h_gr_SI_3
) = 3;
3023 FLD (out_h_gr_SI_4
) = 4;
3024 FLD (out_h_gr_SI_5
) = 5;
3025 FLD (out_h_gr_SI_6
) = 6;
3026 FLD (out_h_gr_SI_7
) = 7;
3027 FLD (out_h_gr_SI_8
) = 8;
3028 FLD (out_h_gr_SI_9
) = 9;
3035 extract_sfmt_add_b_r
:
3037 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3038 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3039 #define FLD(f) abuf->fields.sfmt_addc_m.f
3043 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3044 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3046 /* Record the fields for the semantic handler. */
3047 FLD (f_operand2
) = f_operand2
;
3048 FLD (f_operand1
) = f_operand1
;
3049 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));
3051 #if WITH_PROFILE_MODEL_P
3052 /* Record the fields for profiling. */
3053 if (PROFILE_MODEL_P (current_cpu
))
3055 FLD (in_Rd
) = f_operand2
;
3056 FLD (in_Rs
) = f_operand1
;
3057 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
3064 extract_sfmt_add_d_r
:
3066 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3067 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3068 #define FLD(f) abuf->fields.sfmt_addc_m.f
3072 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3073 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3075 /* Record the fields for the semantic handler. */
3076 FLD (f_operand2
) = f_operand2
;
3077 FLD (f_operand1
) = f_operand1
;
3078 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));
3080 #if WITH_PROFILE_MODEL_P
3081 /* Record the fields for profiling. */
3082 if (PROFILE_MODEL_P (current_cpu
))
3084 FLD (in_Rd
) = f_operand2
;
3085 FLD (in_Rs
) = f_operand1
;
3086 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
3093 extract_sfmt_add_m_b_m
:
3095 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3096 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3097 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3102 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3103 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3104 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3106 /* Record the fields for the semantic handler. */
3107 FLD (f_operand2
) = f_operand2
;
3108 FLD (f_operand1
) = f_operand1
;
3109 FLD (f_memmode
) = f_memmode
;
3110 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));
3112 #if WITH_PROFILE_MODEL_P
3113 /* Record the fields for profiling. */
3114 if (PROFILE_MODEL_P (current_cpu
))
3116 FLD (in_Rd
) = f_operand2
;
3117 FLD (in_Rs
) = f_operand1
;
3118 FLD (out_Rs
) = f_operand1
;
3119 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
)));
3126 extract_sfmt_add_m_w_m
:
3128 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3129 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3130 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3135 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3136 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3137 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3139 /* Record the fields for the semantic handler. */
3140 FLD (f_operand2
) = f_operand2
;
3141 FLD (f_operand1
) = f_operand1
;
3142 FLD (f_memmode
) = f_memmode
;
3143 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));
3145 #if WITH_PROFILE_MODEL_P
3146 /* Record the fields for profiling. */
3147 if (PROFILE_MODEL_P (current_cpu
))
3149 FLD (in_Rd
) = f_operand2
;
3150 FLD (in_Rs
) = f_operand1
;
3151 FLD (out_Rs
) = f_operand1
;
3152 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
)));
3159 extract_sfmt_add_m_d_m
:
3161 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3162 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3163 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3168 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3169 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3170 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3172 /* Record the fields for the semantic handler. */
3173 FLD (f_operand2
) = f_operand2
;
3174 FLD (f_operand1
) = f_operand1
;
3175 FLD (f_memmode
) = f_memmode
;
3176 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));
3178 #if WITH_PROFILE_MODEL_P
3179 /* Record the fields for profiling. */
3180 if (PROFILE_MODEL_P (current_cpu
))
3182 FLD (in_Rd
) = f_operand2
;
3183 FLD (in_Rs
) = f_operand1
;
3184 FLD (out_Rs
) = f_operand1
;
3185 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
)));
3192 extract_sfmt_addcbr
:
3194 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3195 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3196 #define FLD(f) abuf->fields.sfmt_addcbr.f
3197 INT f_indir_pc__byte
;
3199 /* Contents of trailing part of insn. */
3202 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3203 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
3204 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3206 /* Record the fields for the semantic handler. */
3207 FLD (f_operand2
) = f_operand2
;
3208 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
3209 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));
3211 #if WITH_PROFILE_MODEL_P
3212 /* Record the fields for profiling. */
3213 if (PROFILE_MODEL_P (current_cpu
))
3215 FLD (in_Rd
) = f_operand2
;
3216 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
3223 extract_sfmt_addcwr
:
3225 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3226 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3227 #define FLD(f) abuf->fields.sfmt_addcwr.f
3228 INT f_indir_pc__word
;
3230 /* Contents of trailing part of insn. */
3233 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3234 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
3235 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3237 /* Record the fields for the semantic handler. */
3238 FLD (f_operand2
) = f_operand2
;
3239 FLD (f_indir_pc__word
) = f_indir_pc__word
;
3240 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));
3242 #if WITH_PROFILE_MODEL_P
3243 /* Record the fields for profiling. */
3244 if (PROFILE_MODEL_P (current_cpu
))
3246 FLD (in_Rd
) = f_operand2
;
3247 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
3254 extract_sfmt_addcdr
:
3256 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3257 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3258 #define FLD(f) abuf->fields.sfmt_addcdr.f
3259 INT f_indir_pc__dword
;
3261 /* Contents of trailing part of insn. */
3264 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3265 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
3266 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3268 /* Record the fields for the semantic handler. */
3269 FLD (f_operand2
) = f_operand2
;
3270 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
3271 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));
3273 #if WITH_PROFILE_MODEL_P
3274 /* Record the fields for profiling. */
3275 if (PROFILE_MODEL_P (current_cpu
))
3277 FLD (in_Rd
) = f_operand2
;
3278 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
3285 extract_sfmt_adds_m_b_m
:
3287 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3288 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3289 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3294 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3295 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3296 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3298 /* Record the fields for the semantic handler. */
3299 FLD (f_operand2
) = f_operand2
;
3300 FLD (f_operand1
) = f_operand1
;
3301 FLD (f_memmode
) = f_memmode
;
3302 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));
3304 #if WITH_PROFILE_MODEL_P
3305 /* Record the fields for profiling. */
3306 if (PROFILE_MODEL_P (current_cpu
))
3308 FLD (in_Rd
) = f_operand2
;
3309 FLD (in_Rs
) = f_operand1
;
3310 FLD (out_Rs
) = f_operand1
;
3311 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
)));
3318 extract_sfmt_adds_m_w_m
:
3320 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3321 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3322 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3327 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3328 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3329 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3331 /* Record the fields for the semantic handler. */
3332 FLD (f_operand2
) = f_operand2
;
3333 FLD (f_operand1
) = f_operand1
;
3334 FLD (f_memmode
) = f_memmode
;
3335 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));
3337 #if WITH_PROFILE_MODEL_P
3338 /* Record the fields for profiling. */
3339 if (PROFILE_MODEL_P (current_cpu
))
3341 FLD (in_Rd
) = f_operand2
;
3342 FLD (in_Rs
) = f_operand1
;
3343 FLD (out_Rs
) = f_operand1
;
3344 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
)));
3351 extract_sfmt_addscbr
:
3353 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3354 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3355 #define FLD(f) abuf->fields.sfmt_addcbr.f
3356 INT f_indir_pc__byte
;
3358 /* Contents of trailing part of insn. */
3361 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3362 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
3363 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3365 /* Record the fields for the semantic handler. */
3366 FLD (f_operand2
) = f_operand2
;
3367 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
3368 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));
3370 #if WITH_PROFILE_MODEL_P
3371 /* Record the fields for profiling. */
3372 if (PROFILE_MODEL_P (current_cpu
))
3374 FLD (in_Rd
) = f_operand2
;
3375 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
3382 extract_sfmt_addscwr
:
3384 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3385 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3386 #define FLD(f) abuf->fields.sfmt_addcwr.f
3387 INT f_indir_pc__word
;
3389 /* Contents of trailing part of insn. */
3392 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3393 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
3394 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3396 /* Record the fields for the semantic handler. */
3397 FLD (f_operand2
) = f_operand2
;
3398 FLD (f_indir_pc__word
) = f_indir_pc__word
;
3399 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));
3401 #if WITH_PROFILE_MODEL_P
3402 /* Record the fields for profiling. */
3403 if (PROFILE_MODEL_P (current_cpu
))
3405 FLD (in_Rd
) = f_operand2
;
3406 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
3413 extract_sfmt_addc_m
:
3415 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3416 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3417 #define FLD(f) abuf->fields.sfmt_addc_m.f
3422 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3423 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3424 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3426 /* Record the fields for the semantic handler. */
3427 FLD (f_operand2
) = f_operand2
;
3428 FLD (f_operand1
) = f_operand1
;
3429 FLD (f_memmode
) = f_memmode
;
3430 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_addc_m", "f_operand2 0x%x", 'x', f_operand2
, "f_operand1 0x%x", 'x', f_operand1
, "f_memmode 0x%x", 'x', f_memmode
, (char *) 0));
3432 #if WITH_PROFILE_MODEL_P
3433 /* Record the fields for profiling. */
3434 if (PROFILE_MODEL_P (current_cpu
))
3436 FLD (in_Rd
) = f_operand2
;
3437 FLD (in_Rs
) = f_operand1
;
3438 FLD (out_Rs
) = f_operand1
;
3439 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
3446 extract_sfmt_lapc_d
:
3448 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3449 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3450 #define FLD(f) abuf->fields.sfmt_lapc_d.f
3451 SI f_indir_pc__dword_pcrel
;
3453 /* Contents of trailing part of insn. */
3456 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3457 f_indir_pc__dword_pcrel
= ((pc
) + ((0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0))));
3458 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3460 /* Record the fields for the semantic handler. */
3461 FLD (f_operand2
) = f_operand2
;
3462 FLD (i_const32_pcrel
) = f_indir_pc__dword_pcrel
;
3463 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_lapc_d", "f_operand2 0x%x", 'x', f_operand2
, "const32_pcrel 0x%x", 'x', f_indir_pc__dword_pcrel
, (char *) 0));
3465 #if WITH_PROFILE_MODEL_P
3466 /* Record the fields for profiling. */
3467 if (PROFILE_MODEL_P (current_cpu
))
3469 FLD (out_Rd
) = f_operand2
;
3478 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3479 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3480 #define FLD(f) abuf->fields.sfmt_lapcq.f
3484 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3485 f_qo
= ((pc
) + (((EXTRACT_LSB0_UINT (insn
, 16, 3, 4)) << (1))));
3487 /* Record the fields for the semantic handler. */
3488 FLD (f_operand2
) = f_operand2
;
3490 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_lapcq", "f_operand2 0x%x", 'x', f_operand2
, "qo 0x%x", 'x', f_qo
, (char *) 0));
3492 #if WITH_PROFILE_MODEL_P
3493 /* Record the fields for profiling. */
3494 if (PROFILE_MODEL_P (current_cpu
))
3496 FLD (out_Rd
) = f_operand2
;
3503 extract_sfmt_addi_b_r
:
3505 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3506 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3507 #define FLD(f) abuf->fields.sfmt_addc_m.f
3511 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3512 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3514 /* Record the fields for the semantic handler. */
3515 FLD (f_operand2
) = f_operand2
;
3516 FLD (f_operand1
) = f_operand1
;
3517 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));
3519 #if WITH_PROFILE_MODEL_P
3520 /* Record the fields for profiling. */
3521 if (PROFILE_MODEL_P (current_cpu
))
3523 FLD (in_Rd
) = f_operand2
;
3524 FLD (in_Rs
) = f_operand1
;
3525 FLD (out_Rs
) = f_operand1
;
3532 extract_sfmt_neg_b_r
:
3534 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3535 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3536 #define FLD(f) abuf->fields.sfmt_addc_m.f
3540 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3541 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3543 /* Record the fields for the semantic handler. */
3544 FLD (f_operand1
) = f_operand1
;
3545 FLD (f_operand2
) = f_operand2
;
3546 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));
3548 #if WITH_PROFILE_MODEL_P
3549 /* Record the fields for profiling. */
3550 if (PROFILE_MODEL_P (current_cpu
))
3552 FLD (in_Rs
) = f_operand1
;
3553 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
3560 extract_sfmt_neg_d_r
:
3562 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3563 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3564 #define FLD(f) abuf->fields.sfmt_addc_m.f
3568 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3569 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3571 /* Record the fields for the semantic handler. */
3572 FLD (f_operand1
) = f_operand1
;
3573 FLD (f_operand2
) = f_operand2
;
3574 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));
3576 #if WITH_PROFILE_MODEL_P
3577 /* Record the fields for profiling. */
3578 if (PROFILE_MODEL_P (current_cpu
))
3580 FLD (in_Rs
) = f_operand1
;
3581 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
3588 extract_sfmt_test_m_b_m
:
3590 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3591 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3592 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
3596 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3597 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3599 /* Record the fields for the semantic handler. */
3600 FLD (f_operand1
) = f_operand1
;
3601 FLD (f_memmode
) = f_memmode
;
3602 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));
3604 #if WITH_PROFILE_MODEL_P
3605 /* Record the fields for profiling. */
3606 if (PROFILE_MODEL_P (current_cpu
))
3608 FLD (in_Rs
) = f_operand1
;
3609 FLD (out_Rs
) = f_operand1
;
3616 extract_sfmt_test_m_w_m
:
3618 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3619 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3620 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
3624 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3625 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3627 /* Record the fields for the semantic handler. */
3628 FLD (f_operand1
) = f_operand1
;
3629 FLD (f_memmode
) = f_memmode
;
3630 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));
3632 #if WITH_PROFILE_MODEL_P
3633 /* Record the fields for profiling. */
3634 if (PROFILE_MODEL_P (current_cpu
))
3636 FLD (in_Rs
) = f_operand1
;
3637 FLD (out_Rs
) = f_operand1
;
3644 extract_sfmt_test_m_d_m
:
3646 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3647 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3648 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
3652 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3653 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3655 /* Record the fields for the semantic handler. */
3656 FLD (f_operand1
) = f_operand1
;
3657 FLD (f_memmode
) = f_memmode
;
3658 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));
3660 #if WITH_PROFILE_MODEL_P
3661 /* Record the fields for profiling. */
3662 if (PROFILE_MODEL_P (current_cpu
))
3664 FLD (in_Rs
) = f_operand1
;
3665 FLD (out_Rs
) = f_operand1
;
3672 extract_sfmt_move_r_m_b_m
:
3674 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3675 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3676 #define FLD(f) abuf->fields.sfmt_addc_m.f
3681 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3682 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3683 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3685 /* Record the fields for the semantic handler. */
3686 FLD (f_operand2
) = f_operand2
;
3687 FLD (f_operand1
) = f_operand1
;
3688 FLD (f_memmode
) = f_memmode
;
3689 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));
3691 #if WITH_PROFILE_MODEL_P
3692 /* Record the fields for profiling. */
3693 if (PROFILE_MODEL_P (current_cpu
))
3695 FLD (in_Rd
) = f_operand2
;
3696 FLD (in_Rs
) = f_operand1
;
3697 FLD (out_Rs
) = f_operand1
;
3704 extract_sfmt_move_r_m_w_m
:
3706 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3707 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3708 #define FLD(f) abuf->fields.sfmt_addc_m.f
3713 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3714 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3715 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3717 /* Record the fields for the semantic handler. */
3718 FLD (f_operand2
) = f_operand2
;
3719 FLD (f_operand1
) = f_operand1
;
3720 FLD (f_memmode
) = f_memmode
;
3721 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));
3723 #if WITH_PROFILE_MODEL_P
3724 /* Record the fields for profiling. */
3725 if (PROFILE_MODEL_P (current_cpu
))
3727 FLD (in_Rd
) = f_operand2
;
3728 FLD (in_Rs
) = f_operand1
;
3729 FLD (out_Rs
) = f_operand1
;
3736 extract_sfmt_move_r_m_d_m
:
3738 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3739 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3740 #define FLD(f) abuf->fields.sfmt_addc_m.f
3745 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3746 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3747 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3749 /* Record the fields for the semantic handler. */
3750 FLD (f_operand2
) = f_operand2
;
3751 FLD (f_operand1
) = f_operand1
;
3752 FLD (f_memmode
) = f_memmode
;
3753 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));
3755 #if WITH_PROFILE_MODEL_P
3756 /* Record the fields for profiling. */
3757 if (PROFILE_MODEL_P (current_cpu
))
3759 FLD (in_Rd
) = f_operand2
;
3760 FLD (in_Rs
) = f_operand1
;
3761 FLD (out_Rs
) = f_operand1
;
3768 extract_sfmt_muls_b
:
3770 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3771 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3772 #define FLD(f) abuf->fields.sfmt_muls_b.f
3776 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3777 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3779 /* Record the fields for the semantic handler. */
3780 FLD (f_operand2
) = f_operand2
;
3781 FLD (f_operand1
) = f_operand1
;
3782 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));
3784 #if WITH_PROFILE_MODEL_P
3785 /* Record the fields for profiling. */
3786 if (PROFILE_MODEL_P (current_cpu
))
3788 FLD (in_Rd
) = f_operand2
;
3789 FLD (in_Rs
) = f_operand1
;
3790 FLD (out_Rd
) = f_operand2
;
3791 FLD (out_h_sr_SI_7
) = 7;
3800 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3801 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3802 #define FLD(f) abuf->fields.sfmt_mcp.f
3806 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3807 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3809 /* Record the fields for the semantic handler. */
3810 FLD (f_operand2
) = f_operand2
;
3811 FLD (f_operand1
) = f_operand1
;
3812 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_mcp", "f_operand2 0x%x", 'x', f_operand2
, "f_operand1 0x%x", 'x', f_operand1
, (char *) 0));
3814 #if WITH_PROFILE_MODEL_P
3815 /* Record the fields for profiling. */
3816 if (PROFILE_MODEL_P (current_cpu
))
3818 FLD (in_Ps
) = f_operand2
;
3819 FLD (in_Rs
) = f_operand1
;
3820 FLD (out_h_gr_SI_index_of__INT_Rs
) = FLD (f_operand1
);
3829 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3830 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3831 #define FLD(f) abuf->fields.sfmt_muls_b.f
3835 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3836 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3838 /* Record the fields for the semantic handler. */
3839 FLD (f_operand2
) = f_operand2
;
3840 FLD (f_operand1
) = f_operand1
;
3841 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));
3843 #if WITH_PROFILE_MODEL_P
3844 /* Record the fields for profiling. */
3845 if (PROFILE_MODEL_P (current_cpu
))
3847 FLD (in_Rd
) = f_operand2
;
3848 FLD (in_Rs
) = f_operand1
;
3849 FLD (out_Rd
) = f_operand2
;
3856 extract_sfmt_and_b_r
:
3858 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3859 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3860 #define FLD(f) abuf->fields.sfmt_addc_m.f
3864 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3865 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3867 /* Record the fields for the semantic handler. */
3868 FLD (f_operand2
) = f_operand2
;
3869 FLD (f_operand1
) = f_operand1
;
3870 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));
3872 #if WITH_PROFILE_MODEL_P
3873 /* Record the fields for profiling. */
3874 if (PROFILE_MODEL_P (current_cpu
))
3876 FLD (in_Rd
) = f_operand2
;
3877 FLD (in_Rs
) = f_operand1
;
3878 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
3885 extract_sfmt_and_d_r
:
3887 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3888 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3889 #define FLD(f) abuf->fields.sfmt_addc_m.f
3893 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3894 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3896 /* Record the fields for the semantic handler. */
3897 FLD (f_operand2
) = f_operand2
;
3898 FLD (f_operand1
) = f_operand1
;
3899 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));
3901 #if WITH_PROFILE_MODEL_P
3902 /* Record the fields for profiling. */
3903 if (PROFILE_MODEL_P (current_cpu
))
3905 FLD (in_Rd
) = f_operand2
;
3906 FLD (in_Rs
) = f_operand1
;
3907 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
3914 extract_sfmt_and_m_b_m
:
3916 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3917 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3918 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3923 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3924 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3925 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3927 /* Record the fields for the semantic handler. */
3928 FLD (f_operand2
) = f_operand2
;
3929 FLD (f_operand1
) = f_operand1
;
3930 FLD (f_memmode
) = f_memmode
;
3931 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));
3933 #if WITH_PROFILE_MODEL_P
3934 /* Record the fields for profiling. */
3935 if (PROFILE_MODEL_P (current_cpu
))
3937 FLD (in_Rd
) = f_operand2
;
3938 FLD (in_Rs
) = f_operand1
;
3939 FLD (out_Rs
) = f_operand1
;
3940 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
)));
3947 extract_sfmt_and_m_w_m
:
3949 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3950 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3951 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3956 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3957 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3958 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3960 /* Record the fields for the semantic handler. */
3961 FLD (f_operand2
) = f_operand2
;
3962 FLD (f_operand1
) = f_operand1
;
3963 FLD (f_memmode
) = f_memmode
;
3964 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));
3966 #if WITH_PROFILE_MODEL_P
3967 /* Record the fields for profiling. */
3968 if (PROFILE_MODEL_P (current_cpu
))
3970 FLD (in_Rd
) = f_operand2
;
3971 FLD (in_Rs
) = f_operand1
;
3972 FLD (out_Rs
) = f_operand1
;
3973 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
)));
3980 extract_sfmt_and_m_d_m
:
3982 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3983 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
3984 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3989 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3990 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3991 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3993 /* Record the fields for the semantic handler. */
3994 FLD (f_operand2
) = f_operand2
;
3995 FLD (f_operand1
) = f_operand1
;
3996 FLD (f_memmode
) = f_memmode
;
3997 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));
3999 #if WITH_PROFILE_MODEL_P
4000 /* Record the fields for profiling. */
4001 if (PROFILE_MODEL_P (current_cpu
))
4003 FLD (in_Rd
) = f_operand2
;
4004 FLD (in_Rs
) = f_operand1
;
4005 FLD (out_Rs
) = f_operand1
;
4006 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
)));
4013 extract_sfmt_andcbr
:
4015 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4016 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4017 #define FLD(f) abuf->fields.sfmt_addcbr.f
4018 INT f_indir_pc__byte
;
4020 /* Contents of trailing part of insn. */
4023 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4024 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
4025 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4027 /* Record the fields for the semantic handler. */
4028 FLD (f_operand2
) = f_operand2
;
4029 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
4030 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));
4032 #if WITH_PROFILE_MODEL_P
4033 /* Record the fields for profiling. */
4034 if (PROFILE_MODEL_P (current_cpu
))
4036 FLD (in_Rd
) = f_operand2
;
4037 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
4044 extract_sfmt_andcwr
:
4046 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4047 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4048 #define FLD(f) abuf->fields.sfmt_addcwr.f
4049 INT f_indir_pc__word
;
4051 /* Contents of trailing part of insn. */
4054 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4055 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
4056 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4058 /* Record the fields for the semantic handler. */
4059 FLD (f_operand2
) = f_operand2
;
4060 FLD (f_indir_pc__word
) = f_indir_pc__word
;
4061 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));
4063 #if WITH_PROFILE_MODEL_P
4064 /* Record the fields for profiling. */
4065 if (PROFILE_MODEL_P (current_cpu
))
4067 FLD (in_Rd
) = f_operand2
;
4068 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
4075 extract_sfmt_andcdr
:
4077 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4078 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4079 #define FLD(f) abuf->fields.sfmt_addcdr.f
4080 INT f_indir_pc__dword
;
4082 /* Contents of trailing part of insn. */
4085 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4086 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
4087 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4089 /* Record the fields for the semantic handler. */
4090 FLD (f_operand2
) = f_operand2
;
4091 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
4092 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));
4094 #if WITH_PROFILE_MODEL_P
4095 /* Record the fields for profiling. */
4096 if (PROFILE_MODEL_P (current_cpu
))
4098 FLD (in_Rd
) = f_operand2
;
4099 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
4108 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4109 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4110 #define FLD(f) abuf->fields.sfmt_andq.f
4114 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4115 f_s6
= EXTRACT_LSB0_SINT (insn
, 16, 5, 6);
4117 /* Record the fields for the semantic handler. */
4118 FLD (f_operand2
) = f_operand2
;
4120 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));
4122 #if WITH_PROFILE_MODEL_P
4123 /* Record the fields for profiling. */
4124 if (PROFILE_MODEL_P (current_cpu
))
4126 FLD (in_Rd
) = f_operand2
;
4127 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
4136 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4137 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4138 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
4142 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4143 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4145 /* Record the fields for the semantic handler. */
4146 FLD (f_operand1
) = f_operand1
;
4147 FLD (f_operand2
) = f_operand2
;
4148 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));
4150 #if WITH_PROFILE_MODEL_P
4151 /* Record the fields for profiling. */
4152 if (PROFILE_MODEL_P (current_cpu
))
4154 FLD (in_Rs
) = f_operand1
;
4155 FLD (out_Rs
) = f_operand1
;
4164 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4165 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4166 #define FLD(f) abuf->fields.sfmt_asrq.f
4170 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4171 f_u5
= EXTRACT_LSB0_UINT (insn
, 16, 4, 5);
4173 /* Record the fields for the semantic handler. */
4174 FLD (f_operand2
) = f_operand2
;
4176 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));
4178 #if WITH_PROFILE_MODEL_P
4179 /* Record the fields for profiling. */
4180 if (PROFILE_MODEL_P (current_cpu
))
4182 FLD (in_Rd
) = f_operand2
;
4183 FLD (out_Rd
) = f_operand2
;
4190 extract_sfmt_lsrr_b_r
:
4192 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4193 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4194 #define FLD(f) abuf->fields.sfmt_addc_m.f
4198 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4199 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4201 /* Record the fields for the semantic handler. */
4202 FLD (f_operand2
) = f_operand2
;
4203 FLD (f_operand1
) = f_operand1
;
4204 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));
4206 #if WITH_PROFILE_MODEL_P
4207 /* Record the fields for profiling. */
4208 if (PROFILE_MODEL_P (current_cpu
))
4210 FLD (in_Rd
) = f_operand2
;
4211 FLD (in_Rs
) = f_operand1
;
4212 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
4219 extract_sfmt_lsrr_d_r
:
4221 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4222 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4223 #define FLD(f) abuf->fields.sfmt_addc_m.f
4227 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4228 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4230 /* Record the fields for the semantic handler. */
4231 FLD (f_operand2
) = f_operand2
;
4232 FLD (f_operand1
) = f_operand1
;
4233 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));
4235 #if WITH_PROFILE_MODEL_P
4236 /* Record the fields for profiling. */
4237 if (PROFILE_MODEL_P (current_cpu
))
4239 FLD (in_Rd
) = f_operand2
;
4240 FLD (in_Rs
) = f_operand1
;
4241 FLD (out_h_gr_SI_index_of__INT_Rd
) = FLD (f_operand2
);
4250 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4251 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4252 #define FLD(f) abuf->fields.sfmt_muls_b.f
4256 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4257 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4259 /* Record the fields for the semantic handler. */
4260 FLD (f_operand2
) = f_operand2
;
4261 FLD (f_operand1
) = f_operand1
;
4262 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));
4264 #if WITH_PROFILE_MODEL_P
4265 /* Record the fields for profiling. */
4266 if (PROFILE_MODEL_P (current_cpu
))
4268 FLD (in_Rd
) = f_operand2
;
4269 FLD (in_Rs
) = f_operand1
;
4278 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4279 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4280 #define FLD(f) abuf->fields.sfmt_asrq.f
4284 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4285 f_u5
= EXTRACT_LSB0_UINT (insn
, 16, 4, 5);
4287 /* Record the fields for the semantic handler. */
4288 FLD (f_operand2
) = f_operand2
;
4290 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));
4292 #if WITH_PROFILE_MODEL_P
4293 /* Record the fields for profiling. */
4294 if (PROFILE_MODEL_P (current_cpu
))
4296 FLD (in_Rd
) = f_operand2
;
4305 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4306 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4307 #define FLD(f) abuf->fields.sfmt_setf.f
4312 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4313 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4314 f_dstsrc
= ((((f_operand1
) | (((f_operand2
) << (4))))) & (255));
4316 /* Record the fields for the semantic handler. */
4317 FLD (f_dstsrc
) = f_dstsrc
;
4318 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_setf", "f_dstsrc 0x%x", 'x', f_dstsrc
, (char *) 0));
4326 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4327 #define FLD(f) abuf->fields.sfmt_rfe.f
4330 /* Record the fields for the semantic handler. */
4331 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_rfe", (char *) 0));
4333 #if WITH_PROFILE_MODEL_P
4334 /* Record the fields for profiling. */
4335 if (PROFILE_MODEL_P (current_cpu
))
4337 FLD (in_h_sr_SI_13
) = 13;
4338 FLD (out_h_sr_SI_13
) = 13;
4347 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4348 #define FLD(f) abuf->fields.sfmt_rfe.f
4351 /* Record the fields for the semantic handler. */
4352 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_sfe", (char *) 0));
4354 #if WITH_PROFILE_MODEL_P
4355 /* Record the fields for profiling. */
4356 if (PROFILE_MODEL_P (current_cpu
))
4358 FLD (in_h_sr_SI_13
) = 13;
4359 FLD (out_h_sr_SI_13
) = 13;
4368 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4369 #define FLD(f) abuf->fields.sfmt_empty.f
4372 /* Record the fields for the semantic handler. */
4373 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_rfg", (char *) 0));
4375 #if WITH_PROFILE_MODEL_P
4376 /* Record the fields for profiling. */
4377 if (PROFILE_MODEL_P (current_cpu
))
4387 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4388 #define FLD(f) abuf->fields.sfmt_rfe.f
4391 /* Record the fields for the semantic handler. */
4392 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_rfn", (char *) 0));
4394 #if WITH_PROFILE_MODEL_P
4395 /* Record the fields for profiling. */
4396 if (PROFILE_MODEL_P (current_cpu
))
4398 FLD (in_h_sr_SI_13
) = 13;
4399 FLD (out_h_sr_SI_13
) = 13;
4408 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4409 #define FLD(f) abuf->fields.sfmt_empty.f
4412 /* Record the fields for the semantic handler. */
4413 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_halt", (char *) 0));
4415 #if WITH_PROFILE_MODEL_P
4416 /* Record the fields for profiling. */
4417 if (PROFILE_MODEL_P (current_cpu
))
4427 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4428 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4429 #define FLD(f) abuf->fields.sfmt_bcc_b.f
4435 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4436 f_disp9_lo
= EXTRACT_LSB0_UINT (insn
, 16, 7, 7);
4437 f_disp9_hi
= EXTRACT_LSB0_SINT (insn
, 16, 0, 1);
4441 tmp_abslo
= ((f_disp9_lo
) << (1));
4442 tmp_absval
= ((((((f_disp9_hi
) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo
));
4443 f_disp9
= ((((pc
) + (tmp_absval
))) + (((GET_H_V32_V32 ()) ? (0) : (2))));
4446 /* Record the fields for the semantic handler. */
4447 FLD (f_operand2
) = f_operand2
;
4448 FLD (i_o_pcrel
) = f_disp9
;
4449 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));
4451 #if WITH_PROFILE_MODEL_P
4452 /* Record the fields for profiling. */
4453 if (PROFILE_MODEL_P (current_cpu
))
4463 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4464 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4465 #define FLD(f) abuf->fields.sfmt_bcc_b.f
4470 f_disp9_lo
= EXTRACT_LSB0_UINT (insn
, 16, 7, 7);
4471 f_disp9_hi
= EXTRACT_LSB0_SINT (insn
, 16, 0, 1);
4475 tmp_abslo
= ((f_disp9_lo
) << (1));
4476 tmp_absval
= ((((((f_disp9_hi
) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo
));
4477 f_disp9
= ((((pc
) + (tmp_absval
))) + (((GET_H_V32_V32 ()) ? (0) : (2))));
4480 /* Record the fields for the semantic handler. */
4481 FLD (i_o_pcrel
) = f_disp9
;
4482 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ba_b", "o_pcrel 0x%x", 'x', f_disp9
, (char *) 0));
4484 #if WITH_PROFILE_MODEL_P
4485 /* Record the fields for profiling. */
4486 if (PROFILE_MODEL_P (current_cpu
))
4496 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4497 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4498 #define FLD(f) abuf->fields.sfmt_bcc_w.f
4499 SI f_indir_pc__word_pcrel
;
4501 /* Contents of trailing part of insn. */
4504 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4505 f_indir_pc__word_pcrel
= ((EXTHISI (((HI
) (UINT
) ((0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0)))))) + (((pc
) + (((GET_H_V32_V32 ()) ? (0) : (4))))));
4506 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4508 /* Record the fields for the semantic handler. */
4509 FLD (f_operand2
) = f_operand2
;
4510 FLD (i_o_word_pcrel
) = f_indir_pc__word_pcrel
;
4511 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));
4513 #if WITH_PROFILE_MODEL_P
4514 /* Record the fields for profiling. */
4515 if (PROFILE_MODEL_P (current_cpu
))
4525 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4526 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4527 #define FLD(f) abuf->fields.sfmt_bcc_w.f
4528 SI f_indir_pc__word_pcrel
;
4529 /* Contents of trailing part of insn. */
4532 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4533 f_indir_pc__word_pcrel
= ((EXTHISI (((HI
) (UINT
) ((0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0)))))) + (((pc
) + (((GET_H_V32_V32 ()) ? (0) : (4))))));
4535 /* Record the fields for the semantic handler. */
4536 FLD (i_o_word_pcrel
) = f_indir_pc__word_pcrel
;
4537 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));
4539 #if WITH_PROFILE_MODEL_P
4540 /* Record the fields for profiling. */
4541 if (PROFILE_MODEL_P (current_cpu
))
4551 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4552 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4553 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
4557 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4558 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4560 /* Record the fields for the semantic handler. */
4561 FLD (f_operand1
) = f_operand1
;
4562 FLD (f_operand2
) = f_operand2
;
4563 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_jas_r", "f_operand1 0x%x", 'x', f_operand1
, "f_operand2 0x%x", 'x', f_operand2
, (char *) 0));
4565 #if WITH_PROFILE_MODEL_P
4566 /* Record the fields for profiling. */
4567 if (PROFILE_MODEL_P (current_cpu
))
4569 FLD (in_Rs
) = f_operand1
;
4570 FLD (out_Pd
) = f_operand2
;
4579 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4580 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4581 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
4582 INT f_indir_pc__dword
;
4584 /* Contents of trailing part of insn. */
4587 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4588 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
4589 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4591 /* Record the fields for the semantic handler. */
4592 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
4593 FLD (f_operand2
) = f_operand2
;
4594 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_jas_c", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword
, "f_operand2 0x%x", 'x', f_operand2
, (char *) 0));
4596 #if WITH_PROFILE_MODEL_P
4597 /* Record the fields for profiling. */
4598 if (PROFILE_MODEL_P (current_cpu
))
4600 FLD (out_Pd
) = f_operand2
;
4607 extract_sfmt_jump_p
:
4609 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4610 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4611 #define FLD(f) abuf->fields.sfmt_mcp.f
4614 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4616 /* Record the fields for the semantic handler. */
4617 FLD (f_operand2
) = f_operand2
;
4618 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_jump_p", "f_operand2 0x%x", 'x', f_operand2
, (char *) 0));
4620 #if WITH_PROFILE_MODEL_P
4621 /* Record the fields for profiling. */
4622 if (PROFILE_MODEL_P (current_cpu
))
4624 FLD (in_Ps
) = f_operand2
;
4633 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4634 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4635 #define FLD(f) abuf->fields.sfmt_bas_c.f
4636 SI f_indir_pc__dword_pcrel
;
4638 /* Contents of trailing part of insn. */
4641 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4642 f_indir_pc__dword_pcrel
= ((pc
) + ((0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0))));
4643 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4645 /* Record the fields for the semantic handler. */
4646 FLD (f_operand2
) = f_operand2
;
4647 FLD (i_const32_pcrel
) = f_indir_pc__dword_pcrel
;
4648 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_bas_c", "f_operand2 0x%x", 'x', f_operand2
, "const32_pcrel 0x%x", 'x', f_indir_pc__dword_pcrel
, (char *) 0));
4650 #if WITH_PROFILE_MODEL_P
4651 /* Record the fields for profiling. */
4652 if (PROFILE_MODEL_P (current_cpu
))
4654 FLD (out_Pd
) = f_operand2
;
4661 extract_sfmt_jasc_r
:
4663 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4664 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4665 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
4669 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4670 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4672 /* Record the fields for the semantic handler. */
4673 FLD (f_operand1
) = f_operand1
;
4674 FLD (f_operand2
) = f_operand2
;
4675 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_jasc_r", "f_operand1 0x%x", 'x', f_operand1
, "f_operand2 0x%x", 'x', f_operand2
, (char *) 0));
4677 #if WITH_PROFILE_MODEL_P
4678 /* Record the fields for profiling. */
4679 if (PROFILE_MODEL_P (current_cpu
))
4681 FLD (in_Rs
) = f_operand1
;
4682 FLD (out_Pd
) = f_operand2
;
4691 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4692 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4693 #define FLD(f) abuf->fields.sfmt_break.f
4696 f_u4
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4698 /* Record the fields for the semantic handler. */
4700 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_break", "f_u4 0x%x", 'x', f_u4
, (char *) 0));
4702 #if WITH_PROFILE_MODEL_P
4703 /* Record the fields for profiling. */
4704 if (PROFILE_MODEL_P (current_cpu
))
4712 extract_sfmt_bound_cb
:
4714 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4715 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4716 #define FLD(f) abuf->fields.sfmt_bound_cb.f
4717 INT f_indir_pc__byte
;
4719 /* Contents of trailing part of insn. */
4722 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4723 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
4724 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4726 /* Record the fields for the semantic handler. */
4727 FLD (f_operand2
) = f_operand2
;
4728 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
4729 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));
4731 #if WITH_PROFILE_MODEL_P
4732 /* Record the fields for profiling. */
4733 if (PROFILE_MODEL_P (current_cpu
))
4735 FLD (in_Rd
) = f_operand2
;
4736 FLD (out_Rd
) = f_operand2
;
4743 extract_sfmt_bound_cw
:
4745 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4746 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4747 #define FLD(f) abuf->fields.sfmt_bound_cw.f
4748 INT f_indir_pc__word
;
4750 /* Contents of trailing part of insn. */
4753 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4754 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
4755 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4757 /* Record the fields for the semantic handler. */
4758 FLD (f_operand2
) = f_operand2
;
4759 FLD (f_indir_pc__word
) = f_indir_pc__word
;
4760 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));
4762 #if WITH_PROFILE_MODEL_P
4763 /* Record the fields for profiling. */
4764 if (PROFILE_MODEL_P (current_cpu
))
4766 FLD (in_Rd
) = f_operand2
;
4767 FLD (out_Rd
) = f_operand2
;
4774 extract_sfmt_bound_cd
:
4776 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4777 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4778 #define FLD(f) abuf->fields.sfmt_bound_cd.f
4779 INT f_indir_pc__dword
;
4781 /* Contents of trailing part of insn. */
4784 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4785 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
4786 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4788 /* Record the fields for the semantic handler. */
4789 FLD (f_operand2
) = f_operand2
;
4790 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
4791 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));
4793 #if WITH_PROFILE_MODEL_P
4794 /* Record the fields for profiling. */
4795 if (PROFILE_MODEL_P (current_cpu
))
4797 FLD (in_Rd
) = f_operand2
;
4798 FLD (out_Rd
) = f_operand2
;
4807 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4808 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4809 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
4813 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4814 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4816 /* Record the fields for the semantic handler. */
4817 FLD (f_operand2
) = f_operand2
;
4818 FLD (f_operand1
) = f_operand1
;
4819 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));
4821 #if WITH_PROFILE_MODEL_P
4822 /* Record the fields for profiling. */
4823 if (PROFILE_MODEL_P (current_cpu
))
4825 FLD (out_Rs
) = f_operand1
;
4834 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4835 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4836 #define FLD(f) abuf->fields.sfmt_addoq.f
4840 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4841 f_s8
= EXTRACT_LSB0_SINT (insn
, 16, 7, 8);
4843 /* Record the fields for the semantic handler. */
4844 FLD (f_operand2
) = f_operand2
;
4846 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));
4848 #if WITH_PROFILE_MODEL_P
4849 /* Record the fields for profiling. */
4850 if (PROFILE_MODEL_P (current_cpu
))
4852 FLD (in_Rd
) = f_operand2
;
4859 extract_sfmt_addo_m_b_m
:
4861 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4862 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4863 #define FLD(f) abuf->fields.sfmt_addc_m.f
4868 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4869 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4870 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4872 /* Record the fields for the semantic handler. */
4873 FLD (f_operand2
) = f_operand2
;
4874 FLD (f_operand1
) = f_operand1
;
4875 FLD (f_memmode
) = f_memmode
;
4876 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));
4878 #if WITH_PROFILE_MODEL_P
4879 /* Record the fields for profiling. */
4880 if (PROFILE_MODEL_P (current_cpu
))
4882 FLD (in_Rd
) = f_operand2
;
4883 FLD (in_Rs
) = f_operand1
;
4884 FLD (out_Rs
) = f_operand1
;
4891 extract_sfmt_addo_m_w_m
:
4893 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4894 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4895 #define FLD(f) abuf->fields.sfmt_addc_m.f
4900 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4901 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4902 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4904 /* Record the fields for the semantic handler. */
4905 FLD (f_operand2
) = f_operand2
;
4906 FLD (f_operand1
) = f_operand1
;
4907 FLD (f_memmode
) = f_memmode
;
4908 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));
4910 #if WITH_PROFILE_MODEL_P
4911 /* Record the fields for profiling. */
4912 if (PROFILE_MODEL_P (current_cpu
))
4914 FLD (in_Rd
) = f_operand2
;
4915 FLD (in_Rs
) = f_operand1
;
4916 FLD (out_Rs
) = f_operand1
;
4923 extract_sfmt_addo_m_d_m
:
4925 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4926 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4927 #define FLD(f) abuf->fields.sfmt_addc_m.f
4932 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4933 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4934 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4936 /* Record the fields for the semantic handler. */
4937 FLD (f_operand2
) = f_operand2
;
4938 FLD (f_operand1
) = f_operand1
;
4939 FLD (f_memmode
) = f_memmode
;
4940 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));
4942 #if WITH_PROFILE_MODEL_P
4943 /* Record the fields for profiling. */
4944 if (PROFILE_MODEL_P (current_cpu
))
4946 FLD (in_Rd
) = f_operand2
;
4947 FLD (in_Rs
) = f_operand1
;
4948 FLD (out_Rs
) = f_operand1
;
4955 extract_sfmt_addo_cb
:
4957 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4958 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4959 #define FLD(f) abuf->fields.sfmt_bound_cb.f
4960 INT f_indir_pc__byte
;
4962 /* Contents of trailing part of insn. */
4965 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4966 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
4967 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4969 /* Record the fields for the semantic handler. */
4970 FLD (f_operand2
) = f_operand2
;
4971 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
4972 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));
4974 #if WITH_PROFILE_MODEL_P
4975 /* Record the fields for profiling. */
4976 if (PROFILE_MODEL_P (current_cpu
))
4978 FLD (in_Rd
) = f_operand2
;
4985 extract_sfmt_addo_cw
:
4987 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4988 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
4989 #define FLD(f) abuf->fields.sfmt_bound_cw.f
4990 INT f_indir_pc__word
;
4992 /* Contents of trailing part of insn. */
4995 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4996 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
4997 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4999 /* Record the fields for the semantic handler. */
5000 FLD (f_operand2
) = f_operand2
;
5001 FLD (f_indir_pc__word
) = f_indir_pc__word
;
5002 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));
5004 #if WITH_PROFILE_MODEL_P
5005 /* Record the fields for profiling. */
5006 if (PROFILE_MODEL_P (current_cpu
))
5008 FLD (in_Rd
) = f_operand2
;
5015 extract_sfmt_addo_cd
:
5017 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5018 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
5019 #define FLD(f) abuf->fields.sfmt_bound_cd.f
5020 INT f_indir_pc__dword
;
5022 /* Contents of trailing part of insn. */
5025 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
5026 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
5027 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5029 /* Record the fields for the semantic handler. */
5030 FLD (f_operand2
) = f_operand2
;
5031 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
5032 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));
5034 #if WITH_PROFILE_MODEL_P
5035 /* Record the fields for profiling. */
5036 if (PROFILE_MODEL_P (current_cpu
))
5038 FLD (in_Rd
) = f_operand2
;
5045 extract_sfmt_addi_acr_b_r
:
5047 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5048 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
5049 #define FLD(f) abuf->fields.sfmt_muls_b.f
5053 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5054 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5056 /* Record the fields for the semantic handler. */
5057 FLD (f_operand2
) = f_operand2
;
5058 FLD (f_operand1
) = f_operand1
;
5059 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));
5061 #if WITH_PROFILE_MODEL_P
5062 /* Record the fields for profiling. */
5063 if (PROFILE_MODEL_P (current_cpu
))
5065 FLD (in_Rd
) = f_operand2
;
5066 FLD (in_Rs
) = f_operand1
;
5075 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5076 CGEN_INSN_WORD insn ATTRIBUTE_UNUSED
= base_insn
;
5077 #define FLD(f) abuf->fields.sfmt_mcp.f
5080 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5082 /* Record the fields for the semantic handler. */
5083 FLD (f_operand1
) = f_operand1
;
5084 CGEN_TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fidxi", "f_operand1 0x%x", 'x', f_operand1
, (char *) 0));
5086 #if WITH_PROFILE_MODEL_P
5087 /* Record the fields for profiling. */
5088 if (PROFILE_MODEL_P (current_cpu
))
5090 FLD (in_Rs
) = f_operand1
;