1 /* Simulator instruction decoder for crisv32f.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright 1996-2005 Free Software Foundation, Inc.
7 This file is part of the GNU simulators.
9 This program 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 2, or (at your option)
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public 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"
32 /* The instruction descriptor array.
33 This is computed at runtime. Space for it is not malloc'd to save a
34 teensy bit of cpu in the decoder. Moving it to malloc space is trivial
35 but won't be done until necessary (we don't currently support the runtime
36 addition of instructions nor an SMP machine with different cpus). */
37 static IDESC crisv32f_insn_data
[CRISV32F_INSN__MAX
];
39 /* Commas between elements are contained in the macros.
40 Some of these are conditionally compiled out. */
42 static const struct insn_sem crisv32f_insn_sem
[] =
44 { VIRTUAL_INSN_X_INVALID
, CRISV32F_INSN_X_INVALID
, CRISV32F_SFMT_EMPTY
},
45 { VIRTUAL_INSN_X_AFTER
, CRISV32F_INSN_X_AFTER
, CRISV32F_SFMT_EMPTY
},
46 { VIRTUAL_INSN_X_BEFORE
, CRISV32F_INSN_X_BEFORE
, CRISV32F_SFMT_EMPTY
},
47 { VIRTUAL_INSN_X_CTI_CHAIN
, CRISV32F_INSN_X_CTI_CHAIN
, CRISV32F_SFMT_EMPTY
},
48 { VIRTUAL_INSN_X_CHAIN
, CRISV32F_INSN_X_CHAIN
, CRISV32F_SFMT_EMPTY
},
49 { VIRTUAL_INSN_X_BEGIN
, CRISV32F_INSN_X_BEGIN
, CRISV32F_SFMT_EMPTY
},
50 { CRIS_INSN_MOVE_B_R
, CRISV32F_INSN_MOVE_B_R
, CRISV32F_SFMT_MOVE_B_R
},
51 { CRIS_INSN_MOVE_W_R
, CRISV32F_INSN_MOVE_W_R
, CRISV32F_SFMT_MOVE_B_R
},
52 { CRIS_INSN_MOVE_D_R
, CRISV32F_INSN_MOVE_D_R
, CRISV32F_SFMT_MOVE_D_R
},
53 { CRIS_INSN_MOVEQ
, CRISV32F_INSN_MOVEQ
, CRISV32F_SFMT_MOVEQ
},
54 { CRIS_INSN_MOVS_B_R
, CRISV32F_INSN_MOVS_B_R
, CRISV32F_SFMT_MOVS_B_R
},
55 { CRIS_INSN_MOVS_W_R
, CRISV32F_INSN_MOVS_W_R
, CRISV32F_SFMT_MOVS_B_R
},
56 { CRIS_INSN_MOVU_B_R
, CRISV32F_INSN_MOVU_B_R
, CRISV32F_SFMT_MOVS_B_R
},
57 { CRIS_INSN_MOVU_W_R
, CRISV32F_INSN_MOVU_W_R
, CRISV32F_SFMT_MOVS_B_R
},
58 { CRIS_INSN_MOVECBR
, CRISV32F_INSN_MOVECBR
, CRISV32F_SFMT_MOVECBR
},
59 { CRIS_INSN_MOVECWR
, CRISV32F_INSN_MOVECWR
, CRISV32F_SFMT_MOVECWR
},
60 { CRIS_INSN_MOVECDR
, CRISV32F_INSN_MOVECDR
, CRISV32F_SFMT_MOVECDR
},
61 { CRIS_INSN_MOVSCBR
, CRISV32F_INSN_MOVSCBR
, CRISV32F_SFMT_MOVSCBR
},
62 { CRIS_INSN_MOVSCWR
, CRISV32F_INSN_MOVSCWR
, CRISV32F_SFMT_MOVSCWR
},
63 { CRIS_INSN_MOVUCBR
, CRISV32F_INSN_MOVUCBR
, CRISV32F_SFMT_MOVUCBR
},
64 { CRIS_INSN_MOVUCWR
, CRISV32F_INSN_MOVUCWR
, CRISV32F_SFMT_MOVUCWR
},
65 { CRIS_INSN_ADDQ
, CRISV32F_INSN_ADDQ
, CRISV32F_SFMT_ADDQ
},
66 { CRIS_INSN_SUBQ
, CRISV32F_INSN_SUBQ
, CRISV32F_SFMT_ADDQ
},
67 { CRIS_INSN_CMP_R_B_R
, CRISV32F_INSN_CMP_R_B_R
, CRISV32F_SFMT_CMP_R_B_R
},
68 { CRIS_INSN_CMP_R_W_R
, CRISV32F_INSN_CMP_R_W_R
, CRISV32F_SFMT_CMP_R_B_R
},
69 { CRIS_INSN_CMP_R_D_R
, CRISV32F_INSN_CMP_R_D_R
, CRISV32F_SFMT_CMP_R_B_R
},
70 { CRIS_INSN_CMP_M_B_M
, CRISV32F_INSN_CMP_M_B_M
, CRISV32F_SFMT_CMP_M_B_M
},
71 { CRIS_INSN_CMP_M_W_M
, CRISV32F_INSN_CMP_M_W_M
, CRISV32F_SFMT_CMP_M_W_M
},
72 { CRIS_INSN_CMP_M_D_M
, CRISV32F_INSN_CMP_M_D_M
, CRISV32F_SFMT_CMP_M_D_M
},
73 { CRIS_INSN_CMPCBR
, CRISV32F_INSN_CMPCBR
, CRISV32F_SFMT_CMPCBR
},
74 { CRIS_INSN_CMPCWR
, CRISV32F_INSN_CMPCWR
, CRISV32F_SFMT_CMPCWR
},
75 { CRIS_INSN_CMPCDR
, CRISV32F_INSN_CMPCDR
, CRISV32F_SFMT_CMPCDR
},
76 { CRIS_INSN_CMPQ
, CRISV32F_INSN_CMPQ
, CRISV32F_SFMT_CMPQ
},
77 { CRIS_INSN_CMPS_M_B_M
, CRISV32F_INSN_CMPS_M_B_M
, CRISV32F_SFMT_CMP_M_B_M
},
78 { CRIS_INSN_CMPS_M_W_M
, CRISV32F_INSN_CMPS_M_W_M
, CRISV32F_SFMT_CMP_M_W_M
},
79 { CRIS_INSN_CMPSCBR
, CRISV32F_INSN_CMPSCBR
, CRISV32F_SFMT_CMPCBR
},
80 { CRIS_INSN_CMPSCWR
, CRISV32F_INSN_CMPSCWR
, CRISV32F_SFMT_CMPCWR
},
81 { CRIS_INSN_CMPU_M_B_M
, CRISV32F_INSN_CMPU_M_B_M
, CRISV32F_SFMT_CMP_M_B_M
},
82 { CRIS_INSN_CMPU_M_W_M
, CRISV32F_INSN_CMPU_M_W_M
, CRISV32F_SFMT_CMP_M_W_M
},
83 { CRIS_INSN_CMPUCBR
, CRISV32F_INSN_CMPUCBR
, CRISV32F_SFMT_CMPUCBR
},
84 { CRIS_INSN_CMPUCWR
, CRISV32F_INSN_CMPUCWR
, CRISV32F_SFMT_CMPUCWR
},
85 { CRIS_INSN_MOVE_M_B_M
, CRISV32F_INSN_MOVE_M_B_M
, CRISV32F_SFMT_MOVE_M_B_M
},
86 { CRIS_INSN_MOVE_M_W_M
, CRISV32F_INSN_MOVE_M_W_M
, CRISV32F_SFMT_MOVE_M_W_M
},
87 { CRIS_INSN_MOVE_M_D_M
, CRISV32F_INSN_MOVE_M_D_M
, CRISV32F_SFMT_MOVE_M_D_M
},
88 { CRIS_INSN_MOVS_M_B_M
, CRISV32F_INSN_MOVS_M_B_M
, CRISV32F_SFMT_MOVS_M_B_M
},
89 { CRIS_INSN_MOVS_M_W_M
, CRISV32F_INSN_MOVS_M_W_M
, CRISV32F_SFMT_MOVS_M_W_M
},
90 { CRIS_INSN_MOVU_M_B_M
, CRISV32F_INSN_MOVU_M_B_M
, CRISV32F_SFMT_MOVS_M_B_M
},
91 { CRIS_INSN_MOVU_M_W_M
, CRISV32F_INSN_MOVU_M_W_M
, CRISV32F_SFMT_MOVS_M_W_M
},
92 { CRIS_INSN_MOVE_R_SPRV32
, CRISV32F_INSN_MOVE_R_SPRV32
, CRISV32F_SFMT_MOVE_R_SPRV32
},
93 { CRIS_INSN_MOVE_SPR_RV32
, CRISV32F_INSN_MOVE_SPR_RV32
, CRISV32F_SFMT_MOVE_SPR_RV32
},
94 { CRIS_INSN_MOVE_M_SPRV32
, CRISV32F_INSN_MOVE_M_SPRV32
, CRISV32F_SFMT_MOVE_M_SPRV32
},
95 { CRIS_INSN_MOVE_C_SPRV32_P2
, CRISV32F_INSN_MOVE_C_SPRV32_P2
, CRISV32F_SFMT_MOVE_C_SPRV32_P2
},
96 { CRIS_INSN_MOVE_C_SPRV32_P3
, CRISV32F_INSN_MOVE_C_SPRV32_P3
, CRISV32F_SFMT_MOVE_C_SPRV32_P2
},
97 { CRIS_INSN_MOVE_C_SPRV32_P5
, CRISV32F_INSN_MOVE_C_SPRV32_P5
, CRISV32F_SFMT_MOVE_C_SPRV32_P2
},
98 { CRIS_INSN_MOVE_C_SPRV32_P6
, CRISV32F_INSN_MOVE_C_SPRV32_P6
, CRISV32F_SFMT_MOVE_C_SPRV32_P2
},
99 { CRIS_INSN_MOVE_C_SPRV32_P7
, CRISV32F_INSN_MOVE_C_SPRV32_P7
, CRISV32F_SFMT_MOVE_C_SPRV32_P2
},
100 { CRIS_INSN_MOVE_C_SPRV32_P9
, CRISV32F_INSN_MOVE_C_SPRV32_P9
, CRISV32F_SFMT_MOVE_C_SPRV32_P2
},
101 { CRIS_INSN_MOVE_C_SPRV32_P10
, CRISV32F_INSN_MOVE_C_SPRV32_P10
, CRISV32F_SFMT_MOVE_C_SPRV32_P2
},
102 { CRIS_INSN_MOVE_C_SPRV32_P11
, CRISV32F_INSN_MOVE_C_SPRV32_P11
, CRISV32F_SFMT_MOVE_C_SPRV32_P2
},
103 { CRIS_INSN_MOVE_C_SPRV32_P12
, CRISV32F_INSN_MOVE_C_SPRV32_P12
, CRISV32F_SFMT_MOVE_C_SPRV32_P2
},
104 { CRIS_INSN_MOVE_C_SPRV32_P13
, CRISV32F_INSN_MOVE_C_SPRV32_P13
, CRISV32F_SFMT_MOVE_C_SPRV32_P2
},
105 { CRIS_INSN_MOVE_C_SPRV32_P14
, CRISV32F_INSN_MOVE_C_SPRV32_P14
, CRISV32F_SFMT_MOVE_C_SPRV32_P2
},
106 { CRIS_INSN_MOVE_C_SPRV32_P15
, CRISV32F_INSN_MOVE_C_SPRV32_P15
, CRISV32F_SFMT_MOVE_C_SPRV32_P2
},
107 { CRIS_INSN_MOVE_SPR_MV32
, CRISV32F_INSN_MOVE_SPR_MV32
, CRISV32F_SFMT_MOVE_SPR_MV32
},
108 { CRIS_INSN_MOVE_SS_R
, CRISV32F_INSN_MOVE_SS_R
, CRISV32F_SFMT_MOVE_SS_R
},
109 { CRIS_INSN_MOVE_R_SS
, CRISV32F_INSN_MOVE_R_SS
, CRISV32F_SFMT_MOVE_R_SS
},
110 { CRIS_INSN_MOVEM_R_M_V32
, CRISV32F_INSN_MOVEM_R_M_V32
, CRISV32F_SFMT_MOVEM_R_M_V32
},
111 { CRIS_INSN_MOVEM_M_R_V32
, CRISV32F_INSN_MOVEM_M_R_V32
, CRISV32F_SFMT_MOVEM_M_R_V32
},
112 { CRIS_INSN_ADD_B_R
, CRISV32F_INSN_ADD_B_R
, CRISV32F_SFMT_ADD_B_R
},
113 { CRIS_INSN_ADD_W_R
, CRISV32F_INSN_ADD_W_R
, CRISV32F_SFMT_ADD_B_R
},
114 { CRIS_INSN_ADD_D_R
, CRISV32F_INSN_ADD_D_R
, CRISV32F_SFMT_ADD_D_R
},
115 { CRIS_INSN_ADD_M_B_M
, CRISV32F_INSN_ADD_M_B_M
, CRISV32F_SFMT_ADD_M_B_M
},
116 { CRIS_INSN_ADD_M_W_M
, CRISV32F_INSN_ADD_M_W_M
, CRISV32F_SFMT_ADD_M_W_M
},
117 { CRIS_INSN_ADD_M_D_M
, CRISV32F_INSN_ADD_M_D_M
, CRISV32F_SFMT_ADD_M_D_M
},
118 { CRIS_INSN_ADDCBR
, CRISV32F_INSN_ADDCBR
, CRISV32F_SFMT_ADDCBR
},
119 { CRIS_INSN_ADDCWR
, CRISV32F_INSN_ADDCWR
, CRISV32F_SFMT_ADDCWR
},
120 { CRIS_INSN_ADDCDR
, CRISV32F_INSN_ADDCDR
, CRISV32F_SFMT_ADDCDR
},
121 { CRIS_INSN_ADDS_B_R
, CRISV32F_INSN_ADDS_B_R
, CRISV32F_SFMT_ADD_D_R
},
122 { CRIS_INSN_ADDS_W_R
, CRISV32F_INSN_ADDS_W_R
, CRISV32F_SFMT_ADD_D_R
},
123 { CRIS_INSN_ADDS_M_B_M
, CRISV32F_INSN_ADDS_M_B_M
, CRISV32F_SFMT_ADDS_M_B_M
},
124 { CRIS_INSN_ADDS_M_W_M
, CRISV32F_INSN_ADDS_M_W_M
, CRISV32F_SFMT_ADDS_M_W_M
},
125 { CRIS_INSN_ADDSCBR
, CRISV32F_INSN_ADDSCBR
, CRISV32F_SFMT_ADDSCBR
},
126 { CRIS_INSN_ADDSCWR
, CRISV32F_INSN_ADDSCWR
, CRISV32F_SFMT_ADDSCWR
},
127 { CRIS_INSN_ADDU_B_R
, CRISV32F_INSN_ADDU_B_R
, CRISV32F_SFMT_ADD_D_R
},
128 { CRIS_INSN_ADDU_W_R
, CRISV32F_INSN_ADDU_W_R
, CRISV32F_SFMT_ADD_D_R
},
129 { CRIS_INSN_ADDU_M_B_M
, CRISV32F_INSN_ADDU_M_B_M
, CRISV32F_SFMT_ADDS_M_B_M
},
130 { CRIS_INSN_ADDU_M_W_M
, CRISV32F_INSN_ADDU_M_W_M
, CRISV32F_SFMT_ADDS_M_W_M
},
131 { CRIS_INSN_ADDUCBR
, CRISV32F_INSN_ADDUCBR
, CRISV32F_SFMT_ADDSCBR
},
132 { CRIS_INSN_ADDUCWR
, CRISV32F_INSN_ADDUCWR
, CRISV32F_SFMT_ADDSCWR
},
133 { CRIS_INSN_SUB_B_R
, CRISV32F_INSN_SUB_B_R
, CRISV32F_SFMT_ADD_B_R
},
134 { CRIS_INSN_SUB_W_R
, CRISV32F_INSN_SUB_W_R
, CRISV32F_SFMT_ADD_B_R
},
135 { CRIS_INSN_SUB_D_R
, CRISV32F_INSN_SUB_D_R
, CRISV32F_SFMT_ADD_D_R
},
136 { CRIS_INSN_SUB_M_B_M
, CRISV32F_INSN_SUB_M_B_M
, CRISV32F_SFMT_ADD_M_B_M
},
137 { CRIS_INSN_SUB_M_W_M
, CRISV32F_INSN_SUB_M_W_M
, CRISV32F_SFMT_ADD_M_W_M
},
138 { CRIS_INSN_SUB_M_D_M
, CRISV32F_INSN_SUB_M_D_M
, CRISV32F_SFMT_ADD_M_D_M
},
139 { CRIS_INSN_SUBCBR
, CRISV32F_INSN_SUBCBR
, CRISV32F_SFMT_ADDCBR
},
140 { CRIS_INSN_SUBCWR
, CRISV32F_INSN_SUBCWR
, CRISV32F_SFMT_ADDCWR
},
141 { CRIS_INSN_SUBCDR
, CRISV32F_INSN_SUBCDR
, CRISV32F_SFMT_ADDCDR
},
142 { CRIS_INSN_SUBS_B_R
, CRISV32F_INSN_SUBS_B_R
, CRISV32F_SFMT_ADD_D_R
},
143 { CRIS_INSN_SUBS_W_R
, CRISV32F_INSN_SUBS_W_R
, CRISV32F_SFMT_ADD_D_R
},
144 { CRIS_INSN_SUBS_M_B_M
, CRISV32F_INSN_SUBS_M_B_M
, CRISV32F_SFMT_ADDS_M_B_M
},
145 { CRIS_INSN_SUBS_M_W_M
, CRISV32F_INSN_SUBS_M_W_M
, CRISV32F_SFMT_ADDS_M_W_M
},
146 { CRIS_INSN_SUBSCBR
, CRISV32F_INSN_SUBSCBR
, CRISV32F_SFMT_ADDSCBR
},
147 { CRIS_INSN_SUBSCWR
, CRISV32F_INSN_SUBSCWR
, CRISV32F_SFMT_ADDSCWR
},
148 { CRIS_INSN_SUBU_B_R
, CRISV32F_INSN_SUBU_B_R
, CRISV32F_SFMT_ADD_D_R
},
149 { CRIS_INSN_SUBU_W_R
, CRISV32F_INSN_SUBU_W_R
, CRISV32F_SFMT_ADD_D_R
},
150 { CRIS_INSN_SUBU_M_B_M
, CRISV32F_INSN_SUBU_M_B_M
, CRISV32F_SFMT_ADDS_M_B_M
},
151 { CRIS_INSN_SUBU_M_W_M
, CRISV32F_INSN_SUBU_M_W_M
, CRISV32F_SFMT_ADDS_M_W_M
},
152 { CRIS_INSN_SUBUCBR
, CRISV32F_INSN_SUBUCBR
, CRISV32F_SFMT_ADDSCBR
},
153 { CRIS_INSN_SUBUCWR
, CRISV32F_INSN_SUBUCWR
, CRISV32F_SFMT_ADDSCWR
},
154 { CRIS_INSN_ADDC_R
, CRISV32F_INSN_ADDC_R
, CRISV32F_SFMT_ADD_D_R
},
155 { CRIS_INSN_ADDC_M
, CRISV32F_INSN_ADDC_M
, CRISV32F_SFMT_ADDC_M
},
156 { CRIS_INSN_ADDC_C
, CRISV32F_INSN_ADDC_C
, CRISV32F_SFMT_ADDCDR
},
157 { CRIS_INSN_LAPC_D
, CRISV32F_INSN_LAPC_D
, CRISV32F_SFMT_LAPC_D
},
158 { CRIS_INSN_LAPCQ
, CRISV32F_INSN_LAPCQ
, CRISV32F_SFMT_LAPCQ
},
159 { CRIS_INSN_ADDI_B_R
, CRISV32F_INSN_ADDI_B_R
, CRISV32F_SFMT_ADDI_B_R
},
160 { CRIS_INSN_ADDI_W_R
, CRISV32F_INSN_ADDI_W_R
, CRISV32F_SFMT_ADDI_B_R
},
161 { CRIS_INSN_ADDI_D_R
, CRISV32F_INSN_ADDI_D_R
, CRISV32F_SFMT_ADDI_B_R
},
162 { CRIS_INSN_NEG_B_R
, CRISV32F_INSN_NEG_B_R
, CRISV32F_SFMT_NEG_B_R
},
163 { CRIS_INSN_NEG_W_R
, CRISV32F_INSN_NEG_W_R
, CRISV32F_SFMT_NEG_B_R
},
164 { CRIS_INSN_NEG_D_R
, CRISV32F_INSN_NEG_D_R
, CRISV32F_SFMT_NEG_D_R
},
165 { CRIS_INSN_TEST_M_B_M
, CRISV32F_INSN_TEST_M_B_M
, CRISV32F_SFMT_TEST_M_B_M
},
166 { CRIS_INSN_TEST_M_W_M
, CRISV32F_INSN_TEST_M_W_M
, CRISV32F_SFMT_TEST_M_W_M
},
167 { CRIS_INSN_TEST_M_D_M
, CRISV32F_INSN_TEST_M_D_M
, CRISV32F_SFMT_TEST_M_D_M
},
168 { CRIS_INSN_MOVE_R_M_B_M
, CRISV32F_INSN_MOVE_R_M_B_M
, CRISV32F_SFMT_MOVE_R_M_B_M
},
169 { CRIS_INSN_MOVE_R_M_W_M
, CRISV32F_INSN_MOVE_R_M_W_M
, CRISV32F_SFMT_MOVE_R_M_W_M
},
170 { CRIS_INSN_MOVE_R_M_D_M
, CRISV32F_INSN_MOVE_R_M_D_M
, CRISV32F_SFMT_MOVE_R_M_D_M
},
171 { CRIS_INSN_MULS_B
, CRISV32F_INSN_MULS_B
, CRISV32F_SFMT_MULS_B
},
172 { CRIS_INSN_MULS_W
, CRISV32F_INSN_MULS_W
, CRISV32F_SFMT_MULS_B
},
173 { CRIS_INSN_MULS_D
, CRISV32F_INSN_MULS_D
, CRISV32F_SFMT_MULS_B
},
174 { CRIS_INSN_MULU_B
, CRISV32F_INSN_MULU_B
, CRISV32F_SFMT_MULS_B
},
175 { CRIS_INSN_MULU_W
, CRISV32F_INSN_MULU_W
, CRISV32F_SFMT_MULS_B
},
176 { CRIS_INSN_MULU_D
, CRISV32F_INSN_MULU_D
, CRISV32F_SFMT_MULS_B
},
177 { CRIS_INSN_MCP
, CRISV32F_INSN_MCP
, CRISV32F_SFMT_MCP
},
178 { CRIS_INSN_DSTEP
, CRISV32F_INSN_DSTEP
, CRISV32F_SFMT_DSTEP
},
179 { CRIS_INSN_ABS
, CRISV32F_INSN_ABS
, CRISV32F_SFMT_MOVS_B_R
},
180 { CRIS_INSN_AND_B_R
, CRISV32F_INSN_AND_B_R
, CRISV32F_SFMT_AND_B_R
},
181 { CRIS_INSN_AND_W_R
, CRISV32F_INSN_AND_W_R
, CRISV32F_SFMT_AND_W_R
},
182 { CRIS_INSN_AND_D_R
, CRISV32F_INSN_AND_D_R
, CRISV32F_SFMT_AND_D_R
},
183 { CRIS_INSN_AND_M_B_M
, CRISV32F_INSN_AND_M_B_M
, CRISV32F_SFMT_AND_M_B_M
},
184 { CRIS_INSN_AND_M_W_M
, CRISV32F_INSN_AND_M_W_M
, CRISV32F_SFMT_AND_M_W_M
},
185 { CRIS_INSN_AND_M_D_M
, CRISV32F_INSN_AND_M_D_M
, CRISV32F_SFMT_AND_M_D_M
},
186 { CRIS_INSN_ANDCBR
, CRISV32F_INSN_ANDCBR
, CRISV32F_SFMT_ANDCBR
},
187 { CRIS_INSN_ANDCWR
, CRISV32F_INSN_ANDCWR
, CRISV32F_SFMT_ANDCWR
},
188 { CRIS_INSN_ANDCDR
, CRISV32F_INSN_ANDCDR
, CRISV32F_SFMT_ANDCDR
},
189 { CRIS_INSN_ANDQ
, CRISV32F_INSN_ANDQ
, CRISV32F_SFMT_ANDQ
},
190 { CRIS_INSN_ORR_B_R
, CRISV32F_INSN_ORR_B_R
, CRISV32F_SFMT_AND_B_R
},
191 { CRIS_INSN_ORR_W_R
, CRISV32F_INSN_ORR_W_R
, CRISV32F_SFMT_AND_W_R
},
192 { CRIS_INSN_ORR_D_R
, CRISV32F_INSN_ORR_D_R
, CRISV32F_SFMT_AND_D_R
},
193 { CRIS_INSN_OR_M_B_M
, CRISV32F_INSN_OR_M_B_M
, CRISV32F_SFMT_AND_M_B_M
},
194 { CRIS_INSN_OR_M_W_M
, CRISV32F_INSN_OR_M_W_M
, CRISV32F_SFMT_AND_M_W_M
},
195 { CRIS_INSN_OR_M_D_M
, CRISV32F_INSN_OR_M_D_M
, CRISV32F_SFMT_AND_M_D_M
},
196 { CRIS_INSN_ORCBR
, CRISV32F_INSN_ORCBR
, CRISV32F_SFMT_ANDCBR
},
197 { CRIS_INSN_ORCWR
, CRISV32F_INSN_ORCWR
, CRISV32F_SFMT_ANDCWR
},
198 { CRIS_INSN_ORCDR
, CRISV32F_INSN_ORCDR
, CRISV32F_SFMT_ANDCDR
},
199 { CRIS_INSN_ORQ
, CRISV32F_INSN_ORQ
, CRISV32F_SFMT_ANDQ
},
200 { CRIS_INSN_XOR
, CRISV32F_INSN_XOR
, CRISV32F_SFMT_DSTEP
},
201 { CRIS_INSN_SWAP
, CRISV32F_INSN_SWAP
, CRISV32F_SFMT_SWAP
},
202 { CRIS_INSN_ASRR_B_R
, CRISV32F_INSN_ASRR_B_R
, CRISV32F_SFMT_ASRR_B_R
},
203 { CRIS_INSN_ASRR_W_R
, CRISV32F_INSN_ASRR_W_R
, CRISV32F_SFMT_ASRR_B_R
},
204 { CRIS_INSN_ASRR_D_R
, CRISV32F_INSN_ASRR_D_R
, CRISV32F_SFMT_AND_D_R
},
205 { CRIS_INSN_ASRQ
, CRISV32F_INSN_ASRQ
, CRISV32F_SFMT_ASRQ
},
206 { CRIS_INSN_LSRR_B_R
, CRISV32F_INSN_LSRR_B_R
, CRISV32F_SFMT_LSRR_B_R
},
207 { CRIS_INSN_LSRR_W_R
, CRISV32F_INSN_LSRR_W_R
, CRISV32F_SFMT_LSRR_B_R
},
208 { CRIS_INSN_LSRR_D_R
, CRISV32F_INSN_LSRR_D_R
, CRISV32F_SFMT_LSRR_D_R
},
209 { CRIS_INSN_LSRQ
, CRISV32F_INSN_LSRQ
, CRISV32F_SFMT_ASRQ
},
210 { CRIS_INSN_LSLR_B_R
, CRISV32F_INSN_LSLR_B_R
, CRISV32F_SFMT_LSRR_B_R
},
211 { CRIS_INSN_LSLR_W_R
, CRISV32F_INSN_LSLR_W_R
, CRISV32F_SFMT_LSRR_B_R
},
212 { CRIS_INSN_LSLR_D_R
, CRISV32F_INSN_LSLR_D_R
, CRISV32F_SFMT_LSRR_D_R
},
213 { CRIS_INSN_LSLQ
, CRISV32F_INSN_LSLQ
, CRISV32F_SFMT_ASRQ
},
214 { CRIS_INSN_BTST
, CRISV32F_INSN_BTST
, CRISV32F_SFMT_BTST
},
215 { CRIS_INSN_BTSTQ
, CRISV32F_INSN_BTSTQ
, CRISV32F_SFMT_BTSTQ
},
216 { CRIS_INSN_SETF
, CRISV32F_INSN_SETF
, CRISV32F_SFMT_SETF
},
217 { CRIS_INSN_CLEARF
, CRISV32F_INSN_CLEARF
, CRISV32F_SFMT_SETF
},
218 { CRIS_INSN_RFE
, CRISV32F_INSN_RFE
, CRISV32F_SFMT_RFE
},
219 { CRIS_INSN_SFE
, CRISV32F_INSN_SFE
, CRISV32F_SFMT_SFE
},
220 { CRIS_INSN_RFG
, CRISV32F_INSN_RFG
, CRISV32F_SFMT_RFG
},
221 { CRIS_INSN_RFN
, CRISV32F_INSN_RFN
, CRISV32F_SFMT_RFN
},
222 { CRIS_INSN_HALT
, CRISV32F_INSN_HALT
, CRISV32F_SFMT_HALT
},
223 { CRIS_INSN_BCC_B
, CRISV32F_INSN_BCC_B
, CRISV32F_SFMT_BCC_B
},
224 { CRIS_INSN_BA_B
, CRISV32F_INSN_BA_B
, CRISV32F_SFMT_BA_B
},
225 { CRIS_INSN_BCC_W
, CRISV32F_INSN_BCC_W
, CRISV32F_SFMT_BCC_W
},
226 { CRIS_INSN_BA_W
, CRISV32F_INSN_BA_W
, CRISV32F_SFMT_BA_W
},
227 { CRIS_INSN_JAS_R
, CRISV32F_INSN_JAS_R
, CRISV32F_SFMT_JAS_R
},
228 { CRIS_INSN_JAS_C
, CRISV32F_INSN_JAS_C
, CRISV32F_SFMT_JAS_C
},
229 { CRIS_INSN_JUMP_P
, CRISV32F_INSN_JUMP_P
, CRISV32F_SFMT_JUMP_P
},
230 { CRIS_INSN_BAS_C
, CRISV32F_INSN_BAS_C
, CRISV32F_SFMT_BAS_C
},
231 { CRIS_INSN_JASC_R
, CRISV32F_INSN_JASC_R
, CRISV32F_SFMT_JASC_R
},
232 { CRIS_INSN_JASC_C
, CRISV32F_INSN_JASC_C
, CRISV32F_SFMT_JAS_C
},
233 { CRIS_INSN_BASC_C
, CRISV32F_INSN_BASC_C
, CRISV32F_SFMT_BAS_C
},
234 { CRIS_INSN_BREAK
, CRISV32F_INSN_BREAK
, CRISV32F_SFMT_BREAK
},
235 { CRIS_INSN_BOUND_R_B_R
, CRISV32F_INSN_BOUND_R_B_R
, CRISV32F_SFMT_DSTEP
},
236 { CRIS_INSN_BOUND_R_W_R
, CRISV32F_INSN_BOUND_R_W_R
, CRISV32F_SFMT_DSTEP
},
237 { CRIS_INSN_BOUND_R_D_R
, CRISV32F_INSN_BOUND_R_D_R
, CRISV32F_SFMT_DSTEP
},
238 { CRIS_INSN_BOUND_CB
, CRISV32F_INSN_BOUND_CB
, CRISV32F_SFMT_BOUND_CB
},
239 { CRIS_INSN_BOUND_CW
, CRISV32F_INSN_BOUND_CW
, CRISV32F_SFMT_BOUND_CW
},
240 { CRIS_INSN_BOUND_CD
, CRISV32F_INSN_BOUND_CD
, CRISV32F_SFMT_BOUND_CD
},
241 { CRIS_INSN_SCC
, CRISV32F_INSN_SCC
, CRISV32F_SFMT_SCC
},
242 { CRIS_INSN_LZ
, CRISV32F_INSN_LZ
, CRISV32F_SFMT_MOVS_B_R
},
243 { CRIS_INSN_ADDOQ
, CRISV32F_INSN_ADDOQ
, CRISV32F_SFMT_ADDOQ
},
244 { CRIS_INSN_ADDO_M_B_M
, CRISV32F_INSN_ADDO_M_B_M
, CRISV32F_SFMT_ADDO_M_B_M
},
245 { CRIS_INSN_ADDO_M_W_M
, CRISV32F_INSN_ADDO_M_W_M
, CRISV32F_SFMT_ADDO_M_W_M
},
246 { CRIS_INSN_ADDO_M_D_M
, CRISV32F_INSN_ADDO_M_D_M
, CRISV32F_SFMT_ADDO_M_D_M
},
247 { CRIS_INSN_ADDO_CB
, CRISV32F_INSN_ADDO_CB
, CRISV32F_SFMT_ADDO_CB
},
248 { CRIS_INSN_ADDO_CW
, CRISV32F_INSN_ADDO_CW
, CRISV32F_SFMT_ADDO_CW
},
249 { CRIS_INSN_ADDO_CD
, CRISV32F_INSN_ADDO_CD
, CRISV32F_SFMT_ADDO_CD
},
250 { CRIS_INSN_ADDI_ACR_B_R
, CRISV32F_INSN_ADDI_ACR_B_R
, CRISV32F_SFMT_ADDI_ACR_B_R
},
251 { CRIS_INSN_ADDI_ACR_W_R
, CRISV32F_INSN_ADDI_ACR_W_R
, CRISV32F_SFMT_ADDI_ACR_B_R
},
252 { CRIS_INSN_ADDI_ACR_D_R
, CRISV32F_INSN_ADDI_ACR_D_R
, CRISV32F_SFMT_ADDI_ACR_B_R
},
253 { CRIS_INSN_FIDXI
, CRISV32F_INSN_FIDXI
, CRISV32F_SFMT_FIDXI
},
254 { CRIS_INSN_FTAGI
, CRISV32F_INSN_FTAGI
, CRISV32F_SFMT_FIDXI
},
255 { CRIS_INSN_FIDXD
, CRISV32F_INSN_FIDXD
, CRISV32F_SFMT_FIDXI
},
256 { CRIS_INSN_FTAGD
, CRISV32F_INSN_FTAGD
, CRISV32F_SFMT_FIDXI
},
259 static const struct insn_sem crisv32f_insn_sem_invalid
= {
260 VIRTUAL_INSN_X_INVALID
, CRISV32F_INSN_X_INVALID
, CRISV32F_SFMT_EMPTY
263 /* Initialize an IDESC from the compile-time computable parts. */
266 init_idesc (SIM_CPU
*cpu
, IDESC
*id
, const struct insn_sem
*t
)
268 const CGEN_INSN
*insn_table
= CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu
))->init_entries
;
272 if ((int) t
->type
<= 0)
273 id
->idata
= & cgen_virtual_insn_table
[- (int) t
->type
];
275 id
->idata
= & insn_table
[t
->type
];
276 id
->attrs
= CGEN_INSN_ATTRS (id
->idata
);
277 /* Oh my god, a magic number. */
278 id
->length
= CGEN_INSN_BITSIZE (id
->idata
) / 8;
280 #if WITH_PROFILE_MODEL_P
281 id
->timing
= & MODEL_TIMING (CPU_MODEL (cpu
)) [t
->index
];
283 SIM_DESC sd
= CPU_STATE (cpu
);
284 SIM_ASSERT (t
->index
== id
->timing
->num
);
288 /* Semantic pointers are initialized elsewhere. */
291 /* Initialize the instruction descriptor table. */
294 crisv32f_init_idesc_table (SIM_CPU
*cpu
)
297 const struct insn_sem
*t
,*tend
;
298 int tabsize
= CRISV32F_INSN__MAX
;
299 IDESC
*table
= crisv32f_insn_data
;
301 memset (table
, 0, tabsize
* sizeof (IDESC
));
303 /* First set all entries to the `invalid insn'. */
304 t
= & crisv32f_insn_sem_invalid
;
305 for (id
= table
, tabend
= table
+ tabsize
; id
< tabend
; ++id
)
306 init_idesc (cpu
, id
, t
);
308 /* Now fill in the values for the chosen cpu. */
309 for (t
= crisv32f_insn_sem
, tend
= t
+ sizeof (crisv32f_insn_sem
) / sizeof (*t
);
312 init_idesc (cpu
, & table
[t
->index
], t
);
315 /* Link the IDESC table into the cpu. */
316 CPU_IDESC (cpu
) = table
;
319 /* Given an instruction, return a pointer to its IDESC entry. */
322 crisv32f_decode (SIM_CPU
*current_cpu
, IADDR pc
,
323 CGEN_INSN_INT base_insn
,
326 /* Result of decoder. */
327 CRISV32F_INSN_TYPE itype
;
330 CGEN_INSN_INT insn
= base_insn
;
333 unsigned int val
= (((insn
>> 4) & (255 << 0)));
336 case 0 : /* fall through */
337 case 1 : /* fall through */
338 case 2 : /* fall through */
339 case 3 : /* fall through */
340 case 4 : /* fall through */
341 case 5 : /* fall through */
342 case 6 : /* fall through */
343 case 7 : /* fall through */
344 case 8 : /* fall through */
345 case 9 : /* fall through */
346 case 10 : /* fall through */
347 case 11 : /* fall through */
348 case 12 : /* fall through */
349 case 13 : /* fall through */
350 case 14 : /* fall through */
353 unsigned int val
= (((insn
>> 12) & (15 << 0)));
356 case 0 : /* fall through */
357 case 1 : /* fall through */
358 case 2 : /* fall through */
359 case 3 : /* fall through */
360 case 4 : /* fall through */
361 case 5 : /* fall through */
362 case 6 : /* fall through */
363 case 7 : /* fall through */
364 case 8 : /* fall through */
365 case 9 : /* fall through */
366 case 10 : /* fall through */
367 case 11 : /* fall through */
368 case 12 : /* fall through */
369 case 13 : /* fall through */
371 if ((base_insn
& 0xf00) == 0x0)
372 { itype
= CRISV32F_INSN_BCC_B
; goto extract_sfmt_bcc_b
; }
373 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
375 if ((base_insn
& 0xff00) == 0xe000)
376 { itype
= CRISV32F_INSN_BA_B
; goto extract_sfmt_ba_b
; }
377 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
378 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
381 case 16 : /* fall through */
382 case 17 : /* fall through */
383 case 18 : /* fall through */
384 case 19 : /* fall through */
385 case 20 : /* fall through */
386 case 21 : /* fall through */
387 case 22 : /* fall through */
388 case 23 : /* fall through */
389 case 24 : /* fall through */
390 case 25 : /* fall through */
391 case 26 : /* fall through */
392 case 27 : /* fall through */
393 case 28 : /* fall through */
394 case 29 : /* fall through */
395 case 30 : /* fall through */
397 if ((base_insn
& 0xf00) == 0x100)
398 { itype
= CRISV32F_INSN_ADDOQ
; goto extract_sfmt_addoq
; }
399 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
400 case 32 : /* fall through */
401 case 33 : /* fall through */
402 case 34 : /* fall through */
404 if ((base_insn
& 0xfc0) == 0x200)
405 { itype
= CRISV32F_INSN_ADDQ
; goto extract_sfmt_addq
; }
406 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
407 case 36 : /* fall through */
408 case 37 : /* fall through */
409 case 38 : /* fall through */
411 if ((base_insn
& 0xfc0) == 0x240)
412 { itype
= CRISV32F_INSN_MOVEQ
; goto extract_sfmt_moveq
; }
413 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
414 case 40 : /* fall through */
415 case 41 : /* fall through */
416 case 42 : /* fall through */
418 if ((base_insn
& 0xfc0) == 0x280)
419 { itype
= CRISV32F_INSN_SUBQ
; goto extract_sfmt_addq
; }
420 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
421 case 44 : /* fall through */
422 case 45 : /* fall through */
423 case 46 : /* fall through */
425 if ((base_insn
& 0xfc0) == 0x2c0)
426 { itype
= CRISV32F_INSN_CMPQ
; goto extract_sfmt_cmpq
; }
427 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
428 case 48 : /* fall through */
429 case 49 : /* fall through */
430 case 50 : /* fall through */
432 if ((base_insn
& 0xfc0) == 0x300)
433 { itype
= CRISV32F_INSN_ANDQ
; goto extract_sfmt_andq
; }
434 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
435 case 52 : /* fall through */
436 case 53 : /* fall through */
437 case 54 : /* fall through */
439 if ((base_insn
& 0xfc0) == 0x340)
440 { itype
= CRISV32F_INSN_ORQ
; goto extract_sfmt_andq
; }
441 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
442 case 56 : /* fall through */
444 if ((base_insn
& 0xfe0) == 0x380)
445 { itype
= CRISV32F_INSN_BTSTQ
; goto extract_sfmt_btstq
; }
446 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
447 case 58 : /* fall through */
449 if ((base_insn
& 0xfe0) == 0x3a0)
450 { itype
= CRISV32F_INSN_ASRQ
; goto extract_sfmt_asrq
; }
451 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
452 case 60 : /* fall through */
454 if ((base_insn
& 0xfe0) == 0x3c0)
455 { itype
= CRISV32F_INSN_LSLQ
; goto extract_sfmt_asrq
; }
456 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
457 case 62 : /* fall through */
459 if ((base_insn
& 0xfe0) == 0x3e0)
460 { itype
= CRISV32F_INSN_LSRQ
; goto extract_sfmt_asrq
; }
461 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
463 if ((base_insn
& 0xff0) == 0x400)
464 { itype
= CRISV32F_INSN_ADDU_B_R
; goto extract_sfmt_add_d_r
; }
465 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
467 if ((base_insn
& 0xff0) == 0x410)
468 { itype
= CRISV32F_INSN_ADDU_W_R
; goto extract_sfmt_add_d_r
; }
469 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
471 if ((base_insn
& 0xff0) == 0x420)
472 { itype
= CRISV32F_INSN_ADDS_B_R
; goto extract_sfmt_add_d_r
; }
473 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
475 if ((base_insn
& 0xff0) == 0x430)
476 { itype
= CRISV32F_INSN_ADDS_W_R
; goto extract_sfmt_add_d_r
; }
477 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
479 if ((base_insn
& 0xff0) == 0x440)
480 { itype
= CRISV32F_INSN_MOVU_B_R
; goto extract_sfmt_movs_b_r
; }
481 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
483 if ((base_insn
& 0xff0) == 0x450)
484 { itype
= CRISV32F_INSN_MOVU_W_R
; goto extract_sfmt_movs_b_r
; }
485 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
487 if ((base_insn
& 0xff0) == 0x460)
488 { itype
= CRISV32F_INSN_MOVS_B_R
; goto extract_sfmt_movs_b_r
; }
489 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
491 if ((base_insn
& 0xff0) == 0x470)
492 { itype
= CRISV32F_INSN_MOVS_W_R
; goto extract_sfmt_movs_b_r
; }
493 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
495 if ((base_insn
& 0xff0) == 0x480)
496 { itype
= CRISV32F_INSN_SUBU_B_R
; goto extract_sfmt_add_d_r
; }
497 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
499 if ((base_insn
& 0xff0) == 0x490)
500 { itype
= CRISV32F_INSN_SUBU_W_R
; goto extract_sfmt_add_d_r
; }
501 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
503 if ((base_insn
& 0xff0) == 0x4a0)
504 { itype
= CRISV32F_INSN_SUBS_B_R
; goto extract_sfmt_add_d_r
; }
505 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
507 if ((base_insn
& 0xff0) == 0x4b0)
508 { itype
= CRISV32F_INSN_SUBS_W_R
; goto extract_sfmt_add_d_r
; }
509 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
511 if ((base_insn
& 0xff0) == 0x4c0)
512 { itype
= CRISV32F_INSN_LSLR_B_R
; goto extract_sfmt_lsrr_b_r
; }
513 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
515 if ((base_insn
& 0xff0) == 0x4d0)
516 { itype
= CRISV32F_INSN_LSLR_W_R
; goto extract_sfmt_lsrr_b_r
; }
517 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
519 if ((base_insn
& 0xff0) == 0x4e0)
520 { itype
= CRISV32F_INSN_LSLR_D_R
; goto extract_sfmt_lsrr_d_r
; }
521 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
523 if ((base_insn
& 0xff0) == 0x4f0)
524 { itype
= CRISV32F_INSN_BTST
; goto extract_sfmt_btst
; }
525 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
527 if ((base_insn
& 0xff0) == 0x500)
528 { itype
= CRISV32F_INSN_ADDI_B_R
; goto extract_sfmt_addi_b_r
; }
529 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
531 if ((base_insn
& 0xff0) == 0x510)
532 { itype
= CRISV32F_INSN_ADDI_W_R
; goto extract_sfmt_addi_b_r
; }
533 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
535 if ((base_insn
& 0xff0) == 0x520)
536 { itype
= CRISV32F_INSN_ADDI_D_R
; goto extract_sfmt_addi_b_r
; }
537 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
539 if ((base_insn
& 0xff0) == 0x530)
540 { itype
= CRISV32F_INSN_SCC
; goto extract_sfmt_scc
; }
541 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
543 if ((base_insn
& 0xff0) == 0x540)
544 { itype
= CRISV32F_INSN_ADDI_ACR_B_R
; goto extract_sfmt_addi_acr_b_r
; }
545 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
547 if ((base_insn
& 0xff0) == 0x550)
548 { itype
= CRISV32F_INSN_ADDI_ACR_W_R
; goto extract_sfmt_addi_acr_b_r
; }
549 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
551 if ((base_insn
& 0xff0) == 0x560)
552 { itype
= CRISV32F_INSN_ADDI_ACR_D_R
; goto extract_sfmt_addi_acr_b_r
; }
553 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
555 if ((base_insn
& 0xff0) == 0x570)
556 { itype
= CRISV32F_INSN_ADDC_R
; goto extract_sfmt_add_d_r
; }
557 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
559 if ((base_insn
& 0xff0) == 0x580)
560 { itype
= CRISV32F_INSN_NEG_B_R
; goto extract_sfmt_neg_b_r
; }
561 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
563 if ((base_insn
& 0xff0) == 0x590)
564 { itype
= CRISV32F_INSN_NEG_W_R
; goto extract_sfmt_neg_b_r
; }
565 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
567 if ((base_insn
& 0xff0) == 0x5a0)
568 { itype
= CRISV32F_INSN_NEG_D_R
; goto extract_sfmt_neg_d_r
; }
569 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
571 if ((base_insn
& 0xff0) == 0x5b0)
572 { itype
= CRISV32F_INSN_SETF
; goto extract_sfmt_setf
; }
573 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
575 if ((base_insn
& 0xff0) == 0x5c0)
576 { itype
= CRISV32F_INSN_BOUND_R_B_R
; goto extract_sfmt_dstep
; }
577 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
579 if ((base_insn
& 0xff0) == 0x5d0)
580 { itype
= CRISV32F_INSN_BOUND_R_W_R
; goto extract_sfmt_dstep
; }
581 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
583 if ((base_insn
& 0xff0) == 0x5e0)
584 { itype
= CRISV32F_INSN_BOUND_R_D_R
; goto extract_sfmt_dstep
; }
585 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
587 if ((base_insn
& 0xff0) == 0x5f0)
588 { itype
= CRISV32F_INSN_CLEARF
; goto extract_sfmt_setf
; }
589 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
591 if ((base_insn
& 0xff0) == 0x600)
592 { itype
= CRISV32F_INSN_ADD_B_R
; goto extract_sfmt_add_b_r
; }
593 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
595 if ((base_insn
& 0xff0) == 0x610)
596 { itype
= CRISV32F_INSN_ADD_W_R
; goto extract_sfmt_add_b_r
; }
597 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
599 if ((base_insn
& 0xff0) == 0x620)
600 { itype
= CRISV32F_INSN_ADD_D_R
; goto extract_sfmt_add_d_r
; }
601 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
603 if ((base_insn
& 0xff0) == 0x630)
604 { itype
= CRISV32F_INSN_MOVE_R_SPRV32
; goto extract_sfmt_move_r_sprv32
; }
605 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
607 if ((base_insn
& 0xff0) == 0x640)
608 { itype
= CRISV32F_INSN_MOVE_B_R
; goto extract_sfmt_move_b_r
; }
609 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
611 if ((base_insn
& 0xff0) == 0x650)
612 { itype
= CRISV32F_INSN_MOVE_W_R
; goto extract_sfmt_move_b_r
; }
613 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
615 if ((base_insn
& 0xff0) == 0x660)
616 { itype
= CRISV32F_INSN_MOVE_D_R
; goto extract_sfmt_move_d_r
; }
617 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
619 if ((base_insn
& 0xff0) == 0x670)
620 { itype
= CRISV32F_INSN_MOVE_SPR_RV32
; goto extract_sfmt_move_spr_rv32
; }
621 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
623 if ((base_insn
& 0xff0) == 0x680)
624 { itype
= CRISV32F_INSN_SUB_B_R
; goto extract_sfmt_add_b_r
; }
625 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
627 if ((base_insn
& 0xff0) == 0x690)
628 { itype
= CRISV32F_INSN_SUB_W_R
; goto extract_sfmt_add_b_r
; }
629 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
631 if ((base_insn
& 0xff0) == 0x6a0)
632 { itype
= CRISV32F_INSN_SUB_D_R
; goto extract_sfmt_add_d_r
; }
633 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
635 if ((base_insn
& 0xff0) == 0x6b0)
636 { itype
= CRISV32F_INSN_ABS
; goto extract_sfmt_movs_b_r
; }
637 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
639 if ((base_insn
& 0xff0) == 0x6c0)
640 { itype
= CRISV32F_INSN_CMP_R_B_R
; goto extract_sfmt_cmp_r_b_r
; }
641 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
643 if ((base_insn
& 0xff0) == 0x6d0)
644 { itype
= CRISV32F_INSN_CMP_R_W_R
; goto extract_sfmt_cmp_r_b_r
; }
645 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
647 if ((base_insn
& 0xff0) == 0x6e0)
648 { itype
= CRISV32F_INSN_CMP_R_D_R
; goto extract_sfmt_cmp_r_b_r
; }
649 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
651 if ((base_insn
& 0xff0) == 0x6f0)
652 { itype
= CRISV32F_INSN_DSTEP
; goto extract_sfmt_dstep
; }
653 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
655 if ((base_insn
& 0xff0) == 0x700)
656 { itype
= CRISV32F_INSN_AND_B_R
; goto extract_sfmt_and_b_r
; }
657 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
659 if ((base_insn
& 0xff0) == 0x710)
660 { itype
= CRISV32F_INSN_AND_W_R
; goto extract_sfmt_and_w_r
; }
661 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
663 if ((base_insn
& 0xff0) == 0x720)
664 { itype
= CRISV32F_INSN_AND_D_R
; goto extract_sfmt_and_d_r
; }
665 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
667 if ((base_insn
& 0xff0) == 0x730)
668 { itype
= CRISV32F_INSN_LZ
; goto extract_sfmt_movs_b_r
; }
669 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
671 if ((base_insn
& 0xff0) == 0x740)
672 { itype
= CRISV32F_INSN_ORR_B_R
; goto extract_sfmt_and_b_r
; }
673 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
675 if ((base_insn
& 0xff0) == 0x750)
676 { itype
= CRISV32F_INSN_ORR_W_R
; goto extract_sfmt_and_w_r
; }
677 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
679 if ((base_insn
& 0xff0) == 0x760)
680 { itype
= CRISV32F_INSN_ORR_D_R
; goto extract_sfmt_and_d_r
; }
681 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
683 if ((base_insn
& 0xff0) == 0x770)
684 { itype
= CRISV32F_INSN_SWAP
; goto extract_sfmt_swap
; }
685 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
687 if ((base_insn
& 0xff0) == 0x780)
688 { itype
= CRISV32F_INSN_ASRR_B_R
; goto extract_sfmt_asrr_b_r
; }
689 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
691 if ((base_insn
& 0xff0) == 0x790)
692 { itype
= CRISV32F_INSN_ASRR_W_R
; goto extract_sfmt_asrr_b_r
; }
693 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
695 if ((base_insn
& 0xff0) == 0x7a0)
696 { itype
= CRISV32F_INSN_ASRR_D_R
; goto extract_sfmt_and_d_r
; }
697 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
699 if ((base_insn
& 0xff0) == 0x7b0)
700 { itype
= CRISV32F_INSN_XOR
; goto extract_sfmt_dstep
; }
701 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
703 if ((base_insn
& 0xff0) == 0x7c0)
704 { itype
= CRISV32F_INSN_LSRR_B_R
; goto extract_sfmt_lsrr_b_r
; }
705 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
707 if ((base_insn
& 0xff0) == 0x7d0)
708 { itype
= CRISV32F_INSN_LSRR_W_R
; goto extract_sfmt_lsrr_b_r
; }
709 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
711 if ((base_insn
& 0xff0) == 0x7e0)
712 { itype
= CRISV32F_INSN_LSRR_D_R
; goto extract_sfmt_lsrr_d_r
; }
713 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
715 if ((base_insn
& 0xff0) == 0x7f0)
716 { itype
= CRISV32F_INSN_MCP
; goto extract_sfmt_mcp
; }
717 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
719 if ((base_insn
& 0xbf0) == 0x800)
720 { itype
= CRISV32F_INSN_ADDU_M_B_M
; goto extract_sfmt_adds_m_b_m
; }
721 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
723 if ((base_insn
& 0xbf0) == 0x810)
724 { itype
= CRISV32F_INSN_ADDU_M_W_M
; goto extract_sfmt_adds_m_w_m
; }
725 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
727 if ((base_insn
& 0xbf0) == 0x820)
728 { itype
= CRISV32F_INSN_ADDS_M_B_M
; goto extract_sfmt_adds_m_b_m
; }
729 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
731 if ((base_insn
& 0xbf0) == 0x830)
732 { itype
= CRISV32F_INSN_ADDS_M_W_M
; goto extract_sfmt_adds_m_w_m
; }
733 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
735 if ((base_insn
& 0xbf0) == 0x840)
736 { itype
= CRISV32F_INSN_MOVU_M_B_M
; goto extract_sfmt_movs_m_b_m
; }
737 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
739 if ((base_insn
& 0xbf0) == 0x850)
740 { itype
= CRISV32F_INSN_MOVU_M_W_M
; goto extract_sfmt_movs_m_w_m
; }
741 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
743 if ((base_insn
& 0xbf0) == 0x860)
744 { itype
= CRISV32F_INSN_MOVS_M_B_M
; goto extract_sfmt_movs_m_b_m
; }
745 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
747 if ((base_insn
& 0xbf0) == 0x870)
748 { itype
= CRISV32F_INSN_MOVS_M_W_M
; goto extract_sfmt_movs_m_w_m
; }
749 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
751 if ((base_insn
& 0xbf0) == 0x880)
752 { itype
= CRISV32F_INSN_SUBU_M_B_M
; goto extract_sfmt_adds_m_b_m
; }
753 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
755 if ((base_insn
& 0xbf0) == 0x890)
756 { itype
= CRISV32F_INSN_SUBU_M_W_M
; goto extract_sfmt_adds_m_w_m
; }
757 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
759 if ((base_insn
& 0xbf0) == 0x8a0)
760 { itype
= CRISV32F_INSN_SUBS_M_B_M
; goto extract_sfmt_adds_m_b_m
; }
761 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
763 if ((base_insn
& 0xbf0) == 0x8b0)
764 { itype
= CRISV32F_INSN_SUBS_M_W_M
; goto extract_sfmt_adds_m_w_m
; }
765 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
767 if ((base_insn
& 0xbf0) == 0x8c0)
768 { itype
= CRISV32F_INSN_CMPU_M_B_M
; goto extract_sfmt_cmp_m_b_m
; }
769 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
771 if ((base_insn
& 0xbf0) == 0x8d0)
772 { itype
= CRISV32F_INSN_CMPU_M_W_M
; goto extract_sfmt_cmp_m_w_m
; }
773 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
775 if ((base_insn
& 0xbf0) == 0x8e0)
776 { itype
= CRISV32F_INSN_CMPS_M_B_M
; goto extract_sfmt_cmp_m_b_m
; }
777 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
779 if ((base_insn
& 0xbf0) == 0x8f0)
780 { itype
= CRISV32F_INSN_CMPS_M_W_M
; goto extract_sfmt_cmp_m_w_m
; }
781 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
783 if ((base_insn
& 0xff0) == 0x900)
784 { itype
= CRISV32F_INSN_MULU_B
; goto extract_sfmt_muls_b
; }
785 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
787 if ((base_insn
& 0xff0) == 0x910)
788 { itype
= CRISV32F_INSN_MULU_W
; goto extract_sfmt_muls_b
; }
789 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
791 if ((base_insn
& 0xff0) == 0x920)
792 { itype
= CRISV32F_INSN_MULU_D
; goto extract_sfmt_muls_b
; }
793 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
796 unsigned int val
= (((insn
>> 12) & (15 << 0)));
800 if ((base_insn
& 0xffff) == 0x2930)
801 { itype
= CRISV32F_INSN_RFE
; goto extract_sfmt_rfe
; }
802 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
804 if ((base_insn
& 0xffff) == 0x3930)
805 { itype
= CRISV32F_INSN_SFE
; goto extract_sfmt_sfe
; }
806 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
808 if ((base_insn
& 0xffff) == 0x4930)
809 { itype
= CRISV32F_INSN_RFG
; goto extract_sfmt_rfg
; }
810 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
812 if ((base_insn
& 0xffff) == 0x5930)
813 { itype
= CRISV32F_INSN_RFN
; goto extract_sfmt_rfn
; }
814 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
816 if ((base_insn
& 0xfff0) == 0xe930)
817 { itype
= CRISV32F_INSN_BREAK
; goto extract_sfmt_break
; }
818 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
820 if ((base_insn
& 0xffff) == 0xf930)
821 { itype
= CRISV32F_INSN_HALT
; goto extract_sfmt_halt
; }
822 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
823 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
827 if ((base_insn
& 0xbf0) == 0x940)
828 { itype
= CRISV32F_INSN_ADDO_M_B_M
; goto extract_sfmt_addo_m_b_m
; }
829 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
831 if ((base_insn
& 0xbf0) == 0x950)
832 { itype
= CRISV32F_INSN_ADDO_M_W_M
; goto extract_sfmt_addo_m_w_m
; }
833 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
835 if ((base_insn
& 0xbf0) == 0x960)
836 { itype
= CRISV32F_INSN_ADDO_M_D_M
; goto extract_sfmt_addo_m_d_m
; }
837 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
839 if ((base_insn
& 0xff0) == 0x970)
840 { itype
= CRISV32F_INSN_LAPCQ
; goto extract_sfmt_lapcq
; }
841 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
843 if ((base_insn
& 0xbf0) == 0x9a0)
844 { itype
= CRISV32F_INSN_ADDC_M
; goto extract_sfmt_addc_m
; }
845 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
847 if ((base_insn
& 0xff0) == 0x9b0)
848 { itype
= CRISV32F_INSN_JAS_R
; goto extract_sfmt_jas_r
; }
849 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
851 if ((base_insn
& 0xfff) == 0x9f0)
852 { itype
= CRISV32F_INSN_JUMP_P
; goto extract_sfmt_jump_p
; }
853 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
855 if ((base_insn
& 0xbf0) == 0xa00)
856 { itype
= CRISV32F_INSN_ADD_M_B_M
; goto extract_sfmt_add_m_b_m
; }
857 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
859 if ((base_insn
& 0xbf0) == 0xa10)
860 { itype
= CRISV32F_INSN_ADD_M_W_M
; goto extract_sfmt_add_m_w_m
; }
861 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
863 if ((base_insn
& 0xbf0) == 0xa20)
864 { itype
= CRISV32F_INSN_ADD_M_D_M
; goto extract_sfmt_add_m_d_m
; }
865 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
867 if ((base_insn
& 0xbf0) == 0xa30)
868 { itype
= CRISV32F_INSN_MOVE_M_SPRV32
; goto extract_sfmt_move_m_sprv32
; }
869 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
871 if ((base_insn
& 0xbf0) == 0xa40)
872 { itype
= CRISV32F_INSN_MOVE_M_B_M
; goto extract_sfmt_move_m_b_m
; }
873 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
875 if ((base_insn
& 0xbf0) == 0xa50)
876 { itype
= CRISV32F_INSN_MOVE_M_W_M
; goto extract_sfmt_move_m_w_m
; }
877 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
879 if ((base_insn
& 0xbf0) == 0xa60)
880 { itype
= CRISV32F_INSN_MOVE_M_D_M
; goto extract_sfmt_move_m_d_m
; }
881 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
882 case 167 : /* fall through */
884 if ((base_insn
& 0xbf0) == 0xa70)
885 { itype
= CRISV32F_INSN_MOVE_SPR_MV32
; goto extract_sfmt_move_spr_mv32
; }
886 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
888 if ((base_insn
& 0xbf0) == 0xa80)
889 { itype
= CRISV32F_INSN_SUB_M_B_M
; goto extract_sfmt_add_m_b_m
; }
890 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
892 if ((base_insn
& 0xbf0) == 0xa90)
893 { itype
= CRISV32F_INSN_SUB_M_W_M
; goto extract_sfmt_add_m_w_m
; }
894 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
896 if ((base_insn
& 0xbf0) == 0xaa0)
897 { itype
= CRISV32F_INSN_SUB_M_D_M
; goto extract_sfmt_add_m_d_m
; }
898 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
901 unsigned int val
= (((insn
>> 12) & (1 << 0)));
905 if ((base_insn
& 0xfff0) == 0xab0)
906 { itype
= CRISV32F_INSN_FIDXD
; goto extract_sfmt_fidxi
; }
907 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
909 if ((base_insn
& 0xfff0) == 0x1ab0)
910 { itype
= CRISV32F_INSN_FTAGD
; goto extract_sfmt_fidxi
; }
911 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
912 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
916 if ((base_insn
& 0xbf0) == 0xac0)
917 { itype
= CRISV32F_INSN_CMP_M_B_M
; goto extract_sfmt_cmp_m_b_m
; }
918 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
920 if ((base_insn
& 0xbf0) == 0xad0)
921 { itype
= CRISV32F_INSN_CMP_M_W_M
; goto extract_sfmt_cmp_m_w_m
; }
922 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
924 if ((base_insn
& 0xbf0) == 0xae0)
925 { itype
= CRISV32F_INSN_CMP_M_D_M
; goto extract_sfmt_cmp_m_d_m
; }
926 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
928 if ((base_insn
& 0xbf0) == 0xb00)
929 { itype
= CRISV32F_INSN_AND_M_B_M
; goto extract_sfmt_and_m_b_m
; }
930 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
932 if ((base_insn
& 0xbf0) == 0xb10)
933 { itype
= CRISV32F_INSN_AND_M_W_M
; goto extract_sfmt_and_m_w_m
; }
934 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
936 if ((base_insn
& 0xbf0) == 0xb20)
937 { itype
= CRISV32F_INSN_AND_M_D_M
; goto extract_sfmt_and_m_d_m
; }
938 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
940 if ((base_insn
& 0xff0) == 0xb30)
941 { itype
= CRISV32F_INSN_JASC_R
; goto extract_sfmt_jasc_r
; }
942 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
944 if ((base_insn
& 0xbf0) == 0xb40)
945 { itype
= CRISV32F_INSN_OR_M_B_M
; goto extract_sfmt_and_m_b_m
; }
946 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
948 if ((base_insn
& 0xbf0) == 0xb50)
949 { itype
= CRISV32F_INSN_OR_M_W_M
; goto extract_sfmt_and_m_w_m
; }
950 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
952 if ((base_insn
& 0xbf0) == 0xb60)
953 { itype
= CRISV32F_INSN_OR_M_D_M
; goto extract_sfmt_and_m_d_m
; }
954 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
956 if ((base_insn
& 0xff0) == 0xb70)
957 { itype
= CRISV32F_INSN_MOVE_R_SS
; goto extract_sfmt_move_r_ss
; }
958 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
959 case 184 : /* fall through */
961 if ((base_insn
& 0xfbf0) == 0xb80)
962 { itype
= CRISV32F_INSN_TEST_M_B_M
; goto extract_sfmt_test_m_b_m
; }
963 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
964 case 185 : /* fall through */
966 if ((base_insn
& 0xfbf0) == 0xb90)
967 { itype
= CRISV32F_INSN_TEST_M_W_M
; goto extract_sfmt_test_m_w_m
; }
968 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
969 case 186 : /* fall through */
971 if ((base_insn
& 0xfbf0) == 0xba0)
972 { itype
= CRISV32F_INSN_TEST_M_D_M
; goto extract_sfmt_test_m_d_m
; }
973 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
974 case 187 : /* fall through */
976 if ((base_insn
& 0xbf0) == 0xbb0)
977 { itype
= CRISV32F_INSN_MOVEM_M_R_V32
; goto extract_sfmt_movem_m_r_v32
; }
978 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
979 case 188 : /* fall through */
981 if ((base_insn
& 0xbf0) == 0xbc0)
982 { itype
= CRISV32F_INSN_MOVE_R_M_B_M
; goto extract_sfmt_move_r_m_b_m
; }
983 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
984 case 189 : /* fall through */
986 if ((base_insn
& 0xbf0) == 0xbd0)
987 { itype
= CRISV32F_INSN_MOVE_R_M_W_M
; goto extract_sfmt_move_r_m_w_m
; }
988 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
989 case 190 : /* fall through */
991 if ((base_insn
& 0xbf0) == 0xbe0)
992 { itype
= CRISV32F_INSN_MOVE_R_M_D_M
; goto extract_sfmt_move_r_m_d_m
; }
993 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
994 case 191 : /* fall through */
996 if ((base_insn
& 0xbf0) == 0xbf0)
997 { itype
= CRISV32F_INSN_MOVEM_R_M_V32
; goto extract_sfmt_movem_r_m_v32
; }
998 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1001 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1004 case 0 : /* fall through */
1005 case 1 : /* fall through */
1006 case 2 : /* fall through */
1007 case 3 : /* fall through */
1008 case 4 : /* fall through */
1009 case 5 : /* fall through */
1010 case 6 : /* fall through */
1011 case 7 : /* fall through */
1012 case 8 : /* fall through */
1013 case 9 : /* fall through */
1014 case 10 : /* fall through */
1015 case 11 : /* fall through */
1016 case 12 : /* fall through */
1017 case 13 : /* fall through */
1019 if ((base_insn
& 0xbf0) == 0x800)
1020 { itype
= CRISV32F_INSN_ADDU_M_B_M
; goto extract_sfmt_adds_m_b_m
; }
1021 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1023 if ((base_insn
& 0xfff) == 0xc0f)
1024 { itype
= CRISV32F_INSN_ADDUCBR
; goto extract_sfmt_addscbr
; }
1025 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1026 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1031 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1034 case 0 : /* fall through */
1035 case 1 : /* fall through */
1036 case 2 : /* fall through */
1037 case 3 : /* fall through */
1038 case 4 : /* fall through */
1039 case 5 : /* fall through */
1040 case 6 : /* fall through */
1041 case 7 : /* fall through */
1042 case 8 : /* fall through */
1043 case 9 : /* fall through */
1044 case 10 : /* fall through */
1045 case 11 : /* fall through */
1046 case 12 : /* fall through */
1047 case 13 : /* fall through */
1049 if ((base_insn
& 0xbf0) == 0x810)
1050 { itype
= CRISV32F_INSN_ADDU_M_W_M
; goto extract_sfmt_adds_m_w_m
; }
1051 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1053 if ((base_insn
& 0xfff) == 0xc1f)
1054 { itype
= CRISV32F_INSN_ADDUCWR
; goto extract_sfmt_addscwr
; }
1055 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1056 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1061 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1064 case 0 : /* fall through */
1065 case 1 : /* fall through */
1066 case 2 : /* fall through */
1067 case 3 : /* fall through */
1068 case 4 : /* fall through */
1069 case 5 : /* fall through */
1070 case 6 : /* fall through */
1071 case 7 : /* fall through */
1072 case 8 : /* fall through */
1073 case 9 : /* fall through */
1074 case 10 : /* fall through */
1075 case 11 : /* fall through */
1076 case 12 : /* fall through */
1077 case 13 : /* fall through */
1079 if ((base_insn
& 0xbf0) == 0x820)
1080 { itype
= CRISV32F_INSN_ADDS_M_B_M
; goto extract_sfmt_adds_m_b_m
; }
1081 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1083 if ((base_insn
& 0xfff) == 0xc2f)
1084 { itype
= CRISV32F_INSN_ADDSCBR
; goto extract_sfmt_addscbr
; }
1085 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1086 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1091 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1094 case 0 : /* fall through */
1095 case 1 : /* fall through */
1096 case 2 : /* fall through */
1097 case 3 : /* fall through */
1098 case 4 : /* fall through */
1099 case 5 : /* fall through */
1100 case 6 : /* fall through */
1101 case 7 : /* fall through */
1102 case 8 : /* fall through */
1103 case 9 : /* fall through */
1104 case 10 : /* fall through */
1105 case 11 : /* fall through */
1106 case 12 : /* fall through */
1107 case 13 : /* fall through */
1109 if ((base_insn
& 0xbf0) == 0x830)
1110 { itype
= CRISV32F_INSN_ADDS_M_W_M
; goto extract_sfmt_adds_m_w_m
; }
1111 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1113 if ((base_insn
& 0xfff) == 0xc3f)
1114 { itype
= CRISV32F_INSN_ADDSCWR
; goto extract_sfmt_addscwr
; }
1115 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1116 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1121 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1124 case 0 : /* fall through */
1125 case 1 : /* fall through */
1126 case 2 : /* fall through */
1127 case 3 : /* fall through */
1128 case 4 : /* fall through */
1129 case 5 : /* fall through */
1130 case 6 : /* fall through */
1131 case 7 : /* fall through */
1132 case 8 : /* fall through */
1133 case 9 : /* fall through */
1134 case 10 : /* fall through */
1135 case 11 : /* fall through */
1136 case 12 : /* fall through */
1137 case 13 : /* fall through */
1139 if ((base_insn
& 0xbf0) == 0x840)
1140 { itype
= CRISV32F_INSN_MOVU_M_B_M
; goto extract_sfmt_movs_m_b_m
; }
1141 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1143 if ((base_insn
& 0xfff) == 0xc4f)
1144 { itype
= CRISV32F_INSN_MOVUCBR
; goto extract_sfmt_movucbr
; }
1145 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1146 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1151 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1154 case 0 : /* fall through */
1155 case 1 : /* fall through */
1156 case 2 : /* fall through */
1157 case 3 : /* fall through */
1158 case 4 : /* fall through */
1159 case 5 : /* fall through */
1160 case 6 : /* fall through */
1161 case 7 : /* fall through */
1162 case 8 : /* fall through */
1163 case 9 : /* fall through */
1164 case 10 : /* fall through */
1165 case 11 : /* fall through */
1166 case 12 : /* fall through */
1167 case 13 : /* fall through */
1169 if ((base_insn
& 0xbf0) == 0x850)
1170 { itype
= CRISV32F_INSN_MOVU_M_W_M
; goto extract_sfmt_movs_m_w_m
; }
1171 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1173 if ((base_insn
& 0xfff) == 0xc5f)
1174 { itype
= CRISV32F_INSN_MOVUCWR
; goto extract_sfmt_movucwr
; }
1175 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1176 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1181 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1184 case 0 : /* fall through */
1185 case 1 : /* fall through */
1186 case 2 : /* fall through */
1187 case 3 : /* fall through */
1188 case 4 : /* fall through */
1189 case 5 : /* fall through */
1190 case 6 : /* fall through */
1191 case 7 : /* fall through */
1192 case 8 : /* fall through */
1193 case 9 : /* fall through */
1194 case 10 : /* fall through */
1195 case 11 : /* fall through */
1196 case 12 : /* fall through */
1197 case 13 : /* fall through */
1199 if ((base_insn
& 0xbf0) == 0x860)
1200 { itype
= CRISV32F_INSN_MOVS_M_B_M
; goto extract_sfmt_movs_m_b_m
; }
1201 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1203 if ((base_insn
& 0xfff) == 0xc6f)
1204 { itype
= CRISV32F_INSN_MOVSCBR
; goto extract_sfmt_movscbr
; }
1205 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1206 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1211 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1214 case 0 : /* fall through */
1215 case 1 : /* fall through */
1216 case 2 : /* fall through */
1217 case 3 : /* fall through */
1218 case 4 : /* fall through */
1219 case 5 : /* fall through */
1220 case 6 : /* fall through */
1221 case 7 : /* fall through */
1222 case 8 : /* fall through */
1223 case 9 : /* fall through */
1224 case 10 : /* fall through */
1225 case 11 : /* fall through */
1226 case 12 : /* fall through */
1227 case 13 : /* fall through */
1229 if ((base_insn
& 0xbf0) == 0x870)
1230 { itype
= CRISV32F_INSN_MOVS_M_W_M
; goto extract_sfmt_movs_m_w_m
; }
1231 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1233 if ((base_insn
& 0xfff) == 0xc7f)
1234 { itype
= CRISV32F_INSN_MOVSCWR
; goto extract_sfmt_movscwr
; }
1235 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1236 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1241 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1244 case 0 : /* fall through */
1245 case 1 : /* fall through */
1246 case 2 : /* fall through */
1247 case 3 : /* fall through */
1248 case 4 : /* fall through */
1249 case 5 : /* fall through */
1250 case 6 : /* fall through */
1251 case 7 : /* fall through */
1252 case 8 : /* fall through */
1253 case 9 : /* fall through */
1254 case 10 : /* fall through */
1255 case 11 : /* fall through */
1256 case 12 : /* fall through */
1257 case 13 : /* fall through */
1259 if ((base_insn
& 0xbf0) == 0x880)
1260 { itype
= CRISV32F_INSN_SUBU_M_B_M
; goto extract_sfmt_adds_m_b_m
; }
1261 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1263 if ((base_insn
& 0xfff) == 0xc8f)
1264 { itype
= CRISV32F_INSN_SUBUCBR
; goto extract_sfmt_addscbr
; }
1265 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1266 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1271 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1274 case 0 : /* fall through */
1275 case 1 : /* fall through */
1276 case 2 : /* fall through */
1277 case 3 : /* fall through */
1278 case 4 : /* fall through */
1279 case 5 : /* fall through */
1280 case 6 : /* fall through */
1281 case 7 : /* fall through */
1282 case 8 : /* fall through */
1283 case 9 : /* fall through */
1284 case 10 : /* fall through */
1285 case 11 : /* fall through */
1286 case 12 : /* fall through */
1287 case 13 : /* fall through */
1289 if ((base_insn
& 0xbf0) == 0x890)
1290 { itype
= CRISV32F_INSN_SUBU_M_W_M
; goto extract_sfmt_adds_m_w_m
; }
1291 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1293 if ((base_insn
& 0xfff) == 0xc9f)
1294 { itype
= CRISV32F_INSN_SUBUCWR
; goto extract_sfmt_addscwr
; }
1295 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1296 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1301 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1304 case 0 : /* fall through */
1305 case 1 : /* fall through */
1306 case 2 : /* fall through */
1307 case 3 : /* fall through */
1308 case 4 : /* fall through */
1309 case 5 : /* fall through */
1310 case 6 : /* fall through */
1311 case 7 : /* fall through */
1312 case 8 : /* fall through */
1313 case 9 : /* fall through */
1314 case 10 : /* fall through */
1315 case 11 : /* fall through */
1316 case 12 : /* fall through */
1317 case 13 : /* fall through */
1319 if ((base_insn
& 0xbf0) == 0x8a0)
1320 { itype
= CRISV32F_INSN_SUBS_M_B_M
; goto extract_sfmt_adds_m_b_m
; }
1321 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1323 if ((base_insn
& 0xfff) == 0xcaf)
1324 { itype
= CRISV32F_INSN_SUBSCBR
; goto extract_sfmt_addscbr
; }
1325 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1326 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1331 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1334 case 0 : /* fall through */
1335 case 1 : /* fall through */
1336 case 2 : /* fall through */
1337 case 3 : /* fall through */
1338 case 4 : /* fall through */
1339 case 5 : /* fall through */
1340 case 6 : /* fall through */
1341 case 7 : /* fall through */
1342 case 8 : /* fall through */
1343 case 9 : /* fall through */
1344 case 10 : /* fall through */
1345 case 11 : /* fall through */
1346 case 12 : /* fall through */
1347 case 13 : /* fall through */
1349 if ((base_insn
& 0xbf0) == 0x8b0)
1350 { itype
= CRISV32F_INSN_SUBS_M_W_M
; goto extract_sfmt_adds_m_w_m
; }
1351 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1353 if ((base_insn
& 0xfff) == 0xcbf)
1354 { itype
= CRISV32F_INSN_SUBSCWR
; goto extract_sfmt_addscwr
; }
1355 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1356 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1361 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1364 case 0 : /* fall through */
1365 case 1 : /* fall through */
1366 case 2 : /* fall through */
1367 case 3 : /* fall through */
1368 case 4 : /* fall through */
1369 case 5 : /* fall through */
1370 case 6 : /* fall through */
1371 case 7 : /* fall through */
1372 case 8 : /* fall through */
1373 case 9 : /* fall through */
1374 case 10 : /* fall through */
1375 case 11 : /* fall through */
1376 case 12 : /* fall through */
1377 case 13 : /* fall through */
1379 if ((base_insn
& 0xbf0) == 0x8c0)
1380 { itype
= CRISV32F_INSN_CMPU_M_B_M
; goto extract_sfmt_cmp_m_b_m
; }
1381 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1383 if ((base_insn
& 0xfff) == 0xccf)
1384 { itype
= CRISV32F_INSN_CMPUCBR
; goto extract_sfmt_cmpucbr
; }
1385 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1386 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1391 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1394 case 0 : /* fall through */
1395 case 1 : /* fall through */
1396 case 2 : /* fall through */
1397 case 3 : /* fall through */
1398 case 4 : /* fall through */
1399 case 5 : /* fall through */
1400 case 6 : /* fall through */
1401 case 7 : /* fall through */
1402 case 8 : /* fall through */
1403 case 9 : /* fall through */
1404 case 10 : /* fall through */
1405 case 11 : /* fall through */
1406 case 12 : /* fall through */
1407 case 13 : /* fall through */
1409 if ((base_insn
& 0xbf0) == 0x8d0)
1410 { itype
= CRISV32F_INSN_CMPU_M_W_M
; goto extract_sfmt_cmp_m_w_m
; }
1411 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1413 if ((base_insn
& 0xfff) == 0xcdf)
1414 { itype
= CRISV32F_INSN_CMPUCWR
; goto extract_sfmt_cmpucwr
; }
1415 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1416 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1421 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1424 case 0 : /* fall through */
1425 case 1 : /* fall through */
1426 case 2 : /* fall through */
1427 case 3 : /* fall through */
1428 case 4 : /* fall through */
1429 case 5 : /* fall through */
1430 case 6 : /* fall through */
1431 case 7 : /* fall through */
1432 case 8 : /* fall through */
1433 case 9 : /* fall through */
1434 case 10 : /* fall through */
1435 case 11 : /* fall through */
1436 case 12 : /* fall through */
1437 case 13 : /* fall through */
1439 if ((base_insn
& 0xbf0) == 0x8e0)
1440 { itype
= CRISV32F_INSN_CMPS_M_B_M
; goto extract_sfmt_cmp_m_b_m
; }
1441 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1443 if ((base_insn
& 0xfff) == 0xcef)
1444 { itype
= CRISV32F_INSN_CMPSCBR
; goto extract_sfmt_cmpcbr
; }
1445 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1446 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1451 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1454 case 0 : /* fall through */
1455 case 1 : /* fall through */
1456 case 2 : /* fall through */
1457 case 3 : /* fall through */
1458 case 4 : /* fall through */
1459 case 5 : /* fall through */
1460 case 6 : /* fall through */
1461 case 7 : /* fall through */
1462 case 8 : /* fall through */
1463 case 9 : /* fall through */
1464 case 10 : /* fall through */
1465 case 11 : /* fall through */
1466 case 12 : /* fall through */
1467 case 13 : /* fall through */
1469 if ((base_insn
& 0xbf0) == 0x8f0)
1470 { itype
= CRISV32F_INSN_CMPS_M_W_M
; goto extract_sfmt_cmp_m_w_m
; }
1471 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1473 if ((base_insn
& 0xfff) == 0xcff)
1474 { itype
= CRISV32F_INSN_CMPSCWR
; goto extract_sfmt_cmpcwr
; }
1475 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1476 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1480 if ((base_insn
& 0xff0) == 0xd00)
1481 { itype
= CRISV32F_INSN_MULS_B
; goto extract_sfmt_muls_b
; }
1482 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1484 if ((base_insn
& 0xff0) == 0xd10)
1485 { itype
= CRISV32F_INSN_MULS_W
; goto extract_sfmt_muls_b
; }
1486 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1488 if ((base_insn
& 0xff0) == 0xd20)
1489 { itype
= CRISV32F_INSN_MULS_D
; goto extract_sfmt_muls_b
; }
1490 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1493 unsigned int val
= (((insn
>> 12) & (1 << 0)));
1497 if ((base_insn
& 0xfff0) == 0xd30)
1498 { itype
= CRISV32F_INSN_FIDXI
; goto extract_sfmt_fidxi
; }
1499 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1501 if ((base_insn
& 0xfff0) == 0x1d30)
1502 { itype
= CRISV32F_INSN_FTAGI
; goto extract_sfmt_fidxi
; }
1503 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1504 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1509 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1512 case 0 : /* fall through */
1513 case 1 : /* fall through */
1514 case 2 : /* fall through */
1515 case 3 : /* fall through */
1516 case 4 : /* fall through */
1517 case 5 : /* fall through */
1518 case 6 : /* fall through */
1519 case 7 : /* fall through */
1520 case 8 : /* fall through */
1521 case 9 : /* fall through */
1522 case 10 : /* fall through */
1523 case 11 : /* fall through */
1524 case 12 : /* fall through */
1525 case 13 : /* fall through */
1527 if ((base_insn
& 0xbf0) == 0x940)
1528 { itype
= CRISV32F_INSN_ADDO_M_B_M
; goto extract_sfmt_addo_m_b_m
; }
1529 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1531 if ((base_insn
& 0xfff) == 0xd4f)
1532 { itype
= CRISV32F_INSN_ADDO_CB
; goto extract_sfmt_addo_cb
; }
1533 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1534 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1539 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1542 case 0 : /* fall through */
1543 case 1 : /* fall through */
1544 case 2 : /* fall through */
1545 case 3 : /* fall through */
1546 case 4 : /* fall through */
1547 case 5 : /* fall through */
1548 case 6 : /* fall through */
1549 case 7 : /* fall through */
1550 case 8 : /* fall through */
1551 case 9 : /* fall through */
1552 case 10 : /* fall through */
1553 case 11 : /* fall through */
1554 case 12 : /* fall through */
1555 case 13 : /* fall through */
1557 if ((base_insn
& 0xbf0) == 0x950)
1558 { itype
= CRISV32F_INSN_ADDO_M_W_M
; goto extract_sfmt_addo_m_w_m
; }
1559 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1561 if ((base_insn
& 0xfff) == 0xd5f)
1562 { itype
= CRISV32F_INSN_ADDO_CW
; goto extract_sfmt_addo_cw
; }
1563 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1564 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1569 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1572 case 0 : /* fall through */
1573 case 1 : /* fall through */
1574 case 2 : /* fall through */
1575 case 3 : /* fall through */
1576 case 4 : /* fall through */
1577 case 5 : /* fall through */
1578 case 6 : /* fall through */
1579 case 7 : /* fall through */
1580 case 8 : /* fall through */
1581 case 9 : /* fall through */
1582 case 10 : /* fall through */
1583 case 11 : /* fall through */
1584 case 12 : /* fall through */
1585 case 13 : /* fall through */
1587 if ((base_insn
& 0xbf0) == 0x960)
1588 { itype
= CRISV32F_INSN_ADDO_M_D_M
; goto extract_sfmt_addo_m_d_m
; }
1589 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1591 if ((base_insn
& 0xfff) == 0xd6f)
1592 { itype
= CRISV32F_INSN_ADDO_CD
; goto extract_sfmt_addo_cd
; }
1593 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1594 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1598 if ((base_insn
& 0xfff) == 0xd7f)
1599 { itype
= CRISV32F_INSN_LAPC_D
; goto extract_sfmt_lapc_d
; }
1600 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1603 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1606 case 0 : /* fall through */
1607 case 1 : /* fall through */
1608 case 2 : /* fall through */
1609 case 3 : /* fall through */
1610 case 4 : /* fall through */
1611 case 5 : /* fall through */
1612 case 6 : /* fall through */
1613 case 7 : /* fall through */
1614 case 8 : /* fall through */
1615 case 9 : /* fall through */
1616 case 10 : /* fall through */
1617 case 11 : /* fall through */
1618 case 12 : /* fall through */
1619 case 13 : /* fall through */
1621 if ((base_insn
& 0xbf0) == 0x9a0)
1622 { itype
= CRISV32F_INSN_ADDC_M
; goto extract_sfmt_addc_m
; }
1623 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1625 if ((base_insn
& 0xfff) == 0xdaf)
1626 { itype
= CRISV32F_INSN_ADDC_C
; goto extract_sfmt_addcdr
; }
1627 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1628 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1632 if ((base_insn
& 0xfff) == 0xdbf)
1633 { itype
= CRISV32F_INSN_JAS_C
; goto extract_sfmt_jas_c
; }
1634 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1636 if ((base_insn
& 0xfff) == 0xdcf)
1637 { itype
= CRISV32F_INSN_BOUND_CB
; goto extract_sfmt_bound_cb
; }
1638 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1640 if ((base_insn
& 0xfff) == 0xddf)
1641 { itype
= CRISV32F_INSN_BOUND_CW
; goto extract_sfmt_bound_cw
; }
1642 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1644 if ((base_insn
& 0xfff) == 0xdef)
1645 { itype
= CRISV32F_INSN_BOUND_CD
; goto extract_sfmt_bound_cd
; }
1646 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1649 unsigned int val
= (((insn
>> 12) & (15 << 0)));
1652 case 0 : /* fall through */
1653 case 1 : /* fall through */
1654 case 2 : /* fall through */
1655 case 3 : /* fall through */
1656 case 4 : /* fall through */
1657 case 5 : /* fall through */
1658 case 6 : /* fall through */
1659 case 7 : /* fall through */
1660 case 8 : /* fall through */
1661 case 9 : /* fall through */
1662 case 10 : /* fall through */
1663 case 11 : /* fall through */
1664 case 12 : /* fall through */
1665 case 13 : /* fall through */
1667 if ((base_insn
& 0xfff) == 0xdff)
1668 { itype
= CRISV32F_INSN_BCC_W
; goto extract_sfmt_bcc_w
; }
1669 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1671 if ((base_insn
& 0xffff) == 0xedff)
1672 { itype
= CRISV32F_INSN_BA_W
; goto extract_sfmt_ba_w
; }
1673 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1674 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1679 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1682 case 0 : /* fall through */
1683 case 1 : /* fall through */
1684 case 2 : /* fall through */
1685 case 3 : /* fall through */
1686 case 4 : /* fall through */
1687 case 5 : /* fall through */
1688 case 6 : /* fall through */
1689 case 7 : /* fall through */
1690 case 8 : /* fall through */
1691 case 9 : /* fall through */
1692 case 10 : /* fall through */
1693 case 11 : /* fall through */
1694 case 12 : /* fall through */
1695 case 13 : /* fall through */
1697 if ((base_insn
& 0xbf0) == 0xa00)
1698 { itype
= CRISV32F_INSN_ADD_M_B_M
; goto extract_sfmt_add_m_b_m
; }
1699 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1701 if ((base_insn
& 0xfff) == 0xe0f)
1702 { itype
= CRISV32F_INSN_ADDCBR
; goto extract_sfmt_addcbr
; }
1703 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1704 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1709 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1712 case 0 : /* fall through */
1713 case 1 : /* fall through */
1714 case 2 : /* fall through */
1715 case 3 : /* fall through */
1716 case 4 : /* fall through */
1717 case 5 : /* fall through */
1718 case 6 : /* fall through */
1719 case 7 : /* fall through */
1720 case 8 : /* fall through */
1721 case 9 : /* fall through */
1722 case 10 : /* fall through */
1723 case 11 : /* fall through */
1724 case 12 : /* fall through */
1725 case 13 : /* fall through */
1727 if ((base_insn
& 0xbf0) == 0xa10)
1728 { itype
= CRISV32F_INSN_ADD_M_W_M
; goto extract_sfmt_add_m_w_m
; }
1729 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1731 if ((base_insn
& 0xfff) == 0xe1f)
1732 { itype
= CRISV32F_INSN_ADDCWR
; goto extract_sfmt_addcwr
; }
1733 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1734 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1739 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1742 case 0 : /* fall through */
1743 case 1 : /* fall through */
1744 case 2 : /* fall through */
1745 case 3 : /* fall through */
1746 case 4 : /* fall through */
1747 case 5 : /* fall through */
1748 case 6 : /* fall through */
1749 case 7 : /* fall through */
1750 case 8 : /* fall through */
1751 case 9 : /* fall through */
1752 case 10 : /* fall through */
1753 case 11 : /* fall through */
1754 case 12 : /* fall through */
1755 case 13 : /* fall through */
1757 if ((base_insn
& 0xbf0) == 0xa20)
1758 { itype
= CRISV32F_INSN_ADD_M_D_M
; goto extract_sfmt_add_m_d_m
; }
1759 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1761 if ((base_insn
& 0xfff) == 0xe2f)
1762 { itype
= CRISV32F_INSN_ADDCDR
; goto extract_sfmt_addcdr
; }
1763 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1764 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1769 unsigned int val
= (((insn
>> 12) & (15 << 0)));
1772 case 0 : /* fall through */
1773 case 1 : /* fall through */
1774 case 4 : /* fall through */
1776 if ((base_insn
& 0xbf0) == 0xa30)
1777 { itype
= CRISV32F_INSN_MOVE_M_SPRV32
; goto extract_sfmt_move_m_sprv32
; }
1778 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1781 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1784 case 0 : /* fall through */
1785 case 1 : /* fall through */
1786 case 2 : /* fall through */
1787 case 3 : /* fall through */
1788 case 4 : /* fall through */
1789 case 5 : /* fall through */
1790 case 6 : /* fall through */
1791 case 7 : /* fall through */
1792 case 8 : /* fall through */
1793 case 9 : /* fall through */
1794 case 10 : /* fall through */
1795 case 11 : /* fall through */
1796 case 12 : /* fall through */
1797 case 13 : /* fall through */
1799 if ((base_insn
& 0xbf0) == 0xa30)
1800 { itype
= CRISV32F_INSN_MOVE_M_SPRV32
; goto extract_sfmt_move_m_sprv32
; }
1801 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1803 if ((base_insn
& 0xffff) == 0x2e3f)
1804 { itype
= CRISV32F_INSN_MOVE_C_SPRV32_P2
; goto extract_sfmt_move_c_sprv32_p2
; }
1805 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1806 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1811 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1814 case 0 : /* fall through */
1815 case 1 : /* fall through */
1816 case 2 : /* fall through */
1817 case 3 : /* fall through */
1818 case 4 : /* fall through */
1819 case 5 : /* fall through */
1820 case 6 : /* fall through */
1821 case 7 : /* fall through */
1822 case 8 : /* fall through */
1823 case 9 : /* fall through */
1824 case 10 : /* fall through */
1825 case 11 : /* fall through */
1826 case 12 : /* fall through */
1827 case 13 : /* fall through */
1829 if ((base_insn
& 0xbf0) == 0xa30)
1830 { itype
= CRISV32F_INSN_MOVE_M_SPRV32
; goto extract_sfmt_move_m_sprv32
; }
1831 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1833 if ((base_insn
& 0xffff) == 0x3e3f)
1834 { itype
= CRISV32F_INSN_MOVE_C_SPRV32_P3
; goto extract_sfmt_move_c_sprv32_p2
; }
1835 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1836 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1841 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1844 case 0 : /* fall through */
1845 case 1 : /* fall through */
1846 case 2 : /* fall through */
1847 case 3 : /* fall through */
1848 case 4 : /* fall through */
1849 case 5 : /* fall through */
1850 case 6 : /* fall through */
1851 case 7 : /* fall through */
1852 case 8 : /* fall through */
1853 case 9 : /* fall through */
1854 case 10 : /* fall through */
1855 case 11 : /* fall through */
1856 case 12 : /* fall through */
1857 case 13 : /* fall through */
1859 if ((base_insn
& 0xbf0) == 0xa30)
1860 { itype
= CRISV32F_INSN_MOVE_M_SPRV32
; goto extract_sfmt_move_m_sprv32
; }
1861 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1863 if ((base_insn
& 0xffff) == 0x5e3f)
1864 { itype
= CRISV32F_INSN_MOVE_C_SPRV32_P5
; goto extract_sfmt_move_c_sprv32_p2
; }
1865 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1866 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1871 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1874 case 0 : /* fall through */
1875 case 1 : /* fall through */
1876 case 2 : /* fall through */
1877 case 3 : /* fall through */
1878 case 4 : /* fall through */
1879 case 5 : /* fall through */
1880 case 6 : /* fall through */
1881 case 7 : /* fall through */
1882 case 8 : /* fall through */
1883 case 9 : /* fall through */
1884 case 10 : /* fall through */
1885 case 11 : /* fall through */
1886 case 12 : /* fall through */
1887 case 13 : /* fall through */
1889 if ((base_insn
& 0xbf0) == 0xa30)
1890 { itype
= CRISV32F_INSN_MOVE_M_SPRV32
; goto extract_sfmt_move_m_sprv32
; }
1891 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1893 if ((base_insn
& 0xffff) == 0x6e3f)
1894 { itype
= CRISV32F_INSN_MOVE_C_SPRV32_P6
; goto extract_sfmt_move_c_sprv32_p2
; }
1895 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1896 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1901 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1904 case 0 : /* fall through */
1905 case 1 : /* fall through */
1906 case 2 : /* fall through */
1907 case 3 : /* fall through */
1908 case 4 : /* fall through */
1909 case 5 : /* fall through */
1910 case 6 : /* fall through */
1911 case 7 : /* fall through */
1912 case 8 : /* fall through */
1913 case 9 : /* fall through */
1914 case 10 : /* fall through */
1915 case 11 : /* fall through */
1916 case 12 : /* fall through */
1917 case 13 : /* fall through */
1919 if ((base_insn
& 0xbf0) == 0xa30)
1920 { itype
= CRISV32F_INSN_MOVE_M_SPRV32
; goto extract_sfmt_move_m_sprv32
; }
1921 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1923 if ((base_insn
& 0xffff) == 0x7e3f)
1924 { itype
= CRISV32F_INSN_MOVE_C_SPRV32_P7
; goto extract_sfmt_move_c_sprv32_p2
; }
1925 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1926 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1931 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1934 case 0 : /* fall through */
1935 case 1 : /* fall through */
1936 case 2 : /* fall through */
1937 case 3 : /* fall through */
1938 case 4 : /* fall through */
1939 case 5 : /* fall through */
1940 case 6 : /* fall through */
1941 case 7 : /* fall through */
1942 case 8 : /* fall through */
1943 case 9 : /* fall through */
1944 case 10 : /* fall through */
1945 case 11 : /* fall through */
1946 case 12 : /* fall through */
1947 case 13 : /* fall through */
1949 if ((base_insn
& 0xbf0) == 0xa30)
1950 { itype
= CRISV32F_INSN_MOVE_M_SPRV32
; goto extract_sfmt_move_m_sprv32
; }
1951 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1953 if ((base_insn
& 0xffff) == 0x9e3f)
1954 { itype
= CRISV32F_INSN_MOVE_C_SPRV32_P9
; goto extract_sfmt_move_c_sprv32_p2
; }
1955 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1956 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1961 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1964 case 0 : /* fall through */
1965 case 1 : /* fall through */
1966 case 2 : /* fall through */
1967 case 3 : /* fall through */
1968 case 4 : /* fall through */
1969 case 5 : /* fall through */
1970 case 6 : /* fall through */
1971 case 7 : /* fall through */
1972 case 8 : /* fall through */
1973 case 9 : /* fall through */
1974 case 10 : /* fall through */
1975 case 11 : /* fall through */
1976 case 12 : /* fall through */
1977 case 13 : /* fall through */
1979 if ((base_insn
& 0xbf0) == 0xa30)
1980 { itype
= CRISV32F_INSN_MOVE_M_SPRV32
; goto extract_sfmt_move_m_sprv32
; }
1981 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1983 if ((base_insn
& 0xffff) == 0xae3f)
1984 { itype
= CRISV32F_INSN_MOVE_C_SPRV32_P10
; goto extract_sfmt_move_c_sprv32_p2
; }
1985 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1986 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1991 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1994 case 0 : /* fall through */
1995 case 1 : /* fall through */
1996 case 2 : /* fall through */
1997 case 3 : /* fall through */
1998 case 4 : /* fall through */
1999 case 5 : /* fall through */
2000 case 6 : /* fall through */
2001 case 7 : /* fall through */
2002 case 8 : /* fall through */
2003 case 9 : /* fall through */
2004 case 10 : /* fall through */
2005 case 11 : /* fall through */
2006 case 12 : /* fall through */
2007 case 13 : /* fall through */
2009 if ((base_insn
& 0xbf0) == 0xa30)
2010 { itype
= CRISV32F_INSN_MOVE_M_SPRV32
; goto extract_sfmt_move_m_sprv32
; }
2011 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2013 if ((base_insn
& 0xffff) == 0xbe3f)
2014 { itype
= CRISV32F_INSN_MOVE_C_SPRV32_P11
; goto extract_sfmt_move_c_sprv32_p2
; }
2015 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2016 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2021 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2024 case 0 : /* fall through */
2025 case 1 : /* fall through */
2026 case 2 : /* fall through */
2027 case 3 : /* fall through */
2028 case 4 : /* fall through */
2029 case 5 : /* fall through */
2030 case 6 : /* fall through */
2031 case 7 : /* fall through */
2032 case 8 : /* fall through */
2033 case 9 : /* fall through */
2034 case 10 : /* fall through */
2035 case 11 : /* fall through */
2036 case 12 : /* fall through */
2037 case 13 : /* fall through */
2039 if ((base_insn
& 0xbf0) == 0xa30)
2040 { itype
= CRISV32F_INSN_MOVE_M_SPRV32
; goto extract_sfmt_move_m_sprv32
; }
2041 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2043 if ((base_insn
& 0xffff) == 0xce3f)
2044 { itype
= CRISV32F_INSN_MOVE_C_SPRV32_P12
; goto extract_sfmt_move_c_sprv32_p2
; }
2045 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2046 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2051 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2054 case 0 : /* fall through */
2055 case 1 : /* fall through */
2056 case 2 : /* fall through */
2057 case 3 : /* fall through */
2058 case 4 : /* fall through */
2059 case 5 : /* fall through */
2060 case 6 : /* fall through */
2061 case 7 : /* fall through */
2062 case 8 : /* fall through */
2063 case 9 : /* fall through */
2064 case 10 : /* fall through */
2065 case 11 : /* fall through */
2066 case 12 : /* fall through */
2067 case 13 : /* fall through */
2069 if ((base_insn
& 0xbf0) == 0xa30)
2070 { itype
= CRISV32F_INSN_MOVE_M_SPRV32
; goto extract_sfmt_move_m_sprv32
; }
2071 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2073 if ((base_insn
& 0xffff) == 0xde3f)
2074 { itype
= CRISV32F_INSN_MOVE_C_SPRV32_P13
; goto extract_sfmt_move_c_sprv32_p2
; }
2075 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2076 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2081 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2084 case 0 : /* fall through */
2085 case 1 : /* fall through */
2086 case 2 : /* fall through */
2087 case 3 : /* fall through */
2088 case 4 : /* fall through */
2089 case 5 : /* fall through */
2090 case 6 : /* fall through */
2091 case 7 : /* fall through */
2092 case 8 : /* fall through */
2093 case 9 : /* fall through */
2094 case 10 : /* fall through */
2095 case 11 : /* fall through */
2096 case 12 : /* fall through */
2097 case 13 : /* fall through */
2099 if ((base_insn
& 0xbf0) == 0xa30)
2100 { itype
= CRISV32F_INSN_MOVE_M_SPRV32
; goto extract_sfmt_move_m_sprv32
; }
2101 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2103 if ((base_insn
& 0xffff) == 0xee3f)
2104 { itype
= CRISV32F_INSN_MOVE_C_SPRV32_P14
; goto extract_sfmt_move_c_sprv32_p2
; }
2105 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2106 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2111 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2114 case 0 : /* fall through */
2115 case 1 : /* fall through */
2116 case 2 : /* fall through */
2117 case 3 : /* fall through */
2118 case 4 : /* fall through */
2119 case 5 : /* fall through */
2120 case 6 : /* fall through */
2121 case 7 : /* fall through */
2122 case 8 : /* fall through */
2123 case 9 : /* fall through */
2124 case 10 : /* fall through */
2125 case 11 : /* fall through */
2126 case 12 : /* fall through */
2127 case 13 : /* fall through */
2129 if ((base_insn
& 0xbf0) == 0xa30)
2130 { itype
= CRISV32F_INSN_MOVE_M_SPRV32
; goto extract_sfmt_move_m_sprv32
; }
2131 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2133 if ((base_insn
& 0xffff) == 0xfe3f)
2134 { itype
= CRISV32F_INSN_MOVE_C_SPRV32_P15
; goto extract_sfmt_move_c_sprv32_p2
; }
2135 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2136 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2139 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2144 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2147 case 0 : /* fall through */
2148 case 1 : /* fall through */
2149 case 2 : /* fall through */
2150 case 3 : /* fall through */
2151 case 4 : /* fall through */
2152 case 5 : /* fall through */
2153 case 6 : /* fall through */
2154 case 7 : /* fall through */
2155 case 8 : /* fall through */
2156 case 9 : /* fall through */
2157 case 10 : /* fall through */
2158 case 11 : /* fall through */
2159 case 12 : /* fall through */
2160 case 13 : /* fall through */
2162 if ((base_insn
& 0xbf0) == 0xa40)
2163 { itype
= CRISV32F_INSN_MOVE_M_B_M
; goto extract_sfmt_move_m_b_m
; }
2164 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2166 if ((base_insn
& 0xfff) == 0xe4f)
2167 { itype
= CRISV32F_INSN_MOVECBR
; goto extract_sfmt_movecbr
; }
2168 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2169 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2174 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2177 case 0 : /* fall through */
2178 case 1 : /* fall through */
2179 case 2 : /* fall through */
2180 case 3 : /* fall through */
2181 case 4 : /* fall through */
2182 case 5 : /* fall through */
2183 case 6 : /* fall through */
2184 case 7 : /* fall through */
2185 case 8 : /* fall through */
2186 case 9 : /* fall through */
2187 case 10 : /* fall through */
2188 case 11 : /* fall through */
2189 case 12 : /* fall through */
2190 case 13 : /* fall through */
2192 if ((base_insn
& 0xbf0) == 0xa50)
2193 { itype
= CRISV32F_INSN_MOVE_M_W_M
; goto extract_sfmt_move_m_w_m
; }
2194 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2196 if ((base_insn
& 0xfff) == 0xe5f)
2197 { itype
= CRISV32F_INSN_MOVECWR
; goto extract_sfmt_movecwr
; }
2198 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2199 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2204 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2207 case 0 : /* fall through */
2208 case 1 : /* fall through */
2209 case 2 : /* fall through */
2210 case 3 : /* fall through */
2211 case 4 : /* fall through */
2212 case 5 : /* fall through */
2213 case 6 : /* fall through */
2214 case 7 : /* fall through */
2215 case 8 : /* fall through */
2216 case 9 : /* fall through */
2217 case 10 : /* fall through */
2218 case 11 : /* fall through */
2219 case 12 : /* fall through */
2220 case 13 : /* fall through */
2222 if ((base_insn
& 0xbf0) == 0xa60)
2223 { itype
= CRISV32F_INSN_MOVE_M_D_M
; goto extract_sfmt_move_m_d_m
; }
2224 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2226 if ((base_insn
& 0xfff) == 0xe6f)
2227 { itype
= CRISV32F_INSN_MOVECDR
; goto extract_sfmt_movecdr
; }
2228 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2229 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2234 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2237 case 0 : /* fall through */
2238 case 1 : /* fall through */
2239 case 2 : /* fall through */
2240 case 3 : /* fall through */
2241 case 4 : /* fall through */
2242 case 5 : /* fall through */
2243 case 6 : /* fall through */
2244 case 7 : /* fall through */
2245 case 8 : /* fall through */
2246 case 9 : /* fall through */
2247 case 10 : /* fall through */
2248 case 11 : /* fall through */
2249 case 12 : /* fall through */
2250 case 13 : /* fall through */
2252 if ((base_insn
& 0xbf0) == 0xa80)
2253 { itype
= CRISV32F_INSN_SUB_M_B_M
; goto extract_sfmt_add_m_b_m
; }
2254 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2256 if ((base_insn
& 0xfff) == 0xe8f)
2257 { itype
= CRISV32F_INSN_SUBCBR
; goto extract_sfmt_addcbr
; }
2258 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2259 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2264 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2267 case 0 : /* fall through */
2268 case 1 : /* fall through */
2269 case 2 : /* fall through */
2270 case 3 : /* fall through */
2271 case 4 : /* fall through */
2272 case 5 : /* fall through */
2273 case 6 : /* fall through */
2274 case 7 : /* fall through */
2275 case 8 : /* fall through */
2276 case 9 : /* fall through */
2277 case 10 : /* fall through */
2278 case 11 : /* fall through */
2279 case 12 : /* fall through */
2280 case 13 : /* fall through */
2282 if ((base_insn
& 0xbf0) == 0xa90)
2283 { itype
= CRISV32F_INSN_SUB_M_W_M
; goto extract_sfmt_add_m_w_m
; }
2284 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2286 if ((base_insn
& 0xfff) == 0xe9f)
2287 { itype
= CRISV32F_INSN_SUBCWR
; goto extract_sfmt_addcwr
; }
2288 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2289 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2294 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2297 case 0 : /* fall through */
2298 case 1 : /* fall through */
2299 case 2 : /* fall through */
2300 case 3 : /* fall through */
2301 case 4 : /* fall through */
2302 case 5 : /* fall through */
2303 case 6 : /* fall through */
2304 case 7 : /* fall through */
2305 case 8 : /* fall through */
2306 case 9 : /* fall through */
2307 case 10 : /* fall through */
2308 case 11 : /* fall through */
2309 case 12 : /* fall through */
2310 case 13 : /* fall through */
2312 if ((base_insn
& 0xbf0) == 0xaa0)
2313 { itype
= CRISV32F_INSN_SUB_M_D_M
; goto extract_sfmt_add_m_d_m
; }
2314 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2316 if ((base_insn
& 0xfff) == 0xeaf)
2317 { itype
= CRISV32F_INSN_SUBCDR
; goto extract_sfmt_addcdr
; }
2318 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2319 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2323 if ((base_insn
& 0xfff) == 0xebf)
2324 { itype
= CRISV32F_INSN_BAS_C
; goto extract_sfmt_bas_c
; }
2325 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2328 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2331 case 0 : /* fall through */
2332 case 1 : /* fall through */
2333 case 2 : /* fall through */
2334 case 3 : /* fall through */
2335 case 4 : /* fall through */
2336 case 5 : /* fall through */
2337 case 6 : /* fall through */
2338 case 7 : /* fall through */
2339 case 8 : /* fall through */
2340 case 9 : /* fall through */
2341 case 10 : /* fall through */
2342 case 11 : /* fall through */
2343 case 12 : /* fall through */
2344 case 13 : /* fall through */
2346 if ((base_insn
& 0xbf0) == 0xac0)
2347 { itype
= CRISV32F_INSN_CMP_M_B_M
; goto extract_sfmt_cmp_m_b_m
; }
2348 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2350 if ((base_insn
& 0xfff) == 0xecf)
2351 { itype
= CRISV32F_INSN_CMPCBR
; goto extract_sfmt_cmpcbr
; }
2352 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2353 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2358 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2361 case 0 : /* fall through */
2362 case 1 : /* fall through */
2363 case 2 : /* fall through */
2364 case 3 : /* fall through */
2365 case 4 : /* fall through */
2366 case 5 : /* fall through */
2367 case 6 : /* fall through */
2368 case 7 : /* fall through */
2369 case 8 : /* fall through */
2370 case 9 : /* fall through */
2371 case 10 : /* fall through */
2372 case 11 : /* fall through */
2373 case 12 : /* fall through */
2374 case 13 : /* fall through */
2376 if ((base_insn
& 0xbf0) == 0xad0)
2377 { itype
= CRISV32F_INSN_CMP_M_W_M
; goto extract_sfmt_cmp_m_w_m
; }
2378 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2380 if ((base_insn
& 0xfff) == 0xedf)
2381 { itype
= CRISV32F_INSN_CMPCWR
; goto extract_sfmt_cmpcwr
; }
2382 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2383 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2388 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2391 case 0 : /* fall through */
2392 case 1 : /* fall through */
2393 case 2 : /* fall through */
2394 case 3 : /* fall through */
2395 case 4 : /* fall through */
2396 case 5 : /* fall through */
2397 case 6 : /* fall through */
2398 case 7 : /* fall through */
2399 case 8 : /* fall through */
2400 case 9 : /* fall through */
2401 case 10 : /* fall through */
2402 case 11 : /* fall through */
2403 case 12 : /* fall through */
2404 case 13 : /* fall through */
2406 if ((base_insn
& 0xbf0) == 0xae0)
2407 { itype
= CRISV32F_INSN_CMP_M_D_M
; goto extract_sfmt_cmp_m_d_m
; }
2408 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2410 if ((base_insn
& 0xfff) == 0xeef)
2411 { itype
= CRISV32F_INSN_CMPCDR
; goto extract_sfmt_cmpcdr
; }
2412 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2413 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2417 if ((base_insn
& 0xfff) == 0xeff)
2418 { itype
= CRISV32F_INSN_BASC_C
; goto extract_sfmt_bas_c
; }
2419 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2422 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2425 case 0 : /* fall through */
2426 case 1 : /* fall through */
2427 case 2 : /* fall through */
2428 case 3 : /* fall through */
2429 case 4 : /* fall through */
2430 case 5 : /* fall through */
2431 case 6 : /* fall through */
2432 case 7 : /* fall through */
2433 case 8 : /* fall through */
2434 case 9 : /* fall through */
2435 case 10 : /* fall through */
2436 case 11 : /* fall through */
2437 case 12 : /* fall through */
2438 case 13 : /* fall through */
2440 if ((base_insn
& 0xbf0) == 0xb00)
2441 { itype
= CRISV32F_INSN_AND_M_B_M
; goto extract_sfmt_and_m_b_m
; }
2442 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2444 if ((base_insn
& 0xfff) == 0xf0f)
2445 { itype
= CRISV32F_INSN_ANDCBR
; goto extract_sfmt_andcbr
; }
2446 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2447 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2452 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2455 case 0 : /* fall through */
2456 case 1 : /* fall through */
2457 case 2 : /* fall through */
2458 case 3 : /* fall through */
2459 case 4 : /* fall through */
2460 case 5 : /* fall through */
2461 case 6 : /* fall through */
2462 case 7 : /* fall through */
2463 case 8 : /* fall through */
2464 case 9 : /* fall through */
2465 case 10 : /* fall through */
2466 case 11 : /* fall through */
2467 case 12 : /* fall through */
2468 case 13 : /* fall through */
2470 if ((base_insn
& 0xbf0) == 0xb10)
2471 { itype
= CRISV32F_INSN_AND_M_W_M
; goto extract_sfmt_and_m_w_m
; }
2472 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2474 if ((base_insn
& 0xfff) == 0xf1f)
2475 { itype
= CRISV32F_INSN_ANDCWR
; goto extract_sfmt_andcwr
; }
2476 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2477 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2482 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2485 case 0 : /* fall through */
2486 case 1 : /* fall through */
2487 case 2 : /* fall through */
2488 case 3 : /* fall through */
2489 case 4 : /* fall through */
2490 case 5 : /* fall through */
2491 case 6 : /* fall through */
2492 case 7 : /* fall through */
2493 case 8 : /* fall through */
2494 case 9 : /* fall through */
2495 case 10 : /* fall through */
2496 case 11 : /* fall through */
2497 case 12 : /* fall through */
2498 case 13 : /* fall through */
2500 if ((base_insn
& 0xbf0) == 0xb20)
2501 { itype
= CRISV32F_INSN_AND_M_D_M
; goto extract_sfmt_and_m_d_m
; }
2502 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2504 if ((base_insn
& 0xfff) == 0xf2f)
2505 { itype
= CRISV32F_INSN_ANDCDR
; goto extract_sfmt_andcdr
; }
2506 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2507 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2511 if ((base_insn
& 0xfff) == 0xf3f)
2512 { itype
= CRISV32F_INSN_JASC_C
; goto extract_sfmt_jas_c
; }
2513 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2516 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2519 case 0 : /* fall through */
2520 case 1 : /* fall through */
2521 case 2 : /* fall through */
2522 case 3 : /* fall through */
2523 case 4 : /* fall through */
2524 case 5 : /* fall through */
2525 case 6 : /* fall through */
2526 case 7 : /* fall through */
2527 case 8 : /* fall through */
2528 case 9 : /* fall through */
2529 case 10 : /* fall through */
2530 case 11 : /* fall through */
2531 case 12 : /* fall through */
2532 case 13 : /* fall through */
2534 if ((base_insn
& 0xbf0) == 0xb40)
2535 { itype
= CRISV32F_INSN_OR_M_B_M
; goto extract_sfmt_and_m_b_m
; }
2536 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2538 if ((base_insn
& 0xfff) == 0xf4f)
2539 { itype
= CRISV32F_INSN_ORCBR
; goto extract_sfmt_andcbr
; }
2540 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2541 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2546 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2549 case 0 : /* fall through */
2550 case 1 : /* fall through */
2551 case 2 : /* fall through */
2552 case 3 : /* fall through */
2553 case 4 : /* fall through */
2554 case 5 : /* fall through */
2555 case 6 : /* fall through */
2556 case 7 : /* fall through */
2557 case 8 : /* fall through */
2558 case 9 : /* fall through */
2559 case 10 : /* fall through */
2560 case 11 : /* fall through */
2561 case 12 : /* fall through */
2562 case 13 : /* fall through */
2564 if ((base_insn
& 0xbf0) == 0xb50)
2565 { itype
= CRISV32F_INSN_OR_M_W_M
; goto extract_sfmt_and_m_w_m
; }
2566 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2568 if ((base_insn
& 0xfff) == 0xf5f)
2569 { itype
= CRISV32F_INSN_ORCWR
; goto extract_sfmt_andcwr
; }
2570 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2571 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2576 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2579 case 0 : /* fall through */
2580 case 1 : /* fall through */
2581 case 2 : /* fall through */
2582 case 3 : /* fall through */
2583 case 4 : /* fall through */
2584 case 5 : /* fall through */
2585 case 6 : /* fall through */
2586 case 7 : /* fall through */
2587 case 8 : /* fall through */
2588 case 9 : /* fall through */
2589 case 10 : /* fall through */
2590 case 11 : /* fall through */
2591 case 12 : /* fall through */
2592 case 13 : /* fall through */
2594 if ((base_insn
& 0xbf0) == 0xb60)
2595 { itype
= CRISV32F_INSN_OR_M_D_M
; goto extract_sfmt_and_m_d_m
; }
2596 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2598 if ((base_insn
& 0xfff) == 0xf6f)
2599 { itype
= CRISV32F_INSN_ORCDR
; goto extract_sfmt_andcdr
; }
2600 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2601 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2605 if ((base_insn
& 0xff0) == 0xf70)
2606 { itype
= CRISV32F_INSN_MOVE_SS_R
; goto extract_sfmt_move_ss_r
; }
2607 itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2608 default : itype
= CRISV32F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2613 /* The instruction has been decoded, now extract the fields. */
2617 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2618 #define FLD(f) abuf->fields.fmt_empty.f
2621 /* Record the fields for the semantic handler. */
2622 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_empty", (char *) 0));
2628 extract_sfmt_move_b_r
:
2630 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2631 CGEN_INSN_INT insn
= base_insn
;
2632 #define FLD(f) abuf->fields.sfmt_addc_m.f
2636 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2637 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
2639 /* Record the fields for the semantic handler. */
2640 FLD (f_operand1
) = f_operand1
;
2641 FLD (f_operand2
) = f_operand2
;
2642 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));
2644 #if WITH_PROFILE_MODEL_P
2645 /* Record the fields for profiling. */
2646 if (PROFILE_MODEL_P (current_cpu
))
2648 FLD (in_Rs
) = f_operand1
;
2649 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
2656 extract_sfmt_move_d_r
:
2658 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2659 CGEN_INSN_INT insn
= base_insn
;
2660 #define FLD(f) abuf->fields.sfmt_addc_m.f
2664 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2665 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
2667 /* Record the fields for the semantic handler. */
2668 FLD (f_operand1
) = f_operand1
;
2669 FLD (f_operand2
) = f_operand2
;
2670 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));
2672 #if WITH_PROFILE_MODEL_P
2673 /* Record the fields for profiling. */
2674 if (PROFILE_MODEL_P (current_cpu
))
2676 FLD (in_Rs
) = f_operand1
;
2677 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
2686 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2687 CGEN_INSN_INT insn
= base_insn
;
2688 #define FLD(f) abuf->fields.sfmt_moveq.f
2692 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2693 f_s6
= EXTRACT_LSB0_INT (insn
, 16, 5, 6);
2695 /* Record the fields for the semantic handler. */
2697 FLD (f_operand2
) = f_operand2
;
2698 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));
2700 #if WITH_PROFILE_MODEL_P
2701 /* Record the fields for profiling. */
2702 if (PROFILE_MODEL_P (current_cpu
))
2704 FLD (out_Rd
) = f_operand2
;
2711 extract_sfmt_movs_b_r
:
2713 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2714 CGEN_INSN_INT insn
= base_insn
;
2715 #define FLD(f) abuf->fields.sfmt_muls_b.f
2719 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2720 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
2722 /* Record the fields for the semantic handler. */
2723 FLD (f_operand1
) = f_operand1
;
2724 FLD (f_operand2
) = f_operand2
;
2725 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));
2727 #if WITH_PROFILE_MODEL_P
2728 /* Record the fields for profiling. */
2729 if (PROFILE_MODEL_P (current_cpu
))
2731 FLD (in_Rs
) = f_operand1
;
2732 FLD (out_Rd
) = f_operand2
;
2739 extract_sfmt_movecbr
:
2741 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2742 CGEN_INSN_INT insn
= base_insn
;
2743 #define FLD(f) abuf->fields.sfmt_addcbr.f
2744 INT f_indir_pc__byte
;
2746 /* Contents of trailing part of insn. */
2749 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2750 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
2751 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2753 /* Record the fields for the semantic handler. */
2754 FLD (f_operand2
) = f_operand2
;
2755 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
2756 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));
2758 #if WITH_PROFILE_MODEL_P
2759 /* Record the fields for profiling. */
2760 if (PROFILE_MODEL_P (current_cpu
))
2762 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
2769 extract_sfmt_movecwr
:
2771 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2772 CGEN_INSN_INT insn
= base_insn
;
2773 #define FLD(f) abuf->fields.sfmt_addcwr.f
2774 INT f_indir_pc__word
;
2776 /* Contents of trailing part of insn. */
2779 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2780 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
2781 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2783 /* Record the fields for the semantic handler. */
2784 FLD (f_operand2
) = f_operand2
;
2785 FLD (f_indir_pc__word
) = f_indir_pc__word
;
2786 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));
2788 #if WITH_PROFILE_MODEL_P
2789 /* Record the fields for profiling. */
2790 if (PROFILE_MODEL_P (current_cpu
))
2792 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
2799 extract_sfmt_movecdr
:
2801 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2802 CGEN_INSN_INT insn
= base_insn
;
2803 #define FLD(f) abuf->fields.sfmt_bound_cd.f
2804 INT f_indir_pc__dword
;
2806 /* Contents of trailing part of insn. */
2809 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2810 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
2811 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2813 /* Record the fields for the semantic handler. */
2814 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
2815 FLD (f_operand2
) = f_operand2
;
2816 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));
2818 #if WITH_PROFILE_MODEL_P
2819 /* Record the fields for profiling. */
2820 if (PROFILE_MODEL_P (current_cpu
))
2822 FLD (out_Rd
) = f_operand2
;
2829 extract_sfmt_movscbr
:
2831 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2832 CGEN_INSN_INT insn
= base_insn
;
2833 #define FLD(f) abuf->fields.sfmt_bound_cb.f
2835 INT f_indir_pc__byte
;
2836 /* Contents of trailing part of insn. */
2839 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2840 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2841 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
2843 /* Record the fields for the semantic handler. */
2844 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
2845 FLD (f_operand2
) = f_operand2
;
2846 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));
2848 #if WITH_PROFILE_MODEL_P
2849 /* Record the fields for profiling. */
2850 if (PROFILE_MODEL_P (current_cpu
))
2852 FLD (out_Rd
) = f_operand2
;
2859 extract_sfmt_movscwr
:
2861 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2862 CGEN_INSN_INT insn
= base_insn
;
2863 #define FLD(f) abuf->fields.sfmt_bound_cw.f
2865 INT f_indir_pc__word
;
2866 /* Contents of trailing part of insn. */
2869 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2870 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2871 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
2873 /* Record the fields for the semantic handler. */
2874 FLD (f_indir_pc__word
) = f_indir_pc__word
;
2875 FLD (f_operand2
) = f_operand2
;
2876 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));
2878 #if WITH_PROFILE_MODEL_P
2879 /* Record the fields for profiling. */
2880 if (PROFILE_MODEL_P (current_cpu
))
2882 FLD (out_Rd
) = f_operand2
;
2889 extract_sfmt_movucbr
:
2891 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2892 CGEN_INSN_INT insn
= base_insn
;
2893 #define FLD(f) abuf->fields.sfmt_bound_cb.f
2895 INT f_indir_pc__byte
;
2896 /* Contents of trailing part of insn. */
2899 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2900 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2901 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
2903 /* Record the fields for the semantic handler. */
2904 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
2905 FLD (f_operand2
) = f_operand2
;
2906 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));
2908 #if WITH_PROFILE_MODEL_P
2909 /* Record the fields for profiling. */
2910 if (PROFILE_MODEL_P (current_cpu
))
2912 FLD (out_Rd
) = f_operand2
;
2919 extract_sfmt_movucwr
:
2921 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2922 CGEN_INSN_INT insn
= base_insn
;
2923 #define FLD(f) abuf->fields.sfmt_bound_cw.f
2925 INT f_indir_pc__word
;
2926 /* Contents of trailing part of insn. */
2929 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
2930 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2931 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
2933 /* Record the fields for the semantic handler. */
2934 FLD (f_indir_pc__word
) = f_indir_pc__word
;
2935 FLD (f_operand2
) = f_operand2
;
2936 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));
2938 #if WITH_PROFILE_MODEL_P
2939 /* Record the fields for profiling. */
2940 if (PROFILE_MODEL_P (current_cpu
))
2942 FLD (out_Rd
) = f_operand2
;
2951 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2952 CGEN_INSN_INT insn
= base_insn
;
2953 #define FLD(f) abuf->fields.sfmt_addq.f
2957 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2958 f_u6
= EXTRACT_LSB0_UINT (insn
, 16, 5, 6);
2960 /* Record the fields for the semantic handler. */
2961 FLD (f_operand2
) = f_operand2
;
2963 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));
2965 #if WITH_PROFILE_MODEL_P
2966 /* Record the fields for profiling. */
2967 if (PROFILE_MODEL_P (current_cpu
))
2969 FLD (in_Rd
) = f_operand2
;
2970 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
2977 extract_sfmt_cmp_r_b_r
:
2979 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
2980 CGEN_INSN_INT insn
= base_insn
;
2981 #define FLD(f) abuf->fields.sfmt_muls_b.f
2985 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
2986 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
2988 /* Record the fields for the semantic handler. */
2989 FLD (f_operand2
) = f_operand2
;
2990 FLD (f_operand1
) = f_operand1
;
2991 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));
2993 #if WITH_PROFILE_MODEL_P
2994 /* Record the fields for profiling. */
2995 if (PROFILE_MODEL_P (current_cpu
))
2997 FLD (in_Rd
) = f_operand2
;
2998 FLD (in_Rs
) = f_operand1
;
3005 extract_sfmt_cmp_m_b_m
:
3007 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3008 CGEN_INSN_INT insn
= base_insn
;
3009 #define FLD(f) abuf->fields.sfmt_addc_m.f
3014 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3015 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3016 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3018 /* Record the fields for the semantic handler. */
3019 FLD (f_operand2
) = f_operand2
;
3020 FLD (f_operand1
) = f_operand1
;
3021 FLD (f_memmode
) = f_memmode
;
3022 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));
3024 #if WITH_PROFILE_MODEL_P
3025 /* Record the fields for profiling. */
3026 if (PROFILE_MODEL_P (current_cpu
))
3028 FLD (in_Rd
) = f_operand2
;
3029 FLD (in_Rs
) = f_operand1
;
3030 FLD (out_Rs
) = f_operand1
;
3037 extract_sfmt_cmp_m_w_m
:
3039 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3040 CGEN_INSN_INT insn
= base_insn
;
3041 #define FLD(f) abuf->fields.sfmt_addc_m.f
3046 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3047 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3048 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3050 /* Record the fields for the semantic handler. */
3051 FLD (f_operand2
) = f_operand2
;
3052 FLD (f_operand1
) = f_operand1
;
3053 FLD (f_memmode
) = f_memmode
;
3054 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));
3056 #if WITH_PROFILE_MODEL_P
3057 /* Record the fields for profiling. */
3058 if (PROFILE_MODEL_P (current_cpu
))
3060 FLD (in_Rd
) = f_operand2
;
3061 FLD (in_Rs
) = f_operand1
;
3062 FLD (out_Rs
) = f_operand1
;
3069 extract_sfmt_cmp_m_d_m
:
3071 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3072 CGEN_INSN_INT insn
= base_insn
;
3073 #define FLD(f) abuf->fields.sfmt_addc_m.f
3078 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3079 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3080 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3082 /* Record the fields for the semantic handler. */
3083 FLD (f_operand2
) = f_operand2
;
3084 FLD (f_operand1
) = f_operand1
;
3085 FLD (f_memmode
) = f_memmode
;
3086 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));
3088 #if WITH_PROFILE_MODEL_P
3089 /* Record the fields for profiling. */
3090 if (PROFILE_MODEL_P (current_cpu
))
3092 FLD (in_Rd
) = f_operand2
;
3093 FLD (in_Rs
) = f_operand1
;
3094 FLD (out_Rs
) = f_operand1
;
3101 extract_sfmt_cmpcbr
:
3103 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3104 CGEN_INSN_INT insn
= base_insn
;
3105 #define FLD(f) abuf->fields.sfmt_bound_cb.f
3106 INT f_indir_pc__byte
;
3108 /* Contents of trailing part of insn. */
3111 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3112 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
3113 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3115 /* Record the fields for the semantic handler. */
3116 FLD (f_operand2
) = f_operand2
;
3117 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
3118 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));
3120 #if WITH_PROFILE_MODEL_P
3121 /* Record the fields for profiling. */
3122 if (PROFILE_MODEL_P (current_cpu
))
3124 FLD (in_Rd
) = f_operand2
;
3131 extract_sfmt_cmpcwr
:
3133 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3134 CGEN_INSN_INT insn
= base_insn
;
3135 #define FLD(f) abuf->fields.sfmt_bound_cw.f
3136 INT f_indir_pc__word
;
3138 /* Contents of trailing part of insn. */
3141 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3142 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
3143 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3145 /* Record the fields for the semantic handler. */
3146 FLD (f_operand2
) = f_operand2
;
3147 FLD (f_indir_pc__word
) = f_indir_pc__word
;
3148 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));
3150 #if WITH_PROFILE_MODEL_P
3151 /* Record the fields for profiling. */
3152 if (PROFILE_MODEL_P (current_cpu
))
3154 FLD (in_Rd
) = f_operand2
;
3161 extract_sfmt_cmpcdr
:
3163 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3164 CGEN_INSN_INT insn
= base_insn
;
3165 #define FLD(f) abuf->fields.sfmt_bound_cd.f
3166 INT f_indir_pc__dword
;
3168 /* Contents of trailing part of insn. */
3171 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3172 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
3173 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3175 /* Record the fields for the semantic handler. */
3176 FLD (f_operand2
) = f_operand2
;
3177 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
3178 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));
3180 #if WITH_PROFILE_MODEL_P
3181 /* Record the fields for profiling. */
3182 if (PROFILE_MODEL_P (current_cpu
))
3184 FLD (in_Rd
) = f_operand2
;
3193 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3194 CGEN_INSN_INT insn
= base_insn
;
3195 #define FLD(f) abuf->fields.sfmt_andq.f
3199 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3200 f_s6
= EXTRACT_LSB0_INT (insn
, 16, 5, 6);
3202 /* Record the fields for the semantic handler. */
3203 FLD (f_operand2
) = f_operand2
;
3205 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));
3207 #if WITH_PROFILE_MODEL_P
3208 /* Record the fields for profiling. */
3209 if (PROFILE_MODEL_P (current_cpu
))
3211 FLD (in_Rd
) = f_operand2
;
3218 extract_sfmt_cmpucbr
:
3220 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3221 CGEN_INSN_INT insn
= base_insn
;
3222 #define FLD(f) abuf->fields.sfmt_bound_cb.f
3223 INT f_indir_pc__byte
;
3225 /* Contents of trailing part of insn. */
3228 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3229 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
3230 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3232 /* Record the fields for the semantic handler. */
3233 FLD (f_operand2
) = f_operand2
;
3234 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
3235 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));
3237 #if WITH_PROFILE_MODEL_P
3238 /* Record the fields for profiling. */
3239 if (PROFILE_MODEL_P (current_cpu
))
3241 FLD (in_Rd
) = f_operand2
;
3248 extract_sfmt_cmpucwr
:
3250 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3251 CGEN_INSN_INT insn
= base_insn
;
3252 #define FLD(f) abuf->fields.sfmt_bound_cw.f
3253 INT f_indir_pc__word
;
3255 /* Contents of trailing part of insn. */
3258 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3259 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
3260 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3262 /* Record the fields for the semantic handler. */
3263 FLD (f_operand2
) = f_operand2
;
3264 FLD (f_indir_pc__word
) = f_indir_pc__word
;
3265 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_cmpucwr", "f_operand2 0x%x", 'x', f_operand2
, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word
, (char *) 0));
3267 #if WITH_PROFILE_MODEL_P
3268 /* Record the fields for profiling. */
3269 if (PROFILE_MODEL_P (current_cpu
))
3271 FLD (in_Rd
) = f_operand2
;
3278 extract_sfmt_move_m_b_m
:
3280 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3281 CGEN_INSN_INT insn
= base_insn
;
3282 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3287 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3288 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3289 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3291 /* Record the fields for the semantic handler. */
3292 FLD (f_operand1
) = f_operand1
;
3293 FLD (f_operand2
) = f_operand2
;
3294 FLD (f_memmode
) = f_memmode
;
3295 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));
3297 #if WITH_PROFILE_MODEL_P
3298 /* Record the fields for profiling. */
3299 if (PROFILE_MODEL_P (current_cpu
))
3301 FLD (in_Rs
) = f_operand1
;
3302 FLD (out_Rs
) = f_operand1
;
3303 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd
) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode
))))) ? (FLD (f_operand1
)) : (FLD (f_operand2
)));
3310 extract_sfmt_move_m_w_m
:
3312 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3313 CGEN_INSN_INT insn
= base_insn
;
3314 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3319 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3320 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3321 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3323 /* Record the fields for the semantic handler. */
3324 FLD (f_operand1
) = f_operand1
;
3325 FLD (f_operand2
) = f_operand2
;
3326 FLD (f_memmode
) = f_memmode
;
3327 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));
3329 #if WITH_PROFILE_MODEL_P
3330 /* Record the fields for profiling. */
3331 if (PROFILE_MODEL_P (current_cpu
))
3333 FLD (in_Rs
) = f_operand1
;
3334 FLD (out_Rs
) = f_operand1
;
3335 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd
) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode
))))) ? (FLD (f_operand1
)) : (FLD (f_operand2
)));
3342 extract_sfmt_move_m_d_m
:
3344 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3345 CGEN_INSN_INT insn
= base_insn
;
3346 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3351 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3352 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3353 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3355 /* Record the fields for the semantic handler. */
3356 FLD (f_operand1
) = f_operand1
;
3357 FLD (f_operand2
) = f_operand2
;
3358 FLD (f_memmode
) = f_memmode
;
3359 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));
3361 #if WITH_PROFILE_MODEL_P
3362 /* Record the fields for profiling. */
3363 if (PROFILE_MODEL_P (current_cpu
))
3365 FLD (in_Rs
) = f_operand1
;
3366 FLD (out_Rs
) = f_operand1
;
3367 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd
) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode
))))) ? (FLD (f_operand1
)) : (FLD (f_operand2
)));
3374 extract_sfmt_movs_m_b_m
:
3376 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3377 CGEN_INSN_INT insn
= base_insn
;
3378 #define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
3383 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3384 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3385 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3387 /* Record the fields for the semantic handler. */
3388 FLD (f_operand1
) = f_operand1
;
3389 FLD (f_memmode
) = f_memmode
;
3390 FLD (f_operand2
) = f_operand2
;
3391 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));
3393 #if WITH_PROFILE_MODEL_P
3394 /* Record the fields for profiling. */
3395 if (PROFILE_MODEL_P (current_cpu
))
3397 FLD (in_Rs
) = f_operand1
;
3398 FLD (out_Rd
) = f_operand2
;
3399 FLD (out_Rs
) = f_operand1
;
3406 extract_sfmt_movs_m_w_m
:
3408 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3409 CGEN_INSN_INT insn
= base_insn
;
3410 #define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
3415 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3416 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3417 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3419 /* Record the fields for the semantic handler. */
3420 FLD (f_operand1
) = f_operand1
;
3421 FLD (f_memmode
) = f_memmode
;
3422 FLD (f_operand2
) = f_operand2
;
3423 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));
3425 #if WITH_PROFILE_MODEL_P
3426 /* Record the fields for profiling. */
3427 if (PROFILE_MODEL_P (current_cpu
))
3429 FLD (in_Rs
) = f_operand1
;
3430 FLD (out_Rd
) = f_operand2
;
3431 FLD (out_Rs
) = f_operand1
;
3438 extract_sfmt_move_r_sprv32
:
3440 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3441 CGEN_INSN_INT insn
= base_insn
;
3442 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
3446 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3447 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3449 /* Record the fields for the semantic handler. */
3450 FLD (f_operand1
) = f_operand1
;
3451 FLD (f_operand2
) = f_operand2
;
3452 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));
3454 #if WITH_PROFILE_MODEL_P
3455 /* Record the fields for profiling. */
3456 if (PROFILE_MODEL_P (current_cpu
))
3458 FLD (in_Rs
) = f_operand1
;
3459 FLD (out_Pd
) = f_operand2
;
3466 extract_sfmt_move_spr_rv32
:
3468 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3469 CGEN_INSN_INT insn
= base_insn
;
3470 #define FLD(f) abuf->fields.sfmt_mcp.f
3474 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3475 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3477 /* Record the fields for the semantic handler. */
3478 FLD (f_operand2
) = f_operand2
;
3479 FLD (f_operand1
) = f_operand1
;
3480 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));
3482 #if WITH_PROFILE_MODEL_P
3483 /* Record the fields for profiling. */
3484 if (PROFILE_MODEL_P (current_cpu
))
3486 FLD (in_Ps
) = f_operand2
;
3487 FLD (out_h_gr_SI_index_of__DFLT_Rs
) = FLD (f_operand1
);
3494 extract_sfmt_move_m_sprv32
:
3496 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3497 CGEN_INSN_INT insn
= base_insn
;
3498 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
3503 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3504 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3505 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3507 /* Record the fields for the semantic handler. */
3508 FLD (f_operand1
) = f_operand1
;
3509 FLD (f_operand2
) = f_operand2
;
3510 FLD (f_memmode
) = f_memmode
;
3511 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));
3513 #if WITH_PROFILE_MODEL_P
3514 /* Record the fields for profiling. */
3515 if (PROFILE_MODEL_P (current_cpu
))
3517 FLD (in_Rs
) = f_operand1
;
3518 FLD (out_Pd
) = f_operand2
;
3519 FLD (out_Rs
) = f_operand1
;
3526 extract_sfmt_move_c_sprv32_p2
:
3528 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3529 CGEN_INSN_INT insn
= base_insn
;
3530 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
3531 INT f_indir_pc__dword
;
3533 /* Contents of trailing part of insn. */
3536 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3537 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
3538 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3540 /* Record the fields for the semantic handler. */
3541 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
3542 FLD (f_operand2
) = f_operand2
;
3543 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));
3545 #if WITH_PROFILE_MODEL_P
3546 /* Record the fields for profiling. */
3547 if (PROFILE_MODEL_P (current_cpu
))
3549 FLD (out_Pd
) = f_operand2
;
3556 extract_sfmt_move_spr_mv32
:
3558 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3559 CGEN_INSN_INT insn
= base_insn
;
3560 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
3565 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3566 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3567 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3569 /* Record the fields for the semantic handler. */
3570 FLD (f_operand2
) = f_operand2
;
3571 FLD (f_operand1
) = f_operand1
;
3572 FLD (f_memmode
) = f_memmode
;
3573 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));
3575 #if WITH_PROFILE_MODEL_P
3576 /* Record the fields for profiling. */
3577 if (PROFILE_MODEL_P (current_cpu
))
3579 FLD (in_Ps
) = f_operand2
;
3580 FLD (in_Rs
) = f_operand1
;
3581 FLD (out_Rs
) = f_operand1
;
3588 extract_sfmt_move_ss_r
:
3590 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3591 CGEN_INSN_INT insn
= base_insn
;
3592 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
3596 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3597 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3599 /* Record the fields for the semantic handler. */
3600 FLD (f_operand2
) = f_operand2
;
3601 FLD (f_operand1
) = f_operand1
;
3602 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));
3604 #if WITH_PROFILE_MODEL_P
3605 /* Record the fields for profiling. */
3606 if (PROFILE_MODEL_P (current_cpu
))
3608 FLD (out_Rs
) = f_operand1
;
3615 extract_sfmt_move_r_ss
:
3617 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3618 CGEN_INSN_INT insn
= base_insn
;
3619 #define FLD(f) abuf->fields.sfmt_mcp.f
3623 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3624 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3626 /* Record the fields for the semantic handler. */
3627 FLD (f_operand1
) = f_operand1
;
3628 FLD (f_operand2
) = f_operand2
;
3629 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));
3631 #if WITH_PROFILE_MODEL_P
3632 /* Record the fields for profiling. */
3633 if (PROFILE_MODEL_P (current_cpu
))
3635 FLD (in_Rs
) = f_operand1
;
3642 extract_sfmt_movem_r_m_v32
:
3644 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3645 CGEN_INSN_INT insn
= base_insn
;
3646 #define FLD(f) abuf->fields.sfmt_movem_r_m_v32.f
3651 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
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_operand2
) = f_operand2
;
3657 FLD (f_operand1
) = f_operand1
;
3658 FLD (f_memmode
) = f_memmode
;
3659 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));
3661 #if WITH_PROFILE_MODEL_P
3662 /* Record the fields for profiling. */
3663 if (PROFILE_MODEL_P (current_cpu
))
3665 FLD (in_Rd
) = f_operand2
;
3666 FLD (in_Rs
) = f_operand1
;
3667 FLD (in_h_gr_SI_0
) = 0;
3668 FLD (in_h_gr_SI_1
) = 1;
3669 FLD (in_h_gr_SI_10
) = 10;
3670 FLD (in_h_gr_SI_11
) = 11;
3671 FLD (in_h_gr_SI_12
) = 12;
3672 FLD (in_h_gr_SI_13
) = 13;
3673 FLD (in_h_gr_SI_14
) = 14;
3674 FLD (in_h_gr_SI_15
) = 15;
3675 FLD (in_h_gr_SI_2
) = 2;
3676 FLD (in_h_gr_SI_3
) = 3;
3677 FLD (in_h_gr_SI_4
) = 4;
3678 FLD (in_h_gr_SI_5
) = 5;
3679 FLD (in_h_gr_SI_6
) = 6;
3680 FLD (in_h_gr_SI_7
) = 7;
3681 FLD (in_h_gr_SI_8
) = 8;
3682 FLD (in_h_gr_SI_9
) = 9;
3683 FLD (out_Rs
) = f_operand1
;
3690 extract_sfmt_movem_m_r_v32
:
3692 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3693 CGEN_INSN_INT insn
= base_insn
;
3694 #define FLD(f) abuf->fields.sfmt_movem_m_r_v32.f
3699 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3700 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3701 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3703 /* Record the fields for the semantic handler. */
3704 FLD (f_operand2
) = f_operand2
;
3705 FLD (f_operand1
) = f_operand1
;
3706 FLD (f_memmode
) = f_memmode
;
3707 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));
3709 #if WITH_PROFILE_MODEL_P
3710 /* Record the fields for profiling. */
3711 if (PROFILE_MODEL_P (current_cpu
))
3713 FLD (in_Rd
) = f_operand2
;
3714 FLD (in_Rs
) = f_operand1
;
3715 FLD (out_Rs
) = f_operand1
;
3716 FLD (out_h_gr_SI_0
) = 0;
3717 FLD (out_h_gr_SI_1
) = 1;
3718 FLD (out_h_gr_SI_10
) = 10;
3719 FLD (out_h_gr_SI_11
) = 11;
3720 FLD (out_h_gr_SI_12
) = 12;
3721 FLD (out_h_gr_SI_13
) = 13;
3722 FLD (out_h_gr_SI_14
) = 14;
3723 FLD (out_h_gr_SI_15
) = 15;
3724 FLD (out_h_gr_SI_2
) = 2;
3725 FLD (out_h_gr_SI_3
) = 3;
3726 FLD (out_h_gr_SI_4
) = 4;
3727 FLD (out_h_gr_SI_5
) = 5;
3728 FLD (out_h_gr_SI_6
) = 6;
3729 FLD (out_h_gr_SI_7
) = 7;
3730 FLD (out_h_gr_SI_8
) = 8;
3731 FLD (out_h_gr_SI_9
) = 9;
3738 extract_sfmt_add_b_r
:
3740 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3741 CGEN_INSN_INT insn
= base_insn
;
3742 #define FLD(f) abuf->fields.sfmt_addc_m.f
3746 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
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 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));
3754 #if WITH_PROFILE_MODEL_P
3755 /* Record the fields for profiling. */
3756 if (PROFILE_MODEL_P (current_cpu
))
3758 FLD (in_Rd
) = f_operand2
;
3759 FLD (in_Rs
) = f_operand1
;
3760 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
3767 extract_sfmt_add_d_r
:
3769 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3770 CGEN_INSN_INT insn
= base_insn
;
3771 #define FLD(f) abuf->fields.sfmt_addc_m.f
3775 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3776 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3778 /* Record the fields for the semantic handler. */
3779 FLD (f_operand2
) = f_operand2
;
3780 FLD (f_operand1
) = f_operand1
;
3781 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));
3783 #if WITH_PROFILE_MODEL_P
3784 /* Record the fields for profiling. */
3785 if (PROFILE_MODEL_P (current_cpu
))
3787 FLD (in_Rd
) = f_operand2
;
3788 FLD (in_Rs
) = f_operand1
;
3789 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
3796 extract_sfmt_add_m_b_m
:
3798 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3799 CGEN_INSN_INT insn
= base_insn
;
3800 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3805 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3806 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
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 FLD (f_memmode
) = f_memmode
;
3813 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));
3815 #if WITH_PROFILE_MODEL_P
3816 /* Record the fields for profiling. */
3817 if (PROFILE_MODEL_P (current_cpu
))
3819 FLD (in_Rd
) = f_operand2
;
3820 FLD (in_Rs
) = f_operand1
;
3821 FLD (out_Rs
) = f_operand1
;
3822 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd
) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode
))))) ? (FLD (f_operand1
)) : (FLD (f_operand2
)));
3829 extract_sfmt_add_m_w_m
:
3831 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3832 CGEN_INSN_INT insn
= base_insn
;
3833 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3838 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3839 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3840 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3842 /* Record the fields for the semantic handler. */
3843 FLD (f_operand2
) = f_operand2
;
3844 FLD (f_operand1
) = f_operand1
;
3845 FLD (f_memmode
) = f_memmode
;
3846 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));
3848 #if WITH_PROFILE_MODEL_P
3849 /* Record the fields for profiling. */
3850 if (PROFILE_MODEL_P (current_cpu
))
3852 FLD (in_Rd
) = f_operand2
;
3853 FLD (in_Rs
) = f_operand1
;
3854 FLD (out_Rs
) = f_operand1
;
3855 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd
) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode
))))) ? (FLD (f_operand1
)) : (FLD (f_operand2
)));
3862 extract_sfmt_add_m_d_m
:
3864 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3865 CGEN_INSN_INT insn
= base_insn
;
3866 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3871 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3872 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3873 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3875 /* Record the fields for the semantic handler. */
3876 FLD (f_operand2
) = f_operand2
;
3877 FLD (f_operand1
) = f_operand1
;
3878 FLD (f_memmode
) = f_memmode
;
3879 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));
3881 #if WITH_PROFILE_MODEL_P
3882 /* Record the fields for profiling. */
3883 if (PROFILE_MODEL_P (current_cpu
))
3885 FLD (in_Rd
) = f_operand2
;
3886 FLD (in_Rs
) = f_operand1
;
3887 FLD (out_Rs
) = f_operand1
;
3888 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd
) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode
))))) ? (FLD (f_operand1
)) : (FLD (f_operand2
)));
3895 extract_sfmt_addcbr
:
3897 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3898 CGEN_INSN_INT insn
= base_insn
;
3899 #define FLD(f) abuf->fields.sfmt_addcbr.f
3900 INT f_indir_pc__byte
;
3902 /* Contents of trailing part of insn. */
3905 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3906 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
3907 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3909 /* Record the fields for the semantic handler. */
3910 FLD (f_operand2
) = f_operand2
;
3911 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
3912 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));
3914 #if WITH_PROFILE_MODEL_P
3915 /* Record the fields for profiling. */
3916 if (PROFILE_MODEL_P (current_cpu
))
3918 FLD (in_Rd
) = f_operand2
;
3919 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
3926 extract_sfmt_addcwr
:
3928 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3929 CGEN_INSN_INT insn
= base_insn
;
3930 #define FLD(f) abuf->fields.sfmt_addcwr.f
3931 INT f_indir_pc__word
;
3933 /* Contents of trailing part of insn. */
3936 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3937 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
3938 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3940 /* Record the fields for the semantic handler. */
3941 FLD (f_operand2
) = f_operand2
;
3942 FLD (f_indir_pc__word
) = f_indir_pc__word
;
3943 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));
3945 #if WITH_PROFILE_MODEL_P
3946 /* Record the fields for profiling. */
3947 if (PROFILE_MODEL_P (current_cpu
))
3949 FLD (in_Rd
) = f_operand2
;
3950 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
3957 extract_sfmt_addcdr
:
3959 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3960 CGEN_INSN_INT insn
= base_insn
;
3961 #define FLD(f) abuf->fields.sfmt_addcdr.f
3962 INT f_indir_pc__dword
;
3964 /* Contents of trailing part of insn. */
3967 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3968 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
3969 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3971 /* Record the fields for the semantic handler. */
3972 FLD (f_operand2
) = f_operand2
;
3973 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
3974 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));
3976 #if WITH_PROFILE_MODEL_P
3977 /* Record the fields for profiling. */
3978 if (PROFILE_MODEL_P (current_cpu
))
3980 FLD (in_Rd
) = f_operand2
;
3981 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
3988 extract_sfmt_adds_m_b_m
:
3990 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
3991 CGEN_INSN_INT insn
= base_insn
;
3992 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3997 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3998 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3999 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4001 /* Record the fields for the semantic handler. */
4002 FLD (f_operand2
) = f_operand2
;
4003 FLD (f_operand1
) = f_operand1
;
4004 FLD (f_memmode
) = f_memmode
;
4005 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));
4007 #if WITH_PROFILE_MODEL_P
4008 /* Record the fields for profiling. */
4009 if (PROFILE_MODEL_P (current_cpu
))
4011 FLD (in_Rd
) = f_operand2
;
4012 FLD (in_Rs
) = f_operand1
;
4013 FLD (out_Rs
) = f_operand1
;
4014 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd
) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode
))))) ? (FLD (f_operand1
)) : (FLD (f_operand2
)));
4021 extract_sfmt_adds_m_w_m
:
4023 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4024 CGEN_INSN_INT insn
= base_insn
;
4025 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4030 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4031 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4032 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4034 /* Record the fields for the semantic handler. */
4035 FLD (f_operand2
) = f_operand2
;
4036 FLD (f_operand1
) = f_operand1
;
4037 FLD (f_memmode
) = f_memmode
;
4038 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));
4040 #if WITH_PROFILE_MODEL_P
4041 /* Record the fields for profiling. */
4042 if (PROFILE_MODEL_P (current_cpu
))
4044 FLD (in_Rd
) = f_operand2
;
4045 FLD (in_Rs
) = f_operand1
;
4046 FLD (out_Rs
) = f_operand1
;
4047 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd
) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode
))))) ? (FLD (f_operand1
)) : (FLD (f_operand2
)));
4054 extract_sfmt_addscbr
:
4056 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4057 CGEN_INSN_INT insn
= base_insn
;
4058 #define FLD(f) abuf->fields.sfmt_addcbr.f
4059 INT f_indir_pc__byte
;
4061 /* Contents of trailing part of insn. */
4064 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4065 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
4066 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4068 /* Record the fields for the semantic handler. */
4069 FLD (f_operand2
) = f_operand2
;
4070 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
4071 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));
4073 #if WITH_PROFILE_MODEL_P
4074 /* Record the fields for profiling. */
4075 if (PROFILE_MODEL_P (current_cpu
))
4077 FLD (in_Rd
) = f_operand2
;
4078 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
4085 extract_sfmt_addscwr
:
4087 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4088 CGEN_INSN_INT insn
= base_insn
;
4089 #define FLD(f) abuf->fields.sfmt_addcwr.f
4090 INT f_indir_pc__word
;
4092 /* Contents of trailing part of insn. */
4095 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4096 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
4097 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4099 /* Record the fields for the semantic handler. */
4100 FLD (f_operand2
) = f_operand2
;
4101 FLD (f_indir_pc__word
) = f_indir_pc__word
;
4102 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));
4104 #if WITH_PROFILE_MODEL_P
4105 /* Record the fields for profiling. */
4106 if (PROFILE_MODEL_P (current_cpu
))
4108 FLD (in_Rd
) = f_operand2
;
4109 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
4116 extract_sfmt_addc_m
:
4118 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4119 CGEN_INSN_INT insn
= base_insn
;
4120 #define FLD(f) abuf->fields.sfmt_addc_m.f
4125 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4126 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4127 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4129 /* Record the fields for the semantic handler. */
4130 FLD (f_operand2
) = f_operand2
;
4131 FLD (f_operand1
) = f_operand1
;
4132 FLD (f_memmode
) = f_memmode
;
4133 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));
4135 #if WITH_PROFILE_MODEL_P
4136 /* Record the fields for profiling. */
4137 if (PROFILE_MODEL_P (current_cpu
))
4139 FLD (in_Rd
) = f_operand2
;
4140 FLD (in_Rs
) = f_operand1
;
4141 FLD (out_Rs
) = f_operand1
;
4142 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
4149 extract_sfmt_lapc_d
:
4151 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4152 CGEN_INSN_INT insn
= base_insn
;
4153 #define FLD(f) abuf->fields.sfmt_lapc_d.f
4154 SI f_indir_pc__dword_pcrel
;
4156 /* Contents of trailing part of insn. */
4159 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4160 f_indir_pc__dword_pcrel
= ((pc
) + ((0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0))));
4161 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4163 /* Record the fields for the semantic handler. */
4164 FLD (f_operand2
) = f_operand2
;
4165 FLD (i_const32_pcrel
) = f_indir_pc__dword_pcrel
;
4166 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));
4168 #if WITH_PROFILE_MODEL_P
4169 /* Record the fields for profiling. */
4170 if (PROFILE_MODEL_P (current_cpu
))
4172 FLD (out_Rd
) = f_operand2
;
4181 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4182 CGEN_INSN_INT insn
= base_insn
;
4183 #define FLD(f) abuf->fields.sfmt_lapcq.f
4187 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4188 f_qo
= ((pc
) + (((EXTRACT_LSB0_UINT (insn
, 16, 3, 4)) << (1))));
4190 /* Record the fields for the semantic handler. */
4191 FLD (f_operand2
) = f_operand2
;
4193 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));
4195 #if WITH_PROFILE_MODEL_P
4196 /* Record the fields for profiling. */
4197 if (PROFILE_MODEL_P (current_cpu
))
4199 FLD (out_Rd
) = f_operand2
;
4206 extract_sfmt_addi_b_r
:
4208 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4209 CGEN_INSN_INT insn
= base_insn
;
4210 #define FLD(f) abuf->fields.sfmt_addc_m.f
4214 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4215 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4217 /* Record the fields for the semantic handler. */
4218 FLD (f_operand2
) = f_operand2
;
4219 FLD (f_operand1
) = f_operand1
;
4220 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));
4222 #if WITH_PROFILE_MODEL_P
4223 /* Record the fields for profiling. */
4224 if (PROFILE_MODEL_P (current_cpu
))
4226 FLD (in_Rd
) = f_operand2
;
4227 FLD (in_Rs
) = f_operand1
;
4228 FLD (out_Rs
) = f_operand1
;
4235 extract_sfmt_neg_b_r
:
4237 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4238 CGEN_INSN_INT insn
= base_insn
;
4239 #define FLD(f) abuf->fields.sfmt_addc_m.f
4243 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4244 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4246 /* Record the fields for the semantic handler. */
4247 FLD (f_operand1
) = f_operand1
;
4248 FLD (f_operand2
) = f_operand2
;
4249 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));
4251 #if WITH_PROFILE_MODEL_P
4252 /* Record the fields for profiling. */
4253 if (PROFILE_MODEL_P (current_cpu
))
4255 FLD (in_Rs
) = f_operand1
;
4256 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
4263 extract_sfmt_neg_d_r
:
4265 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4266 CGEN_INSN_INT insn
= base_insn
;
4267 #define FLD(f) abuf->fields.sfmt_addc_m.f
4271 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4272 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4274 /* Record the fields for the semantic handler. */
4275 FLD (f_operand1
) = f_operand1
;
4276 FLD (f_operand2
) = f_operand2
;
4277 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));
4279 #if WITH_PROFILE_MODEL_P
4280 /* Record the fields for profiling. */
4281 if (PROFILE_MODEL_P (current_cpu
))
4283 FLD (in_Rs
) = f_operand1
;
4284 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
4291 extract_sfmt_test_m_b_m
:
4293 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4294 CGEN_INSN_INT insn
= base_insn
;
4295 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
4299 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4300 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4302 /* Record the fields for the semantic handler. */
4303 FLD (f_operand1
) = f_operand1
;
4304 FLD (f_memmode
) = f_memmode
;
4305 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));
4307 #if WITH_PROFILE_MODEL_P
4308 /* Record the fields for profiling. */
4309 if (PROFILE_MODEL_P (current_cpu
))
4311 FLD (in_Rs
) = f_operand1
;
4312 FLD (out_Rs
) = f_operand1
;
4319 extract_sfmt_test_m_w_m
:
4321 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4322 CGEN_INSN_INT insn
= base_insn
;
4323 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
4327 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4328 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4330 /* Record the fields for the semantic handler. */
4331 FLD (f_operand1
) = f_operand1
;
4332 FLD (f_memmode
) = f_memmode
;
4333 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));
4335 #if WITH_PROFILE_MODEL_P
4336 /* Record the fields for profiling. */
4337 if (PROFILE_MODEL_P (current_cpu
))
4339 FLD (in_Rs
) = f_operand1
;
4340 FLD (out_Rs
) = f_operand1
;
4347 extract_sfmt_test_m_d_m
:
4349 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4350 CGEN_INSN_INT insn
= base_insn
;
4351 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
4355 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4356 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4358 /* Record the fields for the semantic handler. */
4359 FLD (f_operand1
) = f_operand1
;
4360 FLD (f_memmode
) = f_memmode
;
4361 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));
4363 #if WITH_PROFILE_MODEL_P
4364 /* Record the fields for profiling. */
4365 if (PROFILE_MODEL_P (current_cpu
))
4367 FLD (in_Rs
) = f_operand1
;
4368 FLD (out_Rs
) = f_operand1
;
4375 extract_sfmt_move_r_m_b_m
:
4377 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4378 CGEN_INSN_INT insn
= base_insn
;
4379 #define FLD(f) abuf->fields.sfmt_addc_m.f
4384 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4385 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4386 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4388 /* Record the fields for the semantic handler. */
4389 FLD (f_operand2
) = f_operand2
;
4390 FLD (f_operand1
) = f_operand1
;
4391 FLD (f_memmode
) = f_memmode
;
4392 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));
4394 #if WITH_PROFILE_MODEL_P
4395 /* Record the fields for profiling. */
4396 if (PROFILE_MODEL_P (current_cpu
))
4398 FLD (in_Rd
) = f_operand2
;
4399 FLD (in_Rs
) = f_operand1
;
4400 FLD (out_Rs
) = f_operand1
;
4407 extract_sfmt_move_r_m_w_m
:
4409 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4410 CGEN_INSN_INT insn
= base_insn
;
4411 #define FLD(f) abuf->fields.sfmt_addc_m.f
4416 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4417 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4418 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4420 /* Record the fields for the semantic handler. */
4421 FLD (f_operand2
) = f_operand2
;
4422 FLD (f_operand1
) = f_operand1
;
4423 FLD (f_memmode
) = f_memmode
;
4424 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));
4426 #if WITH_PROFILE_MODEL_P
4427 /* Record the fields for profiling. */
4428 if (PROFILE_MODEL_P (current_cpu
))
4430 FLD (in_Rd
) = f_operand2
;
4431 FLD (in_Rs
) = f_operand1
;
4432 FLD (out_Rs
) = f_operand1
;
4439 extract_sfmt_move_r_m_d_m
:
4441 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4442 CGEN_INSN_INT insn
= base_insn
;
4443 #define FLD(f) abuf->fields.sfmt_addc_m.f
4448 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4449 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4450 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4452 /* Record the fields for the semantic handler. */
4453 FLD (f_operand2
) = f_operand2
;
4454 FLD (f_operand1
) = f_operand1
;
4455 FLD (f_memmode
) = f_memmode
;
4456 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));
4458 #if WITH_PROFILE_MODEL_P
4459 /* Record the fields for profiling. */
4460 if (PROFILE_MODEL_P (current_cpu
))
4462 FLD (in_Rd
) = f_operand2
;
4463 FLD (in_Rs
) = f_operand1
;
4464 FLD (out_Rs
) = f_operand1
;
4471 extract_sfmt_muls_b
:
4473 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4474 CGEN_INSN_INT insn
= base_insn
;
4475 #define FLD(f) abuf->fields.sfmt_muls_b.f
4479 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4480 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4482 /* Record the fields for the semantic handler. */
4483 FLD (f_operand2
) = f_operand2
;
4484 FLD (f_operand1
) = f_operand1
;
4485 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));
4487 #if WITH_PROFILE_MODEL_P
4488 /* Record the fields for profiling. */
4489 if (PROFILE_MODEL_P (current_cpu
))
4491 FLD (in_Rd
) = f_operand2
;
4492 FLD (in_Rs
) = f_operand1
;
4493 FLD (out_Rd
) = f_operand2
;
4494 FLD (out_h_sr_SI_7
) = 7;
4503 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4504 CGEN_INSN_INT insn
= base_insn
;
4505 #define FLD(f) abuf->fields.sfmt_mcp.f
4509 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4510 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4512 /* Record the fields for the semantic handler. */
4513 FLD (f_operand2
) = f_operand2
;
4514 FLD (f_operand1
) = f_operand1
;
4515 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));
4517 #if WITH_PROFILE_MODEL_P
4518 /* Record the fields for profiling. */
4519 if (PROFILE_MODEL_P (current_cpu
))
4521 FLD (in_Ps
) = f_operand2
;
4522 FLD (in_Rs
) = f_operand1
;
4523 FLD (out_h_gr_SI_index_of__DFLT_Rs
) = FLD (f_operand1
);
4532 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4533 CGEN_INSN_INT insn
= base_insn
;
4534 #define FLD(f) abuf->fields.sfmt_muls_b.f
4538 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4539 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4541 /* Record the fields for the semantic handler. */
4542 FLD (f_operand2
) = f_operand2
;
4543 FLD (f_operand1
) = f_operand1
;
4544 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));
4546 #if WITH_PROFILE_MODEL_P
4547 /* Record the fields for profiling. */
4548 if (PROFILE_MODEL_P (current_cpu
))
4550 FLD (in_Rd
) = f_operand2
;
4551 FLD (in_Rs
) = f_operand1
;
4552 FLD (out_Rd
) = f_operand2
;
4559 extract_sfmt_and_b_r
:
4561 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4562 CGEN_INSN_INT insn
= base_insn
;
4563 #define FLD(f) abuf->fields.sfmt_addc_m.f
4567 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4568 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4570 /* Record the fields for the semantic handler. */
4571 FLD (f_operand2
) = f_operand2
;
4572 FLD (f_operand1
) = f_operand1
;
4573 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));
4575 #if WITH_PROFILE_MODEL_P
4576 /* Record the fields for profiling. */
4577 if (PROFILE_MODEL_P (current_cpu
))
4579 FLD (in_Rd
) = f_operand2
;
4580 FLD (in_Rs
) = f_operand1
;
4581 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
4588 extract_sfmt_and_w_r
:
4590 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4591 CGEN_INSN_INT insn
= base_insn
;
4592 #define FLD(f) abuf->fields.sfmt_addc_m.f
4596 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4597 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4599 /* Record the fields for the semantic handler. */
4600 FLD (f_operand2
) = f_operand2
;
4601 FLD (f_operand1
) = f_operand1
;
4602 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_and_w_r", "f_operand2 0x%x", 'x', f_operand2
, "f_operand1 0x%x", 'x', f_operand1
, (char *) 0));
4604 #if WITH_PROFILE_MODEL_P
4605 /* Record the fields for profiling. */
4606 if (PROFILE_MODEL_P (current_cpu
))
4608 FLD (in_Rd
) = f_operand2
;
4609 FLD (in_Rs
) = f_operand1
;
4610 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
4617 extract_sfmt_and_d_r
:
4619 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4620 CGEN_INSN_INT insn
= base_insn
;
4621 #define FLD(f) abuf->fields.sfmt_addc_m.f
4625 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4626 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4628 /* Record the fields for the semantic handler. */
4629 FLD (f_operand2
) = f_operand2
;
4630 FLD (f_operand1
) = f_operand1
;
4631 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));
4633 #if WITH_PROFILE_MODEL_P
4634 /* Record the fields for profiling. */
4635 if (PROFILE_MODEL_P (current_cpu
))
4637 FLD (in_Rd
) = f_operand2
;
4638 FLD (in_Rs
) = f_operand1
;
4639 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
4646 extract_sfmt_and_m_b_m
:
4648 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4649 CGEN_INSN_INT insn
= base_insn
;
4650 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4655 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4656 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4657 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4659 /* Record the fields for the semantic handler. */
4660 FLD (f_operand2
) = f_operand2
;
4661 FLD (f_operand1
) = f_operand1
;
4662 FLD (f_memmode
) = f_memmode
;
4663 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));
4665 #if WITH_PROFILE_MODEL_P
4666 /* Record the fields for profiling. */
4667 if (PROFILE_MODEL_P (current_cpu
))
4669 FLD (in_Rd
) = f_operand2
;
4670 FLD (in_Rs
) = f_operand1
;
4671 FLD (out_Rs
) = f_operand1
;
4672 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd
) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode
))))) ? (FLD (f_operand1
)) : (FLD (f_operand2
)));
4679 extract_sfmt_and_m_w_m
:
4681 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4682 CGEN_INSN_INT insn
= base_insn
;
4683 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4688 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4689 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4690 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4692 /* Record the fields for the semantic handler. */
4693 FLD (f_operand2
) = f_operand2
;
4694 FLD (f_operand1
) = f_operand1
;
4695 FLD (f_memmode
) = f_memmode
;
4696 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));
4698 #if WITH_PROFILE_MODEL_P
4699 /* Record the fields for profiling. */
4700 if (PROFILE_MODEL_P (current_cpu
))
4702 FLD (in_Rd
) = f_operand2
;
4703 FLD (in_Rs
) = f_operand1
;
4704 FLD (out_Rs
) = f_operand1
;
4705 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd
) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode
))))) ? (FLD (f_operand1
)) : (FLD (f_operand2
)));
4712 extract_sfmt_and_m_d_m
:
4714 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4715 CGEN_INSN_INT insn
= base_insn
;
4716 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4721 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4722 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4723 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4725 /* Record the fields for the semantic handler. */
4726 FLD (f_operand2
) = f_operand2
;
4727 FLD (f_operand1
) = f_operand1
;
4728 FLD (f_memmode
) = f_memmode
;
4729 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));
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 (in_Rs
) = f_operand1
;
4737 FLD (out_Rs
) = f_operand1
;
4738 FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__DFLT_inc_index_of__DFLT_Rs_index_of__DFLT_Rd
) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode
))))) ? (FLD (f_operand1
)) : (FLD (f_operand2
)));
4745 extract_sfmt_andcbr
:
4747 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4748 CGEN_INSN_INT insn
= base_insn
;
4749 #define FLD(f) abuf->fields.sfmt_addcbr.f
4750 INT f_indir_pc__byte
;
4752 /* Contents of trailing part of insn. */
4755 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4756 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
4757 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4759 /* Record the fields for the semantic handler. */
4760 FLD (f_operand2
) = f_operand2
;
4761 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
4762 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));
4764 #if WITH_PROFILE_MODEL_P
4765 /* Record the fields for profiling. */
4766 if (PROFILE_MODEL_P (current_cpu
))
4768 FLD (in_Rd
) = f_operand2
;
4769 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
4776 extract_sfmt_andcwr
:
4778 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4779 CGEN_INSN_INT insn
= base_insn
;
4780 #define FLD(f) abuf->fields.sfmt_addcwr.f
4781 INT f_indir_pc__word
;
4783 /* Contents of trailing part of insn. */
4786 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4787 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
4788 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4790 /* Record the fields for the semantic handler. */
4791 FLD (f_operand2
) = f_operand2
;
4792 FLD (f_indir_pc__word
) = f_indir_pc__word
;
4793 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));
4795 #if WITH_PROFILE_MODEL_P
4796 /* Record the fields for profiling. */
4797 if (PROFILE_MODEL_P (current_cpu
))
4799 FLD (in_Rd
) = f_operand2
;
4800 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
4807 extract_sfmt_andcdr
:
4809 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4810 CGEN_INSN_INT insn
= base_insn
;
4811 #define FLD(f) abuf->fields.sfmt_addcdr.f
4812 INT f_indir_pc__dword
;
4814 /* Contents of trailing part of insn. */
4817 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4818 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
4819 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4821 /* Record the fields for the semantic handler. */
4822 FLD (f_operand2
) = f_operand2
;
4823 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
4824 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));
4826 #if WITH_PROFILE_MODEL_P
4827 /* Record the fields for profiling. */
4828 if (PROFILE_MODEL_P (current_cpu
))
4830 FLD (in_Rd
) = f_operand2
;
4831 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
4840 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4841 CGEN_INSN_INT insn
= base_insn
;
4842 #define FLD(f) abuf->fields.sfmt_andq.f
4846 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4847 f_s6
= EXTRACT_LSB0_INT (insn
, 16, 5, 6);
4849 /* Record the fields for the semantic handler. */
4850 FLD (f_operand2
) = f_operand2
;
4852 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));
4854 #if WITH_PROFILE_MODEL_P
4855 /* Record the fields for profiling. */
4856 if (PROFILE_MODEL_P (current_cpu
))
4858 FLD (in_Rd
) = f_operand2
;
4859 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
4868 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4869 CGEN_INSN_INT insn
= base_insn
;
4870 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
4874 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4875 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4877 /* Record the fields for the semantic handler. */
4878 FLD (f_operand1
) = f_operand1
;
4879 FLD (f_operand2
) = f_operand2
;
4880 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));
4882 #if WITH_PROFILE_MODEL_P
4883 /* Record the fields for profiling. */
4884 if (PROFILE_MODEL_P (current_cpu
))
4886 FLD (in_Rs
) = f_operand1
;
4887 FLD (out_Rs
) = f_operand1
;
4894 extract_sfmt_asrr_b_r
:
4896 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4897 CGEN_INSN_INT insn
= base_insn
;
4898 #define FLD(f) abuf->fields.sfmt_addc_m.f
4902 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4903 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4905 /* Record the fields for the semantic handler. */
4906 FLD (f_operand2
) = f_operand2
;
4907 FLD (f_operand1
) = f_operand1
;
4908 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_asrr_b_r", "f_operand2 0x%x", 'x', f_operand2
, "f_operand1 0x%x", 'x', f_operand1
, (char *) 0));
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_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
4925 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4926 CGEN_INSN_INT insn
= base_insn
;
4927 #define FLD(f) abuf->fields.sfmt_asrq.f
4931 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4932 f_u5
= EXTRACT_LSB0_UINT (insn
, 16, 4, 5);
4934 /* Record the fields for the semantic handler. */
4935 FLD (f_operand2
) = f_operand2
;
4937 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));
4939 #if WITH_PROFILE_MODEL_P
4940 /* Record the fields for profiling. */
4941 if (PROFILE_MODEL_P (current_cpu
))
4943 FLD (in_Rd
) = f_operand2
;
4944 FLD (out_Rd
) = f_operand2
;
4951 extract_sfmt_lsrr_b_r
:
4953 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4954 CGEN_INSN_INT insn
= base_insn
;
4955 #define FLD(f) abuf->fields.sfmt_addc_m.f
4959 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4960 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4962 /* Record the fields for the semantic handler. */
4963 FLD (f_operand2
) = f_operand2
;
4964 FLD (f_operand1
) = f_operand1
;
4965 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));
4967 #if WITH_PROFILE_MODEL_P
4968 /* Record the fields for profiling. */
4969 if (PROFILE_MODEL_P (current_cpu
))
4971 FLD (in_Rd
) = f_operand2
;
4972 FLD (in_Rs
) = f_operand1
;
4973 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
4980 extract_sfmt_lsrr_d_r
:
4982 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
4983 CGEN_INSN_INT insn
= base_insn
;
4984 #define FLD(f) abuf->fields.sfmt_addc_m.f
4988 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4989 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4991 /* Record the fields for the semantic handler. */
4992 FLD (f_operand2
) = f_operand2
;
4993 FLD (f_operand1
) = f_operand1
;
4994 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));
4996 #if WITH_PROFILE_MODEL_P
4997 /* Record the fields for profiling. */
4998 if (PROFILE_MODEL_P (current_cpu
))
5000 FLD (in_Rd
) = f_operand2
;
5001 FLD (in_Rs
) = f_operand1
;
5002 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
5011 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5012 CGEN_INSN_INT insn
= base_insn
;
5013 #define FLD(f) abuf->fields.sfmt_muls_b.f
5017 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5018 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5020 /* Record the fields for the semantic handler. */
5021 FLD (f_operand2
) = f_operand2
;
5022 FLD (f_operand1
) = f_operand1
;
5023 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));
5025 #if WITH_PROFILE_MODEL_P
5026 /* Record the fields for profiling. */
5027 if (PROFILE_MODEL_P (current_cpu
))
5029 FLD (in_Rd
) = f_operand2
;
5030 FLD (in_Rs
) = f_operand1
;
5039 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5040 CGEN_INSN_INT insn
= base_insn
;
5041 #define FLD(f) abuf->fields.sfmt_asrq.f
5045 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5046 f_u5
= EXTRACT_LSB0_UINT (insn
, 16, 4, 5);
5048 /* Record the fields for the semantic handler. */
5049 FLD (f_operand2
) = f_operand2
;
5051 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));
5053 #if WITH_PROFILE_MODEL_P
5054 /* Record the fields for profiling. */
5055 if (PROFILE_MODEL_P (current_cpu
))
5057 FLD (in_Rd
) = f_operand2
;
5066 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5067 CGEN_INSN_INT insn
= base_insn
;
5068 #define FLD(f) abuf->fields.sfmt_setf.f
5073 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5074 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5075 f_dstsrc
= ((((f_operand1
) | (((f_operand2
) << (4))))) & (255));
5077 /* Record the fields for the semantic handler. */
5078 FLD (f_dstsrc
) = f_dstsrc
;
5079 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_setf", "f_dstsrc 0x%x", 'x', f_dstsrc
, (char *) 0));
5087 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5088 #define FLD(f) abuf->fields.sfmt_rfe.f
5091 /* Record the fields for the semantic handler. */
5092 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_rfe", (char *) 0));
5094 #if WITH_PROFILE_MODEL_P
5095 /* Record the fields for profiling. */
5096 if (PROFILE_MODEL_P (current_cpu
))
5098 FLD (in_h_sr_SI_13
) = 13;
5099 FLD (out_h_sr_SI_13
) = 13;
5108 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5109 #define FLD(f) abuf->fields.sfmt_rfe.f
5112 /* Record the fields for the semantic handler. */
5113 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_sfe", (char *) 0));
5115 #if WITH_PROFILE_MODEL_P
5116 /* Record the fields for profiling. */
5117 if (PROFILE_MODEL_P (current_cpu
))
5119 FLD (in_h_sr_SI_13
) = 13;
5120 FLD (out_h_sr_SI_13
) = 13;
5129 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5130 #define FLD(f) abuf->fields.fmt_empty.f
5133 /* Record the fields for the semantic handler. */
5134 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_rfg", (char *) 0));
5136 #if WITH_PROFILE_MODEL_P
5137 /* Record the fields for profiling. */
5138 if (PROFILE_MODEL_P (current_cpu
))
5148 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5149 #define FLD(f) abuf->fields.sfmt_rfe.f
5152 /* Record the fields for the semantic handler. */
5153 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_rfn", (char *) 0));
5155 #if WITH_PROFILE_MODEL_P
5156 /* Record the fields for profiling. */
5157 if (PROFILE_MODEL_P (current_cpu
))
5159 FLD (in_h_sr_SI_13
) = 13;
5160 FLD (out_h_sr_SI_13
) = 13;
5169 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5170 #define FLD(f) abuf->fields.fmt_empty.f
5173 /* Record the fields for the semantic handler. */
5174 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_halt", (char *) 0));
5176 #if WITH_PROFILE_MODEL_P
5177 /* Record the fields for profiling. */
5178 if (PROFILE_MODEL_P (current_cpu
))
5188 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5189 CGEN_INSN_INT insn
= base_insn
;
5190 #define FLD(f) abuf->fields.sfmt_bcc_b.f
5196 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5197 f_disp9_lo
= EXTRACT_LSB0_UINT (insn
, 16, 7, 7);
5198 f_disp9_hi
= EXTRACT_LSB0_INT (insn
, 16, 0, 1);
5202 tmp_abslo
= ((f_disp9_lo
) << (1));
5203 tmp_absval
= ((((((f_disp9_hi
) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo
));
5204 f_disp9
= ((((pc
) + (tmp_absval
))) + (((GET_H_V32_V32 ()) ? (0) : (2))));
5207 /* Record the fields for the semantic handler. */
5208 FLD (f_operand2
) = f_operand2
;
5209 FLD (i_o_pcrel
) = f_disp9
;
5210 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));
5212 #if WITH_PROFILE_MODEL_P
5213 /* Record the fields for profiling. */
5214 if (PROFILE_MODEL_P (current_cpu
))
5224 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5225 CGEN_INSN_INT insn
= base_insn
;
5226 #define FLD(f) abuf->fields.sfmt_bcc_b.f
5231 f_disp9_lo
= EXTRACT_LSB0_UINT (insn
, 16, 7, 7);
5232 f_disp9_hi
= EXTRACT_LSB0_INT (insn
, 16, 0, 1);
5236 tmp_abslo
= ((f_disp9_lo
) << (1));
5237 tmp_absval
= ((((((f_disp9_hi
) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo
));
5238 f_disp9
= ((((pc
) + (tmp_absval
))) + (((GET_H_V32_V32 ()) ? (0) : (2))));
5241 /* Record the fields for the semantic handler. */
5242 FLD (i_o_pcrel
) = f_disp9
;
5243 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ba_b", "o_pcrel 0x%x", 'x', f_disp9
, (char *) 0));
5245 #if WITH_PROFILE_MODEL_P
5246 /* Record the fields for profiling. */
5247 if (PROFILE_MODEL_P (current_cpu
))
5257 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5258 CGEN_INSN_INT insn
= base_insn
;
5259 #define FLD(f) abuf->fields.sfmt_bcc_w.f
5260 SI f_indir_pc__word_pcrel
;
5262 /* Contents of trailing part of insn. */
5265 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
5266 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))))));
5267 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5269 /* Record the fields for the semantic handler. */
5270 FLD (f_operand2
) = f_operand2
;
5271 FLD (i_o_word_pcrel
) = f_indir_pc__word_pcrel
;
5272 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));
5274 #if WITH_PROFILE_MODEL_P
5275 /* Record the fields for profiling. */
5276 if (PROFILE_MODEL_P (current_cpu
))
5286 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5287 CGEN_INSN_INT insn
= base_insn
;
5288 #define FLD(f) abuf->fields.sfmt_bcc_w.f
5289 SI f_indir_pc__word_pcrel
;
5290 /* Contents of trailing part of insn. */
5293 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
5294 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))))));
5296 /* Record the fields for the semantic handler. */
5297 FLD (i_o_word_pcrel
) = f_indir_pc__word_pcrel
;
5298 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ba_w", "o_word_pcrel 0x%x", 'x', f_indir_pc__word_pcrel
, (char *) 0));
5300 #if WITH_PROFILE_MODEL_P
5301 /* Record the fields for profiling. */
5302 if (PROFILE_MODEL_P (current_cpu
))
5312 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5313 CGEN_INSN_INT insn
= base_insn
;
5314 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
5318 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5319 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5321 /* Record the fields for the semantic handler. */
5322 FLD (f_operand1
) = f_operand1
;
5323 FLD (f_operand2
) = f_operand2
;
5324 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));
5326 #if WITH_PROFILE_MODEL_P
5327 /* Record the fields for profiling. */
5328 if (PROFILE_MODEL_P (current_cpu
))
5330 FLD (in_Rs
) = f_operand1
;
5331 FLD (out_Pd
) = f_operand2
;
5340 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5341 CGEN_INSN_INT insn
= base_insn
;
5342 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
5343 INT f_indir_pc__dword
;
5345 /* Contents of trailing part of insn. */
5348 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
5349 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
5350 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5352 /* Record the fields for the semantic handler. */
5353 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
5354 FLD (f_operand2
) = f_operand2
;
5355 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));
5357 #if WITH_PROFILE_MODEL_P
5358 /* Record the fields for profiling. */
5359 if (PROFILE_MODEL_P (current_cpu
))
5361 FLD (out_Pd
) = f_operand2
;
5368 extract_sfmt_jump_p
:
5370 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5371 CGEN_INSN_INT insn
= base_insn
;
5372 #define FLD(f) abuf->fields.sfmt_mcp.f
5375 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5377 /* Record the fields for the semantic handler. */
5378 FLD (f_operand2
) = f_operand2
;
5379 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_jump_p", "f_operand2 0x%x", 'x', f_operand2
, (char *) 0));
5381 #if WITH_PROFILE_MODEL_P
5382 /* Record the fields for profiling. */
5383 if (PROFILE_MODEL_P (current_cpu
))
5385 FLD (in_Ps
) = f_operand2
;
5394 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5395 CGEN_INSN_INT insn
= base_insn
;
5396 #define FLD(f) abuf->fields.sfmt_bas_c.f
5397 SI f_indir_pc__dword_pcrel
;
5399 /* Contents of trailing part of insn. */
5402 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
5403 f_indir_pc__dword_pcrel
= ((pc
) + ((0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0))));
5404 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5406 /* Record the fields for the semantic handler. */
5407 FLD (f_operand2
) = f_operand2
;
5408 FLD (i_const32_pcrel
) = f_indir_pc__dword_pcrel
;
5409 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));
5411 #if WITH_PROFILE_MODEL_P
5412 /* Record the fields for profiling. */
5413 if (PROFILE_MODEL_P (current_cpu
))
5415 FLD (out_Pd
) = f_operand2
;
5422 extract_sfmt_jasc_r
:
5424 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5425 CGEN_INSN_INT insn
= base_insn
;
5426 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
5430 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5431 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5433 /* Record the fields for the semantic handler. */
5434 FLD (f_operand1
) = f_operand1
;
5435 FLD (f_operand2
) = f_operand2
;
5436 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));
5438 #if WITH_PROFILE_MODEL_P
5439 /* Record the fields for profiling. */
5440 if (PROFILE_MODEL_P (current_cpu
))
5442 FLD (in_Rs
) = f_operand1
;
5443 FLD (out_Pd
) = f_operand2
;
5452 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5453 CGEN_INSN_INT insn
= base_insn
;
5454 #define FLD(f) abuf->fields.sfmt_break.f
5457 f_u4
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5459 /* Record the fields for the semantic handler. */
5461 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_break", "f_u4 0x%x", 'x', f_u4
, (char *) 0));
5463 #if WITH_PROFILE_MODEL_P
5464 /* Record the fields for profiling. */
5465 if (PROFILE_MODEL_P (current_cpu
))
5473 extract_sfmt_bound_cb
:
5475 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5476 CGEN_INSN_INT insn
= base_insn
;
5477 #define FLD(f) abuf->fields.sfmt_bound_cb.f
5478 INT f_indir_pc__byte
;
5480 /* Contents of trailing part of insn. */
5483 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
5484 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
5485 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5487 /* Record the fields for the semantic handler. */
5488 FLD (f_operand2
) = f_operand2
;
5489 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
5490 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));
5492 #if WITH_PROFILE_MODEL_P
5493 /* Record the fields for profiling. */
5494 if (PROFILE_MODEL_P (current_cpu
))
5496 FLD (in_Rd
) = f_operand2
;
5497 FLD (out_Rd
) = f_operand2
;
5504 extract_sfmt_bound_cw
:
5506 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5507 CGEN_INSN_INT insn
= base_insn
;
5508 #define FLD(f) abuf->fields.sfmt_bound_cw.f
5509 INT f_indir_pc__word
;
5511 /* Contents of trailing part of insn. */
5514 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
5515 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
5516 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5518 /* Record the fields for the semantic handler. */
5519 FLD (f_operand2
) = f_operand2
;
5520 FLD (f_indir_pc__word
) = f_indir_pc__word
;
5521 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));
5523 #if WITH_PROFILE_MODEL_P
5524 /* Record the fields for profiling. */
5525 if (PROFILE_MODEL_P (current_cpu
))
5527 FLD (in_Rd
) = f_operand2
;
5528 FLD (out_Rd
) = f_operand2
;
5535 extract_sfmt_bound_cd
:
5537 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5538 CGEN_INSN_INT insn
= base_insn
;
5539 #define FLD(f) abuf->fields.sfmt_bound_cd.f
5540 INT f_indir_pc__dword
;
5542 /* Contents of trailing part of insn. */
5545 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
5546 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
5547 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5549 /* Record the fields for the semantic handler. */
5550 FLD (f_operand2
) = f_operand2
;
5551 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
5552 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));
5554 #if WITH_PROFILE_MODEL_P
5555 /* Record the fields for profiling. */
5556 if (PROFILE_MODEL_P (current_cpu
))
5558 FLD (in_Rd
) = f_operand2
;
5559 FLD (out_Rd
) = f_operand2
;
5568 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5569 CGEN_INSN_INT insn
= base_insn
;
5570 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
5574 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5575 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5577 /* Record the fields for the semantic handler. */
5578 FLD (f_operand2
) = f_operand2
;
5579 FLD (f_operand1
) = f_operand1
;
5580 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));
5582 #if WITH_PROFILE_MODEL_P
5583 /* Record the fields for profiling. */
5584 if (PROFILE_MODEL_P (current_cpu
))
5586 FLD (out_Rs
) = f_operand1
;
5595 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5596 CGEN_INSN_INT insn
= base_insn
;
5597 #define FLD(f) abuf->fields.sfmt_addoq.f
5601 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5602 f_s8
= EXTRACT_LSB0_INT (insn
, 16, 7, 8);
5604 /* Record the fields for the semantic handler. */
5605 FLD (f_operand2
) = f_operand2
;
5607 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));
5609 #if WITH_PROFILE_MODEL_P
5610 /* Record the fields for profiling. */
5611 if (PROFILE_MODEL_P (current_cpu
))
5613 FLD (in_Rd
) = f_operand2
;
5620 extract_sfmt_addo_m_b_m
:
5622 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5623 CGEN_INSN_INT insn
= base_insn
;
5624 #define FLD(f) abuf->fields.sfmt_addc_m.f
5629 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5630 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
5631 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5633 /* Record the fields for the semantic handler. */
5634 FLD (f_operand2
) = f_operand2
;
5635 FLD (f_operand1
) = f_operand1
;
5636 FLD (f_memmode
) = f_memmode
;
5637 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));
5639 #if WITH_PROFILE_MODEL_P
5640 /* Record the fields for profiling. */
5641 if (PROFILE_MODEL_P (current_cpu
))
5643 FLD (in_Rd
) = f_operand2
;
5644 FLD (in_Rs
) = f_operand1
;
5645 FLD (out_Rs
) = f_operand1
;
5652 extract_sfmt_addo_m_w_m
:
5654 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5655 CGEN_INSN_INT insn
= base_insn
;
5656 #define FLD(f) abuf->fields.sfmt_addc_m.f
5661 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5662 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
5663 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5665 /* Record the fields for the semantic handler. */
5666 FLD (f_operand2
) = f_operand2
;
5667 FLD (f_operand1
) = f_operand1
;
5668 FLD (f_memmode
) = f_memmode
;
5669 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));
5671 #if WITH_PROFILE_MODEL_P
5672 /* Record the fields for profiling. */
5673 if (PROFILE_MODEL_P (current_cpu
))
5675 FLD (in_Rd
) = f_operand2
;
5676 FLD (in_Rs
) = f_operand1
;
5677 FLD (out_Rs
) = f_operand1
;
5684 extract_sfmt_addo_m_d_m
:
5686 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5687 CGEN_INSN_INT insn
= base_insn
;
5688 #define FLD(f) abuf->fields.sfmt_addc_m.f
5693 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5694 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
5695 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5697 /* Record the fields for the semantic handler. */
5698 FLD (f_operand2
) = f_operand2
;
5699 FLD (f_operand1
) = f_operand1
;
5700 FLD (f_memmode
) = f_memmode
;
5701 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));
5703 #if WITH_PROFILE_MODEL_P
5704 /* Record the fields for profiling. */
5705 if (PROFILE_MODEL_P (current_cpu
))
5707 FLD (in_Rd
) = f_operand2
;
5708 FLD (in_Rs
) = f_operand1
;
5709 FLD (out_Rs
) = f_operand1
;
5716 extract_sfmt_addo_cb
:
5718 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5719 CGEN_INSN_INT insn
= base_insn
;
5720 #define FLD(f) abuf->fields.sfmt_bound_cb.f
5721 INT f_indir_pc__byte
;
5723 /* Contents of trailing part of insn. */
5726 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
5727 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
5728 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5730 /* Record the fields for the semantic handler. */
5731 FLD (f_operand2
) = f_operand2
;
5732 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
5733 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));
5735 #if WITH_PROFILE_MODEL_P
5736 /* Record the fields for profiling. */
5737 if (PROFILE_MODEL_P (current_cpu
))
5739 FLD (in_Rd
) = f_operand2
;
5746 extract_sfmt_addo_cw
:
5748 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5749 CGEN_INSN_INT insn
= base_insn
;
5750 #define FLD(f) abuf->fields.sfmt_bound_cw.f
5751 INT f_indir_pc__word
;
5753 /* Contents of trailing part of insn. */
5756 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
5757 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
5758 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5760 /* Record the fields for the semantic handler. */
5761 FLD (f_operand2
) = f_operand2
;
5762 FLD (f_indir_pc__word
) = f_indir_pc__word
;
5763 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));
5765 #if WITH_PROFILE_MODEL_P
5766 /* Record the fields for profiling. */
5767 if (PROFILE_MODEL_P (current_cpu
))
5769 FLD (in_Rd
) = f_operand2
;
5776 extract_sfmt_addo_cd
:
5778 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5779 CGEN_INSN_INT insn
= base_insn
;
5780 #define FLD(f) abuf->fields.sfmt_bound_cd.f
5781 INT f_indir_pc__dword
;
5783 /* Contents of trailing part of insn. */
5786 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
5787 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
5788 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5790 /* Record the fields for the semantic handler. */
5791 FLD (f_operand2
) = f_operand2
;
5792 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
5793 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));
5795 #if WITH_PROFILE_MODEL_P
5796 /* Record the fields for profiling. */
5797 if (PROFILE_MODEL_P (current_cpu
))
5799 FLD (in_Rd
) = f_operand2
;
5806 extract_sfmt_addi_acr_b_r
:
5808 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5809 CGEN_INSN_INT insn
= base_insn
;
5810 #define FLD(f) abuf->fields.sfmt_muls_b.f
5814 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5815 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5817 /* Record the fields for the semantic handler. */
5818 FLD (f_operand2
) = f_operand2
;
5819 FLD (f_operand1
) = f_operand1
;
5820 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));
5822 #if WITH_PROFILE_MODEL_P
5823 /* Record the fields for profiling. */
5824 if (PROFILE_MODEL_P (current_cpu
))
5826 FLD (in_Rd
) = f_operand2
;
5827 FLD (in_Rs
) = f_operand1
;
5836 const IDESC
*idesc
= &crisv32f_insn_data
[itype
];
5837 CGEN_INSN_INT insn
= base_insn
;
5838 #define FLD(f) abuf->fields.sfmt_mcp.f
5841 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5843 /* Record the fields for the semantic handler. */
5844 FLD (f_operand1
) = f_operand1
;
5845 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_fidxi", "f_operand1 0x%x", 'x', f_operand1
, (char *) 0));
5847 #if WITH_PROFILE_MODEL_P
5848 /* Record the fields for profiling. */
5849 if (PROFILE_MODEL_P (current_cpu
))
5851 FLD (in_Rs
) = f_operand1
;