1 /* Simulator instruction decoder for crisv10f.
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 3 of the License, or
12 (at your option) any later version.
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
20 along with this program. If not, see <http://www.gnu.org/licenses/>.
24 #define WANT_CPU crisv10f
25 #define WANT_CPU_CRISV10F
28 #include "sim-assert.h"
31 /* The instruction descriptor array.
32 This is computed at runtime. Space for it is not malloc'd to save a
33 teensy bit of cpu in the decoder. Moving it to malloc space is trivial
34 but won't be done until necessary (we don't currently support the runtime
35 addition of instructions nor an SMP machine with different cpus). */
36 static IDESC crisv10f_insn_data
[CRISV10F_INSN__MAX
];
38 /* Commas between elements are contained in the macros.
39 Some of these are conditionally compiled out. */
41 static const struct insn_sem crisv10f_insn_sem
[] =
43 { VIRTUAL_INSN_X_INVALID
, CRISV10F_INSN_X_INVALID
, CRISV10F_SFMT_EMPTY
},
44 { VIRTUAL_INSN_X_AFTER
, CRISV10F_INSN_X_AFTER
, CRISV10F_SFMT_EMPTY
},
45 { VIRTUAL_INSN_X_BEFORE
, CRISV10F_INSN_X_BEFORE
, CRISV10F_SFMT_EMPTY
},
46 { VIRTUAL_INSN_X_CTI_CHAIN
, CRISV10F_INSN_X_CTI_CHAIN
, CRISV10F_SFMT_EMPTY
},
47 { VIRTUAL_INSN_X_CHAIN
, CRISV10F_INSN_X_CHAIN
, CRISV10F_SFMT_EMPTY
},
48 { VIRTUAL_INSN_X_BEGIN
, CRISV10F_INSN_X_BEGIN
, CRISV10F_SFMT_EMPTY
},
49 { CRIS_INSN_NOP
, CRISV10F_INSN_NOP
, CRISV10F_SFMT_NOP
},
50 { CRIS_INSN_MOVE_B_R
, CRISV10F_INSN_MOVE_B_R
, CRISV10F_SFMT_MOVE_B_R
},
51 { CRIS_INSN_MOVE_W_R
, CRISV10F_INSN_MOVE_W_R
, CRISV10F_SFMT_MOVE_B_R
},
52 { CRIS_INSN_MOVE_D_R
, CRISV10F_INSN_MOVE_D_R
, CRISV10F_SFMT_MOVE_D_R
},
53 { CRIS_INSN_MOVEPCR
, CRISV10F_INSN_MOVEPCR
, CRISV10F_SFMT_MOVEPCR
},
54 { CRIS_INSN_MOVEQ
, CRISV10F_INSN_MOVEQ
, CRISV10F_SFMT_MOVEQ
},
55 { CRIS_INSN_MOVS_B_R
, CRISV10F_INSN_MOVS_B_R
, CRISV10F_SFMT_MOVS_B_R
},
56 { CRIS_INSN_MOVS_W_R
, CRISV10F_INSN_MOVS_W_R
, CRISV10F_SFMT_MOVS_B_R
},
57 { CRIS_INSN_MOVU_B_R
, CRISV10F_INSN_MOVU_B_R
, CRISV10F_SFMT_MOVS_B_R
},
58 { CRIS_INSN_MOVU_W_R
, CRISV10F_INSN_MOVU_W_R
, CRISV10F_SFMT_MOVS_B_R
},
59 { CRIS_INSN_MOVECBR
, CRISV10F_INSN_MOVECBR
, CRISV10F_SFMT_MOVECBR
},
60 { CRIS_INSN_MOVECWR
, CRISV10F_INSN_MOVECWR
, CRISV10F_SFMT_MOVECWR
},
61 { CRIS_INSN_MOVECDR
, CRISV10F_INSN_MOVECDR
, CRISV10F_SFMT_MOVECDR
},
62 { CRIS_INSN_MOVSCBR
, CRISV10F_INSN_MOVSCBR
, CRISV10F_SFMT_MOVSCBR
},
63 { CRIS_INSN_MOVSCWR
, CRISV10F_INSN_MOVSCWR
, CRISV10F_SFMT_MOVSCWR
},
64 { CRIS_INSN_MOVUCBR
, CRISV10F_INSN_MOVUCBR
, CRISV10F_SFMT_MOVUCBR
},
65 { CRIS_INSN_MOVUCWR
, CRISV10F_INSN_MOVUCWR
, CRISV10F_SFMT_MOVUCWR
},
66 { CRIS_INSN_ADDQ
, CRISV10F_INSN_ADDQ
, CRISV10F_SFMT_ADDQ
},
67 { CRIS_INSN_SUBQ
, CRISV10F_INSN_SUBQ
, CRISV10F_SFMT_ADDQ
},
68 { CRIS_INSN_CMP_R_B_R
, CRISV10F_INSN_CMP_R_B_R
, CRISV10F_SFMT_CMP_R_B_R
},
69 { CRIS_INSN_CMP_R_W_R
, CRISV10F_INSN_CMP_R_W_R
, CRISV10F_SFMT_CMP_R_B_R
},
70 { CRIS_INSN_CMP_R_D_R
, CRISV10F_INSN_CMP_R_D_R
, CRISV10F_SFMT_CMP_R_B_R
},
71 { CRIS_INSN_CMP_M_B_M
, CRISV10F_INSN_CMP_M_B_M
, CRISV10F_SFMT_CMP_M_B_M
},
72 { CRIS_INSN_CMP_M_W_M
, CRISV10F_INSN_CMP_M_W_M
, CRISV10F_SFMT_CMP_M_W_M
},
73 { CRIS_INSN_CMP_M_D_M
, CRISV10F_INSN_CMP_M_D_M
, CRISV10F_SFMT_CMP_M_D_M
},
74 { CRIS_INSN_CMPCBR
, CRISV10F_INSN_CMPCBR
, CRISV10F_SFMT_CMPCBR
},
75 { CRIS_INSN_CMPCWR
, CRISV10F_INSN_CMPCWR
, CRISV10F_SFMT_CMPCWR
},
76 { CRIS_INSN_CMPCDR
, CRISV10F_INSN_CMPCDR
, CRISV10F_SFMT_CMPCDR
},
77 { CRIS_INSN_CMPQ
, CRISV10F_INSN_CMPQ
, CRISV10F_SFMT_CMPQ
},
78 { CRIS_INSN_CMPS_M_B_M
, CRISV10F_INSN_CMPS_M_B_M
, CRISV10F_SFMT_CMP_M_B_M
},
79 { CRIS_INSN_CMPS_M_W_M
, CRISV10F_INSN_CMPS_M_W_M
, CRISV10F_SFMT_CMP_M_W_M
},
80 { CRIS_INSN_CMPSCBR
, CRISV10F_INSN_CMPSCBR
, CRISV10F_SFMT_CMPCBR
},
81 { CRIS_INSN_CMPSCWR
, CRISV10F_INSN_CMPSCWR
, CRISV10F_SFMT_CMPCWR
},
82 { CRIS_INSN_CMPU_M_B_M
, CRISV10F_INSN_CMPU_M_B_M
, CRISV10F_SFMT_CMP_M_B_M
},
83 { CRIS_INSN_CMPU_M_W_M
, CRISV10F_INSN_CMPU_M_W_M
, CRISV10F_SFMT_CMP_M_W_M
},
84 { CRIS_INSN_CMPUCBR
, CRISV10F_INSN_CMPUCBR
, CRISV10F_SFMT_CMPUCBR
},
85 { CRIS_INSN_CMPUCWR
, CRISV10F_INSN_CMPUCWR
, CRISV10F_SFMT_CMPUCWR
},
86 { CRIS_INSN_MOVE_M_B_M
, CRISV10F_INSN_MOVE_M_B_M
, CRISV10F_SFMT_MOVE_M_B_M
},
87 { CRIS_INSN_MOVE_M_W_M
, CRISV10F_INSN_MOVE_M_W_M
, CRISV10F_SFMT_MOVE_M_W_M
},
88 { CRIS_INSN_MOVE_M_D_M
, CRISV10F_INSN_MOVE_M_D_M
, CRISV10F_SFMT_MOVE_M_D_M
},
89 { CRIS_INSN_MOVS_M_B_M
, CRISV10F_INSN_MOVS_M_B_M
, CRISV10F_SFMT_MOVS_M_B_M
},
90 { CRIS_INSN_MOVS_M_W_M
, CRISV10F_INSN_MOVS_M_W_M
, CRISV10F_SFMT_MOVS_M_W_M
},
91 { CRIS_INSN_MOVU_M_B_M
, CRISV10F_INSN_MOVU_M_B_M
, CRISV10F_SFMT_MOVS_M_B_M
},
92 { CRIS_INSN_MOVU_M_W_M
, CRISV10F_INSN_MOVU_M_W_M
, CRISV10F_SFMT_MOVS_M_W_M
},
93 { CRIS_INSN_MOVE_R_SPRV10
, CRISV10F_INSN_MOVE_R_SPRV10
, CRISV10F_SFMT_MOVE_R_SPRV10
},
94 { CRIS_INSN_MOVE_SPR_RV10
, CRISV10F_INSN_MOVE_SPR_RV10
, CRISV10F_SFMT_MOVE_SPR_RV10
},
95 { CRIS_INSN_RET_TYPE
, CRISV10F_INSN_RET_TYPE
, CRISV10F_SFMT_RET_TYPE
},
96 { CRIS_INSN_MOVE_M_SPRV10
, CRISV10F_INSN_MOVE_M_SPRV10
, CRISV10F_SFMT_MOVE_M_SPRV10
},
97 { CRIS_INSN_MOVE_C_SPRV10_P5
, CRISV10F_INSN_MOVE_C_SPRV10_P5
, CRISV10F_SFMT_MOVE_C_SPRV10_P5
},
98 { CRIS_INSN_MOVE_C_SPRV10_P9
, CRISV10F_INSN_MOVE_C_SPRV10_P9
, CRISV10F_SFMT_MOVE_C_SPRV10_P9
},
99 { CRIS_INSN_MOVE_C_SPRV10_P10
, CRISV10F_INSN_MOVE_C_SPRV10_P10
, CRISV10F_SFMT_MOVE_C_SPRV10_P9
},
100 { CRIS_INSN_MOVE_C_SPRV10_P11
, CRISV10F_INSN_MOVE_C_SPRV10_P11
, CRISV10F_SFMT_MOVE_C_SPRV10_P9
},
101 { CRIS_INSN_MOVE_C_SPRV10_P12
, CRISV10F_INSN_MOVE_C_SPRV10_P12
, CRISV10F_SFMT_MOVE_C_SPRV10_P9
},
102 { CRIS_INSN_MOVE_C_SPRV10_P13
, CRISV10F_INSN_MOVE_C_SPRV10_P13
, CRISV10F_SFMT_MOVE_C_SPRV10_P9
},
103 { CRIS_INSN_MOVE_C_SPRV10_P7
, CRISV10F_INSN_MOVE_C_SPRV10_P7
, CRISV10F_SFMT_MOVE_C_SPRV10_P9
},
104 { CRIS_INSN_MOVE_C_SPRV10_P14
, CRISV10F_INSN_MOVE_C_SPRV10_P14
, CRISV10F_SFMT_MOVE_C_SPRV10_P9
},
105 { CRIS_INSN_MOVE_C_SPRV10_P15
, CRISV10F_INSN_MOVE_C_SPRV10_P15
, CRISV10F_SFMT_MOVE_C_SPRV10_P9
},
106 { CRIS_INSN_MOVE_SPR_MV10
, CRISV10F_INSN_MOVE_SPR_MV10
, CRISV10F_SFMT_MOVE_SPR_MV10
},
107 { CRIS_INSN_SBFS
, CRISV10F_INSN_SBFS
, CRISV10F_SFMT_SBFS
},
108 { CRIS_INSN_MOVEM_R_M
, CRISV10F_INSN_MOVEM_R_M
, CRISV10F_SFMT_MOVEM_R_M
},
109 { CRIS_INSN_MOVEM_M_R
, CRISV10F_INSN_MOVEM_M_R
, CRISV10F_SFMT_MOVEM_M_R
},
110 { CRIS_INSN_MOVEM_M_PC
, CRISV10F_INSN_MOVEM_M_PC
, CRISV10F_SFMT_MOVEM_M_PC
},
111 { CRIS_INSN_ADD_B_R
, CRISV10F_INSN_ADD_B_R
, CRISV10F_SFMT_ADD_B_R
},
112 { CRIS_INSN_ADD_W_R
, CRISV10F_INSN_ADD_W_R
, CRISV10F_SFMT_ADD_B_R
},
113 { CRIS_INSN_ADD_D_R
, CRISV10F_INSN_ADD_D_R
, CRISV10F_SFMT_ADD_D_R
},
114 { CRIS_INSN_ADD_M_B_M
, CRISV10F_INSN_ADD_M_B_M
, CRISV10F_SFMT_ADD_M_B_M
},
115 { CRIS_INSN_ADD_M_W_M
, CRISV10F_INSN_ADD_M_W_M
, CRISV10F_SFMT_ADD_M_W_M
},
116 { CRIS_INSN_ADD_M_D_M
, CRISV10F_INSN_ADD_M_D_M
, CRISV10F_SFMT_ADD_M_D_M
},
117 { CRIS_INSN_ADDCBR
, CRISV10F_INSN_ADDCBR
, CRISV10F_SFMT_ADDCBR
},
118 { CRIS_INSN_ADDCWR
, CRISV10F_INSN_ADDCWR
, CRISV10F_SFMT_ADDCWR
},
119 { CRIS_INSN_ADDCDR
, CRISV10F_INSN_ADDCDR
, CRISV10F_SFMT_ADDCDR
},
120 { CRIS_INSN_ADDCPC
, CRISV10F_INSN_ADDCPC
, CRISV10F_SFMT_ADDCPC
},
121 { CRIS_INSN_ADDS_B_R
, CRISV10F_INSN_ADDS_B_R
, CRISV10F_SFMT_ADD_D_R
},
122 { CRIS_INSN_ADDS_W_R
, CRISV10F_INSN_ADDS_W_R
, CRISV10F_SFMT_ADD_D_R
},
123 { CRIS_INSN_ADDS_M_B_M
, CRISV10F_INSN_ADDS_M_B_M
, CRISV10F_SFMT_ADDS_M_B_M
},
124 { CRIS_INSN_ADDS_M_W_M
, CRISV10F_INSN_ADDS_M_W_M
, CRISV10F_SFMT_ADDS_M_W_M
},
125 { CRIS_INSN_ADDSCBR
, CRISV10F_INSN_ADDSCBR
, CRISV10F_SFMT_ADDSCBR
},
126 { CRIS_INSN_ADDSCWR
, CRISV10F_INSN_ADDSCWR
, CRISV10F_SFMT_ADDSCWR
},
127 { CRIS_INSN_ADDSPCPC
, CRISV10F_INSN_ADDSPCPC
, CRISV10F_SFMT_ADDSPCPC
},
128 { CRIS_INSN_ADDU_B_R
, CRISV10F_INSN_ADDU_B_R
, CRISV10F_SFMT_ADD_D_R
},
129 { CRIS_INSN_ADDU_W_R
, CRISV10F_INSN_ADDU_W_R
, CRISV10F_SFMT_ADD_D_R
},
130 { CRIS_INSN_ADDU_M_B_M
, CRISV10F_INSN_ADDU_M_B_M
, CRISV10F_SFMT_ADDS_M_B_M
},
131 { CRIS_INSN_ADDU_M_W_M
, CRISV10F_INSN_ADDU_M_W_M
, CRISV10F_SFMT_ADDS_M_W_M
},
132 { CRIS_INSN_ADDUCBR
, CRISV10F_INSN_ADDUCBR
, CRISV10F_SFMT_ADDSCBR
},
133 { CRIS_INSN_ADDUCWR
, CRISV10F_INSN_ADDUCWR
, CRISV10F_SFMT_ADDSCWR
},
134 { CRIS_INSN_SUB_B_R
, CRISV10F_INSN_SUB_B_R
, CRISV10F_SFMT_ADD_B_R
},
135 { CRIS_INSN_SUB_W_R
, CRISV10F_INSN_SUB_W_R
, CRISV10F_SFMT_ADD_B_R
},
136 { CRIS_INSN_SUB_D_R
, CRISV10F_INSN_SUB_D_R
, CRISV10F_SFMT_ADD_D_R
},
137 { CRIS_INSN_SUB_M_B_M
, CRISV10F_INSN_SUB_M_B_M
, CRISV10F_SFMT_ADD_M_B_M
},
138 { CRIS_INSN_SUB_M_W_M
, CRISV10F_INSN_SUB_M_W_M
, CRISV10F_SFMT_ADD_M_W_M
},
139 { CRIS_INSN_SUB_M_D_M
, CRISV10F_INSN_SUB_M_D_M
, CRISV10F_SFMT_ADD_M_D_M
},
140 { CRIS_INSN_SUBCBR
, CRISV10F_INSN_SUBCBR
, CRISV10F_SFMT_ADDCBR
},
141 { CRIS_INSN_SUBCWR
, CRISV10F_INSN_SUBCWR
, CRISV10F_SFMT_ADDCWR
},
142 { CRIS_INSN_SUBCDR
, CRISV10F_INSN_SUBCDR
, CRISV10F_SFMT_ADDCDR
},
143 { CRIS_INSN_SUBS_B_R
, CRISV10F_INSN_SUBS_B_R
, CRISV10F_SFMT_ADD_D_R
},
144 { CRIS_INSN_SUBS_W_R
, CRISV10F_INSN_SUBS_W_R
, CRISV10F_SFMT_ADD_D_R
},
145 { CRIS_INSN_SUBS_M_B_M
, CRISV10F_INSN_SUBS_M_B_M
, CRISV10F_SFMT_ADDS_M_B_M
},
146 { CRIS_INSN_SUBS_M_W_M
, CRISV10F_INSN_SUBS_M_W_M
, CRISV10F_SFMT_ADDS_M_W_M
},
147 { CRIS_INSN_SUBSCBR
, CRISV10F_INSN_SUBSCBR
, CRISV10F_SFMT_ADDSCBR
},
148 { CRIS_INSN_SUBSCWR
, CRISV10F_INSN_SUBSCWR
, CRISV10F_SFMT_ADDSCWR
},
149 { CRIS_INSN_SUBU_B_R
, CRISV10F_INSN_SUBU_B_R
, CRISV10F_SFMT_ADD_D_R
},
150 { CRIS_INSN_SUBU_W_R
, CRISV10F_INSN_SUBU_W_R
, CRISV10F_SFMT_ADD_D_R
},
151 { CRIS_INSN_SUBU_M_B_M
, CRISV10F_INSN_SUBU_M_B_M
, CRISV10F_SFMT_ADDS_M_B_M
},
152 { CRIS_INSN_SUBU_M_W_M
, CRISV10F_INSN_SUBU_M_W_M
, CRISV10F_SFMT_ADDS_M_W_M
},
153 { CRIS_INSN_SUBUCBR
, CRISV10F_INSN_SUBUCBR
, CRISV10F_SFMT_ADDSCBR
},
154 { CRIS_INSN_SUBUCWR
, CRISV10F_INSN_SUBUCWR
, CRISV10F_SFMT_ADDSCWR
},
155 { CRIS_INSN_ADDI_B_R
, CRISV10F_INSN_ADDI_B_R
, CRISV10F_SFMT_ADDI_B_R
},
156 { CRIS_INSN_ADDI_W_R
, CRISV10F_INSN_ADDI_W_R
, CRISV10F_SFMT_ADDI_B_R
},
157 { CRIS_INSN_ADDI_D_R
, CRISV10F_INSN_ADDI_D_R
, CRISV10F_SFMT_ADDI_B_R
},
158 { CRIS_INSN_NEG_B_R
, CRISV10F_INSN_NEG_B_R
, CRISV10F_SFMT_NEG_B_R
},
159 { CRIS_INSN_NEG_W_R
, CRISV10F_INSN_NEG_W_R
, CRISV10F_SFMT_NEG_B_R
},
160 { CRIS_INSN_NEG_D_R
, CRISV10F_INSN_NEG_D_R
, CRISV10F_SFMT_NEG_D_R
},
161 { CRIS_INSN_TEST_M_B_M
, CRISV10F_INSN_TEST_M_B_M
, CRISV10F_SFMT_TEST_M_B_M
},
162 { CRIS_INSN_TEST_M_W_M
, CRISV10F_INSN_TEST_M_W_M
, CRISV10F_SFMT_TEST_M_W_M
},
163 { CRIS_INSN_TEST_M_D_M
, CRISV10F_INSN_TEST_M_D_M
, CRISV10F_SFMT_TEST_M_D_M
},
164 { CRIS_INSN_MOVE_R_M_B_M
, CRISV10F_INSN_MOVE_R_M_B_M
, CRISV10F_SFMT_MOVE_R_M_B_M
},
165 { CRIS_INSN_MOVE_R_M_W_M
, CRISV10F_INSN_MOVE_R_M_W_M
, CRISV10F_SFMT_MOVE_R_M_W_M
},
166 { CRIS_INSN_MOVE_R_M_D_M
, CRISV10F_INSN_MOVE_R_M_D_M
, CRISV10F_SFMT_MOVE_R_M_D_M
},
167 { CRIS_INSN_MULS_B
, CRISV10F_INSN_MULS_B
, CRISV10F_SFMT_MULS_B
},
168 { CRIS_INSN_MULS_W
, CRISV10F_INSN_MULS_W
, CRISV10F_SFMT_MULS_B
},
169 { CRIS_INSN_MULS_D
, CRISV10F_INSN_MULS_D
, CRISV10F_SFMT_MULS_B
},
170 { CRIS_INSN_MULU_B
, CRISV10F_INSN_MULU_B
, CRISV10F_SFMT_MULS_B
},
171 { CRIS_INSN_MULU_W
, CRISV10F_INSN_MULU_W
, CRISV10F_SFMT_MULS_B
},
172 { CRIS_INSN_MULU_D
, CRISV10F_INSN_MULU_D
, CRISV10F_SFMT_MULS_B
},
173 { CRIS_INSN_MSTEP
, CRISV10F_INSN_MSTEP
, CRISV10F_SFMT_MSTEP
},
174 { CRIS_INSN_DSTEP
, CRISV10F_INSN_DSTEP
, CRISV10F_SFMT_DSTEP
},
175 { CRIS_INSN_ABS
, CRISV10F_INSN_ABS
, CRISV10F_SFMT_MOVS_B_R
},
176 { CRIS_INSN_AND_B_R
, CRISV10F_INSN_AND_B_R
, CRISV10F_SFMT_AND_B_R
},
177 { CRIS_INSN_AND_W_R
, CRISV10F_INSN_AND_W_R
, CRISV10F_SFMT_AND_W_R
},
178 { CRIS_INSN_AND_D_R
, CRISV10F_INSN_AND_D_R
, CRISV10F_SFMT_AND_D_R
},
179 { CRIS_INSN_AND_M_B_M
, CRISV10F_INSN_AND_M_B_M
, CRISV10F_SFMT_AND_M_B_M
},
180 { CRIS_INSN_AND_M_W_M
, CRISV10F_INSN_AND_M_W_M
, CRISV10F_SFMT_AND_M_W_M
},
181 { CRIS_INSN_AND_M_D_M
, CRISV10F_INSN_AND_M_D_M
, CRISV10F_SFMT_AND_M_D_M
},
182 { CRIS_INSN_ANDCBR
, CRISV10F_INSN_ANDCBR
, CRISV10F_SFMT_ANDCBR
},
183 { CRIS_INSN_ANDCWR
, CRISV10F_INSN_ANDCWR
, CRISV10F_SFMT_ANDCWR
},
184 { CRIS_INSN_ANDCDR
, CRISV10F_INSN_ANDCDR
, CRISV10F_SFMT_ANDCDR
},
185 { CRIS_INSN_ANDQ
, CRISV10F_INSN_ANDQ
, CRISV10F_SFMT_ANDQ
},
186 { CRIS_INSN_ORR_B_R
, CRISV10F_INSN_ORR_B_R
, CRISV10F_SFMT_AND_B_R
},
187 { CRIS_INSN_ORR_W_R
, CRISV10F_INSN_ORR_W_R
, CRISV10F_SFMT_AND_W_R
},
188 { CRIS_INSN_ORR_D_R
, CRISV10F_INSN_ORR_D_R
, CRISV10F_SFMT_AND_D_R
},
189 { CRIS_INSN_OR_M_B_M
, CRISV10F_INSN_OR_M_B_M
, CRISV10F_SFMT_AND_M_B_M
},
190 { CRIS_INSN_OR_M_W_M
, CRISV10F_INSN_OR_M_W_M
, CRISV10F_SFMT_AND_M_W_M
},
191 { CRIS_INSN_OR_M_D_M
, CRISV10F_INSN_OR_M_D_M
, CRISV10F_SFMT_AND_M_D_M
},
192 { CRIS_INSN_ORCBR
, CRISV10F_INSN_ORCBR
, CRISV10F_SFMT_ANDCBR
},
193 { CRIS_INSN_ORCWR
, CRISV10F_INSN_ORCWR
, CRISV10F_SFMT_ANDCWR
},
194 { CRIS_INSN_ORCDR
, CRISV10F_INSN_ORCDR
, CRISV10F_SFMT_ANDCDR
},
195 { CRIS_INSN_ORQ
, CRISV10F_INSN_ORQ
, CRISV10F_SFMT_ANDQ
},
196 { CRIS_INSN_XOR
, CRISV10F_INSN_XOR
, CRISV10F_SFMT_DSTEP
},
197 { CRIS_INSN_SWAP
, CRISV10F_INSN_SWAP
, CRISV10F_SFMT_SWAP
},
198 { CRIS_INSN_ASRR_B_R
, CRISV10F_INSN_ASRR_B_R
, CRISV10F_SFMT_ASRR_B_R
},
199 { CRIS_INSN_ASRR_W_R
, CRISV10F_INSN_ASRR_W_R
, CRISV10F_SFMT_ASRR_B_R
},
200 { CRIS_INSN_ASRR_D_R
, CRISV10F_INSN_ASRR_D_R
, CRISV10F_SFMT_AND_D_R
},
201 { CRIS_INSN_ASRQ
, CRISV10F_INSN_ASRQ
, CRISV10F_SFMT_ASRQ
},
202 { CRIS_INSN_LSRR_B_R
, CRISV10F_INSN_LSRR_B_R
, CRISV10F_SFMT_LSRR_B_R
},
203 { CRIS_INSN_LSRR_W_R
, CRISV10F_INSN_LSRR_W_R
, CRISV10F_SFMT_LSRR_B_R
},
204 { CRIS_INSN_LSRR_D_R
, CRISV10F_INSN_LSRR_D_R
, CRISV10F_SFMT_LSRR_D_R
},
205 { CRIS_INSN_LSRQ
, CRISV10F_INSN_LSRQ
, CRISV10F_SFMT_ASRQ
},
206 { CRIS_INSN_LSLR_B_R
, CRISV10F_INSN_LSLR_B_R
, CRISV10F_SFMT_LSRR_B_R
},
207 { CRIS_INSN_LSLR_W_R
, CRISV10F_INSN_LSLR_W_R
, CRISV10F_SFMT_LSRR_B_R
},
208 { CRIS_INSN_LSLR_D_R
, CRISV10F_INSN_LSLR_D_R
, CRISV10F_SFMT_LSRR_D_R
},
209 { CRIS_INSN_LSLQ
, CRISV10F_INSN_LSLQ
, CRISV10F_SFMT_ASRQ
},
210 { CRIS_INSN_BTST
, CRISV10F_INSN_BTST
, CRISV10F_SFMT_BTST
},
211 { CRIS_INSN_BTSTQ
, CRISV10F_INSN_BTSTQ
, CRISV10F_SFMT_BTSTQ
},
212 { CRIS_INSN_SETF
, CRISV10F_INSN_SETF
, CRISV10F_SFMT_SETF
},
213 { CRIS_INSN_CLEARF
, CRISV10F_INSN_CLEARF
, CRISV10F_SFMT_SETF
},
214 { CRIS_INSN_BCC_B
, CRISV10F_INSN_BCC_B
, CRISV10F_SFMT_BCC_B
},
215 { CRIS_INSN_BA_B
, CRISV10F_INSN_BA_B
, CRISV10F_SFMT_BA_B
},
216 { CRIS_INSN_BCC_W
, CRISV10F_INSN_BCC_W
, CRISV10F_SFMT_BCC_W
},
217 { CRIS_INSN_BA_W
, CRISV10F_INSN_BA_W
, CRISV10F_SFMT_BA_W
},
218 { CRIS_INSN_JUMP_R
, CRISV10F_INSN_JUMP_R
, CRISV10F_SFMT_JUMP_R
},
219 { CRIS_INSN_JUMP_M
, CRISV10F_INSN_JUMP_M
, CRISV10F_SFMT_JUMP_M
},
220 { CRIS_INSN_JUMP_C
, CRISV10F_INSN_JUMP_C
, CRISV10F_SFMT_JUMP_C
},
221 { CRIS_INSN_BREAK
, CRISV10F_INSN_BREAK
, CRISV10F_SFMT_BREAK
},
222 { CRIS_INSN_BOUND_R_B_R
, CRISV10F_INSN_BOUND_R_B_R
, CRISV10F_SFMT_DSTEP
},
223 { CRIS_INSN_BOUND_R_W_R
, CRISV10F_INSN_BOUND_R_W_R
, CRISV10F_SFMT_DSTEP
},
224 { CRIS_INSN_BOUND_R_D_R
, CRISV10F_INSN_BOUND_R_D_R
, CRISV10F_SFMT_DSTEP
},
225 { CRIS_INSN_BOUND_M_B_M
, CRISV10F_INSN_BOUND_M_B_M
, CRISV10F_SFMT_BOUND_M_B_M
},
226 { CRIS_INSN_BOUND_M_W_M
, CRISV10F_INSN_BOUND_M_W_M
, CRISV10F_SFMT_BOUND_M_W_M
},
227 { CRIS_INSN_BOUND_M_D_M
, CRISV10F_INSN_BOUND_M_D_M
, CRISV10F_SFMT_BOUND_M_D_M
},
228 { CRIS_INSN_BOUND_CB
, CRISV10F_INSN_BOUND_CB
, CRISV10F_SFMT_BOUND_CB
},
229 { CRIS_INSN_BOUND_CW
, CRISV10F_INSN_BOUND_CW
, CRISV10F_SFMT_BOUND_CW
},
230 { CRIS_INSN_BOUND_CD
, CRISV10F_INSN_BOUND_CD
, CRISV10F_SFMT_BOUND_CD
},
231 { CRIS_INSN_SCC
, CRISV10F_INSN_SCC
, CRISV10F_SFMT_SCC
},
232 { CRIS_INSN_LZ
, CRISV10F_INSN_LZ
, CRISV10F_SFMT_MOVS_B_R
},
233 { CRIS_INSN_ADDOQ
, CRISV10F_INSN_ADDOQ
, CRISV10F_SFMT_ADDOQ
},
234 { CRIS_INSN_BDAPQPC
, CRISV10F_INSN_BDAPQPC
, CRISV10F_SFMT_BDAPQPC
},
235 { CRIS_INSN_BDAP_32_PC
, CRISV10F_INSN_BDAP_32_PC
, CRISV10F_SFMT_BDAP_32_PC
},
236 { CRIS_INSN_MOVE_M_PCPLUS_P0
, CRISV10F_INSN_MOVE_M_PCPLUS_P0
, CRISV10F_SFMT_MOVE_M_PCPLUS_P0
},
237 { CRIS_INSN_MOVE_M_SPPLUS_P8
, CRISV10F_INSN_MOVE_M_SPPLUS_P8
, CRISV10F_SFMT_MOVE_M_SPPLUS_P8
},
238 { CRIS_INSN_ADDO_M_B_M
, CRISV10F_INSN_ADDO_M_B_M
, CRISV10F_SFMT_ADDO_M_B_M
},
239 { CRIS_INSN_ADDO_M_W_M
, CRISV10F_INSN_ADDO_M_W_M
, CRISV10F_SFMT_ADDO_M_W_M
},
240 { CRIS_INSN_ADDO_M_D_M
, CRISV10F_INSN_ADDO_M_D_M
, CRISV10F_SFMT_ADDO_M_D_M
},
241 { CRIS_INSN_ADDO_CB
, CRISV10F_INSN_ADDO_CB
, CRISV10F_SFMT_ADDO_CB
},
242 { CRIS_INSN_ADDO_CW
, CRISV10F_INSN_ADDO_CW
, CRISV10F_SFMT_ADDO_CW
},
243 { CRIS_INSN_ADDO_CD
, CRISV10F_INSN_ADDO_CD
, CRISV10F_SFMT_ADDO_CD
},
244 { CRIS_INSN_DIP_M
, CRISV10F_INSN_DIP_M
, CRISV10F_SFMT_DIP_M
},
245 { CRIS_INSN_DIP_C
, CRISV10F_INSN_DIP_C
, CRISV10F_SFMT_DIP_C
},
246 { CRIS_INSN_ADDI_ACR_B_R
, CRISV10F_INSN_ADDI_ACR_B_R
, CRISV10F_SFMT_ADDI_ACR_B_R
},
247 { CRIS_INSN_ADDI_ACR_W_R
, CRISV10F_INSN_ADDI_ACR_W_R
, CRISV10F_SFMT_ADDI_ACR_B_R
},
248 { CRIS_INSN_ADDI_ACR_D_R
, CRISV10F_INSN_ADDI_ACR_D_R
, CRISV10F_SFMT_ADDI_ACR_B_R
},
249 { CRIS_INSN_BIAP_PC_B_R
, CRISV10F_INSN_BIAP_PC_B_R
, CRISV10F_SFMT_BIAP_PC_B_R
},
250 { CRIS_INSN_BIAP_PC_W_R
, CRISV10F_INSN_BIAP_PC_W_R
, CRISV10F_SFMT_BIAP_PC_B_R
},
251 { CRIS_INSN_BIAP_PC_D_R
, CRISV10F_INSN_BIAP_PC_D_R
, CRISV10F_SFMT_BIAP_PC_B_R
},
254 static const struct insn_sem crisv10f_insn_sem_invalid
= {
255 VIRTUAL_INSN_X_INVALID
, CRISV10F_INSN_X_INVALID
, CRISV10F_SFMT_EMPTY
258 /* Initialize an IDESC from the compile-time computable parts. */
261 init_idesc (SIM_CPU
*cpu
, IDESC
*id
, const struct insn_sem
*t
)
263 const CGEN_INSN
*insn_table
= CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu
))->init_entries
;
267 if ((int) t
->type
<= 0)
268 id
->idata
= & cgen_virtual_insn_table
[- (int) t
->type
];
270 id
->idata
= & insn_table
[t
->type
];
271 id
->attrs
= CGEN_INSN_ATTRS (id
->idata
);
272 /* Oh my god, a magic number. */
273 id
->length
= CGEN_INSN_BITSIZE (id
->idata
) / 8;
275 #if WITH_PROFILE_MODEL_P
276 id
->timing
= & MODEL_TIMING (CPU_MODEL (cpu
)) [t
->index
];
278 SIM_DESC sd
= CPU_STATE (cpu
);
279 SIM_ASSERT (t
->index
== id
->timing
->num
);
283 /* Semantic pointers are initialized elsewhere. */
286 /* Initialize the instruction descriptor table. */
289 crisv10f_init_idesc_table (SIM_CPU
*cpu
)
292 const struct insn_sem
*t
,*tend
;
293 int tabsize
= CRISV10F_INSN__MAX
;
294 IDESC
*table
= crisv10f_insn_data
;
296 memset (table
, 0, tabsize
* sizeof (IDESC
));
298 /* First set all entries to the `invalid insn'. */
299 t
= & crisv10f_insn_sem_invalid
;
300 for (id
= table
, tabend
= table
+ tabsize
; id
< tabend
; ++id
)
301 init_idesc (cpu
, id
, t
);
303 /* Now fill in the values for the chosen cpu. */
304 for (t
= crisv10f_insn_sem
, tend
= t
+ sizeof (crisv10f_insn_sem
) / sizeof (*t
);
307 init_idesc (cpu
, & table
[t
->index
], t
);
310 /* Link the IDESC table into the cpu. */
311 CPU_IDESC (cpu
) = table
;
314 /* Given an instruction, return a pointer to its IDESC entry. */
317 crisv10f_decode (SIM_CPU
*current_cpu
, IADDR pc
,
318 CGEN_INSN_INT base_insn
,
321 /* Result of decoder. */
322 CRISV10F_INSN_TYPE itype
;
325 CGEN_INSN_INT insn
= base_insn
;
328 unsigned int val
= (((insn
>> 4) & (255 << 0)));
331 case 0 : /* fall through */
332 case 1 : /* fall through */
333 case 2 : /* fall through */
334 case 3 : /* fall through */
335 case 4 : /* fall through */
336 case 5 : /* fall through */
337 case 6 : /* fall through */
338 case 7 : /* fall through */
339 case 8 : /* fall through */
340 case 9 : /* fall through */
341 case 10 : /* fall through */
342 case 11 : /* fall through */
343 case 12 : /* fall through */
344 case 13 : /* fall through */
345 case 14 : /* fall through */
348 unsigned int val
= (((insn
>> 12) & (15 << 0)));
351 case 0 : /* fall through */
352 case 1 : /* fall through */
353 case 2 : /* fall through */
354 case 3 : /* fall through */
355 case 4 : /* fall through */
356 case 5 : /* fall through */
357 case 6 : /* fall through */
358 case 7 : /* fall through */
359 case 8 : /* fall through */
360 case 9 : /* fall through */
361 case 10 : /* fall through */
362 case 11 : /* fall through */
363 case 12 : /* fall through */
364 case 13 : /* fall through */
366 if ((base_insn
& 0xf00) == 0x0)
367 { itype
= CRISV10F_INSN_BCC_B
; goto extract_sfmt_bcc_b
; }
368 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
370 if ((base_insn
& 0xff00) == 0xe000)
371 { itype
= CRISV10F_INSN_BA_B
; goto extract_sfmt_ba_b
; }
372 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
373 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
376 case 16 : /* fall through */
377 case 17 : /* fall through */
378 case 18 : /* fall through */
379 case 19 : /* fall through */
380 case 20 : /* fall through */
381 case 21 : /* fall through */
382 case 22 : /* fall through */
383 case 23 : /* fall through */
384 case 24 : /* fall through */
385 case 25 : /* fall through */
386 case 26 : /* fall through */
387 case 27 : /* fall through */
388 case 28 : /* fall through */
389 case 29 : /* fall through */
390 case 30 : /* fall through */
393 unsigned int val
= (((insn
>> 12) & (15 << 0)));
396 case 0 : /* fall through */
397 case 1 : /* fall through */
398 case 2 : /* fall through */
399 case 3 : /* fall through */
400 case 4 : /* fall through */
401 case 5 : /* fall through */
402 case 6 : /* fall through */
403 case 7 : /* fall through */
404 case 8 : /* fall through */
405 case 9 : /* fall through */
406 case 10 : /* fall through */
407 case 11 : /* fall through */
408 case 12 : /* fall through */
409 case 13 : /* fall through */
411 if ((base_insn
& 0xf00) == 0x100)
412 { itype
= CRISV10F_INSN_ADDOQ
; goto extract_sfmt_addoq
; }
413 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
415 if ((base_insn
& 0xff00) == 0xf100)
416 { itype
= CRISV10F_INSN_BDAPQPC
; goto extract_sfmt_bdapqpc
; }
417 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
418 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
421 case 32 : /* fall through */
422 case 33 : /* fall through */
423 case 34 : /* fall through */
425 if ((base_insn
& 0xfc0) == 0x200)
426 { itype
= CRISV10F_INSN_ADDQ
; goto extract_sfmt_addq
; }
427 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
428 case 36 : /* fall through */
429 case 37 : /* fall through */
430 case 38 : /* fall through */
432 if ((base_insn
& 0xfc0) == 0x240)
433 { itype
= CRISV10F_INSN_MOVEQ
; goto extract_sfmt_moveq
; }
434 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
435 case 40 : /* fall through */
436 case 41 : /* fall through */
437 case 42 : /* fall through */
439 if ((base_insn
& 0xfc0) == 0x280)
440 { itype
= CRISV10F_INSN_SUBQ
; goto extract_sfmt_addq
; }
441 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
442 case 44 : /* fall through */
443 case 45 : /* fall through */
444 case 46 : /* fall through */
446 if ((base_insn
& 0xfc0) == 0x2c0)
447 { itype
= CRISV10F_INSN_CMPQ
; goto extract_sfmt_cmpq
; }
448 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
449 case 48 : /* fall through */
450 case 49 : /* fall through */
451 case 50 : /* fall through */
453 if ((base_insn
& 0xfc0) == 0x300)
454 { itype
= CRISV10F_INSN_ANDQ
; goto extract_sfmt_andq
; }
455 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
456 case 52 : /* fall through */
457 case 53 : /* fall through */
458 case 54 : /* fall through */
460 if ((base_insn
& 0xfc0) == 0x340)
461 { itype
= CRISV10F_INSN_ORQ
; goto extract_sfmt_andq
; }
462 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
463 case 56 : /* fall through */
465 if ((base_insn
& 0xfe0) == 0x380)
466 { itype
= CRISV10F_INSN_BTSTQ
; goto extract_sfmt_btstq
; }
467 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
468 case 58 : /* fall through */
470 if ((base_insn
& 0xfe0) == 0x3a0)
471 { itype
= CRISV10F_INSN_ASRQ
; goto extract_sfmt_asrq
; }
472 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
473 case 60 : /* fall through */
475 if ((base_insn
& 0xfe0) == 0x3c0)
476 { itype
= CRISV10F_INSN_LSLQ
; goto extract_sfmt_asrq
; }
477 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
478 case 62 : /* fall through */
480 if ((base_insn
& 0xfe0) == 0x3e0)
481 { itype
= CRISV10F_INSN_LSRQ
; goto extract_sfmt_asrq
; }
482 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
484 if ((base_insn
& 0xff0) == 0x400)
485 { itype
= CRISV10F_INSN_ADDU_B_R
; goto extract_sfmt_add_d_r
; }
486 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
488 if ((base_insn
& 0xff0) == 0x410)
489 { itype
= CRISV10F_INSN_ADDU_W_R
; goto extract_sfmt_add_d_r
; }
490 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
492 if ((base_insn
& 0xff0) == 0x420)
493 { itype
= CRISV10F_INSN_ADDS_B_R
; goto extract_sfmt_add_d_r
; }
494 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
496 if ((base_insn
& 0xff0) == 0x430)
497 { itype
= CRISV10F_INSN_ADDS_W_R
; goto extract_sfmt_add_d_r
; }
498 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
500 if ((base_insn
& 0xff0) == 0x440)
501 { itype
= CRISV10F_INSN_MOVU_B_R
; goto extract_sfmt_movs_b_r
; }
502 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
504 if ((base_insn
& 0xff0) == 0x450)
505 { itype
= CRISV10F_INSN_MOVU_W_R
; goto extract_sfmt_movs_b_r
; }
506 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
508 if ((base_insn
& 0xff0) == 0x460)
509 { itype
= CRISV10F_INSN_MOVS_B_R
; goto extract_sfmt_movs_b_r
; }
510 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
512 if ((base_insn
& 0xff0) == 0x470)
513 { itype
= CRISV10F_INSN_MOVS_W_R
; goto extract_sfmt_movs_b_r
; }
514 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
516 if ((base_insn
& 0xff0) == 0x480)
517 { itype
= CRISV10F_INSN_SUBU_B_R
; goto extract_sfmt_add_d_r
; }
518 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
520 if ((base_insn
& 0xff0) == 0x490)
521 { itype
= CRISV10F_INSN_SUBU_W_R
; goto extract_sfmt_add_d_r
; }
522 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
524 if ((base_insn
& 0xff0) == 0x4a0)
525 { itype
= CRISV10F_INSN_SUBS_B_R
; goto extract_sfmt_add_d_r
; }
526 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
528 if ((base_insn
& 0xff0) == 0x4b0)
529 { itype
= CRISV10F_INSN_SUBS_W_R
; goto extract_sfmt_add_d_r
; }
530 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
532 if ((base_insn
& 0xff0) == 0x4c0)
533 { itype
= CRISV10F_INSN_LSLR_B_R
; goto extract_sfmt_lsrr_b_r
; }
534 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
536 if ((base_insn
& 0xff0) == 0x4d0)
537 { itype
= CRISV10F_INSN_LSLR_W_R
; goto extract_sfmt_lsrr_b_r
; }
538 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
540 if ((base_insn
& 0xff0) == 0x4e0)
541 { itype
= CRISV10F_INSN_LSLR_D_R
; goto extract_sfmt_lsrr_d_r
; }
542 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
544 if ((base_insn
& 0xff0) == 0x4f0)
545 { itype
= CRISV10F_INSN_BTST
; goto extract_sfmt_btst
; }
546 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
549 unsigned int val
= (((insn
>> 8) & (7 << 4)) | ((insn
>> 0) & (15 << 0)));
552 case 0 : /* fall through */
553 case 1 : /* fall through */
554 case 2 : /* fall through */
555 case 3 : /* fall through */
556 case 4 : /* fall through */
557 case 5 : /* fall through */
558 case 6 : /* fall through */
559 case 7 : /* fall through */
560 case 8 : /* fall through */
561 case 9 : /* fall through */
562 case 10 : /* fall through */
563 case 11 : /* fall through */
564 case 12 : /* fall through */
565 case 13 : /* fall through */
566 case 14 : /* fall through */
567 case 16 : /* fall through */
568 case 17 : /* fall through */
569 case 18 : /* fall through */
570 case 19 : /* fall through */
571 case 20 : /* fall through */
572 case 21 : /* fall through */
573 case 22 : /* fall through */
574 case 23 : /* fall through */
575 case 24 : /* fall through */
576 case 25 : /* fall through */
577 case 26 : /* fall through */
578 case 27 : /* fall through */
579 case 28 : /* fall through */
580 case 29 : /* fall through */
581 case 30 : /* fall through */
582 case 31 : /* fall through */
583 case 32 : /* fall through */
584 case 33 : /* fall through */
585 case 34 : /* fall through */
586 case 35 : /* fall through */
587 case 36 : /* fall through */
588 case 37 : /* fall through */
589 case 38 : /* fall through */
590 case 39 : /* fall through */
591 case 40 : /* fall through */
592 case 41 : /* fall through */
593 case 42 : /* fall through */
594 case 43 : /* fall through */
595 case 44 : /* fall through */
596 case 45 : /* fall through */
597 case 46 : /* fall through */
598 case 47 : /* fall through */
599 case 48 : /* fall through */
600 case 49 : /* fall through */
601 case 50 : /* fall through */
602 case 51 : /* fall through */
603 case 52 : /* fall through */
604 case 53 : /* fall through */
605 case 54 : /* fall through */
606 case 55 : /* fall through */
607 case 56 : /* fall through */
608 case 57 : /* fall through */
609 case 58 : /* fall through */
610 case 59 : /* fall through */
611 case 60 : /* fall through */
612 case 61 : /* fall through */
613 case 62 : /* fall through */
614 case 63 : /* fall through */
615 case 64 : /* fall through */
616 case 65 : /* fall through */
617 case 66 : /* fall through */
618 case 67 : /* fall through */
619 case 68 : /* fall through */
620 case 69 : /* fall through */
621 case 70 : /* fall through */
622 case 71 : /* fall through */
623 case 72 : /* fall through */
624 case 73 : /* fall through */
625 case 74 : /* fall through */
626 case 75 : /* fall through */
627 case 76 : /* fall through */
628 case 77 : /* fall through */
629 case 78 : /* fall through */
630 case 79 : /* fall through */
631 case 80 : /* fall through */
632 case 81 : /* fall through */
633 case 82 : /* fall through */
634 case 83 : /* fall through */
635 case 84 : /* fall through */
636 case 85 : /* fall through */
637 case 86 : /* fall through */
638 case 87 : /* fall through */
639 case 88 : /* fall through */
640 case 89 : /* fall through */
641 case 90 : /* fall through */
642 case 91 : /* fall through */
643 case 92 : /* fall through */
644 case 93 : /* fall through */
645 case 94 : /* fall through */
646 case 95 : /* fall through */
647 case 96 : /* fall through */
648 case 97 : /* fall through */
649 case 98 : /* fall through */
650 case 99 : /* fall through */
651 case 100 : /* fall through */
652 case 101 : /* fall through */
653 case 102 : /* fall through */
654 case 103 : /* fall through */
655 case 104 : /* fall through */
656 case 105 : /* fall through */
657 case 106 : /* fall through */
658 case 107 : /* fall through */
659 case 108 : /* fall through */
660 case 109 : /* fall through */
661 case 110 : /* fall through */
662 case 111 : /* fall through */
663 case 112 : /* fall through */
664 case 113 : /* fall through */
665 case 114 : /* fall through */
666 case 115 : /* fall through */
667 case 116 : /* fall through */
668 case 117 : /* fall through */
669 case 118 : /* fall through */
670 case 119 : /* fall through */
671 case 120 : /* fall through */
672 case 121 : /* fall through */
673 case 122 : /* fall through */
674 case 123 : /* fall through */
675 case 124 : /* fall through */
676 case 125 : /* fall through */
677 case 126 : /* fall through */
679 if ((base_insn
& 0xff0) == 0x500)
680 { itype
= CRISV10F_INSN_ADDI_B_R
; goto extract_sfmt_addi_b_r
; }
681 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
684 unsigned int val
= (((insn
>> 15) & (1 << 0)));
688 if ((base_insn
& 0xffff) == 0x50f)
689 { itype
= CRISV10F_INSN_NOP
; goto extract_sfmt_nop
; }
690 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
692 if ((base_insn
& 0xff0) == 0x500)
693 { itype
= CRISV10F_INSN_ADDI_B_R
; goto extract_sfmt_addi_b_r
; }
694 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
695 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
698 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
702 if ((base_insn
& 0xff0) == 0x510)
703 { itype
= CRISV10F_INSN_ADDI_W_R
; goto extract_sfmt_addi_b_r
; }
704 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
706 if ((base_insn
& 0xff0) == 0x520)
707 { itype
= CRISV10F_INSN_ADDI_D_R
; goto extract_sfmt_addi_b_r
; }
708 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
710 if ((base_insn
& 0xff0) == 0x530)
711 { itype
= CRISV10F_INSN_SCC
; goto extract_sfmt_scc
; }
712 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
715 unsigned int val
= (((insn
>> 0) & (15 << 0)));
718 case 0 : /* fall through */
719 case 1 : /* fall through */
720 case 2 : /* fall through */
721 case 3 : /* fall through */
722 case 4 : /* fall through */
723 case 5 : /* fall through */
724 case 6 : /* fall through */
725 case 7 : /* fall through */
726 case 8 : /* fall through */
727 case 9 : /* fall through */
728 case 10 : /* fall through */
729 case 11 : /* fall through */
730 case 12 : /* fall through */
731 case 13 : /* fall through */
733 if ((base_insn
& 0xff0) == 0x540)
734 { itype
= CRISV10F_INSN_ADDI_ACR_B_R
; goto extract_sfmt_addi_acr_b_r
; }
735 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
737 if ((base_insn
& 0xfff) == 0x54f)
738 { itype
= CRISV10F_INSN_BIAP_PC_B_R
; goto extract_sfmt_biap_pc_b_r
; }
739 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
740 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
745 unsigned int val
= (((insn
>> 0) & (15 << 0)));
748 case 0 : /* fall through */
749 case 1 : /* fall through */
750 case 2 : /* fall through */
751 case 3 : /* fall through */
752 case 4 : /* fall through */
753 case 5 : /* fall through */
754 case 6 : /* fall through */
755 case 7 : /* fall through */
756 case 8 : /* fall through */
757 case 9 : /* fall through */
758 case 10 : /* fall through */
759 case 11 : /* fall through */
760 case 12 : /* fall through */
761 case 13 : /* fall through */
763 if ((base_insn
& 0xff0) == 0x550)
764 { itype
= CRISV10F_INSN_ADDI_ACR_W_R
; goto extract_sfmt_addi_acr_b_r
; }
765 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
767 if ((base_insn
& 0xfff) == 0x55f)
768 { itype
= CRISV10F_INSN_BIAP_PC_W_R
; goto extract_sfmt_biap_pc_b_r
; }
769 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
770 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
775 unsigned int val
= (((insn
>> 0) & (15 << 0)));
778 case 0 : /* fall through */
779 case 1 : /* fall through */
780 case 2 : /* fall through */
781 case 3 : /* fall through */
782 case 4 : /* fall through */
783 case 5 : /* fall through */
784 case 6 : /* fall through */
785 case 7 : /* fall through */
786 case 8 : /* fall through */
787 case 9 : /* fall through */
788 case 10 : /* fall through */
789 case 11 : /* fall through */
790 case 12 : /* fall through */
791 case 13 : /* fall through */
793 if ((base_insn
& 0xff0) == 0x560)
794 { itype
= CRISV10F_INSN_ADDI_ACR_D_R
; goto extract_sfmt_addi_acr_b_r
; }
795 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
797 if ((base_insn
& 0xfff) == 0x56f)
798 { itype
= CRISV10F_INSN_BIAP_PC_D_R
; goto extract_sfmt_biap_pc_b_r
; }
799 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
800 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
804 if ((base_insn
& 0xff0) == 0x580)
805 { itype
= CRISV10F_INSN_NEG_B_R
; goto extract_sfmt_neg_b_r
; }
806 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
808 if ((base_insn
& 0xff0) == 0x590)
809 { itype
= CRISV10F_INSN_NEG_W_R
; goto extract_sfmt_neg_b_r
; }
810 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
812 if ((base_insn
& 0xff0) == 0x5a0)
813 { itype
= CRISV10F_INSN_NEG_D_R
; goto extract_sfmt_neg_d_r
; }
814 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
816 if ((base_insn
& 0xff0) == 0x5b0)
817 { itype
= CRISV10F_INSN_SETF
; goto extract_sfmt_setf
; }
818 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
820 if ((base_insn
& 0xff0) == 0x5c0)
821 { itype
= CRISV10F_INSN_BOUND_R_B_R
; goto extract_sfmt_dstep
; }
822 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
824 if ((base_insn
& 0xff0) == 0x5d0)
825 { itype
= CRISV10F_INSN_BOUND_R_W_R
; goto extract_sfmt_dstep
; }
826 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
828 if ((base_insn
& 0xff0) == 0x5e0)
829 { itype
= CRISV10F_INSN_BOUND_R_D_R
; goto extract_sfmt_dstep
; }
830 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
832 if ((base_insn
& 0xff0) == 0x5f0)
833 { itype
= CRISV10F_INSN_CLEARF
; goto extract_sfmt_setf
; }
834 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
836 if ((base_insn
& 0xff0) == 0x600)
837 { itype
= CRISV10F_INSN_ADD_B_R
; goto extract_sfmt_add_b_r
; }
838 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
840 if ((base_insn
& 0xff0) == 0x610)
841 { itype
= CRISV10F_INSN_ADD_W_R
; goto extract_sfmt_add_b_r
; }
842 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
844 if ((base_insn
& 0xff0) == 0x620)
845 { itype
= CRISV10F_INSN_ADD_D_R
; goto extract_sfmt_add_d_r
; }
846 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
848 if ((base_insn
& 0xff0) == 0x630)
849 { itype
= CRISV10F_INSN_MOVE_R_SPRV10
; goto extract_sfmt_move_r_sprv10
; }
850 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
852 if ((base_insn
& 0xff0) == 0x640)
853 { itype
= CRISV10F_INSN_MOVE_B_R
; goto extract_sfmt_move_b_r
; }
854 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
856 if ((base_insn
& 0xff0) == 0x650)
857 { itype
= CRISV10F_INSN_MOVE_W_R
; goto extract_sfmt_move_b_r
; }
858 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
861 unsigned int val
= (((insn
>> 0) & (15 << 0)));
864 case 0 : /* fall through */
865 case 1 : /* fall through */
866 case 2 : /* fall through */
867 case 3 : /* fall through */
868 case 4 : /* fall through */
869 case 5 : /* fall through */
870 case 6 : /* fall through */
871 case 7 : /* fall through */
872 case 8 : /* fall through */
873 case 9 : /* fall through */
874 case 10 : /* fall through */
875 case 11 : /* fall through */
876 case 12 : /* fall through */
877 case 13 : /* fall through */
879 if ((base_insn
& 0xff0) == 0x660)
880 { itype
= CRISV10F_INSN_MOVE_D_R
; goto extract_sfmt_move_d_r
; }
881 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
883 if ((base_insn
& 0xfff) == 0x66f)
884 { itype
= CRISV10F_INSN_MOVEPCR
; goto extract_sfmt_movepcr
; }
885 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
886 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
891 unsigned int val
= (((insn
>> 0) & (15 << 0)));
894 case 0 : /* fall through */
895 case 1 : /* fall through */
896 case 2 : /* fall through */
897 case 3 : /* fall through */
898 case 4 : /* fall through */
899 case 5 : /* fall through */
900 case 6 : /* fall through */
901 case 7 : /* fall through */
902 case 8 : /* fall through */
903 case 9 : /* fall through */
904 case 10 : /* fall through */
905 case 11 : /* fall through */
906 case 12 : /* fall through */
907 case 13 : /* fall through */
909 if ((base_insn
& 0xff0) == 0x670)
910 { itype
= CRISV10F_INSN_MOVE_SPR_RV10
; goto extract_sfmt_move_spr_rv10
; }
911 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
913 if ((base_insn
& 0xfff) == 0x67f)
914 { itype
= CRISV10F_INSN_RET_TYPE
; goto extract_sfmt_ret_type
; }
915 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
916 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
920 if ((base_insn
& 0xff0) == 0x680)
921 { itype
= CRISV10F_INSN_SUB_B_R
; goto extract_sfmt_add_b_r
; }
922 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
924 if ((base_insn
& 0xff0) == 0x690)
925 { itype
= CRISV10F_INSN_SUB_W_R
; goto extract_sfmt_add_b_r
; }
926 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
928 if ((base_insn
& 0xff0) == 0x6a0)
929 { itype
= CRISV10F_INSN_SUB_D_R
; goto extract_sfmt_add_d_r
; }
930 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
932 if ((base_insn
& 0xff0) == 0x6b0)
933 { itype
= CRISV10F_INSN_ABS
; goto extract_sfmt_movs_b_r
; }
934 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
936 if ((base_insn
& 0xff0) == 0x6c0)
937 { itype
= CRISV10F_INSN_CMP_R_B_R
; goto extract_sfmt_cmp_r_b_r
; }
938 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
940 if ((base_insn
& 0xff0) == 0x6d0)
941 { itype
= CRISV10F_INSN_CMP_R_W_R
; goto extract_sfmt_cmp_r_b_r
; }
942 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
944 if ((base_insn
& 0xff0) == 0x6e0)
945 { itype
= CRISV10F_INSN_CMP_R_D_R
; goto extract_sfmt_cmp_r_b_r
; }
946 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
948 if ((base_insn
& 0xff0) == 0x6f0)
949 { itype
= CRISV10F_INSN_DSTEP
; goto extract_sfmt_dstep
; }
950 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
952 if ((base_insn
& 0xff0) == 0x700)
953 { itype
= CRISV10F_INSN_AND_B_R
; goto extract_sfmt_and_b_r
; }
954 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
956 if ((base_insn
& 0xff0) == 0x710)
957 { itype
= CRISV10F_INSN_AND_W_R
; goto extract_sfmt_and_w_r
; }
958 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
960 if ((base_insn
& 0xff0) == 0x720)
961 { itype
= CRISV10F_INSN_AND_D_R
; goto extract_sfmt_and_d_r
; }
962 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
964 if ((base_insn
& 0xff0) == 0x730)
965 { itype
= CRISV10F_INSN_LZ
; goto extract_sfmt_movs_b_r
; }
966 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
968 if ((base_insn
& 0xff0) == 0x740)
969 { itype
= CRISV10F_INSN_ORR_B_R
; goto extract_sfmt_and_b_r
; }
970 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
972 if ((base_insn
& 0xff0) == 0x750)
973 { itype
= CRISV10F_INSN_ORR_W_R
; goto extract_sfmt_and_w_r
; }
974 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
976 if ((base_insn
& 0xff0) == 0x760)
977 { itype
= CRISV10F_INSN_ORR_D_R
; goto extract_sfmt_and_d_r
; }
978 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
980 if ((base_insn
& 0xff0) == 0x770)
981 { itype
= CRISV10F_INSN_SWAP
; goto extract_sfmt_swap
; }
982 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
984 if ((base_insn
& 0xff0) == 0x780)
985 { itype
= CRISV10F_INSN_ASRR_B_R
; goto extract_sfmt_asrr_b_r
; }
986 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
988 if ((base_insn
& 0xff0) == 0x790)
989 { itype
= CRISV10F_INSN_ASRR_W_R
; goto extract_sfmt_asrr_b_r
; }
990 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
992 if ((base_insn
& 0xff0) == 0x7a0)
993 { itype
= CRISV10F_INSN_ASRR_D_R
; goto extract_sfmt_and_d_r
; }
994 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
996 if ((base_insn
& 0xff0) == 0x7b0)
997 { itype
= CRISV10F_INSN_XOR
; goto extract_sfmt_dstep
; }
998 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1000 if ((base_insn
& 0xff0) == 0x7c0)
1001 { itype
= CRISV10F_INSN_LSRR_B_R
; goto extract_sfmt_lsrr_b_r
; }
1002 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1004 if ((base_insn
& 0xff0) == 0x7d0)
1005 { itype
= CRISV10F_INSN_LSRR_W_R
; goto extract_sfmt_lsrr_b_r
; }
1006 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1008 if ((base_insn
& 0xff0) == 0x7e0)
1009 { itype
= CRISV10F_INSN_LSRR_D_R
; goto extract_sfmt_lsrr_d_r
; }
1010 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1012 if ((base_insn
& 0xff0) == 0x7f0)
1013 { itype
= CRISV10F_INSN_MSTEP
; goto extract_sfmt_mstep
; }
1014 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1016 if ((base_insn
& 0xbf0) == 0x800)
1017 { itype
= CRISV10F_INSN_ADDU_M_B_M
; goto extract_sfmt_adds_m_b_m
; }
1018 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1020 if ((base_insn
& 0xbf0) == 0x810)
1021 { itype
= CRISV10F_INSN_ADDU_M_W_M
; goto extract_sfmt_adds_m_w_m
; }
1022 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1024 if ((base_insn
& 0xbf0) == 0x820)
1025 { itype
= CRISV10F_INSN_ADDS_M_B_M
; goto extract_sfmt_adds_m_b_m
; }
1026 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1029 unsigned int val
= (((insn
>> 8) & (7 << 4)) | ((insn
>> 0) & (15 << 0)));
1032 case 0 : /* fall through */
1033 case 1 : /* fall through */
1034 case 2 : /* fall through */
1035 case 3 : /* fall through */
1036 case 4 : /* fall through */
1037 case 5 : /* fall through */
1038 case 6 : /* fall through */
1039 case 7 : /* fall through */
1040 case 8 : /* fall through */
1041 case 9 : /* fall through */
1042 case 10 : /* fall through */
1043 case 11 : /* fall through */
1044 case 12 : /* fall through */
1045 case 13 : /* fall through */
1046 case 14 : /* fall through */
1047 case 15 : /* fall through */
1048 case 16 : /* fall through */
1049 case 17 : /* fall through */
1050 case 18 : /* fall through */
1051 case 19 : /* fall through */
1052 case 20 : /* fall through */
1053 case 21 : /* fall through */
1054 case 22 : /* fall through */
1055 case 23 : /* fall through */
1056 case 24 : /* fall through */
1057 case 25 : /* fall through */
1058 case 26 : /* fall through */
1059 case 27 : /* fall through */
1060 case 28 : /* fall through */
1061 case 29 : /* fall through */
1062 case 30 : /* fall through */
1063 case 31 : /* fall through */
1064 case 32 : /* fall through */
1065 case 33 : /* fall through */
1066 case 34 : /* fall through */
1067 case 35 : /* fall through */
1068 case 36 : /* fall through */
1069 case 37 : /* fall through */
1070 case 38 : /* fall through */
1071 case 39 : /* fall through */
1072 case 40 : /* fall through */
1073 case 41 : /* fall through */
1074 case 42 : /* fall through */
1075 case 43 : /* fall through */
1076 case 44 : /* fall through */
1077 case 45 : /* fall through */
1078 case 46 : /* fall through */
1079 case 47 : /* fall through */
1080 case 48 : /* fall through */
1081 case 49 : /* fall through */
1082 case 50 : /* fall through */
1083 case 51 : /* fall through */
1084 case 52 : /* fall through */
1085 case 53 : /* fall through */
1086 case 54 : /* fall through */
1087 case 55 : /* fall through */
1088 case 56 : /* fall through */
1089 case 57 : /* fall through */
1090 case 58 : /* fall through */
1091 case 59 : /* fall through */
1092 case 60 : /* fall through */
1093 case 61 : /* fall through */
1094 case 62 : /* fall through */
1095 case 63 : /* fall through */
1096 case 64 : /* fall through */
1097 case 65 : /* fall through */
1098 case 66 : /* fall through */
1099 case 67 : /* fall through */
1100 case 68 : /* fall through */
1101 case 69 : /* fall through */
1102 case 70 : /* fall through */
1103 case 71 : /* fall through */
1104 case 72 : /* fall through */
1105 case 73 : /* fall through */
1106 case 74 : /* fall through */
1107 case 75 : /* fall through */
1108 case 76 : /* fall through */
1109 case 77 : /* fall through */
1110 case 78 : /* fall through */
1111 case 79 : /* fall through */
1112 case 80 : /* fall through */
1113 case 81 : /* fall through */
1114 case 82 : /* fall through */
1115 case 83 : /* fall through */
1116 case 84 : /* fall through */
1117 case 85 : /* fall through */
1118 case 86 : /* fall through */
1119 case 87 : /* fall through */
1120 case 88 : /* fall through */
1121 case 89 : /* fall through */
1122 case 90 : /* fall through */
1123 case 91 : /* fall through */
1124 case 92 : /* fall through */
1125 case 93 : /* fall through */
1126 case 94 : /* fall through */
1127 case 95 : /* fall through */
1128 case 96 : /* fall through */
1129 case 97 : /* fall through */
1130 case 98 : /* fall through */
1131 case 99 : /* fall through */
1132 case 100 : /* fall through */
1133 case 101 : /* fall through */
1134 case 102 : /* fall through */
1135 case 103 : /* fall through */
1136 case 104 : /* fall through */
1137 case 105 : /* fall through */
1138 case 106 : /* fall through */
1139 case 107 : /* fall through */
1140 case 108 : /* fall through */
1141 case 109 : /* fall through */
1142 case 110 : /* fall through */
1143 case 111 : /* fall through */
1144 case 112 : /* fall through */
1145 case 113 : /* fall through */
1146 case 114 : /* fall through */
1147 case 115 : /* fall through */
1148 case 116 : /* fall through */
1149 case 117 : /* fall through */
1150 case 118 : /* fall through */
1151 case 119 : /* fall through */
1152 case 120 : /* fall through */
1153 case 121 : /* fall through */
1154 case 122 : /* fall through */
1155 case 123 : /* fall through */
1156 case 124 : /* fall through */
1157 case 125 : /* fall through */
1159 if ((base_insn
& 0xbf0) == 0x830)
1160 { itype
= CRISV10F_INSN_ADDS_M_W_M
; goto extract_sfmt_adds_m_w_m
; }
1161 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1164 unsigned int val
= (((insn
>> 15) & (1 << 0)));
1168 if ((base_insn
& 0xbf0) == 0x830)
1169 { itype
= CRISV10F_INSN_ADDS_M_W_M
; goto extract_sfmt_adds_m_w_m
; }
1170 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1172 if ((base_insn
& 0xffff) == 0xf83f)
1173 { itype
= CRISV10F_INSN_ADDSPCPC
; goto extract_sfmt_addspcpc
; }
1174 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1175 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1178 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1182 if ((base_insn
& 0xbf0) == 0x840)
1183 { itype
= CRISV10F_INSN_MOVU_M_B_M
; goto extract_sfmt_movs_m_b_m
; }
1184 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1186 if ((base_insn
& 0xbf0) == 0x850)
1187 { itype
= CRISV10F_INSN_MOVU_M_W_M
; goto extract_sfmt_movs_m_w_m
; }
1188 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1190 if ((base_insn
& 0xbf0) == 0x860)
1191 { itype
= CRISV10F_INSN_MOVS_M_B_M
; goto extract_sfmt_movs_m_b_m
; }
1192 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1194 if ((base_insn
& 0xbf0) == 0x870)
1195 { itype
= CRISV10F_INSN_MOVS_M_W_M
; goto extract_sfmt_movs_m_w_m
; }
1196 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1198 if ((base_insn
& 0xbf0) == 0x880)
1199 { itype
= CRISV10F_INSN_SUBU_M_B_M
; goto extract_sfmt_adds_m_b_m
; }
1200 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1202 if ((base_insn
& 0xbf0) == 0x890)
1203 { itype
= CRISV10F_INSN_SUBU_M_W_M
; goto extract_sfmt_adds_m_w_m
; }
1204 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1206 if ((base_insn
& 0xbf0) == 0x8a0)
1207 { itype
= CRISV10F_INSN_SUBS_M_B_M
; goto extract_sfmt_adds_m_b_m
; }
1208 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1210 if ((base_insn
& 0xbf0) == 0x8b0)
1211 { itype
= CRISV10F_INSN_SUBS_M_W_M
; goto extract_sfmt_adds_m_w_m
; }
1212 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1214 if ((base_insn
& 0xbf0) == 0x8c0)
1215 { itype
= CRISV10F_INSN_CMPU_M_B_M
; goto extract_sfmt_cmp_m_b_m
; }
1216 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1218 if ((base_insn
& 0xbf0) == 0x8d0)
1219 { itype
= CRISV10F_INSN_CMPU_M_W_M
; goto extract_sfmt_cmp_m_w_m
; }
1220 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1222 if ((base_insn
& 0xbf0) == 0x8e0)
1223 { itype
= CRISV10F_INSN_CMPS_M_B_M
; goto extract_sfmt_cmp_m_b_m
; }
1224 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1226 if ((base_insn
& 0xbf0) == 0x8f0)
1227 { itype
= CRISV10F_INSN_CMPS_M_W_M
; goto extract_sfmt_cmp_m_w_m
; }
1228 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1230 if ((base_insn
& 0xff0) == 0x900)
1231 { itype
= CRISV10F_INSN_MULU_B
; goto extract_sfmt_muls_b
; }
1232 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1234 if ((base_insn
& 0xff0) == 0x910)
1235 { itype
= CRISV10F_INSN_MULU_W
; goto extract_sfmt_muls_b
; }
1236 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1238 if ((base_insn
& 0xff0) == 0x920)
1239 { itype
= CRISV10F_INSN_MULU_D
; goto extract_sfmt_muls_b
; }
1240 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1243 unsigned int val
= (((insn
>> 12) & (15 << 0)));
1246 case 0 : /* fall through */
1247 case 1 : /* fall through */
1248 case 2 : /* fall through */
1249 case 3 : /* fall through */
1250 case 4 : /* fall through */
1251 case 5 : /* fall through */
1252 case 6 : /* fall through */
1253 case 7 : /* fall through */
1254 case 8 : /* fall through */
1255 case 9 : /* fall through */
1256 case 10 : /* fall through */
1257 case 11 : /* fall through */
1258 case 12 : /* fall through */
1259 case 13 : /* fall through */
1261 if ((base_insn
& 0xbf0) == 0x930)
1262 { itype
= CRISV10F_INSN_JUMP_M
; goto extract_sfmt_jump_m
; }
1263 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1265 if ((base_insn
& 0xfff0) == 0xe930)
1266 { itype
= CRISV10F_INSN_BREAK
; goto extract_sfmt_break
; }
1267 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1268 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1272 if ((base_insn
& 0xbf0) == 0x940)
1273 { itype
= CRISV10F_INSN_ADDO_M_B_M
; goto extract_sfmt_addo_m_b_m
; }
1274 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1276 if ((base_insn
& 0xbf0) == 0x950)
1277 { itype
= CRISV10F_INSN_ADDO_M_W_M
; goto extract_sfmt_addo_m_w_m
; }
1278 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1280 if ((base_insn
& 0xbf0) == 0x960)
1281 { itype
= CRISV10F_INSN_ADDO_M_D_M
; goto extract_sfmt_addo_m_d_m
; }
1282 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1284 if ((base_insn
& 0xfbf0) == 0x970)
1285 { itype
= CRISV10F_INSN_DIP_M
; goto extract_sfmt_dip_m
; }
1286 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1288 if ((base_insn
& 0xff0) == 0x9b0)
1289 { itype
= CRISV10F_INSN_JUMP_R
; goto extract_sfmt_jump_r
; }
1290 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1292 if ((base_insn
& 0xbf0) == 0x9c0)
1293 { itype
= CRISV10F_INSN_BOUND_M_B_M
; goto extract_sfmt_bound_m_b_m
; }
1294 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1296 if ((base_insn
& 0xbf0) == 0x9d0)
1297 { itype
= CRISV10F_INSN_BOUND_M_W_M
; goto extract_sfmt_bound_m_w_m
; }
1298 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1300 if ((base_insn
& 0xbf0) == 0x9e0)
1301 { itype
= CRISV10F_INSN_BOUND_M_D_M
; goto extract_sfmt_bound_m_d_m
; }
1302 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1304 if ((base_insn
& 0xbf0) == 0xa00)
1305 { itype
= CRISV10F_INSN_ADD_M_B_M
; goto extract_sfmt_add_m_b_m
; }
1306 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1308 if ((base_insn
& 0xbf0) == 0xa10)
1309 { itype
= CRISV10F_INSN_ADD_M_W_M
; goto extract_sfmt_add_m_w_m
; }
1310 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1312 if ((base_insn
& 0xbf0) == 0xa20)
1313 { itype
= CRISV10F_INSN_ADD_M_D_M
; goto extract_sfmt_add_m_d_m
; }
1314 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1316 if ((base_insn
& 0xbf0) == 0xa30)
1317 { itype
= CRISV10F_INSN_MOVE_M_SPRV10
; goto extract_sfmt_move_m_sprv10
; }
1318 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1320 if ((base_insn
& 0xbf0) == 0xa40)
1321 { itype
= CRISV10F_INSN_MOVE_M_B_M
; goto extract_sfmt_move_m_b_m
; }
1322 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1324 if ((base_insn
& 0xbf0) == 0xa50)
1325 { itype
= CRISV10F_INSN_MOVE_M_W_M
; goto extract_sfmt_move_m_w_m
; }
1326 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1328 if ((base_insn
& 0xbf0) == 0xa60)
1329 { itype
= CRISV10F_INSN_MOVE_M_D_M
; goto extract_sfmt_move_m_d_m
; }
1330 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1331 case 167 : /* fall through */
1333 if ((base_insn
& 0xbf0) == 0xa70)
1334 { itype
= CRISV10F_INSN_MOVE_SPR_MV10
; goto extract_sfmt_move_spr_mv10
; }
1335 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1337 if ((base_insn
& 0xbf0) == 0xa80)
1338 { itype
= CRISV10F_INSN_SUB_M_B_M
; goto extract_sfmt_add_m_b_m
; }
1339 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1341 if ((base_insn
& 0xbf0) == 0xa90)
1342 { itype
= CRISV10F_INSN_SUB_M_W_M
; goto extract_sfmt_add_m_w_m
; }
1343 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1345 if ((base_insn
& 0xbf0) == 0xaa0)
1346 { itype
= CRISV10F_INSN_SUB_M_D_M
; goto extract_sfmt_add_m_d_m
; }
1347 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1349 if ((base_insn
& 0xbf0) == 0xac0)
1350 { itype
= CRISV10F_INSN_CMP_M_B_M
; goto extract_sfmt_cmp_m_b_m
; }
1351 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1353 if ((base_insn
& 0xbf0) == 0xad0)
1354 { itype
= CRISV10F_INSN_CMP_M_W_M
; goto extract_sfmt_cmp_m_w_m
; }
1355 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1357 if ((base_insn
& 0xbf0) == 0xae0)
1358 { itype
= CRISV10F_INSN_CMP_M_D_M
; goto extract_sfmt_cmp_m_d_m
; }
1359 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1361 if ((base_insn
& 0xbf0) == 0xb00)
1362 { itype
= CRISV10F_INSN_AND_M_B_M
; goto extract_sfmt_and_m_b_m
; }
1363 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1365 if ((base_insn
& 0xbf0) == 0xb10)
1366 { itype
= CRISV10F_INSN_AND_M_W_M
; goto extract_sfmt_and_m_w_m
; }
1367 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1369 if ((base_insn
& 0xbf0) == 0xb20)
1370 { itype
= CRISV10F_INSN_AND_M_D_M
; goto extract_sfmt_and_m_d_m
; }
1371 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1373 if ((base_insn
& 0xbf0) == 0xb40)
1374 { itype
= CRISV10F_INSN_OR_M_B_M
; goto extract_sfmt_and_m_b_m
; }
1375 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1377 if ((base_insn
& 0xbf0) == 0xb50)
1378 { itype
= CRISV10F_INSN_OR_M_W_M
; goto extract_sfmt_and_m_w_m
; }
1379 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1381 if ((base_insn
& 0xbf0) == 0xb60)
1382 { itype
= CRISV10F_INSN_OR_M_D_M
; goto extract_sfmt_and_m_d_m
; }
1383 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1384 case 183 : /* fall through */
1386 if ((base_insn
& 0xfbf0) == 0x3b70)
1387 { itype
= CRISV10F_INSN_SBFS
; goto extract_sfmt_sbfs
; }
1388 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1389 case 184 : /* fall through */
1391 if ((base_insn
& 0xfbf0) == 0xb80)
1392 { itype
= CRISV10F_INSN_TEST_M_B_M
; goto extract_sfmt_test_m_b_m
; }
1393 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1394 case 185 : /* fall through */
1396 if ((base_insn
& 0xfbf0) == 0xb90)
1397 { itype
= CRISV10F_INSN_TEST_M_W_M
; goto extract_sfmt_test_m_w_m
; }
1398 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1399 case 186 : /* fall through */
1401 if ((base_insn
& 0xfbf0) == 0xba0)
1402 { itype
= CRISV10F_INSN_TEST_M_D_M
; goto extract_sfmt_test_m_d_m
; }
1403 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1404 case 187 : /* fall through */
1407 unsigned int val
= (((insn
>> 12) & (15 << 0)));
1410 case 0 : /* fall through */
1411 case 1 : /* fall through */
1412 case 2 : /* fall through */
1413 case 3 : /* fall through */
1414 case 4 : /* fall through */
1415 case 5 : /* fall through */
1416 case 6 : /* fall through */
1417 case 7 : /* fall through */
1418 case 8 : /* fall through */
1419 case 9 : /* fall through */
1420 case 10 : /* fall through */
1421 case 11 : /* fall through */
1422 case 12 : /* fall through */
1423 case 13 : /* fall through */
1425 if ((base_insn
& 0xbf0) == 0xbb0)
1426 { itype
= CRISV10F_INSN_MOVEM_M_R
; goto extract_sfmt_movem_m_r
; }
1427 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1429 if ((base_insn
& 0xfbf0) == 0xfbb0)
1430 { itype
= CRISV10F_INSN_MOVEM_M_PC
; goto extract_sfmt_movem_m_pc
; }
1431 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1432 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1435 case 188 : /* fall through */
1437 if ((base_insn
& 0xbf0) == 0xbc0)
1438 { itype
= CRISV10F_INSN_MOVE_R_M_B_M
; goto extract_sfmt_move_r_m_b_m
; }
1439 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1440 case 189 : /* fall through */
1442 if ((base_insn
& 0xbf0) == 0xbd0)
1443 { itype
= CRISV10F_INSN_MOVE_R_M_W_M
; goto extract_sfmt_move_r_m_w_m
; }
1444 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1445 case 190 : /* fall through */
1447 if ((base_insn
& 0xbf0) == 0xbe0)
1448 { itype
= CRISV10F_INSN_MOVE_R_M_D_M
; goto extract_sfmt_move_r_m_d_m
; }
1449 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1450 case 191 : /* fall through */
1452 if ((base_insn
& 0xbf0) == 0xbf0)
1453 { itype
= CRISV10F_INSN_MOVEM_R_M
; goto extract_sfmt_movem_r_m
; }
1454 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1457 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1460 case 0 : /* fall through */
1461 case 1 : /* fall through */
1462 case 2 : /* fall through */
1463 case 3 : /* fall through */
1464 case 4 : /* fall through */
1465 case 5 : /* fall through */
1466 case 6 : /* fall through */
1467 case 7 : /* fall through */
1468 case 8 : /* fall through */
1469 case 9 : /* fall through */
1470 case 10 : /* fall through */
1471 case 11 : /* fall through */
1472 case 12 : /* fall through */
1473 case 13 : /* fall through */
1475 if ((base_insn
& 0xbf0) == 0x800)
1476 { itype
= CRISV10F_INSN_ADDU_M_B_M
; goto extract_sfmt_adds_m_b_m
; }
1477 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1479 if ((base_insn
& 0xfff) == 0xc0f)
1480 { itype
= CRISV10F_INSN_ADDUCBR
; goto extract_sfmt_addscbr
; }
1481 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1482 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1487 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1490 case 0 : /* fall through */
1491 case 1 : /* fall through */
1492 case 2 : /* fall through */
1493 case 3 : /* fall through */
1494 case 4 : /* fall through */
1495 case 5 : /* fall through */
1496 case 6 : /* fall through */
1497 case 7 : /* fall through */
1498 case 8 : /* fall through */
1499 case 9 : /* fall through */
1500 case 10 : /* fall through */
1501 case 11 : /* fall through */
1502 case 12 : /* fall through */
1503 case 13 : /* fall through */
1505 if ((base_insn
& 0xbf0) == 0x810)
1506 { itype
= CRISV10F_INSN_ADDU_M_W_M
; goto extract_sfmt_adds_m_w_m
; }
1507 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1509 if ((base_insn
& 0xfff) == 0xc1f)
1510 { itype
= CRISV10F_INSN_ADDUCWR
; goto extract_sfmt_addscwr
; }
1511 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1512 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1517 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1520 case 0 : /* fall through */
1521 case 1 : /* fall through */
1522 case 2 : /* fall through */
1523 case 3 : /* fall through */
1524 case 4 : /* fall through */
1525 case 5 : /* fall through */
1526 case 6 : /* fall through */
1527 case 7 : /* fall through */
1528 case 8 : /* fall through */
1529 case 9 : /* fall through */
1530 case 10 : /* fall through */
1531 case 11 : /* fall through */
1532 case 12 : /* fall through */
1533 case 13 : /* fall through */
1535 if ((base_insn
& 0xbf0) == 0x820)
1536 { itype
= CRISV10F_INSN_ADDS_M_B_M
; goto extract_sfmt_adds_m_b_m
; }
1537 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1539 if ((base_insn
& 0xfff) == 0xc2f)
1540 { itype
= CRISV10F_INSN_ADDSCBR
; goto extract_sfmt_addscbr
; }
1541 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1542 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1547 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1550 case 0 : /* fall through */
1551 case 1 : /* fall through */
1552 case 2 : /* fall through */
1553 case 3 : /* fall through */
1554 case 4 : /* fall through */
1555 case 5 : /* fall through */
1556 case 6 : /* fall through */
1557 case 7 : /* fall through */
1558 case 8 : /* fall through */
1559 case 9 : /* fall through */
1560 case 10 : /* fall through */
1561 case 11 : /* fall through */
1562 case 12 : /* fall through */
1563 case 13 : /* fall through */
1565 if ((base_insn
& 0xbf0) == 0x830)
1566 { itype
= CRISV10F_INSN_ADDS_M_W_M
; goto extract_sfmt_adds_m_w_m
; }
1567 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1569 if ((base_insn
& 0xfff) == 0xc3f)
1570 { itype
= CRISV10F_INSN_ADDSCWR
; goto extract_sfmt_addscwr
; }
1571 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1572 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1577 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1580 case 0 : /* fall through */
1581 case 1 : /* fall through */
1582 case 2 : /* fall through */
1583 case 3 : /* fall through */
1584 case 4 : /* fall through */
1585 case 5 : /* fall through */
1586 case 6 : /* fall through */
1587 case 7 : /* fall through */
1588 case 8 : /* fall through */
1589 case 9 : /* fall through */
1590 case 10 : /* fall through */
1591 case 11 : /* fall through */
1592 case 12 : /* fall through */
1593 case 13 : /* fall through */
1595 if ((base_insn
& 0xbf0) == 0x840)
1596 { itype
= CRISV10F_INSN_MOVU_M_B_M
; goto extract_sfmt_movs_m_b_m
; }
1597 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1599 if ((base_insn
& 0xfff) == 0xc4f)
1600 { itype
= CRISV10F_INSN_MOVUCBR
; goto extract_sfmt_movucbr
; }
1601 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1602 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1607 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1610 case 0 : /* fall through */
1611 case 1 : /* fall through */
1612 case 2 : /* fall through */
1613 case 3 : /* fall through */
1614 case 4 : /* fall through */
1615 case 5 : /* fall through */
1616 case 6 : /* fall through */
1617 case 7 : /* fall through */
1618 case 8 : /* fall through */
1619 case 9 : /* fall through */
1620 case 10 : /* fall through */
1621 case 11 : /* fall through */
1622 case 12 : /* fall through */
1623 case 13 : /* fall through */
1625 if ((base_insn
& 0xbf0) == 0x850)
1626 { itype
= CRISV10F_INSN_MOVU_M_W_M
; goto extract_sfmt_movs_m_w_m
; }
1627 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1629 if ((base_insn
& 0xfff) == 0xc5f)
1630 { itype
= CRISV10F_INSN_MOVUCWR
; goto extract_sfmt_movucwr
; }
1631 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1632 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1637 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1640 case 0 : /* fall through */
1641 case 1 : /* fall through */
1642 case 2 : /* fall through */
1643 case 3 : /* fall through */
1644 case 4 : /* fall through */
1645 case 5 : /* fall through */
1646 case 6 : /* fall through */
1647 case 7 : /* fall through */
1648 case 8 : /* fall through */
1649 case 9 : /* fall through */
1650 case 10 : /* fall through */
1651 case 11 : /* fall through */
1652 case 12 : /* fall through */
1653 case 13 : /* fall through */
1655 if ((base_insn
& 0xbf0) == 0x860)
1656 { itype
= CRISV10F_INSN_MOVS_M_B_M
; goto extract_sfmt_movs_m_b_m
; }
1657 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1659 if ((base_insn
& 0xfff) == 0xc6f)
1660 { itype
= CRISV10F_INSN_MOVSCBR
; goto extract_sfmt_movscbr
; }
1661 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1662 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1667 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1670 case 0 : /* fall through */
1671 case 1 : /* fall through */
1672 case 2 : /* fall through */
1673 case 3 : /* fall through */
1674 case 4 : /* fall through */
1675 case 5 : /* fall through */
1676 case 6 : /* fall through */
1677 case 7 : /* fall through */
1678 case 8 : /* fall through */
1679 case 9 : /* fall through */
1680 case 10 : /* fall through */
1681 case 11 : /* fall through */
1682 case 12 : /* fall through */
1683 case 13 : /* fall through */
1685 if ((base_insn
& 0xbf0) == 0x870)
1686 { itype
= CRISV10F_INSN_MOVS_M_W_M
; goto extract_sfmt_movs_m_w_m
; }
1687 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1689 if ((base_insn
& 0xfff) == 0xc7f)
1690 { itype
= CRISV10F_INSN_MOVSCWR
; goto extract_sfmt_movscwr
; }
1691 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1692 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1697 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1700 case 0 : /* fall through */
1701 case 1 : /* fall through */
1702 case 2 : /* fall through */
1703 case 3 : /* fall through */
1704 case 4 : /* fall through */
1705 case 5 : /* fall through */
1706 case 6 : /* fall through */
1707 case 7 : /* fall through */
1708 case 8 : /* fall through */
1709 case 9 : /* fall through */
1710 case 10 : /* fall through */
1711 case 11 : /* fall through */
1712 case 12 : /* fall through */
1713 case 13 : /* fall through */
1715 if ((base_insn
& 0xbf0) == 0x880)
1716 { itype
= CRISV10F_INSN_SUBU_M_B_M
; goto extract_sfmt_adds_m_b_m
; }
1717 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1719 if ((base_insn
& 0xfff) == 0xc8f)
1720 { itype
= CRISV10F_INSN_SUBUCBR
; goto extract_sfmt_addscbr
; }
1721 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1722 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1727 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1730 case 0 : /* fall through */
1731 case 1 : /* fall through */
1732 case 2 : /* fall through */
1733 case 3 : /* fall through */
1734 case 4 : /* fall through */
1735 case 5 : /* fall through */
1736 case 6 : /* fall through */
1737 case 7 : /* fall through */
1738 case 8 : /* fall through */
1739 case 9 : /* fall through */
1740 case 10 : /* fall through */
1741 case 11 : /* fall through */
1742 case 12 : /* fall through */
1743 case 13 : /* fall through */
1745 if ((base_insn
& 0xbf0) == 0x890)
1746 { itype
= CRISV10F_INSN_SUBU_M_W_M
; goto extract_sfmt_adds_m_w_m
; }
1747 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1749 if ((base_insn
& 0xfff) == 0xc9f)
1750 { itype
= CRISV10F_INSN_SUBUCWR
; goto extract_sfmt_addscwr
; }
1751 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1752 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1757 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1760 case 0 : /* fall through */
1761 case 1 : /* fall through */
1762 case 2 : /* fall through */
1763 case 3 : /* fall through */
1764 case 4 : /* fall through */
1765 case 5 : /* fall through */
1766 case 6 : /* fall through */
1767 case 7 : /* fall through */
1768 case 8 : /* fall through */
1769 case 9 : /* fall through */
1770 case 10 : /* fall through */
1771 case 11 : /* fall through */
1772 case 12 : /* fall through */
1773 case 13 : /* fall through */
1775 if ((base_insn
& 0xbf0) == 0x8a0)
1776 { itype
= CRISV10F_INSN_SUBS_M_B_M
; goto extract_sfmt_adds_m_b_m
; }
1777 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1779 if ((base_insn
& 0xfff) == 0xcaf)
1780 { itype
= CRISV10F_INSN_SUBSCBR
; goto extract_sfmt_addscbr
; }
1781 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1782 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1787 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1790 case 0 : /* fall through */
1791 case 1 : /* fall through */
1792 case 2 : /* fall through */
1793 case 3 : /* fall through */
1794 case 4 : /* fall through */
1795 case 5 : /* fall through */
1796 case 6 : /* fall through */
1797 case 7 : /* fall through */
1798 case 8 : /* fall through */
1799 case 9 : /* fall through */
1800 case 10 : /* fall through */
1801 case 11 : /* fall through */
1802 case 12 : /* fall through */
1803 case 13 : /* fall through */
1805 if ((base_insn
& 0xbf0) == 0x8b0)
1806 { itype
= CRISV10F_INSN_SUBS_M_W_M
; goto extract_sfmt_adds_m_w_m
; }
1807 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1809 if ((base_insn
& 0xfff) == 0xcbf)
1810 { itype
= CRISV10F_INSN_SUBSCWR
; goto extract_sfmt_addscwr
; }
1811 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1812 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1817 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1820 case 0 : /* fall through */
1821 case 1 : /* fall through */
1822 case 2 : /* fall through */
1823 case 3 : /* fall through */
1824 case 4 : /* fall through */
1825 case 5 : /* fall through */
1826 case 6 : /* fall through */
1827 case 7 : /* fall through */
1828 case 8 : /* fall through */
1829 case 9 : /* fall through */
1830 case 10 : /* fall through */
1831 case 11 : /* fall through */
1832 case 12 : /* fall through */
1833 case 13 : /* fall through */
1835 if ((base_insn
& 0xbf0) == 0x8c0)
1836 { itype
= CRISV10F_INSN_CMPU_M_B_M
; goto extract_sfmt_cmp_m_b_m
; }
1837 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1839 if ((base_insn
& 0xfff) == 0xccf)
1840 { itype
= CRISV10F_INSN_CMPUCBR
; goto extract_sfmt_cmpucbr
; }
1841 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1842 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1847 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1850 case 0 : /* fall through */
1851 case 1 : /* fall through */
1852 case 2 : /* fall through */
1853 case 3 : /* fall through */
1854 case 4 : /* fall through */
1855 case 5 : /* fall through */
1856 case 6 : /* fall through */
1857 case 7 : /* fall through */
1858 case 8 : /* fall through */
1859 case 9 : /* fall through */
1860 case 10 : /* fall through */
1861 case 11 : /* fall through */
1862 case 12 : /* fall through */
1863 case 13 : /* fall through */
1865 if ((base_insn
& 0xbf0) == 0x8d0)
1866 { itype
= CRISV10F_INSN_CMPU_M_W_M
; goto extract_sfmt_cmp_m_w_m
; }
1867 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1869 if ((base_insn
& 0xfff) == 0xcdf)
1870 { itype
= CRISV10F_INSN_CMPUCWR
; goto extract_sfmt_cmpucwr
; }
1871 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1872 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1877 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1880 case 0 : /* fall through */
1881 case 1 : /* fall through */
1882 case 2 : /* fall through */
1883 case 3 : /* fall through */
1884 case 4 : /* fall through */
1885 case 5 : /* fall through */
1886 case 6 : /* fall through */
1887 case 7 : /* fall through */
1888 case 8 : /* fall through */
1889 case 9 : /* fall through */
1890 case 10 : /* fall through */
1891 case 11 : /* fall through */
1892 case 12 : /* fall through */
1893 case 13 : /* fall through */
1895 if ((base_insn
& 0xbf0) == 0x8e0)
1896 { itype
= CRISV10F_INSN_CMPS_M_B_M
; goto extract_sfmt_cmp_m_b_m
; }
1897 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1899 if ((base_insn
& 0xfff) == 0xcef)
1900 { itype
= CRISV10F_INSN_CMPSCBR
; goto extract_sfmt_cmpcbr
; }
1901 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1902 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1907 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1910 case 0 : /* fall through */
1911 case 1 : /* fall through */
1912 case 2 : /* fall through */
1913 case 3 : /* fall through */
1914 case 4 : /* fall through */
1915 case 5 : /* fall through */
1916 case 6 : /* fall through */
1917 case 7 : /* fall through */
1918 case 8 : /* fall through */
1919 case 9 : /* fall through */
1920 case 10 : /* fall through */
1921 case 11 : /* fall through */
1922 case 12 : /* fall through */
1923 case 13 : /* fall through */
1925 if ((base_insn
& 0xbf0) == 0x8f0)
1926 { itype
= CRISV10F_INSN_CMPS_M_W_M
; goto extract_sfmt_cmp_m_w_m
; }
1927 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1929 if ((base_insn
& 0xfff) == 0xcff)
1930 { itype
= CRISV10F_INSN_CMPSCWR
; goto extract_sfmt_cmpcwr
; }
1931 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1932 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1936 if ((base_insn
& 0xff0) == 0xd00)
1937 { itype
= CRISV10F_INSN_MULS_B
; goto extract_sfmt_muls_b
; }
1938 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1940 if ((base_insn
& 0xff0) == 0xd10)
1941 { itype
= CRISV10F_INSN_MULS_W
; goto extract_sfmt_muls_b
; }
1942 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1944 if ((base_insn
& 0xff0) == 0xd20)
1945 { itype
= CRISV10F_INSN_MULS_D
; goto extract_sfmt_muls_b
; }
1946 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1949 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1952 case 0 : /* fall through */
1953 case 1 : /* fall through */
1954 case 2 : /* fall through */
1955 case 3 : /* fall through */
1956 case 4 : /* fall through */
1957 case 5 : /* fall through */
1958 case 6 : /* fall through */
1959 case 7 : /* fall through */
1960 case 8 : /* fall through */
1961 case 9 : /* fall through */
1962 case 10 : /* fall through */
1963 case 11 : /* fall through */
1964 case 12 : /* fall through */
1965 case 13 : /* fall through */
1967 if ((base_insn
& 0xbf0) == 0x930)
1968 { itype
= CRISV10F_INSN_JUMP_M
; goto extract_sfmt_jump_m
; }
1969 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1971 if ((base_insn
& 0xfff) == 0xd3f)
1972 { itype
= CRISV10F_INSN_JUMP_C
; goto extract_sfmt_jump_c
; }
1973 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1974 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
1979 unsigned int val
= (((insn
>> 0) & (15 << 0)));
1982 case 0 : /* fall through */
1983 case 1 : /* fall through */
1984 case 2 : /* fall through */
1985 case 3 : /* fall through */
1986 case 4 : /* fall through */
1987 case 5 : /* fall through */
1988 case 6 : /* fall through */
1989 case 7 : /* fall through */
1990 case 8 : /* fall through */
1991 case 9 : /* fall through */
1992 case 10 : /* fall through */
1993 case 11 : /* fall through */
1994 case 12 : /* fall through */
1995 case 13 : /* fall through */
1997 if ((base_insn
& 0xbf0) == 0x940)
1998 { itype
= CRISV10F_INSN_ADDO_M_B_M
; goto extract_sfmt_addo_m_b_m
; }
1999 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2001 if ((base_insn
& 0xfff) == 0xd4f)
2002 { itype
= CRISV10F_INSN_ADDO_CB
; goto extract_sfmt_addo_cb
; }
2003 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2004 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2009 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2012 case 0 : /* fall through */
2013 case 1 : /* fall through */
2014 case 2 : /* fall through */
2015 case 3 : /* fall through */
2016 case 4 : /* fall through */
2017 case 5 : /* fall through */
2018 case 6 : /* fall through */
2019 case 7 : /* fall through */
2020 case 8 : /* fall through */
2021 case 9 : /* fall through */
2022 case 10 : /* fall through */
2023 case 11 : /* fall through */
2024 case 12 : /* fall through */
2025 case 13 : /* fall through */
2027 if ((base_insn
& 0xbf0) == 0x950)
2028 { itype
= CRISV10F_INSN_ADDO_M_W_M
; goto extract_sfmt_addo_m_w_m
; }
2029 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2031 if ((base_insn
& 0xfff) == 0xd5f)
2032 { itype
= CRISV10F_INSN_ADDO_CW
; goto extract_sfmt_addo_cw
; }
2033 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2034 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2039 unsigned int val
= (((insn
>> 12) & (15 << 0)));
2042 case 0 : /* fall through */
2043 case 1 : /* fall through */
2044 case 2 : /* fall through */
2045 case 3 : /* fall through */
2046 case 4 : /* fall through */
2047 case 5 : /* fall through */
2048 case 6 : /* fall through */
2049 case 7 : /* fall through */
2050 case 8 : /* fall through */
2051 case 9 : /* fall through */
2052 case 10 : /* fall through */
2053 case 11 : /* fall through */
2054 case 12 : /* fall through */
2055 case 13 : /* fall through */
2058 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2061 case 0 : /* fall through */
2062 case 1 : /* fall through */
2063 case 2 : /* fall through */
2064 case 3 : /* fall through */
2065 case 4 : /* fall through */
2066 case 5 : /* fall through */
2067 case 6 : /* fall through */
2068 case 7 : /* fall through */
2069 case 8 : /* fall through */
2070 case 9 : /* fall through */
2071 case 10 : /* fall through */
2072 case 11 : /* fall through */
2073 case 12 : /* fall through */
2074 case 13 : /* fall through */
2076 if ((base_insn
& 0xbf0) == 0x960)
2077 { itype
= CRISV10F_INSN_ADDO_M_D_M
; goto extract_sfmt_addo_m_d_m
; }
2078 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2080 if ((base_insn
& 0xfff) == 0xd6f)
2081 { itype
= CRISV10F_INSN_ADDO_CD
; goto extract_sfmt_addo_cd
; }
2082 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2083 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2088 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2091 case 0 : /* fall through */
2092 case 1 : /* fall through */
2093 case 2 : /* fall through */
2094 case 3 : /* fall through */
2095 case 4 : /* fall through */
2096 case 5 : /* fall through */
2097 case 6 : /* fall through */
2098 case 7 : /* fall through */
2099 case 8 : /* fall through */
2100 case 9 : /* fall through */
2101 case 10 : /* fall through */
2102 case 11 : /* fall through */
2103 case 12 : /* fall through */
2104 case 13 : /* fall through */
2106 if ((base_insn
& 0xbf0) == 0x960)
2107 { itype
= CRISV10F_INSN_ADDO_M_D_M
; goto extract_sfmt_addo_m_d_m
; }
2108 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2110 if ((base_insn
& 0xffff) == 0xfd6f)
2111 { itype
= CRISV10F_INSN_BDAP_32_PC
; goto extract_sfmt_bdap_32_pc
; }
2112 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2113 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2116 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2121 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2124 case 0 : /* fall through */
2125 case 1 : /* fall through */
2126 case 2 : /* fall through */
2127 case 3 : /* fall through */
2128 case 4 : /* fall through */
2129 case 5 : /* fall through */
2130 case 6 : /* fall through */
2131 case 7 : /* fall through */
2132 case 8 : /* fall through */
2133 case 9 : /* fall through */
2134 case 10 : /* fall through */
2135 case 11 : /* fall through */
2136 case 12 : /* fall through */
2137 case 13 : /* fall through */
2139 if ((base_insn
& 0xfbf0) == 0x970)
2140 { itype
= CRISV10F_INSN_DIP_M
; goto extract_sfmt_dip_m
; }
2141 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2143 if ((base_insn
& 0xffff) == 0xd7f)
2144 { itype
= CRISV10F_INSN_DIP_C
; goto extract_sfmt_dip_c
; }
2145 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2146 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2151 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2154 case 0 : /* fall through */
2155 case 1 : /* fall through */
2156 case 2 : /* fall through */
2157 case 3 : /* fall through */
2158 case 4 : /* fall through */
2159 case 5 : /* fall through */
2160 case 6 : /* fall through */
2161 case 7 : /* fall through */
2162 case 8 : /* fall through */
2163 case 9 : /* fall through */
2164 case 10 : /* fall through */
2165 case 11 : /* fall through */
2166 case 12 : /* fall through */
2167 case 13 : /* fall through */
2169 if ((base_insn
& 0xbf0) == 0x9c0)
2170 { itype
= CRISV10F_INSN_BOUND_M_B_M
; goto extract_sfmt_bound_m_b_m
; }
2171 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2173 if ((base_insn
& 0xfff) == 0xdcf)
2174 { itype
= CRISV10F_INSN_BOUND_CB
; goto extract_sfmt_bound_cb
; }
2175 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2176 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2181 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2184 case 0 : /* fall through */
2185 case 1 : /* fall through */
2186 case 2 : /* fall through */
2187 case 3 : /* fall through */
2188 case 4 : /* fall through */
2189 case 5 : /* fall through */
2190 case 6 : /* fall through */
2191 case 7 : /* fall through */
2192 case 8 : /* fall through */
2193 case 9 : /* fall through */
2194 case 10 : /* fall through */
2195 case 11 : /* fall through */
2196 case 12 : /* fall through */
2197 case 13 : /* fall through */
2199 if ((base_insn
& 0xbf0) == 0x9d0)
2200 { itype
= CRISV10F_INSN_BOUND_M_W_M
; goto extract_sfmt_bound_m_w_m
; }
2201 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2203 if ((base_insn
& 0xfff) == 0xddf)
2204 { itype
= CRISV10F_INSN_BOUND_CW
; goto extract_sfmt_bound_cw
; }
2205 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2206 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2211 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2214 case 0 : /* fall through */
2215 case 1 : /* fall through */
2216 case 2 : /* fall through */
2217 case 3 : /* fall through */
2218 case 4 : /* fall through */
2219 case 5 : /* fall through */
2220 case 6 : /* fall through */
2221 case 7 : /* fall through */
2222 case 8 : /* fall through */
2223 case 9 : /* fall through */
2224 case 10 : /* fall through */
2225 case 11 : /* fall through */
2226 case 12 : /* fall through */
2227 case 13 : /* fall through */
2229 if ((base_insn
& 0xbf0) == 0x9e0)
2230 { itype
= CRISV10F_INSN_BOUND_M_D_M
; goto extract_sfmt_bound_m_d_m
; }
2231 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2233 if ((base_insn
& 0xfff) == 0xdef)
2234 { itype
= CRISV10F_INSN_BOUND_CD
; goto extract_sfmt_bound_cd
; }
2235 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2236 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2241 unsigned int val
= (((insn
>> 12) & (15 << 0)));
2244 case 0 : /* fall through */
2245 case 1 : /* fall through */
2246 case 2 : /* fall through */
2247 case 3 : /* fall through */
2248 case 4 : /* fall through */
2249 case 5 : /* fall through */
2250 case 6 : /* fall through */
2251 case 7 : /* fall through */
2252 case 8 : /* fall through */
2253 case 9 : /* fall through */
2254 case 10 : /* fall through */
2255 case 11 : /* fall through */
2256 case 12 : /* fall through */
2257 case 13 : /* fall through */
2259 if ((base_insn
& 0xfff) == 0xdff)
2260 { itype
= CRISV10F_INSN_BCC_W
; goto extract_sfmt_bcc_w
; }
2261 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2263 if ((base_insn
& 0xffff) == 0xedff)
2264 { itype
= CRISV10F_INSN_BA_W
; goto extract_sfmt_ba_w
; }
2265 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2266 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2271 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2274 case 0 : /* fall through */
2275 case 1 : /* fall through */
2276 case 2 : /* fall through */
2277 case 3 : /* fall through */
2278 case 4 : /* fall through */
2279 case 5 : /* fall through */
2280 case 6 : /* fall through */
2281 case 7 : /* fall through */
2282 case 8 : /* fall through */
2283 case 9 : /* fall through */
2284 case 10 : /* fall through */
2285 case 11 : /* fall through */
2286 case 12 : /* fall through */
2287 case 13 : /* fall through */
2289 if ((base_insn
& 0xbf0) == 0xa00)
2290 { itype
= CRISV10F_INSN_ADD_M_B_M
; goto extract_sfmt_add_m_b_m
; }
2291 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2293 if ((base_insn
& 0xfff) == 0xe0f)
2294 { itype
= CRISV10F_INSN_ADDCBR
; goto extract_sfmt_addcbr
; }
2295 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2296 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2301 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2304 case 0 : /* fall through */
2305 case 1 : /* fall through */
2306 case 2 : /* fall through */
2307 case 3 : /* fall through */
2308 case 4 : /* fall through */
2309 case 5 : /* fall through */
2310 case 6 : /* fall through */
2311 case 7 : /* fall through */
2312 case 8 : /* fall through */
2313 case 9 : /* fall through */
2314 case 10 : /* fall through */
2315 case 11 : /* fall through */
2316 case 12 : /* fall through */
2317 case 13 : /* fall through */
2319 if ((base_insn
& 0xbf0) == 0xa10)
2320 { itype
= CRISV10F_INSN_ADD_M_W_M
; goto extract_sfmt_add_m_w_m
; }
2321 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2323 if ((base_insn
& 0xfff) == 0xe1f)
2324 { itype
= CRISV10F_INSN_ADDCWR
; goto extract_sfmt_addcwr
; }
2325 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2326 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2331 unsigned int val
= (((insn
>> 12) & (15 << 0)));
2334 case 0 : /* fall through */
2335 case 1 : /* fall through */
2336 case 2 : /* fall through */
2337 case 3 : /* fall through */
2338 case 4 : /* fall through */
2339 case 5 : /* fall through */
2340 case 6 : /* fall through */
2341 case 7 : /* fall through */
2342 case 8 : /* fall through */
2343 case 9 : /* fall through */
2344 case 10 : /* fall through */
2345 case 11 : /* fall through */
2346 case 12 : /* fall through */
2347 case 13 : /* fall through */
2350 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2353 case 0 : /* fall through */
2354 case 1 : /* fall through */
2355 case 2 : /* fall through */
2356 case 3 : /* fall through */
2357 case 4 : /* fall through */
2358 case 5 : /* fall through */
2359 case 6 : /* fall through */
2360 case 7 : /* fall through */
2361 case 8 : /* fall through */
2362 case 9 : /* fall through */
2363 case 10 : /* fall through */
2364 case 11 : /* fall through */
2365 case 12 : /* fall through */
2366 case 13 : /* fall through */
2368 if ((base_insn
& 0xbf0) == 0xa20)
2369 { itype
= CRISV10F_INSN_ADD_M_D_M
; goto extract_sfmt_add_m_d_m
; }
2370 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2372 if ((base_insn
& 0xfff) == 0xe2f)
2373 { itype
= CRISV10F_INSN_ADDCDR
; goto extract_sfmt_addcdr
; }
2374 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2375 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2380 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2383 case 0 : /* fall through */
2384 case 1 : /* fall through */
2385 case 2 : /* fall through */
2386 case 3 : /* fall through */
2387 case 4 : /* fall through */
2388 case 5 : /* fall through */
2389 case 6 : /* fall through */
2390 case 7 : /* fall through */
2391 case 8 : /* fall through */
2392 case 9 : /* fall through */
2393 case 10 : /* fall through */
2394 case 11 : /* fall through */
2395 case 12 : /* fall through */
2396 case 13 : /* fall through */
2398 if ((base_insn
& 0xbf0) == 0xa20)
2399 { itype
= CRISV10F_INSN_ADD_M_D_M
; goto extract_sfmt_add_m_d_m
; }
2400 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2402 if ((base_insn
& 0xffff) == 0xfe2f)
2403 { itype
= CRISV10F_INSN_ADDCPC
; goto extract_sfmt_addcpc
; }
2404 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2405 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2408 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2413 unsigned int val
= (((insn
>> 11) & (15 << 1)) | ((insn
>> 0) & (1 << 0)));
2416 case 0 : /* fall through */
2417 case 2 : /* fall through */
2418 case 3 : /* fall through */
2419 case 4 : /* fall through */
2420 case 5 : /* fall through */
2421 case 6 : /* fall through */
2422 case 7 : /* fall through */
2423 case 8 : /* fall through */
2424 case 9 : /* fall through */
2425 case 10 : /* fall through */
2426 case 12 : /* fall through */
2427 case 13 : /* fall through */
2428 case 14 : /* fall through */
2429 case 17 : /* fall through */
2430 case 18 : /* fall through */
2431 case 20 : /* fall through */
2432 case 22 : /* fall through */
2433 case 24 : /* fall through */
2434 case 26 : /* fall through */
2435 case 28 : /* fall through */
2437 if ((base_insn
& 0xbf0) == 0xa30)
2438 { itype
= CRISV10F_INSN_MOVE_M_SPRV10
; goto extract_sfmt_move_m_sprv10
; }
2439 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2442 unsigned int val
= (((insn
>> 1) & (7 << 0)));
2445 case 0 : /* fall through */
2446 case 1 : /* fall through */
2447 case 2 : /* fall through */
2448 case 3 : /* fall through */
2449 case 4 : /* fall through */
2450 case 5 : /* fall through */
2452 if ((base_insn
& 0xbf0) == 0xa30)
2453 { itype
= CRISV10F_INSN_MOVE_M_SPRV10
; goto extract_sfmt_move_m_sprv10
; }
2454 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2456 if ((base_insn
& 0xffff) == 0xe3f)
2457 { itype
= CRISV10F_INSN_MOVE_M_PCPLUS_P0
; goto extract_sfmt_move_m_pcplus_p0
; }
2458 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2459 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2464 unsigned int val
= (((insn
>> 1) & (7 << 0)));
2467 case 0 : /* fall through */
2468 case 1 : /* fall through */
2469 case 2 : /* fall through */
2470 case 3 : /* fall through */
2471 case 4 : /* fall through */
2472 case 5 : /* fall through */
2474 if ((base_insn
& 0xbf0) == 0xa30)
2475 { itype
= CRISV10F_INSN_MOVE_M_SPRV10
; goto extract_sfmt_move_m_sprv10
; }
2476 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2478 if ((base_insn
& 0xffff) == 0x5e3f)
2479 { itype
= CRISV10F_INSN_MOVE_C_SPRV10_P5
; goto extract_sfmt_move_c_sprv10_p5
; }
2480 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2481 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2486 unsigned int val
= (((insn
>> 1) & (7 << 0)));
2489 case 0 : /* fall through */
2490 case 1 : /* fall through */
2491 case 2 : /* fall through */
2492 case 3 : /* fall through */
2493 case 4 : /* fall through */
2494 case 5 : /* fall through */
2496 if ((base_insn
& 0xbf0) == 0xa30)
2497 { itype
= CRISV10F_INSN_MOVE_M_SPRV10
; goto extract_sfmt_move_m_sprv10
; }
2498 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2500 if ((base_insn
& 0xffff) == 0x7e3f)
2501 { itype
= CRISV10F_INSN_MOVE_C_SPRV10_P7
; goto extract_sfmt_move_c_sprv10_p9
; }
2502 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2503 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2508 unsigned int val
= (((insn
>> 1) & (7 << 0)));
2511 case 0 : /* fall through */
2512 case 1 : /* fall through */
2513 case 2 : /* fall through */
2514 case 3 : /* fall through */
2515 case 4 : /* fall through */
2516 case 5 : /* fall through */
2518 if ((base_insn
& 0xbf0) == 0xa30)
2519 { itype
= CRISV10F_INSN_MOVE_M_SPRV10
; goto extract_sfmt_move_m_sprv10
; }
2520 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2522 if ((base_insn
& 0xffff) == 0x8e3e)
2523 { itype
= CRISV10F_INSN_MOVE_M_SPPLUS_P8
; goto extract_sfmt_move_m_spplus_p8
; }
2524 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2525 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2530 unsigned int val
= (((insn
>> 1) & (7 << 0)));
2533 case 0 : /* fall through */
2534 case 1 : /* fall through */
2535 case 2 : /* fall through */
2536 case 3 : /* fall through */
2537 case 4 : /* fall through */
2538 case 5 : /* fall through */
2540 if ((base_insn
& 0xbf0) == 0xa30)
2541 { itype
= CRISV10F_INSN_MOVE_M_SPRV10
; goto extract_sfmt_move_m_sprv10
; }
2542 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2544 if ((base_insn
& 0xffff) == 0x9e3f)
2545 { itype
= CRISV10F_INSN_MOVE_C_SPRV10_P9
; goto extract_sfmt_move_c_sprv10_p9
; }
2546 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2547 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2552 unsigned int val
= (((insn
>> 1) & (7 << 0)));
2555 case 0 : /* fall through */
2556 case 1 : /* fall through */
2557 case 2 : /* fall through */
2558 case 3 : /* fall through */
2559 case 4 : /* fall through */
2560 case 5 : /* fall through */
2562 if ((base_insn
& 0xbf0) == 0xa30)
2563 { itype
= CRISV10F_INSN_MOVE_M_SPRV10
; goto extract_sfmt_move_m_sprv10
; }
2564 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2566 if ((base_insn
& 0xffff) == 0xae3f)
2567 { itype
= CRISV10F_INSN_MOVE_C_SPRV10_P10
; goto extract_sfmt_move_c_sprv10_p9
; }
2568 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2569 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2574 unsigned int val
= (((insn
>> 1) & (7 << 0)));
2577 case 0 : /* fall through */
2578 case 1 : /* fall through */
2579 case 2 : /* fall through */
2580 case 3 : /* fall through */
2581 case 4 : /* fall through */
2582 case 5 : /* fall through */
2584 if ((base_insn
& 0xbf0) == 0xa30)
2585 { itype
= CRISV10F_INSN_MOVE_M_SPRV10
; goto extract_sfmt_move_m_sprv10
; }
2586 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2588 if ((base_insn
& 0xffff) == 0xbe3f)
2589 { itype
= CRISV10F_INSN_MOVE_C_SPRV10_P11
; goto extract_sfmt_move_c_sprv10_p9
; }
2590 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2591 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2596 unsigned int val
= (((insn
>> 1) & (7 << 0)));
2599 case 0 : /* fall through */
2600 case 1 : /* fall through */
2601 case 2 : /* fall through */
2602 case 3 : /* fall through */
2603 case 4 : /* fall through */
2604 case 5 : /* fall through */
2606 if ((base_insn
& 0xbf0) == 0xa30)
2607 { itype
= CRISV10F_INSN_MOVE_M_SPRV10
; goto extract_sfmt_move_m_sprv10
; }
2608 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2610 if ((base_insn
& 0xffff) == 0xce3f)
2611 { itype
= CRISV10F_INSN_MOVE_C_SPRV10_P12
; goto extract_sfmt_move_c_sprv10_p9
; }
2612 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2613 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2618 unsigned int val
= (((insn
>> 1) & (7 << 0)));
2621 case 0 : /* fall through */
2622 case 1 : /* fall through */
2623 case 2 : /* fall through */
2624 case 3 : /* fall through */
2625 case 4 : /* fall through */
2626 case 5 : /* fall through */
2628 if ((base_insn
& 0xbf0) == 0xa30)
2629 { itype
= CRISV10F_INSN_MOVE_M_SPRV10
; goto extract_sfmt_move_m_sprv10
; }
2630 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2632 if ((base_insn
& 0xffff) == 0xde3f)
2633 { itype
= CRISV10F_INSN_MOVE_C_SPRV10_P13
; goto extract_sfmt_move_c_sprv10_p9
; }
2634 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2635 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2640 unsigned int val
= (((insn
>> 1) & (7 << 0)));
2643 case 0 : /* fall through */
2644 case 1 : /* fall through */
2645 case 2 : /* fall through */
2646 case 3 : /* fall through */
2647 case 4 : /* fall through */
2648 case 5 : /* fall through */
2650 if ((base_insn
& 0xbf0) == 0xa30)
2651 { itype
= CRISV10F_INSN_MOVE_M_SPRV10
; goto extract_sfmt_move_m_sprv10
; }
2652 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2654 if ((base_insn
& 0xffff) == 0xee3f)
2655 { itype
= CRISV10F_INSN_MOVE_C_SPRV10_P14
; goto extract_sfmt_move_c_sprv10_p9
; }
2656 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2657 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2662 unsigned int val
= (((insn
>> 1) & (7 << 0)));
2665 case 0 : /* fall through */
2666 case 1 : /* fall through */
2667 case 2 : /* fall through */
2668 case 3 : /* fall through */
2669 case 4 : /* fall through */
2670 case 5 : /* fall through */
2672 if ((base_insn
& 0xbf0) == 0xa30)
2673 { itype
= CRISV10F_INSN_MOVE_M_SPRV10
; goto extract_sfmt_move_m_sprv10
; }
2674 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2676 if ((base_insn
& 0xffff) == 0xfe3f)
2677 { itype
= CRISV10F_INSN_MOVE_C_SPRV10_P15
; goto extract_sfmt_move_c_sprv10_p9
; }
2678 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2679 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2682 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2687 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2690 case 0 : /* fall through */
2691 case 1 : /* fall through */
2692 case 2 : /* fall through */
2693 case 3 : /* fall through */
2694 case 4 : /* fall through */
2695 case 5 : /* fall through */
2696 case 6 : /* fall through */
2697 case 7 : /* fall through */
2698 case 8 : /* fall through */
2699 case 9 : /* fall through */
2700 case 10 : /* fall through */
2701 case 11 : /* fall through */
2702 case 12 : /* fall through */
2703 case 13 : /* fall through */
2705 if ((base_insn
& 0xbf0) == 0xa40)
2706 { itype
= CRISV10F_INSN_MOVE_M_B_M
; goto extract_sfmt_move_m_b_m
; }
2707 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2709 if ((base_insn
& 0xfff) == 0xe4f)
2710 { itype
= CRISV10F_INSN_MOVECBR
; goto extract_sfmt_movecbr
; }
2711 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2712 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2717 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2720 case 0 : /* fall through */
2721 case 1 : /* fall through */
2722 case 2 : /* fall through */
2723 case 3 : /* fall through */
2724 case 4 : /* fall through */
2725 case 5 : /* fall through */
2726 case 6 : /* fall through */
2727 case 7 : /* fall through */
2728 case 8 : /* fall through */
2729 case 9 : /* fall through */
2730 case 10 : /* fall through */
2731 case 11 : /* fall through */
2732 case 12 : /* fall through */
2733 case 13 : /* fall through */
2735 if ((base_insn
& 0xbf0) == 0xa50)
2736 { itype
= CRISV10F_INSN_MOVE_M_W_M
; goto extract_sfmt_move_m_w_m
; }
2737 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2739 if ((base_insn
& 0xfff) == 0xe5f)
2740 { itype
= CRISV10F_INSN_MOVECWR
; goto extract_sfmt_movecwr
; }
2741 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2742 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2747 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2750 case 0 : /* fall through */
2751 case 1 : /* fall through */
2752 case 2 : /* fall through */
2753 case 3 : /* fall through */
2754 case 4 : /* fall through */
2755 case 5 : /* fall through */
2756 case 6 : /* fall through */
2757 case 7 : /* fall through */
2758 case 8 : /* fall through */
2759 case 9 : /* fall through */
2760 case 10 : /* fall through */
2761 case 11 : /* fall through */
2762 case 12 : /* fall through */
2763 case 13 : /* fall through */
2765 if ((base_insn
& 0xbf0) == 0xa60)
2766 { itype
= CRISV10F_INSN_MOVE_M_D_M
; goto extract_sfmt_move_m_d_m
; }
2767 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2769 if ((base_insn
& 0xfff) == 0xe6f)
2770 { itype
= CRISV10F_INSN_MOVECDR
; goto extract_sfmt_movecdr
; }
2771 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2772 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2777 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2780 case 0 : /* fall through */
2781 case 1 : /* fall through */
2782 case 2 : /* fall through */
2783 case 3 : /* fall through */
2784 case 4 : /* fall through */
2785 case 5 : /* fall through */
2786 case 6 : /* fall through */
2787 case 7 : /* fall through */
2788 case 8 : /* fall through */
2789 case 9 : /* fall through */
2790 case 10 : /* fall through */
2791 case 11 : /* fall through */
2792 case 12 : /* fall through */
2793 case 13 : /* fall through */
2795 if ((base_insn
& 0xbf0) == 0xa80)
2796 { itype
= CRISV10F_INSN_SUB_M_B_M
; goto extract_sfmt_add_m_b_m
; }
2797 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2799 if ((base_insn
& 0xfff) == 0xe8f)
2800 { itype
= CRISV10F_INSN_SUBCBR
; goto extract_sfmt_addcbr
; }
2801 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2802 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2807 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2810 case 0 : /* fall through */
2811 case 1 : /* fall through */
2812 case 2 : /* fall through */
2813 case 3 : /* fall through */
2814 case 4 : /* fall through */
2815 case 5 : /* fall through */
2816 case 6 : /* fall through */
2817 case 7 : /* fall through */
2818 case 8 : /* fall through */
2819 case 9 : /* fall through */
2820 case 10 : /* fall through */
2821 case 11 : /* fall through */
2822 case 12 : /* fall through */
2823 case 13 : /* fall through */
2825 if ((base_insn
& 0xbf0) == 0xa90)
2826 { itype
= CRISV10F_INSN_SUB_M_W_M
; goto extract_sfmt_add_m_w_m
; }
2827 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2829 if ((base_insn
& 0xfff) == 0xe9f)
2830 { itype
= CRISV10F_INSN_SUBCWR
; goto extract_sfmt_addcwr
; }
2831 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2832 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2837 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2840 case 0 : /* fall through */
2841 case 1 : /* fall through */
2842 case 2 : /* fall through */
2843 case 3 : /* fall through */
2844 case 4 : /* fall through */
2845 case 5 : /* fall through */
2846 case 6 : /* fall through */
2847 case 7 : /* fall through */
2848 case 8 : /* fall through */
2849 case 9 : /* fall through */
2850 case 10 : /* fall through */
2851 case 11 : /* fall through */
2852 case 12 : /* fall through */
2853 case 13 : /* fall through */
2855 if ((base_insn
& 0xbf0) == 0xaa0)
2856 { itype
= CRISV10F_INSN_SUB_M_D_M
; goto extract_sfmt_add_m_d_m
; }
2857 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2859 if ((base_insn
& 0xfff) == 0xeaf)
2860 { itype
= CRISV10F_INSN_SUBCDR
; goto extract_sfmt_addcdr
; }
2861 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2862 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2867 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2870 case 0 : /* fall through */
2871 case 1 : /* fall through */
2872 case 2 : /* fall through */
2873 case 3 : /* fall through */
2874 case 4 : /* fall through */
2875 case 5 : /* fall through */
2876 case 6 : /* fall through */
2877 case 7 : /* fall through */
2878 case 8 : /* fall through */
2879 case 9 : /* fall through */
2880 case 10 : /* fall through */
2881 case 11 : /* fall through */
2882 case 12 : /* fall through */
2883 case 13 : /* fall through */
2885 if ((base_insn
& 0xbf0) == 0xac0)
2886 { itype
= CRISV10F_INSN_CMP_M_B_M
; goto extract_sfmt_cmp_m_b_m
; }
2887 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2889 if ((base_insn
& 0xfff) == 0xecf)
2890 { itype
= CRISV10F_INSN_CMPCBR
; goto extract_sfmt_cmpcbr
; }
2891 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2892 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2897 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2900 case 0 : /* fall through */
2901 case 1 : /* fall through */
2902 case 2 : /* fall through */
2903 case 3 : /* fall through */
2904 case 4 : /* fall through */
2905 case 5 : /* fall through */
2906 case 6 : /* fall through */
2907 case 7 : /* fall through */
2908 case 8 : /* fall through */
2909 case 9 : /* fall through */
2910 case 10 : /* fall through */
2911 case 11 : /* fall through */
2912 case 12 : /* fall through */
2913 case 13 : /* fall through */
2915 if ((base_insn
& 0xbf0) == 0xad0)
2916 { itype
= CRISV10F_INSN_CMP_M_W_M
; goto extract_sfmt_cmp_m_w_m
; }
2917 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2919 if ((base_insn
& 0xfff) == 0xedf)
2920 { itype
= CRISV10F_INSN_CMPCWR
; goto extract_sfmt_cmpcwr
; }
2921 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2922 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2927 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2930 case 0 : /* fall through */
2931 case 1 : /* fall through */
2932 case 2 : /* fall through */
2933 case 3 : /* fall through */
2934 case 4 : /* fall through */
2935 case 5 : /* fall through */
2936 case 6 : /* fall through */
2937 case 7 : /* fall through */
2938 case 8 : /* fall through */
2939 case 9 : /* fall through */
2940 case 10 : /* fall through */
2941 case 11 : /* fall through */
2942 case 12 : /* fall through */
2943 case 13 : /* fall through */
2945 if ((base_insn
& 0xbf0) == 0xae0)
2946 { itype
= CRISV10F_INSN_CMP_M_D_M
; goto extract_sfmt_cmp_m_d_m
; }
2947 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2949 if ((base_insn
& 0xfff) == 0xeef)
2950 { itype
= CRISV10F_INSN_CMPCDR
; goto extract_sfmt_cmpcdr
; }
2951 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2952 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2957 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2960 case 0 : /* fall through */
2961 case 1 : /* fall through */
2962 case 2 : /* fall through */
2963 case 3 : /* fall through */
2964 case 4 : /* fall through */
2965 case 5 : /* fall through */
2966 case 6 : /* fall through */
2967 case 7 : /* fall through */
2968 case 8 : /* fall through */
2969 case 9 : /* fall through */
2970 case 10 : /* fall through */
2971 case 11 : /* fall through */
2972 case 12 : /* fall through */
2973 case 13 : /* fall through */
2975 if ((base_insn
& 0xbf0) == 0xb00)
2976 { itype
= CRISV10F_INSN_AND_M_B_M
; goto extract_sfmt_and_m_b_m
; }
2977 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2979 if ((base_insn
& 0xfff) == 0xf0f)
2980 { itype
= CRISV10F_INSN_ANDCBR
; goto extract_sfmt_andcbr
; }
2981 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2982 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
2987 unsigned int val
= (((insn
>> 0) & (15 << 0)));
2990 case 0 : /* fall through */
2991 case 1 : /* fall through */
2992 case 2 : /* fall through */
2993 case 3 : /* fall through */
2994 case 4 : /* fall through */
2995 case 5 : /* fall through */
2996 case 6 : /* fall through */
2997 case 7 : /* fall through */
2998 case 8 : /* fall through */
2999 case 9 : /* fall through */
3000 case 10 : /* fall through */
3001 case 11 : /* fall through */
3002 case 12 : /* fall through */
3003 case 13 : /* fall through */
3005 if ((base_insn
& 0xbf0) == 0xb10)
3006 { itype
= CRISV10F_INSN_AND_M_W_M
; goto extract_sfmt_and_m_w_m
; }
3007 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
3009 if ((base_insn
& 0xfff) == 0xf1f)
3010 { itype
= CRISV10F_INSN_ANDCWR
; goto extract_sfmt_andcwr
; }
3011 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
3012 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
3017 unsigned int val
= (((insn
>> 0) & (15 << 0)));
3020 case 0 : /* fall through */
3021 case 1 : /* fall through */
3022 case 2 : /* fall through */
3023 case 3 : /* fall through */
3024 case 4 : /* fall through */
3025 case 5 : /* fall through */
3026 case 6 : /* fall through */
3027 case 7 : /* fall through */
3028 case 8 : /* fall through */
3029 case 9 : /* fall through */
3030 case 10 : /* fall through */
3031 case 11 : /* fall through */
3032 case 12 : /* fall through */
3033 case 13 : /* fall through */
3035 if ((base_insn
& 0xbf0) == 0xb20)
3036 { itype
= CRISV10F_INSN_AND_M_D_M
; goto extract_sfmt_and_m_d_m
; }
3037 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
3039 if ((base_insn
& 0xfff) == 0xf2f)
3040 { itype
= CRISV10F_INSN_ANDCDR
; goto extract_sfmt_andcdr
; }
3041 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
3042 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
3047 unsigned int val
= (((insn
>> 0) & (15 << 0)));
3050 case 0 : /* fall through */
3051 case 1 : /* fall through */
3052 case 2 : /* fall through */
3053 case 3 : /* fall through */
3054 case 4 : /* fall through */
3055 case 5 : /* fall through */
3056 case 6 : /* fall through */
3057 case 7 : /* fall through */
3058 case 8 : /* fall through */
3059 case 9 : /* fall through */
3060 case 10 : /* fall through */
3061 case 11 : /* fall through */
3062 case 12 : /* fall through */
3063 case 13 : /* fall through */
3065 if ((base_insn
& 0xbf0) == 0xb40)
3066 { itype
= CRISV10F_INSN_OR_M_B_M
; goto extract_sfmt_and_m_b_m
; }
3067 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
3069 if ((base_insn
& 0xfff) == 0xf4f)
3070 { itype
= CRISV10F_INSN_ORCBR
; goto extract_sfmt_andcbr
; }
3071 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
3072 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
3077 unsigned int val
= (((insn
>> 0) & (15 << 0)));
3080 case 0 : /* fall through */
3081 case 1 : /* fall through */
3082 case 2 : /* fall through */
3083 case 3 : /* fall through */
3084 case 4 : /* fall through */
3085 case 5 : /* fall through */
3086 case 6 : /* fall through */
3087 case 7 : /* fall through */
3088 case 8 : /* fall through */
3089 case 9 : /* fall through */
3090 case 10 : /* fall through */
3091 case 11 : /* fall through */
3092 case 12 : /* fall through */
3093 case 13 : /* fall through */
3095 if ((base_insn
& 0xbf0) == 0xb50)
3096 { itype
= CRISV10F_INSN_OR_M_W_M
; goto extract_sfmt_and_m_w_m
; }
3097 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
3099 if ((base_insn
& 0xfff) == 0xf5f)
3100 { itype
= CRISV10F_INSN_ORCWR
; goto extract_sfmt_andcwr
; }
3101 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
3102 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
3107 unsigned int val
= (((insn
>> 0) & (15 << 0)));
3110 case 0 : /* fall through */
3111 case 1 : /* fall through */
3112 case 2 : /* fall through */
3113 case 3 : /* fall through */
3114 case 4 : /* fall through */
3115 case 5 : /* fall through */
3116 case 6 : /* fall through */
3117 case 7 : /* fall through */
3118 case 8 : /* fall through */
3119 case 9 : /* fall through */
3120 case 10 : /* fall through */
3121 case 11 : /* fall through */
3122 case 12 : /* fall through */
3123 case 13 : /* fall through */
3125 if ((base_insn
& 0xbf0) == 0xb60)
3126 { itype
= CRISV10F_INSN_OR_M_D_M
; goto extract_sfmt_and_m_d_m
; }
3127 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
3129 if ((base_insn
& 0xfff) == 0xf6f)
3130 { itype
= CRISV10F_INSN_ORCDR
; goto extract_sfmt_andcdr
; }
3131 itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
3132 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
3135 default : itype
= CRISV10F_INSN_X_INVALID
; goto extract_sfmt_empty
;
3140 /* The instruction has been decoded, now extract the fields. */
3144 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3145 #define FLD(f) abuf->fields.fmt_empty.f
3148 /* Record the fields for the semantic handler. */
3149 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_empty", (char *) 0));
3157 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3158 #define FLD(f) abuf->fields.fmt_empty.f
3161 /* Record the fields for the semantic handler. */
3162 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_nop", (char *) 0));
3168 extract_sfmt_move_b_r
:
3170 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3171 CGEN_INSN_INT insn
= base_insn
;
3172 #define FLD(f) abuf->fields.sfmt_add_b_r.f
3176 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3177 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3179 /* Record the fields for the semantic handler. */
3180 FLD (f_operand1
) = f_operand1
;
3181 FLD (f_operand2
) = f_operand2
;
3182 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));
3184 #if WITH_PROFILE_MODEL_P
3185 /* Record the fields for profiling. */
3186 if (PROFILE_MODEL_P (current_cpu
))
3188 FLD (in_Rs
) = f_operand1
;
3189 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
3196 extract_sfmt_move_d_r
:
3198 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3199 CGEN_INSN_INT insn
= base_insn
;
3200 #define FLD(f) abuf->fields.sfmt_add_b_r.f
3204 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3205 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3207 /* Record the fields for the semantic handler. */
3208 FLD (f_operand1
) = f_operand1
;
3209 FLD (f_operand2
) = f_operand2
;
3210 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));
3212 #if WITH_PROFILE_MODEL_P
3213 /* Record the fields for profiling. */
3214 if (PROFILE_MODEL_P (current_cpu
))
3216 FLD (in_Rs
) = f_operand1
;
3217 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
3224 extract_sfmt_movepcr
:
3226 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3227 CGEN_INSN_INT insn
= base_insn
;
3228 #define FLD(f) abuf->fields.sfmt_moveq.f
3231 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3233 /* Record the fields for the semantic handler. */
3234 FLD (f_operand2
) = f_operand2
;
3235 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movepcr", "f_operand2 0x%x", 'x', f_operand2
, (char *) 0));
3237 #if WITH_PROFILE_MODEL_P
3238 /* Record the fields for profiling. */
3239 if (PROFILE_MODEL_P (current_cpu
))
3241 FLD (out_Rd
) = f_operand2
;
3250 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3251 CGEN_INSN_INT insn
= base_insn
;
3252 #define FLD(f) abuf->fields.sfmt_moveq.f
3256 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3257 f_s6
= EXTRACT_LSB0_INT (insn
, 16, 5, 6);
3259 /* Record the fields for the semantic handler. */
3261 FLD (f_operand2
) = f_operand2
;
3262 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));
3264 #if WITH_PROFILE_MODEL_P
3265 /* Record the fields for profiling. */
3266 if (PROFILE_MODEL_P (current_cpu
))
3268 FLD (out_Rd
) = f_operand2
;
3275 extract_sfmt_movs_b_r
:
3277 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3278 CGEN_INSN_INT insn
= base_insn
;
3279 #define FLD(f) abuf->fields.sfmt_muls_b.f
3283 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3284 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3286 /* Record the fields for the semantic handler. */
3287 FLD (f_operand1
) = f_operand1
;
3288 FLD (f_operand2
) = f_operand2
;
3289 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));
3291 #if WITH_PROFILE_MODEL_P
3292 /* Record the fields for profiling. */
3293 if (PROFILE_MODEL_P (current_cpu
))
3295 FLD (in_Rs
) = f_operand1
;
3296 FLD (out_Rd
) = f_operand2
;
3303 extract_sfmt_movecbr
:
3305 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3306 CGEN_INSN_INT insn
= base_insn
;
3307 #define FLD(f) abuf->fields.sfmt_addcbr.f
3308 INT f_indir_pc__byte
;
3310 /* Contents of trailing part of insn. */
3313 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3314 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
3315 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3317 /* Record the fields for the semantic handler. */
3318 FLD (f_operand2
) = f_operand2
;
3319 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
3320 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));
3322 #if WITH_PROFILE_MODEL_P
3323 /* Record the fields for profiling. */
3324 if (PROFILE_MODEL_P (current_cpu
))
3326 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
3333 extract_sfmt_movecwr
:
3335 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3336 CGEN_INSN_INT insn
= base_insn
;
3337 #define FLD(f) abuf->fields.sfmt_addcwr.f
3338 INT f_indir_pc__word
;
3340 /* Contents of trailing part of insn. */
3343 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3344 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
3345 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3347 /* Record the fields for the semantic handler. */
3348 FLD (f_operand2
) = f_operand2
;
3349 FLD (f_indir_pc__word
) = f_indir_pc__word
;
3350 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));
3352 #if WITH_PROFILE_MODEL_P
3353 /* Record the fields for profiling. */
3354 if (PROFILE_MODEL_P (current_cpu
))
3356 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
3363 extract_sfmt_movecdr
:
3365 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3366 CGEN_INSN_INT insn
= base_insn
;
3367 #define FLD(f) abuf->fields.sfmt_bound_cd.f
3368 INT f_indir_pc__dword
;
3370 /* Contents of trailing part of insn. */
3373 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3374 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
3375 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3377 /* Record the fields for the semantic handler. */
3378 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
3379 FLD (f_operand2
) = f_operand2
;
3380 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));
3382 #if WITH_PROFILE_MODEL_P
3383 /* Record the fields for profiling. */
3384 if (PROFILE_MODEL_P (current_cpu
))
3386 FLD (out_Rd
) = f_operand2
;
3393 extract_sfmt_movscbr
:
3395 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3396 CGEN_INSN_INT insn
= base_insn
;
3397 #define FLD(f) abuf->fields.sfmt_bound_cb.f
3399 INT f_indir_pc__byte
;
3400 /* Contents of trailing part of insn. */
3403 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3404 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3405 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
3407 /* Record the fields for the semantic handler. */
3408 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
3409 FLD (f_operand2
) = f_operand2
;
3410 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));
3412 #if WITH_PROFILE_MODEL_P
3413 /* Record the fields for profiling. */
3414 if (PROFILE_MODEL_P (current_cpu
))
3416 FLD (out_Rd
) = f_operand2
;
3423 extract_sfmt_movscwr
:
3425 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3426 CGEN_INSN_INT insn
= base_insn
;
3427 #define FLD(f) abuf->fields.sfmt_bound_cw.f
3429 INT f_indir_pc__word
;
3430 /* Contents of trailing part of insn. */
3433 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3434 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3435 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
3437 /* Record the fields for the semantic handler. */
3438 FLD (f_indir_pc__word
) = f_indir_pc__word
;
3439 FLD (f_operand2
) = f_operand2
;
3440 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));
3442 #if WITH_PROFILE_MODEL_P
3443 /* Record the fields for profiling. */
3444 if (PROFILE_MODEL_P (current_cpu
))
3446 FLD (out_Rd
) = f_operand2
;
3453 extract_sfmt_movucbr
:
3455 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3456 CGEN_INSN_INT insn
= base_insn
;
3457 #define FLD(f) abuf->fields.sfmt_bound_cb.f
3459 INT f_indir_pc__byte
;
3460 /* Contents of trailing part of insn. */
3463 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3464 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3465 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
3467 /* Record the fields for the semantic handler. */
3468 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
3469 FLD (f_operand2
) = f_operand2
;
3470 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));
3472 #if WITH_PROFILE_MODEL_P
3473 /* Record the fields for profiling. */
3474 if (PROFILE_MODEL_P (current_cpu
))
3476 FLD (out_Rd
) = f_operand2
;
3483 extract_sfmt_movucwr
:
3485 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3486 CGEN_INSN_INT insn
= base_insn
;
3487 #define FLD(f) abuf->fields.sfmt_bound_cw.f
3489 INT f_indir_pc__word
;
3490 /* Contents of trailing part of insn. */
3493 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3494 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3495 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
3497 /* Record the fields for the semantic handler. */
3498 FLD (f_indir_pc__word
) = f_indir_pc__word
;
3499 FLD (f_operand2
) = f_operand2
;
3500 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));
3502 #if WITH_PROFILE_MODEL_P
3503 /* Record the fields for profiling. */
3504 if (PROFILE_MODEL_P (current_cpu
))
3506 FLD (out_Rd
) = f_operand2
;
3515 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3516 CGEN_INSN_INT insn
= base_insn
;
3517 #define FLD(f) abuf->fields.sfmt_addq.f
3521 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3522 f_u6
= EXTRACT_LSB0_UINT (insn
, 16, 5, 6);
3524 /* Record the fields for the semantic handler. */
3525 FLD (f_operand2
) = f_operand2
;
3527 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));
3529 #if WITH_PROFILE_MODEL_P
3530 /* Record the fields for profiling. */
3531 if (PROFILE_MODEL_P (current_cpu
))
3533 FLD (in_Rd
) = f_operand2
;
3534 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
3541 extract_sfmt_cmp_r_b_r
:
3543 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3544 CGEN_INSN_INT insn
= base_insn
;
3545 #define FLD(f) abuf->fields.sfmt_add_b_r.f
3549 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3550 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3552 /* Record the fields for the semantic handler. */
3553 FLD (f_operand2
) = f_operand2
;
3554 FLD (f_operand1
) = f_operand1
;
3555 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));
3557 #if WITH_PROFILE_MODEL_P
3558 /* Record the fields for profiling. */
3559 if (PROFILE_MODEL_P (current_cpu
))
3561 FLD (in_Rd
) = f_operand2
;
3562 FLD (in_Rs
) = f_operand1
;
3569 extract_sfmt_cmp_m_b_m
:
3571 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3572 CGEN_INSN_INT insn
= base_insn
;
3573 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3578 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3579 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3580 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3582 /* Record the fields for the semantic handler. */
3583 FLD (f_operand2
) = f_operand2
;
3584 FLD (f_operand1
) = f_operand1
;
3585 FLD (f_memmode
) = f_memmode
;
3586 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));
3588 #if WITH_PROFILE_MODEL_P
3589 /* Record the fields for profiling. */
3590 if (PROFILE_MODEL_P (current_cpu
))
3592 FLD (in_Rd
) = f_operand2
;
3593 FLD (in_Rs
) = f_operand1
;
3594 FLD (out_Rs
) = f_operand1
;
3601 extract_sfmt_cmp_m_w_m
:
3603 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3604 CGEN_INSN_INT insn
= base_insn
;
3605 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3610 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3611 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3612 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3614 /* Record the fields for the semantic handler. */
3615 FLD (f_operand2
) = f_operand2
;
3616 FLD (f_operand1
) = f_operand1
;
3617 FLD (f_memmode
) = f_memmode
;
3618 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));
3620 #if WITH_PROFILE_MODEL_P
3621 /* Record the fields for profiling. */
3622 if (PROFILE_MODEL_P (current_cpu
))
3624 FLD (in_Rd
) = f_operand2
;
3625 FLD (in_Rs
) = f_operand1
;
3626 FLD (out_Rs
) = f_operand1
;
3633 extract_sfmt_cmp_m_d_m
:
3635 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3636 CGEN_INSN_INT insn
= base_insn
;
3637 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3642 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3643 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3644 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3646 /* Record the fields for the semantic handler. */
3647 FLD (f_operand2
) = f_operand2
;
3648 FLD (f_operand1
) = f_operand1
;
3649 FLD (f_memmode
) = f_memmode
;
3650 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));
3652 #if WITH_PROFILE_MODEL_P
3653 /* Record the fields for profiling. */
3654 if (PROFILE_MODEL_P (current_cpu
))
3656 FLD (in_Rd
) = f_operand2
;
3657 FLD (in_Rs
) = f_operand1
;
3658 FLD (out_Rs
) = f_operand1
;
3665 extract_sfmt_cmpcbr
:
3667 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3668 CGEN_INSN_INT insn
= base_insn
;
3669 #define FLD(f) abuf->fields.sfmt_bound_cb.f
3670 INT f_indir_pc__byte
;
3672 /* Contents of trailing part of insn. */
3675 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3676 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
3677 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3679 /* Record the fields for the semantic handler. */
3680 FLD (f_operand2
) = f_operand2
;
3681 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
3682 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));
3684 #if WITH_PROFILE_MODEL_P
3685 /* Record the fields for profiling. */
3686 if (PROFILE_MODEL_P (current_cpu
))
3688 FLD (in_Rd
) = f_operand2
;
3695 extract_sfmt_cmpcwr
:
3697 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3698 CGEN_INSN_INT insn
= base_insn
;
3699 #define FLD(f) abuf->fields.sfmt_bound_cw.f
3700 INT f_indir_pc__word
;
3702 /* Contents of trailing part of insn. */
3705 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3706 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
3707 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3709 /* Record the fields for the semantic handler. */
3710 FLD (f_operand2
) = f_operand2
;
3711 FLD (f_indir_pc__word
) = f_indir_pc__word
;
3712 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));
3714 #if WITH_PROFILE_MODEL_P
3715 /* Record the fields for profiling. */
3716 if (PROFILE_MODEL_P (current_cpu
))
3718 FLD (in_Rd
) = f_operand2
;
3725 extract_sfmt_cmpcdr
:
3727 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3728 CGEN_INSN_INT insn
= base_insn
;
3729 #define FLD(f) abuf->fields.sfmt_bound_cd.f
3730 INT f_indir_pc__dword
;
3732 /* Contents of trailing part of insn. */
3735 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3736 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
3737 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3739 /* Record the fields for the semantic handler. */
3740 FLD (f_operand2
) = f_operand2
;
3741 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
3742 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));
3744 #if WITH_PROFILE_MODEL_P
3745 /* Record the fields for profiling. */
3746 if (PROFILE_MODEL_P (current_cpu
))
3748 FLD (in_Rd
) = f_operand2
;
3757 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3758 CGEN_INSN_INT insn
= base_insn
;
3759 #define FLD(f) abuf->fields.sfmt_andq.f
3763 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3764 f_s6
= EXTRACT_LSB0_INT (insn
, 16, 5, 6);
3766 /* Record the fields for the semantic handler. */
3767 FLD (f_operand2
) = f_operand2
;
3769 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));
3771 #if WITH_PROFILE_MODEL_P
3772 /* Record the fields for profiling. */
3773 if (PROFILE_MODEL_P (current_cpu
))
3775 FLD (in_Rd
) = f_operand2
;
3782 extract_sfmt_cmpucbr
:
3784 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3785 CGEN_INSN_INT insn
= base_insn
;
3786 #define FLD(f) abuf->fields.sfmt_bound_cb.f
3787 INT f_indir_pc__byte
;
3789 /* Contents of trailing part of insn. */
3792 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3793 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
3794 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3796 /* Record the fields for the semantic handler. */
3797 FLD (f_operand2
) = f_operand2
;
3798 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
3799 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));
3801 #if WITH_PROFILE_MODEL_P
3802 /* Record the fields for profiling. */
3803 if (PROFILE_MODEL_P (current_cpu
))
3805 FLD (in_Rd
) = f_operand2
;
3812 extract_sfmt_cmpucwr
:
3814 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3815 CGEN_INSN_INT insn
= base_insn
;
3816 #define FLD(f) abuf->fields.sfmt_bound_cw.f
3817 INT f_indir_pc__word
;
3819 /* Contents of trailing part of insn. */
3822 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
3823 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
3824 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3826 /* Record the fields for the semantic handler. */
3827 FLD (f_operand2
) = f_operand2
;
3828 FLD (f_indir_pc__word
) = f_indir_pc__word
;
3829 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));
3831 #if WITH_PROFILE_MODEL_P
3832 /* Record the fields for profiling. */
3833 if (PROFILE_MODEL_P (current_cpu
))
3835 FLD (in_Rd
) = f_operand2
;
3842 extract_sfmt_move_m_b_m
:
3844 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3845 CGEN_INSN_INT insn
= base_insn
;
3846 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3851 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3852 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3853 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3855 /* Record the fields for the semantic handler. */
3856 FLD (f_operand1
) = f_operand1
;
3857 FLD (f_operand2
) = f_operand2
;
3858 FLD (f_memmode
) = f_memmode
;
3859 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));
3861 #if WITH_PROFILE_MODEL_P
3862 /* Record the fields for profiling. */
3863 if (PROFILE_MODEL_P (current_cpu
))
3865 FLD (in_Rs
) = f_operand1
;
3866 FLD (out_Rs
) = f_operand1
;
3867 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
)));
3874 extract_sfmt_move_m_w_m
:
3876 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3877 CGEN_INSN_INT insn
= base_insn
;
3878 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3883 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3884 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3885 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3887 /* Record the fields for the semantic handler. */
3888 FLD (f_operand1
) = f_operand1
;
3889 FLD (f_operand2
) = f_operand2
;
3890 FLD (f_memmode
) = f_memmode
;
3891 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));
3893 #if WITH_PROFILE_MODEL_P
3894 /* Record the fields for profiling. */
3895 if (PROFILE_MODEL_P (current_cpu
))
3897 FLD (in_Rs
) = f_operand1
;
3898 FLD (out_Rs
) = f_operand1
;
3899 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
)));
3906 extract_sfmt_move_m_d_m
:
3908 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3909 CGEN_INSN_INT insn
= base_insn
;
3910 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3915 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3916 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3917 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3919 /* Record the fields for the semantic handler. */
3920 FLD (f_operand1
) = f_operand1
;
3921 FLD (f_operand2
) = f_operand2
;
3922 FLD (f_memmode
) = f_memmode
;
3923 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));
3925 #if WITH_PROFILE_MODEL_P
3926 /* Record the fields for profiling. */
3927 if (PROFILE_MODEL_P (current_cpu
))
3929 FLD (in_Rs
) = f_operand1
;
3930 FLD (out_Rs
) = f_operand1
;
3931 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
)));
3938 extract_sfmt_movs_m_b_m
:
3940 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3941 CGEN_INSN_INT insn
= base_insn
;
3942 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3947 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3948 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3949 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3951 /* Record the fields for the semantic handler. */
3952 FLD (f_operand1
) = f_operand1
;
3953 FLD (f_memmode
) = f_memmode
;
3954 FLD (f_operand2
) = f_operand2
;
3955 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));
3957 #if WITH_PROFILE_MODEL_P
3958 /* Record the fields for profiling. */
3959 if (PROFILE_MODEL_P (current_cpu
))
3961 FLD (in_Rs
) = f_operand1
;
3962 FLD (out_Rd
) = f_operand2
;
3963 FLD (out_Rs
) = f_operand1
;
3970 extract_sfmt_movs_m_w_m
:
3972 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
3973 CGEN_INSN_INT insn
= base_insn
;
3974 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3979 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
3980 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
3981 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
3983 /* Record the fields for the semantic handler. */
3984 FLD (f_operand1
) = f_operand1
;
3985 FLD (f_memmode
) = f_memmode
;
3986 FLD (f_operand2
) = f_operand2
;
3987 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));
3989 #if WITH_PROFILE_MODEL_P
3990 /* Record the fields for profiling. */
3991 if (PROFILE_MODEL_P (current_cpu
))
3993 FLD (in_Rs
) = f_operand1
;
3994 FLD (out_Rd
) = f_operand2
;
3995 FLD (out_Rs
) = f_operand1
;
4002 extract_sfmt_move_r_sprv10
:
4004 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4005 CGEN_INSN_INT insn
= base_insn
;
4006 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
4010 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4011 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4013 /* Record the fields for the semantic handler. */
4014 FLD (f_operand1
) = f_operand1
;
4015 FLD (f_operand2
) = f_operand2
;
4016 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_move_r_sprv10", "f_operand1 0x%x", 'x', f_operand1
, "f_operand2 0x%x", 'x', f_operand2
, (char *) 0));
4018 #if WITH_PROFILE_MODEL_P
4019 /* Record the fields for profiling. */
4020 if (PROFILE_MODEL_P (current_cpu
))
4022 FLD (in_Rs
) = f_operand1
;
4023 FLD (out_Pd
) = f_operand2
;
4030 extract_sfmt_move_spr_rv10
:
4032 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4033 CGEN_INSN_INT insn
= base_insn
;
4034 #define FLD(f) abuf->fields.sfmt_move_spr_rv10.f
4038 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4039 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4041 /* Record the fields for the semantic handler. */
4042 FLD (f_operand2
) = f_operand2
;
4043 FLD (f_operand1
) = f_operand1
;
4044 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_move_spr_rv10", "f_operand2 0x%x", 'x', f_operand2
, "f_operand1 0x%x", 'x', f_operand1
, (char *) 0));
4046 #if WITH_PROFILE_MODEL_P
4047 /* Record the fields for profiling. */
4048 if (PROFILE_MODEL_P (current_cpu
))
4050 FLD (in_Ps
) = f_operand2
;
4051 FLD (out_h_gr_SI_index_of__DFLT_Rs
) = FLD (f_operand1
);
4058 extract_sfmt_ret_type
:
4060 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4061 CGEN_INSN_INT insn
= base_insn
;
4062 #define FLD(f) abuf->fields.sfmt_move_spr_rv10.f
4065 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4067 /* Record the fields for the semantic handler. */
4068 FLD (f_operand2
) = f_operand2
;
4069 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ret_type", "f_operand2 0x%x", 'x', f_operand2
, (char *) 0));
4071 #if WITH_PROFILE_MODEL_P
4072 /* Record the fields for profiling. */
4073 if (PROFILE_MODEL_P (current_cpu
))
4075 FLD (in_Ps
) = f_operand2
;
4082 extract_sfmt_move_m_sprv10
:
4084 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4085 CGEN_INSN_INT insn
= base_insn
;
4086 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
4091 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4092 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4093 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4095 /* Record the fields for the semantic handler. */
4096 FLD (f_operand1
) = f_operand1
;
4097 FLD (f_operand2
) = f_operand2
;
4098 FLD (f_memmode
) = f_memmode
;
4099 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_move_m_sprv10", "f_operand1 0x%x", 'x', f_operand1
, "f_operand2 0x%x", 'x', f_operand2
, "f_memmode 0x%x", 'x', f_memmode
, (char *) 0));
4101 #if WITH_PROFILE_MODEL_P
4102 /* Record the fields for profiling. */
4103 if (PROFILE_MODEL_P (current_cpu
))
4105 FLD (in_Rs
) = f_operand1
;
4106 FLD (out_Pd
) = f_operand2
;
4107 FLD (out_Rs
) = f_operand1
;
4114 extract_sfmt_move_c_sprv10_p5
:
4116 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4117 CGEN_INSN_INT insn
= base_insn
;
4118 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p5.f
4120 INT f_indir_pc__word
;
4121 /* Contents of trailing part of insn. */
4124 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4125 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4126 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
4128 /* Record the fields for the semantic handler. */
4129 FLD (f_indir_pc__word
) = f_indir_pc__word
;
4130 FLD (f_operand2
) = f_operand2
;
4131 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_move_c_sprv10_p5", "f_indir_pc__word 0x%x", 'x', f_indir_pc__word
, "f_operand2 0x%x", 'x', f_operand2
, (char *) 0));
4133 #if WITH_PROFILE_MODEL_P
4134 /* Record the fields for profiling. */
4135 if (PROFILE_MODEL_P (current_cpu
))
4137 FLD (out_Pd
) = f_operand2
;
4144 extract_sfmt_move_c_sprv10_p9
:
4146 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4147 CGEN_INSN_INT insn
= base_insn
;
4148 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
4149 INT f_indir_pc__dword
;
4151 /* Contents of trailing part of insn. */
4154 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4155 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
4156 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4158 /* Record the fields for the semantic handler. */
4159 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
4160 FLD (f_operand2
) = f_operand2
;
4161 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_move_c_sprv10_p9", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword
, "f_operand2 0x%x", 'x', f_operand2
, (char *) 0));
4163 #if WITH_PROFILE_MODEL_P
4164 /* Record the fields for profiling. */
4165 if (PROFILE_MODEL_P (current_cpu
))
4167 FLD (out_Pd
) = f_operand2
;
4174 extract_sfmt_move_spr_mv10
:
4176 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4177 CGEN_INSN_INT insn
= base_insn
;
4178 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
4183 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4184 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4185 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4187 /* Record the fields for the semantic handler. */
4188 FLD (f_operand2
) = f_operand2
;
4189 FLD (f_operand1
) = f_operand1
;
4190 FLD (f_memmode
) = f_memmode
;
4191 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_move_spr_mv10", "f_operand2 0x%x", 'x', f_operand2
, "f_operand1 0x%x", 'x', f_operand1
, "f_memmode 0x%x", 'x', f_memmode
, (char *) 0));
4193 #if WITH_PROFILE_MODEL_P
4194 /* Record the fields for profiling. */
4195 if (PROFILE_MODEL_P (current_cpu
))
4197 FLD (in_Ps
) = f_operand2
;
4198 FLD (in_Rs
) = f_operand1
;
4199 FLD (out_Rs
) = f_operand1
;
4208 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4209 #define FLD(f) abuf->fields.fmt_empty.f
4212 /* Record the fields for the semantic handler. */
4213 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_sbfs", (char *) 0));
4219 extract_sfmt_movem_r_m
:
4221 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4222 CGEN_INSN_INT insn
= base_insn
;
4223 #define FLD(f) abuf->fields.sfmt_movem_r_m.f
4228 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4229 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4230 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4232 /* Record the fields for the semantic handler. */
4233 FLD (f_operand2
) = f_operand2
;
4234 FLD (f_operand1
) = f_operand1
;
4235 FLD (f_memmode
) = f_memmode
;
4236 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movem_r_m", "f_operand2 0x%x", 'x', f_operand2
, "f_operand1 0x%x", 'x', f_operand1
, "f_memmode 0x%x", 'x', f_memmode
, (char *) 0));
4238 #if WITH_PROFILE_MODEL_P
4239 /* Record the fields for profiling. */
4240 if (PROFILE_MODEL_P (current_cpu
))
4242 FLD (in_Rd
) = f_operand2
;
4243 FLD (in_Rs
) = f_operand1
;
4244 FLD (in_h_gr_SI_0
) = 0;
4245 FLD (in_h_gr_SI_1
) = 1;
4246 FLD (in_h_gr_SI_10
) = 10;
4247 FLD (in_h_gr_SI_11
) = 11;
4248 FLD (in_h_gr_SI_12
) = 12;
4249 FLD (in_h_gr_SI_13
) = 13;
4250 FLD (in_h_gr_SI_14
) = 14;
4251 FLD (in_h_gr_SI_15
) = 15;
4252 FLD (in_h_gr_SI_2
) = 2;
4253 FLD (in_h_gr_SI_3
) = 3;
4254 FLD (in_h_gr_SI_4
) = 4;
4255 FLD (in_h_gr_SI_5
) = 5;
4256 FLD (in_h_gr_SI_6
) = 6;
4257 FLD (in_h_gr_SI_7
) = 7;
4258 FLD (in_h_gr_SI_8
) = 8;
4259 FLD (in_h_gr_SI_9
) = 9;
4260 FLD (out_Rs
) = f_operand1
;
4267 extract_sfmt_movem_m_r
:
4269 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4270 CGEN_INSN_INT insn
= base_insn
;
4271 #define FLD(f) abuf->fields.sfmt_movem_m_r.f
4276 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4277 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4278 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4280 /* Record the fields for the semantic handler. */
4281 FLD (f_operand2
) = f_operand2
;
4282 FLD (f_operand1
) = f_operand1
;
4283 FLD (f_memmode
) = f_memmode
;
4284 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movem_m_r", "f_operand2 0x%x", 'x', f_operand2
, "f_operand1 0x%x", 'x', f_operand1
, "f_memmode 0x%x", 'x', f_memmode
, (char *) 0));
4286 #if WITH_PROFILE_MODEL_P
4287 /* Record the fields for profiling. */
4288 if (PROFILE_MODEL_P (current_cpu
))
4290 FLD (in_Rd
) = f_operand2
;
4291 FLD (in_Rs
) = f_operand1
;
4292 FLD (out_Rs
) = f_operand1
;
4293 FLD (out_h_gr_SI_0
) = 0;
4294 FLD (out_h_gr_SI_1
) = 1;
4295 FLD (out_h_gr_SI_10
) = 10;
4296 FLD (out_h_gr_SI_11
) = 11;
4297 FLD (out_h_gr_SI_12
) = 12;
4298 FLD (out_h_gr_SI_13
) = 13;
4299 FLD (out_h_gr_SI_14
) = 14;
4300 FLD (out_h_gr_SI_2
) = 2;
4301 FLD (out_h_gr_SI_3
) = 3;
4302 FLD (out_h_gr_SI_4
) = 4;
4303 FLD (out_h_gr_SI_5
) = 5;
4304 FLD (out_h_gr_SI_6
) = 6;
4305 FLD (out_h_gr_SI_7
) = 7;
4306 FLD (out_h_gr_SI_8
) = 8;
4307 FLD (out_h_gr_SI_9
) = 9;
4314 extract_sfmt_movem_m_pc
:
4316 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4317 CGEN_INSN_INT insn
= base_insn
;
4318 #define FLD(f) abuf->fields.sfmt_movem_m_r.f
4322 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4323 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4325 /* Record the fields for the semantic handler. */
4326 FLD (f_operand1
) = f_operand1
;
4327 FLD (f_memmode
) = f_memmode
;
4328 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_movem_m_pc", "f_operand1 0x%x", 'x', f_operand1
, "f_memmode 0x%x", 'x', f_memmode
, (char *) 0));
4330 #if WITH_PROFILE_MODEL_P
4331 /* Record the fields for profiling. */
4332 if (PROFILE_MODEL_P (current_cpu
))
4334 FLD (in_Rs
) = f_operand1
;
4335 FLD (out_Rs
) = f_operand1
;
4336 FLD (out_h_gr_SI_0
) = 0;
4337 FLD (out_h_gr_SI_1
) = 1;
4338 FLD (out_h_gr_SI_10
) = 10;
4339 FLD (out_h_gr_SI_11
) = 11;
4340 FLD (out_h_gr_SI_12
) = 12;
4341 FLD (out_h_gr_SI_13
) = 13;
4342 FLD (out_h_gr_SI_14
) = 14;
4343 FLD (out_h_gr_SI_2
) = 2;
4344 FLD (out_h_gr_SI_3
) = 3;
4345 FLD (out_h_gr_SI_4
) = 4;
4346 FLD (out_h_gr_SI_5
) = 5;
4347 FLD (out_h_gr_SI_6
) = 6;
4348 FLD (out_h_gr_SI_7
) = 7;
4349 FLD (out_h_gr_SI_8
) = 8;
4350 FLD (out_h_gr_SI_9
) = 9;
4357 extract_sfmt_add_b_r
:
4359 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4360 CGEN_INSN_INT insn
= base_insn
;
4361 #define FLD(f) abuf->fields.sfmt_add_b_r.f
4365 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4366 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4368 /* Record the fields for the semantic handler. */
4369 FLD (f_operand2
) = f_operand2
;
4370 FLD (f_operand1
) = f_operand1
;
4371 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));
4373 #if WITH_PROFILE_MODEL_P
4374 /* Record the fields for profiling. */
4375 if (PROFILE_MODEL_P (current_cpu
))
4377 FLD (in_Rd
) = f_operand2
;
4378 FLD (in_Rs
) = f_operand1
;
4379 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
4386 extract_sfmt_add_d_r
:
4388 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4389 CGEN_INSN_INT insn
= base_insn
;
4390 #define FLD(f) abuf->fields.sfmt_add_b_r.f
4394 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4395 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4397 /* Record the fields for the semantic handler. */
4398 FLD (f_operand2
) = f_operand2
;
4399 FLD (f_operand1
) = f_operand1
;
4400 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));
4402 #if WITH_PROFILE_MODEL_P
4403 /* Record the fields for profiling. */
4404 if (PROFILE_MODEL_P (current_cpu
))
4406 FLD (in_Rd
) = f_operand2
;
4407 FLD (in_Rs
) = f_operand1
;
4408 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
4415 extract_sfmt_add_m_b_m
:
4417 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4418 CGEN_INSN_INT insn
= base_insn
;
4419 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4424 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4425 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4426 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4428 /* Record the fields for the semantic handler. */
4429 FLD (f_operand2
) = f_operand2
;
4430 FLD (f_operand1
) = f_operand1
;
4431 FLD (f_memmode
) = f_memmode
;
4432 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));
4434 #if WITH_PROFILE_MODEL_P
4435 /* Record the fields for profiling. */
4436 if (PROFILE_MODEL_P (current_cpu
))
4438 FLD (in_Rd
) = f_operand2
;
4439 FLD (in_Rs
) = f_operand1
;
4440 FLD (out_Rs
) = f_operand1
;
4441 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
)));
4448 extract_sfmt_add_m_w_m
:
4450 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4451 CGEN_INSN_INT insn
= base_insn
;
4452 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4457 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4458 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4459 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4461 /* Record the fields for the semantic handler. */
4462 FLD (f_operand2
) = f_operand2
;
4463 FLD (f_operand1
) = f_operand1
;
4464 FLD (f_memmode
) = f_memmode
;
4465 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));
4467 #if WITH_PROFILE_MODEL_P
4468 /* Record the fields for profiling. */
4469 if (PROFILE_MODEL_P (current_cpu
))
4471 FLD (in_Rd
) = f_operand2
;
4472 FLD (in_Rs
) = f_operand1
;
4473 FLD (out_Rs
) = f_operand1
;
4474 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
)));
4481 extract_sfmt_add_m_d_m
:
4483 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4484 CGEN_INSN_INT insn
= base_insn
;
4485 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4490 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4491 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4492 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4494 /* Record the fields for the semantic handler. */
4495 FLD (f_operand2
) = f_operand2
;
4496 FLD (f_operand1
) = f_operand1
;
4497 FLD (f_memmode
) = f_memmode
;
4498 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));
4500 #if WITH_PROFILE_MODEL_P
4501 /* Record the fields for profiling. */
4502 if (PROFILE_MODEL_P (current_cpu
))
4504 FLD (in_Rd
) = f_operand2
;
4505 FLD (in_Rs
) = f_operand1
;
4506 FLD (out_Rs
) = f_operand1
;
4507 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
)));
4514 extract_sfmt_addcbr
:
4516 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4517 CGEN_INSN_INT insn
= base_insn
;
4518 #define FLD(f) abuf->fields.sfmt_addcbr.f
4519 INT f_indir_pc__byte
;
4521 /* Contents of trailing part of insn. */
4524 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4525 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
4526 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4528 /* Record the fields for the semantic handler. */
4529 FLD (f_operand2
) = f_operand2
;
4530 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
4531 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));
4533 #if WITH_PROFILE_MODEL_P
4534 /* Record the fields for profiling. */
4535 if (PROFILE_MODEL_P (current_cpu
))
4537 FLD (in_Rd
) = f_operand2
;
4538 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
4545 extract_sfmt_addcwr
:
4547 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4548 CGEN_INSN_INT insn
= base_insn
;
4549 #define FLD(f) abuf->fields.sfmt_addcwr.f
4550 INT f_indir_pc__word
;
4552 /* Contents of trailing part of insn. */
4555 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4556 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
4557 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4559 /* Record the fields for the semantic handler. */
4560 FLD (f_operand2
) = f_operand2
;
4561 FLD (f_indir_pc__word
) = f_indir_pc__word
;
4562 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));
4564 #if WITH_PROFILE_MODEL_P
4565 /* Record the fields for profiling. */
4566 if (PROFILE_MODEL_P (current_cpu
))
4568 FLD (in_Rd
) = f_operand2
;
4569 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
4576 extract_sfmt_addcdr
:
4578 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4579 CGEN_INSN_INT insn
= base_insn
;
4580 #define FLD(f) abuf->fields.sfmt_addcdr.f
4581 INT f_indir_pc__dword
;
4583 /* Contents of trailing part of insn. */
4586 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4587 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
4588 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4590 /* Record the fields for the semantic handler. */
4591 FLD (f_operand2
) = f_operand2
;
4592 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
4593 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));
4595 #if WITH_PROFILE_MODEL_P
4596 /* Record the fields for profiling. */
4597 if (PROFILE_MODEL_P (current_cpu
))
4599 FLD (in_Rd
) = f_operand2
;
4600 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
4607 extract_sfmt_addcpc
:
4609 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4610 CGEN_INSN_INT insn
= base_insn
;
4611 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
4612 INT f_indir_pc__dword
;
4613 /* Contents of trailing part of insn. */
4616 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4617 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
4619 /* Record the fields for the semantic handler. */
4620 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
4621 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_addcpc", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword
, (char *) 0));
4623 #if WITH_PROFILE_MODEL_P
4624 /* Record the fields for profiling. */
4625 if (PROFILE_MODEL_P (current_cpu
))
4633 extract_sfmt_adds_m_b_m
:
4635 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4636 CGEN_INSN_INT insn
= base_insn
;
4637 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4642 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4643 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4644 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4646 /* Record the fields for the semantic handler. */
4647 FLD (f_operand2
) = f_operand2
;
4648 FLD (f_operand1
) = f_operand1
;
4649 FLD (f_memmode
) = f_memmode
;
4650 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));
4652 #if WITH_PROFILE_MODEL_P
4653 /* Record the fields for profiling. */
4654 if (PROFILE_MODEL_P (current_cpu
))
4656 FLD (in_Rd
) = f_operand2
;
4657 FLD (in_Rs
) = f_operand1
;
4658 FLD (out_Rs
) = f_operand1
;
4659 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
)));
4666 extract_sfmt_adds_m_w_m
:
4668 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4669 CGEN_INSN_INT insn
= base_insn
;
4670 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4675 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4676 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4677 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4679 /* Record the fields for the semantic handler. */
4680 FLD (f_operand2
) = f_operand2
;
4681 FLD (f_operand1
) = f_operand1
;
4682 FLD (f_memmode
) = f_memmode
;
4683 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));
4685 #if WITH_PROFILE_MODEL_P
4686 /* Record the fields for profiling. */
4687 if (PROFILE_MODEL_P (current_cpu
))
4689 FLD (in_Rd
) = f_operand2
;
4690 FLD (in_Rs
) = f_operand1
;
4691 FLD (out_Rs
) = f_operand1
;
4692 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
)));
4699 extract_sfmt_addscbr
:
4701 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4702 CGEN_INSN_INT insn
= base_insn
;
4703 #define FLD(f) abuf->fields.sfmt_addcbr.f
4704 INT f_indir_pc__byte
;
4706 /* Contents of trailing part of insn. */
4709 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4710 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
4711 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4713 /* Record the fields for the semantic handler. */
4714 FLD (f_operand2
) = f_operand2
;
4715 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
4716 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));
4718 #if WITH_PROFILE_MODEL_P
4719 /* Record the fields for profiling. */
4720 if (PROFILE_MODEL_P (current_cpu
))
4722 FLD (in_Rd
) = f_operand2
;
4723 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
4730 extract_sfmt_addscwr
:
4732 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4733 CGEN_INSN_INT insn
= base_insn
;
4734 #define FLD(f) abuf->fields.sfmt_addcwr.f
4735 INT f_indir_pc__word
;
4737 /* Contents of trailing part of insn. */
4740 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
4741 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
4742 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4744 /* Record the fields for the semantic handler. */
4745 FLD (f_operand2
) = f_operand2
;
4746 FLD (f_indir_pc__word
) = f_indir_pc__word
;
4747 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));
4749 #if WITH_PROFILE_MODEL_P
4750 /* Record the fields for profiling. */
4751 if (PROFILE_MODEL_P (current_cpu
))
4753 FLD (in_Rd
) = f_operand2
;
4754 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
4761 extract_sfmt_addspcpc
:
4763 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4764 #define FLD(f) abuf->fields.fmt_empty.f
4767 /* Record the fields for the semantic handler. */
4768 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_addspcpc", (char *) 0));
4770 #if WITH_PROFILE_MODEL_P
4771 /* Record the fields for profiling. */
4772 if (PROFILE_MODEL_P (current_cpu
))
4780 extract_sfmt_addi_b_r
:
4782 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4783 CGEN_INSN_INT insn
= base_insn
;
4784 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
4788 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4789 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4791 /* Record the fields for the semantic handler. */
4792 FLD (f_operand2
) = f_operand2
;
4793 FLD (f_operand1
) = f_operand1
;
4794 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));
4796 #if WITH_PROFILE_MODEL_P
4797 /* Record the fields for profiling. */
4798 if (PROFILE_MODEL_P (current_cpu
))
4800 FLD (in_Rd
) = f_operand2
;
4801 FLD (in_Rs
) = f_operand1
;
4802 FLD (out_Rs
) = f_operand1
;
4809 extract_sfmt_neg_b_r
:
4811 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4812 CGEN_INSN_INT insn
= base_insn
;
4813 #define FLD(f) abuf->fields.sfmt_add_b_r.f
4817 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4818 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4820 /* Record the fields for the semantic handler. */
4821 FLD (f_operand1
) = f_operand1
;
4822 FLD (f_operand2
) = f_operand2
;
4823 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));
4825 #if WITH_PROFILE_MODEL_P
4826 /* Record the fields for profiling. */
4827 if (PROFILE_MODEL_P (current_cpu
))
4829 FLD (in_Rs
) = f_operand1
;
4830 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
4837 extract_sfmt_neg_d_r
:
4839 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4840 CGEN_INSN_INT insn
= base_insn
;
4841 #define FLD(f) abuf->fields.sfmt_add_b_r.f
4845 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4846 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4848 /* Record the fields for the semantic handler. */
4849 FLD (f_operand1
) = f_operand1
;
4850 FLD (f_operand2
) = f_operand2
;
4851 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));
4853 #if WITH_PROFILE_MODEL_P
4854 /* Record the fields for profiling. */
4855 if (PROFILE_MODEL_P (current_cpu
))
4857 FLD (in_Rs
) = f_operand1
;
4858 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
4865 extract_sfmt_test_m_b_m
:
4867 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4868 CGEN_INSN_INT insn
= base_insn
;
4869 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
4873 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4874 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4876 /* Record the fields for the semantic handler. */
4877 FLD (f_operand1
) = f_operand1
;
4878 FLD (f_memmode
) = f_memmode
;
4879 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));
4881 #if WITH_PROFILE_MODEL_P
4882 /* Record the fields for profiling. */
4883 if (PROFILE_MODEL_P (current_cpu
))
4885 FLD (in_Rs
) = f_operand1
;
4886 FLD (out_Rs
) = f_operand1
;
4893 extract_sfmt_test_m_w_m
:
4895 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4896 CGEN_INSN_INT insn
= base_insn
;
4897 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
4901 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4902 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4904 /* Record the fields for the semantic handler. */
4905 FLD (f_operand1
) = f_operand1
;
4906 FLD (f_memmode
) = f_memmode
;
4907 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));
4909 #if WITH_PROFILE_MODEL_P
4910 /* Record the fields for profiling. */
4911 if (PROFILE_MODEL_P (current_cpu
))
4913 FLD (in_Rs
) = f_operand1
;
4914 FLD (out_Rs
) = f_operand1
;
4921 extract_sfmt_test_m_d_m
:
4923 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4924 CGEN_INSN_INT insn
= base_insn
;
4925 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
4929 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4930 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4932 /* Record the fields for the semantic handler. */
4933 FLD (f_operand1
) = f_operand1
;
4934 FLD (f_memmode
) = f_memmode
;
4935 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));
4937 #if WITH_PROFILE_MODEL_P
4938 /* Record the fields for profiling. */
4939 if (PROFILE_MODEL_P (current_cpu
))
4941 FLD (in_Rs
) = f_operand1
;
4942 FLD (out_Rs
) = f_operand1
;
4949 extract_sfmt_move_r_m_b_m
:
4951 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4952 CGEN_INSN_INT insn
= base_insn
;
4953 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
4958 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4959 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
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 FLD (f_memmode
) = f_memmode
;
4966 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));
4968 #if WITH_PROFILE_MODEL_P
4969 /* Record the fields for profiling. */
4970 if (PROFILE_MODEL_P (current_cpu
))
4972 FLD (in_Rd
) = f_operand2
;
4973 FLD (in_Rs
) = f_operand1
;
4974 FLD (out_Rs
) = f_operand1
;
4981 extract_sfmt_move_r_m_w_m
:
4983 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
4984 CGEN_INSN_INT insn
= base_insn
;
4985 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
4990 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
4991 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
4992 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
4994 /* Record the fields for the semantic handler. */
4995 FLD (f_operand2
) = f_operand2
;
4996 FLD (f_operand1
) = f_operand1
;
4997 FLD (f_memmode
) = f_memmode
;
4998 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));
5000 #if WITH_PROFILE_MODEL_P
5001 /* Record the fields for profiling. */
5002 if (PROFILE_MODEL_P (current_cpu
))
5004 FLD (in_Rd
) = f_operand2
;
5005 FLD (in_Rs
) = f_operand1
;
5006 FLD (out_Rs
) = f_operand1
;
5013 extract_sfmt_move_r_m_d_m
:
5015 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5016 CGEN_INSN_INT insn
= base_insn
;
5017 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
5022 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5023 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
5024 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5026 /* Record the fields for the semantic handler. */
5027 FLD (f_operand2
) = f_operand2
;
5028 FLD (f_operand1
) = f_operand1
;
5029 FLD (f_memmode
) = f_memmode
;
5030 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));
5032 #if WITH_PROFILE_MODEL_P
5033 /* Record the fields for profiling. */
5034 if (PROFILE_MODEL_P (current_cpu
))
5036 FLD (in_Rd
) = f_operand2
;
5037 FLD (in_Rs
) = f_operand1
;
5038 FLD (out_Rs
) = f_operand1
;
5045 extract_sfmt_muls_b
:
5047 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5048 CGEN_INSN_INT insn
= base_insn
;
5049 #define FLD(f) abuf->fields.sfmt_muls_b.f
5053 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5054 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5056 /* Record the fields for the semantic handler. */
5057 FLD (f_operand2
) = f_operand2
;
5058 FLD (f_operand1
) = f_operand1
;
5059 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));
5061 #if WITH_PROFILE_MODEL_P
5062 /* Record the fields for profiling. */
5063 if (PROFILE_MODEL_P (current_cpu
))
5065 FLD (in_Rd
) = f_operand2
;
5066 FLD (in_Rs
) = f_operand1
;
5067 FLD (out_Rd
) = f_operand2
;
5068 FLD (out_h_sr_SI_7
) = 7;
5077 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5078 CGEN_INSN_INT insn
= base_insn
;
5079 #define FLD(f) abuf->fields.sfmt_muls_b.f
5083 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5084 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5086 /* Record the fields for the semantic handler. */
5087 FLD (f_operand2
) = f_operand2
;
5088 FLD (f_operand1
) = f_operand1
;
5089 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_mstep", "f_operand2 0x%x", 'x', f_operand2
, "f_operand1 0x%x", 'x', f_operand1
, (char *) 0));
5091 #if WITH_PROFILE_MODEL_P
5092 /* Record the fields for profiling. */
5093 if (PROFILE_MODEL_P (current_cpu
))
5095 FLD (in_Rd
) = f_operand2
;
5096 FLD (in_Rs
) = f_operand1
;
5097 FLD (out_Rd
) = f_operand2
;
5106 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5107 CGEN_INSN_INT insn
= base_insn
;
5108 #define FLD(f) abuf->fields.sfmt_muls_b.f
5112 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5113 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5115 /* Record the fields for the semantic handler. */
5116 FLD (f_operand2
) = f_operand2
;
5117 FLD (f_operand1
) = f_operand1
;
5118 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));
5120 #if WITH_PROFILE_MODEL_P
5121 /* Record the fields for profiling. */
5122 if (PROFILE_MODEL_P (current_cpu
))
5124 FLD (in_Rd
) = f_operand2
;
5125 FLD (in_Rs
) = f_operand1
;
5126 FLD (out_Rd
) = f_operand2
;
5133 extract_sfmt_and_b_r
:
5135 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5136 CGEN_INSN_INT insn
= base_insn
;
5137 #define FLD(f) abuf->fields.sfmt_add_b_r.f
5141 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5142 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5144 /* Record the fields for the semantic handler. */
5145 FLD (f_operand2
) = f_operand2
;
5146 FLD (f_operand1
) = f_operand1
;
5147 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));
5149 #if WITH_PROFILE_MODEL_P
5150 /* Record the fields for profiling. */
5151 if (PROFILE_MODEL_P (current_cpu
))
5153 FLD (in_Rd
) = f_operand2
;
5154 FLD (in_Rs
) = f_operand1
;
5155 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
5162 extract_sfmt_and_w_r
:
5164 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5165 CGEN_INSN_INT insn
= base_insn
;
5166 #define FLD(f) abuf->fields.sfmt_add_b_r.f
5170 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5171 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5173 /* Record the fields for the semantic handler. */
5174 FLD (f_operand2
) = f_operand2
;
5175 FLD (f_operand1
) = f_operand1
;
5176 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));
5178 #if WITH_PROFILE_MODEL_P
5179 /* Record the fields for profiling. */
5180 if (PROFILE_MODEL_P (current_cpu
))
5182 FLD (in_Rd
) = f_operand2
;
5183 FLD (in_Rs
) = f_operand1
;
5184 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
5191 extract_sfmt_and_d_r
:
5193 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5194 CGEN_INSN_INT insn
= base_insn
;
5195 #define FLD(f) abuf->fields.sfmt_add_b_r.f
5199 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5200 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5202 /* Record the fields for the semantic handler. */
5203 FLD (f_operand2
) = f_operand2
;
5204 FLD (f_operand1
) = f_operand1
;
5205 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));
5207 #if WITH_PROFILE_MODEL_P
5208 /* Record the fields for profiling. */
5209 if (PROFILE_MODEL_P (current_cpu
))
5211 FLD (in_Rd
) = f_operand2
;
5212 FLD (in_Rs
) = f_operand1
;
5213 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
5220 extract_sfmt_and_m_b_m
:
5222 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5223 CGEN_INSN_INT insn
= base_insn
;
5224 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
5229 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5230 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
5231 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5233 /* Record the fields for the semantic handler. */
5234 FLD (f_operand2
) = f_operand2
;
5235 FLD (f_operand1
) = f_operand1
;
5236 FLD (f_memmode
) = f_memmode
;
5237 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));
5239 #if WITH_PROFILE_MODEL_P
5240 /* Record the fields for profiling. */
5241 if (PROFILE_MODEL_P (current_cpu
))
5243 FLD (in_Rd
) = f_operand2
;
5244 FLD (in_Rs
) = f_operand1
;
5245 FLD (out_Rs
) = f_operand1
;
5246 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
)));
5253 extract_sfmt_and_m_w_m
:
5255 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5256 CGEN_INSN_INT insn
= base_insn
;
5257 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
5262 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5263 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
5264 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5266 /* Record the fields for the semantic handler. */
5267 FLD (f_operand2
) = f_operand2
;
5268 FLD (f_operand1
) = f_operand1
;
5269 FLD (f_memmode
) = f_memmode
;
5270 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));
5272 #if WITH_PROFILE_MODEL_P
5273 /* Record the fields for profiling. */
5274 if (PROFILE_MODEL_P (current_cpu
))
5276 FLD (in_Rd
) = f_operand2
;
5277 FLD (in_Rs
) = f_operand1
;
5278 FLD (out_Rs
) = f_operand1
;
5279 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
)));
5286 extract_sfmt_and_m_d_m
:
5288 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5289 CGEN_INSN_INT insn
= base_insn
;
5290 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
5295 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5296 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
5297 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5299 /* Record the fields for the semantic handler. */
5300 FLD (f_operand2
) = f_operand2
;
5301 FLD (f_operand1
) = f_operand1
;
5302 FLD (f_memmode
) = f_memmode
;
5303 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));
5305 #if WITH_PROFILE_MODEL_P
5306 /* Record the fields for profiling. */
5307 if (PROFILE_MODEL_P (current_cpu
))
5309 FLD (in_Rd
) = f_operand2
;
5310 FLD (in_Rs
) = f_operand1
;
5311 FLD (out_Rs
) = f_operand1
;
5312 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
)));
5319 extract_sfmt_andcbr
:
5321 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5322 CGEN_INSN_INT insn
= base_insn
;
5323 #define FLD(f) abuf->fields.sfmt_addcbr.f
5324 INT f_indir_pc__byte
;
5326 /* Contents of trailing part of insn. */
5329 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
5330 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
5331 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5333 /* Record the fields for the semantic handler. */
5334 FLD (f_operand2
) = f_operand2
;
5335 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
5336 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));
5338 #if WITH_PROFILE_MODEL_P
5339 /* Record the fields for profiling. */
5340 if (PROFILE_MODEL_P (current_cpu
))
5342 FLD (in_Rd
) = f_operand2
;
5343 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
5350 extract_sfmt_andcwr
:
5352 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5353 CGEN_INSN_INT insn
= base_insn
;
5354 #define FLD(f) abuf->fields.sfmt_addcwr.f
5355 INT f_indir_pc__word
;
5357 /* Contents of trailing part of insn. */
5360 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
5361 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
5362 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5364 /* Record the fields for the semantic handler. */
5365 FLD (f_operand2
) = f_operand2
;
5366 FLD (f_indir_pc__word
) = f_indir_pc__word
;
5367 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));
5369 #if WITH_PROFILE_MODEL_P
5370 /* Record the fields for profiling. */
5371 if (PROFILE_MODEL_P (current_cpu
))
5373 FLD (in_Rd
) = f_operand2
;
5374 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
5381 extract_sfmt_andcdr
:
5383 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5384 CGEN_INSN_INT insn
= base_insn
;
5385 #define FLD(f) abuf->fields.sfmt_addcdr.f
5386 INT f_indir_pc__dword
;
5388 /* Contents of trailing part of insn. */
5391 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
5392 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
5393 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5395 /* Record the fields for the semantic handler. */
5396 FLD (f_operand2
) = f_operand2
;
5397 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
5398 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));
5400 #if WITH_PROFILE_MODEL_P
5401 /* Record the fields for profiling. */
5402 if (PROFILE_MODEL_P (current_cpu
))
5404 FLD (in_Rd
) = f_operand2
;
5405 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
5414 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5415 CGEN_INSN_INT insn
= base_insn
;
5416 #define FLD(f) abuf->fields.sfmt_andq.f
5420 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5421 f_s6
= EXTRACT_LSB0_INT (insn
, 16, 5, 6);
5423 /* Record the fields for the semantic handler. */
5424 FLD (f_operand2
) = f_operand2
;
5426 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));
5428 #if WITH_PROFILE_MODEL_P
5429 /* Record the fields for profiling. */
5430 if (PROFILE_MODEL_P (current_cpu
))
5432 FLD (in_Rd
) = f_operand2
;
5433 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
5442 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5443 CGEN_INSN_INT insn
= base_insn
;
5444 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
5448 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5449 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5451 /* Record the fields for the semantic handler. */
5452 FLD (f_operand1
) = f_operand1
;
5453 FLD (f_operand2
) = f_operand2
;
5454 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));
5456 #if WITH_PROFILE_MODEL_P
5457 /* Record the fields for profiling. */
5458 if (PROFILE_MODEL_P (current_cpu
))
5460 FLD (in_Rs
) = f_operand1
;
5461 FLD (out_Rs
) = f_operand1
;
5468 extract_sfmt_asrr_b_r
:
5470 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5471 CGEN_INSN_INT insn
= base_insn
;
5472 #define FLD(f) abuf->fields.sfmt_add_b_r.f
5476 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5477 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5479 /* Record the fields for the semantic handler. */
5480 FLD (f_operand2
) = f_operand2
;
5481 FLD (f_operand1
) = f_operand1
;
5482 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));
5484 #if WITH_PROFILE_MODEL_P
5485 /* Record the fields for profiling. */
5486 if (PROFILE_MODEL_P (current_cpu
))
5488 FLD (in_Rd
) = f_operand2
;
5489 FLD (in_Rs
) = f_operand1
;
5490 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
5499 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5500 CGEN_INSN_INT insn
= base_insn
;
5501 #define FLD(f) abuf->fields.sfmt_asrq.f
5505 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5506 f_u5
= EXTRACT_LSB0_UINT (insn
, 16, 4, 5);
5508 /* Record the fields for the semantic handler. */
5509 FLD (f_operand2
) = f_operand2
;
5511 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));
5513 #if WITH_PROFILE_MODEL_P
5514 /* Record the fields for profiling. */
5515 if (PROFILE_MODEL_P (current_cpu
))
5517 FLD (in_Rd
) = f_operand2
;
5518 FLD (out_Rd
) = f_operand2
;
5525 extract_sfmt_lsrr_b_r
:
5527 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5528 CGEN_INSN_INT insn
= base_insn
;
5529 #define FLD(f) abuf->fields.sfmt_add_b_r.f
5533 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5534 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5536 /* Record the fields for the semantic handler. */
5537 FLD (f_operand2
) = f_operand2
;
5538 FLD (f_operand1
) = f_operand1
;
5539 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));
5541 #if WITH_PROFILE_MODEL_P
5542 /* Record the fields for profiling. */
5543 if (PROFILE_MODEL_P (current_cpu
))
5545 FLD (in_Rd
) = f_operand2
;
5546 FLD (in_Rs
) = f_operand1
;
5547 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
5554 extract_sfmt_lsrr_d_r
:
5556 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5557 CGEN_INSN_INT insn
= base_insn
;
5558 #define FLD(f) abuf->fields.sfmt_add_b_r.f
5562 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5563 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5565 /* Record the fields for the semantic handler. */
5566 FLD (f_operand2
) = f_operand2
;
5567 FLD (f_operand1
) = f_operand1
;
5568 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));
5570 #if WITH_PROFILE_MODEL_P
5571 /* Record the fields for profiling. */
5572 if (PROFILE_MODEL_P (current_cpu
))
5574 FLD (in_Rd
) = f_operand2
;
5575 FLD (in_Rs
) = f_operand1
;
5576 FLD (out_h_gr_SI_index_of__DFLT_Rd
) = FLD (f_operand2
);
5585 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5586 CGEN_INSN_INT insn
= base_insn
;
5587 #define FLD(f) abuf->fields.sfmt_add_b_r.f
5591 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5592 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5594 /* Record the fields for the semantic handler. */
5595 FLD (f_operand2
) = f_operand2
;
5596 FLD (f_operand1
) = f_operand1
;
5597 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));
5599 #if WITH_PROFILE_MODEL_P
5600 /* Record the fields for profiling. */
5601 if (PROFILE_MODEL_P (current_cpu
))
5603 FLD (in_Rd
) = f_operand2
;
5604 FLD (in_Rs
) = f_operand1
;
5613 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5614 CGEN_INSN_INT insn
= base_insn
;
5615 #define FLD(f) abuf->fields.sfmt_asrq.f
5619 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5620 f_u5
= EXTRACT_LSB0_UINT (insn
, 16, 4, 5);
5622 /* Record the fields for the semantic handler. */
5623 FLD (f_operand2
) = f_operand2
;
5625 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));
5627 #if WITH_PROFILE_MODEL_P
5628 /* Record the fields for profiling. */
5629 if (PROFILE_MODEL_P (current_cpu
))
5631 FLD (in_Rd
) = f_operand2
;
5640 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5641 CGEN_INSN_INT insn
= base_insn
;
5642 #define FLD(f) abuf->fields.sfmt_setf.f
5647 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5648 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5649 f_dstsrc
= ((((f_operand1
) | (((f_operand2
) << (4))))) & (255));
5651 /* Record the fields for the semantic handler. */
5652 FLD (f_dstsrc
) = f_dstsrc
;
5653 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_setf", "f_dstsrc 0x%x", 'x', f_dstsrc
, (char *) 0));
5661 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5662 CGEN_INSN_INT insn
= base_insn
;
5663 #define FLD(f) abuf->fields.sfmt_bcc_b.f
5669 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5670 f_disp9_lo
= EXTRACT_LSB0_UINT (insn
, 16, 7, 7);
5671 f_disp9_hi
= EXTRACT_LSB0_INT (insn
, 16, 0, 1);
5675 tmp_abslo
= ((f_disp9_lo
) << (1));
5676 tmp_absval
= ((((((f_disp9_hi
) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo
));
5677 f_disp9
= ((((pc
) + (tmp_absval
))) + (((GET_H_V32_NON_V32 ()) ? (0) : (2))));
5680 /* Record the fields for the semantic handler. */
5681 FLD (f_operand2
) = f_operand2
;
5682 FLD (i_o_pcrel
) = f_disp9
;
5683 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));
5685 #if WITH_PROFILE_MODEL_P
5686 /* Record the fields for profiling. */
5687 if (PROFILE_MODEL_P (current_cpu
))
5697 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5698 CGEN_INSN_INT insn
= base_insn
;
5699 #define FLD(f) abuf->fields.sfmt_bcc_b.f
5704 f_disp9_lo
= EXTRACT_LSB0_UINT (insn
, 16, 7, 7);
5705 f_disp9_hi
= EXTRACT_LSB0_INT (insn
, 16, 0, 1);
5709 tmp_abslo
= ((f_disp9_lo
) << (1));
5710 tmp_absval
= ((((((f_disp9_hi
) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo
));
5711 f_disp9
= ((((pc
) + (tmp_absval
))) + (((GET_H_V32_NON_V32 ()) ? (0) : (2))));
5714 /* Record the fields for the semantic handler. */
5715 FLD (i_o_pcrel
) = f_disp9
;
5716 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ba_b", "o_pcrel 0x%x", 'x', f_disp9
, (char *) 0));
5718 #if WITH_PROFILE_MODEL_P
5719 /* Record the fields for profiling. */
5720 if (PROFILE_MODEL_P (current_cpu
))
5730 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5731 CGEN_INSN_INT insn
= base_insn
;
5732 #define FLD(f) abuf->fields.sfmt_bcc_w.f
5733 SI f_indir_pc__word_pcrel
;
5735 /* Contents of trailing part of insn. */
5738 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
5739 f_indir_pc__word_pcrel
= ((EXTHISI (((HI
) (UINT
) ((0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0)))))) + (((pc
) + (((GET_H_V32_NON_V32 ()) ? (0) : (4))))));
5740 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5742 /* Record the fields for the semantic handler. */
5743 FLD (f_operand2
) = f_operand2
;
5744 FLD (i_o_word_pcrel
) = f_indir_pc__word_pcrel
;
5745 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));
5747 #if WITH_PROFILE_MODEL_P
5748 /* Record the fields for profiling. */
5749 if (PROFILE_MODEL_P (current_cpu
))
5759 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5760 CGEN_INSN_INT insn
= base_insn
;
5761 #define FLD(f) abuf->fields.sfmt_bcc_w.f
5762 SI f_indir_pc__word_pcrel
;
5763 /* Contents of trailing part of insn. */
5766 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
5767 f_indir_pc__word_pcrel
= ((EXTHISI (((HI
) (UINT
) ((0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0)))))) + (((pc
) + (((GET_H_V32_NON_V32 ()) ? (0) : (4))))));
5769 /* Record the fields for the semantic handler. */
5770 FLD (i_o_word_pcrel
) = f_indir_pc__word_pcrel
;
5771 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_ba_w", "o_word_pcrel 0x%x", 'x', f_indir_pc__word_pcrel
, (char *) 0));
5773 #if WITH_PROFILE_MODEL_P
5774 /* Record the fields for profiling. */
5775 if (PROFILE_MODEL_P (current_cpu
))
5783 extract_sfmt_jump_r
:
5785 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5786 CGEN_INSN_INT insn
= base_insn
;
5787 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
5791 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5792 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5794 /* Record the fields for the semantic handler. */
5795 FLD (f_operand1
) = f_operand1
;
5796 FLD (f_operand2
) = f_operand2
;
5797 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_jump_r", "f_operand1 0x%x", 'x', f_operand1
, "f_operand2 0x%x", 'x', f_operand2
, (char *) 0));
5799 #if WITH_PROFILE_MODEL_P
5800 /* Record the fields for profiling. */
5801 if (PROFILE_MODEL_P (current_cpu
))
5803 FLD (in_Rs
) = f_operand1
;
5804 FLD (out_Pd
) = f_operand2
;
5811 extract_sfmt_jump_m
:
5813 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5814 CGEN_INSN_INT insn
= base_insn
;
5815 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
5820 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5821 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
5822 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5824 /* Record the fields for the semantic handler. */
5825 FLD (f_operand1
) = f_operand1
;
5826 FLD (f_memmode
) = f_memmode
;
5827 FLD (f_operand2
) = f_operand2
;
5828 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_jump_m", "f_operand1 0x%x", 'x', f_operand1
, "f_memmode 0x%x", 'x', f_memmode
, "f_operand2 0x%x", 'x', f_operand2
, (char *) 0));
5830 #if WITH_PROFILE_MODEL_P
5831 /* Record the fields for profiling. */
5832 if (PROFILE_MODEL_P (current_cpu
))
5834 FLD (in_Rs
) = f_operand1
;
5835 FLD (out_Pd
) = f_operand2
;
5836 FLD (out_Rs
) = f_operand1
;
5843 extract_sfmt_jump_c
:
5845 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5846 CGEN_INSN_INT insn
= base_insn
;
5847 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
5848 INT f_indir_pc__dword
;
5850 /* Contents of trailing part of insn. */
5853 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
5854 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
5855 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5857 /* Record the fields for the semantic handler. */
5858 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
5859 FLD (f_operand2
) = f_operand2
;
5860 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_jump_c", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword
, "f_operand2 0x%x", 'x', f_operand2
, (char *) 0));
5862 #if WITH_PROFILE_MODEL_P
5863 /* Record the fields for profiling. */
5864 if (PROFILE_MODEL_P (current_cpu
))
5866 FLD (out_Pd
) = f_operand2
;
5875 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5876 CGEN_INSN_INT insn
= base_insn
;
5877 #define FLD(f) abuf->fields.sfmt_break.f
5880 f_u4
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5882 /* Record the fields for the semantic handler. */
5884 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_break", "f_u4 0x%x", 'x', f_u4
, (char *) 0));
5886 #if WITH_PROFILE_MODEL_P
5887 /* Record the fields for profiling. */
5888 if (PROFILE_MODEL_P (current_cpu
))
5896 extract_sfmt_bound_m_b_m
:
5898 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5899 CGEN_INSN_INT insn
= base_insn
;
5900 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
5905 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5906 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
5907 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5909 /* Record the fields for the semantic handler. */
5910 FLD (f_operand2
) = f_operand2
;
5911 FLD (f_operand1
) = f_operand1
;
5912 FLD (f_memmode
) = f_memmode
;
5913 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_bound_m_b_m", "f_operand2 0x%x", 'x', f_operand2
, "f_operand1 0x%x", 'x', f_operand1
, "f_memmode 0x%x", 'x', f_memmode
, (char *) 0));
5915 #if WITH_PROFILE_MODEL_P
5916 /* Record the fields for profiling. */
5917 if (PROFILE_MODEL_P (current_cpu
))
5919 FLD (in_Rd
) = f_operand2
;
5920 FLD (in_Rs
) = f_operand1
;
5921 FLD (out_Rd
) = f_operand2
;
5922 FLD (out_Rs
) = f_operand1
;
5929 extract_sfmt_bound_m_w_m
:
5931 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5932 CGEN_INSN_INT insn
= base_insn
;
5933 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
5938 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5939 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
5940 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5942 /* Record the fields for the semantic handler. */
5943 FLD (f_operand2
) = f_operand2
;
5944 FLD (f_operand1
) = f_operand1
;
5945 FLD (f_memmode
) = f_memmode
;
5946 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_bound_m_w_m", "f_operand2 0x%x", 'x', f_operand2
, "f_operand1 0x%x", 'x', f_operand1
, "f_memmode 0x%x", 'x', f_memmode
, (char *) 0));
5948 #if WITH_PROFILE_MODEL_P
5949 /* Record the fields for profiling. */
5950 if (PROFILE_MODEL_P (current_cpu
))
5952 FLD (in_Rd
) = f_operand2
;
5953 FLD (in_Rs
) = f_operand1
;
5954 FLD (out_Rd
) = f_operand2
;
5955 FLD (out_Rs
) = f_operand1
;
5962 extract_sfmt_bound_m_d_m
:
5964 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5965 CGEN_INSN_INT insn
= base_insn
;
5966 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
5971 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
5972 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
5973 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
5975 /* Record the fields for the semantic handler. */
5976 FLD (f_operand2
) = f_operand2
;
5977 FLD (f_operand1
) = f_operand1
;
5978 FLD (f_memmode
) = f_memmode
;
5979 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_bound_m_d_m", "f_operand2 0x%x", 'x', f_operand2
, "f_operand1 0x%x", 'x', f_operand1
, "f_memmode 0x%x", 'x', f_memmode
, (char *) 0));
5981 #if WITH_PROFILE_MODEL_P
5982 /* Record the fields for profiling. */
5983 if (PROFILE_MODEL_P (current_cpu
))
5985 FLD (in_Rd
) = f_operand2
;
5986 FLD (in_Rs
) = f_operand1
;
5987 FLD (out_Rd
) = f_operand2
;
5988 FLD (out_Rs
) = f_operand1
;
5995 extract_sfmt_bound_cb
:
5997 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
5998 CGEN_INSN_INT insn
= base_insn
;
5999 #define FLD(f) abuf->fields.sfmt_bound_cb.f
6000 INT f_indir_pc__byte
;
6002 /* Contents of trailing part of insn. */
6005 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
6006 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
6007 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
6009 /* Record the fields for the semantic handler. */
6010 FLD (f_operand2
) = f_operand2
;
6011 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
6012 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));
6014 #if WITH_PROFILE_MODEL_P
6015 /* Record the fields for profiling. */
6016 if (PROFILE_MODEL_P (current_cpu
))
6018 FLD (in_Rd
) = f_operand2
;
6019 FLD (out_Rd
) = f_operand2
;
6026 extract_sfmt_bound_cw
:
6028 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
6029 CGEN_INSN_INT insn
= base_insn
;
6030 #define FLD(f) abuf->fields.sfmt_bound_cw.f
6031 INT f_indir_pc__word
;
6033 /* Contents of trailing part of insn. */
6036 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
6037 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
6038 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
6040 /* Record the fields for the semantic handler. */
6041 FLD (f_operand2
) = f_operand2
;
6042 FLD (f_indir_pc__word
) = f_indir_pc__word
;
6043 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));
6045 #if WITH_PROFILE_MODEL_P
6046 /* Record the fields for profiling. */
6047 if (PROFILE_MODEL_P (current_cpu
))
6049 FLD (in_Rd
) = f_operand2
;
6050 FLD (out_Rd
) = f_operand2
;
6057 extract_sfmt_bound_cd
:
6059 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
6060 CGEN_INSN_INT insn
= base_insn
;
6061 #define FLD(f) abuf->fields.sfmt_bound_cd.f
6062 INT f_indir_pc__dword
;
6064 /* Contents of trailing part of insn. */
6067 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
6068 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
6069 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
6071 /* Record the fields for the semantic handler. */
6072 FLD (f_operand2
) = f_operand2
;
6073 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
6074 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));
6076 #if WITH_PROFILE_MODEL_P
6077 /* Record the fields for profiling. */
6078 if (PROFILE_MODEL_P (current_cpu
))
6080 FLD (in_Rd
) = f_operand2
;
6081 FLD (out_Rd
) = f_operand2
;
6090 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
6091 CGEN_INSN_INT insn
= base_insn
;
6092 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
6096 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
6097 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
6099 /* Record the fields for the semantic handler. */
6100 FLD (f_operand2
) = f_operand2
;
6101 FLD (f_operand1
) = f_operand1
;
6102 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));
6104 #if WITH_PROFILE_MODEL_P
6105 /* Record the fields for profiling. */
6106 if (PROFILE_MODEL_P (current_cpu
))
6108 FLD (out_Rs
) = f_operand1
;
6117 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
6118 CGEN_INSN_INT insn
= base_insn
;
6119 #define FLD(f) abuf->fields.sfmt_addoq.f
6123 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
6124 f_s8
= EXTRACT_LSB0_INT (insn
, 16, 7, 8);
6126 /* Record the fields for the semantic handler. */
6127 FLD (f_operand2
) = f_operand2
;
6129 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));
6131 #if WITH_PROFILE_MODEL_P
6132 /* Record the fields for profiling. */
6133 if (PROFILE_MODEL_P (current_cpu
))
6135 FLD (in_Rd
) = f_operand2
;
6142 extract_sfmt_bdapqpc
:
6144 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
6145 CGEN_INSN_INT insn
= base_insn
;
6146 #define FLD(f) abuf->fields.sfmt_addoq.f
6149 f_s8
= EXTRACT_LSB0_INT (insn
, 16, 7, 8);
6151 /* Record the fields for the semantic handler. */
6153 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_bdapqpc", "f_s8 0x%x", 'x', f_s8
, (char *) 0));
6155 #if WITH_PROFILE_MODEL_P
6156 /* Record the fields for profiling. */
6157 if (PROFILE_MODEL_P (current_cpu
))
6165 extract_sfmt_bdap_32_pc
:
6167 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
6168 CGEN_INSN_INT insn
= base_insn
;
6169 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
6170 INT f_indir_pc__dword
;
6171 /* Contents of trailing part of insn. */
6174 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
6175 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
6177 /* Record the fields for the semantic handler. */
6178 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
6179 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_bdap_32_pc", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword
, (char *) 0));
6181 #if WITH_PROFILE_MODEL_P
6182 /* Record the fields for profiling. */
6183 if (PROFILE_MODEL_P (current_cpu
))
6191 extract_sfmt_move_m_pcplus_p0
:
6193 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
6194 CGEN_INSN_INT insn
= base_insn
;
6195 #define FLD(f) abuf->fields.sfmt_move_m_spplus_p8.f
6198 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
6200 /* Record the fields for the semantic handler. */
6201 FLD (f_memmode
) = f_memmode
;
6202 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_move_m_pcplus_p0", "f_memmode 0x%x", 'x', f_memmode
, (char *) 0));
6204 #if WITH_PROFILE_MODEL_P
6205 /* Record the fields for profiling. */
6206 if (PROFILE_MODEL_P (current_cpu
))
6214 extract_sfmt_move_m_spplus_p8
:
6216 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
6217 CGEN_INSN_INT insn
= base_insn
;
6218 #define FLD(f) abuf->fields.sfmt_move_m_spplus_p8.f
6221 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
6223 /* Record the fields for the semantic handler. */
6224 FLD (f_memmode
) = f_memmode
;
6225 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_move_m_spplus_p8", "f_memmode 0x%x", 'x', f_memmode
, (char *) 0));
6227 #if WITH_PROFILE_MODEL_P
6228 /* Record the fields for profiling. */
6229 if (PROFILE_MODEL_P (current_cpu
))
6231 FLD (in_h_gr_SI_14
) = 14;
6232 FLD (out_h_gr_SI_14
) = 14;
6239 extract_sfmt_addo_m_b_m
:
6241 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
6242 CGEN_INSN_INT insn
= base_insn
;
6243 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
6248 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
6249 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
6250 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
6252 /* Record the fields for the semantic handler. */
6253 FLD (f_operand2
) = f_operand2
;
6254 FLD (f_operand1
) = f_operand1
;
6255 FLD (f_memmode
) = f_memmode
;
6256 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));
6258 #if WITH_PROFILE_MODEL_P
6259 /* Record the fields for profiling. */
6260 if (PROFILE_MODEL_P (current_cpu
))
6262 FLD (in_Rd
) = f_operand2
;
6263 FLD (in_Rs
) = f_operand1
;
6264 FLD (out_Rs
) = f_operand1
;
6271 extract_sfmt_addo_m_w_m
:
6273 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
6274 CGEN_INSN_INT insn
= base_insn
;
6275 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
6280 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
6281 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
6282 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
6284 /* Record the fields for the semantic handler. */
6285 FLD (f_operand2
) = f_operand2
;
6286 FLD (f_operand1
) = f_operand1
;
6287 FLD (f_memmode
) = f_memmode
;
6288 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));
6290 #if WITH_PROFILE_MODEL_P
6291 /* Record the fields for profiling. */
6292 if (PROFILE_MODEL_P (current_cpu
))
6294 FLD (in_Rd
) = f_operand2
;
6295 FLD (in_Rs
) = f_operand1
;
6296 FLD (out_Rs
) = f_operand1
;
6303 extract_sfmt_addo_m_d_m
:
6305 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
6306 CGEN_INSN_INT insn
= base_insn
;
6307 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
6312 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
6313 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
6314 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
6316 /* Record the fields for the semantic handler. */
6317 FLD (f_operand2
) = f_operand2
;
6318 FLD (f_operand1
) = f_operand1
;
6319 FLD (f_memmode
) = f_memmode
;
6320 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));
6322 #if WITH_PROFILE_MODEL_P
6323 /* Record the fields for profiling. */
6324 if (PROFILE_MODEL_P (current_cpu
))
6326 FLD (in_Rd
) = f_operand2
;
6327 FLD (in_Rs
) = f_operand1
;
6328 FLD (out_Rs
) = f_operand1
;
6335 extract_sfmt_addo_cb
:
6337 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
6338 CGEN_INSN_INT insn
= base_insn
;
6339 #define FLD(f) abuf->fields.sfmt_bound_cb.f
6340 INT f_indir_pc__byte
;
6342 /* Contents of trailing part of insn. */
6345 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
6346 f_indir_pc__byte
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
6347 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
6349 /* Record the fields for the semantic handler. */
6350 FLD (f_operand2
) = f_operand2
;
6351 FLD (f_indir_pc__byte
) = f_indir_pc__byte
;
6352 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));
6354 #if WITH_PROFILE_MODEL_P
6355 /* Record the fields for profiling. */
6356 if (PROFILE_MODEL_P (current_cpu
))
6358 FLD (in_Rd
) = f_operand2
;
6365 extract_sfmt_addo_cw
:
6367 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
6368 CGEN_INSN_INT insn
= base_insn
;
6369 #define FLD(f) abuf->fields.sfmt_bound_cw.f
6370 INT f_indir_pc__word
;
6372 /* Contents of trailing part of insn. */
6375 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
6376 f_indir_pc__word
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 15, 16) << 0));
6377 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
6379 /* Record the fields for the semantic handler. */
6380 FLD (f_operand2
) = f_operand2
;
6381 FLD (f_indir_pc__word
) = f_indir_pc__word
;
6382 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));
6384 #if WITH_PROFILE_MODEL_P
6385 /* Record the fields for profiling. */
6386 if (PROFILE_MODEL_P (current_cpu
))
6388 FLD (in_Rd
) = f_operand2
;
6395 extract_sfmt_addo_cd
:
6397 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
6398 CGEN_INSN_INT insn
= base_insn
;
6399 #define FLD(f) abuf->fields.sfmt_bound_cd.f
6400 INT f_indir_pc__dword
;
6402 /* Contents of trailing part of insn. */
6405 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
6406 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
6407 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
6409 /* Record the fields for the semantic handler. */
6410 FLD (f_operand2
) = f_operand2
;
6411 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
6412 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));
6414 #if WITH_PROFILE_MODEL_P
6415 /* Record the fields for profiling. */
6416 if (PROFILE_MODEL_P (current_cpu
))
6418 FLD (in_Rd
) = f_operand2
;
6427 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
6428 CGEN_INSN_INT insn
= base_insn
;
6429 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
6433 f_memmode
= EXTRACT_LSB0_UINT (insn
, 16, 10, 1);
6434 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
6436 /* Record the fields for the semantic handler. */
6437 FLD (f_operand1
) = f_operand1
;
6438 FLD (f_memmode
) = f_memmode
;
6439 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dip_m", "f_operand1 0x%x", 'x', f_operand1
, "f_memmode 0x%x", 'x', f_memmode
, (char *) 0));
6441 #if WITH_PROFILE_MODEL_P
6442 /* Record the fields for profiling. */
6443 if (PROFILE_MODEL_P (current_cpu
))
6445 FLD (in_Rs
) = f_operand1
;
6446 FLD (out_Rs
) = f_operand1
;
6455 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
6456 CGEN_INSN_INT insn
= base_insn
;
6457 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
6458 INT f_indir_pc__dword
;
6459 /* Contents of trailing part of insn. */
6462 word_1
= GETIMEMUSI (current_cpu
, pc
+ 2);
6463 f_indir_pc__dword
= (0|(EXTRACT_LSB0_UINT (word_1
, 32, 31, 32) << 0));
6465 /* Record the fields for the semantic handler. */
6466 FLD (f_indir_pc__dword
) = f_indir_pc__dword
;
6467 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_dip_c", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword
, (char *) 0));
6473 extract_sfmt_addi_acr_b_r
:
6475 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
6476 CGEN_INSN_INT insn
= base_insn
;
6477 #define FLD(f) abuf->fields.sfmt_add_b_r.f
6481 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
6482 f_operand1
= EXTRACT_LSB0_UINT (insn
, 16, 3, 4);
6484 /* Record the fields for the semantic handler. */
6485 FLD (f_operand2
) = f_operand2
;
6486 FLD (f_operand1
) = f_operand1
;
6487 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));
6489 #if WITH_PROFILE_MODEL_P
6490 /* Record the fields for profiling. */
6491 if (PROFILE_MODEL_P (current_cpu
))
6493 FLD (in_Rd
) = f_operand2
;
6494 FLD (in_Rs
) = f_operand1
;
6501 extract_sfmt_biap_pc_b_r
:
6503 const IDESC
*idesc
= &crisv10f_insn_data
[itype
];
6504 CGEN_INSN_INT insn
= base_insn
;
6505 #define FLD(f) abuf->fields.sfmt_addoq.f
6508 f_operand2
= EXTRACT_LSB0_UINT (insn
, 16, 15, 4);
6510 /* Record the fields for the semantic handler. */
6511 FLD (f_operand2
) = f_operand2
;
6512 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_biap_pc_b_r", "f_operand2 0x%x", 'x', f_operand2
, (char *) 0));
6514 #if WITH_PROFILE_MODEL_P
6515 /* Record the fields for profiling. */
6516 if (PROFILE_MODEL_P (current_cpu
))
6518 FLD (in_Rd
) = f_operand2
;