1 /* Simulator instruction decoder for or1k32bf.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright 1996-2018 Free Software Foundation, Inc.
7 This file is part of the GNU simulators.
9 This file is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 3, or (at your option)
14 It is distributed in the hope that it will be useful, but WITHOUT
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
17 License for more details.
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, write to the Free Software Foundation, Inc.,
21 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
25 #define WANT_CPU or1k32bf
26 #define WANT_CPU_OR1K32BF
29 #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 or1k32bf_insn_data
[OR1K32BF_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 or1k32bf_insn_sem
[] =
43 { VIRTUAL_INSN_X_INVALID
, OR1K32BF_INSN_X_INVALID
, OR1K32BF_SFMT_EMPTY
},
44 { VIRTUAL_INSN_X_AFTER
, OR1K32BF_INSN_X_AFTER
, OR1K32BF_SFMT_EMPTY
},
45 { VIRTUAL_INSN_X_BEFORE
, OR1K32BF_INSN_X_BEFORE
, OR1K32BF_SFMT_EMPTY
},
46 { VIRTUAL_INSN_X_CTI_CHAIN
, OR1K32BF_INSN_X_CTI_CHAIN
, OR1K32BF_SFMT_EMPTY
},
47 { VIRTUAL_INSN_X_CHAIN
, OR1K32BF_INSN_X_CHAIN
, OR1K32BF_SFMT_EMPTY
},
48 { VIRTUAL_INSN_X_BEGIN
, OR1K32BF_INSN_X_BEGIN
, OR1K32BF_SFMT_EMPTY
},
49 { OR1K_INSN_L_J
, OR1K32BF_INSN_L_J
, OR1K32BF_SFMT_L_J
},
50 { OR1K_INSN_L_ADRP
, OR1K32BF_INSN_L_ADRP
, OR1K32BF_SFMT_L_ADRP
},
51 { OR1K_INSN_L_JAL
, OR1K32BF_INSN_L_JAL
, OR1K32BF_SFMT_L_JAL
},
52 { OR1K_INSN_L_JR
, OR1K32BF_INSN_L_JR
, OR1K32BF_SFMT_L_JR
},
53 { OR1K_INSN_L_JALR
, OR1K32BF_INSN_L_JALR
, OR1K32BF_SFMT_L_JALR
},
54 { OR1K_INSN_L_BNF
, OR1K32BF_INSN_L_BNF
, OR1K32BF_SFMT_L_BNF
},
55 { OR1K_INSN_L_BF
, OR1K32BF_INSN_L_BF
, OR1K32BF_SFMT_L_BNF
},
56 { OR1K_INSN_L_TRAP
, OR1K32BF_INSN_L_TRAP
, OR1K32BF_SFMT_L_TRAP
},
57 { OR1K_INSN_L_SYS
, OR1K32BF_INSN_L_SYS
, OR1K32BF_SFMT_L_TRAP
},
58 { OR1K_INSN_L_MSYNC
, OR1K32BF_INSN_L_MSYNC
, OR1K32BF_SFMT_L_MSYNC
},
59 { OR1K_INSN_L_PSYNC
, OR1K32BF_INSN_L_PSYNC
, OR1K32BF_SFMT_L_MSYNC
},
60 { OR1K_INSN_L_CSYNC
, OR1K32BF_INSN_L_CSYNC
, OR1K32BF_SFMT_L_MSYNC
},
61 { OR1K_INSN_L_RFE
, OR1K32BF_INSN_L_RFE
, OR1K32BF_SFMT_L_MSYNC
},
62 { OR1K_INSN_L_NOP_IMM
, OR1K32BF_INSN_L_NOP_IMM
, OR1K32BF_SFMT_L_NOP_IMM
},
63 { OR1K_INSN_L_MOVHI
, OR1K32BF_INSN_L_MOVHI
, OR1K32BF_SFMT_L_MOVHI
},
64 { OR1K_INSN_L_MACRC
, OR1K32BF_INSN_L_MACRC
, OR1K32BF_SFMT_L_MACRC
},
65 { OR1K_INSN_L_MFSPR
, OR1K32BF_INSN_L_MFSPR
, OR1K32BF_SFMT_L_MFSPR
},
66 { OR1K_INSN_L_MTSPR
, OR1K32BF_INSN_L_MTSPR
, OR1K32BF_SFMT_L_MTSPR
},
67 { OR1K_INSN_L_LWZ
, OR1K32BF_INSN_L_LWZ
, OR1K32BF_SFMT_L_LWZ
},
68 { OR1K_INSN_L_LWS
, OR1K32BF_INSN_L_LWS
, OR1K32BF_SFMT_L_LWS
},
69 { OR1K_INSN_L_LWA
, OR1K32BF_INSN_L_LWA
, OR1K32BF_SFMT_L_LWA
},
70 { OR1K_INSN_L_LBZ
, OR1K32BF_INSN_L_LBZ
, OR1K32BF_SFMT_L_LBZ
},
71 { OR1K_INSN_L_LBS
, OR1K32BF_INSN_L_LBS
, OR1K32BF_SFMT_L_LBS
},
72 { OR1K_INSN_L_LHZ
, OR1K32BF_INSN_L_LHZ
, OR1K32BF_SFMT_L_LHZ
},
73 { OR1K_INSN_L_LHS
, OR1K32BF_INSN_L_LHS
, OR1K32BF_SFMT_L_LHS
},
74 { OR1K_INSN_L_SW
, OR1K32BF_INSN_L_SW
, OR1K32BF_SFMT_L_SW
},
75 { OR1K_INSN_L_SB
, OR1K32BF_INSN_L_SB
, OR1K32BF_SFMT_L_SB
},
76 { OR1K_INSN_L_SH
, OR1K32BF_INSN_L_SH
, OR1K32BF_SFMT_L_SH
},
77 { OR1K_INSN_L_SWA
, OR1K32BF_INSN_L_SWA
, OR1K32BF_SFMT_L_SWA
},
78 { OR1K_INSN_L_SLL
, OR1K32BF_INSN_L_SLL
, OR1K32BF_SFMT_L_SLL
},
79 { OR1K_INSN_L_SLLI
, OR1K32BF_INSN_L_SLLI
, OR1K32BF_SFMT_L_SLLI
},
80 { OR1K_INSN_L_SRL
, OR1K32BF_INSN_L_SRL
, OR1K32BF_SFMT_L_SLL
},
81 { OR1K_INSN_L_SRLI
, OR1K32BF_INSN_L_SRLI
, OR1K32BF_SFMT_L_SLLI
},
82 { OR1K_INSN_L_SRA
, OR1K32BF_INSN_L_SRA
, OR1K32BF_SFMT_L_SLL
},
83 { OR1K_INSN_L_SRAI
, OR1K32BF_INSN_L_SRAI
, OR1K32BF_SFMT_L_SLLI
},
84 { OR1K_INSN_L_ROR
, OR1K32BF_INSN_L_ROR
, OR1K32BF_SFMT_L_SLL
},
85 { OR1K_INSN_L_RORI
, OR1K32BF_INSN_L_RORI
, OR1K32BF_SFMT_L_SLLI
},
86 { OR1K_INSN_L_AND
, OR1K32BF_INSN_L_AND
, OR1K32BF_SFMT_L_AND
},
87 { OR1K_INSN_L_OR
, OR1K32BF_INSN_L_OR
, OR1K32BF_SFMT_L_AND
},
88 { OR1K_INSN_L_XOR
, OR1K32BF_INSN_L_XOR
, OR1K32BF_SFMT_L_AND
},
89 { OR1K_INSN_L_ADD
, OR1K32BF_INSN_L_ADD
, OR1K32BF_SFMT_L_ADD
},
90 { OR1K_INSN_L_SUB
, OR1K32BF_INSN_L_SUB
, OR1K32BF_SFMT_L_ADD
},
91 { OR1K_INSN_L_ADDC
, OR1K32BF_INSN_L_ADDC
, OR1K32BF_SFMT_L_ADDC
},
92 { OR1K_INSN_L_MUL
, OR1K32BF_INSN_L_MUL
, OR1K32BF_SFMT_L_MUL
},
93 { OR1K_INSN_L_MULD
, OR1K32BF_INSN_L_MULD
, OR1K32BF_SFMT_L_MULD
},
94 { OR1K_INSN_L_MULU
, OR1K32BF_INSN_L_MULU
, OR1K32BF_SFMT_L_MULU
},
95 { OR1K_INSN_L_MULDU
, OR1K32BF_INSN_L_MULDU
, OR1K32BF_SFMT_L_MULD
},
96 { OR1K_INSN_L_DIV
, OR1K32BF_INSN_L_DIV
, OR1K32BF_SFMT_L_DIV
},
97 { OR1K_INSN_L_DIVU
, OR1K32BF_INSN_L_DIVU
, OR1K32BF_SFMT_L_DIVU
},
98 { OR1K_INSN_L_FF1
, OR1K32BF_INSN_L_FF1
, OR1K32BF_SFMT_L_FF1
},
99 { OR1K_INSN_L_FL1
, OR1K32BF_INSN_L_FL1
, OR1K32BF_SFMT_L_FF1
},
100 { OR1K_INSN_L_ANDI
, OR1K32BF_INSN_L_ANDI
, OR1K32BF_SFMT_L_MFSPR
},
101 { OR1K_INSN_L_ORI
, OR1K32BF_INSN_L_ORI
, OR1K32BF_SFMT_L_MFSPR
},
102 { OR1K_INSN_L_XORI
, OR1K32BF_INSN_L_XORI
, OR1K32BF_SFMT_L_XORI
},
103 { OR1K_INSN_L_ADDI
, OR1K32BF_INSN_L_ADDI
, OR1K32BF_SFMT_L_ADDI
},
104 { OR1K_INSN_L_ADDIC
, OR1K32BF_INSN_L_ADDIC
, OR1K32BF_SFMT_L_ADDIC
},
105 { OR1K_INSN_L_MULI
, OR1K32BF_INSN_L_MULI
, OR1K32BF_SFMT_L_MULI
},
106 { OR1K_INSN_L_EXTHS
, OR1K32BF_INSN_L_EXTHS
, OR1K32BF_SFMT_L_EXTHS
},
107 { OR1K_INSN_L_EXTBS
, OR1K32BF_INSN_L_EXTBS
, OR1K32BF_SFMT_L_EXTHS
},
108 { OR1K_INSN_L_EXTHZ
, OR1K32BF_INSN_L_EXTHZ
, OR1K32BF_SFMT_L_EXTHS
},
109 { OR1K_INSN_L_EXTBZ
, OR1K32BF_INSN_L_EXTBZ
, OR1K32BF_SFMT_L_EXTHS
},
110 { OR1K_INSN_L_EXTWS
, OR1K32BF_INSN_L_EXTWS
, OR1K32BF_SFMT_L_EXTHS
},
111 { OR1K_INSN_L_EXTWZ
, OR1K32BF_INSN_L_EXTWZ
, OR1K32BF_SFMT_L_EXTHS
},
112 { OR1K_INSN_L_CMOV
, OR1K32BF_INSN_L_CMOV
, OR1K32BF_SFMT_L_CMOV
},
113 { OR1K_INSN_L_SFGTS
, OR1K32BF_INSN_L_SFGTS
, OR1K32BF_SFMT_L_SFGTS
},
114 { OR1K_INSN_L_SFGTSI
, OR1K32BF_INSN_L_SFGTSI
, OR1K32BF_SFMT_L_SFGTSI
},
115 { OR1K_INSN_L_SFGTU
, OR1K32BF_INSN_L_SFGTU
, OR1K32BF_SFMT_L_SFGTS
},
116 { OR1K_INSN_L_SFGTUI
, OR1K32BF_INSN_L_SFGTUI
, OR1K32BF_SFMT_L_SFGTSI
},
117 { OR1K_INSN_L_SFGES
, OR1K32BF_INSN_L_SFGES
, OR1K32BF_SFMT_L_SFGTS
},
118 { OR1K_INSN_L_SFGESI
, OR1K32BF_INSN_L_SFGESI
, OR1K32BF_SFMT_L_SFGTSI
},
119 { OR1K_INSN_L_SFGEU
, OR1K32BF_INSN_L_SFGEU
, OR1K32BF_SFMT_L_SFGTS
},
120 { OR1K_INSN_L_SFGEUI
, OR1K32BF_INSN_L_SFGEUI
, OR1K32BF_SFMT_L_SFGTSI
},
121 { OR1K_INSN_L_SFLTS
, OR1K32BF_INSN_L_SFLTS
, OR1K32BF_SFMT_L_SFGTS
},
122 { OR1K_INSN_L_SFLTSI
, OR1K32BF_INSN_L_SFLTSI
, OR1K32BF_SFMT_L_SFGTSI
},
123 { OR1K_INSN_L_SFLTU
, OR1K32BF_INSN_L_SFLTU
, OR1K32BF_SFMT_L_SFGTS
},
124 { OR1K_INSN_L_SFLTUI
, OR1K32BF_INSN_L_SFLTUI
, OR1K32BF_SFMT_L_SFGTSI
},
125 { OR1K_INSN_L_SFLES
, OR1K32BF_INSN_L_SFLES
, OR1K32BF_SFMT_L_SFGTS
},
126 { OR1K_INSN_L_SFLESI
, OR1K32BF_INSN_L_SFLESI
, OR1K32BF_SFMT_L_SFGTSI
},
127 { OR1K_INSN_L_SFLEU
, OR1K32BF_INSN_L_SFLEU
, OR1K32BF_SFMT_L_SFGTS
},
128 { OR1K_INSN_L_SFLEUI
, OR1K32BF_INSN_L_SFLEUI
, OR1K32BF_SFMT_L_SFGTSI
},
129 { OR1K_INSN_L_SFEQ
, OR1K32BF_INSN_L_SFEQ
, OR1K32BF_SFMT_L_SFGTS
},
130 { OR1K_INSN_L_SFEQI
, OR1K32BF_INSN_L_SFEQI
, OR1K32BF_SFMT_L_SFGTSI
},
131 { OR1K_INSN_L_SFNE
, OR1K32BF_INSN_L_SFNE
, OR1K32BF_SFMT_L_SFGTS
},
132 { OR1K_INSN_L_SFNEI
, OR1K32BF_INSN_L_SFNEI
, OR1K32BF_SFMT_L_SFGTSI
},
133 { OR1K_INSN_L_MAC
, OR1K32BF_INSN_L_MAC
, OR1K32BF_SFMT_L_MAC
},
134 { OR1K_INSN_L_MACI
, OR1K32BF_INSN_L_MACI
, OR1K32BF_SFMT_L_MACI
},
135 { OR1K_INSN_L_MACU
, OR1K32BF_INSN_L_MACU
, OR1K32BF_SFMT_L_MACU
},
136 { OR1K_INSN_L_MSB
, OR1K32BF_INSN_L_MSB
, OR1K32BF_SFMT_L_MAC
},
137 { OR1K_INSN_L_MSBU
, OR1K32BF_INSN_L_MSBU
, OR1K32BF_SFMT_L_MACU
},
138 { OR1K_INSN_L_CUST1
, OR1K32BF_INSN_L_CUST1
, OR1K32BF_SFMT_L_MSYNC
},
139 { OR1K_INSN_L_CUST2
, OR1K32BF_INSN_L_CUST2
, OR1K32BF_SFMT_L_MSYNC
},
140 { OR1K_INSN_L_CUST3
, OR1K32BF_INSN_L_CUST3
, OR1K32BF_SFMT_L_MSYNC
},
141 { OR1K_INSN_L_CUST4
, OR1K32BF_INSN_L_CUST4
, OR1K32BF_SFMT_L_MSYNC
},
142 { OR1K_INSN_L_CUST5
, OR1K32BF_INSN_L_CUST5
, OR1K32BF_SFMT_L_MSYNC
},
143 { OR1K_INSN_L_CUST6
, OR1K32BF_INSN_L_CUST6
, OR1K32BF_SFMT_L_MSYNC
},
144 { OR1K_INSN_L_CUST7
, OR1K32BF_INSN_L_CUST7
, OR1K32BF_SFMT_L_MSYNC
},
145 { OR1K_INSN_L_CUST8
, OR1K32BF_INSN_L_CUST8
, OR1K32BF_SFMT_L_MSYNC
},
146 { OR1K_INSN_LF_ADD_S
, OR1K32BF_INSN_LF_ADD_S
, OR1K32BF_SFMT_LF_ADD_S
},
147 { OR1K_INSN_LF_SUB_S
, OR1K32BF_INSN_LF_SUB_S
, OR1K32BF_SFMT_LF_ADD_S
},
148 { OR1K_INSN_LF_MUL_S
, OR1K32BF_INSN_LF_MUL_S
, OR1K32BF_SFMT_LF_ADD_S
},
149 { OR1K_INSN_LF_DIV_S
, OR1K32BF_INSN_LF_DIV_S
, OR1K32BF_SFMT_LF_ADD_S
},
150 { OR1K_INSN_LF_REM_S
, OR1K32BF_INSN_LF_REM_S
, OR1K32BF_SFMT_LF_ADD_S
},
151 { OR1K_INSN_LF_ITOF_S
, OR1K32BF_INSN_LF_ITOF_S
, OR1K32BF_SFMT_LF_ITOF_S
},
152 { OR1K_INSN_LF_FTOI_S
, OR1K32BF_INSN_LF_FTOI_S
, OR1K32BF_SFMT_LF_FTOI_S
},
153 { OR1K_INSN_LF_EQ_S
, OR1K32BF_INSN_LF_EQ_S
, OR1K32BF_SFMT_LF_EQ_S
},
154 { OR1K_INSN_LF_NE_S
, OR1K32BF_INSN_LF_NE_S
, OR1K32BF_SFMT_LF_EQ_S
},
155 { OR1K_INSN_LF_GE_S
, OR1K32BF_INSN_LF_GE_S
, OR1K32BF_SFMT_LF_EQ_S
},
156 { OR1K_INSN_LF_GT_S
, OR1K32BF_INSN_LF_GT_S
, OR1K32BF_SFMT_LF_EQ_S
},
157 { OR1K_INSN_LF_LT_S
, OR1K32BF_INSN_LF_LT_S
, OR1K32BF_SFMT_LF_EQ_S
},
158 { OR1K_INSN_LF_LE_S
, OR1K32BF_INSN_LF_LE_S
, OR1K32BF_SFMT_LF_EQ_S
},
159 { OR1K_INSN_LF_MADD_S
, OR1K32BF_INSN_LF_MADD_S
, OR1K32BF_SFMT_LF_MADD_S
},
160 { OR1K_INSN_LF_CUST1_S
, OR1K32BF_INSN_LF_CUST1_S
, OR1K32BF_SFMT_L_MSYNC
},
163 static const struct insn_sem or1k32bf_insn_sem_invalid
=
165 VIRTUAL_INSN_X_INVALID
, OR1K32BF_INSN_X_INVALID
, OR1K32BF_SFMT_EMPTY
168 /* Initialize an IDESC from the compile-time computable parts. */
171 init_idesc (SIM_CPU
*cpu
, IDESC
*id
, const struct insn_sem
*t
)
173 const CGEN_INSN
*insn_table
= CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu
))->init_entries
;
177 if ((int) t
->type
<= 0)
178 id
->idata
= & cgen_virtual_insn_table
[- (int) t
->type
];
180 id
->idata
= & insn_table
[t
->type
];
181 id
->attrs
= CGEN_INSN_ATTRS (id
->idata
);
182 /* Oh my god, a magic number. */
183 id
->length
= CGEN_INSN_BITSIZE (id
->idata
) / 8;
185 #if WITH_PROFILE_MODEL_P
186 id
->timing
= & MODEL_TIMING (CPU_MODEL (cpu
)) [t
->index
];
188 SIM_DESC sd
= CPU_STATE (cpu
);
189 SIM_ASSERT (t
->index
== id
->timing
->num
);
193 /* Semantic pointers are initialized elsewhere. */
196 /* Initialize the instruction descriptor table. */
199 or1k32bf_init_idesc_table (SIM_CPU
*cpu
)
202 const struct insn_sem
*t
,*tend
;
203 int tabsize
= OR1K32BF_INSN__MAX
;
204 IDESC
*table
= or1k32bf_insn_data
;
206 memset (table
, 0, tabsize
* sizeof (IDESC
));
208 /* First set all entries to the `invalid insn'. */
209 t
= & or1k32bf_insn_sem_invalid
;
210 for (id
= table
, tabend
= table
+ tabsize
; id
< tabend
; ++id
)
211 init_idesc (cpu
, id
, t
);
213 /* Now fill in the values for the chosen cpu. */
214 for (t
= or1k32bf_insn_sem
, tend
= t
+ sizeof (or1k32bf_insn_sem
) / sizeof (*t
);
217 init_idesc (cpu
, & table
[t
->index
], t
);
220 /* Link the IDESC table into the cpu. */
221 CPU_IDESC (cpu
) = table
;
224 /* Given an instruction, return a pointer to its IDESC entry. */
227 or1k32bf_decode (SIM_CPU
*current_cpu
, IADDR pc
,
228 CGEN_INSN_WORD base_insn
, CGEN_INSN_WORD entire_insn
,
231 /* Result of decoder. */
232 OR1K32BF_INSN_TYPE itype
;
235 CGEN_INSN_WORD insn
= base_insn
;
238 unsigned int val
= (((insn
>> 21) & (63 << 5)) | ((insn
>> 2) & (1 << 4)) | ((insn
>> 0) & (15 << 0)));
241 case 0 : /* fall through */
242 case 1 : /* fall through */
243 case 2 : /* fall through */
244 case 3 : /* fall through */
245 case 4 : /* fall through */
246 case 5 : /* fall through */
247 case 6 : /* fall through */
248 case 7 : /* fall through */
249 case 8 : /* fall through */
250 case 9 : /* fall through */
251 case 10 : /* fall through */
252 case 11 : /* fall through */
253 case 12 : /* fall through */
254 case 13 : /* fall through */
255 case 14 : /* fall through */
256 case 15 : /* fall through */
257 case 16 : /* fall through */
258 case 17 : /* fall through */
259 case 18 : /* fall through */
260 case 19 : /* fall through */
261 case 20 : /* fall through */
262 case 21 : /* fall through */
263 case 22 : /* fall through */
264 case 23 : /* fall through */
265 case 24 : /* fall through */
266 case 25 : /* fall through */
267 case 26 : /* fall through */
268 case 27 : /* fall through */
269 case 28 : /* fall through */
270 case 29 : /* fall through */
271 case 30 : /* fall through */
272 case 31 : itype
= OR1K32BF_INSN_L_J
; goto extract_sfmt_l_j
;
273 case 32 : /* fall through */
274 case 33 : /* fall through */
275 case 34 : /* fall through */
276 case 35 : /* fall through */
277 case 36 : /* fall through */
278 case 37 : /* fall through */
279 case 38 : /* fall through */
280 case 39 : /* fall through */
281 case 40 : /* fall through */
282 case 41 : /* fall through */
283 case 42 : /* fall through */
284 case 43 : /* fall through */
285 case 44 : /* fall through */
286 case 45 : /* fall through */
287 case 46 : /* fall through */
288 case 47 : /* fall through */
289 case 48 : /* fall through */
290 case 49 : /* fall through */
291 case 50 : /* fall through */
292 case 51 : /* fall through */
293 case 52 : /* fall through */
294 case 53 : /* fall through */
295 case 54 : /* fall through */
296 case 55 : /* fall through */
297 case 56 : /* fall through */
298 case 57 : /* fall through */
299 case 58 : /* fall through */
300 case 59 : /* fall through */
301 case 60 : /* fall through */
302 case 61 : /* fall through */
303 case 62 : /* fall through */
304 case 63 : itype
= OR1K32BF_INSN_L_JAL
; goto extract_sfmt_l_jal
;
305 case 64 : /* fall through */
306 case 65 : /* fall through */
307 case 66 : /* fall through */
308 case 67 : /* fall through */
309 case 68 : /* fall through */
310 case 69 : /* fall through */
311 case 70 : /* fall through */
312 case 71 : /* fall through */
313 case 72 : /* fall through */
314 case 73 : /* fall through */
315 case 74 : /* fall through */
316 case 75 : /* fall through */
317 case 76 : /* fall through */
318 case 77 : /* fall through */
319 case 78 : /* fall through */
320 case 79 : /* fall through */
321 case 80 : /* fall through */
322 case 81 : /* fall through */
323 case 82 : /* fall through */
324 case 83 : /* fall through */
325 case 84 : /* fall through */
326 case 85 : /* fall through */
327 case 86 : /* fall through */
328 case 87 : /* fall through */
329 case 88 : /* fall through */
330 case 89 : /* fall through */
331 case 90 : /* fall through */
332 case 91 : /* fall through */
333 case 92 : /* fall through */
334 case 93 : /* fall through */
335 case 94 : /* fall through */
336 case 95 : itype
= OR1K32BF_INSN_L_ADRP
; goto extract_sfmt_l_adrp
;
337 case 96 : /* fall through */
338 case 97 : /* fall through */
339 case 98 : /* fall through */
340 case 99 : /* fall through */
341 case 100 : /* fall through */
342 case 101 : /* fall through */
343 case 102 : /* fall through */
344 case 103 : /* fall through */
345 case 104 : /* fall through */
346 case 105 : /* fall through */
347 case 106 : /* fall through */
348 case 107 : /* fall through */
349 case 108 : /* fall through */
350 case 109 : /* fall through */
351 case 110 : /* fall through */
352 case 111 : /* fall through */
353 case 112 : /* fall through */
354 case 113 : /* fall through */
355 case 114 : /* fall through */
356 case 115 : /* fall through */
357 case 116 : /* fall through */
358 case 117 : /* fall through */
359 case 118 : /* fall through */
360 case 119 : /* fall through */
361 case 120 : /* fall through */
362 case 121 : /* fall through */
363 case 122 : /* fall through */
364 case 123 : /* fall through */
365 case 124 : /* fall through */
366 case 125 : /* fall through */
367 case 126 : /* fall through */
368 case 127 : itype
= OR1K32BF_INSN_L_BNF
; goto extract_sfmt_l_bnf
;
369 case 128 : /* fall through */
370 case 129 : /* fall through */
371 case 130 : /* fall through */
372 case 131 : /* fall through */
373 case 132 : /* fall through */
374 case 133 : /* fall through */
375 case 134 : /* fall through */
376 case 135 : /* fall through */
377 case 136 : /* fall through */
378 case 137 : /* fall through */
379 case 138 : /* fall through */
380 case 139 : /* fall through */
381 case 140 : /* fall through */
382 case 141 : /* fall through */
383 case 142 : /* fall through */
384 case 143 : /* fall through */
385 case 144 : /* fall through */
386 case 145 : /* fall through */
387 case 146 : /* fall through */
388 case 147 : /* fall through */
389 case 148 : /* fall through */
390 case 149 : /* fall through */
391 case 150 : /* fall through */
392 case 151 : /* fall through */
393 case 152 : /* fall through */
394 case 153 : /* fall through */
395 case 154 : /* fall through */
396 case 155 : /* fall through */
397 case 156 : /* fall through */
398 case 157 : /* fall through */
399 case 158 : /* fall through */
400 case 159 : itype
= OR1K32BF_INSN_L_BF
; goto extract_sfmt_l_bnf
;
401 case 160 : /* fall through */
402 case 161 : /* fall through */
403 case 162 : /* fall through */
404 case 163 : /* fall through */
405 case 164 : /* fall through */
406 case 165 : /* fall through */
407 case 166 : /* fall through */
408 case 167 : /* fall through */
409 case 168 : /* fall through */
410 case 169 : /* fall through */
411 case 170 : /* fall through */
412 case 171 : /* fall through */
413 case 172 : /* fall through */
414 case 173 : /* fall through */
415 case 174 : /* fall through */
416 case 175 : /* fall through */
417 case 176 : /* fall through */
418 case 177 : /* fall through */
419 case 178 : /* fall through */
420 case 179 : /* fall through */
421 case 180 : /* fall through */
422 case 181 : /* fall through */
423 case 182 : /* fall through */
424 case 183 : /* fall through */
425 case 184 : /* fall through */
426 case 185 : /* fall through */
427 case 186 : /* fall through */
428 case 187 : /* fall through */
429 case 188 : /* fall through */
430 case 189 : /* fall through */
431 case 190 : /* fall through */
433 if ((entire_insn
& 0xffff0000) == 0x15000000)
434 { itype
= OR1K32BF_INSN_L_NOP_IMM
; goto extract_sfmt_l_nop_imm
; }
435 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
438 unsigned int val
= (((insn
>> 16) & (1 << 0)));
442 if ((entire_insn
& 0xfc1f0000) == 0x18000000)
443 { itype
= OR1K32BF_INSN_L_MOVHI
; goto extract_sfmt_l_movhi
; }
444 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
446 if ((entire_insn
& 0xfc1fffff) == 0x18010000)
447 { itype
= OR1K32BF_INSN_L_MACRC
; goto extract_sfmt_l_macrc
; }
448 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
449 default : itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
452 case 193 : /* fall through */
453 case 194 : /* fall through */
454 case 195 : /* fall through */
455 case 196 : /* fall through */
456 case 197 : /* fall through */
457 case 198 : /* fall through */
458 case 199 : /* fall through */
459 case 200 : /* fall through */
460 case 201 : /* fall through */
461 case 202 : /* fall through */
462 case 203 : /* fall through */
463 case 204 : /* fall through */
464 case 205 : /* fall through */
465 case 206 : /* fall through */
466 case 207 : /* fall through */
467 case 208 : /* fall through */
468 case 209 : /* fall through */
469 case 210 : /* fall through */
470 case 211 : /* fall through */
471 case 212 : /* fall through */
472 case 213 : /* fall through */
473 case 214 : /* fall through */
474 case 215 : /* fall through */
475 case 216 : /* fall through */
476 case 217 : /* fall through */
477 case 218 : /* fall through */
478 case 219 : /* fall through */
479 case 220 : /* fall through */
480 case 221 : /* fall through */
481 case 222 : /* fall through */
483 if ((entire_insn
& 0xfc1f0000) == 0x18000000)
484 { itype
= OR1K32BF_INSN_L_MOVHI
; goto extract_sfmt_l_movhi
; }
485 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
488 unsigned int val
= (((insn
>> 23) & (7 << 0)));
492 if ((entire_insn
& 0xffff0000) == 0x20000000)
493 { itype
= OR1K32BF_INSN_L_SYS
; goto extract_sfmt_l_trap
; }
494 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
496 if ((entire_insn
& 0xffff0000) == 0x21000000)
497 { itype
= OR1K32BF_INSN_L_TRAP
; goto extract_sfmt_l_trap
; }
498 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
500 if ((entire_insn
& 0xffffffff) == 0x22000000)
501 { itype
= OR1K32BF_INSN_L_MSYNC
; goto extract_sfmt_l_msync
; }
502 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
504 if ((entire_insn
& 0xffffffff) == 0x22800000)
505 { itype
= OR1K32BF_INSN_L_PSYNC
; goto extract_sfmt_l_msync
; }
506 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
508 if ((entire_insn
& 0xffffffff) == 0x23000000)
509 { itype
= OR1K32BF_INSN_L_CSYNC
; goto extract_sfmt_l_msync
; }
510 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
511 default : itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
514 case 257 : /* fall through */
515 case 258 : /* fall through */
516 case 259 : /* fall through */
517 case 260 : /* fall through */
518 case 261 : /* fall through */
519 case 262 : /* fall through */
520 case 263 : /* fall through */
521 case 264 : /* fall through */
522 case 265 : /* fall through */
523 case 266 : /* fall through */
524 case 267 : /* fall through */
525 case 268 : /* fall through */
526 case 269 : /* fall through */
527 case 270 : /* fall through */
528 case 271 : /* fall through */
529 case 272 : /* fall through */
530 case 273 : /* fall through */
531 case 274 : /* fall through */
532 case 275 : /* fall through */
533 case 276 : /* fall through */
534 case 277 : /* fall through */
535 case 278 : /* fall through */
536 case 279 : /* fall through */
537 case 280 : /* fall through */
538 case 281 : /* fall through */
539 case 282 : /* fall through */
540 case 283 : /* fall through */
541 case 284 : /* fall through */
542 case 285 : /* fall through */
543 case 286 : /* fall through */
546 unsigned int val
= (((insn
>> 24) & (1 << 0)));
550 if ((entire_insn
& 0xffff0000) == 0x20000000)
551 { itype
= OR1K32BF_INSN_L_SYS
; goto extract_sfmt_l_trap
; }
552 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
554 if ((entire_insn
& 0xffff0000) == 0x21000000)
555 { itype
= OR1K32BF_INSN_L_TRAP
; goto extract_sfmt_l_trap
; }
556 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
557 default : itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
561 if ((entire_insn
& 0xffffffff) == 0x24000000)
562 { itype
= OR1K32BF_INSN_L_RFE
; goto extract_sfmt_l_msync
; }
563 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
565 if ((entire_insn
& 0xffff07ff) == 0x44000000)
566 { itype
= OR1K32BF_INSN_L_JR
; goto extract_sfmt_l_jr
; }
567 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
569 if ((entire_insn
& 0xffff07ff) == 0x48000000)
570 { itype
= OR1K32BF_INSN_L_JALR
; goto extract_sfmt_l_jalr
; }
571 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
572 case 608 : /* fall through */
573 case 609 : /* fall through */
574 case 610 : /* fall through */
575 case 611 : /* fall through */
576 case 612 : /* fall through */
577 case 613 : /* fall through */
578 case 614 : /* fall through */
579 case 615 : /* fall through */
580 case 616 : /* fall through */
581 case 617 : /* fall through */
582 case 618 : /* fall through */
583 case 619 : /* fall through */
584 case 620 : /* fall through */
585 case 621 : /* fall through */
586 case 622 : /* fall through */
587 case 623 : /* fall through */
588 case 624 : /* fall through */
589 case 625 : /* fall through */
590 case 626 : /* fall through */
591 case 627 : /* fall through */
592 case 628 : /* fall through */
593 case 629 : /* fall through */
594 case 630 : /* fall through */
595 case 631 : /* fall through */
596 case 632 : /* fall through */
597 case 633 : /* fall through */
598 case 634 : /* fall through */
599 case 635 : /* fall through */
600 case 636 : /* fall through */
601 case 637 : /* fall through */
602 case 638 : /* fall through */
604 if ((entire_insn
& 0xffe00000) == 0x4c000000)
605 { itype
= OR1K32BF_INSN_L_MACI
; goto extract_sfmt_l_maci
; }
606 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
607 case 864 : /* fall through */
608 case 865 : /* fall through */
609 case 866 : /* fall through */
610 case 867 : /* fall through */
611 case 868 : /* fall through */
612 case 869 : /* fall through */
613 case 870 : /* fall through */
614 case 871 : /* fall through */
615 case 872 : /* fall through */
616 case 873 : /* fall through */
617 case 874 : /* fall through */
618 case 875 : /* fall through */
619 case 876 : /* fall through */
620 case 877 : /* fall through */
621 case 878 : /* fall through */
622 case 879 : /* fall through */
623 case 880 : /* fall through */
624 case 881 : /* fall through */
625 case 882 : /* fall through */
626 case 883 : /* fall through */
627 case 884 : /* fall through */
628 case 885 : /* fall through */
629 case 886 : /* fall through */
630 case 887 : /* fall through */
631 case 888 : /* fall through */
632 case 889 : /* fall through */
633 case 890 : /* fall through */
634 case 891 : /* fall through */
635 case 892 : /* fall through */
636 case 893 : /* fall through */
637 case 894 : /* fall through */
638 case 895 : itype
= OR1K32BF_INSN_L_LWA
; goto extract_sfmt_l_lwa
;
640 if ((entire_insn
& 0xffffffff) == 0x70000000)
641 { itype
= OR1K32BF_INSN_L_CUST1
; goto extract_sfmt_l_msync
; }
642 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
644 if ((entire_insn
& 0xffffffff) == 0x74000000)
645 { itype
= OR1K32BF_INSN_L_CUST2
; goto extract_sfmt_l_msync
; }
646 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
648 if ((entire_insn
& 0xffffffff) == 0x78000000)
649 { itype
= OR1K32BF_INSN_L_CUST3
; goto extract_sfmt_l_msync
; }
650 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
652 if ((entire_insn
& 0xffffffff) == 0x7c000000)
653 { itype
= OR1K32BF_INSN_L_CUST4
; goto extract_sfmt_l_msync
; }
654 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
655 case 1056 : /* fall through */
656 case 1057 : /* fall through */
657 case 1058 : /* fall through */
658 case 1059 : /* fall through */
659 case 1060 : /* fall through */
660 case 1061 : /* fall through */
661 case 1062 : /* fall through */
662 case 1063 : /* fall through */
663 case 1064 : /* fall through */
664 case 1065 : /* fall through */
665 case 1066 : /* fall through */
666 case 1067 : /* fall through */
667 case 1068 : /* fall through */
668 case 1069 : /* fall through */
669 case 1070 : /* fall through */
670 case 1071 : /* fall through */
671 case 1072 : /* fall through */
672 case 1073 : /* fall through */
673 case 1074 : /* fall through */
674 case 1075 : /* fall through */
675 case 1076 : /* fall through */
676 case 1077 : /* fall through */
677 case 1078 : /* fall through */
678 case 1079 : /* fall through */
679 case 1080 : /* fall through */
680 case 1081 : /* fall through */
681 case 1082 : /* fall through */
682 case 1083 : /* fall through */
683 case 1084 : /* fall through */
684 case 1085 : /* fall through */
685 case 1086 : /* fall through */
686 case 1087 : itype
= OR1K32BF_INSN_L_LWZ
; goto extract_sfmt_l_lwz
;
687 case 1088 : /* fall through */
688 case 1089 : /* fall through */
689 case 1090 : /* fall through */
690 case 1091 : /* fall through */
691 case 1092 : /* fall through */
692 case 1093 : /* fall through */
693 case 1094 : /* fall through */
694 case 1095 : /* fall through */
695 case 1096 : /* fall through */
696 case 1097 : /* fall through */
697 case 1098 : /* fall through */
698 case 1099 : /* fall through */
699 case 1100 : /* fall through */
700 case 1101 : /* fall through */
701 case 1102 : /* fall through */
702 case 1103 : /* fall through */
703 case 1104 : /* fall through */
704 case 1105 : /* fall through */
705 case 1106 : /* fall through */
706 case 1107 : /* fall through */
707 case 1108 : /* fall through */
708 case 1109 : /* fall through */
709 case 1110 : /* fall through */
710 case 1111 : /* fall through */
711 case 1112 : /* fall through */
712 case 1113 : /* fall through */
713 case 1114 : /* fall through */
714 case 1115 : /* fall through */
715 case 1116 : /* fall through */
716 case 1117 : /* fall through */
717 case 1118 : /* fall through */
718 case 1119 : itype
= OR1K32BF_INSN_L_LWS
; goto extract_sfmt_l_lws
;
719 case 1120 : /* fall through */
720 case 1121 : /* fall through */
721 case 1122 : /* fall through */
722 case 1123 : /* fall through */
723 case 1124 : /* fall through */
724 case 1125 : /* fall through */
725 case 1126 : /* fall through */
726 case 1127 : /* fall through */
727 case 1128 : /* fall through */
728 case 1129 : /* fall through */
729 case 1130 : /* fall through */
730 case 1131 : /* fall through */
731 case 1132 : /* fall through */
732 case 1133 : /* fall through */
733 case 1134 : /* fall through */
734 case 1135 : /* fall through */
735 case 1136 : /* fall through */
736 case 1137 : /* fall through */
737 case 1138 : /* fall through */
738 case 1139 : /* fall through */
739 case 1140 : /* fall through */
740 case 1141 : /* fall through */
741 case 1142 : /* fall through */
742 case 1143 : /* fall through */
743 case 1144 : /* fall through */
744 case 1145 : /* fall through */
745 case 1146 : /* fall through */
746 case 1147 : /* fall through */
747 case 1148 : /* fall through */
748 case 1149 : /* fall through */
749 case 1150 : /* fall through */
750 case 1151 : itype
= OR1K32BF_INSN_L_LBZ
; goto extract_sfmt_l_lbz
;
751 case 1152 : /* fall through */
752 case 1153 : /* fall through */
753 case 1154 : /* fall through */
754 case 1155 : /* fall through */
755 case 1156 : /* fall through */
756 case 1157 : /* fall through */
757 case 1158 : /* fall through */
758 case 1159 : /* fall through */
759 case 1160 : /* fall through */
760 case 1161 : /* fall through */
761 case 1162 : /* fall through */
762 case 1163 : /* fall through */
763 case 1164 : /* fall through */
764 case 1165 : /* fall through */
765 case 1166 : /* fall through */
766 case 1167 : /* fall through */
767 case 1168 : /* fall through */
768 case 1169 : /* fall through */
769 case 1170 : /* fall through */
770 case 1171 : /* fall through */
771 case 1172 : /* fall through */
772 case 1173 : /* fall through */
773 case 1174 : /* fall through */
774 case 1175 : /* fall through */
775 case 1176 : /* fall through */
776 case 1177 : /* fall through */
777 case 1178 : /* fall through */
778 case 1179 : /* fall through */
779 case 1180 : /* fall through */
780 case 1181 : /* fall through */
781 case 1182 : /* fall through */
782 case 1183 : itype
= OR1K32BF_INSN_L_LBS
; goto extract_sfmt_l_lbs
;
783 case 1184 : /* fall through */
784 case 1185 : /* fall through */
785 case 1186 : /* fall through */
786 case 1187 : /* fall through */
787 case 1188 : /* fall through */
788 case 1189 : /* fall through */
789 case 1190 : /* fall through */
790 case 1191 : /* fall through */
791 case 1192 : /* fall through */
792 case 1193 : /* fall through */
793 case 1194 : /* fall through */
794 case 1195 : /* fall through */
795 case 1196 : /* fall through */
796 case 1197 : /* fall through */
797 case 1198 : /* fall through */
798 case 1199 : /* fall through */
799 case 1200 : /* fall through */
800 case 1201 : /* fall through */
801 case 1202 : /* fall through */
802 case 1203 : /* fall through */
803 case 1204 : /* fall through */
804 case 1205 : /* fall through */
805 case 1206 : /* fall through */
806 case 1207 : /* fall through */
807 case 1208 : /* fall through */
808 case 1209 : /* fall through */
809 case 1210 : /* fall through */
810 case 1211 : /* fall through */
811 case 1212 : /* fall through */
812 case 1213 : /* fall through */
813 case 1214 : /* fall through */
814 case 1215 : itype
= OR1K32BF_INSN_L_LHZ
; goto extract_sfmt_l_lhz
;
815 case 1216 : /* fall through */
816 case 1217 : /* fall through */
817 case 1218 : /* fall through */
818 case 1219 : /* fall through */
819 case 1220 : /* fall through */
820 case 1221 : /* fall through */
821 case 1222 : /* fall through */
822 case 1223 : /* fall through */
823 case 1224 : /* fall through */
824 case 1225 : /* fall through */
825 case 1226 : /* fall through */
826 case 1227 : /* fall through */
827 case 1228 : /* fall through */
828 case 1229 : /* fall through */
829 case 1230 : /* fall through */
830 case 1231 : /* fall through */
831 case 1232 : /* fall through */
832 case 1233 : /* fall through */
833 case 1234 : /* fall through */
834 case 1235 : /* fall through */
835 case 1236 : /* fall through */
836 case 1237 : /* fall through */
837 case 1238 : /* fall through */
838 case 1239 : /* fall through */
839 case 1240 : /* fall through */
840 case 1241 : /* fall through */
841 case 1242 : /* fall through */
842 case 1243 : /* fall through */
843 case 1244 : /* fall through */
844 case 1245 : /* fall through */
845 case 1246 : /* fall through */
846 case 1247 : itype
= OR1K32BF_INSN_L_LHS
; goto extract_sfmt_l_lhs
;
847 case 1248 : /* fall through */
848 case 1249 : /* fall through */
849 case 1250 : /* fall through */
850 case 1251 : /* fall through */
851 case 1252 : /* fall through */
852 case 1253 : /* fall through */
853 case 1254 : /* fall through */
854 case 1255 : /* fall through */
855 case 1256 : /* fall through */
856 case 1257 : /* fall through */
857 case 1258 : /* fall through */
858 case 1259 : /* fall through */
859 case 1260 : /* fall through */
860 case 1261 : /* fall through */
861 case 1262 : /* fall through */
862 case 1263 : /* fall through */
863 case 1264 : /* fall through */
864 case 1265 : /* fall through */
865 case 1266 : /* fall through */
866 case 1267 : /* fall through */
867 case 1268 : /* fall through */
868 case 1269 : /* fall through */
869 case 1270 : /* fall through */
870 case 1271 : /* fall through */
871 case 1272 : /* fall through */
872 case 1273 : /* fall through */
873 case 1274 : /* fall through */
874 case 1275 : /* fall through */
875 case 1276 : /* fall through */
876 case 1277 : /* fall through */
877 case 1278 : /* fall through */
878 case 1279 : itype
= OR1K32BF_INSN_L_ADDI
; goto extract_sfmt_l_addi
;
879 case 1280 : /* fall through */
880 case 1281 : /* fall through */
881 case 1282 : /* fall through */
882 case 1283 : /* fall through */
883 case 1284 : /* fall through */
884 case 1285 : /* fall through */
885 case 1286 : /* fall through */
886 case 1287 : /* fall through */
887 case 1288 : /* fall through */
888 case 1289 : /* fall through */
889 case 1290 : /* fall through */
890 case 1291 : /* fall through */
891 case 1292 : /* fall through */
892 case 1293 : /* fall through */
893 case 1294 : /* fall through */
894 case 1295 : /* fall through */
895 case 1296 : /* fall through */
896 case 1297 : /* fall through */
897 case 1298 : /* fall through */
898 case 1299 : /* fall through */
899 case 1300 : /* fall through */
900 case 1301 : /* fall through */
901 case 1302 : /* fall through */
902 case 1303 : /* fall through */
903 case 1304 : /* fall through */
904 case 1305 : /* fall through */
905 case 1306 : /* fall through */
906 case 1307 : /* fall through */
907 case 1308 : /* fall through */
908 case 1309 : /* fall through */
909 case 1310 : /* fall through */
910 case 1311 : itype
= OR1K32BF_INSN_L_ADDIC
; goto extract_sfmt_l_addic
;
911 case 1312 : /* fall through */
912 case 1313 : /* fall through */
913 case 1314 : /* fall through */
914 case 1315 : /* fall through */
915 case 1316 : /* fall through */
916 case 1317 : /* fall through */
917 case 1318 : /* fall through */
918 case 1319 : /* fall through */
919 case 1320 : /* fall through */
920 case 1321 : /* fall through */
921 case 1322 : /* fall through */
922 case 1323 : /* fall through */
923 case 1324 : /* fall through */
924 case 1325 : /* fall through */
925 case 1326 : /* fall through */
926 case 1327 : /* fall through */
927 case 1328 : /* fall through */
928 case 1329 : /* fall through */
929 case 1330 : /* fall through */
930 case 1331 : /* fall through */
931 case 1332 : /* fall through */
932 case 1333 : /* fall through */
933 case 1334 : /* fall through */
934 case 1335 : /* fall through */
935 case 1336 : /* fall through */
936 case 1337 : /* fall through */
937 case 1338 : /* fall through */
938 case 1339 : /* fall through */
939 case 1340 : /* fall through */
940 case 1341 : /* fall through */
941 case 1342 : /* fall through */
942 case 1343 : itype
= OR1K32BF_INSN_L_ANDI
; goto extract_sfmt_l_mfspr
;
943 case 1344 : /* fall through */
944 case 1345 : /* fall through */
945 case 1346 : /* fall through */
946 case 1347 : /* fall through */
947 case 1348 : /* fall through */
948 case 1349 : /* fall through */
949 case 1350 : /* fall through */
950 case 1351 : /* fall through */
951 case 1352 : /* fall through */
952 case 1353 : /* fall through */
953 case 1354 : /* fall through */
954 case 1355 : /* fall through */
955 case 1356 : /* fall through */
956 case 1357 : /* fall through */
957 case 1358 : /* fall through */
958 case 1359 : /* fall through */
959 case 1360 : /* fall through */
960 case 1361 : /* fall through */
961 case 1362 : /* fall through */
962 case 1363 : /* fall through */
963 case 1364 : /* fall through */
964 case 1365 : /* fall through */
965 case 1366 : /* fall through */
966 case 1367 : /* fall through */
967 case 1368 : /* fall through */
968 case 1369 : /* fall through */
969 case 1370 : /* fall through */
970 case 1371 : /* fall through */
971 case 1372 : /* fall through */
972 case 1373 : /* fall through */
973 case 1374 : /* fall through */
974 case 1375 : itype
= OR1K32BF_INSN_L_ORI
; goto extract_sfmt_l_mfspr
;
975 case 1376 : /* fall through */
976 case 1377 : /* fall through */
977 case 1378 : /* fall through */
978 case 1379 : /* fall through */
979 case 1380 : /* fall through */
980 case 1381 : /* fall through */
981 case 1382 : /* fall through */
982 case 1383 : /* fall through */
983 case 1384 : /* fall through */
984 case 1385 : /* fall through */
985 case 1386 : /* fall through */
986 case 1387 : /* fall through */
987 case 1388 : /* fall through */
988 case 1389 : /* fall through */
989 case 1390 : /* fall through */
990 case 1391 : /* fall through */
991 case 1392 : /* fall through */
992 case 1393 : /* fall through */
993 case 1394 : /* fall through */
994 case 1395 : /* fall through */
995 case 1396 : /* fall through */
996 case 1397 : /* fall through */
997 case 1398 : /* fall through */
998 case 1399 : /* fall through */
999 case 1400 : /* fall through */
1000 case 1401 : /* fall through */
1001 case 1402 : /* fall through */
1002 case 1403 : /* fall through */
1003 case 1404 : /* fall through */
1004 case 1405 : /* fall through */
1005 case 1406 : /* fall through */
1006 case 1407 : itype
= OR1K32BF_INSN_L_XORI
; goto extract_sfmt_l_xori
;
1007 case 1408 : /* fall through */
1008 case 1409 : /* fall through */
1009 case 1410 : /* fall through */
1010 case 1411 : /* fall through */
1011 case 1412 : /* fall through */
1012 case 1413 : /* fall through */
1013 case 1414 : /* fall through */
1014 case 1415 : /* fall through */
1015 case 1416 : /* fall through */
1016 case 1417 : /* fall through */
1017 case 1418 : /* fall through */
1018 case 1419 : /* fall through */
1019 case 1420 : /* fall through */
1020 case 1421 : /* fall through */
1021 case 1422 : /* fall through */
1022 case 1423 : /* fall through */
1023 case 1424 : /* fall through */
1024 case 1425 : /* fall through */
1025 case 1426 : /* fall through */
1026 case 1427 : /* fall through */
1027 case 1428 : /* fall through */
1028 case 1429 : /* fall through */
1029 case 1430 : /* fall through */
1030 case 1431 : /* fall through */
1031 case 1432 : /* fall through */
1032 case 1433 : /* fall through */
1033 case 1434 : /* fall through */
1034 case 1435 : /* fall through */
1035 case 1436 : /* fall through */
1036 case 1437 : /* fall through */
1037 case 1438 : /* fall through */
1038 case 1439 : itype
= OR1K32BF_INSN_L_MULI
; goto extract_sfmt_l_muli
;
1039 case 1440 : /* fall through */
1040 case 1441 : /* fall through */
1041 case 1442 : /* fall through */
1042 case 1443 : /* fall through */
1043 case 1444 : /* fall through */
1044 case 1445 : /* fall through */
1045 case 1446 : /* fall through */
1046 case 1447 : /* fall through */
1047 case 1448 : /* fall through */
1048 case 1449 : /* fall through */
1049 case 1450 : /* fall through */
1050 case 1451 : /* fall through */
1051 case 1452 : /* fall through */
1052 case 1453 : /* fall through */
1053 case 1454 : /* fall through */
1054 case 1455 : /* fall through */
1055 case 1456 : /* fall through */
1056 case 1457 : /* fall through */
1057 case 1458 : /* fall through */
1058 case 1459 : /* fall through */
1059 case 1460 : /* fall through */
1060 case 1461 : /* fall through */
1061 case 1462 : /* fall through */
1062 case 1463 : /* fall through */
1063 case 1464 : /* fall through */
1064 case 1465 : /* fall through */
1065 case 1466 : /* fall through */
1066 case 1467 : /* fall through */
1067 case 1468 : /* fall through */
1068 case 1469 : /* fall through */
1069 case 1470 : /* fall through */
1070 case 1471 : itype
= OR1K32BF_INSN_L_MFSPR
; goto extract_sfmt_l_mfspr
;
1071 case 1472 : /* fall through */
1072 case 1473 : /* fall through */
1073 case 1474 : /* fall through */
1074 case 1475 : /* fall through */
1075 case 1476 : /* fall through */
1076 case 1477 : /* fall through */
1077 case 1478 : /* fall through */
1078 case 1479 : /* fall through */
1079 case 1480 : /* fall through */
1080 case 1481 : /* fall through */
1081 case 1482 : /* fall through */
1082 case 1483 : /* fall through */
1083 case 1484 : /* fall through */
1084 case 1485 : /* fall through */
1085 case 1486 : /* fall through */
1088 unsigned int val
= (((insn
>> 7) & (1 << 0)));
1092 if ((entire_insn
& 0xfc00ffc0) == 0xb8000000)
1093 { itype
= OR1K32BF_INSN_L_SLLI
; goto extract_sfmt_l_slli
; }
1094 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1096 if ((entire_insn
& 0xfc00ffc0) == 0xb8000080)
1097 { itype
= OR1K32BF_INSN_L_SRAI
; goto extract_sfmt_l_slli
; }
1098 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1099 default : itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1102 case 1488 : /* fall through */
1103 case 1489 : /* fall through */
1104 case 1490 : /* fall through */
1105 case 1491 : /* fall through */
1106 case 1492 : /* fall through */
1107 case 1493 : /* fall through */
1108 case 1494 : /* fall through */
1109 case 1495 : /* fall through */
1110 case 1496 : /* fall through */
1111 case 1497 : /* fall through */
1112 case 1498 : /* fall through */
1113 case 1499 : /* fall through */
1114 case 1500 : /* fall through */
1115 case 1501 : /* fall through */
1116 case 1502 : /* fall through */
1119 unsigned int val
= (((insn
>> 7) & (1 << 0)));
1123 if ((entire_insn
& 0xfc00ffc0) == 0xb8000040)
1124 { itype
= OR1K32BF_INSN_L_SRLI
; goto extract_sfmt_l_slli
; }
1125 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1127 if ((entire_insn
& 0xfc00ffc0) == 0xb80000c0)
1128 { itype
= OR1K32BF_INSN_L_RORI
; goto extract_sfmt_l_slli
; }
1129 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1130 default : itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1133 case 1504 : /* fall through */
1134 case 1505 : /* fall through */
1135 case 1506 : /* fall through */
1136 case 1507 : /* fall through */
1137 case 1508 : /* fall through */
1138 case 1509 : /* fall through */
1139 case 1510 : /* fall through */
1140 case 1511 : /* fall through */
1141 case 1512 : /* fall through */
1142 case 1513 : /* fall through */
1143 case 1514 : /* fall through */
1144 case 1515 : /* fall through */
1145 case 1516 : /* fall through */
1146 case 1517 : /* fall through */
1147 case 1518 : /* fall through */
1148 case 1519 : /* fall through */
1149 case 1520 : /* fall through */
1150 case 1521 : /* fall through */
1151 case 1522 : /* fall through */
1152 case 1523 : /* fall through */
1153 case 1524 : /* fall through */
1154 case 1525 : /* fall through */
1155 case 1526 : /* fall through */
1156 case 1527 : /* fall through */
1157 case 1528 : /* fall through */
1158 case 1529 : /* fall through */
1159 case 1530 : /* fall through */
1160 case 1531 : /* fall through */
1161 case 1532 : /* fall through */
1162 case 1533 : /* fall through */
1163 case 1534 : /* fall through */
1166 unsigned int val
= (((insn
>> 21) & (15 << 0)));
1170 if ((entire_insn
& 0xffe00000) == 0xbc000000)
1171 { itype
= OR1K32BF_INSN_L_SFEQI
; goto extract_sfmt_l_sfgtsi
; }
1172 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1174 if ((entire_insn
& 0xffe00000) == 0xbc200000)
1175 { itype
= OR1K32BF_INSN_L_SFNEI
; goto extract_sfmt_l_sfgtsi
; }
1176 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1178 if ((entire_insn
& 0xffe00000) == 0xbc400000)
1179 { itype
= OR1K32BF_INSN_L_SFGTUI
; goto extract_sfmt_l_sfgtsi
; }
1180 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1182 if ((entire_insn
& 0xffe00000) == 0xbc600000)
1183 { itype
= OR1K32BF_INSN_L_SFGEUI
; goto extract_sfmt_l_sfgtsi
; }
1184 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1186 if ((entire_insn
& 0xffe00000) == 0xbc800000)
1187 { itype
= OR1K32BF_INSN_L_SFLTUI
; goto extract_sfmt_l_sfgtsi
; }
1188 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1190 if ((entire_insn
& 0xffe00000) == 0xbca00000)
1191 { itype
= OR1K32BF_INSN_L_SFLEUI
; goto extract_sfmt_l_sfgtsi
; }
1192 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1194 if ((entire_insn
& 0xffe00000) == 0xbd400000)
1195 { itype
= OR1K32BF_INSN_L_SFGTSI
; goto extract_sfmt_l_sfgtsi
; }
1196 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1198 if ((entire_insn
& 0xffe00000) == 0xbd600000)
1199 { itype
= OR1K32BF_INSN_L_SFGESI
; goto extract_sfmt_l_sfgtsi
; }
1200 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1202 if ((entire_insn
& 0xffe00000) == 0xbd800000)
1203 { itype
= OR1K32BF_INSN_L_SFLTSI
; goto extract_sfmt_l_sfgtsi
; }
1204 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1206 if ((entire_insn
& 0xffe00000) == 0xbda00000)
1207 { itype
= OR1K32BF_INSN_L_SFLESI
; goto extract_sfmt_l_sfgtsi
; }
1208 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1209 default : itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1212 case 1536 : /* fall through */
1213 case 1537 : /* fall through */
1214 case 1538 : /* fall through */
1215 case 1539 : /* fall through */
1216 case 1540 : /* fall through */
1217 case 1541 : /* fall through */
1218 case 1542 : /* fall through */
1219 case 1543 : /* fall through */
1220 case 1544 : /* fall through */
1221 case 1545 : /* fall through */
1222 case 1546 : /* fall through */
1223 case 1547 : /* fall through */
1224 case 1548 : /* fall through */
1225 case 1549 : /* fall through */
1226 case 1550 : /* fall through */
1227 case 1551 : /* fall through */
1228 case 1552 : /* fall through */
1229 case 1553 : /* fall through */
1230 case 1554 : /* fall through */
1231 case 1555 : /* fall through */
1232 case 1556 : /* fall through */
1233 case 1557 : /* fall through */
1234 case 1558 : /* fall through */
1235 case 1559 : /* fall through */
1236 case 1560 : /* fall through */
1237 case 1561 : /* fall through */
1238 case 1562 : /* fall through */
1239 case 1563 : /* fall through */
1240 case 1564 : /* fall through */
1241 case 1565 : /* fall through */
1242 case 1566 : /* fall through */
1243 case 1567 : itype
= OR1K32BF_INSN_L_MTSPR
; goto extract_sfmt_l_mtspr
;
1245 if ((entire_insn
& 0xffe007ff) == 0xc4000001)
1246 { itype
= OR1K32BF_INSN_L_MAC
; goto extract_sfmt_l_mac
; }
1247 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1249 if ((entire_insn
& 0xffe007ff) == 0xc4000002)
1250 { itype
= OR1K32BF_INSN_L_MSB
; goto extract_sfmt_l_mac
; }
1251 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1253 if ((entire_insn
& 0xffe007ff) == 0xc4000003)
1254 { itype
= OR1K32BF_INSN_L_MACU
; goto extract_sfmt_l_macu
; }
1255 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1257 if ((entire_insn
& 0xffe007ff) == 0xc4000004)
1258 { itype
= OR1K32BF_INSN_L_MSBU
; goto extract_sfmt_l_macu
; }
1259 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1261 if ((entire_insn
& 0xfc0007ff) == 0xc8000000)
1262 { itype
= OR1K32BF_INSN_LF_ADD_S
; goto extract_sfmt_lf_add_s
; }
1263 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1265 if ((entire_insn
& 0xfc0007ff) == 0xc8000001)
1266 { itype
= OR1K32BF_INSN_LF_SUB_S
; goto extract_sfmt_lf_add_s
; }
1267 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1269 if ((entire_insn
& 0xfc0007ff) == 0xc8000002)
1270 { itype
= OR1K32BF_INSN_LF_MUL_S
; goto extract_sfmt_lf_add_s
; }
1271 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1273 if ((entire_insn
& 0xfc0007ff) == 0xc8000003)
1274 { itype
= OR1K32BF_INSN_LF_DIV_S
; goto extract_sfmt_lf_add_s
; }
1275 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1277 if ((entire_insn
& 0xfc00ffff) == 0xc8000004)
1278 { itype
= OR1K32BF_INSN_LF_ITOF_S
; goto extract_sfmt_lf_itof_s
; }
1279 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1281 if ((entire_insn
& 0xfc00ffff) == 0xc8000005)
1282 { itype
= OR1K32BF_INSN_LF_FTOI_S
; goto extract_sfmt_lf_ftoi_s
; }
1283 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1285 if ((entire_insn
& 0xfc0007ff) == 0xc8000006)
1286 { itype
= OR1K32BF_INSN_LF_REM_S
; goto extract_sfmt_lf_add_s
; }
1287 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1289 if ((entire_insn
& 0xfc0007ff) == 0xc8000007)
1290 { itype
= OR1K32BF_INSN_LF_MADD_S
; goto extract_sfmt_lf_madd_s
; }
1291 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1293 if ((entire_insn
& 0xffe007ff) == 0xc8000008)
1294 { itype
= OR1K32BF_INSN_LF_EQ_S
; goto extract_sfmt_lf_eq_s
; }
1295 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1297 if ((entire_insn
& 0xffe007ff) == 0xc8000009)
1298 { itype
= OR1K32BF_INSN_LF_NE_S
; goto extract_sfmt_lf_eq_s
; }
1299 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1301 if ((entire_insn
& 0xffe007ff) == 0xc800000a)
1302 { itype
= OR1K32BF_INSN_LF_GT_S
; goto extract_sfmt_lf_eq_s
; }
1303 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1305 if ((entire_insn
& 0xffe007ff) == 0xc800000b)
1306 { itype
= OR1K32BF_INSN_LF_GE_S
; goto extract_sfmt_lf_eq_s
; }
1307 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1309 if ((entire_insn
& 0xffe007ff) == 0xc800000c)
1310 { itype
= OR1K32BF_INSN_LF_LT_S
; goto extract_sfmt_lf_eq_s
; }
1311 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1313 if ((entire_insn
& 0xffe007ff) == 0xc800000d)
1314 { itype
= OR1K32BF_INSN_LF_LE_S
; goto extract_sfmt_lf_eq_s
; }
1315 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1317 if ((entire_insn
& 0xffe007ff) == 0xc80000d0)
1318 { itype
= OR1K32BF_INSN_LF_CUST1_S
; goto extract_sfmt_l_msync
; }
1319 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1320 case 1632 : /* fall through */
1321 case 1633 : /* fall through */
1322 case 1634 : /* fall through */
1323 case 1635 : /* fall through */
1324 case 1636 : /* fall through */
1325 case 1637 : /* fall through */
1326 case 1638 : /* fall through */
1327 case 1639 : /* fall through */
1328 case 1640 : /* fall through */
1329 case 1641 : /* fall through */
1330 case 1642 : /* fall through */
1331 case 1643 : /* fall through */
1332 case 1644 : /* fall through */
1333 case 1645 : /* fall through */
1334 case 1646 : /* fall through */
1335 case 1647 : /* fall through */
1336 case 1648 : /* fall through */
1337 case 1649 : /* fall through */
1338 case 1650 : /* fall through */
1339 case 1651 : /* fall through */
1340 case 1652 : /* fall through */
1341 case 1653 : /* fall through */
1342 case 1654 : /* fall through */
1343 case 1655 : /* fall through */
1344 case 1656 : /* fall through */
1345 case 1657 : /* fall through */
1346 case 1658 : /* fall through */
1347 case 1659 : /* fall through */
1348 case 1660 : /* fall through */
1349 case 1661 : /* fall through */
1350 case 1662 : /* fall through */
1351 case 1663 : itype
= OR1K32BF_INSN_L_SWA
; goto extract_sfmt_l_swa
;
1352 case 1696 : /* fall through */
1353 case 1697 : /* fall through */
1354 case 1698 : /* fall through */
1355 case 1699 : /* fall through */
1356 case 1700 : /* fall through */
1357 case 1701 : /* fall through */
1358 case 1702 : /* fall through */
1359 case 1703 : /* fall through */
1360 case 1704 : /* fall through */
1361 case 1705 : /* fall through */
1362 case 1706 : /* fall through */
1363 case 1707 : /* fall through */
1364 case 1708 : /* fall through */
1365 case 1709 : /* fall through */
1366 case 1710 : /* fall through */
1367 case 1711 : /* fall through */
1368 case 1712 : /* fall through */
1369 case 1713 : /* fall through */
1370 case 1714 : /* fall through */
1371 case 1715 : /* fall through */
1372 case 1716 : /* fall through */
1373 case 1717 : /* fall through */
1374 case 1718 : /* fall through */
1375 case 1719 : /* fall through */
1376 case 1720 : /* fall through */
1377 case 1721 : /* fall through */
1378 case 1722 : /* fall through */
1379 case 1723 : /* fall through */
1380 case 1724 : /* fall through */
1381 case 1725 : /* fall through */
1382 case 1726 : /* fall through */
1383 case 1727 : itype
= OR1K32BF_INSN_L_SW
; goto extract_sfmt_l_sw
;
1384 case 1728 : /* fall through */
1385 case 1729 : /* fall through */
1386 case 1730 : /* fall through */
1387 case 1731 : /* fall through */
1388 case 1732 : /* fall through */
1389 case 1733 : /* fall through */
1390 case 1734 : /* fall through */
1391 case 1735 : /* fall through */
1392 case 1736 : /* fall through */
1393 case 1737 : /* fall through */
1394 case 1738 : /* fall through */
1395 case 1739 : /* fall through */
1396 case 1740 : /* fall through */
1397 case 1741 : /* fall through */
1398 case 1742 : /* fall through */
1399 case 1743 : /* fall through */
1400 case 1744 : /* fall through */
1401 case 1745 : /* fall through */
1402 case 1746 : /* fall through */
1403 case 1747 : /* fall through */
1404 case 1748 : /* fall through */
1405 case 1749 : /* fall through */
1406 case 1750 : /* fall through */
1407 case 1751 : /* fall through */
1408 case 1752 : /* fall through */
1409 case 1753 : /* fall through */
1410 case 1754 : /* fall through */
1411 case 1755 : /* fall through */
1412 case 1756 : /* fall through */
1413 case 1757 : /* fall through */
1414 case 1758 : /* fall through */
1415 case 1759 : itype
= OR1K32BF_INSN_L_SB
; goto extract_sfmt_l_sb
;
1416 case 1760 : /* fall through */
1417 case 1761 : /* fall through */
1418 case 1762 : /* fall through */
1419 case 1763 : /* fall through */
1420 case 1764 : /* fall through */
1421 case 1765 : /* fall through */
1422 case 1766 : /* fall through */
1423 case 1767 : /* fall through */
1424 case 1768 : /* fall through */
1425 case 1769 : /* fall through */
1426 case 1770 : /* fall through */
1427 case 1771 : /* fall through */
1428 case 1772 : /* fall through */
1429 case 1773 : /* fall through */
1430 case 1774 : /* fall through */
1431 case 1775 : /* fall through */
1432 case 1776 : /* fall through */
1433 case 1777 : /* fall through */
1434 case 1778 : /* fall through */
1435 case 1779 : /* fall through */
1436 case 1780 : /* fall through */
1437 case 1781 : /* fall through */
1438 case 1782 : /* fall through */
1439 case 1783 : /* fall through */
1440 case 1784 : /* fall through */
1441 case 1785 : /* fall through */
1442 case 1786 : /* fall through */
1443 case 1787 : /* fall through */
1444 case 1788 : /* fall through */
1445 case 1789 : /* fall through */
1446 case 1790 : /* fall through */
1447 case 1791 : itype
= OR1K32BF_INSN_L_SH
; goto extract_sfmt_l_sh
;
1449 if ((entire_insn
& 0xfc0007ff) == 0xe0000000)
1450 { itype
= OR1K32BF_INSN_L_ADD
; goto extract_sfmt_l_add
; }
1451 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1453 if ((entire_insn
& 0xfc0007ff) == 0xe0000001)
1454 { itype
= OR1K32BF_INSN_L_ADDC
; goto extract_sfmt_l_addc
; }
1455 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1457 if ((entire_insn
& 0xfc0007ff) == 0xe0000002)
1458 { itype
= OR1K32BF_INSN_L_SUB
; goto extract_sfmt_l_add
; }
1459 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1461 if ((entire_insn
& 0xfc0007ff) == 0xe0000003)
1462 { itype
= OR1K32BF_INSN_L_AND
; goto extract_sfmt_l_and
; }
1463 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1465 if ((entire_insn
& 0xfc0007ff) == 0xe0000004)
1466 { itype
= OR1K32BF_INSN_L_OR
; goto extract_sfmt_l_and
; }
1467 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1469 if ((entire_insn
& 0xfc0007ff) == 0xe0000005)
1470 { itype
= OR1K32BF_INSN_L_XOR
; goto extract_sfmt_l_and
; }
1471 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1473 if ((entire_insn
& 0xfc0007ff) == 0xe0000306)
1474 { itype
= OR1K32BF_INSN_L_MUL
; goto extract_sfmt_l_mul
; }
1475 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1477 if ((entire_insn
& 0xffe007ff) == 0xe0000307)
1478 { itype
= OR1K32BF_INSN_L_MULD
; goto extract_sfmt_l_muld
; }
1479 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1482 unsigned int val
= (((insn
>> 7) & (1 << 0)));
1486 if ((entire_insn
& 0xfc0007ff) == 0xe0000008)
1487 { itype
= OR1K32BF_INSN_L_SLL
; goto extract_sfmt_l_sll
; }
1488 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1490 if ((entire_insn
& 0xfc0007ff) == 0xe0000088)
1491 { itype
= OR1K32BF_INSN_L_SRA
; goto extract_sfmt_l_sll
; }
1492 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1493 default : itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1497 if ((entire_insn
& 0xfc0007ff) == 0xe0000309)
1498 { itype
= OR1K32BF_INSN_L_DIV
; goto extract_sfmt_l_div
; }
1499 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1501 if ((entire_insn
& 0xfc0007ff) == 0xe000030a)
1502 { itype
= OR1K32BF_INSN_L_DIVU
; goto extract_sfmt_l_divu
; }
1503 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1505 if ((entire_insn
& 0xfc0007ff) == 0xe000030b)
1506 { itype
= OR1K32BF_INSN_L_MULU
; goto extract_sfmt_l_mulu
; }
1507 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1510 unsigned int val
= (((insn
>> 7) & (1 << 0)));
1514 if ((entire_insn
& 0xfc00ffff) == 0xe000000c)
1515 { itype
= OR1K32BF_INSN_L_EXTHS
; goto extract_sfmt_l_exths
; }
1516 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1518 if ((entire_insn
& 0xfc00ffff) == 0xe000008c)
1519 { itype
= OR1K32BF_INSN_L_EXTHZ
; goto extract_sfmt_l_exths
; }
1520 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1521 default : itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1526 unsigned int val
= (((insn
>> 8) & (3 << 0)));
1530 if ((entire_insn
& 0xfc00ffff) == 0xe000000d)
1531 { itype
= OR1K32BF_INSN_L_EXTWS
; goto extract_sfmt_l_exths
; }
1532 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1534 if ((entire_insn
& 0xffe007ff) == 0xe000030d)
1535 { itype
= OR1K32BF_INSN_L_MULDU
; goto extract_sfmt_l_muld
; }
1536 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1537 default : itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1541 if ((entire_insn
& 0xfc0007ff) == 0xe000000e)
1542 { itype
= OR1K32BF_INSN_L_CMOV
; goto extract_sfmt_l_cmov
; }
1543 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1546 unsigned int val
= (((insn
>> 8) & (1 << 0)));
1550 if ((entire_insn
& 0xfc0007ff) == 0xe000000f)
1551 { itype
= OR1K32BF_INSN_L_FF1
; goto extract_sfmt_l_ff1
; }
1552 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1554 if ((entire_insn
& 0xfc0007ff) == 0xe000010f)
1555 { itype
= OR1K32BF_INSN_L_FL1
; goto extract_sfmt_l_ff1
; }
1556 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1557 default : itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1562 unsigned int val
= (((insn
>> 7) & (1 << 0)));
1566 if ((entire_insn
& 0xfc0007ff) == 0xe0000048)
1567 { itype
= OR1K32BF_INSN_L_SRL
; goto extract_sfmt_l_sll
; }
1568 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1570 if ((entire_insn
& 0xfc0007ff) == 0xe00000c8)
1571 { itype
= OR1K32BF_INSN_L_ROR
; goto extract_sfmt_l_sll
; }
1572 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1573 default : itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1578 unsigned int val
= (((insn
>> 7) & (1 << 0)));
1582 if ((entire_insn
& 0xfc00ffff) == 0xe000004c)
1583 { itype
= OR1K32BF_INSN_L_EXTBS
; goto extract_sfmt_l_exths
; }
1584 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1586 if ((entire_insn
& 0xfc00ffff) == 0xe00000cc)
1587 { itype
= OR1K32BF_INSN_L_EXTBZ
; goto extract_sfmt_l_exths
; }
1588 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1589 default : itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1593 if ((entire_insn
& 0xfc00ffff) == 0xe000004d)
1594 { itype
= OR1K32BF_INSN_L_EXTWZ
; goto extract_sfmt_l_exths
; }
1595 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1598 unsigned int val
= (((insn
>> 21) & (15 << 0)));
1602 if ((entire_insn
& 0xffe007ff) == 0xe4000000)
1603 { itype
= OR1K32BF_INSN_L_SFEQ
; goto extract_sfmt_l_sfgts
; }
1604 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1606 if ((entire_insn
& 0xffe007ff) == 0xe4200000)
1607 { itype
= OR1K32BF_INSN_L_SFNE
; goto extract_sfmt_l_sfgts
; }
1608 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1610 if ((entire_insn
& 0xffe007ff) == 0xe4400000)
1611 { itype
= OR1K32BF_INSN_L_SFGTU
; goto extract_sfmt_l_sfgts
; }
1612 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1614 if ((entire_insn
& 0xffe007ff) == 0xe4600000)
1615 { itype
= OR1K32BF_INSN_L_SFGEU
; goto extract_sfmt_l_sfgts
; }
1616 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1618 if ((entire_insn
& 0xffe007ff) == 0xe4800000)
1619 { itype
= OR1K32BF_INSN_L_SFLTU
; goto extract_sfmt_l_sfgts
; }
1620 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1622 if ((entire_insn
& 0xffe007ff) == 0xe4a00000)
1623 { itype
= OR1K32BF_INSN_L_SFLEU
; goto extract_sfmt_l_sfgts
; }
1624 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1626 if ((entire_insn
& 0xffe007ff) == 0xe5400000)
1627 { itype
= OR1K32BF_INSN_L_SFGTS
; goto extract_sfmt_l_sfgts
; }
1628 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1630 if ((entire_insn
& 0xffe007ff) == 0xe5600000)
1631 { itype
= OR1K32BF_INSN_L_SFGES
; goto extract_sfmt_l_sfgts
; }
1632 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1634 if ((entire_insn
& 0xffe007ff) == 0xe5800000)
1635 { itype
= OR1K32BF_INSN_L_SFLTS
; goto extract_sfmt_l_sfgts
; }
1636 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1638 if ((entire_insn
& 0xffe007ff) == 0xe5a00000)
1639 { itype
= OR1K32BF_INSN_L_SFLES
; goto extract_sfmt_l_sfgts
; }
1640 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1641 default : itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1645 if ((entire_insn
& 0xffffffff) == 0xf0000000)
1646 { itype
= OR1K32BF_INSN_L_CUST5
; goto extract_sfmt_l_msync
; }
1647 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1649 if ((entire_insn
& 0xffffffff) == 0xf4000000)
1650 { itype
= OR1K32BF_INSN_L_CUST6
; goto extract_sfmt_l_msync
; }
1651 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1653 if ((entire_insn
& 0xffffffff) == 0xf8000000)
1654 { itype
= OR1K32BF_INSN_L_CUST7
; goto extract_sfmt_l_msync
; }
1655 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1657 if ((entire_insn
& 0xffffffff) == 0xfc000000)
1658 { itype
= OR1K32BF_INSN_L_CUST8
; goto extract_sfmt_l_msync
; }
1659 itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1660 default : itype
= OR1K32BF_INSN_X_INVALID
; goto extract_sfmt_empty
;
1665 /* The instruction has been decoded, now extract the fields. */
1669 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
1670 #define FLD(f) abuf->fields.sfmt_empty.f
1673 /* Record the fields for the semantic handler. */
1674 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_empty", (char *) 0));
1682 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
1683 CGEN_INSN_WORD insn
= entire_insn
;
1684 #define FLD(f) abuf->fields.sfmt_l_j.f
1687 f_disp26
= ((((EXTRACT_LSB0_SINT (insn
, 32, 25, 26)) << (2))) + (pc
));
1689 /* Record the fields for the semantic handler. */
1690 FLD (i_disp26
) = f_disp26
;
1691 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_j", "disp26 0x%x", 'x', f_disp26
, (char *) 0));
1697 extract_sfmt_l_adrp
:
1699 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
1700 CGEN_INSN_WORD insn
= entire_insn
;
1701 #define FLD(f) abuf->fields.sfmt_l_adrp.f
1705 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
1706 f_disp21
= ((((EXTRACT_LSB0_SINT (insn
, 32, 20, 21)) + (((SI
) (pc
) >> (13))))) << (13));
1708 /* Record the fields for the semantic handler. */
1710 FLD (i_disp21
) = f_disp21
;
1711 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_adrp", "f_r1 0x%x", 'x', f_r1
, "disp21 0x%x", 'x', f_disp21
, (char *) 0));
1719 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
1720 CGEN_INSN_WORD insn
= entire_insn
;
1721 #define FLD(f) abuf->fields.sfmt_l_j.f
1724 f_disp26
= ((((EXTRACT_LSB0_SINT (insn
, 32, 25, 26)) << (2))) + (pc
));
1726 /* Record the fields for the semantic handler. */
1727 FLD (i_disp26
) = f_disp26
;
1728 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_jal", "disp26 0x%x", 'x', f_disp26
, (char *) 0));
1736 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
1737 CGEN_INSN_WORD insn
= entire_insn
;
1738 #define FLD(f) abuf->fields.sfmt_l_sll.f
1741 f_r3
= EXTRACT_LSB0_UINT (insn
, 32, 15, 5);
1743 /* Record the fields for the semantic handler. */
1745 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_jr", "f_r3 0x%x", 'x', f_r3
, (char *) 0));
1751 extract_sfmt_l_jalr
:
1753 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
1754 CGEN_INSN_WORD insn
= entire_insn
;
1755 #define FLD(f) abuf->fields.sfmt_l_sll.f
1758 f_r3
= EXTRACT_LSB0_UINT (insn
, 32, 15, 5);
1760 /* Record the fields for the semantic handler. */
1762 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_jalr", "f_r3 0x%x", 'x', f_r3
, (char *) 0));
1770 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
1771 CGEN_INSN_WORD insn
= entire_insn
;
1772 #define FLD(f) abuf->fields.sfmt_l_j.f
1775 f_disp26
= ((((EXTRACT_LSB0_SINT (insn
, 32, 25, 26)) << (2))) + (pc
));
1777 /* Record the fields for the semantic handler. */
1778 FLD (i_disp26
) = f_disp26
;
1779 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_bnf", "disp26 0x%x", 'x', f_disp26
, (char *) 0));
1785 extract_sfmt_l_trap
:
1787 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
1788 #define FLD(f) abuf->fields.sfmt_empty.f
1791 /* Record the fields for the semantic handler. */
1792 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_trap", (char *) 0));
1798 extract_sfmt_l_msync
:
1800 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
1801 #define FLD(f) abuf->fields.sfmt_empty.f
1804 /* Record the fields for the semantic handler. */
1805 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_msync", (char *) 0));
1811 extract_sfmt_l_nop_imm
:
1813 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
1814 CGEN_INSN_WORD insn
= entire_insn
;
1815 #define FLD(f) abuf->fields.sfmt_l_mfspr.f
1818 f_uimm16
= EXTRACT_LSB0_UINT (insn
, 32, 15, 16);
1820 /* Record the fields for the semantic handler. */
1821 FLD (f_uimm16
) = f_uimm16
;
1822 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_nop_imm", "f_uimm16 0x%x", 'x', f_uimm16
, (char *) 0));
1828 extract_sfmt_l_movhi
:
1830 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
1831 CGEN_INSN_WORD insn
= entire_insn
;
1832 #define FLD(f) abuf->fields.sfmt_l_mfspr.f
1836 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
1837 f_uimm16
= EXTRACT_LSB0_UINT (insn
, 32, 15, 16);
1839 /* Record the fields for the semantic handler. */
1840 FLD (f_uimm16
) = f_uimm16
;
1842 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_movhi", "f_uimm16 0x%x", 'x', f_uimm16
, "f_r1 0x%x", 'x', f_r1
, (char *) 0));
1848 extract_sfmt_l_macrc
:
1850 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
1851 CGEN_INSN_WORD insn
= entire_insn
;
1852 #define FLD(f) abuf->fields.sfmt_l_adrp.f
1855 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
1857 /* Record the fields for the semantic handler. */
1859 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_macrc", "f_r1 0x%x", 'x', f_r1
, (char *) 0));
1865 extract_sfmt_l_mfspr
:
1867 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
1868 CGEN_INSN_WORD insn
= entire_insn
;
1869 #define FLD(f) abuf->fields.sfmt_l_mfspr.f
1874 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
1875 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
1876 f_uimm16
= EXTRACT_LSB0_UINT (insn
, 32, 15, 16);
1878 /* Record the fields for the semantic handler. */
1880 FLD (f_uimm16
) = f_uimm16
;
1882 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_mfspr", "f_r2 0x%x", 'x', f_r2
, "f_uimm16 0x%x", 'x', f_uimm16
, "f_r1 0x%x", 'x', f_r1
, (char *) 0));
1888 extract_sfmt_l_mtspr
:
1890 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
1891 CGEN_INSN_WORD insn
= entire_insn
;
1892 #define FLD(f) abuf->fields.sfmt_l_mtspr.f
1897 UINT f_uimm16_split
;
1899 f_imm16_25_5
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
1900 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
1901 f_r3
= EXTRACT_LSB0_UINT (insn
, 32, 15, 5);
1902 f_imm16_10_11
= EXTRACT_LSB0_UINT (insn
, 32, 10, 11);
1903 f_uimm16_split
= ((UHI
) (UINT
) (((((f_imm16_25_5
) << (11))) | (f_imm16_10_11
))));
1905 /* Record the fields for the semantic handler. */
1908 FLD (f_uimm16_split
) = f_uimm16_split
;
1909 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_mtspr", "f_r2 0x%x", 'x', f_r2
, "f_r3 0x%x", 'x', f_r3
, "f_uimm16_split 0x%x", 'x', f_uimm16_split
, (char *) 0));
1917 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
1918 CGEN_INSN_WORD insn
= entire_insn
;
1919 #define FLD(f) abuf->fields.sfmt_l_lwz.f
1924 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
1925 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
1926 f_simm16
= EXTRACT_LSB0_SINT (insn
, 32, 15, 16);
1928 /* Record the fields for the semantic handler. */
1930 FLD (f_simm16
) = f_simm16
;
1932 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_lwz", "f_r2 0x%x", 'x', f_r2
, "f_simm16 0x%x", 'x', f_simm16
, "f_r1 0x%x", 'x', f_r1
, (char *) 0));
1940 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
1941 CGEN_INSN_WORD insn
= entire_insn
;
1942 #define FLD(f) abuf->fields.sfmt_l_lwz.f
1947 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
1948 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
1949 f_simm16
= EXTRACT_LSB0_SINT (insn
, 32, 15, 16);
1951 /* Record the fields for the semantic handler. */
1953 FLD (f_simm16
) = f_simm16
;
1955 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_lws", "f_r2 0x%x", 'x', f_r2
, "f_simm16 0x%x", 'x', f_simm16
, "f_r1 0x%x", 'x', f_r1
, (char *) 0));
1963 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
1964 CGEN_INSN_WORD insn
= entire_insn
;
1965 #define FLD(f) abuf->fields.sfmt_l_lwz.f
1970 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
1971 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
1972 f_simm16
= EXTRACT_LSB0_SINT (insn
, 32, 15, 16);
1974 /* Record the fields for the semantic handler. */
1976 FLD (f_simm16
) = f_simm16
;
1978 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_lwa", "f_r2 0x%x", 'x', f_r2
, "f_simm16 0x%x", 'x', f_simm16
, "f_r1 0x%x", 'x', f_r1
, (char *) 0));
1986 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
1987 CGEN_INSN_WORD insn
= entire_insn
;
1988 #define FLD(f) abuf->fields.sfmt_l_lwz.f
1993 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
1994 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
1995 f_simm16
= EXTRACT_LSB0_SINT (insn
, 32, 15, 16);
1997 /* Record the fields for the semantic handler. */
1999 FLD (f_simm16
) = f_simm16
;
2001 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_lbz", "f_r2 0x%x", 'x', f_r2
, "f_simm16 0x%x", 'x', f_simm16
, "f_r1 0x%x", 'x', f_r1
, (char *) 0));
2009 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2010 CGEN_INSN_WORD insn
= entire_insn
;
2011 #define FLD(f) abuf->fields.sfmt_l_lwz.f
2016 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
2017 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2018 f_simm16
= EXTRACT_LSB0_SINT (insn
, 32, 15, 16);
2020 /* Record the fields for the semantic handler. */
2022 FLD (f_simm16
) = f_simm16
;
2024 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_lbs", "f_r2 0x%x", 'x', f_r2
, "f_simm16 0x%x", 'x', f_simm16
, "f_r1 0x%x", 'x', f_r1
, (char *) 0));
2032 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2033 CGEN_INSN_WORD insn
= entire_insn
;
2034 #define FLD(f) abuf->fields.sfmt_l_lwz.f
2039 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
2040 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2041 f_simm16
= EXTRACT_LSB0_SINT (insn
, 32, 15, 16);
2043 /* Record the fields for the semantic handler. */
2045 FLD (f_simm16
) = f_simm16
;
2047 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_lhz", "f_r2 0x%x", 'x', f_r2
, "f_simm16 0x%x", 'x', f_simm16
, "f_r1 0x%x", 'x', f_r1
, (char *) 0));
2055 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2056 CGEN_INSN_WORD insn
= entire_insn
;
2057 #define FLD(f) abuf->fields.sfmt_l_lwz.f
2062 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
2063 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2064 f_simm16
= EXTRACT_LSB0_SINT (insn
, 32, 15, 16);
2066 /* Record the fields for the semantic handler. */
2068 FLD (f_simm16
) = f_simm16
;
2070 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_lhs", "f_r2 0x%x", 'x', f_r2
, "f_simm16 0x%x", 'x', f_simm16
, "f_r1 0x%x", 'x', f_r1
, (char *) 0));
2078 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2079 CGEN_INSN_WORD insn
= entire_insn
;
2080 #define FLD(f) abuf->fields.sfmt_l_sw.f
2087 f_imm16_25_5
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
2088 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2089 f_r3
= EXTRACT_LSB0_UINT (insn
, 32, 15, 5);
2090 f_imm16_10_11
= EXTRACT_LSB0_UINT (insn
, 32, 10, 11);
2091 f_simm16_split
= ((HI
) (UINT
) (((((f_imm16_25_5
) << (11))) | (f_imm16_10_11
))));
2093 /* Record the fields for the semantic handler. */
2096 FLD (f_simm16_split
) = f_simm16_split
;
2097 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_sw", "f_r2 0x%x", 'x', f_r2
, "f_r3 0x%x", 'x', f_r3
, "f_simm16_split 0x%x", 'x', f_simm16_split
, (char *) 0));
2105 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2106 CGEN_INSN_WORD insn
= entire_insn
;
2107 #define FLD(f) abuf->fields.sfmt_l_sw.f
2114 f_imm16_25_5
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
2115 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2116 f_r3
= EXTRACT_LSB0_UINT (insn
, 32, 15, 5);
2117 f_imm16_10_11
= EXTRACT_LSB0_UINT (insn
, 32, 10, 11);
2118 f_simm16_split
= ((HI
) (UINT
) (((((f_imm16_25_5
) << (11))) | (f_imm16_10_11
))));
2120 /* Record the fields for the semantic handler. */
2123 FLD (f_simm16_split
) = f_simm16_split
;
2124 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_sb", "f_r2 0x%x", 'x', f_r2
, "f_r3 0x%x", 'x', f_r3
, "f_simm16_split 0x%x", 'x', f_simm16_split
, (char *) 0));
2132 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2133 CGEN_INSN_WORD insn
= entire_insn
;
2134 #define FLD(f) abuf->fields.sfmt_l_sw.f
2141 f_imm16_25_5
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
2142 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2143 f_r3
= EXTRACT_LSB0_UINT (insn
, 32, 15, 5);
2144 f_imm16_10_11
= EXTRACT_LSB0_UINT (insn
, 32, 10, 11);
2145 f_simm16_split
= ((HI
) (UINT
) (((((f_imm16_25_5
) << (11))) | (f_imm16_10_11
))));
2147 /* Record the fields for the semantic handler. */
2150 FLD (f_simm16_split
) = f_simm16_split
;
2151 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_sh", "f_r2 0x%x", 'x', f_r2
, "f_r3 0x%x", 'x', f_r3
, "f_simm16_split 0x%x", 'x', f_simm16_split
, (char *) 0));
2159 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2160 CGEN_INSN_WORD insn
= entire_insn
;
2161 #define FLD(f) abuf->fields.sfmt_l_sw.f
2168 f_imm16_25_5
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
2169 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2170 f_r3
= EXTRACT_LSB0_UINT (insn
, 32, 15, 5);
2171 f_imm16_10_11
= EXTRACT_LSB0_UINT (insn
, 32, 10, 11);
2172 f_simm16_split
= ((HI
) (UINT
) (((((f_imm16_25_5
) << (11))) | (f_imm16_10_11
))));
2174 /* Record the fields for the semantic handler. */
2177 FLD (f_simm16_split
) = f_simm16_split
;
2178 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_swa", "f_r2 0x%x", 'x', f_r2
, "f_r3 0x%x", 'x', f_r3
, "f_simm16_split 0x%x", 'x', f_simm16_split
, (char *) 0));
2186 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2187 CGEN_INSN_WORD insn
= entire_insn
;
2188 #define FLD(f) abuf->fields.sfmt_l_sll.f
2193 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
2194 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2195 f_r3
= EXTRACT_LSB0_UINT (insn
, 32, 15, 5);
2197 /* Record the fields for the semantic handler. */
2201 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_sll", "f_r2 0x%x", 'x', f_r2
, "f_r3 0x%x", 'x', f_r3
, "f_r1 0x%x", 'x', f_r1
, (char *) 0));
2207 extract_sfmt_l_slli
:
2209 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2210 CGEN_INSN_WORD insn
= entire_insn
;
2211 #define FLD(f) abuf->fields.sfmt_l_slli.f
2216 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
2217 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2218 f_uimm6
= EXTRACT_LSB0_UINT (insn
, 32, 5, 6);
2220 /* Record the fields for the semantic handler. */
2222 FLD (f_uimm6
) = f_uimm6
;
2224 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_slli", "f_r2 0x%x", 'x', f_r2
, "f_uimm6 0x%x", 'x', f_uimm6
, "f_r1 0x%x", 'x', f_r1
, (char *) 0));
2232 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2233 CGEN_INSN_WORD insn
= entire_insn
;
2234 #define FLD(f) abuf->fields.sfmt_l_sll.f
2239 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
2240 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2241 f_r3
= EXTRACT_LSB0_UINT (insn
, 32, 15, 5);
2243 /* Record the fields for the semantic handler. */
2247 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_and", "f_r2 0x%x", 'x', f_r2
, "f_r3 0x%x", 'x', f_r3
, "f_r1 0x%x", 'x', f_r1
, (char *) 0));
2255 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2256 CGEN_INSN_WORD insn
= entire_insn
;
2257 #define FLD(f) abuf->fields.sfmt_l_sll.f
2262 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
2263 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2264 f_r3
= EXTRACT_LSB0_UINT (insn
, 32, 15, 5);
2266 /* Record the fields for the semantic handler. */
2270 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_add", "f_r2 0x%x", 'x', f_r2
, "f_r3 0x%x", 'x', f_r3
, "f_r1 0x%x", 'x', f_r1
, (char *) 0));
2276 extract_sfmt_l_addc
:
2278 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2279 CGEN_INSN_WORD insn
= entire_insn
;
2280 #define FLD(f) abuf->fields.sfmt_l_sll.f
2285 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
2286 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2287 f_r3
= EXTRACT_LSB0_UINT (insn
, 32, 15, 5);
2289 /* Record the fields for the semantic handler. */
2293 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_addc", "f_r2 0x%x", 'x', f_r2
, "f_r3 0x%x", 'x', f_r3
, "f_r1 0x%x", 'x', f_r1
, (char *) 0));
2301 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2302 CGEN_INSN_WORD insn
= entire_insn
;
2303 #define FLD(f) abuf->fields.sfmt_l_sll.f
2308 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
2309 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2310 f_r3
= EXTRACT_LSB0_UINT (insn
, 32, 15, 5);
2312 /* Record the fields for the semantic handler. */
2316 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_mul", "f_r2 0x%x", 'x', f_r2
, "f_r3 0x%x", 'x', f_r3
, "f_r1 0x%x", 'x', f_r1
, (char *) 0));
2322 extract_sfmt_l_muld
:
2324 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2325 CGEN_INSN_WORD insn
= entire_insn
;
2326 #define FLD(f) abuf->fields.sfmt_l_sll.f
2330 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2331 f_r3
= EXTRACT_LSB0_UINT (insn
, 32, 15, 5);
2333 /* Record the fields for the semantic handler. */
2336 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_muld", "f_r2 0x%x", 'x', f_r2
, "f_r3 0x%x", 'x', f_r3
, (char *) 0));
2342 extract_sfmt_l_mulu
:
2344 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2345 CGEN_INSN_WORD insn
= entire_insn
;
2346 #define FLD(f) abuf->fields.sfmt_l_sll.f
2351 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
2352 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2353 f_r3
= EXTRACT_LSB0_UINT (insn
, 32, 15, 5);
2355 /* Record the fields for the semantic handler. */
2359 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_mulu", "f_r2 0x%x", 'x', f_r2
, "f_r3 0x%x", 'x', f_r3
, "f_r1 0x%x", 'x', f_r1
, (char *) 0));
2367 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2368 CGEN_INSN_WORD insn
= entire_insn
;
2369 #define FLD(f) abuf->fields.sfmt_l_sll.f
2374 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
2375 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2376 f_r3
= EXTRACT_LSB0_UINT (insn
, 32, 15, 5);
2378 /* Record the fields for the semantic handler. */
2382 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_div", "f_r2 0x%x", 'x', f_r2
, "f_r3 0x%x", 'x', f_r3
, "f_r1 0x%x", 'x', f_r1
, (char *) 0));
2388 extract_sfmt_l_divu
:
2390 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2391 CGEN_INSN_WORD insn
= entire_insn
;
2392 #define FLD(f) abuf->fields.sfmt_l_sll.f
2397 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
2398 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2399 f_r3
= EXTRACT_LSB0_UINT (insn
, 32, 15, 5);
2401 /* Record the fields for the semantic handler. */
2405 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_divu", "f_r2 0x%x", 'x', f_r2
, "f_r3 0x%x", 'x', f_r3
, "f_r1 0x%x", 'x', f_r1
, (char *) 0));
2413 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2414 CGEN_INSN_WORD insn
= entire_insn
;
2415 #define FLD(f) abuf->fields.sfmt_l_slli.f
2419 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
2420 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2422 /* Record the fields for the semantic handler. */
2425 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_ff1", "f_r2 0x%x", 'x', f_r2
, "f_r1 0x%x", 'x', f_r1
, (char *) 0));
2431 extract_sfmt_l_xori
:
2433 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2434 CGEN_INSN_WORD insn
= entire_insn
;
2435 #define FLD(f) abuf->fields.sfmt_l_lwz.f
2440 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
2441 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2442 f_simm16
= EXTRACT_LSB0_SINT (insn
, 32, 15, 16);
2444 /* Record the fields for the semantic handler. */
2446 FLD (f_simm16
) = f_simm16
;
2448 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_xori", "f_r2 0x%x", 'x', f_r2
, "f_simm16 0x%x", 'x', f_simm16
, "f_r1 0x%x", 'x', f_r1
, (char *) 0));
2454 extract_sfmt_l_addi
:
2456 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2457 CGEN_INSN_WORD insn
= entire_insn
;
2458 #define FLD(f) abuf->fields.sfmt_l_lwz.f
2463 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
2464 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2465 f_simm16
= EXTRACT_LSB0_SINT (insn
, 32, 15, 16);
2467 /* Record the fields for the semantic handler. */
2469 FLD (f_simm16
) = f_simm16
;
2471 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_addi", "f_r2 0x%x", 'x', f_r2
, "f_simm16 0x%x", 'x', f_simm16
, "f_r1 0x%x", 'x', f_r1
, (char *) 0));
2477 extract_sfmt_l_addic
:
2479 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2480 CGEN_INSN_WORD insn
= entire_insn
;
2481 #define FLD(f) abuf->fields.sfmt_l_lwz.f
2486 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
2487 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2488 f_simm16
= EXTRACT_LSB0_SINT (insn
, 32, 15, 16);
2490 /* Record the fields for the semantic handler. */
2492 FLD (f_simm16
) = f_simm16
;
2494 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_addic", "f_r2 0x%x", 'x', f_r2
, "f_simm16 0x%x", 'x', f_simm16
, "f_r1 0x%x", 'x', f_r1
, (char *) 0));
2500 extract_sfmt_l_muli
:
2502 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2503 CGEN_INSN_WORD insn
= entire_insn
;
2504 #define FLD(f) abuf->fields.sfmt_l_lwz.f
2509 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
2510 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2511 f_simm16
= EXTRACT_LSB0_SINT (insn
, 32, 15, 16);
2513 /* Record the fields for the semantic handler. */
2515 FLD (f_simm16
) = f_simm16
;
2517 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_muli", "f_r2 0x%x", 'x', f_r2
, "f_simm16 0x%x", 'x', f_simm16
, "f_r1 0x%x", 'x', f_r1
, (char *) 0));
2523 extract_sfmt_l_exths
:
2525 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2526 CGEN_INSN_WORD insn
= entire_insn
;
2527 #define FLD(f) abuf->fields.sfmt_l_slli.f
2531 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
2532 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2534 /* Record the fields for the semantic handler. */
2537 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_exths", "f_r2 0x%x", 'x', f_r2
, "f_r1 0x%x", 'x', f_r1
, (char *) 0));
2543 extract_sfmt_l_cmov
:
2545 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2546 CGEN_INSN_WORD insn
= entire_insn
;
2547 #define FLD(f) abuf->fields.sfmt_l_sll.f
2552 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
2553 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2554 f_r3
= EXTRACT_LSB0_UINT (insn
, 32, 15, 5);
2556 /* Record the fields for the semantic handler. */
2560 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_cmov", "f_r2 0x%x", 'x', f_r2
, "f_r3 0x%x", 'x', f_r3
, "f_r1 0x%x", 'x', f_r1
, (char *) 0));
2566 extract_sfmt_l_sfgts
:
2568 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2569 CGEN_INSN_WORD insn
= entire_insn
;
2570 #define FLD(f) abuf->fields.sfmt_l_sll.f
2574 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2575 f_r3
= EXTRACT_LSB0_UINT (insn
, 32, 15, 5);
2577 /* Record the fields for the semantic handler. */
2580 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_sfgts", "f_r2 0x%x", 'x', f_r2
, "f_r3 0x%x", 'x', f_r3
, (char *) 0));
2586 extract_sfmt_l_sfgtsi
:
2588 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2589 CGEN_INSN_WORD insn
= entire_insn
;
2590 #define FLD(f) abuf->fields.sfmt_l_lwz.f
2594 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2595 f_simm16
= EXTRACT_LSB0_SINT (insn
, 32, 15, 16);
2597 /* Record the fields for the semantic handler. */
2599 FLD (f_simm16
) = f_simm16
;
2600 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_sfgtsi", "f_r2 0x%x", 'x', f_r2
, "f_simm16 0x%x", 'x', f_simm16
, (char *) 0));
2608 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2609 CGEN_INSN_WORD insn
= entire_insn
;
2610 #define FLD(f) abuf->fields.sfmt_l_sll.f
2614 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2615 f_r3
= EXTRACT_LSB0_UINT (insn
, 32, 15, 5);
2617 /* Record the fields for the semantic handler. */
2620 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_mac", "f_r2 0x%x", 'x', f_r2
, "f_r3 0x%x", 'x', f_r3
, (char *) 0));
2626 extract_sfmt_l_maci
:
2628 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2629 CGEN_INSN_WORD insn
= entire_insn
;
2630 #define FLD(f) abuf->fields.sfmt_l_lwz.f
2634 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2635 f_simm16
= EXTRACT_LSB0_SINT (insn
, 32, 15, 16);
2637 /* Record the fields for the semantic handler. */
2639 FLD (f_simm16
) = f_simm16
;
2640 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_maci", "f_r2 0x%x", 'x', f_r2
, "f_simm16 0x%x", 'x', f_simm16
, (char *) 0));
2646 extract_sfmt_l_macu
:
2648 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2649 CGEN_INSN_WORD insn
= entire_insn
;
2650 #define FLD(f) abuf->fields.sfmt_l_sll.f
2654 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2655 f_r3
= EXTRACT_LSB0_UINT (insn
, 32, 15, 5);
2657 /* Record the fields for the semantic handler. */
2660 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_l_macu", "f_r2 0x%x", 'x', f_r2
, "f_r3 0x%x", 'x', f_r3
, (char *) 0));
2666 extract_sfmt_lf_add_s
:
2668 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2669 CGEN_INSN_WORD insn
= entire_insn
;
2670 #define FLD(f) abuf->fields.sfmt_l_sll.f
2675 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
2676 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2677 f_r3
= EXTRACT_LSB0_UINT (insn
, 32, 15, 5);
2679 /* Record the fields for the semantic handler. */
2683 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_lf_add_s", "f_r2 0x%x", 'x', f_r2
, "f_r3 0x%x", 'x', f_r3
, "f_r1 0x%x", 'x', f_r1
, (char *) 0));
2689 extract_sfmt_lf_itof_s
:
2691 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2692 CGEN_INSN_WORD insn
= entire_insn
;
2693 #define FLD(f) abuf->fields.sfmt_l_slli.f
2697 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
2698 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2700 /* Record the fields for the semantic handler. */
2703 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_lf_itof_s", "f_r2 0x%x", 'x', f_r2
, "f_r1 0x%x", 'x', f_r1
, (char *) 0));
2709 extract_sfmt_lf_ftoi_s
:
2711 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2712 CGEN_INSN_WORD insn
= entire_insn
;
2713 #define FLD(f) abuf->fields.sfmt_l_slli.f
2717 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
2718 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2720 /* Record the fields for the semantic handler. */
2723 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_lf_ftoi_s", "f_r2 0x%x", 'x', f_r2
, "f_r1 0x%x", 'x', f_r1
, (char *) 0));
2729 extract_sfmt_lf_eq_s
:
2731 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2732 CGEN_INSN_WORD insn
= entire_insn
;
2733 #define FLD(f) abuf->fields.sfmt_l_sll.f
2737 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2738 f_r3
= EXTRACT_LSB0_UINT (insn
, 32, 15, 5);
2740 /* Record the fields for the semantic handler. */
2743 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_lf_eq_s", "f_r2 0x%x", 'x', f_r2
, "f_r3 0x%x", 'x', f_r3
, (char *) 0));
2749 extract_sfmt_lf_madd_s
:
2751 const IDESC
*idesc
= &or1k32bf_insn_data
[itype
];
2752 CGEN_INSN_WORD insn
= entire_insn
;
2753 #define FLD(f) abuf->fields.sfmt_l_sll.f
2758 f_r1
= EXTRACT_LSB0_UINT (insn
, 32, 25, 5);
2759 f_r2
= EXTRACT_LSB0_UINT (insn
, 32, 20, 5);
2760 f_r3
= EXTRACT_LSB0_UINT (insn
, 32, 15, 5);
2762 /* Record the fields for the semantic handler. */
2766 TRACE_EXTRACT (current_cpu
, abuf
, (current_cpu
, pc
, "sfmt_lf_madd_s", "f_r2 0x%x", 'x', f_r2
, "f_r3 0x%x", 'x', f_r3
, "f_r1 0x%x", 'x', f_r1
, (char *) 0));